//global variables
var dateAdj,xmlhttp,cost,item_total,x,i,c,z,str;
var browser=navigator.appName;
var b_version=navigator.appVersion;
var version=parseFloat(b_version);

//random functions usable across all pages
function trim(stringToTrim) {return stringToTrim.replace(/^\s+|\s+$/g,"");}
function ltrim(stringToTrim) {return stringToTrim.replace(/^\s+/,"");}
function rtrim(stringToTrim) {return stringToTrim.replace(/\s+$/,"");}

function unCheckRadio(oRadio){
var or=document.getElementsByName(oRadio);
for (i=0;i<or.length;i++){or[i].checked=false;}
}
//set the radio button with the given value as being checked
//do nothing if there are no radio buttons
//if the given value does not exist, all the radio buttons
//are reset to unchecked
function setCheckedValue(radioObj, newValue) {
	if(!radioObj){
		return;}
	if(newValue=="created_in"){
		newValue=document.getElementById('created_in').value;
		newValue=newValue.substring(newValue.indexOf("("))
		newValue=newValue.replace("(","");
		newValue=newValue.replace(")","");
		if(newValue!="PC"&&newValue!="Mac"){
			return;}
	}
	var radioLength = radioObj.length;
	if(radioLength == undefined) {
		radioObj.checked = (radioObj.value == newValue.toString());
		return;
	}
	for(var i = 0; i < radioLength; i++) {
		radioObj[i].checked = false;
		if(radioObj[i].value == newValue.toString()) {
			radioObj[i].checked = true;
		}
	}
}

//return the value of the radio button that is checked
//return an empty string if none are checked, or
//there are no radio buttons
function getCheckedValue(radioObj) {
	if(!radioObj)
		return "";
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "";
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return "";
}

function setVal(sel,str){//set select value
for(z=0;z<sel.options.length;z++){if(str==sel.options[z].value){sel.selectedIndex=z;}}}


/*
* Title Caps
* 
* Ported to JavaScript By John Resig - http://ejohn.org/ - 21 May 2008
* Original by John Gruber - http://daringfireball.net/ - 10 May 2008
* License: http://www.opensource.org/licenses/mit-license.php
*/

(function(){
var small = "(a|an|and|as|at|but|by|en|for|if|in|of|on|or|the|to|v[.]?|via|vs[.]?)";
var punct = "([!\"#$%&'()*+,./:;<=>?@[\\\\\\]^_`{|}~-]*)";

this.titleCaps = function(title){
var parts = [], split = /[:.;?!] |(?: |^)["Ò]/g, index = 0;

while (true) {
var m = split.exec(title);
parts.push( title.substring(index, m ? m.index : title.length)
.replace(/\b([A-Za-z][a-z.'Õ]*)\b/g, function(all){
return /[A-Za-z]\.[A-Za-z]/.test(all) ? all : upper(all);
})
.replace(RegExp("\\b" + small + "\\b", "ig"), lower)
.replace(RegExp("^" + punct + small + "\\b", "ig"), function(all, punct, word){
return punct + upper(word);
})
.replace(RegExp("\\b" + small + punct + "$", "ig"), upper));

index = split.lastIndex;

if( m ) parts.push( m[0] );
else break;
}

return parts.join("").replace(/ V(s?)\. /ig, " v$1. ")
.replace(/(['Õ])S\b/ig, "$1s")
.replace(/\b(AT&T|Q&A)\b/ig, function(all){
return all.toUpperCase();
});
};

function lower(word){return word.toLowerCase();}

function upper(word){return word.substr(0,1).toUpperCase() + word.substr(1);}
})();

function getCheckedValue(radioObj){
if(!radioObj){return "";}
var radioLength=radioObj.length;
if(radioLength==undefined){
if(radioObj.checked){return radioObj.value;}else{return "";}
for(i=0;i<radioLength;i++){
if(radioObj[i].checked){return radioObj[i].value;}
}
}
return "";
}

function setVal(sel,str){//set select value
for(z=0;z<sel.options.length;z++){
if(str==sel.options[z].value){sel.selectedIndex=z;}
}
}
function EnforceMaximumLength(field, len){
ltrim(field.value)
if(field.value.length>len){field.value=field.value.substr(0, len);
alert("This field restricted to "+len+" characters!");}
}

function unRedBorder(elem){for(i=0;i<10;i++){if(document.getElementById(elem+i)!=null){	document.getElementById(elem+i).style.borderColor="black";}}}

function unRed(elem){
var elemID = document.getElementById(elem)
if(elemID){
if(elem.substring(0,2)==="d1"||elem.substring(0,2)==="d2"||elem.substring(0,4)==="file"||elem.substring(0,4)==="mate"||elem.substring(0,4)==="ship"||elem.substring(0,4)==="spon"||elem.substring(0,4)==="logo"){
elemID.style.backgroundColor="#f0f8ff";
elemID.setAttribute("background-color", "#f0f8ff");}
elemID.style.color='navy';
elemID.setAttribute("color", "navy");
}else if(elem="delivery_method"){
arr=document.getElementsByName('delivery_method');
var arlen=arr.length;
for(var i=0; i < arlen; i++){
var obj=document.getElementsByName('delivery_method').item(i);
obj.parentNode.style.color='navy';
obj.parentNode.setAttribute("color", "navy");}
}return true;}

// American Numbering System
var th = ['','thousand','million','billion','trillion'];
// uncomment this line for English Number System
// var th = ['','thousand','million','milliard','billion']; 
var dg = ['zero','one','two','three','four','five','six','seven','eight','nine']; 
var tn = ['ten','eleven','twelve','thirteen','fourteen','fifteen','sixteen','seventeen','eighteen','nineteen']; 
var tw = ['twenty','thirty','forty','fifty','sixty','seventy','eighty','ninety']; 
function toWords(s){s = s.toString(); s = s.replace(/[\, ]/g,''); if(s != String(parseFloat(s))) return 'not a number'; var x = s.indexOf('.'); if(x == -1) x = s.length; if(x > 15) return 'too big'; var n = s.split(''); var str = ''; var sk = 0; for (var i=0; i < x; i++) {if((x-i)%3==2) {if(n[i] == '1') {str += tn[Number(n[i+1])] + ' '; i++; sk=1;} else if(n[i]!=0) {str += tw[n[i]-2] + ' ';sk=1;}} else if(n[i]!=0) {str += dg[n[i]] +' '; if((x-i)%3==0) str += 'hundred ';sk=1;} if((x-i)%3==1) {if(sk) str += th[(x-i-1)/3] + ' ';sk=0;}} if(x != s.length) {var y = s.length; str += 'point '; for (var i=x+1; i<y; i++) str += dg[n[i]] +' ';} return str.replace(/\s+/g,' ');}

//functions for page 1 (file and price info)
//date functions
Date.prototype.addDays=function(d){
this.setDate( this.getDate()+d );
};
Date.prototype.addWeekDays=function(d){
var startDay=0;
startDay=this.getDay();//current weekday 0 thru 6
var wkEnds=0;//# of weekends needed
var partialWeek=d % 5;//# of weekdays for partial week
if(d < 0){//subtracting weekdays 
wkEnds=Math.ceil(d/5); //negative number weekends
switch (startDay){
case 6://start Sat. 1 less weekend
if(partialWeek===0 && wkEnds < 0) 
wkEnds++;
break;
case 0://starting day is Sunday
if(partialWeek===0) 
d++;//decrease days to add
else 
d--;//increase days to add
break;
default:
if(partialWeek <= -startDay) 
wkEnds--;
}
}else if(d>0){//adding weekdays
wkEnds=Math.floor(d/5);
var w=wkEnds;
switch (startDay){
case 6:
/* If staring day is Sat. and
* no partial week one less day needed
* if partial week one more day needed
*/
if(partialWeek===0) 
d--;
else 
d++;
break;
case 0://Sunday
if(partialWeek===0 && wkEnds>0) 
wkEnds--;
break;
default:
if(5 - startDay < partialWeek) 
wkEnds++;}
}
d += wkEnds * 2;
this.addDays(d);};

//function to calculate local (Plymoputh, NH) time in a city given the city's UTC offset
function calcPlymTime() {
var pDate=document.getElementById('order_date').value;
var d = new Date(pDate.substring(0,4),(pDate.substring(5,7)-1),pDate.substring(8,10),pDate.substring(11,13),pDate.substring(14,16),pDate.substring(17,19));
// offset entered here - one each for Spring (-4) and Fall (-5) 
if (isDST()==="true"){var offset="-4";}else{var offset="-5";}
var utc = d.getTime() + (d.getTimezoneOffset() * 60000);

//alert("utc="+utc);
var nd = new Date(utc + (3600000*offset));
return nd;
}

function isDST() {
var pDate=document.getElementById('order_date').value;
var b,e,c;
var year =new Date(pDate.substring(0,4),(pDate.substring(5,7)-1),pDate.substring(8,10),pDate.substring(11,13),pDate.substring(14,16),pDate.substring(17,19));
year=year.getFullYear();
var mar1 = new Date(year, 2, 1);
var sun2mar = 15 - mar1.getDay();
var spring = new Date("Mar " + sun2mar + ", " + year + " 2:00:00");
var b = Date.parse(spring);
// Get the date to 'fall back'
var nov1 = new Date(year, 10, 1);
var sun1nov = 8 - nov1.getDay();
var fall = new Date("Nov " + sun1nov + ", " + year + " 2:00:00");
var e = Date.parse(fall);
var c = new Date(pDate);
if((c <= e && c >= b)) {
return true;
}
return false;
}


function dueDate(hMonth,hDay,hYear,dateEle){
	var formEle=0;
	formEle=dateEle;
	var dueDate=calcPlymTime();
	dueDate.setFullYear(hYear);
	dueDate.setMonth(hMonth);
	dueDate.setDate(hDay);
	var xmlhttpDD=getXmlHttpObject();
	if(xmlhttpDD==null){alert("Browser does not support HTTP Request");return;}
	var url="./ajax/holiday.php";
	url=url+"?month="+hMonth;
	url=url+"&day="+hDay;
	url=url+"&year="+hYear;
	url=url+"&sid="+Math.random();
	xmlhttpDD.onreadystatechange=function(){
	if(xmlhttpDD.readyState==4){
		if(xmlhttpDD.status==200){
			var dateAdj=xmlhttpDD.responseText;
			dueDate.setFullYear(hYear);
			dueDate.setMonth(hMonth);
			dueDate.setDate(hDay);
			dueDate.addWeekDays(Number(dateAdj));
			if(formEle=='sdDate'){dueDate.setDate(dueDate.getDate()+6 - dueDate.getDay());}
			document.getElementById(formEle).value=dueDate.toDateString();}
		fillDate('delivery_method');}};
	xmlhttpDD.open("GET", url, true);
	xmlhttpDD.send(null);
}

function deliveryDate(){
try {if(document.getElementById('order_type')) var orderType=document.getElementById('order_type').value;} catch(e){var orderType=0;}
var noItems=document.getElementById('num_items').value;
var shipZip=document.getElementById('ship_zip').value;
shipZip=shipZip.replace(/^\s+/,"");
document.getElementById('ship_zip').value=shipZip;
if(!noItems || !shipZip){return false;
}else{
var itemAdj=(Math.ceil(noItems/20));
if(orderType==='Vinyl Banner'||orderType==='Backlit Graphics'){itemAdj++;}
var pu=calcPlymTime();
var puItemAdj=itemAdj +1;
pu.addWeekDays(puItemAdj);
var puDay=pu.getDate();
var puMonth=pu.getMonth();
var puYear=pu.getFullYear();
var newPuDate=dueDate(puMonth,puDay,puYear,'puDate');
var es=calcPlymTime();
var esItemAdj=itemAdj +2;
es.addWeekDays(esItemAdj);
var esDay=es.getDate();
var esMonth=es.getMonth();
var esYear=es.getFullYear();
var newEsDate=dueDate(esMonth,esDay,esYear,'esDate');
var so=calcPlymTime();
var soItemAdj=itemAdj +1;
so.addWeekDays(soItemAdj);
var soDay=so.getDate();
var soMonth=so.getMonth();
var soYear=so.getFullYear();
var newSoDate=dueDate(soMonth,soDay,soYear,'soDate');
var po=calcPlymTime();
var poItemAdj=itemAdj +1;
po.addWeekDays(poItemAdj);
var poDay=po.getDate();
var poMonth=po.getMonth();
var poYear=po.getFullYear();
var newPoDate=dueDate(poMonth,poDay,poYear,'poDate');
var sd=calcPlymTime();
sd.addWeekDays(itemAdj);
var sdDay=sd.getDate();
var sdMonth=sd.getMonth();
var sdYear=sd.getFullYear();
var newSdDate=dueDate(sdMonth,sdDay,sdYear,'sdDate');
return newPuDate;
return newEsDate;
return newSoDate;
return newPoDate;
if(today=4 && noItems <11){return newSdDate;}
}
//test to see if quantity has changed since start of calculations
var nItems=document.getElementById('num_items').value;
if(nItems!=noItems){deliveryDate();}
return false;
}

function fillDate(radioObjName){
var e=document.getElementsByName(radioObjName);
if(e[0].checked){
var methodDate=document.getElementById('esDate').value;
var methodCost=document.getElementById('esCost').value;
var shipMethod="via FedEx 2nd Day.<br />On "+methodDate;
}else if(e[1].checked){
var methodDate=document.getElementById('soDate').value;
var methodCost=document.getElementById('soCost').value;
var shipMethod="via FedEx Standard<br />On "+methodDate;
}else if(e[2].checked){
var methodDate=document.getElementById('poDate').value;
var methodCost=document.getElementById('poCost').value;
var shipMethod="via FedEx Priority<br />On "+methodDate;
}else if(e[3].checked){
var methodDate=document.getElementById('intDate').value;
var methodCost=document.getElementById('intCost').value;
var shipMethod="International delivery - call for pricing and ship times.";
}else if(e[4].checked){
var methodDate=document.getElementById('puDate').value;
var methodCost=document.getElementById('puCost').value;
var shipMethod="Pick up at our office.<br />No earlier than "+methodDate;
}else if(e[5].checked){
var methodDate=document.getElementById('sdDate').value;
var methodCost=document.getElementById('sdCost').value;
var shipMethod="via FedEx Sat. Delivery<br />On "+methodDate;
}else{
document.getElementById('ship_meth').innerHTML="";}
var methDate=new Date(methodDate);
var shipMeth = document.getElementById('ship_meth');
if (methDate.toDateString()!=="Invalid Date"){
document.getElementById('deliver_date').value=methDate.toDateString();}
if(!methodCost){
document.getElementById('ship_cost').value='';
var arr=new Array();
arr=document.getElementsByName('delivery_method');
var arlen=arr.length;
for(var i=0; i < arlen; i++){
var obj=document.getElementsByName('delivery_method').item(i);
obj.parentNode.style.color='red';}
}else{
try {if(document.getElementById('fedex_acct')) var fedEx=document.getElementById('fedex_acct').value;} catch(e){var fedEx=0;}
if(fedEx.length>8){
methodCost=0;
shipMethod=shipMethod+"<br/>(Billed to your account)"}
document.getElementById('ship_cost').value=methodCost;
var subShip=parseFloat(document.getElementById('ship_cost').value)+parseFloat(document.getElementById('sub_total').value);
if(!isNaN(subShip)&&subShip!==0){document.getElementById('total_cost').value=subShip.toFixed(2);}else{document.getElementById('total_cost').value='';}
shipMeth.innerHTML=shipMethod;
shipMeth.className=="viz_ship";
shipMeth.setAttribute("class", "viz_ship");
shipMeth.setAttribute("className", "viz_ship");
var arr=new Array();
arr=document.getElementsByName('delivery_method');
var arlen=arr.length;
for(var i=0; i < arlen; i++){
var obj=document.getElementsByName('delivery_method').item(i);
obj.parentNode.style.color='#000';}
}
if(document.getElementById('ship_cost').value!=''&&document.getElementById('deliver_date').value!=''){document.getElementById('next').disabled=false;}
}

//ajax xmlhttp function (reusable)
function getXmlHttpObject(){
if(window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safari
return new XMLHttpRequest();}
if(window.ActiveXObject){// code for IE6, IE5
return new ActiveXObject("Microsoft.XMLHTTP");}
return null;}

//main ajax cost lookup function
function itemCost(x, extra){
try {if(document.getElementById('order_type')) var orderType=document.getElementById('order_type').value;} catch(e){var orderType=0;}
if(document.getElementById('uv'+x)!==null){UVlookup(x);}
var str= document.getElementById('code'+x).value;
var xmlhttp=getXmlHttpObject();
if(xmlhttp==null){alert("Browser does not support HTTP Request form will not be able to calculate costs!");
return;}
var url="./ajax/cost.php";
url=url+"?key="+str;
url=url+"&x="+x;
url=url+"&sid="+Math.random();
xmlhttp.onreadystatechange=function (){
if(xmlhttp.readyState==4){
if(xmlhttp.status==200) {var unitPreCost=xmlhttp.responseText;
try {if(document.getElementById('d1'+x)!==null&&document.getElementById('d1'+x).value) var objL1=parseInt(document.getElementById('d1'+x).value);} catch(e){var objL1=0;}
try {if(document.getElementById('d2'+x)!==null&&document.getElementById('d2'+x).value) var objL2=parseInt(document.getElementById('d2'+x).value);} catch(e){var objL2=0;}
if(objL1!=0 && objL2!=0){
var objL=((objL1+objL2) * 2)/12;
var objA=(objL1 * objL2)/144;
var objB=(objL1 * objL2)
var objPerim=Math.ceil(objL);
var finValue=document.getElementById('finish'+x);
if(finValue != null){
if(finValue.value=='VL'){document.getElementById('fin'+x).value=objPerim;
}else if(finValue.value!='NO' && finValue.value!=''){
if(orderType=="Backlit Graphics"){var velcroMulti=1;}else{var velcroMulti=2;}
document.getElementById('fin'+x).value=(objPerim*velcroMulti);
}else{document.getElementById('fin'+x).value=0;}
document.getElementById('area'+x).value=objA;}
}
var qtyZ=document.getElementById('qty'+x).value;
var disCount=1;
//discount if-then
if(orderType=="Large Format Print" || orderType=="Backlit Graphics" || orderType=="Cutout" || orderType=="ISO Poster"){
if(qtyZ>1 && qtyZ < 4){disCount=.9;
}else if(qtyZ < 10 && qtyZ>3){disCount=.8;
}else if(qtyZ < 25 && qtyZ>9){disCount=.7;
}else if(qtyZ < 50 && qtyZ>24){disCount=.6;
}else if(qtyZ>49){disCount=.5;
}else{disCount=1;}
}else if(orderType=="Banner Stand"){
disCount=1;//get multiplier out of the way - we don't need it (x*1=x)
//zero out our variables
var bsEC=parseInt(0);var rsEC=parseInt(0);var bsPR=parseInt(0);var rsPR=parseInt(0);var blPR=parseInt(0);var rlPR=parseInt(0);var bsPW=parseInt(0);var rsPW=parseInt(0);var blPW=parseInt(0);var rlPW=parseInt(0);
//first loop - get the quantities of each product
for (i=0; i < 10; i++){
try {if(document.getElementById('code'+i)!==null&&document.getElementById('code'+i).value!==undefined) var objCode=document.getElementById('code'+i).value;} catch(e){var objCode="0";}
try {if(document.getElementById('qty'+i)!==null&&document.getElementById('qty'+i).value!==undefined) var objQty=document.getElementById('qty'+i).value;} catch(e){var objQty=0;}
objQty= parseInt(objQty);
if(isNaN(objQty)){objQty=0;}
switch(objCode){
case "0":break;
case "BSEC":bsEC+=objQty;break;
case "RSEC":rsEC+=objQty;break;
case "BSPR":bsPR+=objQty;break;
case "RSPR":rsPR+=objQty;break;
case "BLPR":blPR+=objQty;break;
case "RLPR":rlPR+=objQty;break;
case "BSPW":bsPW+=objQty;break;
case "RSPW":rsPW+=objQty;break;
case "BLPW":blPW+=objQty;break;
case "RLPW":rlPW+=objQty;break;}
}//close first "for" statement 
for (i=0; i < 10; i++){
try {if(document.getElementById('code'+i)!==null&&document.getElementById('code'+i).value!==undefined) var objCode=document.getElementById('code'+i).value;} catch(e){var objCode="0";}
try {if(document.getElementById('qty'+i)!==null&&document.getElementById('qty'+i).value!==undefined) var objQty=document.getElementById('qty'+i).value;} catch(e){var objQty=0;}
objQty= parseInt(objQty);
if(isNaN(objQty)){objQty=0;}
var objDisc=document.getElementById('discount'+i);
switch(objCode){
case "0":break;
case "RSEC":
if(rsEC<3){var rsECv=0;}else if(rsEC<10){var rsECv=20;}else if(rsEC>9){var rsECv=40;}
objDisc.value=(rsECv);break;
case "RSPR":
if(rsPR<3){var rsPRv=0;}else if(rsPR<10){var rsPRv=20;}else if(rsPR>9){var rsPRv=40;}
objDisc.value=(rsPRv);break;
case "RLPR":
if(rlPR<3){var rlPRv=0;}else if(rlPR<10){var rlPRv=20;}else if(rlPR>9){var rlPRv=40;}
objDisc.value=(rlPRv);break;
case "RSPW":
if(rsPW<3){var rsPWv=0;}else if(rsPW<10){var rsPWv=20;}else if(rsPW>9){var rsPWv=40;}
objDisc.value=(rsPWv);break;
case "RLPW":
if(rlPW<3){var rlPWv=0;}else if(rlPW<10){var rlPWv=20;}else if(rlPW>9){var rlPWv=40;}
objDisc.value=(rlPWv);break;
case "BSEC":
if(bsEC<3){var bsECv=0;}else if(bsEC<10){var bsECv=25;}else if(bsEC>9){var bsECv=49;}
objDisc.value=(bsECv);break;
case "BSPR":
if(bsPR<3){var bsPRv=0;}else if(bsPR<10){var bsPRv=45;}else if(bsPR>9){var bsPRv=70;}
objDisc.value=(bsPRv);break;
case "BLPR":
if(blPR<3){var blPRv=0;}else if(blPR<10){var blPRv=45;}else if(blPR>9){var blPRv=70;}
objDisc.value=(blPRv);break;
case "BSPW":
if(bsPW<3){var bsPWv=0;}else if(bsPW<10){var bsPWv=63;}else if(bsPW>9){var bsPWv=80;}
objDisc.value=(bsPWv);break;
case "BLPW":
if(blPW<3){var blPWv=0;}else if(blPW<10){var blPWv=63;}else if(blPW>9){var blPWv=80;}
objDisc.value=(blPWv);break;}
}//close second "for" statement
}else{
//If all else fails...no discount! (So that we don't accidentally multiply by 0 and give things away!)
disCount=1;}
try {if(document.getElementById('uvCost'+x)) var uvZ=document.getElementById('uvCost'+x).value;} catch(e){var uvZ=0;}
if(isNaN(parseFloat(uvZ))){var costZ=parseFloat(unitPreCost);}else{var costZ=parseFloat(unitPreCost)+parseFloat(uvZ);}
try {if(document.getElementById('fin'+x)) var objPerimCost=document.getElementById('fin'+x).value;} catch(e){var objPerimCost=0;}		
if(objPerimCost==undefined){objPerimCost=0;}
var adjItemCost=parseFloat(objPerimCost)+(parseFloat(costZ)*parseFloat(disCount));
//Cost if-then, vinyl or wallpaper first - priced by sqft
if(orderType==="Vinyl Banner" || orderType==="Wallpaper"){
document.getElementById('sf_cost'+x).value=adjItemCost.toFixed(2);
var objHanger=document.getElementById('hanger'+x);
if(objHanger!==null){
var side1=document.getElementById('d1'+x);
var side2=document.getElementById('d2'+x);
var sSide=side1[side1.selectedIndex].value;
var lSide=side2[side2.selectedIndex].value;
var hangerStyle=objHanger[objHanger.selectedIndex].value;
if(hangerStyle=='NONE'){var hangerCost=0;}else{
if(hangerStyle.substr(0,4)=='ALUM'){var baseVal=12;hangMult=10;}else{var baseVal=6;hangMult=5;}
if(hangerStyle.substr(4,1)=="S"){var hangerCost=baseVal+(Math.ceil(sSide/12)*hangMult);
}else if(hangerStyle.substr(4,1)=="L"){var hangerCost=baseVal+(Math.ceil(lSide/12)*hangMult);}
}}
if(orderType==="Vinyl Banner"){
	var objUnitCost=(parseFloat(adjItemCost)*parseFloat(objA))+parseFloat(hangerCost);
}else if(orderType==="Wallpaper" && document.getElementById('material'+x)[document.getElementById('material'+x).selectedIndex].value==="RFAB"){
	var objUnitCost=(parseFloat(adjItemCost)*parseFloat(objA));
}else{var objUnitCost=(adjItemCost*objB);}
document.getElementById('unit_cost'+x).value=objUnitCost.toFixed(2);
var itemTotalCost=objUnitCost * parseFloat(qtyZ);
}else{		//not Vinyl, thus priced by unit
if(orderType=="Backlit Graphics"){if(str.substr(2,2)=="PP"){adjItemCost=(adjItemCost*2);}else{adjItemCost=(adjItemCost+parseFloat(extra));}}
if(orderType=="Popup"){
var stifFner = document.getElementById('stiff_cost'+x).value;
adjItemCost = parseFloat(adjItemCost)+parseFloat(stifFner);}
var unitValue=parseFloat(adjItemCost);
if(orderType==="Banner Stand"){
var bsDisCount=document.getElementById('discount'+x).value;
var extCost=0;
if(document.getElementById('extension'+x).checked){
if(document.getElementById('replacement_banner'+x).checked){extCost=25;
}else if(document.getElementById('material'+x).value==="PR"){extCost=30;
}else{extCost=48;}
unitValue=(unitValue+extCost);}
unitValue=unitValue-bsDisCount;}
var unitValueZ=unitValue.toFixed(2);
if(isNaN(unitValueZ)){document.getElementById('unit_cost'+x).value='';
}else{document.getElementById('unit_cost'+x).value=unitValueZ;}
var itemTotalCost=(unitValue.toFixed(2)*parseFloat(qtyZ));}
var itemTotalCostZ=itemTotalCost.toFixed(2);
if(isNaN(itemTotalCostZ)){document.getElementById('item_total'+x).value='';
}else{document.getElementById('item_total'+x).value=itemTotalCostZ;}
// get total number of items
var i, count=document.getElementsByTagName("input");
var countElm=0;
for (i=0; i < count.length; i++){
if(count[i].id.match(/^qty\d/)){countElm++;}
}
var sum=0; // The sum starts off at 0
for (var i=0; i < countElm; i++){
var qtZ=0;
try {if(document.getElementById('qty'+i).value) qtZ=document.getElementById('qty'+i).value;} catch(e){qtZ=0;}
if(isNaN(parseInt(qtZ))){qtZ=0;}
sum += parseInt(qtZ);} // Add the value to the sum
document.getElementById('num_items').value=parseInt(sum);
// subtotal and total costs
var i, count=document.getElementsByTagName("input");
var countElm=0;
for (i=0; i < count.length; i++){
if(count[i].id.match(/^item_total\d/)){countElm++;}
}
var sumz=0; // The sum starts off at 0
for (var i=0; i < countElm; i++){
var item_totalz=0;
try { if(document.getElementById('item_total'+i)!==null&&document.getElementById('item_total'+i).value) item_totalz=document.getElementById('item_total'+i).value;} catch(e){item_totalz=0;}
if(isNaN(parseFloat(item_totalz))){item_totalz=0;}
sumz += parseFloat(item_totalz);} // Add the value to the sum
var shipCost=document.getElementById('ship_cost').value;
var subTotal=document.getElementById('sub_total').value;
if(!isNaN(sumz)&&sumz!==0){document.getElementById('sub_total').value=sumz.toFixed(2);}else{document.getElementById('sub_total').value='';}
if(!isNaN(shipCost)&&!isNaN(subTotal)&&sumz!==0){
document.getElementById('total_cost').value=sumz.toFixed(2);}
itemWeight(x);}
}};
xmlhttp.open("GET", url, true);
xmlhttp.send(null);
}


//extra backlit cost lookup function
function backlitCost(x){
var backMaterial=document.getElementById('material'+x);
if(backMaterial[backMaterial.selectedIndex].value==="CL"){
var str=document.getElementById('code'+x).value;
str="NOPP"+str.substring(4,9);
var xmlhttp=getXmlHttpObject();
if(xmlhttp==null){alert("Browser does not support HTTP Request form will not be able to calculate costs!");
return;}
var url="./ajax/cost.php";
url=url+"?key="+str;
url=url+"&x="+x;
url=url+"&sid="+Math.random();
xmlhttp.onreadystatechange=function (){
if(xmlhttp.readyState==4){
if(xmlhttp.status==200) {
var backPreCost=xmlhttp.responseText;
itemCost(x,backPreCost);}
}
};
xmlhttp.open("GET", url, true);
xmlhttp.send(null);
}else{itemCost(x)}
}

function UVlookup(x){
if(document.getElementById('uv'+x).checked==true){
var str=document.getElementById('code'+x).value;
var sbstr=str.substr(4);
var str='NOPP'+sbstr;
var xmlhttpUV=getXmlHttpObject();
if(xmlhttpUV==null){alert("Browser does not support HTTP Request");
return;}
var url="./ajax/uv.php";
url=url+"?str="+str;
url=url+"&sid="+Math.random();
xmlhttpUV.onreadystatechange=function(){
if(xmlhttpUV.readyState==4) {
if(xmlhttpUV.status==200) {
var uvAdj=xmlhttpUV.responseText;
document.getElementById('uvCost'+x).value=(uvAdj/10);}
}
};
xmlhttpUV.open("GET", url, true);
xmlhttpUV.send(null);
}else{
document.getElementById('uvCost'+x).value=0;}
}

function stiffNer(x){
sCost=document.getElementById('stiff_cost'+x);
if(document.getElementById('stiff'+x).checked==false){
sCost.value=0;
document.getElementById('stiff_tag'+x).innerHTML="I'll provide my own.";
}else{
sCost.value=25;
document.getElementById('stiff_tag'+x).innerHTML="I need Megaprint stiffeners.";
}
itemCost(x);
}

//shipping weight funtions
function itemWeight(x){
try {if(document.getElementById('order_type')) var orderType=document.getElementById('order_type').value;} catch(e){var orderType=0;}
var strIW=document.getElementById('code'+x).value;
var weightCode=strIW.slice(0,4);
if(orderType==="Big Check"||orderType==="Cutout"){weightCode=strIW;}
var xmlhttpIW=getXmlHttpObject();
if(xmlhttpIW==null){alert("Browser does not support HTTP Request");
return;}
var url="./ajax/weight.php";
url=url+"?key="+weightCode;
url=url+"&x="+x;
url=url+"&sid="+Math.random();
xmlhttpIW.onreadystatechange=function(){
if(xmlhttpIW.readyState==4){
if(xmlhttpIW.status==200) {
var itemWeight=xmlhttpIW.responseText;
itemWeight=parseFloat(itemWeight);
var itemQty =document.getElementById('qty'+x).value;
if(orderType=="Popup"&&document.getElementById('stiff'+x).checked==true){
itemWeight=itemWeight+0.5;}
if(document.getElementById('area'+x)!==null&&document.getElementById('area'+x).value!==undefined){
itemArea=document.getElementById('area'+x).value
var subWeight=itemWeight*itemQty*itemArea;
}else{
var subWeight=parseFloat(itemWeight)*parseInt(itemQty);}
document.getElementById("weight"+x).value=subWeight.toFixed(2);
pkgWeight(x);}
}
};
xmlhttpIW.open("GET", url, true);
xmlhttpIW.send(null);
}

function pkgWeight(x){
try {if(document.getElementById('order_type')) var orderType=document.getElementById('order_type').value;} catch(e){var orderType=0;}
var strPW=document.getElementById('code'+x).value;
var weightCode=strPW.slice(0,4);
var xmlhttpPW=getXmlHttpObject();
if(xmlhttpPW==null){alert("Browser does not support HTTP Request");
return;}
var url="./ajax/pkg.php";
url=url+"?key="+weightCode;
url=url+"&x="+x;
url=url+"&sid="+Math.random();
xmlhttpPW.onreadystatechange=function(){
if(xmlhttpPW.readyState==4){
if(xmlhttpPW.status==200) {
var pkWeight=xmlhttpPW.responseText;
if(orderType==="Vinyl Banner"){
var vynWtCode=strPW.substr(4,4);
var pkgWtMult;
switch(vynWtCode){
case "0001":
pkgWtMult=2;
break;
case "0050":
pkgWtMult=3;
break;
case "0100":
pkgWtMult=4;
break;
case "0250":
pkgWtMult=5;
break;
case "0500":
pkgWtMult=6;
break;
case "1000":
pkgWtMult=7;
break;
case "2000":
pkgWtMult=8;
break;
}
document.getElementById("pkg_wt"+x).value=pkWeight*pkgWtMult;
}else{document.getElementById("pkg_wt"+x).value=pkWeight;}
totalWeight();}
}
};
xmlhttpPW.open("GET", url, true);
xmlhttpPW.send(null);
}
function totalWeight(){
var sumWt=0;
// total item weight
var sumw=0; // The sum starts off at 0
for (var t=0; t < 10; t++){
var wtZ=0;
try {if(document.getElementById('weight'+t)!==null&&document.getElementById('weight'+t).value!==undefined) wtZ=document.getElementById('weight'+t).value;} catch(e){ wtZ=0;}
if(isNaN(parseFloat(wtZ))){wtZ=0;}
sumw += (parseFloat(wtZ)); /* Add the value to the sum*/}
sumWt=sumw; 

// total pkg weight
var sump=0; // The sum starts off at 0
for (var x=0; x < 10; x++){
var pkgWtz=0;
try {if(document.getElementById('pkg_wt'+x)!==null&&document.getElementById('pkg_wt'+x).value!==undefined) pkgWtz=document.getElementById('pkg_wt'+x).value;} catch(e){ pkgWtz=0;}
if(isNaN(parseFloat(pkgWtz))){pkgWtz=0;}
if(pkgWtz>sump){sump = parseFloat(pkgWtz);} /* Add the value to the sum*/}

sumWt=sumw+sump;
document.getElementById('total_wt').value=sumWt.toFixed(2);
try { if(document.getElementById('ship_zip').value ) var shipZip=document.getElementById('ship_zip').value;} catch(e){ var shipZip='';}
if(shipZip!=''){
shipFill();}
}
//shipping cost functions
function shipFill(){
document.getElementById('next').disabled=true;
var shipStd=shipCost("Standard");
var shipExp=shipCost("2nd_Day");
var shipPro=shipCost("Priority");
return shipStd;
return shipExp;
return shipPro;
}
function shipCost(ship){
var weight=document.getElementById("total_wt").value;
var zip=document.getElementById("ship_zip");
var quan=document.getElementById("num_items").value;
if(zip.value=='' && quan!=''){document.getElementById("zip_label").style.color='red';
if(document.getElementById('created')!==null&&getCheckedValue("created")!="PC"&&getCheckedValue("created")!="Mac"){
document.getElementById("created").style.color='red';}}
var xmlhttpSC=getXmlHttpObject();
if(xmlhttpSC==null){alert("Browser does not support HTTP Request");
return;}
var url="./ajax/ship.php";
url=url+"?weight="+weight;
url=url+"&ship="+ship;
url=url+"&zip="+zip.value;
url=url+"&sid="+Math.random();
xmlhttpSC.onreadystatechange=function(){
if(xmlhttpSC.readyState==4){
if(xmlhttpSC.status==200) {
var ship_cost=xmlhttpSC.responseText;
var code=0;
if(ship=="Standard"){code="soCost";
}else if(ship=="Priority"){code="poCost";
}else if(ship=="2nd_Day"){code="esCost";
}else if(ship=="Saturday"){code="sdCost";}
if(isNaN(parseFloat(ship_cost))){ship_cost=0;}
var ship_cost_pre_round=parseFloat(ship_cost)+3;
if(ship_cost_pre_round>3){
document.getElementById(code).value=ship_cost_pre_round.toFixed(2);
if(code=="poCost"){satDeliveryPrice(25);}
}else{document.getElementById(code).value='';}
}
}
};
xmlhttpSC.open("GET", url, true);
xmlhttpSC.send(null);
fillDate('delivery_method');
}

function satDeliveryPrice(x){
var PrioCost=document.getElementById('poCost').value;
PrioCost=parseFloat(PrioCost)+x;
if(PrioCost>0){document.getElementById('sdCost').value=PrioCost.toFixed(2);
}else{document.getElementById('sdCost').value='';}
fillDate('delivery_method');
}
function shipPrice(x){
var ship_price=document.getElementById(x).value; 
if(ship_price!=''){
document.getElementById('ship_cost').value=parseFloat(ship_price).toFixed(2);}
var totalCost=(parseFloat(document.getElementById('sub_total').value)+parseFloat(document.getElementById('ship_cost').value));
if(isNaN(totalCost)&&totalCost!==0){document.getElementById('total_cost').value=totalCost.toFixed(2);}else{document.getElementById('total_cost').value='';}
}
function fedExAcct(){
try {if(document.getElementById('fedex_acct').value) var fedEx=document.getElementById('fedex_acct').value;} catch(e){var fedEx=0;}
if(fedEx.length>8){
document.getElementById('ship_cost').value=0;
document.getElementById('total_cost').value=document.getElementById('sub_total').value;
var shipMeth = document.getElementById('ship_meth');
shipBefore=shipMeth.innerHTML;
if(!shipBefore.match("Billed to your account.")){
shipAfter=shipBefore+" (Billed to your account.)";
}else{shipAfter=shipBefore;}
shipMeth.innerHTML=shipAfter;
}
}
function intlZip(){
var zip=document.getElementById('ship_zip');
var zipVal=trim(zip.value);
zip.value=zipVal;
var zipCodePattern=/^\d{5}$|^\d{5}-\d{4}$/;
function zipTest(zip){return zipCodePattern.test(zipVal);}
if(zipVal.length!=0 && zipVal.length!=5 && zipVal.length!=10){
if(!zipTest(zip)){
var answer=confirm('This site does not calculate costs or transit times for international shipments. \nFedex.com can do this for you. Generally, we get next day service to major cities in Canada. \nLondon, Paris, and Berlin take two days; Rome, Tokyo, and Rio are three days. \n \nIf you wish to have this shipped internationally click \"OK\", otherwise, click \"Cancel\"')
if(answer){
document.getElementById('ship_cost').value=0;
document.getElementById('international_delivery').checked=true;
document.getElementById('intl_ship_row').setAttribute("class","viz");
document.getElementById('intl_ship_row').setAttribute("className","viz");
document.getElementById('PUD_ship_row').setAttribute("class","hidden");
document.getElementById('PUD_ship_row').setAttribute("className","hidden");
if(document.getElementById('puCost')){document.getElementById('esCost').value=0;}
if(document.getElementById('esCost')){document.getElementById('esCost').value=0;}
if(document.getElementById('soCost')){document.getElementById('soCost').value=0;}
if(document.getElementById('poCost')){document.getElementById('poCost').value=0;}
if(document.getElementById('sdCost')){document.getElementById('sdCost').value=0;}
/* lines to clear dates - leave commented out so that due date doesn't turn into "NaN"!
if(document.getElementById('esDate')){document.getElementById('esDate').value=0;}
if(document.getElementById('soDate')){document.getElementById('soDate').value=0;}
if(document.getElementById('poDate')){document.getElementById('poDate').value=0;}
if(document.getElementById('sdDate')){document.getElementById('sdDate').value=0;}*/
var subTotal=document.getElementById('sub_total').value;
if(isNaN(subTotal)&&subTotal!==0){document.getElementById('total_cost').value=subTotal;
}else{document.getElementById('total_cost').value='';}
unRed('delivery_method');
}else{return;}
}
}else{
	document.getElementById('international_delivery').checked=false;
	document.getElementById('intl_ship_row').setAttribute("class","hidden");
	document.getElementById('intl_ship_row').setAttribute("className","hidden");
	document.getElementById('PUD_ship_row').setAttribute("class","viz");
	document.getElementById('PUD_ship_row').setAttribute("className","viz");}
fillDate('delivery_method');
}
//formCalc funtions
function tradeShow(x){
// create item code for price lookup
var shortDim=0;
try { if(document.getElementById('d1'+x).value ) shortDim=document.getElementById('d1'+x).value;} catch(e){ shortDim=0;}
if(shortDim!=0){
var longDim=0;
try { if(document.getElementById('d2'+x).value ) longDim=document.getElementById('d2'+x).value;} catch(e){ longDim=0;}
if(longDim!=0){
var material=0;
try { if(document.getElementById('material'+x).value ) material=document.getElementById('material'+x).value;} catch(e){ material=0;}
if(material!=0){
var mount=0;
try { if(document.getElementById('mounting'+x).value ) mount=document.getElementById('mounting'+x).value;} catch(e){ mount=0;}
if(mount!=''){
if(longDim <100){material=material+"0";}
var itemCode=mount+material+longDim+shortDim;}
if(document.getElementById('uv'+x)!==null){UVlookup(x);}
}}}
calcEnd(x,itemCode)}

function backLit(x){
//alert("gotcha!");
// create item code(s) for price lookup
var shortDim=0;
try { if(document.getElementById('d1'+x).value ) shortDim=document.getElementById('d1'+x).value;} catch(e){ shortDim=0;}
if(shortDim!=0){
var longDim=0;
try { if(document.getElementById('d2'+x).value ) longDim=document.getElementById('d2'+x).value;} catch(e){ longDim=0;}
if(longDim!=0){
var material=0;
try { if(document.getElementById('material'+x).value ) material=document.getElementById('material'+x).value;} catch(e){ material=0;}
if(material!=0){
if(longDim <100){material=material+"0";}
var mount="NO"
var itemCode=mount+material+longDim+shortDim;
}//if material
if(document.getElementById('uv'+x)!==null){UVlookup(x);}
}//if longDim
}//if shortDim
calcEnd(x,itemCode)}//function

function vinylBanner(x){
// create item code for price lookup

var shortDim=0;
try { if(document.getElementById('d1'+x).value ) shortDim=document.getElementById('d1'+x).value;} catch(e){ shortDim=0;}
if(shortDim!=0){
var longDim=0;
try { if(document.getElementById('d2'+x).value ) longDim=document.getElementById('d2'+x).value;} catch(e){ longDim=0;}
if(longDim!=0){
var material=0;
try { if(document.getElementById('material'+x)!==null) material=document.getElementById('material'+x).value;} catch(e){ material=0;}
if(material!=0){
//calculate individual area
var qty=document.getElementById('qty'+x).value;
if(material==="SMWP" || material==="SDWP"){var vinArea=qty*((longDim*shortDim));//if wallpaper
}else{var vinArea=qty*((longDim*shortDim)/144);}
document.getElementById('area'+x).value=vinArea;
// calulate total area
var i, sumV=0;//start at zero
for (i=0;i<10;i++){
var areaV=0,qtyV=0,subV=0;
try {if(document.getElementById('qty'+i)) qtyV=document.getElementById('qty'+i).value;} catch(e){qtyV=0;}
try {if(document.getElementById('area'+i)) areaV=document.getElementById('area'+i).value;} catch(e){areaV=0;}
areaV=parseFloat(areaV);
qtyV=parseFloat(qtyV);
if(!isNaN(areaV)&&!isNaN(qtyV)){
sumV += (areaV); // Add the value to the sum
}
}
document.getElementById('total_area').value=sumV.toFixed(2);
var vinAreaCode;
if(sumV>1999){vinAreaCode = '2000';
}else if(sumV>999 && sumV<2000){vinAreaCode = '1000';
}else if(sumV>499 && sumV<1000){vinAreaCode = '0500';
}else if(sumV>249 && sumV<500){vinAreaCode = '0250';
}else if(sumV>99 && sumV<250){vinAreaCode = '0100';
}else if(sumV>49 && vinArea<100){vinAreaCode = '0050';
}else{vinAreaCode = '0001';}
for(i=0;i<10;i++){
var itemCode='';
var qtyX=0;
try {if(document.getElementById('qty'+i).value) qtyX=document.getElementById('qty'+i).value;} catch(e){qtyX=0;}
if(qtyX!==undefined&&qtyX!=0&&qtyX!==''){
try {if(document.getElementById('material'+i).value) var materialX=document.getElementById('material'+i).value;} catch(e){var materialX='NO';}
itemCode=materialX+vinAreaCode;
document.getElementById('code'+i).value=itemCode;
itemCost(i);
}else{document.getElementById('sf_cost'+i).value='';
document.getElementById('unit_cost'+i).value='';
document.getElementById('item_total'+i).value='';}
}
}
}
}
}

function golfSign(x){
try { if(document.getElementById('material'+x).value ) var material=document.getElementById('material'+x).value;} catch(e){ var material=0;}
if(material==='Reusable plastic'){
var unicost=12;
var itemCode='GFPL';
}else{
var unicost=0;
var itemCode='';
}
document.getElementById('unit_cost'+x).value=unicost.toFixed(2);
calcEnd(x,itemCode)}
function cutOut(x){
var unicost=199;
document.getElementById('unit_cost'+x).value=unicost.toFixed(2);
document.getElementById('code'+x).value="CUTOUT";
var itemCode="CUTOUT";
calcEnd(x,itemCode)}

function bigCheck(x){
var chkSize = document.getElementById('d1'+x).value;
var chkMaterial = document.getElementById('material'+x).value;
var itemCode=chkMaterial+chkSize;
calcEnd(x,itemCode)}

function ISO(x){
var isoSize = document.getElementById('d1'+x).value;
itemCode="ISO"+isoSize;
calcEnd(x,itemCode)}

function popUp(x){
itemCode="POPUP";
stiffNer(x);
calcEnd(x,itemCode)}

function bannerStands(x){
if(document.getElementById('extension'+x).checked){var ext="L";}else{var ext="S";}
if(document.getElementById('replacement_banner'+x).checked){var rep="R";}else{var rep="B";}
var mat=document.getElementById('material'+x).value;
itemCode=rep+ext+mat;
calcEnd(x,itemCode);}

function calcEnd(x,itemCode){
try {if(document.getElementById('order_type')) var orderType=document.getElementById('order_type').value;} catch(e){var orderType=0;}
if(itemCode!==null){
if(orderType==="Backlit Graphics"){
document.getElementById('code'+x).value=itemCode;
backlitCost(x);
}else{
document.getElementById('code'+x).value=itemCode;
itemCost(x);}
}else{
try {if(document.getElementById('code'+x).value ) document.getElementById('code'+x).value='Item Not in Database!';} catch(e){return false;}
document.getElementById('code'+x).value='Item Not in Database!';}
return false;
}


//main formCalc switch
function initFormCalc(x){
try {if(document.getElementById('order_type')) var orderType=document.getElementById('order_type').value;} catch(e){var orderType=0;}
switch(orderType){
case"Large Format Print":tradeShow(x);break;
case"Vinyl Banner":vinylBanner(x);break;
case"Wallpaper":vinylBanner(x);break;//uses vinyl calcs
case"Golf":golfSign(x);break;
case"Cutout":cutOut(x);break;
case"Big Check":bigCheck(x);break;
case"Backlit Graphics":backLit(x);break;
case"ISO Poster":ISO(x);break;
case"Popup":popUp(x);break;
case"Banner Stand":bannerStands(x);break;
}
}

//choice limiting functions
function dimRestrict(x){
var material=document.getElementById('material'+x);
var selectedMaterial=material[material.selectedIndex].value;
var dim1=document.getElementById('d1'+x);
var dim2=document.getElementById('d2'+x);
var d1si=document.getElementById('d1b'+x);
var d2si=document.getElementById('d2b'+x);
d1si.value=dim1.value;
d2si.value=dim2.value;
if(selectedMaterial==="SDWP" || selectedMaterial==="SMWP"){
	dim1.options.length=0;
	for (i=8; i <=24; i++){
	var fract=i/2;
	if((fract-Math.floor(fract))>0){var decNum=(Math.floor(fract)+" 1/2");}else{decNum=fract;}
	var iid=i-8;
	dim1.options[iid]=new Option(decNum,fract);}
	dim2.options.length=0;
	for (i=8; i <=120; i++){
	var fract=i/2;
	if((fract-Math.floor(fract))>0){var decNum=(Math.floor(fract)+" 1/2");}else{decNum=fract;}
	var iid=i-8;
	dim2.options[iid]=new Option(decNum,fract);}
	setVal(dim1,d1si.value);
	setVal(dim2,d2si.value);
	return;}
var sMax;
var lMax;
try {if(document.getElementById('mounting'+x)) var backing=document.getElementById('mounting'+x).value;} catch(e){var backing='NO';}
if((backing === 'NO'||backing === 'None'||backing === '')&&(selectedMaterial==='PP' || selectedMaterial==='GP')){sMax=60;lMax=120;
}else if((backing === 'NO'||backing === 'None'||backing === '')&&(selectedMaterial==='GL' || selectedMaterial==='ML' || selectedMaterial==='CL')){sMax=48;lMax=120;
}else if(selectedMaterial==='PP' || selectedMaterial=='GP'||selectedMaterial==='GL' || selectedMaterial==='ML' || selectedMaterial==='CL'){sMax=36;lMax=48;
}else if(selectedMaterial==='MVYN'){sMax=72;lMax=240;
}else if(selectedMaterial==='GVYN'){sMax=96;lMax=240;
}else if(selectedMaterial==='AVYN'||selectedMaterial==='RFAB'){sMax=58;lMax=240;
}else if(selectedMaterial==='XVYN'){sMax=60;lMax=240;
}else if(selectedMaterial==='EC'){
var banExt=document.getElementById('extension'+x);
banExt.checked=false;
banExt.style.display="none";
banExt.className="hidden";
banExt.setAttribute("class","hidden");
banExt.setAttribute("className","hidden");
dim1.value=31;dim2.value=78;
return;
}else if(selectedMaterial==='PR'){
var banExt=document.getElementById('extension'+x);
banExt.style.display="inline";
banExt.className="center";
banExt.setAttribute("class","center");
banExt.setAttribute("className","center");
dim1.value="34 5/8";dim2.value=77;
if(document.getElementById('extension'+x).checked==true){dim2.value=84;}
return;
}else if(selectedMaterial==='PW'){
var banExt=document.getElementById('extension'+x);
banExt.style.display="inline";
banExt.className="center";
banExt.setAttribute("class","center");
banExt.setAttribute("className","center");
dim1.value="47 1/4";
dim2.value=77;
if(document.getElementById('extension'+x).checked==true){
dim2.value=84;}
return;
}
dim1.options.length=0;
for (i=9; i <=(sMax/2); i++){
var dbl=i*2;
var iid=i-8;
dim1.options[iid]=new Option(dbl, dbl);}
dim2.options.length=0;
for (i=9; i <=(lMax/2); i++){
var dbl=i*2;
var iid=i-8;
dim2.options[iid]=new Option(dbl, dbl);}
setVal(dim1,d1si.value);
setVal(dim2,d2si.value);}

function backRestrict(x){
var objMaterial=document.getElementById('material'+x);
var objBack=document.getElementById('mounting'+x);
var selectedBack=objBack.value;
if(objMaterial[objMaterial.selectedIndex].value=='CL'){
objBack.options.length=0;
objBack.options[0]=new Option('None', 'NO');
objBack.options[1]=new Option('Gatorboard', 'GB');
objBack.options[2]=new Option('Sintra', 'SN');
}else{
objBack.options.length=0;
objBack.options[0]=new Option('None', 'NO');
objBack.options[1]=new Option('Foamcore', 'FC');
objBack.options[2]=new Option('50 Pt Board', '50');
objBack.options[3]=new Option('Gatorboard', 'GB');
objBack.options[4]=new Option('Sintra', 'SN');}
setVal(objBack,selectedBack);
}

function finRestrict(x){
if(document.getElementById('order_type').value==="Backlit Graphics"){
var objMaterial=document.getElementById('material'+x);
var objBack=document.getElementById('finish'+x);
	if(objMaterial[objMaterial.selectedIndex].value==='CL'){
		var selectedMat=objBack.selectedIndex;
		objBack.options.length=0;
		objBack.options[0]=new Option('None', 'NO');
		objBack.options[1]=new Option('Velcro - front', 'VLF');
		objBack.options[2]=new Option('Velcro - back', 'VLB');
		objBack.options[selectedMat].selected=true;
	}else{
		objBack.options.length=0;
		objBack.options[0]=new Option('Not available', 'NO');}
}else if(document.getElementById('order_type').value==="Vinyl Banner"){
	var objMaterial=document.getElementById('material'+x);
	var objHang=document.getElementById('hanger'+x);
	if(objMaterial[objMaterial.selectedIndex].value==='RFAB'){
		objHang.options.length=0;
		objHang.options[0]=new Option('None', 'NONE');
	}else{
		var selectedHang=objHang.selectedIndex;
		objHang.options.length=0;
		objHang.options[0]=new Option('None', 'NONE');
		objHang.options[1]=new Option('Super Snaps (short side)', 'SNAPS');
		objHang.options[2]=new Option('Super Snaps (long side)', 'SNAPL');
		objHang.options[3]=new Option('Aluminum (short side)', 'ALUMS');
		objHang.options[4]=new Option('Aluminum (long side)', 'ALUML');
		objHang.options[selectedHang].selected=true;
	}
}else{
var objMount=document.getElementById('mounting'+x);
var objBack=document.getElementById('finish'+x);
var selectedMount=objBack.selectedIndex;
if(objMount[objMount.selectedIndex].value==='FC' || objMount[objMount.selectedIndex].value==='GB'){
objBack.options.length=0;
objBack.options[0]=new Option('None', 'NO');
objBack.options[1]=new Option('Velcro', 'VL');
objBack.options[2]=new Option('Edge Trim - Clear', 'ETC');
objBack.options[3]=new Option('Edge Trim - Black', 'ETB');
objBack.options[4]=new Option('Edge Trim - White', 'ETW');
objBack.options[5]=new Option('Edge Trim - Gold', 'ETG');
objBack.options[6]=new Option('Edge Trim - Silver', 'ETS');
objBack.options[selectedMount].selected=true;
}else{
objBack.options.length=0;
objBack.options[0]=new Option('None', 'NO');
objBack.options[1]=new Option('Velcro', 'VL');
objBack.options[selectedMount].selected=true;}
}}

//form layout funtions (hide and clear rows)
function deleteFile(x){
var fileD=document.getElementById('file_cell'+x);
fileD.innerHTML = fileD.innerHTML;
if(browser==="Microsoft Internet Explorer"){
var uHL="unHideLogo("+x+")";
fileD.setAttribute("onChange",uHL);
}
var d1D=document.getElementById('d1'+x);
if(d1D){d1D.value='';d1D.selectedIndex=0;}
var d2D=document.getElementById('d2'+x);
if(d2D){d2D.value='';d2D.selectedIndex=0;}
var d1bD=document.getElementById('d1b'+x);
if(d1bD){d1bD.value='';d1bD.value=0;}
var d2bD=document.getElementById('d2b'+x);
if(d2bD){d2bD.value='';d2bD.value=0;}
var materialD=document.getElementById('material'+x);
if(materialD){materialD.value='';materialD.selectedIndex=0;}
var UVCostD=document.getElementById('uvCost'+x)
if(UVCostD){UVCostD.value='';}
var uVD=document.getElementById('uv'+x);
if(uVD){uVD.checked=false;}
var mountingD=document.getElementById('mounting'+x);
if(mountingD){mountingD.value='NO';mountingD.selectedIndex=0;}
var finishD=document.getElementById('finish'+x);
if(finishD){finishD.value='NO';finishD.selectedIndex=0;}
var qtyD=document.getElementById('qty'+x);
if(qtyD){qtyD.value='';}
var unitD=document.getElementById('unit_cost'+x);
if(unitD){unitD.value='';}
var itemD=document.getElementById('item_total'+x);
if(itemD){itemD.value='';}
var codeD=document.getElementById('code'+x);
if(codeD){codeD.value='';}
var finD=document.getElementById('fin'+x);
if(finD){finD.value='';}
var weightD=document.getElementById('weight'+x);
if(weightD){weightD.value='';}
var pkgD=document.getElementById('pkg_wt'+x);
if(pkgD){pkgD.value='';}
var areaD=document.getElementById('area'+x);
if(areaD){areaD.value='';}
//for Vinyl Banners
var hangerD=document.getElementById('hanger'+x);
if(hangerD){hangerD.value='';hangerD.selectedIndex=0;}
// for Golf Signs
var logoD=document.getElementById('logoFile'+x);
if(logoD){var parent = logoD.parentNode;parent.innerHTML = parent.innerHTML;}
var sponsorD=document.getElementById('sponsorFile'+x);
if(sponsorD){var parent = sponsorD.parentNode;parent.innerHTML = parent.innerHTML;}
// for Pop-up Booth Panels
var stiffD=document.getElementById('stiff_cost'+x);
if(stiffD){stiffD.value='0';}
//for ISO Posters
var posterD=document.getElementById('image_choice'+x);
if(posterD){posterD.value='';posterD.selectedIndex=0;}
var posterImgD=document.getElementById('selected_image'+x);
if(posterImgD){posterImgD.src='./images/ISO/iso poster p1.jpg';}
//for Big Checks
var checkDateD=document.getElementById('check_date'+x);
if(checkDateD){checkDateD.value='';}
var checkPaytoD=document.getElementById('check_payto'+x);
if(checkPaytoD){checkPaytoD.value='';}
var checkAmtD=document.getElementById('check_amount'+x);
if(checkAmtD){checkAmtD.value='';}
var checkAmt2D=document.getElementById('check_amount_2'+x);
if(checkAmt2D){checkAmt2D.value='';}
var checkMemoD=document.getElementById('check_memo'+x);
if(checkMemoD){checkMemoD.value='';}
var checkSignD=document.getElementById('check_signed'+x);
if(checkSignD){checkSignD.value='';}
var checkRemitD=document.getElementById('check_remitter'+x);
if(checkRemitD){checkRemitD.value='';}
var checkLogo=document.getElementById('check_logo'+x);
if(checkLogo){
checkLogo.style.display="none";
checkLogo.className="check_logo_invis";
checkLogo.setAttribute("class","check_logo_invis");
checkLogo.setAttribute("className","check_logo_invis");}
var checkUR=document.getElementById('check_remitter_cell'+x);
if(checkUR){
checkUR.setAttribute("class","check_remitter");
checkUR.className="check_remitter";
checkUR.setAttribute("className","check_remitter");}
initFormCalc(x);
}

function unHide(elem,newClass){
var invisElem=document.getElementById(elem);
if(invisElem!="" && invisElem!==null && invisElem!==undefined){
invisElem.style.display="inline";
invisElem.className=newClass;
invisElem.setAttribute("class", newClass);
invisElem.setAttribute("className", newClass);}
}


function unHideRow(x){
try {if(document.getElementById('order_type')) var orderType=document.getElementById('order_type').value;} catch(e){var orderType=0;}
var invisRow=document.getElementById('row'+x);
if(invisRow!="" && invisRow!==null && invisRow!==undefined){
invisRow.style.display=="table-row";
invisRow.className=="viz";
invisRow.setAttribute("class","viz");
invisRow.setAttribute("className","viz");
}}

function selectPoster(x){
var selecter=document.getElementById('image_choice'+x);
var selected=document.getElementById('image_choice'+x)[document.getElementById('image_choice'+x).selectedIndex].value;
var newSource="./images/ISO/iso poster p"+selected+".jpg";
document.getElementById('selected_image'+x).src=newSource;}

//functions specific to check order form (image manipulation, currency format, etc)
function checkBlank(x){
	var checkMaterial=document.getElementById('material'+x);
	if(document.getElementById('check_blank'+x).checked==true&&checkMaterial.value!="BCGL"){
		checkMaterial.value="BCGL";
		initFormCalc(x);
		}
}

function checkBlankMat(x){
	var checkMaterial=document.getElementById('material'+x);
	if(checkMaterial.value!="BCGL"&&document.getElementById('check_blank'+x).checked==true){
		document.getElementById('check_blank'+x).checked=false;
		}
}

function formatCurrency(num,x) {
var num = num.toString().replace(/\$|\,/g,'');
if(isNaN(num))
num = "0";
var sign = (num == (num = Math.abs(num)));
num = Math.floor(num*100+0.50000000001);
var cents = num%100;
num = Math.floor(num/100).toString();
if(cents<10)
cents = "0" + cents;
for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
num = num.substring(0,num.length-(4*i+3))+','+
num.substring(num.length-(4*i+3));
if(num==="1"){var dollString="Dollar";}else{var dollString="Dollars";}
if(cents==="01"){var centString="Cent";}else{var centString="Cents";}
var dollarString=document.getElementById('check_amount_2'+x);
var cents2=parseInt(cents);
var dollarz=toWords(num);
var centz=toWords(cents2);
if(cents>0){
dollarString.value=titleCaps(dollarz)+dollString+" and "+titleCaps(centz)+centString;
}else{dollarString.value=titleCaps(dollarz)+dollString;}
return (((sign)?'':'-') + '$' + num + '.' + cents);}

function unHideLogo(x){
var checkLogo = document.getElementById('check_logo'+x);
var checkX=document.getElementById('file'+x);
//need to adjust other fields because IE is stupid...
var checkPayto = document.getElementById('check_payto_cell'+x);
var checkDate = document.getElementById('check_date_cell'+x);
var checkAmount = document.getElementById('check_amount_cell'+x);
if(typeof(checkX.value) !="undefined"&&checkX.value!=""){
checkLogo.className="check_logo_vis";
checkLogo.style.display="inline";
checkLogo.setAttribute("class","check_logo_vis");
checkLogo.setAttribute("class","check_logo_vis");
checkLogo.setAttribute("className","check_logo_vis");
if(browser==="Microsoft Internet Explorer"&&(b_version==="7.0"||b_version==="6.0")){
checkPayto.setAttribute("class","check_payto_logo");
checkPayto.setAttribute("className","check_payto_logo");
checkPayto.className=="check_payto_logo";
checkDate.setAttribute("class","check_date_logo");
checkDate.setAttribute("className","check_date_logo");
checkDate.className=="check_date_logo";
checkAmount.setAttribute("class","check_amount_logo");
checkAmount.setAttribute("className","check_amount_logo");
checkAmount.className=="check_amount_logo";}
}else{
checkLogo.className="check_logo_invis";
checkLogo.setAttribute("class", "check_logo_invis");
checkLogo.setAttribute("className", "check_logo_invis");
checkPayto.setAttribute("class","check_payto");
checkPayto.setAttribute("className","check_payto");
checkPayto.className=="check_payto";
checkDate.setAttribute("class","check_date");
checkDate.setAttribute("className","check_date");
checkDate.className=="check_date";
checkAmount.setAttribute("class","check_amount");
checkAmount.setAttribute("className","check_amount");
checkAmount.className=="check_amount";
}}

function changeCheck(x){
var checkRow = document.getElementById('check_cell'+x);
var checkRowStyle = checkRow.className;
var checkStyle = document.getElementById('check_style'+x).value;
if(checkStyle.match(checkRowStyle)){return;
}else{
switch(checkStyle){
case "white":
checkRow.className=="white_check_row";
checkRow.setAttribute("class", "white_check_row");
checkRow.setAttribute("className", "white_check_row");
break;
case "green":
checkRow.className=="green_check_row";
checkRow.setAttribute("class", "green_check_row");
checkRow.setAttribute("className", "green_check_row");
break;
case "blue":
checkRow.className=="blue_check_row";
checkRow.setAttribute("class", "blue_check_row");
checkRow.setAttribute("className", "blue_check_row");
break;
case "filigree":
checkRow.className=="filigree_check_row";
checkRow.setAttribute("class", "filigree_check_row");
checkRow.setAttribute("className", "filigree_check_row");
break;
default:
checkRow.className=="original_check_row";
checkRow.setAttribute("class", "original_check_row");
checkRow.setAttribute("className", "original_check_row");
break;}
}}

function clearCheck(x){
if(document.getElementById('check_blank'+x).checked==true){
document.getElementById('check_remitter'+x).value="";
document.getElementById('check_date'+x).value="";
document.getElementById('check_amount'+x).value="";
document.getElementById('check_amount_2'+x).value="";
document.getElementById('check_memo'+x).value="";
document.getElementById('check_signed'+x).value="";
document.getElementById('check_payto'+x).value="";
document.getElementById('material'+x).value="BCGL";
bigCheck(x);}
}
function changeSoft(radiObjVal){
	var objBack=document.getElementById('created_in');
	if(radiObjVal=='PC'||radiObjVal=='Mac'){objBack.disabled=false;}
	if(radiObjVal=='PC'){
		objBack.options.length=0;
		objBack.options[0]=new Option('Choose one...', '');
		objBack.options[1]=new Option('Adobe Illustrator', 'Adobe Illustrator');
		objBack.options[2]=new Option('Adobe Photoshop', 'Adobe Photoshop');
		objBack.options[3]=new Option('Indesign', 'Adobe Indesign');
		objBack.options[4]=new Option('Quark', 'Quark');
		objBack.options[5]=new Option('PDF', 'PDF');
		objBack.options[6]=new Option('PowerPoint 2010', 'PowerPoint 2010');
		objBack.options[7]=new Option('PowerPoint 2007', 'PowerPoint 2007');
		objBack.options[8]=new Option('PowerPoint 2003', 'PowerPoint 2003');
		objBack.options[9]=new Option('PowerPoint 2002', 'PowerPoint 2002');
		objBack.options[10]=new Option('PowerPoint 2000', 'PowerPoint 2000');
		objBack.options[11]=new Option('PowerPoint 97', 'PowerPoint 97');
		objBack.options[12]=new Option('Other', 'Other');
	} else if(radiObjVal=='Mac'){
		objBack.options.length=0;
		objBack.options[0]=new Option('Choose one...', '');
		objBack.options[1]=new Option('Adobe Illustrator', 'Adobe Illustrator');
		objBack.options[2]=new Option('Adobe Photoshop', 'Adobe Photoshop');
		objBack.options[3]=new Option('Indesign', 'Adobe Indesign');
		objBack.options[4]=new Option('Quark', 'Quark');
		objBack.options[5]=new Option('PDF', 'PDF');
		objBack.options[6]=new Option('PowerPoint 2008', 'PowerPoint 2008');
		objBack.options[7]=new Option('PowerPoint 2004', 'PowerPoint 2004');
		objBack.options[8]=new Option('PowerPoint X', 'PowerPoint X');
		objBack.options[9]=new Option('Keynote', 'Keynote');
		objBack.options[10]=new Option('Other', 'Other');
	}else{
		objBack.options.length=0;
		objBack.options[0]=new Option('Choose an OS first', 'NO');
	}
}

//functions for page 2 (bill-ship-contact info)
function resShip(){
if(document.getElementById('res_add').checked==true){
document.getElementById('res_ship').value=3;
}else{document.getElementById('res_ship').value=0;} 
}

function intlShip(sel){
if(sel.options.selectedIndex==1 || sel.options.selectedIndex==2){
alert('This site does not calculate costs or transit times for international shipments. \nFedex.com can do this for you. Generally, we get next day service to major cities in Canada. \nLondon, Paris, and Berlin take two days; Rome, Tokyo, and Rio are three days. \n \nThank you!');
document.getElementById('ship_cost').value=0;
document.getElementById('delivery_method').value="FedEx International";}
return false;}

function PO(){
var sub_add=document.getElementById('ship_add1').value;
var sub_addA=sub_add.substring(0,4);
var sub_addB=sub_addA.toLowerCase();
if(sub_addB.length >= 4){ 
	if(sub_addB=="pobo" || sub_addB=="po b" || sub_addB=="p o " || sub_addB=="p.o."){
		var answer=confirm('Fedex will not deliver to PO Boxes!\nOnly rollable prints (unmounted) can be shipped to PO boxes.\nIf you must have your product shipped to a PO Box, we can ship it via USPS Priority Mail for the same price as Fedex 2nd Day shipping.\n\nRollable products can only be sent via priority mail.\n\nIf you need this shipped to a PO Box, and would like us to change your shipping selection (and price) to accomodate this click OK, if not, please click Cancel.');
		if(answer){
			document.getElementById('ship_cost').value=document.getElementById('esCost').value;
			document.getElementById('delivery_method').value="USPS Priority Mail";
			alert("Shipping changed!");
			document.getElementById('ship_add1').onkeyup="EnforceMaximumLength(this,30)";
		}else{
			document.getElementById('ship_add1').value='';}
		}
	}
}

function shipToBill(){
document.getElementById('bill_name').value=document.getElementById('ship_name').value;
document.getElementById('bill_company').value=document.getElementById('ship_company').value;
document.getElementById('bill_add1').value=document.getElementById('ship_add1').value;
document.getElementById('bill_add2').value=document.getElementById('ship_add2').value;
document.getElementById('bill_city').value=document.getElementById('ship_city').value;
document.getElementById('bill_state').value=document.getElementById('ship_state').value;
document.getElementById('bill_zip').value=document.getElementById('ship_zip').value;
document.getElementById('bill_country').value=document.getElementById('ship_country').value;
document.getElementById('bill_phone').value=document.getElementById('ship_phone').value;}
function billToShip(){
document.getElementById('ship_name').value=document.getElementById('bill_name').value;
document.getElementById('ship_company').value=document.getElementById('bill_company').value;
document.getElementById('ship_add1').value=document.getElementById('bill_add1').value;
document.getElementById('ship_add2').value=document.getElementById('bill_add2').value;
document.getElementById('ship_city').value=document.getElementById('bill_city').value;
document.getElementById('ship_state').value=document.getElementById('bill_state').value;
document.getElementById('ship_zip').value=document.getElementById('bill_zip').value;
document.getElementById('ship_country').value=document.getElementById('bill_country').value;
document.getElementById('ship_phone').value=document.getElementById('bill_phone').value;
PO();}
function sbToContact(){
if(document.getElementById('sbTc2').checked==true){
document.getElementById('con_name').value=document.getElementById('ship_name').value;
document.getElementById('con_company').value=document.getElementById('ship_company').value;
document.getElementById('con_phone').value=document.getElementById('ship_phone').value;
}else if(document.getElementById('sbTc3').checked==true){
document.getElementById('con_name').value=document.getElementById('bill_name').value;
document.getElementById('con_company').value=document.getElementById('bill_company').value;
document.getElementById('con_phone').value=document.getElementById('bill_phone').value;}
}

//funtions for page 3 (financial info)
function ccRequirements(){
var objPaymentType=document.getElementById('cc_type');
var cardName=objPaymentType.options[objPaymentType.selectedIndex].value;
var cardNumCell=document.getElementById('card_num_cell');
var ccNum=document.getElementById('cc_number');
var cardNum=document.getElementById('card_num');
var expyCell=document.getElementById('expy_cell');
var ccExpy=document.getElementById('cc_expy');
var csvCell=document.getElementById('csv_cell');
var ccCSV=document.getElementById('cc_csv');
if(cardName=='VISA' || cardName=='MasterCard' || cardName=='Discover' || cardName=='American Express'){
cardNumCell.style.display='block';
cardNum.innerHTML='<img src="./images/promotion.png" width="16" height="16" alt="promotion (1K)" /> Card Number:';
expyCell.style.display='block';
csvCell.style.display='block';}
else if(cardName=='Purchase Order' || cardName==''){
cardNumCell.style.display='block';
ccNum.value='';
cardNum.innerHTML='<img src="./images/promotion.png" width="16" height="16" alt="promotion (1K)" /> P.O.Number:';
expyCell.style.display='none';
ccExpy.value='';
csvCell.style.display='none';
ccCSV.value='';}
else if(cardName=='MegaPrint Account'){
cardNumCell.style.display='none';
ccNum.value='';
expyCell.style.display='none';
ccExpy.value='';
csvCell.style.display='none';
ccCSV.value='';}
else if(cardName=='PayPal'){
cardNumCell.style.display='block';
ccNum.value='';
cardNum.innerHTML='<img src="./images/promotion.png" width="16" height="16" alt="promotion (1K)" /> Account Email:';
expyCell.style.display='none';
ccExpy.value='';
csvCell.style.display='none';
ccCSV.value='';}
}