/*
  $Id: general.js,v 1.3 2003/02/10 22:30:55 hpdl Exp $

  osCommerce, Open Source E-Commerce Solutions
  http://www.oscommerce.com

  Copyright (c) 2003 osCommerce

  Released under the GNU General Public License
*/

function SetFocus(TargetFormName) {
  var target = 0;
  if (TargetFormName != "") {
    for (i=0; i<document.forms.length; i++) {
      if (document.forms[i].name == TargetFormName) {
        target = i;
        break;
      }
    }
  }

  var TargetForm = document.forms[target];
    
  for (i=0; i<TargetForm.length; i++) {
    if ( (TargetForm.elements[i].type != "image") && (TargetForm.elements[i].type != "hidden") && (TargetForm.elements[i].type != "reset") && (TargetForm.elements[i].type != "submit") ) {
      TargetForm.elements[i].focus();

      if ( (TargetForm.elements[i].type == "text") || (TargetForm.elements[i].type == "password") ) {
        TargetForm.elements[i].select();
      }

      break;
    }
  }
}

function RemoveFormatString(TargetElement, FormatString) {
  if (TargetElement.value == FormatString) {
    TargetElement.value = "";
  }

  TargetElement.select();
}

function CheckDateRange(from, to) {
  if (Date.parse(from.value) <= Date.parse(to.value)) {
    return true;
  } else {
    return false;
  }
}

function IsValidDate(DateToCheck, FormatString) {
  var strDateToCheck;
  var strDateToCheckArray;
  var strFormatArray;
  var strFormatString;
  var strDay;
  var strMonth;
  var strYear;
  var intday;
  var intMonth;
  var intYear;
  var intDateSeparatorIdx = -1;
  var intFormatSeparatorIdx = -1;
  var strSeparatorArray = new Array("-"," ","/",".");
  var strMonthArray = new Array("jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec");
  var intDaysArray = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

  strDateToCheck = DateToCheck.toLowerCase();
  strFormatString = FormatString.toLowerCase();
  
  if (strDateToCheck.length != strFormatString.length) {
    return false;
  }

  for (i=0; i<strSeparatorArray.length; i++) {
    if (strFormatString.indexOf(strSeparatorArray[i]) != -1) {
      intFormatSeparatorIdx = i;
      break;
    }
  }

  for (i=0; i<strSeparatorArray.length; i++) {
    if (strDateToCheck.indexOf(strSeparatorArray[i]) != -1) {
      intDateSeparatorIdx = i;
      break;
    }
  }

  if (intDateSeparatorIdx != intFormatSeparatorIdx) {
    return false;
  }

  if (intDateSeparatorIdx != -1) {
    strFormatArray = strFormatString.split(strSeparatorArray[intFormatSeparatorIdx]);
    if (strFormatArray.length != 3) {
      return false;
    }

    strDateToCheckArray = strDateToCheck.split(strSeparatorArray[intDateSeparatorIdx]);
    if (strDateToCheckArray.length != 3) {
      return false;
    }

    for (i=0; i<strFormatArray.length; i++) {
      if (strFormatArray[i] == 'mm' || strFormatArray[i] == 'mmm') {
        strMonth = strDateToCheckArray[i];
      }

      if (strFormatArray[i] == 'dd') {
        strDay = strDateToCheckArray[i];
      }

      if (strFormatArray[i] == 'yyyy') {
        strYear = strDateToCheckArray[i];
      }
    }
  } else {
    if (FormatString.length > 7) {
      if (strFormatString.indexOf('mmm') == -1) {
        strMonth = strDateToCheck.substring(strFormatString.indexOf('mm'), 2);
      } else {
        strMonth = strDateToCheck.substring(strFormatString.indexOf('mmm'), 3);
      }

      strDay = strDateToCheck.substring(strFormatString.indexOf('dd'), 2);
      strYear = strDateToCheck.substring(strFormatString.indexOf('yyyy'), 2);
    } else {
      return false;
    }
  }

  if (strYear.length != 4) {
    return false;
  }

  intday = parseInt(strDay, 10);
  if (isNaN(intday)) {
    return false;
  }
  if (intday < 1) {
    return false;
  }

  intMonth = parseInt(strMonth, 10);
  if (isNaN(intMonth)) {
    for (i=0; i<strMonthArray.length; i++) {
      if (strMonth == strMonthArray[i]) {
        intMonth = i+1;
        break;
      }
    }
    if (isNaN(intMonth)) {
      return false;
    }
  }
  if (intMonth > 12 || intMonth < 1) {
    return false;
  }

  intYear = parseInt(strYear, 10);
  if (isNaN(intYear)) {
    return false;
  }
  if (IsLeapYear(intYear) == true) {
    intDaysArray[1] = 29;
  }

  if (intday > intDaysArray[intMonth - 1]) {
    return false;
  }
  
  return true;
}

function IsLeapYear(intYear) {
  if (intYear % 100 == 0) {
    if (intYear % 400 == 0) {
      return true;
    }
  } else {
    if ((intYear % 4) == 0) {
      return true;
    }
  }

  return false;
}

// <!-- 1254086685
// This script is (C) Copyright 2004 Jim Tucek
// Leave these comments alone!  For more info, visit
// www.jracademy.com/~jtucek/email/ 

function feed(attitude,agreement,alchemy) {
    attitude += ' ';
    var box = attitude.length;
    var bed = 0;
    var face = '';
    for(var sky = 0; sky < box; sky++) {
        bed = 0;
        while(attitude.charCodeAt(sky) != 32) {
            bed = bed * 10;
            bed = bed + attitude.charCodeAt(sky)-48;
            sky++;
        }
        face += String.fromCharCode(run(bed,agreement,alchemy));
    }
    parent.location = 'm'+'a'+'i'+'l'+'t'+'o'+':'+face;
}

function feel(computer,coordinated,thing) {
    computer += ' ';
    var discord = computer.length;
    var entropy = 0;
    for(var time = 0; time < discord; time++) {
        entropy = 0;
        while(computer.charCodeAt(time) != 32) {
            entropy = entropy * 10;
            entropy = entropy + computer.charCodeAt(time)-48;
            time++;
        }
        //document.write('&');
        //document.write('#');
        //document.write(run(entropy,coordinated,thing));
        document.write(String.fromCharCode(run(entropy,coordinated,thing)));
    }
}

function run(government,information,leader) {
    if (leader % 2 == 0) {
        mother = 1;
        for(var night = 1; night <= leader/2; night++) {
            machine = (government*government) % information;
            mother = (machine*mother) % information;
        }
    } else {
        mother = government;
        for(var obstetrics = 1; obstetrics <= leader/2; obstetrics++) {
            machine = (government*government) % information;
            mother = (machine*mother) % information;
        }
    }
    return mother;
}
//<!-- Clicking on this link uses javascript to decrypt the email address -->
//<a href='javascript:feed("273 1672 3253 364 2505 2517 3023 2874 1528 1858 2569 2951 158 2505 3253 273 3190 2540 3023 2569 1672 1663 3023 2874 2540 2517 3253 3190 273 2505 2874 2517 563 2569 2798 273",3337,2147)'>Click to email me</a>
//
//<BR>- or -<BR>
//
//<!-- Alternativly, you can have the script display the text of your email address -->
//<!-- which is less secure, but it's better than nothing and looks better -->
//Email me at <a href='javascript:feed("273 1672 3253 364 2505 2517 3023 2874 1528 1858 2569 2951 158 2505 3253 273 3190 2540 3023 2569 1672 1663 3023 2874 2540 2517 3253 3190 273 2505 2874 2517 563 2569 2798 273",3337,2147)' onMouseOver="self.status=''; return true;" onMouseOut="self.status=' '; return true;"><script type='text/javascript'>feel("273 1672 3253 364 2505 2517 3023 2874 1528 1858 2569 2951 158 2505 3253 273 3190 2540 3023 2569 1672 1663 3023 2874 2540 2517 3253 3190 273 2505 2874 2517 563 2569 2798 273",3337,2147)</script></a>  (A tad bit less secure, but looks better.  So, the question is whether you're shallow or not. ;)