/*******************************************************************************
Author : Roger D. Hosto Jr.
Version : Version 1.1 - Feb 27, 2007
********************************************************************************
Notes :
version 1.1 added formatCurrency();
********************************************************************************
********************************************************************************
Usage :
********************************************************************************
*******************************************************************************/
/*
 * ONLY EDIT ANYTHING BELOW HERE IF YOU TRUELY KNOW WHAT YOU ARE DOING
 */
function AjaxDailyDeal( name, div ) {
	//Public Variables
	this.setname = name;
	this.divName = div;
	this.clientxml = "/wireless_cameras/wireless_cameras.xml";
	this.defaultMsg = "America";
	//Private Variables
	var xmlData = new Array();
	var xmlhttp = false;
	var that = this;
	var SKU = "";
	var DBItem = "";
	/*
	 * Public Function
	 */
	//init();
	this.init = function() {
		var date = new Date();
		getXMLPage( this.clientxml+"?"+date.getTime() );
	}
	/*
	 * Private Function 
	 */
	//getXMLpage();
	function getXMLPage( url ) {
		//Try to on Browser that us the XMLHttpRequest Object ( eg Firefox, Opera )
		if ( window.XMLHttpRequest ) {
			try {
				xmlhttp= new XMLHttpRequest();
			} catch( e ) {
				xmlhttp = false;
				//alert( "Error " + e );
			}
		//Try to on Browser that us theActiveObject ( eg Internet Explorer )
		} else if ( window.ActiveXObject ) {
			try {
				xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			} catch( e ) {
				try {
					xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
				} catch( e ) {
					xmlhttp = false;
					alert( "Error " + e );
				}
			}
		}
		if( xmlhttp ) {
			//Make sure that you set the onreadystatechange before you do the open send request
			//it needs this to finish the processes.
			xmlhttp.onreadystatechange = processReqChange;
			xmlhttp.open( "GET", url, true);
			xmlhttp.send(null);
		}
	}
	//end getXMLpage();
	//processReqChange()
	function processReqChange() {
		if( xmlhttp.readyState == 4 ) {
			
			var Data = xmlhttp.responseXML.childNodes;
			
			for( var i = 0; i < Data.length; i++ ) {
				
				for(var x = 0; x < Data[i].childNodes.length; x++ ) {
				
					if( Data[i].childNodes[x].nodeType != 1 ) continue;
					
					if( Data[i].childNodes[x].nodeName == "maindeal" ) {

						var mainDeal = Data[i].childNodes[x];
						
						for( var y = 0; y < mainDeal.childNodes.length; y++ ) {
						
							if( mainDeal.childNodes[y].nodeType != 1 ) continue;
							
							if( mainDeal.childNodes[y].nodeName == "SKU" ) {
								
								SKU = mainDeal.childNodes[y].firstChild.nodeValue;
								
							} else if( mainDeal.childNodes[y].nodeName == "SSID" ) {
								
								DBItem = mainDeal.childNodes[y].firstChild.nodeValue
								
							} else if( mainDeal.childNodes[y].nodeName == "price" ) {
								
								xmlData[0] = parseFloat( mainDeal.childNodes[y].firstChild.nodeValue );
								
							} else if( mainDeal.childNodes[y].nodeName == "totalvalue" ) {
								
								xmlData[1] = parseFloat( mainDeal.childNodes[y].firstChild.nodeValue );
								
							} else if( mainDeal.childNodes[y].nodeName == "savingsvalue" ) {
								
								xmlData[2] = parseFloat( mainDeal.childNodes[y].firstChild.nodeValue );
							}
						}
						
					} else if ( Data[i].childNodes[x].nodeName == "ItemList" ) {
						
						var ItemList = Data[i].childNodes[x];
						
						var tmp = 0;
						
						for( var y = 0; y < ItemList.childNodes.length; y++ ) {
						
							if( ItemList.childNodes[y].nodeType != 1 ) continue;
							
							var Item = ItemList.childNodes[y];
							
							for( var z = 0; z < Item.childNodes.length; z++ ) {
								
								if( Item.childNodes[z].nodeType != 1 ) continue;
								
								if( Item.childNodes[z].nodeName == "Price" ) {
												
									tmp = parseFloat( tmp ) + parseFloat( Item.childNodes[z].firstChild.nodeValue );
									
								}
							}
								
						}
						
						xmlData[1] = parseFloat( tmp );
						
						xmlData[2] = xmlData[1] - xmlData[0];			
						
						
					} else if ( Data[i].childNodes[x].nodeName == "DBItem" ) {
						
						DBItem = Data[i].childNodes[x].firstChild.nodeValue
					}
					
					
				}
			}
			
			if( xmlData.length < 2 && that.clientxml != "/whatsincluded/"+SKU+".xml" ) {
				
				that.clientxml = "/whatsincluded/"+SKU+".xml"; 
				
				getXMLPage( that.clientxml );
				
			} else {
				
				parseDiv()
				
			}
		}
	}//end processReqChange()
	function parseDiv(){
		var button = "<a onclick=\"leaving=1\" href=\"http://store.x10.com/cgi-bin/sb/order.cgi?storeid=x10merchant&dbname=products&itemnum="+DBItem+"&function=add&prevlocation=/homepage.htm\" target=\"_top\"><img src=\"http://graphics.x10.com/images_buttons/order5.gif\" alt=\"Click Here to Order XCam2 Wireless Video Camera Kit with Video Receiver plus FREE Bonus: VCR Recording Kit with EagleEye Motion Sensor and DaVinci Camera Tripod with Video Security Yard Sign and Video Surveillance Decals\" border=\"0\"></a>";
		var whatsincluded = "<a href=\"http://www.x10.com/whatsincluded/"+SKU+".html\" target=\"_blank\"><font face=\"Arial\" size=\"1\">What's included</font></a>";
		if ( that.divName ) {
			var div = document.getElementById( that.divName );
		} else {
			var div = document.getElementById( 'ajaxdailydeal' );
		}
		var HTML = div.innerHTML;
		var regex = new RegExp( "<!--\\[BUTTON\\]-->", "g" );
		HTML = HTML.replace( regex, button );
		var regex = new RegExp( "<!--\\[SAVINGS\\]-->", "g" );
		HTML = HTML.replace( regex, formatCurrency( xmlData[2] ) );
		var regex = new RegExp( "<!--\\[SEPARATELY\\]-->", "g" );
		HTML = HTML.replace( regex, formatCurrency( xmlData[1] ) );
		var regex = new RegExp( "<!--\\[WHATSINCLUDED\\]-->", "g" );
		HTML = HTML.replace( regex, whatsincluded );
		div.innerHTML = HTML;
	}// end parseDiv()
	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);
	}
}
