﻿function makeHttpRequest(url, callback_function, return_xml)
{
	var http_request = false;

	if (window.XMLHttpRequest)
	{ // IE7, Mozilla, Safari,...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType){if(return_xml){http_request.overrideMimeType('text/xml');}else{http_request.overrideMimeType('text/html');}}
	}
	else if (window.ActiveXObject)
	{ // IE6 and lower
		try {http_request = new ActiveXObject("Msxml2.XMLHTTP");}
		catch (e)
		{
		   try{http_request = new ActiveXObject("Microsoft.XMLHTTP");}
		   catch(e){}
		}
	}
	if (!http_request){alert('Unfortunatelly you browser doesn\'t support this feature.'); return false;}

	http_request.onreadystatechange = function() {
		if (http_request.readyState == 4)
		{
			if (http_request.status == 200)
			{
				if (return_xml){eval(callback_function + "(http_request.responseXML)");}
				else{eval(callback_function + "(http_request.responseText)");}
			}
			else{alert('There was a problem with the request.(Code: ' + http_request.status + ')');}
		}
	}
	
	// Since IE caches these requests and the content recieved dont change we haveto
	// make IE belive it is requesting a new page
	var dummy = parseInt(Math.random()*99999999);
	if(url.indexOf("?") != -1){url = url + "&dummy=" + dummy;}
	else{url = url + "?dummy=" + dummy;}
	
	var requestType = "GET";
	if (window.ActiveXObject){requestType = "POST";}

	http_request.open(requestType, url, true);
	http_request.send(null);
}

function PrintExpandedProduct(response)
{
    if(ajaxTarget != null)
    {
		ajaxTarget.innerHTML = response; 
		ShowElement(ajaxTarget.id, "DIV");
	}
	else{
		var target = GetElement(ajaxTargetID, "DIV");
		target.innerHTML = response;
		
		ShowElement(target.id, "DIV");
	}
}

function PrintUpdatedCart(response)
{
    var selection = GetElement(cartDivID, "DIV");
    selection.innerHTML = response;
    
    if(clickedCartImage != null)
    {
		if(addToCartStartTime == null)
		{
			ResetCartImage();
			FlashCart(selection, 5, 1);
		}
		else
		{
			currentTime = new Date();
			var timeout = 1000 - (currentTime - addToCartStartTime);
			if(timeout > 0){setTimeout('ResetCartImage()', timeout);}
			else{ResetCartImage();}
			addToCartStartTime = null;
			FlashCart(selection, 6, 1);
		}
	}
}

function UpdateCartWhenFinished(response)
{
	makeHttpRequest(cartHandlerUrl + "?PageID=" + currentPageID + "&UpdateCart=true", "PrintUpdatedCart");
}
