function trim(stringToTrim) {
	if(stringToTrim == null){
		return "";
	}else{
		return stringToTrim.replace(/^\s+|\s+$/g,"");
	}
}
function createRequest() {
  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!");
  else
    return request;
}

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 sendRequest(url, param) {
  var request = createRequest();
  request.onreadystatechange = function() {
      updatePage(request);
  }

  // Get Request
  /*request.open("GET", url + "?" + param + "&dummy=" + new Date.getTime(), true);
  request.send(null);*/
  
  //Post request
  request.open("POST", url, true);
  request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  request.send(param);
}
function updatePage(request) {
  if (request.readyState == 4) {
    if (request.status == 200) {
      	var info_array = trim(request.responseText);
      	values = info_array.split("||");
	  	section = values[0];
		switch(section){
			case "pricing_chart":
				document.getElementById("quote_table").innerHTML = values[1];
				document.getElementById('prev_shape').innerHTML=document.getElementById('shape').value;
				document.getElementById('prev_w').innerHTML=document.getElementById('width_field').value;
				document.getElementById('prev_h').innerHTML=document.getElementById('height_field').value;
				document.getElementById('prev_material').innerHTML=document.getElementById('material').value;
				document.getElementById('disp_qty').innerHTML = document.getElementById('qty').value;
				if(document.getElementById('usage_indoor').checked){
					document.getElementById('prev_usage').innerHTML="Indoor";
				}else{
					document.getElementById('prev_usage').innerHTML="Outdoor";
				}
				document.getElementById('prev_proof').innerHTML=document.getElementById('proof').value;
				document.getElementById('disp_unit_price').innerHTML = document.getElementById('chart_unit_cost').innerHTML;
				//document.getElementById('disp_pms_price').innerHTML = formatCurrency(document.getElementById('pms_cost').value);
				document.getElementById('disp_pms_price').innerHTML = formatCurrency(values[2]);
				document.getElementById('disp_proof').innerHTML = formatCurrency(document.getElementById('proof_cost').value);
				document.getElementById('cart_pms_cost').value = values[2]; //document.getElementById('pms_cost').value;
				temp_chart_cost = document.getElementById('chart_cost').innerHTML.replace('$','');
				the_total = parseFloat(temp_chart_cost.replace(',','')) + parseFloat(values[2]) + parseFloat(document.getElementById('proof_cost').value);
				//the_total = parseFloat(document.getElementById('chart_cost').innerHTML.replace('$','')) + parseFloat(document.getElementById('pms_cost').value) + parseFloat(document.getElementById('proof_cost').value);
				document.getElementById('disp_total').innerHTML = formatCurrency(the_total);
				if(the_total == 0){
					alert('Sorry, orders over $2500 or labels over 10 square inches require a custom order.\n\nPlease call us at 1-800-727-1344.');
				}
				//alert('Proof cost: '+values[2]);
				break;
			case "save_quote":
				alert('Your quote has been saved successfully.');
				break;
		}
		
    }
    else 
      alert("Error! Request status is " + request.status);
	}
}
