
var req = new Array();

function makeRequest(reqid, userid, action, params, reqtype) {
	var dt = new Date;
	var tyear = dt.getFullYear();
	var tmonth = "0" + (Number(dt.getMonth()) + 1);
	var tday = "0" + dt.getDate();
	var thour = "0" + dt.getHours();
	var tminute = "0" + dt.getMinutes();
	var tsecond = "0" + dt.getSeconds();

	reqt = tyear;
	if(tmonth.length > 2){ reqt += tmonth.substr(1,2); } else { reqt += tmonth; }
	if(tday.length > 2){ reqt += tday.substr(1,2); } else { reqt += tday; }
	if(thour.length > 2){ reqt += thour.substr(1,2); } else { reqt += thour; }
	if(tminute.length > 2){ reqt += tminute.substr(1,2); } else { reqt += tminute; }
	if(tsecond.length > 2){ reqt += tsecond.substr(1,2); } else { reqt += tsecond; }

	if(!reqtype) reqtype = 2;

	if(reqtype == 2){
		var url = wwwRoot + "/ajax.php?reqt=" + encodeURI(reqt) + "&reqid=" + encodeURI(reqid) + "&userid=" + encodeURI(userid) + "&action=" + action + "&params=" + params;
		var param = "";
	} else {
		var url = wwwRoot + "/ajax.php";
		var param = "reqt=" + encodeURI(reqt) + "&reqid=" + encodeURI(reqid) + "&userid=" + encodeURI(userid) + "&action=" + action + "&params=" + params;
	}
	//var url = "../ajax.php?reqt=" + encodeURI(reqt) + "&reqid=" + encodeURI(reqid) + "&userid=" + encodeURI(userid) + "&action=" + action + "&params=" + params;
	executeXhr(reqtype, url, param);
}

function executeXhr(type, url, param) {
	// branch for native XMLHttpRequest object
	var reqc = req.length;
	if (window.XMLHttpRequest) {
		req[reqc] = new XMLHttpRequest();
		req[reqc].onreadystatechange = processAjaxResponse;
		if(type == 1){
			req[reqc].open("POST", url, true);
			req[reqc].setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    		req[reqc].send(param);
		} else {
			req[reqc].open("GET", url, true);
			req[reqc].send(null);
		}

	} // branch for IE/Windows ActiveX version
	else if (window.ActiveXObject) {
		req[reqc] = new ActiveXObject("Microsoft.XMLHTTP");
		if (req[reqc]) {
    		req[reqc].onreadystatechange = processAjaxResponse;
    		if(type == 1){
    			req[reqc].open("POST", url, true);
    			req[reqc].setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    			req[reqc].send(param);
    		} else {
    			req[reqc].open("GET", url, true);
    			req[reqc].send(null);
    		}
		}
	}
}

function processAjaxResponse() {
	// only if req shows "loaded"
	for(k=0;k<req.length;k++){
		if(req[k]){
			if (req[k].readyState == 4) {
				// only if "OK"
				if (req[k].status == 200) {
					parseAjaxResponse(k);
				} else {
		    		//alert("There was a problem retrieving the XML data:\n" +
		        	//req[k].statusText);
				}
			}
		}
	}
}


function parseAjaxResponse(k){

	var separator = "<|>";

	var responseArray = new Array();
	responseArray = req[k].responseText.split(separator);
	req[k] = null;

	if(responseArray[2] == 'product_rate'){
		tmpObj = document.getElementById(responseArray[1]);
		tmpObj.innerHTML = responseArray[4];
	}	
	
	if(responseArray[2] == 'product_detail_get_picture'){	
		tmpObj = document.getElementById(responseArray[1]);
		tmpObjBig = document.getElementById('big_' + responseArray[1]);
		tmpObj.onload=function(){
			var pict = new Animator({
				duration: 600,
				interval: 40
			});
			pict.addSubject(new NumericalStyleSubject($(responseArray[1]), "opacity", 0, 1));
			pict.seekTo(1);
		}
		tmpObj.src = responseArray[3];
		tmpObjBig.href = responseArray[4];
		tMargin = responseArray[5].split('|');
		tmpObj.style.marginLeft = '-' + tMargin[0] + 'px';
		tmpObj.style.marginTop = '-' + tMargin[1] + 'px';
	}
	
	if(responseArray[2] == 'add_product_to_cart'){
		tmpObj = document.getElementById(responseArray[1]);
		inCart = document.getElementById('inner_cart_id');
		cartPr = document.getElementById('cart_price_id');
		inProd = document.getElementById('inner_cart_products');
		
		inProd.style.height=34 + parseInt(responseArray[5]) + 'px';
		inProd.innerHTML=responseArray[4];

		inCart.style.top=0 - (400 + parseInt(responseArray[5])) + 'px';
		inCart.style.height=400 + parseInt(responseArray[5]) + 'px';

		eval(responseArray[3]);
		
		cartPr.innerHTML = cartPrice;
		
		tmpObj.length = 0;
		for (i=0; i < optionsArray.length; i++) {
			tmpObj.options[i] = new Option(optionsArray[i][1],optionsArray[i][0]);
		}
		
		ex2.toggle();
    	cart_add_product.toggle();  
	}
	
	if(responseArray[2] == 'remove_product_from_cart'){
		
	
		tmpObj = document.getElementById(responseArray[1]);
		cartOb = document.getElementById('cart_id');
		inCart = document.getElementById('inner_cart_id');
		cartPr = document.getElementById('cart_price_id');
		inProd = document.getElementById('inner_cart_products');
		
		inProd.style.height=34 + parseInt(responseArray[5]) + 'px';
		inProd.innerHTML=responseArray[4];

		if(!cartOpened){
			inCart.style.top=0 - (400 + parseInt(responseArray[5])) + 'px';
		}
		inCart.style.height=400 + parseInt(responseArray[5]) + 'px';
		if(cartOpened){
			cartOb.style.top=400 + parseInt(responseArray[5]) + 'px';
		}

		eval(responseArray[3]);
		
		cartPr.innerHTML = cartPrice;
		
		tmpObj.length = 0;
		for (i=0; i < optionsArray.length; i++) {
			tmpObj.options[i] = new Option(optionsArray[i][1],optionsArray[i][0]);
		}
		if(!cartOpened){
    		cart_remove_product.toggle();  
		}
		
	}
	
	if(responseArray[2] == 'make_order'){
	
		tmpObj = document.getElementById(responseArray[1]);
		cartOb = document.getElementById('cart_id');
		inCart = document.getElementById('inner_cart_id');
		cartPr = document.getElementById('cart_price_id');
		inProd = document.getElementById('inner_cart_products');
		
		inProd.style.height=34 + parseInt(responseArray[5]) + 'px';
		inProd.innerHTML=responseArray[4];

		if(!cartOpened){
			inCart.style.top=0 - (380 + parseInt(responseArray[5])) + 'px';
		}
		inCart.style.height=380 + parseInt(responseArray[5]) + 'px';
		if(cartOpened){
			cartOb.style.top=380 + parseInt(responseArray[5]) + 'px';
		}

		eval(responseArray[3]);
		
		cartPr.innerHTML = cartPrice;
		
		tmpObj.length = 0;
		for (i=0; i < optionsArray.length; i++) {
			tmpObj.options[i] = new Option(optionsArray[i][1],optionsArray[i][0]);
		}
		
		jQuery.popup.show('Vaše naročilo #' + responseArray[6] + ' je bilo uspešno oddano.', 'Naročilo bomo pregledali in v najkrajšem možnem času pripravili za dostavo. O dostavi vas bomo obvestili po elektronski pošti. <br /><br />Zahvaljujemo se vam za nakup!');
		
		//alert('Uspešno ste oddali naročilo.');
		
	}

}

