function getObj(obj_id) {
	
	var obj = null ;
	
	if (document.getElementById)	{ obj = document.getElementById(obj_id) ; }
	else if (document.all)			{ obj = document.all[obj_id] ; }
	
	return obj ;
}

function disableAdd(turnOff) {
	
	a1Obj		= getObj("A1") ;
	a2Obj		= getObj("A2") ;
	cityObj		= getObj("city") ;
	stateObj	= getObj("state") ;
	zipObj		= getObj("zip") ;
	
	a1Obj.disabled		= turnOff ;
	a2Obj.disabled		= turnOff ;
	cityObj.disabled	= turnOff ;
	stateObj.disabled	= turnOff ;
	zipObj.disabled		= turnOff ;
	
	if (!turnOff) {
		getObj("A1_d").style.color = "#990000" ;
		getObj("city_d").style.color = "#990000" ;
		getObj("state_d").style.color = "#990000" ;
		getObj("zip_d").style.color = "#990000" ;
	} else  {
		getObj("A1_d").style.color = "#FFFFFF" ;
		getObj("city_d").style.color = "#FFFFFF" ;
		getObj("state_d").style.color = "#FFFFFF" ;
		getObj("zip_d").style.color = "#FFFFFF" ;
	}
	
	return ;
}

function verifyTemps(tempType) {

	var allGood		= true ;
	var formObj		= document.forms['tempSel'] ;
	var templates	= new Array() ;
	var errorObj	= getObj('errorMsg') ;
	var errorMsg	= "" ;
	var key			= "" ;
	var subkey		= "" ;
	var checkCount	= 0 ;
	var i			= 0 ;
	var j			= 0 ;
	
	if (tempType == "BC")	{ var len = 2 ; errorMsg = "Please select a front and back before proceeding" ; }
	else					{ var len = 1 ; errorMsg = "Please select a template before proceeding" ; }

	for (i=0; i<len; i++) {

 		j = 0 ;
		key = "t"+i+"_" ;
		subkey = key+j ;

		while (document.getElementById(subkey)) {

			if (document.getElementById(subkey).checked) { checkCount++ ; }
			j++ ;
			subkey = key+j ;
		}
	}

	allGood = (checkCount == len) ;
	
	if (!allGood)	{ errorObj.innerHTML = errorMsg ; }
	else 			{ formObj.submit(); }
	
}

function verifyPrintData() {
	
	var formObj		= document.forms['printOrder'] ;
	var len			= formObj.elements.length ;
	var errorObj	= getObj('errorMsg') ;
	var errorMsg	= "At least one item must be provided for printing!" ;
	var allGood		= false ;
	var i			= 0 ;
	var tally		= 0 ;
	var goodAdd		= (((getObj('A1').value != "") || (getObj('A2').value != "")) && (getObj('city').value != "") && (getObj('zip').value != "")) ;
	var goodPhone	= ((getObj('phone_0').value != "") && (getObj('phone_1').value != "") && (getObj('phone_2').value != "") && isNum(getObj('phone_0').value) && isNum(getObj('phone_1').value) && isNum(getObj('phone_2').value) && ((getObj('phone_3').value == "") || isNum(getObj('phone_3').value))) ;

	var partAdd		= ((getObj('A1').value != "") || (getObj('A2').value != "") || (getObj('city').value != "") || (getObj('state').value.selected) || (getObj('zip').value != "")) ;
	var partPhone	= ((getObj('phone_0').value != "") || (getObj('phone_1').value != "") || (getObj('phone_2').value != "")) ;

	allGood = (allGood || (getObj('coName').value != "")) ;
	allGood = (allGood || (getObj('slogan').value  != "")) ;
	allGood = (allGood || goodPhone) ;
	allGood = (allGood || goodAdd) ;
	allGood = (allGood || (getObj('email').value != "")) ;
	allGood = (allGood || (getObj('url').value != "")) ;
	allGood = (allGood || (getObj('other').value != "")) ;

	if (partAdd && !goodAdd)		{ errorMsg = "<BR>Please provide a <B>complete</B> address" ; }
	if (partPhone && !goodPhone)	{ errorMsg = "<BR>Please provide a <B>complete</B> 7-digit phone number" ; }
	
	if (!allGood)	{ errorObj.innerHTML = errorMsg ; }
	else 			{ formObj.submit() ; }
	
}

function checkCard() {

	var cardType	= document.forms['payShip'].elements['cardType'] ;
	var cardNum		= getObj('cardNum').value.replace(/[ ]*/g, '') ;
	var cardCVV		= getObj('cardCVV').value.replace(/[ ]*/g, '') ;

	for(i=0; i<cardType.length; i++) {
		if (cardType[i].checked) {
			cardType = cardType[i].value ;
			break ;
		}
	}

	// Maker sure the card number is valid input
	
	// Now check that the card number is valid
	var prefix		= "" ;
	var checkSum	= 0 ;
	var len			= cardNum.length ;
	var func		= null ;
	var digit		= 0 ;

	var doubleDigit = function(x) { return 2*x ; }
	var keepDigit	= function(x) { return x ; }

	func = keepDigit ;
	
	// Get the checksum
	for(i=(len-1); i>=0; i--) {

		digit = func(parseInt(cardNum.charAt(i))) ;

		if (digit >= 10) {
			digit = ((Math.floor(digit/10)) + (digit % 10));
		}

		checkSum += parseInt(digit) ;
			
		if (func == doubleDigit)	{ func = keepDigit ; }
		else						{ func = doubleDigit ; }
	}

	// Run Mastercard specific checks
	if (cardType == "MC") {

		return true ;
	}
	
	// Run Visa specific checks
	else if (cardType == "VS") {

		return true ;
	}
	
	else if (cardType == "AX") {
	
		return true ;
	}

	else { return false ; }
}

function verifyPayShip(checkVal, currMon, currYear) {

	var checkPay		= (checkVal == 'true') ;
	var formObj			= document.forms['payShip'] ;

	var allGood			= true ;
	var goodAdd			= (((getObj('A1').value != "") || (getObj('A2').value != "")) && (getObj('city').value != "") && (getObj('zip').value != "")) ;
	var goodPhone		= ((getObj('phone_0').value != "") && (getObj('phone_1').value != "") && (getObj('phone_2').value != "") && isNum(getObj('phone_0').value) && isNum(getObj('phone_1').value) && isNum(getObj('phone_2').value) && ((getObj('phone_3').value == "") || isNum(getObj('phone_3').value))) ;
	var goodFax			= ((getObj('fax_0').value != "") && (getObj('fax_1').value != "") && (getObj('fax_2').value != "") && isNum(getObj('fax_0').value) && isNum(getObj('fax_1').value) && isNum(getObj('fax_2').value)) ;
	var partAdd			= ((getObj('A1').value != "") || (getObj('A2').value != "") || (getObj('city').value != "") || (getObj('state').value.selected) || (getObj('zip').value != "")) ;
	var partPhone		= ((getObj('phone_0').value != "") || (getObj('phone_1').value != "") || (getObj('phone_2').value != "")) ;
	var partFax			= ((getObj('fax_0').value != "") || (getObj('fax_1').value != "") || (getObj('fax_2').value != "")) ;
	var contactName		= getObj('contactName').value ;
	var contactEmail	= getObj('contactEmail').value ;
	var willShip		= getObj('ship1').checked ;
	
	if (checkPay) {
		var cardMon		= getObj('cardMon').value ;
		var cardYear	= getObj('cardYear').value ;
		var cardName	= getObj('cardName').value ;
		var goodDate	= checkDate(cardMon, cardYear, currMon, currYear) ;
		var goodCard	= checkCard() ;
	}
	
	allGood = (allGood && (contactName != "")) ;
	allGood = (allGood && goodPhone) ;
	allGood = (allGood && (((contactEmail != "") && (isEmail(contactEmail))) || (goodFax))) ;
	
	if (checkPay) { allGood = (allGood && goodCard && goodDate && (cardName != "")) ; }
	if (willShip) { allGood = (allGood && goodAdd) ; }
	
	if (!allGood) {
		var errorObj = getObj('errorMsg') ;
		var msg = "Please provide all required information" ;
		if (checkPay && (!goodCard || !goodDate || (cardName == ""))) { msg += "<BR><B>Valid Credit Card information is required!</B>" ; }
		
		errorObj.innerHTML = msg ;
	}
	
	else { formObj.submit() ; }
}

function checkDate(mon, year, currMon, currYear) {
	
	if (year > currYear)	{ return true ; }
	if (year < currYear)	{ return false ; }
	
	return (getNum(mon) >= getNum(currMon)) ;
}

function getNum(mon) {
	
	if (mon == "JAN")	{ return 1 ; }
	if (mon == "FEB")	{ return 2 ; }
	if (mon == "MAR")	{ return 3 ; }
	if (mon == "APR")	{ return 4 ; }
	if (mon == "MAY")	{ return 5 ; }
	if (mon == "JUN")	{ return 6 ; }
	if (mon == "JUL")	{ return 7 ; }
	if (mon == "AUG")	{ return 8 ; }
	if (mon == "SEP")	{ return 9 ; }
	if (mon == "OCT")	{ return 10 ; }
	if (mon == "NOV")	{ return 11 ; }
	if (mon == "DEC")	{ return 12 ; }
	
	return -1 ;
}

function isEmail(parm) {
	
	var len = parm.length ;
	var foundat = false ;
	
	if (!isValid(parm,lwr+upr+numb+'-'+'_'+'@'+'.')) { return false ;}
	
	for(i=0; ((i<len) && !foundat); i++) {
		foundat = ((parm.charAt(i) == '@') && (i != (len - 1))) ;
	}
	
	return foundat ;
}

function isValid(parm,val) {
	if (parm == "")	{ return false ; }
	for (i=0; i<parm.length; i++) {
		if (val.indexOf(parm.charAt(i),0) == -1) { return false ; }
	}
	return true;
}

function isAlphaSpaceDot(parm)	{ return isValid(parm,lwr+upr+' '+'.') ; }
function isNum(parm)			{ return isValid(parm,numb) ; }
function isPrintable(parm)		{ return isValid(parm,lwr+upr+numb+keys) ; }

var numb			= '0123456789';
var lwr				= 'abcdefghijklmnopqrstuvwxyz';
var upr				= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
var keys			= '!@#$%^&*()-_+=[]\{}|;\':",./<>?\n\t\r' ;

function printOrder() {
	
	if (window.print)	{ window.print() ; }
	else				{ alert("We are sorry, but this script does not work in your browser.\nPlease use your browser's File > Print option") ; }
	
	return ;
}
