/*
	
	 #############################################################################
	 #		File Name     : Validations.js										 #
	 #		Functionality : This javascript file contains common functions		 #	
 	 #		Last Modified : 05th-June-2001										 #	  
	 #		Author        : Jency E.											 #	
 	 #		Modified By   : Rajalakshmi A.R. and Betsy Sharmila D.				 #		  
	 #############################################################################
		
*/


///************************************IMAGE SWAPPPING FUNCTIONS****************************************************////////
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
 
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
 
function MM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}
 
function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
 
function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
 
///************************************END OF IMAGE SWAPPPING FUNCTIONS****************************************************////////



// initialize variables 
var ppcIE=((navigator.appName == "Microsoft Internet Explorer") || ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion)==5)));
var ppcNN6=((navigator.appName == "Netscape") && (parseInt(navigator.appVersion)==5));
//var ppcIE=(navigator.appName == "Microsoft Internet Explorer");
var ppcNN=((navigator.appName == "Netscape")&&(document.layers));
var objCalendar;
var objWin;

function FillCombo()
{	
	PopulateYearCombo(shopper_new.cmbYear1);	
	PopulateMonthCombo(shopper_new.cmbMnth1);
	PopulateYearCombo(shopper_new.cmbYear2);	
	PopulateMonthCombo(shopper_new.cmbMnth2);		
	//shopper_new.txtfname.focus();
}

function PopulateYearCombo(objYear)
{
	
		// Populate Year
		CurrentYear = new Date();
		for (intCounter=CurrentYear.getYear(); intCounter <= CurrentYear.getYear() + 5; intCounter++) 
		{		
			str=new String(intCounter);
			var s1=str.slice(2,4);			
			objOption = new Option(intCounter,s1);			
			objYear.add(objOption);
		}
	
}

// function to populate the objMonth month combo
function PopulateMonthCombo(objMonth)
{
		var intCounter;
		var strCounter

		for (var intCounter=1; intCounter <= 12; intCounter++) 
		{
			
			if (intCounter < 10)
			{
				strCounter="0"+ intCounter;
			}
			else
			{
				strCounter=intCounter;
			}
			objOption = new Option(strCounter, strCounter);
			objMonth.add(objOption);
		}

}


function trim(strInput)
{
// for trimLeft
	var strTemp = strInput
	while(strTemp.charAt(0)==" ")
	{
		strTemp = strTemp.slice(1);
	}
// for TrimRight
	var iLength = strTemp.length;
	iLength--;// accounts for zero based index
	while(strTemp.charAt(iLength)==" ")
	{
		strTemp = strTemp.slice(0,iLength--);
	}
	return strTemp;
}

//This function is called when clicked on Calender Lookup
//obj is the target text field control

//This function returns the lookup's left offset
function GetParentOffsetLeft(obj)
{
	var objParent = obj.parentElement; //Stores the Parent window to the Calender Lookup
	var iX = 0; //Stores the value to be returned
	
	if (objParent)
	{
		iX += objParent.offsetLeft;
		iX += GetParentOffsetLeft(objParent);
	}
	
	return iX;
}

//This function returns the lookup's top offset
function GetParentOffsetTop(obj)
{
	var objParent = obj.parentElement; //Stores the Parent window to the Calender Lookup
	var iY = 0; //Stores the value to be returned
	
	if (objParent)
	{
		iY += objParent.offsetTop;
		iY += GetParentOffsetTop(objParent);
	}
	
	return iY;
}

//This function Returns the horizontal position of the Lookup
function CalendarCalculateHorizontalPosition(obj)
{
	var iX = 0; //This variable stores the return value
	
	iX = obj.offsetLeft + window.screenLeft + 2 + GetParentOffsetLeft(obj);
	
	return iX;
}

//This function Returns the vertical position of the Lookup
function CalendarCalculateVerticalPosition(obj)
{
	var iY = 0; //This variable stores the return value	
	iY = obj.offsetTop + obj.offsetHeight + window.screenTop + 2 + GetParentOffsetTop(obj);	
	return iY;
}


function CalculateWindowTop(iWindowHeight)
{
	if (document.layers)
	{
		var iWindowTop= (window.outerHeight - iWindowHeight)/2;
	
	}
	
	if (document.all)
	{
		var iWindowTop= (window.screen.height - iWindowHeight)/2
	}
		return iWindowTop;
	
}

function CalculateWindowLeft(iWindowWidth)
{
	if(document.layers)
	{
		var iWindowLeft= (window.outerWidth - iWindowWidth)/2;
	}
	
	if (document.all)
	{
		var iWindowLeft = (window.screen.width - iWindowWidth)/2
	}
	
	return iWindowLeft;

}

function isEmail (s)
{
   var reEmail = /^.+\@.+\..+$/
   if (isEmpty(s))
	   return false;
    else {
       return reEmail.test(s)
    }
}

//This function returns true if string will check the given string is a Empty string
function isEmpty(s)
{
   return ((s == null) || (s.length == 0))
}

function isUSPhoneNumber(s)
{	
	reDigit=/\(\d{3}\)\d{3}\-\d{4}$/
	
	if (reDigit.test(s) == true)
	{
		return true;
	}
	else 
	{
		return false;
	}
	 
}

//function to validate phone numbers
function ValidatePhone(objPhone)
{
	var sPhone=objPhone.value;
	
	var sValidPhone="";
	var sFormatPhone="";
	var sRegExp="";
	sRegExp=/\(|\)|-/g
	sValidPhone=trim(sPhone.replace(sRegExp,""));
	
	if (sValidPhone > 0)	
	{
		if (isUSPhoneNumber(sPhone) == false)
		{
			
			if (sValidPhone.length!=10)
			{
				alert("Please enter a valid Phone Number of 10 digits");
				objPhone.value="";
				objPhone.focus();
				return false;
			}
			if (isNaN(sValidPhone)==true)
			{
				alert("Please enter a valid Phone Number of 10 digits");
				objPhone.value="";
				objPhone.focus();
				return false;
			}
			if ((sValidPhone.indexOf(".") == -1) || (sValidPhone.indexOf("'") == -1) || (sValidPhone.indexOf('"') == -1))
			{
				alert("Please enter a valid Phone Number of 10 digits");
				objPhone.value="";
				objPhone.focus();
				return false;
			}
			return true;
		}
	}
	else
	{
		alert ("Please enter a valid Phone Number of 10 digits");
		objPhone.value="";
		objPhone.focus();
		return false;
	}
}

function FormatPhone(objPhone)
{
	var sPhone=objPhone.value;
		
	if (isUSPhoneNumber(sPhone) == false)
	{
		var sValidPhone="";
		var sFormatPhone="";
		var sRegExp="";
		sRegExp=/\(|\)|-/g
		sValidPhone=trim(sPhone.replace(sRegExp,""));
	
		if (sValidPhone.length==10)
		{
			sFormatPhone="(" + sValidPhone.substring(0,3) + ")"
			sFormatPhone=sFormatPhone + sValidPhone.substring(3,6) + "-" + sValidPhone.substring(6)
					
		}
		else
		{
			sFormatPhone=sPhone;
		}
		objPhone.value=sFormatPhone;
		return true;
	}
	
		
}

/* *** Function to display the message/tooltip in the status bar *** */
function DisplayStatusMessage(sMessage)
{		
	window.status=sMessage;
	return true;
}



// Used to close the Calendar Window if it is open
function CloseCalender()
{
	if (objCalendar)
		objCalendar.close();
	
}

function CloseWindow()
{
	if (objWin)
		objWin.close();
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v3.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
function DateFormat(vDateName, vDateValue, e, dateCheck, dateType)
{
	vDateType = dateType;
	// vDateName = object name
	// vDateValue = value in the field being checked
	// e = event
	// dateCheck 
	// True  = Verify that the vDateValue is a valid date
	// False = Format values being entered into vDateValue only
	// vDateType
	// 1 = mm/dd/yyyy
	//Enter a tilde sign for the first number and you can check the variable information.
	if (vDateValue == "~") {
	alert("AppVersion = "+navigator.appVersion+" \nNav. 4 Version = "+isNav4+" \nNav. 5 Version = "+isNav5+" \nIE Version = "+isIE4+" \nYear Type = "+vYearType+" \nDate Type = "+vDateType+" \nSeparator = "+strSeperator);
	vDateName.value = "";
	vDateName.focus();
	return true;
	}
	var whichCode = (window.Event) ? e.which : e.keyCode;
	// Check to see if a seperator is already present.
	// bypass the date if a seperator is present and the length greater than 8
	if (vDateValue.length > 8 && isNav4) {
	if ((vDateValue.indexOf("-") >= 1) || (vDateValue.indexOf("/") >= 1))
	return true;
	}
	//Eliminate all the ASCII codes that are not valid
	var alphaCheck = " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/-";
	if (alphaCheck.indexOf(vDateValue) >= 1) {
	if (isNav4) {
	vDateName.value = "";
	vDateName.focus();
	vDateName.select();
	return false;
	}
	else {
	vDateName.value = vDateName.value.substr(0, (vDateValue.length-1));
	return false;
	   }
	}
	if (whichCode == 8) //Ignore the Netscape value for backspace. IE has no value
	return false;
	else {
	//Create numeric string values for 0123456789/
	//The codes provided include both keyboard and keypad values
	var strCheck = '47,48,49,50,51,52,53,54,55,56,57,58,59,95,96,97,98,99,100,101,102,103,104,105';
	if (strCheck.indexOf(whichCode) != -1) {
	if (isNav4) {
	if (((vDateValue.length < 6 && dateCheck) || (vDateValue.length == 7 && dateCheck)) && (vDateValue.length >=1)) {
	alert("Invalid Date\nPlease Re-Enter");
	vDateName.value = "";
	vDateName.focus();
	vDateName.select();
	return false;
	}
	if (vDateValue.length == 6 && dateCheck) {
	var mDay = vDateName.value.substr(2,2);
	var mMonth = vDateName.value.substr(0,2);
	var mYear = vDateName.value.substr(4,4)
	//Turn a two digit year into a 4 digit year
	if (mYear.length == 2 && vYearType == 4) {
	var mToday = new Date();
	//If the year is greater than 30 years from now use 19, otherwise use 20
	var checkYear = mToday.getFullYear() + 30; 
	var mCheckYear = '20' + mYear;
	if (mCheckYear >= checkYear)
	mYear = '19' + mYear;
	else
	mYear = '20' + mYear;
	}
	var vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;
	if (!dateValid(vDateValueCheck)) {
	alert("Invalid Date\nPlease Re-Enter");
	vDateName.value = "";
	vDateName.focus();
	vDateName.select();
	return false;
	}
	return true;
	}
	else {
	// Reformat the date for validation and set date type to a 1
	if (vDateValue.length >= 8  && dateCheck) {
	if (vDateType == 1) // mmddyyyy
	{
	var mDay = vDateName.value.substr(2,2);
	var mMonth = vDateName.value.substr(0,2);
	var mYear = vDateName.value.substr(4,4)
	vDateName.value = mMonth+strSeperator+mDay+strSeperator+mYear;
	}

	//Create a temporary variable for storing the DateType and change
	//the DateType to a 1 for validation.
	var vDateTypeTemp = vDateType;
	vDateType = 1;
	var vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;
	if (!dateValid(vDateValueCheck)) {
	alert("Invalid Date\nPlease Re-Enter");
	vDateType = vDateTypeTemp;
	vDateName.value = "";
	vDateName.focus();
	vDateName.select();
	return false;
	}
	vDateType = vDateTypeTemp;
	return true;
	}
	else {
	if (((vDateValue.length < 8 && dateCheck) || (vDateValue.length == 9 && dateCheck)) && (vDateValue.length >=1)) {
	alert("Invalid Date\nPlease Re-Enter");
	vDateName.value = "";
	vDateName.focus();
	vDateName.select();
	return false;
	         }
	      }
	   }
	}
	else {
	// Non isNav Check
	if (((vDateValue.length < 8 && dateCheck) || (vDateValue.length == 9 && dateCheck)) && (vDateValue.length >=1)) {
	alert("Invalid Date\nPlease Re-Enter");
	vDateName.value = "";
	vDateName.focus();
	return true;
	}
	// Reformat date to format that can be validated. mm/dd/yyyy
	if (vDateValue.length >= 8 && dateCheck) {
	// Additional date formats can be entered here and parsed out to
	// a valid date format that the validation routine will recognize.
	if (vDateType == 1) // mm/dd/yyyy
	{
	var mMonth = vDateName.value.substr(0,2);
	var mDay = vDateName.value.substr(3,2);
	var mYear = vDateName.value.substr(6,4)
	}
	if (vYearLength == 4) {
	if (mYear.length < 4) {
	alert("Invalid Date\nPlease Re-Enter");
	vDateName.value = "";
	vDateName.focus();
	return true;
	   }
	}
	// Create temp. variable for storing the current vDateType
	var vDateTypeTemp = vDateType;
	// Change vDateType to a 1 for standard date format for validation
	// Type will be changed back when validation is completed.
	vDateType = 1;
	// Store reformatted date to new variable for validation.
	var vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;
	if (mYear.length == 2 && vYearType == 4 && dateCheck) {
	//Turn a two digit year into a 4 digit year
	var mToday = new Date();
	//If the year is greater than 30 years from now use 19, otherwise use 20
	var checkYear = mToday.getFullYear() + 30; 
	var mCheckYear = '20' + mYear;
	if (mCheckYear >= checkYear)
	mYear = '19' + mYear;
	else
	mYear = '20' + mYear;
	vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;
	// Store the new value back to the field.  This function will
	// not work with date type of 2 since the year is entered first.
	if (vDateTypeTemp == 1) // mm/dd/yyyy
	vDateName.value = mMonth+strSeperator+mDay+strSeperator+mYear;
	} 
	if (!dateValid(vDateValueCheck)) {
	alert("Invalid Date\nPlease Re-Enter");
	vDateType = vDateTypeTemp;
	vDateName.value = "";
	vDateName.focus();
	return true;
	}
	vDateType = vDateTypeTemp;
	return true;
	}
	else {
	if (vDateType == 1) {
	if (vDateValue.length == 2) {
	vDateName.value = vDateValue+strSeperator;
	}
	if (vDateValue.length == 5) {
	vDateName.value = vDateValue+strSeperator;
	   }
	}

	return true;
	   }
	}
	if (vDateValue.length == 10&& dateCheck) {
	if (!dateValid(vDateName)) {
	// Un-comment the next line of code for debugging the dateValid() function error messages
	//alert(err);  
	alert("Invalid Date\nPlease Re-Enter");
	vDateName.focus();
	vDateName.select();
	   }
	}
	return false;
	}
	else {
	// If the value is not in the string return the string minus the last
	// key entered.
	if (isNav4) {
	vDateName.value = "";
	vDateName.focus();
	vDateName.select();
	return false;
	}
	else
	{
	vDateName.value = vDateName.value.substr(0, (vDateValue.length-1));
	return false;
	         }
	      }
	   }
}
function dateValid(objName) 
{
	var strDate;
	var strDateArray;
	var strDay;
	var strMonth;
	var strYear;
	var intday;
	var intMonth;
	var intYear;
	var booFound = false;
	var datefield = objName;
	var strSeparatorArray = new Array("-"," ","/",".");
	var intElementNr;
	// var err = 0;
	var strMonthArray = new Array(12);
	strMonthArray[0] = "Jan";
	strMonthArray[1] = "Feb";
	strMonthArray[2] = "Mar";
	strMonthArray[3] = "Apr";
	strMonthArray[4] = "May";
	strMonthArray[5] = "Jun";
	strMonthArray[6] = "Jul";
	strMonthArray[7] = "Aug";
	strMonthArray[8] = "Sep";
	strMonthArray[9] = "Oct";
	strMonthArray[10] = "Nov";
	strMonthArray[11] = "Dec";
	//strDate = datefield.value;
	strDate = objName;
	if (strDate.length < 1) {
	return true;
	}
	for (intElementNr = 0; intElementNr < strSeparatorArray.length; intElementNr++) {
	if (strDate.indexOf(strSeparatorArray[intElementNr]) != -1) {
	strDateArray = strDate.split(strSeparatorArray[intElementNr]);
	if (strDateArray.length != 3) {
	err = 1;
	return false;
	}
	else {
	strDay = strDateArray[0];
	strMonth = strDateArray[1];
	strYear = strDateArray[2];
	}
	booFound = true;
	   }
	}
	if (booFound == false) {
	if (strDate.length>5) {
	strDay = strDate.substr(0, 2);
	strMonth = strDate.substr(2, 2);
	strYear = strDate.substr(4);
	   }
	}
	//Adjustment for short years entered
	if (strYear.length == 2) {
	strYear = '20' + strYear;
	}
	strTemp = strDay;
	strDay = strMonth;
	strMonth = strTemp;
	intday = parseInt(strDay, 10);
	if (isNaN(intday)) {
	err = 2;
	return false;
	}
	intMonth = parseInt(strMonth, 10);
	if (isNaN(intMonth)) {
	for (i = 0;i<12;i++) {
	if (strMonth.toUpperCase() == strMonthArray[i].toUpperCase()) {
	intMonth = i+1;
	strMonth = strMonthArray[i];
	i = 12;
	   }
	}
	if (isNaN(intMonth)) {
	err = 3;
	return false;
	   }
	}
	intYear = parseInt(strYear, 10);
	if (isNaN(intYear)) {
	err = 4;
	return false;
	}
	if (intMonth>12 || intMonth<1) {
	err = 5;
	return false;
	}
	if ((intMonth == 1 || intMonth == 3 || intMonth == 5 || intMonth == 7 || intMonth == 8 || intMonth == 10 || intMonth == 12) && (intday > 31 || intday < 1)) {
	err = 6;
	return false;
	}
	if ((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) && (intday > 30 || intday < 1)) {
	err = 7;
	return false;
	}
	if (intMonth == 2) {
	if (intday < 1) {
	err = 8;
	return false;
	}
	if (LeapYear(intYear) == true) {
	if (intday > 29) {
	err = 9;
	return false;
	   }
	}
	else {
	if (intday > 28) {
	err = 10;
	return false;
	      }
	   }
	}
	return true;
}
function LeapYear(intYear) 
{
	if (intYear % 100 == 0) {
	if (intYear % 400 == 0) { return true; }
	}
	else {
	if ((intYear % 4) == 0) { return true; }
	}
	return false;
}

function maskIt(fldVal,objField)
{
   var isNamedFone;	
   var tmpStr = "(";
   keyCount = fldVal.length;
   keyEntered =fldVal.substring(keyCount-1,keyCount);
	
   if (keyCount <= 1)   isNamedFone = false;
   if (!isNamedFone)    
     
   keyCount++;
   switch (keyCount)
   {
	  case 2: 
         tmpStr +=  fldVal;
        objField.value = tmpStr;
         break;
      case 5:
         objField.value += ")" ;
         break;
      case 9:
         objField.value += "-" ;
         break;
   }     
}

//CONVERT DATE FUNCTION 
function convert_date(field1)
{
	var fLength = field1.value.length; // Length of supplied field in characters.
	var divider_values = new Array ('-','.','/',' ',':','_',','); // Array to hold permitted date seperators.  Add in '\' value
	var array_elements = 7; // Number of elements in the array - divider_values.
	var day1 = new String(null); // day value holder
	var month1 = new String(null); // month value holder
	var year1 = new String(null); // year value holder
	var divider1 = null; // divider holder
	var outdate1 = null; // formatted date to send back to calling field holder
	var counter1 = 0; // counter for divider looping 
	var divider_holder = new Array ('0','0','0'); // array to hold positions of dividers in dates
	var s = String(field1.value); // supplied date value variable

	//If field is empty do nothing
	if ( fLength == 0 ) {
	   return true;
	}

	//Check the date is the required length
	if ( fLength != 0 && (fLength < 6 || fLength > 11) ) {
		invalid_date(field1);
		return false;   
		}

	// Find position and type of divider in the date
	for ( var i=0; i<3; i++ ) {
		for ( var x=0; x<array_elements; x++ ) {
			if ( s.indexOf(divider_values[x], counter1) != -1 ) {
				divider1 = divider_values[x];
				divider_holder[i] = s.indexOf(divider_values[x], counter1);
			   //alert(i + " divider1 = " + divider_holder[i]);
				counter1 = divider_holder[i] + 1;
				//alert(i + " counter1 = " + counter1);
				break;
			}
	 	}
	 }

	// if element 2 is not 0 then more than 2 dividers have been found so date is invalid.
	if ( divider_holder[2] != 0 ) {
	   invalid_date(field1);
		return false;   
	}

	// See if no dividers are present in the date string.
	
		
	// 2 dividers are present so continue to process	
	if ( divider_holder[0] != 0 && divider_holder[1] != 0 ) { 	
	  	month1 = field1.value.substring(0, divider_holder[0]);
	  	day1 = field1.value.substring(divider_holder[0] + 1, divider_holder[1]);
	  	//alert(month1);
	  	year1 = field1.value.substring(divider_holder[1] + 1, field1.value.length);
		}

	if ( isNaN(day1) && isNaN(year1) ) { // Check day and year are numeric
		invalid_date(field1);
		return false;  
	   }

	if ( day1.length == 1 ) { //Make d day dd
	   day1 = '0' + day1;  
	}

	if ( month1.length == 1 ) {//Make m month mm
		month1 = '0' + month1;   
	}

	if ( year1.length == 2 ) {//Make yy year yyyy
	   if ( (year1 = validate_year(year1)) == false ) {
	   	invalid_date(field1);
			return false;  
			}
	}

	if ( month1.length == 3 || month1.length == 4 ) {//Make mmm month mm
	   if ( (month1 = convert_month(month1)) == false) {
	   	//alert("month1" + month1);
	   	invalid_date(field1);
	   	return false;  
	   }
	}

	// Date components are OK
	if ( (day1.length == 2 || month1.length == 2 || year1.length == 4) == false) {
	   invalid_date(field1);
	   return false;
	}

	//Validate the date
	if ( (outdate1 = validate_date(day1, month1, year1)) == false ) {

	   alert("The value " + field1.value + " is not a vaild date.\n\r" +  
		"Please enter a valid date in the format mm/dd/yyyy");
		
		field1.focus();
		field1.value="";
		field1.select();
		return false;
	}

	// Redisplay the date in mm/dd/yyyy format
	field1.value = outdate1;
	return true;//All is well

}


 /******************************************************************
convert_month()
   
Function to convert mmm month to mm month 
   
Called by convert_date()    
   
 *******************************************************************/
function convert_month(monthIn) {

	var month_values = new Array ("JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC");

	monthIn = monthIn.toUpperCase(); 

	if ( monthIn.length == 3 ) {
		for ( var i=0; i<12; i++ ) 
			{
	   	if ( monthIn == month_values[i] ) 
	   		{
				monthIn = i + 1;
				if ( i != 10 && i != 11 && i != 12 ) 
					{
	   			monthIn = '0' + monthIn;
					}
				return monthIn;
				}
			}
		}

	else if ( monthIn.length == 4 && monthIn == 'SEPT') {
	   monthIn = '09';
	   return monthIn;
		}
		
	else {
		return false;
		} 
}
/******************************************************************
   invalid_date()
   
   If an entered date is deemed to be invalid, invali
   d_date() is called to display a warning message to
   the user.  Also returns focus to the date  in que
   stion and selects the date for edit.
        
   Called by convert_date()
   
*******************************************************************/
function invalid_date(inField) 
{
	alert("The value " + inField.value + " is not in a vaild date format.\n\r" + 
        "Please enter date in the format mm/dd/yyyy");
	inField.focus();
	inField.value="";
	inField.select();
	return true   
}
/******************************************************************
   validate_date()
   
   Validates date output from convert_date().  Checks
   day is valid for month, leap years, month !> 12,.
   
 
   Notes: Please feel free to use/edit this script.  If you do please keep my comments and details 
   intact and notify me via a quick Email to the address above.  Enjoy!
*******************************************************************/
function validate_date(day2, month2, year2)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   
{                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       
	var DayArray = new Array(31,28,31,30,31,30,31,31,30,31,30,31);                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
	var MonthArray = new Array("01","02","03","04","05","06","07","08","09","10","11","12");                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      
	var inpDate = day2 + month2 + year2;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
	var filter=/^[0-9]{2}[0-9]{2}[0-9]{4}$/;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          

	//Check ddmmyyyy date supplied
	if (! filter.test(inpDate))                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
	  {                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
	  return false;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
	  }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     
	/* Check Valid Month */                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
	filter=/01|02|03|04|05|06|07|08|09|10|11|12/ ;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
	if (! filter.test(month2))                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
	  {                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
	  return false;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      
	  }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
	/* Check For Leap Year */                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
	var N = Number(year2);                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   
	if ( ( N%4==0 && N%100 !=0 ) || ( N%400==0 ) )                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
	  	{                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     
	   DayArray[1]=29;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     
	  	}                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       
	/* Check for valid days for month */                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
	for(var ctr=0; ctr<=11; ctr++)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
	  	{                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     
	   if (MonthArray[ctr]==month2)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      
	   	{                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
	      if (day2<= DayArray[ctr] && day2 >0 )                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       
	        {
	        inpDate = month2 + '/' + day2 + '/' + year2;       
	        return inpDate;
	        }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
	      else                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             
	        {                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
	        return false;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
	        }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
	   	}                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   
	   }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
}
/******************************************************************
   validate_year()
   
   converts yy years to yyyy
   Uses a hinge date of 10
        < 10 = 20yy 
        => 10 = 19yy.
         
   Called by convert_date() before validate_date().
      
 
   Notes: Please feel free to use/edit this script.  If you do please keep my comments and details 
   intact and notify me via a quick Email to the address above.  Enjoy!
*******************************************************************/
function validate_year(inYear) 
{
	if ( inYear < 10 ) 
		{
	   inYear = "20" + inYear;
	   return inYear;
		}
	else if ( inYear >= 10 )
		{
	   inYear = "20" + inYear;
	   return inYear;
		}
	else 
	{
		return false;
	}   
}
//FINISH CONERT DATE FUNCTION CALL


/*******************************************************************/
//Auto set CardType with the CardNumber provided by the User
/*******************************************************************/
function set_CardType(objCardNum,objCardType)
{
	var CardNumber=objCardNum.value;
	var fstCardNum;
	var CardType;
	
	fstCardNum=CardNumber.slice(0,1);
	
	if(parseInt(fstCardNum) < 4)
	{
		fstCardNum=CardNumber.slice(0,2);
	}
	
	switch(parseInt(fstCardNum))
        {
                case 4:
                        CardType='Visa';
                        break;
                case 5:
                        CardType='MasterCard';
                        break;
                case 6:
                        CardType='Discover';
                        break;
                case 30:
                        CardType='Diners Club';
                        break;
                case 34:
                        CardType='American Express';
                        break;
                default:
                        if(!fstCardNum=='')
                        {
               
                                if(navigator.appName=="Netscape")
                                {
                                        sSubmit=document.forms[0].getAttribute("onsubmit");
                                        document.forms[0].setAttribute("onsubmit","return false;"+sSubmit,0);
                                }
                                alert("Invalid CardNumber");
                                objCardNum.value="";
                                objCardNum.focus();
                        }
                        break;
        }
        if(navigator.appName=="Netscape")
        {
                if(sSubmit != "")
                {
                        document.forms[0].setAttribute("onsubmit",sSubmit,0);
                        sSubmit="";
                }
        }


	for(i=0;i<objCardType.length;i++)
	{
		if(objCardType.options[i].value==CardType)
		{
			objCardType.options[i].selected=true;
			break;
		}
	}
}
function getOffsetLeft (el) {
    var ol = el.offsetLeft;
    while ((el = el.offsetParent) != null)
        ol += el.offsetLeft;
    return ol;
}

function getOffsetTop (el) {
    var ot = el.offsetTop;
    while((el = el.offsetParent) != null)
        ot += el.offsetTop;
    return ot;
}

function SelectFromCalendar(frmName,dteBox,btnImg,obj,prevYrs,nxtYrs,calTop,calLeft)
{
	if(obj.value!="")
	{
	objCal=obj.value
	}
   else
    {	
	objCal=new Date();
	}
	
	objprevYrs = prevYrs;
	objnxtYrs = nxtYrs;
	objfrmName = frmName;
	objdateCtrl = dteBox;
	if ( ppcIE ) {
        ppcX = getOffsetLeft(document.images[btnImg]);    
        ppcY = getOffsetTop(document.images[btnImg]) + document.images[btnImg].height;
    }
    else if (ppcNN){
        ppcX = document.images[btnImg].x; 
        ppcY = document.images[btnImg].y + document.images[btnImg].height;
    }
	if ((calLeft) && (calTop) && calTop != "" && calLeft != "")
       {
	   	ppcX = calTop ;    
        ppcY = calLeft;
       }
	dateSelected=eval("obj");
	objCalendar=window.open("Calendar.htm","Calendar", "width=" + 195 + ",height=" + 170 +",left=" + ppcX +",top=" + ppcY +",screenX=" +ppcX +",screenY=" +ppcY);
	objCalendar.focus();
	return false;
}

/*******************************************************************/
