// here we define global variable
var xmlreqs = new Array(); var sessionupdated = true;

function CXMLReq(freed) {
	this.freed = freed;
	this.xmlhttp = false;
	if (window.XMLHttpRequest) {
		this.xmlhttp = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		this.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	}
	/*try{
		// Opera 8.0+, Firefox, Safari
		this.xmlhttp = new XMLHttpRequest();
	} catch (e){
		// Internet Explorer Browsers
		try{
			this.xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try{
				this.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e){
				// Something went wrong
				alert("Your browser broke!");
				return false;
			}
		}
	}*/
} 

function xmlreqGET(url,div) {
	var pos = -1;
	for (var i=0; i<xmlreqs.length; i++) {
		if (xmlreqs[i].freed == 1) { 
			pos = i;
			break;
		}
	} 
	if (pos == -1) {
		pos = xmlreqs.length;
		xmlreqs[pos] = new CXMLReq(1);
	} 
	if (xmlreqs[pos].xmlhttp) {
		xmlreqs[pos].freed = 0;
		xmlreqs[pos].xmlhttp.open("GET",url,true);
		xmlreqs[pos].xmlhttp.onreadystatechange = function() { if (typeof(xmlhttpChange) != 'undefined') { xmlhttpChange(pos,div); } }
		if (window.XMLHttpRequest) {
			xmlreqs[pos].xmlhttp.send(null);
		} else if (window.ActiveXObject) {
			xmlreqs[pos].xmlhttp.send(); 
		} 
	} 
} 
function xmlreqGETsync(url,div) {
	var pos = -1;
	for (var i=0; i<xmlreqs.length; i++) {
		if (xmlreqs[i].freed == 1) { 
			pos = i;
			break;
		}
	} 
	if (pos == -1) {
		pos = xmlreqs.length;
		xmlreqs[pos] = new CXMLReq(1);
	} 
	if (xmlreqs[pos].xmlhttp) {
		xmlreqs[pos].freed = 0;
		xmlreqs[pos].xmlhttp.open("GET",url,false);
		//xmlreqs[pos].xmlhttp.onreadystatechange = function() { if (typeof(xmlhttpChange) != 'undefined') { xmlhttpChange(pos,div); } }
		if (window.XMLHttpRequest) {
			xmlreqs[pos].xmlhttp.send(null);
		} else if (window.ActiveXObject) {
			xmlreqs[pos].xmlhttp.send(); 
		} 
		xmlhttpChange(pos,div);
	} 
} 
function xmlhttpChange(pos,div) { 
	if (typeof(xmlreqs[pos]) != 'undefined' && xmlreqs[pos].freed == 0 && xmlreqs[pos].xmlhttp.readyState == 4) {
		if (xmlreqs[pos].xmlhttp.status == 200 || xmlreqs[pos].xmlhttp.status == 304) { 
			//handle_response(xmlreqs[pos].xmlhttp.responseXML); 
			document.getElementById(div).innerHTML = xmlreqs[pos].xmlhttp.responseText;			sessionupdated =true;
		} else { 			
			sessionupdated =true;
			//handle_error(); 
		} 
		xmlreqs[pos].freed = 1; 
	} 
}
function getdata(what,where) { // get data from source (what)
	xmlreqGET(what,where);
}

function getdatasync(what,where) { // get data from source (what)
	xmlreqGETsync(what,where);
}

function updateImage(value){
	getdatasync(value,'updatediv');

	getdata('producttable.php','producttablediv');
	getdata('mainimage.php','mainimagediv');
}

function updateSubgallery(value){
	getdatasync(value,'updatediv');

	getdata('producttable.php','producttablediv');
	getdata('thumbnailbar.php','thumbnailbarscroll');
	getdata('mainimage.php','mainimagediv');
}

function updateGallery(value){
	getdatasync(value,'updatediv');	
	getdata('producttable.php','producttablediv');
	getdata('thumbnailbar.php','thumbnailbarscroll');
	getdata('mainimage.php','mainimagediv');
	getdata('subgallerylisting.php','subgallerylistdiv');
}

function changeImageQuantityMini(value){
	getdatasync(value,'updatediv');
	getdata('minibasket.php','minibasketdiv');
}

function changeImageQuantityMain(value){
	getdatasync(value,'updatediv');
	getdata('basketcontentsjavascripted.php','mainbasketdiv');
}

function loadJavascriptMenu(){
	getdatasync('maingallerylisting.php','maingallerylistdiv');
	getdata('subgallerylisting.php','subgallerylistdiv');
}

function loadJavascriptBasketDelete(){
	getdata('basketcontentsjavascripted.php','mainbasketdiv');
}


