function buyPageSetup() {
	var inputs = getElementsByClass("quatity");
	for(var i=0; i<inputs.length; ++i) {
		var inputTag = inputs[i];
		if(inputTag) {
			inputTag.onfocus=doOnFocus;
			if (inputTag.captureEvents) inputTag.captureEvents(Event.FOCUS);
			inputTag.onblur=doOnBlur;
			if (inputTag.captureEvents) inputTag.captureEvents(Event.BLUR);
			inputTag.onkeyup=doKeyUp;
			if (inputTag.captureEvents) inputTag.captureEvents(Event.KEYUP);
			inputTag.onchange=doKeyUp;
			if (inputTag.captureEvents) inputTag.captureEvents(Event.CHANGE);
		}
	}
	

	/*
	var jsInput = document.getElementById("javascript");
	jsInput.value = 1;
	
	var ajaxInput = document.getElementById("ajax");
	ajaxInput.value = (testXMLHttpObject()) ? 1 : 0;
	*/
}

registerStartupFunction( buyPageSetup );

/*function validateForm(e)
{
	alert(calculateTotal());
	if (calculateTotal() < 25)
	{
		alert("Please order a minimum amount of $30.");
		return false;
	}
	
	return true;
}*/

function doOnFocus(e) {
	e = getEventTarget(e);
	(e.value == "0") ? e.value = "" : e.select();	
}

function doOnBlur(e) {
	e = getEventTarget(e);
	if(e.value == "") e.value = "0";	
}

function doKeyUp(e) {
	e = getEventTarget(e);
	var qty = e.value;
	var elem = e.parentNode;
	elem = elem.nextSibling;
	while(elem.className != "price")
		elem = elem.nextSibling;

	var price = parseFloat(elem.innerHTML.substr(1));
	
	while(elem.className != "subTotal")
		elem = elem.nextSibling;
	
	elem.innerHTML = "$" + formatMoney(qty * price);
	
	
	var data="update_cart=1";
	var inputs = getElementsByClass("quatity");
	for(var i=0; i<inputs.length; ++i) {
		var inputID=inputs[i].id;
		var prodNum=inputID.substring( inputID.indexOf('_') + 1 );
		data += "&" + prodNum + "=" + inputs[i].value; 
	}
	
	calculateTotal();
	
	postDataReturnXML('includes/ajax_data.php', data, updateShipping, null);
}

function formatMoney(fNumber) {
	if(isNaN(fNumber)) fNumber = 0;
	var newNum = new String((Math.round(fNumber * 100))/100);
	var dot = newNum.lastIndexOf('.');
	var zeroes = (dot == -1) ? -1 : newNum.length - dot;
	//alert("newNum.length = "+newNum.length + "\ndot = "+dot+"\nzeroes = "+zeroes);
	switch(zeroes) {
		case -1:
			newNum += ".0";
		case 2:
			newNum += "0";
	}
	return newNum;	
}

function calculateTotal() {
	var subTotalCells = getElementsByClass("subTotal");
	var orderTotal = 0;
	
	for(var i=0; i<subTotalCells.length-1; ++i) {
		orderTotal += parseFloat(subTotalCells[i].innerHTML.substr(1));	
	}
	
	subTotalCells[subTotalCells.length - 1].innerHTML = "$" + formatMoney(orderTotal);	
}

var dynObj = new Array();

function updateShipping(xmlDoc, obj) {
	var costs = xmlDoc.getElementsByTagName( "shipping" );
	var theTable = document.getElementsByTagName( "table" );
	
	if( dynObj.length == 0 )
		makeSpacerRow( theTable[theTable.length-1] );
	
	for(var i=0; i<dynObj.length; ++i) {
		theTable[theTable.length-1].removeChild(dynObj[i]);	
	}
	dynObj = new Array();
	
	for(var i=0; i<costs.length; ++i) {
		var shCost=costs[i].getAttribute("cost");
		var cellId = costs[i].getAttribute("id");
		var aCell = getElementsByClass( cellId );
		if( aCell.length < 1 ) {
			// make one
			var shDetails = new String( costs[i].firstChild.nodeValue );
			
			var tableCell = document.createElement('TD');
			tableCell.setAttribute("colSpan", "3"); // need the capital S for this to work in ie *sigh*
			tableCell.setAttribute("align", "right");
			//tableCell.appendChild( document.createTextNode( shDetails.replace('&amp;', '&') ) ); 
			appendText( tableCell, shDetails );
			
			var tableRow = document.createElement('TR');
			tableRow.appendChild( tableCell );
			
			tableCell = document.createElement('TD');
			tableCell.setAttribute("align", "right");
			tableCell.className = cellId;
			tableCell.appendChild( document.createTextNode( "$" + shCost ) );
			
			tableRow.appendChild( tableCell );
			
			var tBody = document.createElement('TBODY');
			tBody.appendChild( tableRow );
			
			//keep a reference for deletion later
			dynObj[dynObj.length] = tBody;
			
			theTable[theTable.length-1].appendChild( tBody );
		} else {
			aCell[0].innerHTML = "$" + shCost;	
		}
	}
}

function appendText( pContainer, pText ) {
	pText = pText.replace('&amp;', '&');
	var aToken = new Array();
	aToken = pText.split("&#xA;");
	
	for(var i=0; i<aToken.length; ++i) {
		pContainer.appendChild( document.createTextNode( aToken[i] ) );
		
		if( i < aToken.length - 1) {
			pContainer.appendChild( document.createElement('BR') );	
		}	
	}
} 

function makeSpacerRow(table) {
	var tableCell = document.createElement('TD');
	tableCell.setAttribute("colSpan", "4");
	tableCell.setAttribute("align", "center");
	
	var boldText = document.createElement('B');
	boldText.appendChild( document.createTextNode( "Estimated Shipping" ) );
	
	tableCell.appendChild( boldText );
	tableCell.appendChild( document.createElement('BR') );
	tableCell.appendChild( document.createTextNode( "(Orders shipped to Alaska and Hawaii are subject to a $4.99 transportation surcharge)" )); 
			
	var tableRow = document.createElement('TR');
	tableRow.appendChild( tableCell );
			
	var tBody = document.createElement('TBODY');
	tBody.appendChild( tableRow );
	
	table.appendChild( tBody );
}
