// ************************************************************** //
// ************** START CORE SCRIPT FOR AJAX CALLS ************** //
// ************************************************************** //

/****************************
function name: getXMLHTTPRequest()
purpose:       check for browser version to create the correct type of object
arguments:     none
returns:       the requested object type
*****************************/
function getXMLHTTPRequest() {
	var req = false;
	if (window.XMLHttpRequest) {
		req = new XMLHttpRequest();
	}
	else if (window.ActiveXObject) {
		req = new ActiveXObject("Microsoft.XMLHTTP");
	}
	return req;
}
var xmlhttp = getXMLHTTPRequest();

/****************************
function name: sendRequest()
purpose:       perform a specific action and update the div
arguments:     pageURL, div
returns:       requested page
*****************************/	
function sendRequest(pageURL, div) {
	var bodyofrequest = getBody(pageURL);
	xmlhttp.open("GET", pageURL, true);
	xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	xmlhttp.onreadystatechange = function() {
		if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
			document.getElementById(div).innerHTML = xmlhttp.responseText;
		}
	}
	xmlhttp.send(bodyofrequest);
}

/****************************
function name: getBody()
purpose:       encode URI
arguments:     pageURL
returns:       the pageURL var
*****************************/
function getBody(pageURL) {
	var argument = "value=";
	argument += encodeURIComponent(pageURL)
	return argument;
}

/****************************
function name: updater()
purpose:       creates a dynamic URL to send to sendRequest()
arguments:     page, urlVarName, formValue, divContent
returns:       requested page
*****************************/			  
function updater(pageURL, divContent, urlVarName, formValue) {
	setTimeout(function(){sendRequest(pageURL + '?'+ urlVarName + '='+formValue, divContent)},000);
}

function view(type,see) {
	if (type == "full" && see == 1) {
		document.getElementById('content').style.width = "0px";
		document.getElementById('content').style.display = "none";
		document.getElementById('sidebar').style.display = "none";
		document.getElementById('seePage').style.display = "inline";
	}
	else if (type == "full") {
		document.getElementById('content').style.width = "800px";
		document.getElementById('content').style.display = "inline";
		document.getElementById('sidebar').style.display = "none";
		document.getElementById('seePage').style.display = "none";
	}
	else if (type == "hide") {
		document.getElementById('content').style.display = "inline";
		document.getElementById('content').style.width = "520px";
		document.getElementById('seePage').style.display = "none";
		document.getElementById('sidebar').style.width = "280px";
		document.getElementById('sidebar').style.display = "inline";
	}
}

function getTotal(qty) {
	var checkNum = IsNumeric(qty);
	var price = 0;
	var formatNum = 0;
	if (checkNum == true) {
		price = qty * .95;
		formatNum = formatCurrency(price);
		document.getElementById('price').innerHTML = "YOUR PRICE IS: " + formatNum;
	}
	else {
		alert("Please enter a number.");
		document.getElementById('quantity').value = "";
		document.getElementById('price').innerHTML = "";
	}
}

function IsNumeric(sText) {
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;
 
	for (i = 0; i < sText.length && IsNumber == true; i++) { 
      Char = sText.charAt(i); 
		if (ValidChars.indexOf(Char) == -1) {
			IsNumber = false;
		}
	}
   return IsNumber;   
}

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);
}