var xhr = new Array(); // ARRAY OF XML-HTTP REQUESTS
var xi = new Array(0); // ARRAY OF XML-HTTP REQUEST INDEXES
xi[0] = 1; // FIRST INDEX SET TO 1 MAKING IT AVAILABLE


function xhrRequest(type) {
	if (!type) {
		type = 'html';
	}
	// xhrsend IS THE xi POSITION THAT GETS PASSED BACK
	// INITIALIZED TO THE LENGTH OF THE ARRAY(LAST POSITION + 1)
	// IN CASE A FREE RESOURCE ISN'T FOUND IN THE LOOP
	var xhrsend = xi.length;
	
	// GO THROUGH AVAILABLE xi VALUES
	for (var i=0; i<xi.length; i++) {
		// IF IT'S 1 (AVAILABLE), ALLOCATE IT FOR USE AND BREAK
		if (xi[i] == 1) {
			xi[i] = 0;
			xhrsend = i;
			break;
		}
	}
	// SET TO 0 SINCE IT'S NOW ALLOCATED FOR USE
	xi[xhrsend] = 0;

	// SET UP THE REQUEST
	if (window.ActiveXObject) {
		try {
		xhr[xhrsend] = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {

		try {
			xhr[xhrsend] = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	} else if (window.XMLHttpRequest) {
			xhr[xhrsend] = new XMLHttpRequest();
			if (xhr[xhrsend].overrideMimeType) {
				xhr[xhrsend].overrideMimeType('text/' + type);
			}
	  }
	return (xhrsend);
}


function fcn(url, reqType) {
	var xhri = xhrRequest('html');
	xhr[xhri].open('GET', url, true);
	xhr[xhri].onreadystatechange = function() {
		if (xhr[xhri].readyState == 4 && xhr[xhri].status == 200) {
			//alert(xhr[xhri].responseText);
			/*
				There will be 3 Parts of ajax response 
				(1) page name as header
				(2) error message if any
				(3) HTML part of the response
				we are using @@@ as a separator in PHP code
				added on 25/dec/08  ..vikas
			*/
			var Global_Ajax_Responce_Array = xhr[xhri].responseText.split('@@@');
			try {
				var header = Global_Ajax_Responce_Array[0];
				var errors = Global_Ajax_Responce_Array[1];
				
			} catch(e) {
				var header='';
				var errors='';
			}
			
			var HTML = Global_Ajax_Responce_Array[2];
			//alert(HTML);
			//if(header == 'getAjaxFeatures') updateFeatures(HTML);
			if(header == 'AjaxCategory') updateSubcat(HTML);
			if(header == 'AjaxSubCategory') updateSubSubcat(HTML);
			if(header == 'AjaxSize') updateProductSize(HTML);
			if(header == 'AjaxWeight') updateWeight(HTML);
			if(header == 'AjaxWeightPrice') updateWeightPrice(HTML);
			if(header == 'AjaxCurrency') updateCurrency(HTML);
			//if(header == 'ajaxCategory') updateCategory(HTML);
			
			xi[xhri] = 1;
			xhr[xhri] = null;
		}
	};
	xhr[xhri].send(null);
}








