// -------------------------------------- Make XMLHttpRequest Request Object --------------------------------------
// Build a new Object and check to see what browser it is
var request = null;

try {
 request = new XMLHttpRequest();
} catch (trymicrosoft) {
try {
 request = new ActiveXObject("Msxml2.XMLHTTP");
 } catch (othermicrosoft) {
 try {
 request = new ActiveXObject("Microsoft.XMLHTTP");
 } catch (failed) {
 request = null;
 }
 }
}

if (request == null)
alert("Error creating request object!");

var request2 = null;

try {
 request2 = new XMLHttpRequest();
} catch (trymicrosoft) {
try {
 request2 = new ActiveXObject("Msxml2.XMLHTTP");
 } catch (othermicrosoft) {
 try {
 request2 = new ActiveXObject("Microsoft.XMLHTTP");
 } catch (failed) {
 request2 = null;
 }
 }
}

if (request2 == null)
alert("Error creating request object!");

function view_shipping(){
	
	if(document.getElementById('onBlur').value =='true'){
		
			
		if(document.getElementById('zip').value == ''){
			alert('You must enter your shipping destination zip code.');
		} else {
			
			document.getElementById('onBlur').value = 'false';

			var str = 'weight=' + document.getElementById('total_weight_2').value + '&zip=' + document.getElementById('zip').value;
			//alert(str);
			request.open("POST", "/buy/xt-shipping.php", true);
		 	request.onreadystatechange = function() {
				if(request.readyState == 4) {
					//alert(request.responseText);
					document.getElementById('total_shipping').innerHTML = formatCurrency(request.responseText);
					document.getElementById('onBlur').value = 'true';					
				}
			}
			request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			request.send(str);
		}
	}
}

function get_shipping(product){
	
	if(document.getElementById('onBlur').value =='true'){
		
		document.getElementById('onBlur').value = 'false';
		
		document.getElementById('total_weight').value = (document.getElementById('total_weight').value*1) + (document.getElementById(product + '_weight').value*1)*(document.getElementById(product + '_quantity').value*1);
		
		
		var weight = document.getElementById('total_weight').value;

		var str = 'weight=' + weight + '&zip=' + document.getElementById('zip').value + '&product=' + product;
		document.getElementById('mytimer').value = 'true';
		
		setTimeout("mytimer();",4000);
		
		function mytimer(){
			if(document.getElementById('mytimer').value == 'true' &&  document.getElementById('mytimer_count').value < 4){
				request.abort();
				document.getElementById('mytimer_count').value = document.getElementById('mytimer_count').value + 1;
				get_shipping(product);				
			}		
		}	
		
		
		request.open("POST", "/buy/xt-shipping.php", true);
	 	request.onreadystatechange = function() {
			if(request.readyState == 4) {
				document.getElementById('mytimer').value = 'false';
				
				//alert(request.responseText);
				if(document.getElementById('shipping_charged').value == '0'){
					document.getElementById('shipping_charged').value = request.responseText;
					document.getElementById(product + '_shipping').value = request.responseText;
				} else {
					new_charges = (request.responseText*1) - (document.getElementById('shipping_charged').value*1);
					
					new_charges = Formattedtwo(new_charges);
					
					document.getElementById(product + '_shipping').value = new_charges;
					document.getElementById('shipping_charged').value = (new_charges*1) + (document.getElementById('shipping_charged').value*1);
				}
				//document.getElementById(product + '_quantity').value = '0';
				//document.getElementById(product + '_quantity_hidden').value  = '0';	
				//document.getElementById(product + '_total_price').innerHTML = '-';
				document.getElementById(product + '_change_button').innerHTML = '<input type="image" src="https://www.paypal.com/en_US/i/btn/btn_cart_LG.gif" border="0" name="submit" title="Add to Cart" onmouseup="blankit(\''+product+'\');"" />';			
				document.getElementById('onBlur').value = 'true';					
			}
		}
		request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		request.send(str);
	}
	
}

function Formattedtwo(amount)
{
	var i = parseFloat(amount);
	if(isNaN(i)) { i = 0.00; }
	var minus = '';
	if(i < 0) { minus = '-'; }
	i = Math.abs(i);
	i = parseInt((i + .005) * 100);
	i = i / 100;
	s = new String(i);
	if(s.indexOf('.') < 0) { s += '.00'; }
	if(s.indexOf('.') == (s.length - 2)) { s += '0'; }
	s = minus + s;
	return s;
}



function blankit(product){
	
	
	setTimeout(proceed,1500);
	function proceed(){
		document.getElementById(product + '_quantity').value = '0';
		document.getElementById(product + '_quantity_hidden').value  = '0';	
		document.getElementById(product + '_total_price').innerHTML = '-';
		document.getElementById(product + '_change_button').innerHTML = '<input type="button" value="Prepare Order" onclick="if(document.getElementById(\'zip\').value == \'\' || document.getElementById(\''+product+'_quantity\').value == \'0\'){alert(\'Please enter shipping destination zip code or enter a quantity.\');} else { get_shipping(\''+product+'\'); }" />';
		
	}
	
}

function formatCurrency(num) {
num = num.toString().replace(/\$|\,/g,'');
if(isNaN(num))
num = "0";
sign = (num == (num = Math.abs(num)));
num = Math.floor(num*100+0.50000000001);
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));
return (((sign)?'':'-') + '$' + num + '.' + cents);
}

function increase(product){
	if(document.getElementById('onBlur').value =='true'){
		document.getElementById('onBlur').value = 'false';
		
		document.getElementById(product + '_quantity').value = document.getElementById(product + '_quantity').value*1+1;
		document.getElementById(product + '_quantity_hidden').value = document.getElementById(product + '_quantity').value;
		document.getElementById(product + '_quantity_prev').value = document.getElementById(product + '_quantity').value;
		
		document.getElementById(product + '_total_price').innerHTML = formatCurrency(document.getElementById(product + '_price').value * document.getElementById(product + '_quantity').value);
		
		document.getElementById('total_weight_2').value = (document.getElementById('total_weight_2').value*1) + (document.getElementById(product + '_weight').value*1)
		
		document.getElementById('total_shipping').innerHTML = '<input type="button" onclick="view_shipping()" value="Click to Calculate" />';
		
		document.getElementById('onBlur').value = 'true';	
	}
	
}
function decrease(product){
	if(document.getElementById('onBlur').value =='true'){
		document.getElementById('onBlur').value = 'false';
		if(document.getElementById(product + '_quantity').value != 0){
			document.getElementById(product + '_quantity').value = document.getElementById(product + '_quantity').value*1-1;
			document.getElementById(product + '_quantity_hidden').value = document.getElementById(product + '_quantity').value;
			document.getElementById(product + '_quantity_prev').value = document.getElementById(product + '_quantity').value;			
						
		
		document.getElementById(product + '_total_price').innerHTML = formatCurrency(document.getElementById(product + '_price').value * document.getElementById(product + '_quantity').value);
		document.getElementById('total_weight_2').value = (document.getElementById('total_weight_2').value*1) - (document.getElementById(product + '_weight').value*1)
		document.getElementById('total_shipping').innerHTML = '<input type="button" onclick="view_shipping()" value="Click to Calculate" />';
		}
		document.getElementById('onBlur').value = 'true';	
	}
	
}

function update_quantity(product){
	if(document.getElementById('onBlur').value =='true'){
		document.getElementById('onBlur').value = 'false';
		
		document.getElementById(product + '_quantity_hidden').value = document.getElementById(product + '_quantity').value;			
		
		if(document.getElementById(product + '_quantity').value > document.getElementById(product + '_quantity_prev').value){
			add_more = (document.getElementById(product + '_quantity').value*1) - (document.getElementById(product + '_quantity_prev').value*1);			
			document.getElementById('total_weight_2').value = (document.getElementById('total_weight_2').value*1) + ((document.getElementById(product + '_weight').value*1)*add_more);
		} else {
			subtract = document.getElementById(product + '_quantity_prev').value - document.getElementById(product + '_quantity').value;			
			document.getElementById('total_weight_2').value = (document.getElementById('total_weight_2').value*1) - ((document.getElementById(product + '_weight').value*1)*subtract);
		}
		
		document.getElementById(product + '_quantity_prev').value = document.getElementById(product + '_quantity').value;			
		
		document.getElementById(product + '_total_price').innerHTML = formatCurrency(document.getElementById(product + '_price').value * document.getElementById(product + '_quantity').value);
		document.getElementById('total_shipping').innerHTML = '<input type="button" onclick="view_shipping()" value="Click to Calculate" />';
		
		document.getElementById('onBlur').value = 'true';	
	}
}

function reset_shipping(){
	document.getElementById('total_shipping').innerHTML = '<input type="button" onclick="view_shipping()" value="Click to Calculate" />';
	
}


function validateZIP(field) {
var valid = "0123456789-";
var hyphencount = 0;

if (field.length!=5 && field.length!=10) {
alert("Please enter your 5 digit or 5 digit+4 zip code.");
return false;
}
for (var i=0; i < field.length; i++) {
temp = "" + field.substring(i, i+1);
if (temp == "-") hyphencount++;
if (valid.indexOf(temp) == "-1") {
alert("Invalid characters in your zip code.  Please try again.");
return false;
}
if ((hyphencount > 1) || ((field.length==10) && ""+field.charAt(5)!="-")) {
alert("The hyphen character should be used with a properly formatted 5 digit+four zip code, like '12345-6789'.   Please try again.");
return false;
   }
}

return true;
}

function validateQuantity(field) {
var valid = "0123456789";


for (var i=0; i < field.length; i++) {
temp = "" + field.substring(i, i+1);
if (valid.indexOf(temp) == "-1") {
alert("Invalid characters in your zip code.  Please try again.");
return false;
}

}

return true;
}

function cleanup(){
	document.getElementById('onBlur').value = 'true';
	document.getElementById('total_weight').value = '0';
	document.getElementById('total_weight_2').value = '0';
	document.getElementById('shipping_charged').value = '0';

	document.getElementById('buddy_tow_lite_quantity').value = '0';
	document.getElementById('buddy_tow_lite_quantity_hidden').value = '0';
	document.getElementById('buddy_tow_lite_quantity_prev').value = '0';
	document.getElementById('buddy_tow_lite_shipping').value = '0';
	
	document.getElementById('buddy_tow_lite_kit_quantity').value = '0';
	document.getElementById('buddy_tow_lite_kit_quantity_hidden').value = '0';
	document.getElementById('buddy_tow_lite_kit_quantity_prev').value = '0';
	document.getElementById('buddy_tow_lite_kit_shipping').value = '0';
	
	document.getElementById('buddy_tow_pro_quantity').value = '0';
	document.getElementById('buddy_tow_pro_quantity_hidden').value = '0';
	document.getElementById('buddy_tow_pro_quantity_prev').value = '0';
	document.getElementById('buddy_tow_pro_shipping').value = '0';
	
	document.getElementById('buddy_tow_kit_quantity').value = '0';
	document.getElementById('buddy_tow_kit_quantity_hidden').value = '0';
	document.getElementById('buddy_tow_kit_quantity_prev').value = '0';
	document.getElementById('buddy_tow_kit_shipping').value = '0';
}