/* 
 * Общие функции
 */

// Корзина
function putImag(val,col,to){
    var url="ax_put.php";
    switch(to){
        case "ins":
            axLoad(url,"val="+val+"&col="+col+"&to="+to,"usrkorzina");
            break;
        case "del":
            axLoad(url,"val="+val+"&col="+col+"&to="+to+"&tg=0","usrkorzina");
            axLoad(url,"val="+val+"&col="+col+"&to="+to+"&tg=1","korzinatable");
            break;
        case "update":
            axLoad(url,"val="+val+"&col="+col+"&to="+to+"&tg=0","usrkorzina");
            axLoad(url,"val="+val+"&col="+col+"&to="+to+"&tg=1","korzinatable");
            break;
    }
}
// Открытие/закрытие элементов
function set(setDiv) {
    var setDiv = document.getElementById(setDiv);
    setDiv.style.display = (setDiv.style.display == "block") ? "none" : "block";
}
function seti(setDiv) {
    var setDiv = document.getElementById(setDiv);
    setDiv.style.display = (setDiv.style.display == "none") ? "inline" : "none";
}
function sh(pnDiv) {
    var pn_Div = document.getElementById(pnDiv);
    pn_Div.style.display = "block";

    // Дополнительно управляем положением относительно правого края браузера
    var w=(window.innerWidth)?window.innerWidth:((document.all)?document.body.offsetWidth:null);
    var ww=pn_Div.offsetWidth;
    var wo=pn_Div.offsetLeft;
    var www=getOffset(pn_Div).left;
    if((www+ww)>w){
        pn_Div.style.left=-1*(wo+ww)+"px";
    }
}
function hd(plDiv) {
	var pl_Div = document.getElementById(plDiv);
	pl_Div.style.display = "none";
}
// Положение элемента относительно окна браузера
function getOffset(elem) {
    if (elem.getBoundingClientRect) {
        // "правильный" вариант
        return getOffsetRect(elem)
    } else {
        // пусть работает хоть как-то
        return getOffsetSum(elem)
    }
}

function getOffsetSum(elem) {
    var top=0, left=0
    while(elem) {
        top = top + parseInt(elem.offsetTop)
        left = left + parseInt(elem.offsetLeft)
        elem = elem.offsetParent
    }

    return {top: top, left: left}
}

function getOffsetRect(elem) {
    // (1)
    var box = elem.getBoundingClientRect()

    // (2)
    var body = document.body
    var docElem = document.documentElement

    // (3)
    var scrollTop = window.pageYOffset || docElem.scrollTop || body.scrollTop
    var scrollLeft = window.pageXOffset || docElem.scrollLeft || body.scrollLeft

    // (4)
    var clientTop = docElem.clientTop || body.clientTop || 0
    var clientLeft = docElem.clientLeft || body.clientLeft || 0

    // (5)
    var top  = box.top +  scrollTop - clientTop
    var left = box.left + scrollLeft - clientLeft

    return { top: Math.round(top), left: Math.round(left) }
}
// Роботы
function roboCalc(){
    var r1=document.getElementById("robo0").innerHTML;
    var r2=document.getElementById("robo1").innerHTML;
    var res=document.getElementById("roboRes").value;
    document.getElementById("robots56").value=r1;
    document.getElementById("robots21").value=r2;
    document.getElementById("robots1").value=res;
}
function robo(rBase){
    for(j=0;j<100;j++){
        j_1 = (Math.random(rBase) * 10);
        j_2 = Math.ceil((Math.random(rBase) * 10));
        if((j_2/2) == Math.ceil(j_2/2)){ j_3 = ""; }else{ j_3 = "1"; }
        jj = j_2 + j_1;
        document.getElementById("robots" + j).value = Math.ceil(jj);
    }
    for(i=0;i<2;i++){
        ii = (Math.random(rBase) * 10);
        document.getElementById("robo" + i).innerHTML = Math.ceil(ii);
    }
}
function chkIsNum(tg){
    var tgVal=tg.value;
    var tgLen=tgVal.length-1;
    var tgEnd=tgVal.charAt(tgLen);
    var re=/\d/;
    chkRe=re.test(tgEnd);
    if(chkRe){
        tg.value=tgVal;
    }else{
        tg.value=tgVal.substr(0,tgLen);
    }
}
// Вывод содержимого страницы на печать
function pagePrint(elem,todo,w,h,title){
    pr = '<html><head><title>'+title+'</title><link href=\"site/css/main.css\" rel=\"stylesheet\" type=\"text/css\" /></head><body><div align=\"right\"><div align=\"left\" style=\"padding:15px;font-size:12px;\">';
    pr += document.getElementById(elem).innerHTML;
    pr += '</div></div></body></html>';
    newWin=window.open('','window_'+elem,'width='+w+',height='+h+',toolbar=0,location=0,directories=0,status=0,menubar=0');
    newWin.document.open();
    newWin.document.write(pr);
    if(todo=="print"){
        newWin.print();
    }
    newWin.document.close();
}
// AJAX
function axXml(){
	if(window.XMLHttpRequest){
            return new XMLHttpRequest();
	}else if(window.ActiveXObject){
		var msxmls = new Array(
			'Msxml2.XMLHTTP.5.0',
			'Msxml2.XMLHTTP.4.0',
			'Msxml2.XMLHTTP.3.0',
			'Msxml2.XMLHTTP',
			'Microsoft.XMLHTTP'
		);
		for(i=0;i<msxmls.length;i++) {
			try{
                return new ActiveXObject(msxmls[i]);
			}catch(e){
                //
			}
		}
	}else{
        return null;
    }
}
function axLoad(url,vars,rescnt,as){
    var xmlhttp = axXml();
	if(xmlhttp){
        switch(as){
            default:async=true;break;
            case 1:async=false;break;
        }
        xmlhttp.open('POST',url,true);
        xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        xmlhttp.send(vars);
        xmlhttp.onreadystatechange = function(){
            if (xmlhttp.readyState == 4) {
                if(xmlhttp.status == 200 && xmlhttp.responseText.length>1) {
                    var v = xmlhttp.responseText;
                    if(rescnt!=0&&document.getElementById(rescnt)){
                        document.getElementById(rescnt).innerHTML=unescape(v);
                    }else{
                        return unescape(v);
                    }
                }
            }
        }
    }
}
