/* --------------------------- AJAX core functions -------------------------------*/

function getHTTPRequestObject() {
  var xmlHttpRequest;
  /*@cc_on
  @if (@_jscript_version >= 5)
  try {
    xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (exception1) {
    try {
      xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (exception2) {
      xmlHttpRequest = false;
    }
  }
  @else
    xmlhttpRequest = false;
  @end @*/
 
  if (!xmlHttpRequest && typeof XMLHttpRequest != 'undefined') {
    try {
      xmlHttpRequest = new XMLHttpRequest();
    } catch (exception) {
      xmlHttpRequest = false;
    }
  }
  return xmlHttpRequest;
}

function getRequestBody(oForm) {
        var aParams = new Array();
        for(var i = 0; i < oForm.elements.length; i++) {
	        var sParam = encodeURIComponent(oForm.elements[i].name);
        	sParam += "=";
		if (!/^\s*---[^\-]*---\s*$/.test(oForm.elements[i].value)) {
                	sParam += encodeURIComponent(oForm.elements[i].type==='checkbox'?
					(oForm.elements[i].checked?'t':'f'):
					oForm.elements[i].value
					);
		}
		else
			sParam += encodeURIComponent("");
	        aParams.push(sParam);
        }
        return aParams.join("&");
}

var HttpRequester=getHTTPRequestObject(); 
var Rdata=false;

var KeepAliveRequester=getHTTPRequestObject();
var kalive=false;

//setInterval(sendAliveRequest,300000);

function sendAliveRequest() {
	if (KeepAliveRequester && (kalive===false)) {
		kalive=true;
		KeepAliveRequester.open("POST","http://www.corporad.ru/alive.php");
        	KeepAliveRequester.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	        KeepAliveRequester.onreadystatechange=receiveAlive;
		KeepAliveRequester.send("");
	}
}

function receiveAlive() {
	if (KeepAliveRequester.readyState == 4) {
		kalive=false;
	}
}

function setRequest(url,func,obj) {
	if (HttpRequester && (Rdata===false)) {
		Rdata=obj;
		HttpRequester.open ("POST",url,true);
        	HttpRequester.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	        HttpRequester.onreadystatechange=func;
		return true;
	}
	return false;
}

function sendRequest(req) {
	HttpRequester.send(req);
}

function finRequest() {
        return (HttpRequester.readyState == 4);
}

function okRequest() {
        return (HttpRequester.status == 200);	
}


/* --------------------------- Menu functions -------------------------------*/
function cacheMenuImages(count,sel) {
	var MenuImages=new Object();
	for (i=1;i<=count;i++) {
		if (i==sel+1) {
			MenuImages[i]=new Image(165,80);
			MenuImages[i].src="img/buttons/btn"+i+".gif";
		}
		else {
			MenuImages[i+"s"]=new Image(165,80);
			MenuImages[i+"s"].src="img/buttons/btn"+i+"-sel.gif";
		}
	}
	MenuImages[count+1]=new Image(170,80);
	MenuImages[count+1].src="img/buttons/btn-order-sel_.gif";
	MenuImages[count+2]=new Image(170,80);
	MenuImages[count+2].src="img/buttons/btn-order-blinkw_.gif";
}

function cacheMenuImages_(count,sel) {
	var MenuImages=new Object();
	MenuImages[0]=new Image(170,80);
	MenuImages[0].src="img/buttons/btn-order-sel_.gif";
	MenuImages[1]=new Image(170,80);
	MenuImages[1].src="img/buttons/btn-order-blinkw_.gif";
}

/*------------------------------ Order functions ----------------------------*/
function setOrder(id,count,ecount) {
	if (setRequest("ctrllitorder.php",rSetOrder,{'id':id}))
		sendRequest("set="+id+"&count="+count+"&ecount="+ecount);
}

function rSetOrder() {
        if (finRequest()) {
                if(okRequest() && HttpRequester.responseText=='ok') {
			if (ocount==0) document.getElementById("btn-makeorder").style.display='';
			ocount=ocount+1;
			var span = document.getElementById("span_ordercount");
			span.innerHTML=ocount;
			var img=document.getElementById("btn-order-"+Rdata.id+"-img");
			if (img) { 
				img.alt=str_unorder;
				img.title=str_unorder;
				img.src='img/uncart.gif';
			}
			else if (img=document.getElementById("btn-order-"+Rdata.id+"-simg")) {
				img.alt=str_sunorder;
				img.title=str_sunorder;
				img.src='img/uncart.gif';
			}
			var txt=document.getElementById("btn-order-"+Rdata.id+"-text");
			if (txt) 
				txt.innerHTML=str_unorder;
			else if (txt=document.getElementById("btn-order-"+Rdata.id+"-stext"))
				txt.innerHTML=str_sunorder;
			var btn=document.getElementById("btn-order-"+Rdata.id);
			if (btn) {
				btn.onclick = new Function('delOrder(\''+Rdata.id+'\')');
				var s=btn.onmousemove;
				btn.onmousemove=btn.onmouseout;
				btn.onmouseout=s;
			}
			else {
				if (txt) {
					txt.onclick = new Function('delOrder(\''+Rdata.id+'\')');
					txt.style.textDecoration='underline';
				}
				else if (img) {
					img.onclick = new Function('delOrder(\''+Rdata.id+'\')');
				}
			}
			document.getElementById("btn-makeorder").style.backgroundImage="url('img/buttons/btn-order-blinkw_.gif')";
			setTimeout('orderStopBlink()',2000);
			//alert('Товар успешно добавлен в корзину! Чтобы оформить заказ, нажмите на кнопку в правом верхнем углу экрана');
		}
		Rdata=false;
	}
}

function orderStopBlink() {
	document.getElementById("btn-makeorder").style.backgroundImage="url('img/buttons/btn-order_.png')";
}

function delOrder(id) {
	if (setRequest("ctrllitorder.php",rDelOrder,{'id':id}))
		sendRequest("del="+id);
}

function rDelOrder() {
        if (finRequest()) {
                if(okRequest() && HttpRequester.responseText=='ok') {
			ocount=ocount-1;
			document.getElementById("span_ordercount").innerHTML=ocount;
			if (ocount<1) document.getElementById("btn-makeorder").style.display='none';
			var img=document.getElementById("btn-order-"+Rdata.id+"-img");
			if (img) { 
				img.alt=str_order;
				img.title=str_order;
				img.src='img/cart.gif';
			}
			else if (img=document.getElementById("btn-order-"+Rdata.id+"-simg")) {
				img.alt=str_sorder;
				img.title=str_sorder;
				img.src='img/cart.gif';
			}
			var txt=document.getElementById("btn-order-"+Rdata.id+"-text");
			if (txt) 
				txt.innerHTML=str_order;
			else if (txt=document.getElementById("btn-order-"+Rdata.id+"-stext"))
				txt.innerHTML=str_sorder;
			var btn=document.getElementById("btn-order-"+Rdata.id);
			if (btn) {
				btn.onclick = new Function('setOrder(\''+Rdata.id+'\',1,0)');
				var s=btn.onmousemove;
				btn.onmousemove=btn.onmouseout;
				btn.onmouseout=s;
			}
			else {
				if (txt) {
					txt.onclick = new Function('setOrder(\''+Rdata.id+'\',1,0)');
					txt.style.textDecoration='none';
				}
				else if (img){
					img.onclick = new Function('setOrder(\''+Rdata.id+'\',1,0)');
				}
			}
                }
                Rdata=false;
        }
}

function setOrderField(field,value) {
        if (setRequest("ctrlorder.php",rSetOrderField,{'field':field}))
                sendRequest("field="+field+"&"+field+"="+encodeURIComponent(value));
}

function rSetOrderField() {
        if (finRequest()) {
                if(okRequest()) {
                        var el=document.getElementById('form-order').elements[Rdata.field];
                        el=el.parentNode.parentNode;
                        el.style.color=(HttpRequester.responseText==='ok'?'':'red');
                }
                Rdata=false;
        }
}


