var FullErMsg='';
var lastuinfofldid=0;
var dateVStr=''; //a workspace
var VBdate='';
var VEdate='';
var VBdateStr = '';
var VEdateStr = '';
var daysInMonths = new Array(12);
daysInMonths[0]=31; //Jan
daysInMonths[1]=28;
daysInMonths[2]=31;
daysInMonths[3]=30;
daysInMonths[4]=31;
daysInMonths[5]=30;
daysInMonths[6]=31;
daysInMonths[7]=31;
daysInMonths[8]=30;
daysInMonths[9]=31;
daysInMonths[10]=30;
daysInMonths[11]=31; //Dec

var MonthArray = new Array(12);
MonthArray[0] = 'Jan';
MonthArray[1] = 'Feb';
MonthArray[2] = 'Mar';
MonthArray[3] = 'Apr';
MonthArray[4] = 'May';
MonthArray[5] = 'Jun';
MonthArray[6] = 'Jul';
MonthArray[7] = 'Aug';
MonthArray[8] = 'Sep';
MonthArray[9] = 'Oct';
MonthArray[10] = 'Nov';
MonthArray[11] = 'Dec';

function ValidateForm()
{
	//Extract data, since variables may be used for cookie purposes
	FullErMsg='';
	var LastName=document.getElementById('LastName').value;
	var FirstName=document.getElementById('FirstName').value;
	var City=document.getElementById('City').value;
	var ZipPostal=document.getElementById('ZipPostal').value;
	var PhoneNumber=document.getElementById('PhoneNumber').value;
	var EmailAddress=document.getElementById('EmailAddress').value;
	var Address=document.getElementById('Address').value;
	var AddressLine2=document.getElementById('AddressLine2').value;
	var x=document.getElementById("State");
	var State = x.options[x.selectedIndex].value;
	
	VText('Last Name',LastName,'Y');
	VText('First Name',FirstName,'Y');
	VText('City',City,'Y');
	VText('Address',Address,'Y');
	VText('Zip Postal',ZipPostal,'Y');
	VPhone('Phone Number',PhoneNumber,'Y');
	VEmail('Email Address',EmailAddress,'Y');
	var v = document.getElementById('Qty1');
	OneOrdered=0;
	if (v != undefined)
		OneOrdered=1;

	if (OneOrdered == 0) {
		FullErMsg+='At least one item must be ordered before you can checkout.';
	}
    if (FullErMsg != '')
    {
        alert(FullErMsg);
        return false;
    }
	//Save the entered data for later...
	vinfo=LastName + '|' + FirstName + '|' + Address + '|' + AddressLine2 + '|' + City + '|' + State + '|' + ZipPostal + '|' + PhoneNumber + '|' + EmailAddress;
	set_info(vinfo);	    
	return true;
}

function ValidateCForm(form) {
	FullErMsg='';
	var ua = window.navigator.userAgent;
    var frame = document.getElementById('ppbuyertrk_go'); //Frame ID

    if (frame) {
        if (frame.contentDocument && frame.contentDocument.body.offsetHeight || ua.indexOf ( "MSIE " ) == -1) {
            // FireFox, Mozilla, et. al. (W3C) syntax
			try {
				var LastName=frame.elements['LastName'].value; //FIELD 1
				var FirstName=frame.elements['FirstName'].value; //FIELD 1
				var Address=frame.elements['Address'].value; //FIELD 2
				var AddressLine2=frame.elements['AddressLine2'].value; //FIELD 3
				var City=frame.elements['City'].value; //FIELD 4
				var State=frame.elements['State'].value;
				var ZipPostal=frame.elements['ZipPostal'].value; //FIELD 5
				var PhoneNumber=frame.elements['PhoneNumber'].value; //FIELD 6
				var EmailAddress=frame.elements['EmailAddress'].value; //FIELD 7
				var CCNbr=frame.elements['CCNumber'].value; //FIELD 8
				var CCExpire=frame.elements['CCExpires'].value; //FIELD 9
				var CCSecurity=frame.elements['CCSecurity'].value; //FIELD 10
			} catch(err) {
				var i = 0;
			}
        } else if (ua.indexOf ( "MSIE " ) > -1) {
            // MSIE syntax
			var FirstName = document.getElementById('FirstName').value;
			var LastName = document.getElementById('LastName').value;
			var Address = document.getElementById('Address').value;
			var City = document.getElementById('City').value;	
			var ZipPostal = document.getElementById('ZipPostal').value;
			var PhoneNumber = document.getElementById('PhoneNumber').value;	
			var EmailAddress = document.getElementById('EmailAddress').value;
			var CCNbr = document.getElementById('CCNumber').value;
			var CCExpire = document.getElementById('CCExpires').value;
			var CCSecurity = document.getElementById('CCSecurity').value;
        } else {
			alert("I'm sorry, but your browser hiccupped! Cannot process this order.");
			return false;
		}
	}

	VText('First Name',FirstName,'Y');
	VText('Last Name',LastName,'Y');
	VText('Address',Address,'Y');
	VText('City',City,'Y');
	VText('Zip/Postal',ZipPostal,'Y');
	VPhone('Phone',PhoneNumber,'N');
	VEmail('Email Address',EmailAddress,'Y');
	Vcc('Credit Card Number',CCNbr,'Y');
	VCCExpDate('CC Expiration Date',CCExpire,'Y');
	VNumber('CC Security code',CCSecurity, '','$%@.,',2,'Y');
	var v = document.getElementById('Qty1');
	OneOrdered=0;
	if (v != undefined)
		OneOrdered=1;

	if (OneOrdered == 0) {
		FullErMsg+='At least one item must be ordered before you can checkout.';
	}
	if (FullErMsg !='') {
		alert(FullErMsg);
		return false;
	}
	//Save the entered data for later...
	vinfo=LastName + '|' + FirstName + '|' + Address + '|' + AddressLine2 + '|' + City + '|' + State + '|' + ZipPostal + '|' + PhoneNumber + '|' + EmailAddress;
	set_info(vinfo);	
	return true;
}
function ToggleBkg(){
}
function AddToCart(parms,id,lmt) {
	var forceExit=false;
	var x = document.getElementById('HiddenFrame');
	var y = document.getElementById('sizes' + id);
	var z = document.getElementById('colors' + id);
	var u = document.getElementById('uinfo' + id);
	var s = document.getElementById('addqty' + id);
	var yd = document.getElementById('yards' + id);
	//Spot check: is there a defined limit for this item?
    if (yd / 1 > 0) {
        if (s.value / 1 > lmt / 1 && lmt / 1 != 0) {
    		alert("I'm sorry, but there is a quantity limit of " + lmt + " units per order for this item.");
    		return;
    	}
    }
	//Ensure there are enough items to fulfill this order
	var tid = "addqty" + id;
	var wqty = document.getElementById(tid).value;
	var avinfo='';
	var avdata='';
	for (var i=0;i<itmCntsNbr;i++) {
		var tmp = itmCnts[i];	
		avinfo=tmp.split("|");
		if (avinfo[0] == id) {
			break;
		}
	}
	if (avinfo[1] != -1) {
		if ((wqty / 1) > (avinfo[1] / 1)) {
			//Oops, can't do it
			alert("I'm sorry, but you have attempted to order more items (" + wqty + ") than are available (" + avinfo[1] + ") for sale!");
			return
		}
	}
	
	//patch up the item name to reflect any color or size options
	var parts=parms.split('\&');
	var itmn = parts[1].split('=');
	var opts=itmn[1] + ' ';
	var thisitm = parts[1].split('=');
	
	try {
		opts+='~ Size: ' + y.value;
	} catch(err) {
		opts+='';
	}
	try {
		opts+='~ Color: ' + z.value;
	} catch(err) {
		opts+='';
	}
	try {
		FullErMsg = '';
		var tu = u.value;
		tu = tu.replace(/&/g, ".and.");
		u.value = tu;		
		ChkText('For \'Customize this item...\'',u.value,'Y');
		if (FullErMsg != '') {
			if (lastuinfofldid) {
				document.getElementById('uinfo' + lastuinfofldid).style.backgroundColor='#FFFFFF';
			}
			alert('In the item Options for: ' + thisitm[1] + '\n' + FullErMsg);
			document.getElementById('uinfo' + id).style.backgroundColor='#FF6666';			
			forceExit=true;
			lastuinfofldid = id;
		}
		opts+='~ Info: ' + u.value;
	} catch(err) {
		opts+='';
	}
	try {
		var sp = s.value;
	} catch (err) {
		var sp = 1;
	}
	try {
		var yards = yd.value;
		var ydorder = yards.split('|!|');
		var lit = '~ Yards: ' + ydorder[0] + ' yards @ \$' + ydorder[1];
		opts+=lit;
		//patch up the passed itemcost value to replace it with the yardage value
		var repl = parts[2];
		parms = parms.replace(repl,'itemcost=' + ydorder[1]);
	} catch(err) {
		var lit='';
	}
	if (!forceExit) {
		parms=parms.replace(itmn[1], opts);
		parms=parms.replace('itemnbr=1','itemnbr=' + sp);
		parms+='&addqty=' + sp;
		parms+='&qtylimit=' + lmt;
		x.src = GlobalURLLink + 'ppcart.php' + parms;
	}
}
function ChkText(field, text, required)
{
	required = required.toUpperCase();
	if (required == 'Y') {
		if (text == '' || text.length == 0) {
			FullErMsg+=field + ': An entry is required.\n';
			return false;
		}
	}
	if (required == 'N' && text.length == 0)
		return true;
	//Are we all spaces?
	var tcnt=0;
	for (var i=0; i < text.length; i++)
	{
		if (text.charAt(i) == ' ')
		{
			tcnt++;
		}
	}
	if (tcnt == text.length)
	{
		if (required == 'Y')
		{
			FullErMsg+=field + ': A non-space entry is required.\n';
			return false;
		} else {
			FullErMsg+=field + ': An all-space entry is meaningless; erase or reenter.\n';
			return false;
		}
	}
	return true;
}
function SetShowCart() {
	var x=parent.document.getElementById('DisplayFrame');
	x.src=GlobalURLLink + 'ppcart.php?cmd=show';
}
function DoUpdateByType(type,id,parms) {
	var x = document.getElementById('upditm' + id);
	var y = document.getElementById('Qty' + id);
	VNumber('Quantity',y.value,'.,$%','',0,'N');
	if (FullErMsg != '') {
		alert(FullErMsg);
		window.location.href=GlobalURLLink + 'ppcart.php?cmd=show';
	}
	var k = 0;
	if (type == 'chg') {
		x.action+='&type=change&nqty=' + y.value + '&nparms=' + parms;
	} else if (type == 'del') {
		x.action+='&type=delete&nqty=0&nparms=' + parms;
	}
	x.submit();
}
function VNumber(field,text,ChrsAllowed,ChrsDisallowed,dps,required) {
	//initially, numbers are treated as text
	required = required.toUpperCase();
	if (required == 'Y')
	{
		if (text.value == '' || text.length == 0)
		{
			FullErMsg+=field + ': An entry is required.\n';
			return false;
		}
	}
	if (required == 'N' && text.length ==0)
		return true;
	//Are we all spaces?
	var spcCnt=0;
	var noNbr=0; //When charcter is not a number and not an allowed special character...
	var dpflg=0; //flag to track number of decimal points
	var dpval=''; //the digits after a .
	var disac=0; //disallowed character count
	for (var i=0; i < text.length; i++)
	{
		if (text.charAt(i) == ' ')
		{
			spcCnt++;
		}
		//Characters that CAN be in the entry (optional ones)
		var pf = 0;
		for (var k=0; k<ChrsAllowed.length;k++) //scan for allowed characters
		{
			if (text.charAt(i) == ChrsAllowed.charAt(k))
				pf=1; //flag it
		}
		if (pf != 1 && isNaN(text.charAt(i)))
			noNbr++;
			
		//Characters that shouldn't be in the entry		
		
		for (var k=0; k<ChrsDisallowed.length;k++)
		{
			if (text.charAt(i) == ChrsDisallowed.charAt(k))
				disac++; //flag it
		}
		//save dp digits
		if (text.charAt(i) == '.')
		{
			dpflg = 1;
		} else {
			if (dpflg == 1)
			{
				dpval+=text.charAt(i);
			}
		}
	}
	if (spcCnt == text.length)
	{
		if (required == 'Y')
		{
			FullErMsg+=field + ': A non-space entry is required.\n';
			return false;
		} else {
			FullErMsg+=field + ': Entry cannot be all spaces.\n';
		}
	}
	if (disac !=0)
	{
		//format the characters
		var fmtDA = '';
		for (i = 0;i<ChrsDisallowed.length - 1;i++)
		{
			fmtDA+=ChrsDisallowed.charAt(i) + ' ';
		}
		fmtDA+=ChrsDisallowed.charAt(i);
		FullErMsg+=field + ': Number cannot contain the characters: ' + fmtDA + '\n';
		return false;
	}
	if (noNbr !=0)
	{
		FullErMsg+=field + ': Number contains text characters.\n';;
		return false;
	}

	if (dpval.length != dps && dpflg == 1)
	{
		FullErMsg+=field + ': Too many digits after decimal point (only ' + dps + ' allowed)';
		return false;
	}

	return true;
}

function Vcc(field, cc_nbr, required) {
	required = required.toUpperCase();
	if (required == 'Y')
	{
		if (cc_nbr.value == '' || cc_nbr.length == 0)
		{
			FullErMsg+= field + ': Entry required\n';
			return true;
		}
	}
		var i = cc_nbr.length;
	if (required == 'N' && required =='')
		return true;
	if (required == 'Y' && cc_nbr.length == 0)
	{
		FullErMsg+= field = ': Entry required\n';
		return false;
	}
	var wrkcc='';
	var msg='';
	var foundError = 0;
	var badChar=0;
	var tmp='';
	for (var idx=0;idx<cc_nbr.length;idx++)
	{
		var xx = cc_nbr.charAt(idx);
		if (isNaN(xx))
		{
			if (xx != '-' && xx != ' ')
			{
				badChar++;
			}
		} else {
			if (xx == ' '|| xx == '-')
				xx='';
			wrkcc+=xx;
		}
	}
	tmp = wrkcc+'';
	if (tmp.length != 16)
	{
		FullErMsg+=field + ': Contains too few digits\n';
		return false;
	}
	if (badChar != 0)	{
		FullErMsg+=field + ': Contains characters other than numbers or \' \' and \'-\'.\n';
		return false;
	} else {
		tmp = test_cc_number(wrkcc, field);
		if (tmp != '') {
			FullErMsg+=tmp;
			return false;
		}
	}
	return true;
}
function test_cc_number (wrkcc, field) {
	var crc_tl=0;
	var foundError =0;
	var msg='';
	var xx='';
	var wrk = '';
	var xtmp='';
	var tmp=0;
	var alt=1;
	for (var idx=0;idx<wrkcc.length;idx++)
	{
		xx = wrkcc.charAt(idx);
		if (alt == 0) {
			/* x1 - since this can never be higher than 9, we can
			ignore values > 10 */
			crc_tl+=xx / 1;
			alt=1;
		} else {
			//x2 - this can be > 10, but never more than 2 digits (9 * 2 = 18)
			tmp=(xx / 1) * 2;
			if (tmp < 10) {
				//just add it in and go on
				crc_tl+=tmp / 1;
			} else {
				//we have a two-digit result
				xtmp=tmp+'';
				wrk = xtmp.charAt(0) + xtmp.charAt(1)
				var d1 = xtmp.charAt(0) / 1;
				var d2 = xtmp.charAt(1) / 1;
				crc_tl+=d1 / 1;
				crc_tl+=d2 / 1;
			}
			alt=0;
		}
	}
	//now look at the last digit of the total, if 0 ok, if not, well, it's not okay
	wrk=crc_tl+''; //to string
	idx = wrk.length - 1;
	var tdigit=wrk.charAt(idx) / 1;
	if (tdigit != 0 && tdigit != '0')
		FullErMsg+= field + ': Number is invalid.\n';
	return(msg);
}


function VCCExpDate(field, date, required)
{
	erFnd=0;
	edateVStr='';
	required = required.toUpperCase();
	if (required == 'N' && date.length ==0)
		return true;
	var erFlg = 0;
	var parseat = 0;
	var mon = '';
	var year = '';
	var tmp = '';
	erMsg='';

	if (date.length == 0)
	{
		FullErMsg+=field + ': Entry required\n';
		return 1;
	}
	for (var i=0;i < date.length;i++)
	{
		if (date.charAt(i) != '/')
		{
			if (parseat == 0)
				mon+=date.charAt(i);
			if (parseat == 1)
				year+=date.charAt(i);
		} else {
			parseat++;
		}
	}

	var myfail=0;
	var ly=ChkLeapYear(year);
	if (ly)
		daysInMonths[1]++;
	//Check out the values
	if (mon < 1 || mon > 12 || isNaN(mon))
	{
		FullErMsg+=field + ': Invalid month\n';
		erFlg++;
		myfail++;
	}
	//Peek at the year
	if (year.length == 2)
		year = '20' + year;
	if (year < 2000)
	{
		FullErMsg+=field + ': Invalid year\n';
		erFlg++;
		myfail++;
	}
	if (myfail != 0)
		return true;
		
	var myDate = new Date();
	var dYear = myDate.getFullYear();	
	var dMon = myDate.getMonth() + 1;
	var TodayIs=MonthArray[dMon - 1] + ' 1, ' + dYear;
	tmp = MonthArray[mon - 1] + ' 1, ' + year;
	if (mon == dMon && year == dYear)
		return true; //expiration is through current month and year
	if (ChkDatesRev(tmp,TodayIs))
		FullErMsg+=field + ': Expiration date has already passed! Change!\n';	
}

function ChkLeapYear(intYear) {
	if (intYear % 100 == 0)
	{
		if (intYear % 400 == 0) { return true; }
	} else {
		if ((intYear % 4) == 0) { return true; }
	}
	return false;
}
function VPhone(field, phone, required)
{
	required = required.toUpperCase();
	if (required == 'Y')
	{
		if (phone.value == '' || phone.length == 0)
		{
			FullErMsg+= field + ': Entry required\n';
			return true;
		}
	}
	if (required == 'N' || required =='')
	{
		if (phone.length == 0)
		{
			return true;
		}
	}
	var i=0;
	if (phone.length < 10)
	{
		FullErMsg+= field + ': Phone Number too short to be valid: must include Area Code.\n';
		return false;
	}
	var nNbr = '';
	if (phone.charAt(0) == '1' && (phone.charAt(1) == '-' || phone.charAt(1) == '('))
	{
		for (i = 2; i < phone.length;i++)
		{
			nNbr+=phone.charAt(i);
		}
		phone = nNbr;
		nNbr='';
	}
		
	var pSep=0; 
	var noNbr=0;
	var fChr='';
	nNbr='';
	mCnt=0;
	for (i=0;i<phone.length;i++)
	{
		if (phone.charAt(i) != '\.' && phone.charAt(i) != '-' && phone.charAt(i)!='(' && phone.charAt(i)!=')' && phone.charAt(i)!=' ')
		{
			if (isNaN(phone.charAt(i)))
			{
				noNbr=1;
			} else {
				nNbr+=phone.charAt(i);
				pSep++;
				if (pSep == 3 || pSep == 6)
					nNbr+='-';
				if (fChr == '')
				{
					fChr = phone.charAt(i); 
				} else {
					if (fChr == phone.charAt(i))
						mCnt++;
				}
			}
		}
	}
	if (noNbr == 1)
	{
		FullErMsg+=field + ': Invalid character or symbol in number\n';
		return false
	}
	mCnt+=3; 
	if (mCnt== nNbr.length)
	{
		FullErMsg+=field + ': Unlikely; all numbers are the same\n';
		return false;
	}
	if (nNbr.length < 12)
	{
		FullErMsg+=field + ': Number too short (missing Area Code?)\n';
		return false
	}
	if (nNbr.length > 12)
	{
		FullErMsg+=field + ': Number too long (extra digits seen)\n';
		return false;
	}
	return true;
				
}

function VText(field, text, required)
{
	required = required.toUpperCase();
	if (required == 'Y')
	{
		if (text == '' || text.length == 0)
		{
			FullErMsg+=field + ': An entry is required.\n';
			return false;
		}
	}
	if (required == 'N' && text.length == 0)
		return true;
	
	var tcnt=0;
	for (var i=0; i < text.length; i++)
	{
		if (text.charAt(i) == ' ')
		{
			tcnt++;
		}
	}
	if (tcnt == text.length)
	{
		if (required == 'Y')
		{
			FullErMsg+=field + ': A non-space entry is required.\n';
			return false;
		} else {
			FullErMsg+=field + ': An all-space entry is meaningless; erase or reenter.\n';
			return false;
		}
	}
	return true;
}

function VEmail(field,email,required)
{
	required = required.toUpperCase();
	if (required == 'Y')
	{
		if (email.value == '' || email.length == 0)
		{
			FullErMsg+= field + ': Entry required\n';
			return true;
		}
	}
	if (required == 'N' || required =='')
	{
		if (email.length == 0)
		{
			return true;
		}
	}
	var atCnt=0;
	var dotCnt=0;
	for (var i = 0;i < email.length; i++)
	{
		if (email.charAt(i) == '@')
			atCnt++;
		if (email.charAt(i) == '.')
			dotCnt++;
	}
	if (atCnt == 0 || dotCnt ==0)
	{
		FullErMsg+= field + ': Address missing \"\@\" or \"\.\" or both\n';
		return false;
	}
	if (email.length == 5 || email.length < 5)
	{
		FullErMsg+= field + ': Email address too short to be valid\n';
		return false;
	}
	return true;
}
function ChkDatesRev(from, to) {
	if (Date.parse(from) <= Date.parse(to))
	{
		return true;
	} else {
		return false;
    }
}
function Vcc(field, cc_nbr, required) {
	required = required.toUpperCase();
	if (required == 'Y')
	{
		if (cc_nbr.value == '' || cc_nbr.length == 0)
		{
			FullErMsg+= field + ': Entry required\n';
			return true;
		}
	}
		var i = cc_nbr.length;
	if (required == 'N' && required =='')
		return true;
	if (required == 'Y' && cc_nbr.length == 0)
	{
		FullErMsg+= field = ': Entry required\n';
		return false;
	}
	var wrkcc='';
	var msg='';
	var foundError = 0;
	var badChar=0;
	var tmp='';
	for (var idx=0;idx<cc_nbr.length;idx++)
	{
		var xx = cc_nbr.charAt(idx);
		if (isNaN(xx))
		{
			if (xx != '-' && xx != ' ')
			{
				badChar++;
			}
		} else {
			if (xx == ' '|| xx == '-')
				xx='';
			wrkcc+=xx;
		}
	}
	tmp = wrkcc+'';
	if (tmp.length != 16)
	{
		FullErMsg+=field + ': Contains too few digits\n';
		return false;
	}
	if (badChar != 0)	{
		FullErMsg+=field + ': Contains characters other than numbers or \' \' and \'-\'.\n';
		return false;
	} else {
		tmp = test_cc_number(wrkcc, field);
		if (tmp != '') {
			FullErMsg+=tmp;
			return false;
		}
	}
	return true;
}
function test_cc_number (wrkcc, field) {
	var crc_tl=0;
	var foundError =0;
	var msg='';
	var xx='';
	var wrk = '';
	var xtmp='';
	var tmp=0;
	var alt=1;
	for (var idx=0;idx<wrkcc.length;idx++)
	{
		xx = wrkcc.charAt(idx);
		if (alt == 0) {
			/* x1 - since this can never be higher than 9, we can
			ignore values > 10 */
			crc_tl+=xx / 1;
			alt=1;
		} else {
			//x2 - this can be > 10, but never more than 2 digits (9 * 2 = 18)
			tmp=(xx / 1) * 2;
			if (tmp < 10) {
				//just add it in and go on
				crc_tl+=tmp / 1;
			} else {
				//we have a two-digit result
				xtmp=tmp+'';
				wrk = xtmp.charAt(0) + xtmp.charAt(1)
				var d1 = xtmp.charAt(0) / 1;
				var d2 = xtmp.charAt(1) / 1;
				crc_tl+=d1 / 1;
				crc_tl+=d2 / 1;
			}
			alt=0;
		}
	}
	//now look at the last digit of the total, if 0 ok, if not, well, it's not okay
	wrk=crc_tl+''; //to string
	idx = wrk.length - 1;
	var tdigit=wrk.charAt(idx) / 1;
	if (tdigit != 0 && tdigit != '0')
		FullErMsg+= field + ': Number is invalid.\n';
	return(msg);
}


function VCCExpDate(field, date, required)
{
	erFnd=0;
	edateVStr='';
	required = required.toUpperCase();
	if (required == 'N' && date.length ==0)
		return true;
	var erFlg = 0;
	var parseat = 0;
	var mon = '';
	var year = '';
	var tmp = '';
	erMsg='';

	if (date.length == 0)
	{
		FullErMsg+=field + ': Entry required\n';
		return 1;
	}
	for (var i=0;i < date.length;i++)
	{
		if (date.charAt(i) != '/')
		{
			if (parseat == 0)
				mon+=date.charAt(i);
			if (parseat == 1)
				year+=date.charAt(i);
		} else {
			parseat++;
		}
	}

	var myfail=0;
	var ly=ChkLeapYear(year);
	if (ly)
		daysInMonths[1]++;
	//Check out the values
	if (mon < 1 || mon > 12 || isNaN(mon))
	{
		FullErMsg+=field + ': Invalid month\n';
		erFlg++;
		myfail++;
	}
	//Peek at the year
	if (year.length == 2)
		year = '20' + year;
	if (year < 2000)
	{
		FullErMsg+=field + ': Invalid year\n';
		erFlg++;
		myfail++;
	}
	if (myfail != 0)
		return true;
		
	var myDate = new Date();
	var dYear = myDate.getFullYear();	
	var dMon = myDate.getMonth() + 1;
	var TodayIs=MonthArray[dMon - 1] + ' 1, ' + dYear;
	tmp = MonthArray[mon - 1] + ' 1, ' + year;
	if (mon == dMon && year == dYear)
		return true; //expiration is through current month and year
	if (ChkDatesRev(tmp,TodayIs))
		FullErMsg+=field + ': Expiration date has already passed! Change!\n';	
}

function ChkLeapYear(intYear) {
	if (intYear % 100 == 0)
	{
		if (intYear % 400 == 0) { return true; }
	} else {
		if ((intYear % 4) == 0) { return true; }
	}
	return false;
}
function SetCookie (name, value) {
	var argv = SetCookie.arguments;
	var argc = SetCookie.arguments.length;
	var expires = (argc > 2) ? argv[2] : null;
	var path = (argc > 3) ? argv[3] : null;
	var domain = (argc > 4) ? argv[4] : null;
	var secure = (argc > 5) ? argv[5] : false;
	path='/'; //Insure availability to all, even if created from an IFRAME
	document.cookie = name + '=' + escape (value) +
		((expires == null) ? '' : ('; expires=' + expires.toGMTString())) +
		((path == null) ? '' : ('; path=' + path)) +
		((domain == null) ? '' : ('; domain=' + domain)) +
		((secure == true) ? '; secure' : '');
}
function set_info(mInfo) {
	var expdate = new Date ();
	expdate.setTime (expdate.getTime() + (24 * 60 * 60 * 1000 * 365 * 5));
	if (mInfo != '') 
		SetCookie ('ecmInfo', mInfo, expdate);
}
function SubmitAll() {
	//Could put this as part of the <a href, but put it here in case future changes are needed
	frames['DisplayFrame'].document.forms['ppbuyertrk_go'].submit();
}
function CloseLoader() {
	var ua = window.navigator.userAgent;
	var msie = ua.indexOf ( 'MSIE ' );
	var dspType='table-cell';
	if ( msie > 0 )      // If Internet Explorer, use this
		dspType='inline';  	
	try {
		parent.document.getElementById('loader').style.display='none';
	} catch(err) { //In case we aren't using it...
	}
}

