// JavaScript Document

function showIndicator() {
	document.getElementById("indicator").innerHTML = "<img src = 'images/indicator9mq.gif'>";
}
function hideIndicator() {
	document.getElementById("indicator").innerHTML = "";
}

function showSpeed(){
	document.getElementById("speedtest").src = 'speedtest.htm';
}

function hideSpeed(){
	document.getElementById("speedtest").src = '';
}


function get_freight() {

	try {
	if ( document.getElementById('shipqty').value != '' ) {
		var weight = document.getElementById('weightperunit').value * document.getElementById('shipqty').value;}
	else {var weight = document.getElementById('weightperunit').value * document.getElementById('quantity').value;}
	
	}
	catch(e) {
		if ( document.getElementById('shipqty').value != '' ) {
			if ( document.getElementById('quantity').value != '') {
			var weight = (document.getElementById('shipqty').value / document.getElementById('quantity').value) * document.getElementById('weight').value; 
			}
			else {
				var weight = (document.getElementById('shipqty').value / document.getElementById('quantity2').value) * document.getElementById('weight').value; 
			}
		}
		else { var weight = document.getElementById('weight').value; }
		}
	var zip = document.getElementById('zip').value;
	if (document.getElementById('zip').value == '') {
		zip = 0;
	}
	
	if (window.XMLHttpRequest) {
		var xmlhttp = new XMLHttpRequest();
		}
	else {
		var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
	xmlhttp.open("GET", "freightlookup.php?weight=" + weight + "&zip=" + zip , true);
	xmlhttp.onreadystatechange = function () {
		if (xmlhttp.readyState == 4) {
			//alert(xmlhttp.responseText);
			splitarr = xmlhttp.responseText.split("-");
			var shippingcharge =  Number(splitarr[0]);
			var price = Number(document.getElementById("subtotal").value);
			shipdate = '';
				if (document.getElementById("date1").value != "" && 
							Date.parse(document.getElementById("date1").value) != "Invalid Date") {
				//alert(document.getElementById("date1").value);
				shipdate = getShipDate(document.getElementById("date1").value, Number(splitarr[1]));
				}
			
			document.getElementById("shipratex").innerHTML = "    $ " + shippingcharge.toFixed(2) + 
					 "&nbsp;&nbsp;&nbsp;Transit: " + splitarr[1] + " Working Days" + shipdate;
			document.getElementById("transitdays").value = splitarr[1];
			document.getElementById("shipcharge").value = shippingcharge;
			try {
			document.getElementById("total").innerHTML = "    $ " + (shippingcharge + price).toFixed(2);
			document.getElementById("totalprice").value = (shippingcharge + price).toFixed(2);}
			catch(e) {
				currentprice = Number(document.getElementById("price").value);
				document.getElementById("pricecell").innerHTML = '$ ' + 
				Number(currentprice + shippingcharge).toFixed(2) + 
					  "<span style = 'font-weight:normal; font-size: 10px; padding-left:200px;'><a href = '#' onclick = 'priceFeedback()'>Price Feedback </a></span>";
				//document.getElementById("price").value = Number(currentprice + shippingcharge);
			}
			
			}
	}
	xmlhttp.send(null);
}

function transitDays(transitstr) {
	var days = 0;
	if(transitstr.substr(0,3) == "ONE") {days = 1; }
	else if(transitstr.substr(0,3) == "TWO") {days = 2; }
	else if(transitstr.substr(0,5) == "THREE") 
	{days = 3; }
	else if(transitstr.substr(0,4) == "FOUR") 
	{days = 4; }
	else if(transitstr.substr(0,4) == "FIVE") 
	{days = 5; }
	else if(transitstr.substr(0,3) == "SIX") 
	{days = 6; }
	else if(transitstr.substr(0,5) == "SEVEN") 
	{days = 7; }
	document.getElementById("transitdays").value = days;
	return days;
	
	
}

function holidays() { // returns string array of holidays to avoid shipping on in given year
	today = new Date();
	year = today.getFullYear();
	holarr = new Array();
	for (i = 1; i <=31; i++) { //memorial last monday of May
		testdatestr = "05/" + i + "/" + year;
		testdate = new Date();
		testdate.setTime(Date.parse(testdatestr));
		if (testdate.getDay() == 1) {
			holarr[1] = testdatestr;
			}
		}	
	for (i = 1; i <=7; i++) { //labor day first monday of september
		testdatestr = "09/" + i + "/" + year;
		testdate = new Date();
		testdate.setTime(Date.parse(testdatestr));
		if (testdate.getDay() == 1) {
			holarr[3] = testdatestr;
			}
		}
	for (i = 1; i <=28; i++) { //labor day first monday of september
		testdatestr = "11/" + i + "/" + year;
		testdate = new Date();
		testdate.setTime(Date.parse(testdatestr));
		if (testdate.getDay() == 4) {
			holarr[4] = testdatestr;
			holarr[5] = "11/" + (i + 1) + "/" + year;
			}
		}
	holarr[0] = "01/01/" + year;
	holarr[2] = "07/04/" + year
	holarr[6] = "12/25/" + year;
	holarr[7] = "01/01/" + (year + 1);
	return holarr;

}


function formatDate(dateobj) {
	
	t = dateobj;
	d = t.getDate();
	day = t.getDay();
	/*if (day == 5 || day == 3 || day == 4) { d = d + 5;}
	else if (day == 6 ) { d = d + 4;}
	//else if  (day == 0 || day == 1) { d = d + 3;}
	else  { d = d + 3;}*/
	m = t.getMonth() + 1;
	y = t.getFullYear();
	return m + "/" + d + "/" + y;
	
}
function fixDate(datestr) {
	datestr = datestr.replace(/-/g,"/");
	datearr = datestr.split("/");
	try {
	if (datearr[2].length == 2) {
		datearr[2] = "20" + datearr[2];
	}
	//alert(datearr);
	return datearr[0] + "/" + datearr[1] + "/" + datearr[2];} catch(e) {}
	
}
function afterWeekEnd(datestr) { // returns working day string after weekend & holiday
oneday = 3600 * 24 * 1000;
adjust = 0;
testtime = Date.parse(datestr);

holarr = holidays();
for (i = 0; i <= 7; i++) {
if (testtime == Date.parse(holarr[i])) {
		adjust = 1;
		}
}
if (testtime == Date.parse(holarr[4])) {
		adjust = 2;
		}

testdate = new Date();
testdate.setTime(testtime + (adjust*oneday));
testtime = Date.parse(testdate);
//alert(testdate.getDay());
if (testdate.getDay() == 0) {
testtime += oneday;
}
if (testdate.getDay() == 6) {
testtime += 2*oneday;
}
testdate.setTime(testtime);
return formatDate(testdate);	
}

function beforeWeekEnd(datestr) { // returns working day string before weekend & holiday
oneday = 3600 * 24 * 1000;
adjust = 0;
testtime = Date.parse(datestr);

holarr = holidays();
for (i = 0; i <= 7; i++) {
if (testtime == Date.parse(holarr[i])) {
		adjust = -1;
		}
}
if (testtime == Date.parse(holarr[5])) {
		adjust = -2;
		}

testdate = new Date();
testdate.setTime(testtime + (adjust*oneday));
testtime = Date.parse(testdate);
//alert(testdate.getDay());
if (testdate.getDay() == 0) {
testtime = testtime - 2*oneday;
}
if (testdate.getDay() == 6) {
testtime = testtime - oneday;
}
testdate.setTime(testtime);
return formatDate(testdate);	
}

function getShipDate(inhandstr, transitdays) {
oneday = 1000 * 3600 * 24;
initial = 3;
extra = 0;

inhand = Date.parse(inhandstr);

shipdate = new Date();
extra = Math.floor(Number(document.getElementById("impressions").value)/50000);
today = new Date();
canship = Date.parse(today) + ((initial + extra) * oneday);
canshipdate = new Date();
canshipdate.setTime(canship);

//alert(canshipdate);
if (canshipdate.getDay() == 0 || shipdate.getDay() == 6) {
	canshipdate.setTime(Date.parse(today) + ((initial + extra + 1) * oneday));
}

canship = Date.parse(canshipdate);

shipdate.setTime(inhand - (transitdays * oneday));

if (shipdate.getDay() == 0) {
	shipdate.setTime(inhand - ((transitdays + 2) * oneday));
}
else if (shipdate.getDay() == 6) {
	shipdate.setTime(inhand - ((transitdays + 1) * oneday));
}

if (transitdays > 1) {
	j = 0;
	for (i = 0; i <=transitdays; i++) {
		shipdate.setTime(inhand - (i * oneday));
		if (shipdate.getDay() == 6 || shipdate.getDay() == 0) {
				j = 2;
			}
	}
	shipdate.setTime(inhand - ((transitdays + j) * oneday)); //(inhand - (transitdays * oneday))
}
//alert(canship + " " + (inhand - (transitdays * oneday)));

canshipstr = afterWeekEnd(formatDate(canshipdate));
canshipdate.setTime(Date.parse(canshipstr));
shipdatestr = beforeWeekEnd(formatDate(shipdate));
shipdate.setTime(Date.parse(shipdatestr));
canshipdate.setHours(0,0,0,0);
shipdate.setHours(0,0,0,0);
if (canshipdate <= shipdate ) {
	pcolor = "<strong style = 'color:green;'> "  + 
		" -Est. Ship Date: ";
	pcolor2 = "</strong>";
}
else {
	pcolor = "<strong style = 'color:red;'> "  +
	" -Est. Ship Date: ";
	pcolor2 = "<p style='font-size:12px'>**Estimated Ship date may not be feasible. Please adjust <br>ship method or inhand date or leave to our staff to adjust</p></strong>";
}
//alert(extra + "<--extra " + canshipdate + " " + shipdate );//(inhand - (transitdays * oneday))
//shipdate.setTime(inhand - ((transitdays + 1) * oneday));//+ (initial+extra) + " "
document.getElementById("shipdate").value = formatDate(shipdate);
document.getElementById("transitdays").value = transitdays;
return pcolor + formatDate(shipdate) + pcolor2;
}



function get_shiprate() {
	var shipqty = ''; var quantity = '';
	var shipoption = document.getElementById("shipping").value;
	var price = document.getElementById('subtotal').value;
	//alert(document.getElementById("shipqty").value);
	if (document.getElementById("shipqty").value != '') {
		shipqty = document.getElementById("shipqty").value ;

	}
	else {
		if (!document.getElementById('quantity2') || document.getElementById('quantity2').value == '') {
			shipqty = document.getElementById('quantity').value;
		}
		else {
			shipqty = document.getElementById('quantity2').value;
		}
	}
	if (!document.getElementById('quantity2') || document.getElementById('quantity2').value == '') {
			quantity = document.getElementById('quantity').value;
		}
		else {
			quantity = document.getElementById('quantity2').value;
		}
	address = ' ';
	city = ' ';
	//alert(shipoption); //&& document.getElementById("shipto1_id").value != "x" 
	if (shipoption.substr(1,3) == "FDX" 
	     && document.getElementById("zip").value != '' && document.getElementById("zip").value != ' ') {

			var state = document.getElementById('state').value;
			var zip = document.getElementById('zip').value;
	try {
		address = document.getElementById('address1').value;
		city = document.getElementById('city').value;
	var weight = document.getElementById('weightperunit').value * document.getElementById('shipqty').value; }
	catch(e) {var weight = (shipqty/quantity) * document.getElementById('weight').value;}
	

if (weight != '0' && weight != 0) {
	//alert(weight);
	document.getElementById("shipratex").innerHTML = "<img src = 'images/indicator9mq.gif'>";
	if (window.XMLHttpRequest) {
		var xmlhttp = new XMLHttpRequest();
		}
	else {
		var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
	
	xmlhttp.open("GET", "RateAvailableServices.php?carrier=" + shipoption.substr(1,4) + "&service=" + 
				shipoption.substr(5) + "&price=" + price  + "&weight=" + weight + "&address=" + address + "&city=" + city + "&state=" + state + "&zip=" + zip , true);
	
	xmlhttp.onreadystatechange = function () {
		if (xmlhttp.readyState == 4) {// should have responseText before send statement
			
			try {var z = xmlhttp.responseXML.documentElement;} 
			catch(e){ 
				try {
				parser=new DOMParser();
    			z=parser.parseFromString(xmlhttp.responseText,"text/xml");	
				} catch(e){}
				}
			if ( z == null) {
				var z = new ActiveXObject("Microsoft.XMLDOM");
				z.loadXML(xmlhttp.responseText);
			}
			if (xmlhttp.responseText.substr(0,5) == "Error") {
					//alert(xmlhttp.responseText);
					document.getElementById("shipratex").innerHTML = "Error in address or service.";
					document.getElementById("shipcharge").value = 0;
					}
			else {
			try {var shippingcharge = Number((1.1*z.getElementsByTagName("TotalNetCharge")[0].childNodes[1].childNodes[0].nodeValue).toFixed(2));} 
			catch(e) { 
			shippingcharge = 0; 
			document.getElementById("shipratex").innerHTML = "    $ 0";	
			}
			if (shippingcharge< 10  && z.getElementsByTagName("TotalNetCharge")[1]) { shippingcharge = 10;}
			var price = Number(document.getElementById("subtotal").value);
			if (document.getElementById("shipping").value == '4FDXGFEDEX_GROUND') {
			try{
				var days = 0;
				days = transitDays(z.getElementsByTagName("TransitTime")[0].childNodes[0].nodeValue);
				document.getElementById("transitdays").value = days;
				shipdate = '';
				if (document.getElementById("date1").value != "" && 
							Date.parse(document.getElementById("date1").value) != "Invalid Date") {
				//alert(document.getElementById("date1").value);
				shipdate = getShipDate(document.getElementById("date1").value, days);
				}
				
				//document.getElementById("date1").value;
				document.getElementById("shipratex").innerHTML = "    $ " + shippingcharge + "  &nbsp;&nbsp;" + "Transit: " + days  + " Working Days" + shipdate;
			
			}
			catch(e) {}
			}		
			else {
					
				var days = 0;
				if (document.getElementById("shipping").value == '5FDXEFEDEX_EXPRESS_SAVER') {days = 3;}
				else if (document.getElementById("shipping").value == '6FDXEFEDEX_2_DAY') {days = 2;}
				else if (document.getElementById("shipping").value == '7FDXESTANDARD_OVERNIGHT' ||  
					 document.getElementById("shipping").value == '8FDXEPRIORITY_OVERNIGHT') {days = 1;}
				document.getElementById("transitdays").value = days;
				shipdate = '';
				if (document.getElementById("date1").value != "" && 
							Date.parse(document.getElementById("date1").value) != "Invalid Date") {
				//alert(document.getElementById("date1").value);
				shipdate = getShipDate(document.getElementById("date1").value, days);
				}
				document.getElementById("shipratex").innerHTML = "    $ " + shippingcharge + "  &nbsp;&nbsp;" + "Transit: " + days + " Working Days" + shipdate;	
				
				
				
			}
			document.getElementById("shipcharge").value = shippingcharge;
			try {
			document.getElementById("total").innerHTML = "    $ " + (shippingcharge + price).toFixed(2);
			document.getElementById("totalprice").value = (shippingcharge + price).toFixed(2);} 
			catch(e){
				currentprice = Number(document.getElementById("price").value);
				document.getElementById("pricecell").innerHTML = '$ ' + 
				Number(currentprice + shippingcharge).toFixed(2) + 
					  "<span style = 'font-weight:normal; font-size: 10px; padding-left:200px;'><a href = '#' onclick = 'priceFeedback()'>Price Feedback </a></span>";
				}
			
			}
		}
	}
	xmlhttp.send(null);
	}
	else if (weight == 0 && document.getElementById("shipcharge").value > 0) {
		
		document.getElementById("shipratex").innerHTML = 0;
			document.getElementById("shipcharge").value = 0;
			try {
			document.getElementById("total").innerHTML = "    $ " + price ;
			document.getElementById("totalprice").value = price;}
			catch(e) {
				currentprice = Number(document.getElementById("price").value);
				document.getElementById("pricecell").innerHTML = '$ ' + 
				Number(currentprice).toFixed(2) + 
					  "<span style = 'font-weight:normal; font-size: 10px; padding-left:200px;'><a href = '#' onclick = 'priceFeedback()'>Price Feedback </a></span>";}
			
			}	
	}
	else {
		//alert(shipoption);
		if (shipoption.substr(1,1) == "9") {
			
			get_freight();
		}
		//added test block for ship handling
		// else if (shipoption.substr(1,1) == "2")
		// {
			//document.getElementById("total").innerHTML = "    $ " + (10 + price).toFixed(2);
			//document.getElementById("totalprice").value = (10+ price).toFixed(2);} 
		//}
		//end of test block for ship handling
		else {
		document.getElementById("shipratex").innerHTML = 0;
			document.getElementById("shipcharge").value = 0;
			try {
			document.getElementById("total").innerHTML = "    $ " + price ;
			document.getElementById("totalprice").value = price;}
			catch(e) {
				currentprice = Number(document.getElementById("price").value);
				document.getElementById("pricecell").innerHTML = '$ ' + 
				Number(currentprice).toFixed(2) + 
					  "<span style = 'font-weight:normal; font-size: 10px; padding-left:200px;'><a href = '#' onclick = 'priceFeedback()'>Price Feedback </a></span>";}
			
			}
	}
	
}

function evaluate_shipping() {
	try {
	if (document.getElementById("shipto1_id").value != 'x' && document.getElementById("shipto1_id").value != '1') {
		updateSelect(document.getElementById("shipto1_id").value, "shipping");
		
	}
	else { get_shiprate();}
	}
	catch(e) {get_shiprate(); }
	
}

function estimatesubmit () {
	document.getElementById("error").innerHTML = "";
	//alert("We got here fine");
	message = '';
	if (document.getElementById("price").value == 0) {
		message += "Please complete specifications marked **<br>"; }
		if (isNaN(document.getElementById("price").value)) {
		message += "Please change selections, this option is not available **<br>"; }
	if ( document.getElementById("jobtitle").value == '') {
		message += "Please enter job title marked **<br>"; }
	if ( document.getElementById("turnaround").value == 0 && document.getElementById("date1").value =='') {
		message += "Please specify turnaround time needed<br>"; }
	po = document.getElementById("purchaseorder");
	if (po.className == 'required' && po.value == '') {
		//alert('whats going on???');
		message += "Your account requires Purchase Orders <br>";}
	if (document.getElementById("folding") && document.getElementById("folding").value == 0 && document.getElementById("category").value == 2) {
		message += "Please select a folding style <br>";
	}
	if (message != '') {
		document.getElementById("error").innerHTML = "<table class = 'newtable2' width = '500px'><tr><td>Please Correct: </td><td>" +  message + "</td></tr></table>";
		window.location = '#error';
		var myBorder2 = RUZEE.ShadedBorder.create({ corner:8, shadow:16});
		myBorder2.render('error');
	return false;
	}
	else {
	//document.getElementById('estimateform').submit();
	return true;
	}
}

function shipsubmit () {
	document.getElementById("error").innerHTML = "";
	var y = document.getElementById("shipping").value;
	apos = document.getElementById("email").value.indexOf("@");
	dotpos = document.getElementById("email").value.lastIndexOf(".");
	phonemain = document.getElementById("phonemain").value.replace(" ","");
	if( y == '11' || y == '3' || y == 'mail') { 
	document.getElementById("totalprice").value = document.getElementById("subtotal").value;
	//alert(document.getElementById("totalprice").value);
	return true;}

	message = '';
	if (y == 'x') {
		message += "Please select shipping method <br>";
	}
	var z = document.getElementById('shipform');
	if (document.getElementById("shipto1_id").value == 'x') {
		message += "Please select ship to location <br>";
	}
	for (i = 0; i< z.length; i++) {
		if (z[i].value == ' ' || z[i].value == '') {
		if (z[i].className == 'required') {
		message += z[i].name  + " cannot be be left blank<br>";
		}}
	}
	var addresscheck = document.getElementById("address1").value.replace(/ /g,"");
	if (addresscheck.substr(0,2) == 'PO' || addresscheck.substr(0,3) == 'P.O' ||
		addresscheck.substr(0,3) == 'p.o' ||addresscheck.substr(0,2) == 'po') {
		message += "Please use physical address not PO Box<br>";
	}
	if (apos < 1|| dotpos-apos<=2 || dotpos <2) {
		message += "Please enter valid email<br>";
	}
	
	if(checkphone(phonemain)) {
		message += "Enter valid Main Phone in format ###-###-#### plus ext if any <br>";
	}
	if (message == '') {
		return true;
	}
	else {
	document.getElementById("error").innerHTML = "<a name='error'></a><table class = 'newtable2' width = '496'><tr><td>Please Correct: </td><td>" +  message + "</td></tr></table>";
		window.location = '#error';
		var myBorder2 = RUZEE.ShadedBorder.create({ corner:8, shadow:16});
		myBorder2.render('error');
		//myBorder2.render('content2');
	return false;
	}
	
}
function ccIntent(field) {
	if (document.getElementById(field).value != '') {
		document.getElementById('payment2').checked = true;
	}
	if (document.getElementById('billoption').value == 0) {
		document.getElementById('billoption').value = 2;
	}
}

function unDash() {
	document.getElementById("cardnumber").value = document.getElementById("cardnumber").value.replace(/ /g,"");
	document.getElementById("cardnumber").value = document.getElementById("cardnumber").value.replace(/-/g,"");
	cardnum = document.getElementById("cardnumber").value;
	if (cardnum.substr(0,1) == '3') {
		document.getElementById("cardtype").value = 1;
	}
	if (cardnum.substr(0,1) == '4') {
		document.getElementById("cardtype").value = 2;
	}
	if (cardnum.substr(0,1) == '5') {
		document.getElementById("cardtype").value = 3;
	}
	if (cardnum.substr(0,1) == '6') {
		document.getElementById("cardtype").value = 4;
	}
	ccIntent('cardnumber');
}



function checkoutsubmit () {
	document.getElementById("error").innerHTML = '';
	if (document.getElementById("payment2") && document.getElementById("payment2").checked == true) {
	var today = new Date();
	month = today.getMonth()+1;
	year = today.getFullYear();
	message = '';
	//alert(month + " " + year);
	var cclen = new Array();
	cclen[1] = 15;
	cclen[2] = 16;
	cclen[3] = 16;
	cclen[4] = 16;
	var ccfirst = new Array();
	ccfirst[1] = 3;
	ccfirst[2] = 4;
	ccfirst[3] = 5;
	ccfirst[4] = 6;
	cardtype = document.getElementById("cardtype").value;
	cardnum = document.getElementById("cardnumber").value;
	cardlen = document.getElementById("cardnumber").value.length;
	ccone = document.getElementById("cardnumber").value.substr(0,1);
	ccverify = isNaN(document.getElementById("cardnumber").value);
	//alert(document.getElementById("cardnumber").value.substr(0,1));
	if ( ccone != ccfirst[cardtype] || cardlen != cclen[cardtype] || ccverify) {
		message += "Invalid Card Number. Please select card type and/or re-enter numbers without dashes <br>";
	}
	
	var z = document.getElementById("checkoutform");
	for (i = 0; i< z.length; i++) {
		if (z[i].value == ' ' || z[i].value == '') {
		if (z[i].className == 'required') {
		message += z[i].name  + " cannot be be left blank<br>";
		}}
	}
	if (document.getElementById("billoption").value == 0) {
		message += "Please select a billing option <br>";
	}
	if (document.getElementById("expireyear").value < year) {
		message += "Please select correct year <br>";
	}
	if (document.getElementById("expireyear").value == year) {
	if (document.getElementById("expiremonth").value < month) {
		message += "Please select correct month <br>";
	}}
	if (message) {
		document.getElementById("error").innerHTML = "<a name='error'></a><table class = 'newtable2' width = '496'><tr><td>Please Correct: </td><td>" +  message + "</td></tr></table>";
		window.location = '#error';
		var myBorder2 = RUZEE.ShadedBorder.create({ corner:8, shadow:16});
		myBorder2.render('error');
		return false;
	}
	else {
		return true;
			}
	
	//return false;
	}
	else {
		return true;
	}
	
}
function checkphone(phone) { //true means bad number
	if (phone.length < 12) {
		return true;
	}
	for (i = 0; i< 12; i++) {
		if (i<3 || (i>3 && i<7) || i>7) {
			if (isNaN(phone.charAt(i))) { return true; }
		}
		if (i == 3 || i == 7) {
			if(phone.charAt(i) != "-") { return true; }
		}
	}
}
function addcontactsubmit() {
	document.getElementById("error2").innerHTML = "";
	apos = document.getElementById("email").value.indexOf("@");
	dotpos = document.getElementById("email").value.lastIndexOf(".");
	//alert(apos + " " + dotpos);
	message = '';
	phone1 = document.getElementById("phone1").value;
	fax = document.getElementById("fax").value;
	mobile = document.getElementById("mobile").value;
	
	var z = document.getElementById("addcontactform");
	for (i = 0; i< z.length; i++) {
		if (z[i].value == ' ' || z[i].value == '') {
		if (z[i].className == 'required') {
		message += z[i].name  + " cannot be be left blank<br>";
		}}
	}
	if (apos < 1|| dotpos-apos<=2 || dotpos <2) {
		message += "Please enter valid email<br>";
	}
	
	if(checkphone(phone1)) {
		message += "Enter valid Direct Phone in format ###-###-#### plus ext if any <br>";
	}
	
	if (fax != '' && fax != ' ' &&checkphone(fax)) {
			message += "Enter valid Direct Fax in format ###-###-#### <br>";
	}
	
	
	if (mobile != '' && mobile != ' ' &&checkphone(mobile)) {
			message += "Enter valid Mobile Phone in format ###-###-#### <br>";
	}
	
	if ( document.getElementById("password1").value != document.getElementById("password2").value) {
		message += "Passwords entered do not match. Re-enter passwords <br>";
	}

	if (message) {
		document.getElementById("error2").innerHTML = "<table class = 'newtable2' width = '496px'><tr><td>Please Correct: </td><td>" + message + "</td></tr></table>";
		window.location = '#error2';
		var myBorder2 = RUZEE.ShadedBorder.create({ corner:8, shadow:16});
		myBorder2.render('error2');
		return false;
	}
	else {
		return true;
			}	
	
}

function regsubmit () { // Register Form Validation
	document.getElementById("error").innerHTML = "";
	apos = document.getElementById("email").value.indexOf("@");
	dotpos = document.getElementById("email").value.lastIndexOf(".");
	//alert(apos + " " + dotpos);
	message = '';
	phonemain = document.getElementById("phonemain").value;
	faxmain = document.getElementById("faxmain").value;
	directphone = document.getElementById("phone1").value;
	directfax = document.getElementById("fax").value;
	mobile = document.getElementById("mobile").value;
	
	var z = document.getElementById("registerform");
	for (i = 0; i< z.length; i++) {
		if (z[i].value == ' ' || z[i].value == '') {
		if (z[i].className == 'required') {
		message += z[i].name  + " cannot be be left blank<br>";
		}}
	}
	if (apos < 1|| dotpos-apos<=2 || dotpos <2) {
		message += "Please enter valid email<br>";
	}
	
	if(checkphone(phonemain)) {
		message += "Enter valid Main Phone in format ###-###-#### plus ext if any <br>";
	}
	
	if (faxmain != '' && faxmain != ' ' &&checkphone(faxmain)) {
			message += "Enter valid Company Fax in format ###-###-#### <br>";
	}
	
	if(checkphone(directphone)) {
		message += "Enter valid Direct Phone in format ###-###-#### plus ext if any <br>";
	}
	
	if (directfax != '' && directfax != ' ' &&checkphone(directfax)) {
			message += "Enter valid Direct Fax in format ###-###-#### <br>";
	}
	
	if (mobile != '' && mobile != ' ' &&checkphone(mobile)) {
			message += "Enter valid Mobile Phone in format ###-###-#### <br>";
	}
	
	if ( document.getElementById("password").value != document.getElementById("password2").value) {
		message += "Passwords entered do not match. Re-enter passwords <br>";
	}

	if (message) {
		document.getElementById("error").innerHTML = "<table class = 'newtable2' width = '500px'><tr><td>Please Correct: </td><td>" + message + "</td></tr></table>";
		window.location = '#error';
		var myBorder2 = RUZEE.ShadedBorder.create({ corner:8, shadow:16});
		myBorder2.render('error');
		return false;
	}
	else {
		return true;
			}	
}

function editprofilesubmit () { // Register Form Validation
	document.getElementById("error").innerHTML = "";
	message = '';
	phonemain = document.getElementById("phonemain").value;
	faxmain = document.getElementById("faxmain").value;
	
	var z = document.getElementById("editprofileform");
	for (i = 0; i< z.length; i++) {
		if (z[i].value == ' ' || z[i].value == '') {
		if (z[i].className == 'required') {
		message += z[i].name  + " cannot be be left blank<br>";
		}}
	}

	
	if(checkphone(phonemain)) {
		message += "Enter valid Main Phone in format ###-###-#### plus ext if any <br>";
	}
	
	if (faxmain != '' && faxmain != ' ' &&checkphone(faxmain)) {
			message += "Enter valid Company Fax in format ###-###-#### <br>";
	}

	if (message) {
		document.getElementById("error").innerHTML = "<table class = 'newtable2' width = '500px'><tr><td>Please Correct: </td><td>" + message + "</td></tr></table>";
		window.location = '#error';
		var myBorder2 = RUZEE.ShadedBorder.create({ corner:8, shadow:16});
		myBorder2.render('error');
		return false;
	}
	else {
		return true;
			}	
}

function addContact(edit) {
	
	$form = "<form action = 'editprofile.php' id = 'addcontactform' method = 'post' " + "onsubmit = 'return addcontactsubmit()'>";
	$form += "<table class = 'newtable2' width = '496px'>";
	$form += "<input type = 'hidden' name = 'contactid' id = 'contactid' value = '" + edit + "'>";
	$form += "<tr><td>First Name**: </td><td><input type = 'text' name = 'firstname' id = 'firstname' " + 
				"class = 'required'></td></tr>";
	$form += "<tr><td>Last Name**: </td><td><input type = 'text' name = 'lastname' id = 'lastname' " + 
				"class = 'required'></td></tr>";
	$form += "<tr><td>Direct Phone**: </td><td><input type = 'text' name = 'phone1' id = 'phone1' " + 
				"></td></tr>";
	$form += "<tr><td>Mobile: </td><td><input type = 'text' name = 'mobile' id = 'mobile' " + 
				"></td></tr>";
	$form += "<tr><td>Direct Fax: </td><td><input type = 'text' name = 'fax' id = 'fax' " + 
				"></td></tr>";
	$form += "<tr><td>Email**: </td><td><input type = 'text' size='30' name = 'email' id = 'email' " + 
				"class = 'required'></td></tr>";
	$form += "<tr><td>FTP User Only: </td><td><input type = 'radio' size='30' id='ftponly0' name = 'ftponly' value='0' " + 
				" checked = 'checked'>&nbsp;No&nbsp;&nbsp;&nbsp;<input type = 'radio'  id='ftponly1' size='30' name = 'ftponly' " + 
				" value='1'>&nbsp;Yes</td></tr>";
	$form += "<tr><td>FTP Subfolder: </td><td><input type = 'text' name = 'subfolder' id = 'subfolder' " + 
				" ></td></tr>";
	$form += "<tr><td>Username**: </td><td><input type = 'text' name = 'username' id = 'username' " + 
				"class = 'required'></td></tr>";
	$form += "<tr><td>Password**: </td><td><input type = 'password' name = 'password1' id = 'password1' " + 
				"class = 'required'> Enter Again**: <input type = 'password' name = 'password2' id = 'password2'" 	            + "class = 'required'></td></tr>";
	if (edit == 0) {
	$form += "<tr><td colspan = '2'><input type = 'submit' name = 'addcontact' id = 'addcontact' " + 
				"value = 'Add'></td></tr>";
	}
	else {
		$form += "<tr><td colspan = '2'><input type = 'submit' name = 'editcontact' id = 'editcontact' " + 
				"value = 'Update Contact'></td></tr>";
	}
	$form += "</table></form>";
	
	document.getElementById("split3").style.display="block";
	document.getElementById("content3").innerHTML = $form;
	
	var splitBorderTop    = RUZEE.ShadedBorder.create({ corner:10 });
  	var splitBorderBottom = RUZEE.ShadedBorder.create({ corner:10, edges:"blr", border:2});
	//var splitBorder = RUZEE.ShadedBorder.create({corner:10, shadow:25
	splitBorderBottom.render('content3');
    splitBorderTop.render('split3');
	if (edit > 0) {
		if (window.XMLHttpRequest) {
		 xmlhttp = new XMLHttpRequest();
		}
	else {   try
    {
    xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
  catch (e)
    {
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
	}
	xmlhttp.open("GET", "getcontact.php?id=" + edit, true);
	xmlhttp.onreadystatechange = function () {
		if (xmlhttp.readyState == 4) {// should have responseText before send statement
			//document.getElementById("testbox").innerHTML = xmlhttp.responseText;
			try {var z = xmlhttp.responseXML.documentElement;
				var safari = 0;
					} 
			catch(e){
				try {
				parser=new DOMParser();
    			z=parser.parseFromString(xmlhttp.responseText,"text/xml");
				safari=1;
				//alert(z.childNodes[0].childNodes[1].nodeName);
				} catch(e){}
				}
			if ( z == null) {
				var z = new ActiveXObject("Microsoft.XMLDOM");
				z.loadXML(xmlhttp.responseText);	
			}
	for (var i = 0; i < 12; i++) {
		if (navigator.appName != "Microsoft Internet Explorer" && safari == 0) {
		tagname = z.childNodes[i].nodeName; 
		}
		else if (navigator.appName == "Microsoft Internet Explorer") {
		tagname = z.childNodes[1].childNodes[i].nodeName;
		}
		else {
			tagname = z.childNodes[0].childNodes[i].nodeName;
		}
			
		try {
		document.getElementById(tagname).value = z.getElementsByTagName(tagname)[0].childNodes[0].nodeValue	;
			//txt = txt + "----" + z.childNodes[i].nodeValue;
		} catch(e) {try{document.getElementById(tagname).value = "";}catch(e){}}
		
		if (z.getElementsByTagName("ftponly")[0].childNodes[0].nodeValue == 1) 
		{
			document.getElementById('ftponly1').checked = true;	
		}
		
			
		}
			
		}
	}
	xmlhttp.send(null);
		
		
	}
	
}

function feedbacksubmit () { // Register Form Validation
	document.getElementById("error").innerHTML = "";
	message = '';
	subject = document.getElementById("subject").value;
	note = document.getElementById("message").value;
	


	
	if(subject == 'No Subject') {
		message += "Please select a subject from drop down <br>";
	}
	
	if (note == '' ) {
			message += "Please type a message <br>";
	}

	if (message) {
		document.getElementById("error").innerHTML = "<table width = '496'><tr><td>Please Correct: </td><td>" + message + "</td></tr></table>";
		return false;
	}
	else {
		return true;
			}	
}

function checkShipQty(qtyname) {
	
	var shiptos = document.getElementById("shiptos").value;
	var qty = document.getElementById("quantity").value;
	var sum = 0;
	
	if (isNaN(document.getElementById(qtyname).value)) { document.getElementById(qtyname).value = 0;}
	
	for (var i = 1; i <=shiptos; i++) { 
		sum+= Math.ceil(document.getElementById('shipto' + i + '_qty').value);
		if (sum > qty ) { document.getElementById('shipto' + i + '_qty').value = document.getElementById('shipto' + i + '_qty').value - (sum-qty);}
		}
	//alert(sum);
	if (sum < qty) { 
	if (shiptos == 1) {document.getElementById('shipto1_qty').value = qty;}
	else if (shiptos == 2) {document.getElementById('shipto2_qty').value = qty - document.getElementById('shipto1_qty').value;}
	else {document.getElementById('shipto3_qty').value = qty - document.getElementById('shipto1_qty').value - 
			document.getElementById('shipto2_qty').value;}
	}
	for (var i = 1; i <=shiptos; i++) { 
		if (Math.ceil(document.getElementById('shipto' + i + '_qty').value) < 0 ) { document.getElementById('shipto' + i + '_qty').value = 0;}
		}
	//alert(document.getElementById("weightperunit").value);	
	for (var i = 1; i <= shiptos; i++) {// set the weights for each column
		var weight = 0;
		weight = document.getElementById("weightperunit").value * document.getElementById('shipto' + i + '_qty').value;
		document.getElementById("weightloc" + i).innerHTML = " --> " + weight + " lbs";
		document.getElementById("weight" + i).value = weight;
	}
}

function updateSelect(delid, selectname) {
	if (document.getElementById("shipping").value == '11' || document.getElementById("shipping").value == 'x') {
		if (selectname == "shipto1_id" ) {
		//document.getElementById("shipping").value = '4FDXGFEDEX_GROUND';	
		}
	}
	if (window.XMLHttpRequest) {
		 xmlhttp = new XMLHttpRequest();
		}
	else {   try
    {
    xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
  catch (e)
    {
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
	}
	xmlhttp.open("GET", "getaddress.php?id=" + delid, true);
	xmlhttp.onreadystatechange = function () {
		if (xmlhttp.readyState == 4) {// should have responseText before send statement
			//document.getElementById("testbox").innerHTML = xmlhttp.responseText;
			try {var z = xmlhttp.responseXML.documentElement;
				var safari = 0;
					} 
			catch(e){
				try {
				parser=new DOMParser();
    			z=parser.parseFromString(xmlhttp.responseText,"text/xml");
				safari=1;
				//alert(z.childNodes[0].childNodes[1].nodeName);
				} catch(e){}
				}
			if ( z == null) {
				var z = new ActiveXObject("Microsoft.XMLDOM");
				z.loadXML(xmlhttp.responseText);	
			}
	for (var i = 0; i<11; i++) {
		if (navigator.appName != "Microsoft Internet Explorer" && safari == 0) {
		tagname = z.childNodes[i].nodeName; }
		else if (navigator.appName == "Microsoft Internet Explorer") {
		tagname = z.childNodes[1].childNodes[i].nodeName;
		}
		else {
			tagname = z.childNodes[0].childNodes[i].nodeName;
		}
			
		try {
		document.getElementById(tagname).value = z.getElementsByTagName(tagname)[0].childNodes[0].nodeValue	;
			//txt = txt + "----" + z.childNodes[i].nodeValue;
		} catch(e) {try{document.getElementById(tagname).value = "";}catch(e){}}
			}
			get_shiprate();
		}
	}
	xmlhttp.send(null);

}

function updateCard(id, name) {
	//alert(name);
	if (name == 'billoption') {
		document.getElementById("payment2").checked = true;
	}
	else {
		document.getElementById("payment2").checked = false;
		document.getElementById("billoption").value = 0;
	}
	if (window.XMLHttpRequest) {
		var xmlhttp = new XMLHttpRequest();
		}
	else {
		var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
	xmlhttp.open("GET", "getcard.php?id=" + id, true);
	xmlhttp.onreadystatechange = function () {
		if (xmlhttp.readyState == 4) {// should have responseText before send statement
			//document.getElementById("testbox").innerHTML = xmlhttp.responseText;
			try {var z = xmlhttp.responseXML.documentElement;
			var safari = 0;} 
			catch(e){ 
				try {
				parser=new DOMParser();
    			z=parser.parseFromString(xmlhttp.responseText,"text/xml");
				safari = 1;
				} catch(e){}
				}
			if ( z == null) {
				var z = new ActiveXObject("Microsoft.XMLDOM");
				z.loadXML(xmlhttp.responseText);
			}
			for (var i = 0; i<8; i++) {
		if (navigator.appName != "Microsoft Internet Explorer" && safari == 0) {
		tagname = z.childNodes[i].nodeName; }
		else if (navigator.appName == "Microsoft Internet Explorer") {
		tagname = z.childNodes[1].childNodes[i].nodeName;
		}
		else {
			tagname = z.childNodes[0].childNodes[i].nodeName;
		}
		try {
		document.getElementById(tagname).value = z.getElementsByTagName(tagname)[0].childNodes[0].nodeValue	;
			//txt = txt + "----" + z.childNodes[i].nodeValue;
		} catch(e) {document.getElementById(tagname).value = "";}
			}
			
		}
	}
	xmlhttp.send(null);
	
}
function cvv2() {
	window.open("http://www.mediagraphix.com/CVV2.htm", "_blank",
				"width=650,height=410,directories=no,menubar=no,toolbar=no,titlebar=no,status=no");
}

function handleErr(msg,url,l)
{
txt="There was an error on this page.\n\n";
txt+="Error: " + msg + "\n";
txt+="URL: " + url + "\n";
txt+="Line: " + l + "\n\n";
txt+="Click OK to continue.\n\n";
alert(txt);
return true;
}


function changeSize(sizeoption) {

document.getElementById('foldingcell').innerHTML = sizeoption;

}

function updatePrice(catid) {
var quantity = document.getElementById('quantity').value;
var size = document.getElementById('size').value;
var paper = document.getElementById('paper').value;
var inks = document.getElementById('inks').value;
var pages = document.getElementById('pages').value;
//document.getElementById('pricecell').innerHTML = quantity + " " + escape(size) + " " + paper + " " + inks;

if (quantity != 0 && size != 0 && paper !=0 && inks != 0) {
	
	if (window.XMLHttpRequest) {
		var xmlhttp = new XMLHttpRequest();
		}
	else {
		var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
	xmlhttp.open("GET", "updateprice.php?catid=" + catid + "&quantity=" + quantity + "&size=" + size + 
					"&paper=" + escape(paper) + "&inks=" + inks + "&pages=" + pages, true);
	xmlhttp.onreadystatechange = function () {
		if (xmlhttp.readyState == 4) {// should have responseText before send statement
			document.getElementById("pricecell").innerHTML = xmlhttp.responseText;		
		}
	}
	xmlhttp.send(null);	
	}

}

function hideobj() {
	try{
	if (document.getElementById('summary').style.display != 'none') {// collapse visibility visible
			document.getElementById('summary').style.display = 'none';
			document.getElementById('arrow').innerHTML = "&uArr;";
			}
	else {
		document.getElementById('arrow').innerHTML = "&dArr;";
		document.getElementById('summary').style.display = 'block'; 
		document.getElementById('summary').style.display = 'table';
		}
	} catch(e){}
}

function num_shiptos(num) {
	//alert ("the value is " + num);
	if (num == 1) {
		document.getElementById("shipping2").style.visibility = 'collapse';
		document.getElementById("shipping3").style.visibility = 'hidden';
	}
	if (num == 2) {
		document.getElementById("shipping2").style.visibility = 'visible';
		document.getElementById("shipping3").style.visibility = 'hidden';
	}
	if (num == 3) {
		document.getElementById("shipping2").style.visibility = 'visible';
		document.getElementById("shipping3").style.visibility = 'visible';
	}
}



function viewfunc(selectname, clientid, userid) {
	
	if (window.XMLHttpRequest) {
		 xmlhttp = new XMLHttpRequest();
		}
	else {   try
    {
    xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
  catch (e)
    {
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
	}
	xmlhttp.open("GET", "updateview.php?clientid=" + clientid + "&userid=" + userid +
				 "&select=" + selectname, true);
	
	xmlhttp.onreadystatechange = function () {
		if (xmlhttp.readyState == 4 || xmlhttp.readyState=="complete") {
			try {var z = xmlhttp.responseXML.documentElement;} 
			catch(e){ 
				try {
				parser=new DOMParser();
    			z=parser.parseFromString(xmlhttp.responseText,"text/xml");	
				} catch(e){}
				}
			
			if ( z == null) {
				var z = new ActiveXObject("Microsoft.XMLDOM");
				z.loadXML(xmlhttp.responseText);
			}
			
				  //z.getElementsByTagName("drilling")[0].childNodes[0].nodeValue);
			document.getElementById("barinfo").innerHTML = "<strong>Viewing Account:</strong><br>" +
			z.getElementsByTagName("firstname")[0].childNodes[0].nodeValue + " " + 
			z.getElementsByTagName("lastname")[0].childNodes[0].nodeValue +  "<br>User: " + 
			z.getElementsByTagName("username")[0].childNodes[0].nodeValue + 
			 "<br>Of " + z.getElementsByTagName("company")[0].childNodes[0].nodeValue + 
			 "<br><a href = 'mailto:" + z.getElementsByTagName("email")[0].childNodes[0].nodeValue +
			 "'>" + z.getElementsByTagName("email")[0].childNodes[0].nodeValue + "</a>" + 
			 "<br> Phone: " + z.getElementsByTagName("phone")[0].childNodes[0].nodeValue + 
			 "<br> PRLVL : " + z.getElementsByTagName("prlvl")[0].childNodes[0].nodeValue + 
			 "<br> STATUS : " + z.getElementsByTagName("status")[0].childNodes[0].nodeValue;
			 
			 if (clientid != 0 && window.location.pathname != '/summary.php') {
			 for (var j =0; j<= document.getElementById("contact").length; j++) {
						document.getElementById("contact").remove(document.getElementById("contact").length-1);
					}
			 
			 
			 	if (z.getElementsByTagName("firstname").length>0) {
				for (i=0; i < z.getElementsByTagName("firstname").length; i++) {
				var y=document.createElement('option');
					 try{
						y.text=z.getElementsByTagName("firstname")[i].childNodes[0].nodeValue + 
							" " + z.getElementsByTagName("lastname")[i].childNodes[0].nodeValue;
						y.value=z.getElementsByTagName("userid")[i].childNodes[0].nodeValue;
						y.id = "contact"+i;
						try {document.getElementById("contact").add(y,null);}
						catch(e){document.getElementById("contact").add(y);}}catch(e){}
						}
					}
			 	}
			if(window.location.pathname == '/estimate.php'){
				catid = document.getElementById("category").value;	
				newPrice(catid, 'inks');
				}
				
			if(window.location.pathname == '/summary.php'){
				window.location = 'summary.php';
				}
			}
	}

	xmlhttp.send(null);
			
		
	
}


//xml response

function newPrice(catid, selectname) {

	var folding = 0;
	var drilling = 0;
	var shrinkwrap = 0;
	var extras = '';
	var addcover = 0;
	var proofdelcharge = 0;
	var addproof = 0;
	var addpms = 0;
	var inkjet = 0;
	var mailclass = '';
	var markup = 0;
	var promocode = '';
	var mailqty = 0;
	var shipqty = 0;
	var foldsize = '';
	
	
	
	
	if (document.getElementById("emailsent")) {
		document.getElementById("emailsent").innerHTML = "<br>";	
		
	}
	
	if (document.getElementById("foldsize")) {
		foldsize = document.getElementById("foldsize").value;
	}
	
	
	
	if (document.getElementById("promocode").value != '') {// 
		promocode = document.getElementById("promocode").value
	}
	try {
	if (document.getElementById("markup").value > 0 && !isNaN(document.getElementById("markup").value)) {
		markup = Number(document.getElementById("markup").value);
	}
	else if (document.getElementById("markup").value < 0) {
		document.getElementById("markup").value = 0;
	}
	} catch(e){}
	
	if (selectname == 'inkjet' && !document.getElementById("inkjet").checked) {
		document.getElementById("inkjet").checked = false;
		document.getElementById("mailclass").value = '0';
	}
		
	if (catid == 2 || catid == 3 || catid == 10) {
	if (document.getElementById("mailclass").value != '0') {
		mailclass = document.getElementById("mailclass").value;
		document.getElementById("inkjet").checked = true;
	}}
	
	if (document.getElementById("inkjet")) { 
		if (document.getElementById("inkjet").checked) {
			inkjet = 1; }
	}
	//alert(document.getElementById("proofdeliver").selectedIndex);
	if (selectname == "proof") {
		//alert(document.getElementById("proof0").checked);
		if (document.getElementById("proof1").checked) { 
		document.getElementById("proofdeliver").value = 2;}
		if (document.getElementById("proof2").checked) { 
		document.getElementById("proofdeliver").value = document.getElementById("defproofdeliver").value;}
		try{if (document.getElementById("proof3").checked) { 
		document.getElementById("proofdeliver").value = 0;}} catch(e){}
	}
	
	if (selectname == "proofdeliver") {
		//alert(document.getElementById("proofdeliver").value);
		if (document.getElementById("proofdeliver").value == 0 || 
									document.getElementById("proofdeliver").value == 1) {
			document.getElementById("proof1").checked = 0;
			document.getElementById("proof2").checked = 1;}
		else {
			document.getElementById("proof1").checked = 1;
			document.getElementById("proof2").checked = 0;}
	}
	if (document.getElementById("proofdeliver").value == 1) {proofdelcharge = 30;}
	// tests for wierd answers to originals
	if (document.getElementById('originals').value <= 0 || isNaN(document.getElementById('originals').value)) 
	{ document.getElementById('originals').value = 1;}
	if (Math.ceil(document.getElementById('originals').value) != document.getElementById('originals').value) { 
	document.getElementById('originals').value = Math.ceil(document.getElementById('originals').value);}
	
	if (catid == 3){ addcover = document.getElementById("addcover").value;}
	
	if (document.getElementById("extra1option")) {
		if (catid ==1 ) {options = 5;} 
		if (catid ==2 ) {options = 5;}
		if (catid ==3 ) {options = 3;}
		if (catid ==4 ) {options = 4;}
		if (catid ==9 ) {options = 3;}
		if (catid ==12 ) {options = 2;}
		for (i=1; i<=options; i++) {
			if (document.getElementById("extra" + i + "option").checked) {
			extras = extras + "-" + document.getElementById("extra" + i + "option").value;
			}
			else {
			extras = extras + "-" + "0";	
			}
		}
	extras = (extras.substr(1,extras.length-1));
	//alert(extras);
	}
	
	
	if (catid == 9) {
		if (selectname == "paper") {
			document.getElementById("inks").selectedIndex = document.getElementById("paper").selectedIndex;
		}
		if (selectname == "inks") {
			document.getElementById("paper").selectedIndex = document.getElementById("inks").selectedIndex;
		}
	}
	if (catid == 11) {
		if (selectname == "paper") {
			document.getElementById("size").selectedIndex = document.getElementById("paper").selectedIndex;
		}
		if (selectname == "size") {
			document.getElementById("paper").selectedIndex = document.getElementById("size").selectedIndex;
		}
		try{folding = document.getElementById('folding').value;}catch(e){}
	}
	
	if (catid == 2 || catid == 4) {
		folding = document.getElementById('folding').value;
	}
	
	if (catid >= 2 && catid<=4) {
		drilling = document.getElementById('drilling').value;
	}
	if ( (catid >= 2 && catid<=4) || catid == 10) {
		shrinkwrap = document.getElementById('shrinkwrap').value;
	}
	var quantity = document.getElementById('quantity').value;
	if (selectname == 'quantity') {
			document.getElementById('quantity2').value = '';
			}
	if (selectname == 'quantity2' && document.getElementById('quantity2').value.replace(" ","") == 0) {
		document.getElementById('quantity2').value = '';	
	}
	if (selectname == 'quantity2' && document.getElementById("quantity2").value != '') {
			document.getElementById("quantity2").value = document.getElementById("quantity2").value.replace(/,/g, "");
			
		
	}
	if (document.getElementById('quantity2').value != '' && isNaN(document.getElementById('quantity2').value)) {
				document.getElementById("quantitywarn").innerHTML = "<strong>Use Only Digits</strong>";							  							  
			}
	else {
		document.getElementById("quantitywarn").innerHTML = '';
		
	}
	if (document.getElementById('quantity2').value != '' && document.getElementById('quantity2').value != '0'
			&& !isNaN(document.getElementById('quantity2').value)) {
			var quantity = Math.ceil(Math.abs(document.getElementById('quantity2').value));
			document.getElementById('quantity2').value = quantity;
			}
	//alert(document.getElementById("shipqty").value == '');
	/*if (selectname == 'inkjet') {
		if ( document.getElementById("shipqty").value != '') {
			document.getElementById("mailqty").value = quantity - document.getElementById("shipqty").value;
		}
	}*/
	if (document.getElementById("inkjet") && document.getElementById("inkjet").checked) {
		if (document.getElementById("shipqty").value != "" && 
									document.getElementById("mailqty").value == ''
								&&	Number(document.getElementById("shipqty").value) > 0 ) {
			document.getElementById("mailqty").value = quantity;
		}
	}
	
	if (selectname == 'inkjet' && !document.getElementById("inkjet").checked) {
		document.getElementById("mailqty").value = '';
	}
	
	
	if (selectname == 'quantity' || selectname == 'quantity2') {
		if (document.getElementById("inkjet") && !document.getElementById("inkjet").checked) {
			document.getElementById("mailqty").value = '';
			if (document.getElementById("shipqty").value > quantity) {
			document.getElementById("shipqty").value = quantity;}
		}
		if (Number(document.getElementById("shipqty").value) > quantity) {
				document.getElementById("shipqty").value = quantity;
				
			}
		if (document.getElementById("mailqty") && document.getElementById("inkjet").checked && Number(document.getElementById("mailqty").value) > quantity) {
				document.getElementById("mailqty").value = quantity;
				
			}
		if (document.getElementById("mailqty") && document.getElementById("mailqty").value != '' 
					&& document.getElementById("shipqty").value != '') {
			
		if (document.getElementById("mailqty") && Number(document.getElementById("mailqty").value) > quantity) {
				document.getElementById("mailqty").value = quantity	;
				document.getElementById("shipqty").value = 0;	
			}
			//document.getElementById("shipqty").value = quantity - document.getElementById("mailqty").value;
		}
		else if (document.getElementById("shipqty").value == '') {
			shipqty = quantity;	
		}
		else if (document.getElementById("shipqty").value >= 0) {
			if (document.getElementById("shipqty").value > quantity) {
				document.getElementById("shipqty").value = quantity;
			}
			shipqty = document.getElementById("shipqty").value;	
		}
		
	}
	

	if (selectname == 'mailqty') {
		if ( document.getElementById("mailqty").value != '') {
			if (Number(document.getElementById("mailqty").value) < 0) {
				document.getElementById("mailqty").value = 0;
			}
			if (isNaN(document.getElementById("mailqty").value)) {
				document.getElementById("mailqty").value = 0; }
			if (Number(document.getElementById("mailqty").value) > quantity) {
				document.getElementById("mailqty").value = quantity;
				
			}
			mailqty = Math.ceil(Math.abs(document.getElementById("mailqty").value));
			document.getElementById("mailqty").value = mailqty;
			//document.getElementById("shipqty").value = quantity - mailqty;
			//shipqty = quantity - mailqty;
		}
	}
	else if (document.getElementById("inkjet") && document.getElementById("inkjet").checked){
		if (document.getElementById("mailqty").value != '') {
			mailqty = document.getElementById("mailqty").value; }
		else { mailqty = quantity;}
		
	}
	if (selectname == 'shipqty') {
		if ( document.getElementById("shipqty").value != '') {
			if (Number(document.getElementById("shipqty").value) < 0) {
				document.getElementById("shipqty").value = 0;
			}
			if (isNaN(document.getElementById("shipqty").value)) {
				document.getElementById("shipqty").value = 0; }
			if (Number(document.getElementById("shipqty").value) > quantity) {
				document.getElementById("shipqty").value = quantity;
				//if (document.getElementById("mailqty")) { document.getElementById("mailqty").value = 0; }
			}
			shipqty = Math.ceil(Math.abs(document.getElementById("shipqty").value));
			document.getElementById("shipqty").value = shipqty;
			/*if (document.getElementById("mailqty")) {
				if (document.getElementById("shipqty").value > 
											quantity - document.getElementById("mailqty").value) {
			document.getElementById("mailqty").value = quantity - shipqty;}
			if (document.getElementById("inkjet").checked) {mailqty = quantity - shipqty;}
			} */
		}
		else { shipqty = quantity;}
	}
	else {
		if (document.getElementById("shipqty").value != '') {
			shipqty = document.getElementById("shipqty").value; }
		else { shipqty = quantity;}
		
	}
			
	var originals = Math.ceil(document.getElementById('originals').value);
	var size = document.getElementById('size').value;
	var paper = document.getElementById('paper').value;
	//alert("paper value = " + paper);
	var inks = document.getElementById('inks').value;
	var pages = document.getElementById('pages').value;
	if (document.getElementById("addpms")) {
		var addpms = document.getElementById('addpms').value;}
	
	
	if (catid == 1 || catid ==12) {
		if (originals>1 && pages <8) {
			if ( pages*originals <= 2) {
				pages = 2;
				document.getElementById("pages").selectedIndex = 2;
				originals = 1;
			}
			else if ( pages*originals == 4) {
				pages = 4;
				document.getElementById("pages").selectedIndex = 3;
				originals = 1;
			}
			else {
				document.getElementById("pages").selectedIndex = 4;
				originals = Math.ceil(originals*pages/8);
				pages = 8;
			}
		document.getElementById('originals').value = originals;
		}
	}
		
	//alert(quantity + " " + size + " " + paper + " " + inks + " " + pages);
	if (quantity != 0 && size !=0 && paper != 0 && inks != 0 && pages != 0) {
	try{
	if (selectname == 'size' || selectname == 'paper') {
				if (document.getElementById("folding").length >1) {
					for (var j =1; j<= document.getElementById("folding").length; j++) {
						document.getElementById("folding").remove(document.getElementById("folding").length-1);
					}
				}
			//document.getElementById("folding").selectedIndex=0;
			folding=0;
			}
	
	} catch(e) {}
	//document.getElementById("testbox").innerHTML = delid;
	document.getElementById("pricecell").innerHTML = "<img src = 'images/indicator9mq.gif'>";
	if (window.XMLHttpRequest) {
		 xmlhttp = new XMLHttpRequest();
		}
	else {   try
    {
    xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
  catch (e)
    {
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
	}
	xmlhttp.open("GET", "updateprice.php?catid=" + catid + "&quantity=" + quantity + "&originals=" + originals + "&mailqty=" + mailqty + "&shipqty=" + shipqty + "&size=" + escape(size) + "&addpms=" + addpms + "&inkjet=" + inkjet + "&mailclass=" + mailclass + "&foldsize=" + foldsize + 
"&promocode=" + promocode +	"&paper=" + escape(paper) + "&inks=" + inks + "&addcover=" + addcover + "&pages=" + pages  + "&extras=" + extras +"&shrinkwrap="+ shrinkwrap + "&folding=" + folding +"&drilling=" + drilling  , true);
	
	xmlhttp.onreadystatechange = function () {
		if (xmlhttp.readyState == 4 || xmlhttp.readyState=="complete") {
			// should have responseText before send statement
			//document.getElementById("testbox").innerHTML = xmlhttp.responseText;
			
			try {var z = xmlhttp.responseXML.documentElement;} 
			catch(e){ 
				try {
				parser=new DOMParser();
    			z=parser.parseFromString(xmlhttp.responseText,"text/xml");	
				} catch(e){}
				}
			//alert(xmlhttp.responseText);
			if ( z == null) {
				
				var z = new ActiveXObject("Microsoft.XMLDOM");
				z.loadXML(xmlhttp.responseText);
			}
			
				  //z.getElementsByTagName("drilling")[0].childNodes[0].nodeValue);
			try{
			if (z.getElementsByTagName("pricecell")[0].childNodes[0].nodeValue>0 && z.getElementsByTagName("drilling").length==0) {
				if (document.getElementById("drilling").length >1) {
					for (var j =1; j<= document.getElementById("drilling").length; j++) {
						document.getElementById("drilling").remove(document.getElementById("drilling").length-1);
					}
				}
			//document.getElementById("folding").selectedIndex=0;
			drilling=0;
			}}catch(e){} 
			
			if (z.getElementsByTagName("addproof")[0].childNodes[0].nodeValue == 1 ) {
				if(!document.getElementById("proof3")) {
					document.getElementById("proofspan").innerHTML = " <input type = 'radio' name = 'proof' id = 'proof1' value = 1  checked = 'checked' onclick = 'newPrice(" + catid +", this.name)'> PDF Proof <input type = 'radio' name = 'proof' id = 'proof2' value = 2 onclick = 'newPrice(" + catid +", this.name)'> Hardcopy Digital Proof  <input type = 'radio' name = 'proof' id = 'proof3' value = 0  onclick = 'newPrice(" + catid +", this.name)'> No Proof ";
				}
				if (document.getElementById("proof1").checked) { addproof = 5 * originals;}
				if (document.getElementById("proof2").checked) { 
				 	if (size == "8.5 x 14" || size == '11 x 17' || size == '12 x 18') {
						addproof = 40 * originals;}
					else if (size == "8.5 x 11" || size == '9 x 12') {
						addproof = 30 * originals;}
					else {
						addproof = 15 * originals;}
				}
			}
			else if (document.getElementById("proof3") && z.getElementsByTagName("addproof")[0].childNodes[0].nodeValue == 0){
				document.getElementById("proofspan").innerHTML = " <input type = 'radio' name = 'proof' id = 'proof1' value = 1  checked = 'checked' onclick = 'newPrice(" + catid +", this.name)'> PDF Proof <input type = 'radio' name = 'proof' id = 'proof2' value = 2 onclick = 'newPrice(" + catid +", this.name)'> Hardcopy Digital Proof  ";

			}
			//var markup = Number(document.getElementById("markup").value);
			try {
			document.getElementById("description").innerHTML = z.getElementsByTagName("description")[0].childNodes[0].nodeValue;
			} 
			catch (e) {document.getElementById("description2").innerHTML  = z.getElementsByTagName("description")[0].childNodes[0].nodeValue;}
			
			
			if (markup <1 && markup > 0) {
				document.getElementById("pricecell").innerHTML = '$ ' + 
					((Number(z.getElementsByTagName("pricecell")[0].childNodes[0].nodeValue) + proofdelcharge + addproof)* (1 + markup)).toFixed(2) + "<span style = 'font-weight:normal; font-size: 10px; padding-left:200px;'><a href = '#' onclick = 'priceFeedback()'>Price Feedback </a></span>";
			document.getElementById("price").value = ((Number(z.getElementsByTagName("pricecell")[0].childNodes[0].nodeValue) + proofdelcharge + addproof)* (1 + markup)).toFixed(2);
			document.getElementById("subtotal").value = ((Number(z.getElementsByTagName("pricecell")[0].childNodes[0].nodeValue) + proofdelcharge + addproof)* (1 + markup)).toFixed(2);
			document.getElementById("markupamount").value = ((Number(z.getElementsByTagName("pricecell")[0].childNodes[0].nodeValue) + proofdelcharge + addproof)* (markup)).toFixed(2);
			document.getElementById("impressions").value = 
				z.getElementsByTagName("impressions")[0].childNodes[0].nodeValue;
				
			}
			else {
			document.getElementById("pricecell").innerHTML = '$ ' + 
					(Number(z.getElementsByTagName("pricecell")[0].childNodes[0].nodeValue) + proofdelcharge + addproof + markup).toFixed(2) + "<span style = 'font-weight:normal; font-size: 10px; padding-left:200px;'><a href = '#' onclick = 'priceFeedback()'>Price Feedback </a></span>";
			document.getElementById("price").value = Number(z.getElementsByTagName("pricecell")[0].childNodes[0].nodeValue) + proofdelcharge + addproof + markup;
			document.getElementById("subtotal").value = Number(z.getElementsByTagName("pricecell")[0].childNodes[0].nodeValue) + proofdelcharge + addproof + markup;
			document.getElementById("impressions").value = 
				z.getElementsByTagName("impressions")[0].childNodes[0].nodeValue;
			if (document.getElementById("markupamount")) {
				document.getElementById("markupamount").value = markup;}
			}
			document.getElementById("weight").value = z.getElementsByTagName("weight")[0].childNodes[0].nodeValue;
			get_shiprate();
			document.getElementById("productid").value = z.getElementsByTagName("productid")[0].childNodes[0].nodeValue;
			document.getElementById("postage").value = z.getElementsByTagName("postage")[0].childNodes[0].nodeValue;
			if (z.getElementsByTagName("drilling").length>0) {
				for (i=0; i < z.getElementsByTagName("drilling").length; i++) {
				var x=document.createElement('option');
					if(!document.getElementById("drilling"+i)) {
						x.text=z.getElementsByTagName("drilling")[i].childNodes[0].nodeValue;
						x.value=z.getElementsByTagName("drillingvalue")[i].childNodes[0].nodeValue;
						x.id = "drilling"+i;
						if(navigator.appName!="Microsoft Internet Explorer") {document.getElementById("drilling").add(x,null);}
						else {document.getElementById("drilling").add(x);}
						}
				}
			}
			try{
			if (z.getElementsByTagName("folding").length>0) {
				
				for (i=0; i < z.getElementsByTagName("folding").length; i++) {
				var y=document.createElement('option');
					if(!document.getElementById("folding"+i)) {
						y.text=z.getElementsByTagName("folding")[i].childNodes[0].nodeValue;
						y.value=z.getElementsByTagName("foldingvalue")[i].childNodes[0].nodeValue;
						y.id = "folding"+i;
						try {document.getElementById("folding").add(y,null);}
						catch(e){document.getElementById("folding").add(y);}
						}
				}
			}} catch(e){}
			
			
			if (z.getElementsByTagName("shrinkwrap").length>0) {
				for (i=0; i < z.getElementsByTagName("shrinkwrap").length; i++) {
				var y=document.createElement('option');
					if(!document.getElementById("shrinkwrap"+i)) { try{
						y.text=z.getElementsByTagName("shrinkwrap")[i].childNodes[0].nodeValue;
						y.value=z.getElementsByTagName("shrinkwrapvalue")[i].childNodes[0].nodeValue;
						y.id = "shrinkwrap"+i;
						try {document.getElementById("shrinkwrap").add(y,null);}
						catch(e){document.getElementById("shrinkwrap").add(y);}}catch(e){}
						}
				}
			}
			//alert(xmlhttp.responseText);
			
	
		
		}
	}
	
	xmlhttp.send(null);	 
	
	}
	else {
			document.getElementById("pricecell").innerHTML = '$ '  + "<span style = 'font-weight:normal; font-size: 10px; padding-left:200px;'><a href = '#' onclick = 'priceFeedback()'>Price Feedback </a></span>";
			document.getElementById("price").value = 0;
	}
}

function priceFeedback() {
	var response = prompt("Please enter your budget or price match info");
	array = document.getElementById("estimateform");
	//alert(userid);
	getvar = "?response=" + escape(response) + "&";
	for (i = 0; i < array.length; i++) {
		if (array[i]['type'] == 'checkbox') {
			if (array[i]['checked'] == true) {
				getvar += escape(array[i]['name']) + "=" +  escape(array[i]['value']) + "&";
			}
		}
		else {
			getvar += escape(array[i]['name']) + "=" +  escape(array[i]['value']) + "&";
		}
	}
	
	//alert("response=" + escape(response) + "&userid=" + userid + "&clientid=" + clientid);
	if (window.XMLHttpRequest) {
		var xmlhttp = new XMLHttpRequest();
		}
	else {
		var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
	xmlhttp.open("GET", "pricefeedback.php" + getvar, true);
	xmlhttp.onreadystatechange = function () {
		if (xmlhttp.readyState == 4) {
			//alert(xmlhttp.responseText);
			}
	}
	xmlhttp.send(null);
	

}

function quickEstimate() {
	array = document.getElementById("estimateform");
	//alert(userid);
	getvar = "?";
	for (i = 0; i < array.length; i++) {
		if (array[i]['type'] == 'checkbox') {
			if (array[i]['checked'] == true) {
				getvar += escape(array[i]['name']) + "=" +  escape(array[i]['value']) + "&";
			}
		}
		else {
			getvar += escape(array[i]['name']) + "=" +  escape(array[i]['value']) + "&";
		}
	}
	
	//alert("response=" + escape(response) + "&userid=" + userid + "&clientid=" + clientid);
	if (window.XMLHttpRequest) {
		var xmlhttp = new XMLHttpRequest();
		}
	else {
		var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
	xmlhttp.open("GET", "quickestimate.php" + getvar, true);
	xmlhttp.onreadystatechange = function () {
		if (xmlhttp.readyState == 4) {
			//alert(xmlhttp.responseText);
			document.getElementById("emailsent").innerHTML = "&nbsp;<img src = 'images/arrowgreen.gif'> SENT";
			}
	}
	xmlhttp.send(null);

}

function editField(field, table, recno, value) {
	//alert(field + " " + table + " " + recno + " " + value);	
	document.getElementById(field+recno).innerHTML = "<input type = 'text' name = 'editfield' " + 
	"id = 'editfield'" + " value = '" + value + "' onBlur='submitField(\"" + field + "\", \"" + table + "\", " + 
	recno + ", this.value)'>";																																																																																				
	
}

function submitField(field, table, recno, value) {
	//alert(field + " " + table + " " + recno + " " + value);
	if (field == 'total') {
		document.getElementById(field+recno).innerHTML = "<a href = '#' onclick='editField(\"" + field +
			 "\", \"" + table + "\", " + recno + ",\"" + value + "\")'>$ " + Number(value).toFixed(2) +  "</a>";
	}
	else if (field != 'orderstatus') {
	document.getElementById(field+recno).innerHTML = "<a href = '#' onclick='editField(\"" + field +
			 "\", \"" + table + "\", " + recno + ",\"" + value + "\")'>" + value +  "</a>";
		}
	type = 'text';
	if (!isNaN(value)) { type = 'number'; }
	
	if (window.XMLHttpRequest) {
		var xmlhttp = new XMLHttpRequest();
		}
	else {
		var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
	xmlhttp.open("GET", "updatefield.php?field=" + field + "&table=" + table + "&recno=" + recno +
				 "&value=" + value + "&type=" + type, true);
	xmlhttp.onreadystatechange = function () {
		if (xmlhttp.readyState == 4) {
			//alert(xmlhttp.responseText);
			}
	}
	xmlhttp.send(null);
	
	
}

function notifyCharges(orderid) {
	
	if (window.XMLHttpRequest) {
		var xmlhttp = new XMLHttpRequest();
		}
	else {
		var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
	xmlhttp.open("GET", "notifycharges.php?order=" + orderid , true);
	xmlhttp.onreadystatechange = function () {
		if (xmlhttp.readyState == 4) {
			//alert(xmlhttp.responseText);
			document.getElementById("notifysent").innerHTML = "&nbsp;<img src = 'images/arrowgreen.gif'> SENT";
			}
	}
	xmlhttp.send(null);
	
	
}
