requester = null;
requesteraddcart = null;
requesterloadcart = null;
allowloading1 = false;
allowloading2 = false;
allowloading3 = false;
cartloaded = false;
focusname = "";

var expectedHash = "";
clickEvent = false;
changeCptr = 0;

// framerate : a peu près 30 "frames" par secondes
window.setInterval("handleHistory()", 33);

function Imprime(qui) {
 
	if (qui == 'aboutus.php' || qui == 'aboutus_philosophy.php' || qui == 'aboutus_faq.php' || qui == 'aboutus_testimonials.php' || qui == 'aboutus_employment.php') {
		flashHeader.TGotoAndPlay("/","pic_about_mc");
	}
	if (qui == 'products.php' || qui == 'products_management.php' || qui == 'products_payroll.php' || qui == 'products_specialty.php' || qui == 'products_faq.php') {
		flashHeader.TGotoAndPlay("/","pic_products_mc");
	}
	if (qui == 'support.php' || qui == 'support_get.php' || qui == 'support_faq.php' || qui == 'support_feedback.php' || qui == 'request_feature.php') {
		flashHeader.TGotoAndPlay("/","pic_support_mc");
	}	
	if (qui == 'training.php' || qui == 'training_get.php' || qui == 'training_faq.php' || qui == 'training_feedback.php') {
		flashHeader.TGotoAndPlay("/","pic_training_mc");
	}
	if (qui == 'faq.php' || qui == 'faq_sales.php' || qui == 'faq_other.php') {
		flashHeader.TGotoAndPlay("/","pic_faq_mc");
	}
	if (qui == 'download.php') {
		flashHeader.TGotoAndPlay("/","pic_download_mc");
	}
	if (qui == 'news.php') {
		flashHeader.TGotoAndPlay("/","pic_news_mc");
	}
	if (qui == 'contactus.php') {
		flashHeader.TGotoAndPlay("/","pic_contact_mc");
	}
	if (qui == 'request_demo_09.php') {
		flashHeader.TGotoAndPlay("/","allo");
	}
	if (qui == 'accueil.php' || qui == '') {
		qui = 'accueil.php'
		flashHeader.TGotoAndPlay("/","pic_homepage_mc");
	}
 
	//focusname = ou;
	allowloading1 = true;
	if (requester != null && requester.readyState != 0 && requester.readyState != 4){requester.abort();}
	try	{requester = new XMLHttpRequest();}
	catch (error){try{requester = new ActiveXObject('Microsoft.XMLHTTP');}catch (error){requester = null;return false;}}
	requester.onreadystatechange = onreadystatechangeReceipt;
	requester.open('GET', qui);
	requester.send(null);
}

function handleHistory()
{
	if(navigator.appName == 'Netscape')	{
		if (window.location.hash != expectedHash) {
			expectedHash = window.location.hash;
			// change la page quand on pese back Firefox
			Imprime('<?php echo $flash; ?>');
		}
	} else {
		try	{
			if (window['iblank'].document.body.innerHTML != expectedHash) {
				expectedHash = window['iblank'].document.body.innerHTML;
				changeCptr = changeCptr + 1;
				// change la page quand on pese back IE
				if (clickEvent == false) {
					Imprime(expectedHash);
					changeCptr = 0;
				}
				// change la page quand on click lien IE
				if (changeCptr == 2 && clickEvent == true) {	
					Imprime(expectedHash);
					changeCptr = 0;
					clickEvent = false;
				}
			}
		} catch (error){}	
	}	
	return true;
}

function recalculate()
{
	validnum();
	ItemMatrix = '';
	for (k=0; k<document.frmcart.elements.length; k++) {
		ItemMatrix = ItemMatrix + TableauXML[k][3] + ',' + document.frmcart.elements[k].value + ';';
	}
	ItemMatrix = ItemMatrix.substring(0, ItemMatrix.length-1);
	loadcart('eliteweb/cart.aspx?action=3&ItemMatrix=' + ItemMatrix);
}

function change(qui, ou)
{
	if(navigator.appName == 'Netscape')	{
		window.location.hash = qui;
		expectedHash = window.location.hash;
		// change la page quand on click lien Firefox
		Imprime(qui);
	} else {		
		expectedHash = qui
		frames['iblank'].location.href = "/blank.php?hash=" + qui;
		clickEvent = true;
	}	
}

function addcart(qui)
{
	allowloading2 = true;
	numchangeant = Math.floor(Math.random()*1000000000);
	qui = qui + '&elementchangeant=' + numchangeant;
	if (requesteraddcart != null && requesteraddcart.readyState != 0 && requesteraddcart.readyState != 4){requesteraddcart.abort();}
	try	{requesteraddcart = new XMLHttpRequest();}
	catch (error){try{requesteraddcart = new ActiveXObject('Microsoft.XMLHTTP');}catch (error){requesteraddcart = null;return false;}}
	requesteraddcart.onreadystatechange = onreadystatechangeReceipt;
	requesteraddcart.open('GET', qui);
	requesteraddcart.send(null);
}

function loadcart(qui)
{
	allowloading3 = true;
	numchangeant = Math.floor(Math.random()*1000000000);
	qui = qui + '&elementchangeant=' + numchangeant;
	if (requesterloadcart != null && requesterloadcart.readyState != 0 && requesterloadcart.readyState != 4){requesterloadcart.abort();}
	try	{requesterloadcart = new XMLHttpRequest();}
	catch (error){try{requesterloadcart = new ActiveXObject('Microsoft.XMLHTTP');}catch (error){requesterloadcart = null;return false;}}
	requesterloadcart.onreadystatechange = onreadystatechangeReceipt;
	requesterloadcart.open('GET', qui);
	requesterloadcart.send(null);
}

function onreadystatechangeReceipt()
{
	if (allowloading1 == true){
		if (requester.readyState == 4){try{if (requester.status == 200)	{
			allowloading1=false;
			document.getElementById('content').innerHTML = requester.responseText;			
			if (cartloaded == true)
			{
				cartloaded = false;
				TableauXML = []; // set array
					if(navigator.appName == 'Netscape')
					{
						// FireFox get xml in array
						cptr = 0;
						for (k=2; k<requesterloadcart.responseXML.getElementsByTagName('cart')[0].childNodes.length; k++)
						{
							if(requesterloadcart.responseXML.getElementsByTagName('cart')[0].childNodes[k].nodeType != 3)
							{
								TableauXML[cptr] = [requesterloadcart.responseXML.getElementsByTagName('cart')[0].childNodes[k].getElementsByTagName('Name')[0].firstChild.nodeValue, requesterloadcart.responseXML.getElementsByTagName('cart')[0].childNodes[k].getElementsByTagName('price')[0].firstChild.nodeValue, requesterloadcart.responseXML.getElementsByTagName('cart')[0].childNodes[k].getElementsByTagName('quantity')[0].firstChild.nodeValue, requesterloadcart.responseXML.getElementsByTagName('cart')[0].childNodes[k].getElementsByTagName('IdItem')[0].firstChild.nodeValue];
								cptr = cptr + 1;
							}
						}
					}
					else
					{
						// IE get xml in array
						cptr = 0;
						for (k=1; k<requesterloadcart.responseXML.getElementsByTagName('cart')[0].childNodes.length; k++)
						{
							TableauXML[cptr] = [requesterloadcart.responseXML.getElementsByTagName('cart')[0].childNodes[k].getElementsByTagName('Name')[0].firstChild.nodeValue, requesterloadcart.responseXML.getElementsByTagName('cart')[0].childNodes[k].getElementsByTagName('price')[0].firstChild.nodeValue, requesterloadcart.responseXML.getElementsByTagName('cart')[0].childNodes[k].getElementsByTagName('quantity')[0].firstChild.nodeValue, requesterloadcart.responseXML.getElementsByTagName('cart')[0].childNodes[k].getElementsByTagName('IdItem')[0].firstChild.nodeValue];
							cptr = cptr + 1;
						}
					}
				// output strings
				total = 0;
				for (k=0; k<TableauXML.length; k++)
				{
					total = total + TableauXML[k][1]*TableauXML[k][2];
				}
				start = "<form name='frmcart'><table border='0' width='100%' height='100%' cellpadding='0' cellspacing='0'><tr><td width='69'><img src='media/spacer.gif' width='1' height='1'></td><td width='200'><span class='title_grey'>Description</span></td><td width='74'><span class='title_grey'>Unit price&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td><td width='64'><span class='title_grey'>Quantity&nbsp;&nbsp;</span></td><td width='46'><span class='title_grey'>Price&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>";
				between = "";
				end = "<tr><td colspan='5'><img src='media/spacer.gif' height='20' width='1'></td></tr><tr><td colspan='5' align='right'><a href='javascript:recalculate()'><img src='media/button_recalculate.gif' border='0'></a></td></tr><tr><td colspan='5'><img src='media/spacer.gif' height='20' width='1'></td></tr><tr><td colspan='5' bgcolor='#E3EBF2'><img src='media/spacer.gif'></td></tr><tr><td colspan='5'><img src='media/spacer.gif' height='15' width='1'></td></tr><tr><td colspan='4' align='right'><span class='blue_big'>Total Before Taxes and Shipping:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td><td><span class='title_grey'>$" + total + ".00</span></td></tr><tr><td colspan='5'><img src='media/spacer.gif' height='15' width='1'></td></tr><tr><td colspan='5' align='right'><a href='javascript:submit()'><img src='media/button_checkout.gif' border='0'></a></td></tr><tr><td colspan='5'><img src='media/spacer.gif' height='20' width='1'></td></tr><tr><td colspan='5' bgcolor='#E3EBF2'><img src='media/spacer.gif'></td></tr><tr><td colspan='5'><img src='media/spacer.gif' height='3' width='1'></td></tr></table></form>";
				// add array data to string
				for (k=0; k<TableauXML.length; k++)
				{
					between = between + "<tr><td colspan='5'><img src='media/spacer.gif' height='21' width='1'></td></tr><tr><td><a href=\" javascript:loadcart('eliteweb/cart.aspx?action=2&IdItem=" + TableauXML[k][3] + "')\"><img src='media/button_remove.gif' border='0'></a></td><td><span class='blueinput'>" + TableauXML[k][0] + "</span></td><td>$" + TableauXML[k][1] + "</td><td><input name='qty" + k + "' class='adapted' onchange='validnum()' type='text' size='1' value='" + TableauXML[k][2] + "'></td><td><span class='title_grey'>$" + TableauXML[k][1]*TableauXML[k][2] + ".00</span></td></tr>";
				}
				// output
				document.getElementById('cartcontent').innerHTML = start + between + end;
			}
			if (focusname != "")
			{
				document.anchors[focusname].focus();
				focusname = "";
			}
		}}catch (error){}}
	}
	if (allowloading2 == true){
		if (requesteraddcart.readyState == 4){try{if (requesteraddcart.status == 200){
			allowloading2=false;
			loadcart('eliteweb/cart.aspx?action=1');
		}}catch (error){}}
	}
	if (allowloading3 == true){
		if (requesterloadcart.readyState == 4){try{if (requesterloadcart.status == 200){
			allowloading3 = false;
			cartloaded = true;
			change('cart.php');
		}}catch (error){}}
	}
}
