function editData(dataId)
{
    var url = '/cabinet.ajax.php';
    var pars = '';
    var d = new Date();    
    pars += 'date='+d.getTime()+'&';
    pars += 'action='+'edit'+'&';
    pars += 'dataId='+dataId+'&';
    
    var myAjax = new Ajax.Request(
        url, 
        {
            method: 'get', 
            parameters: pars, 
            onComplete: editDataResp
        });
}

function editDataResp(res)
{
    var resp = res.responseText;
    eval(resp);
    /*
    var tmpDiv = document.createElement("div");
    tmpDiv.innerHTML = resp;
    
    var jss = tmpDiv.getElementsByTagName('script');
    for(var i=0; i<jss.length;i++)
    {
        eval(jss[i].innerHTML);
    }
    Element.remove(tmpDiv);
    tmpDiv = '';
    */
}

function saveData(dataId)
{
    /*
    Надо получить все элементы формы которые начинаются с prefix
    затем их сериалиховать и отправить на сервер
    в myAjax
    по окончании сделать действия и вернуть NNую страницу
    */
    var sDiv = document.getElementById(dataId);
    var fs = sDiv.getElementsByTagName('form');
    var serializedForm = '';
    for (var i=0; i<fs.length; i++)
    {
        var sform = fs[i];
        serializedForm = Form.serialize(sform);
    } 
    
    var url = '/cabinet.ajax.php';
    var pars = '';
    var d = new Date();    
    pars += 'date='+d.getTime()+'&';
    pars += 'action='+'save'+'&';
    pars += 'dataId='+dataId+'&';
    pars += serializedForm;
    
    var myAjax = new Ajax.Request(
        url, 
        {
            method: 'get', 
            parameters: pars, 
            onComplete: editDataResp
        });    
    
    /*
    var sForm = document.getElementById(formId);
    alert(sForm);
//    alert(serializedForm);
*/
}

function submitForm(formId)
{
    var formObj = $(formId);
    formObj.submit();
}

function keyChecker(e, obj)
{
    var keynum = (window.event) ? e.keyCode : e.which;
//    alert(keynum);
    /* 48-57 37-40 46 8*/
    if ((keynum >= 48 && keynum <= 57 ) ||(keynum >= 37 && keynum <= 48 ) || keynum == 8 || keynum == 46 || keynum == 188 || keynum == 190 
        || keynum == 39 || keynum == 38 || keynum == 37 || keynum == 40)
    {
        
        return true;
    }
    else
    {
        return false;
    }
}
function chqn(e,obj, delta)
{
    
    var keynum = (window.event) ? e.keyCode : e.which;
    
    if (keynum == 39)
    {
        delta = 1 * delta;
    }
    if (keynum == 38)
    {
        delta = 10 * delta;
    }
    if (keynum == 37)
    {
        delta = -1 * delta;
    }
    if (keynum == 40)
    {
        delta = -10 * delta;
    }
    
    /**
    разрешить вводить тока цифры запятую точку, причем точку и запятую тока по 1-ой
    +
    разрешить вводить клавиши del backspace и стрелки
    */
//    alert(keynum);
    
    if (!keyChecker(e, obj))
    {
        return false;
    }
    inpqn (obj, delta);
    return true;
}

function inpqn (obj, delta)
{
    var v = delta + parseFloat(obj.value);
    if (!(v >= 0))
    {
        v = 0;
    }
    if (Math.abs(delta) < 1)
    {
        obj.value = v.toFixed(1);
    }
    else
    {
        obj.value = Math.round(v);
    }
    
}

function addToBasket(itemId)
{
    var qn_obj = $('item'+itemId+'_qn');
    var res_d = $("item"+itemId+"_res");
    res_d.style.display = "none";
    var url = '/basket.ajax.php';
    var pars = '';
    var d = new Date();    
    pars += 'date='+d.getTime()+'&';
    pars += 'action='+'addToBasket'+'&';
    pars += 'itemId='+itemId+'&';
    pars += 'qn='+qn_obj.value+'&';
    
    var myAjax = new Ajax.Request(
        url, 
        {
            method: 'get', 
            parameters: pars, 
            onComplete: resBasket
        });
    return false;        
}

function addToBasketRecept(itemId)
{
    var qn_obj = $('ritem'+itemId+'_qn');
    var res_d = $("ritem"+itemId+"_res");
    res_d.style.display = "none";
    var url = '/basket.ajax.php';
    var pars = '';
    var d = new Date();    
    pars += 'date='+d.getTime()+'&';
    pars += 'action='+'addToBasketRecept'+'&';
    pars += 'itemId='+itemId+'&';
    if (qn_obj)
    {
        pars += 'qn='+qn_obj.value+'&';
    }
    else
    {
        pars += 'qn='+'1'+'&';
    }
    var myAjax = new Ajax.Request(
        url, 
        {
            method: 'get', 
            parameters: pars, 
            onComplete: resBasket
        });
    return false;        
}

function resBasket(res)
{
    var resp = res.responseText;
    eval(resp);
    if (addRes == "ok")
    {
        updateCheck(userId);
    }
}

function updateCheck(userId)
{
    var url = '/basket.ajax.php';
    var pars = '';
    var d = new Date();    
    pars += 'date='+d.getTime()+'&';
    pars += 'action='+'updateCheck'+'&';
    pars += 'userId='+userId+'&';
    
    var myAjax = new Ajax.Request(
        url, 
        {
            method: 'get', 
            parameters: pars, 
            onComplete: resBasket
        });
}

function submitBasketForm(formId, action)
{

    var formObj = document.getElementById(formId);
    
    var cabaction = document.getElementById('cabaction');
    cabaction.value = action;
    
    formObj.submit();
    
//	alert(cabaction.tagName);
//	alert(cabaction.value);
}

function chCat(obj)
{
//    alert(obj.options[obj.selectedIndex].value);
    window.location.href = '/cat/'+obj.options[obj.selectedIndex].value+'/';
}

function validateForm(formObj)
{
    var inputs = formObj.elements;
    var ilen = inputs.length;

    var vfErrors = new Array();

    for (var i=0; i<ilen-1; i++)
    {
            
    
        var input = inputs[i];
        var inputName = inputs[i].id;
        var inputValue = inputs[i].value;
        var rules = input.getAttribute("rules");
        var label = input.getAttribute("title");
        
        if (!rules) { continue; }
        eval("rules= ({"+rules+"})");
        for (var prop in rules)
        {
            switch (prop)
            {
                case 'required':
                    if (inputValue.length < 1)
                    {
                        vfErrors[vfErrors.length] = {label:label, inputName:inputName, message:'Поле обязательно для заполнения'};
                    }
                    break;
                case 'maxlenght':
                    if (inputValue.length > rules[prop])
                    {
                        vfErrors[vfErrors.length] = {label:label, inputName:inputName, message:'Длина поля не должна быть более '+rules[prop]+' символов'};
                    }
                    break;
                case 'regexp':
                    if (!inputValue.match(/^\b[a-zA-Z0-9._%-]+@[a-zA-Z0-9._%-]+\.[a-zA-Z]{2,4}\b$/))
                    {
                        vfErrors[vfErrors.length] = {label:label, inputName:inputName, message:'Введен некорректный email адрес'};
                    }
                    break;
                case 'text':
                    // пока не обрабатывается
                    break;
                default:
                    // пока не обрабатывается
            }
        }
    }
    
    
    if (vfErrors.length > 0)
    {
        errorsInfo(formObj.id, vfErrors);
        return false;
    }
    
//    return false; // M® Оставлено для проверки
//    alert('Конец проверки');
    return true;

}

function errorsInfo(preName, errors)
{
    var erlen = errors.length;
    
    
    var divErrors = document.getElementById(preName+"Errors");
    divErrors.innerHTML = '';
    divErrors.style.display = '';
    
    for (var i=0; i<erlen; i++)
    {
       
       var tmpInp = document.getElementById(errors[i].inputName);
       tmpInp.style.borderColor = "red";
       
       tmpInp.onfocus  = function () {
            this.style.borderColor = '';
       };
       
       var erText = document.createTextNode(errors[i].label + " : " + errors[i].message);
       
       var erLi = document.createElement("li");
       erLi.appendChild(erText);
       divErrors.appendChild(erLi);
       
//       alert(errors[i].inputName);
    }
    
}

var smenuflag = false;
function showSubCats(obj)
{
    Element.clonePosition($('smenudiv'), obj);
    var divs = obj.getElementsByTagName('div');
    for (var i=0; i<divs.length; i++)
    {
        if (divs[i].className == 'chEls')
        {
            $('smenudiv').innerHTML = divs[i].innerHTML;
            break;
        }
    }
    $('smenudiv').style.height = '';
    $('smenudiv').style.display = '';
    
    Event.observe(document, 'mousemove', function(e){ 
        if (!e)
        {
            e = window.event;
        }
        if (smenuflag && !Position.within($('smenudiv'), Event.pointerX(e), Event.pointerY(e)))
        {
            $('smenudiv').style.display = 'none';
            smenuflag = false;
        }
                                       });
    smenuflag = true;
}

function showEnter()
{
    $('loginform').style.display = '';
    
    Event.observe(document, 'click', function(e){ 
        if (!e)
        {
            e = window.event;
        }
        if (!Position.within($('loginform'), Event.pointerX(e), Event.pointerY(e)))
        {
            $('loginform').style.display = 'none';
        }
    });

    return false;
}

function addQuestion()
{
    var aqtr = $('aqtr');
    var divAQ = $('divAQ');
    var of = Position.cumulativeOffset(aqtr);
//    alert(of[0]);
//    alert(aqtr.offsetWidth);
    divAQ.style.left = of[0] + aqtr.offsetWidth - 226 + 'px';
    divAQ.style.top = (of[1]-2)+'px';
    divAQ.style.display = '';
    
    Event.observe(document, 'click', function(e){ 
        if (!e)
        {
            e = window.event;
        }
        if (!Position.within($('divAQ'), Event.pointerX(e), Event.pointerY(e)))
        {
            $('divAQ').style.display = 'none';
        }
    });
    
    return false;
}

function sendAQ()
{
    var serializedForm = Form.serialize('addques');
    
    var url = '/aq.ajax.php';
    var pars = '';
    var d = new Date();    
    pars += 'date='+d.getTime()+'&';
    pars += 'action='+'addques'+'&';
    pars += serializedForm;
    
    $('ques_name').value = '';
    $('ques_ques').value = '';
    $('divAQ').style.display = 'none';
    
    var myAjax = new Ajax.Request(
        url, 
        {
            method: 'get', 
            parameters: pars, 
            onComplete: editDataResp
        });    
    return false;
}

function searchPage(pageNo)
{
//    $('searchPager').action = '/search/res/page'+pageNo;
    $('searchPage').value = pageNo;
    $('searchPager').submit();
    
//    var serializedForm = Form.serialize('addques');
    
//    alert($('searchPage').value);
    return false;
    
}

function showBigImage(name, img, w, h)
{
//    var bimg = document.getElementById('bimg'); 
//    bimg.style.display = '';
    /*
    var newDiv1 = document.createElement("div");
    newDiv1.setAttribute('style','position:absolute; left:0px; top:0px; z-index:1100; width:100px; height:100px;');
    newDiv1.appendChild(bimg);

    document.body.appendChild(newDiv1);
    
    */   
//    alert(img + ' ' + w + ' ' + h);
    var ww = parseInt(w) + 20;
    var wh = parseInt(h) + 20;
    var imgwin = window.open ("","vm","location=no,status=yes,scrollbars=yes,menubar=no,width="+ww+",height="+wh+"");
    imgwin.document.write('<html><head><title>'+name+'</title></head>');
    imgwin.document.write('<body topmargin="10" leftmargin="0">');
    imgwin.document.write('<div align="center">');
    imgwin.document.write('<img src="/images/it/'+img+'" width="'+w+'" hegiht="'+h+'" alt="'+name+'" border="0">');
    imgwin.document.write('</div>');
    imgwin.document.write('</body></html>');
    imgwin.moveTo(10,10);
    return false;
}

function hide()
{
    var bimg = document.getElementById('bimg'); 
    bimg.style.display = 'none';
}

function setCookie(c_name,value,expiredays)
{
    
    var exdate=new Date()
    exdate.setDate(exdate.getDate()+expiredays)

    var c = new Cookie();
    c.setName(c_name);
    c.setValue(value);
    c.setPath("/");
    c.setExpires(exdate);
    c.save();
    
}

function shBasketReg(obj)
{
//    alert(obj);
    
    
    var of = Position.cumulativeOffset(obj);
    
    $('basketreg').style.left = (parseInt(of[0])-40) + 'px';
    $('basketreg').style.top = (parseInt(of[1])-20) + 'px';
    $('basketreg').style.display = 'block';
    
    Event.observe(document, 'mousemove', function(e){ 
        if (!e)
        {
            e = window.event;
        }
        if (!Position.within($('basketreg'), Event.pointerX(e), Event.pointerY(e)))
        {
            $('basketreg').style.display = 'none';
        }
    }
    );
    
    return false;
}

function addToBasketNoAuth(itemId)
{
    var qn_obj = $('item'+itemId+'_qn');
    var res_d = $("item"+itemId+"_res");
    res_d.style.display = "none";
    var url = '/basket.ajax.php';
    var pars = '';
    var d = new Date();    
    pars += 'date='+d.getTime()+'&';
    pars += 'action='+'addToBasketNoAuth'+'&';
    pars += 'itemId='+itemId+'&';
    pars += 'qn='+qn_obj.value+'&';
    
    var myAjax = new Ajax.Request(
        url, 
        {
            method: 'get', 
            parameters: pars, 
            onComplete: resBasket
        });
    return false;    
}

function addToBasketReceptNoAuth(itemId)
{
    var qn_obj = $('ritem'+itemId+'_qn');
    var res_d = $("ritem"+itemId+"_res");
    res_d.style.display = "none";
    var url = '/basket.ajax.php';
    var pars = '';
    var d = new Date();    
    pars += 'date='+d.getTime()+'&';
    pars += 'action='+'addToBasketReceptNoAuth'+'&';
    pars += 'itemId='+itemId+'&';
    if (qn_obj)
    {
        pars += 'qn='+qn_obj.value+'&';
    }
    else
    {
        pars += 'qn='+'1'+'&';
    }
    
    var myAjax = new Ajax.Request(
        url, 
        {
            method: 'get', 
            parameters: pars, 
            onComplete: resBasket
        });
    return false;    
}

function delFromBasket(itemId, type)
{
    var url = '/basket.ajax.php';
    var pars = '';
    var d = new Date();    
    pars += 'date='+d.getTime()+'&';
    pars += 'action='+'delFromBasket'+'&';
    pars += 'itemId='+itemId+'&';
    pars += 'type='+type+'&';
    
    var myAjax = new Ajax.Request(
        url, 
        {
            method: 'get', 
            parameters: pars, 
            onComplete: resBasket
        });
    return false;
}

function addToBasketIngri(itemId)
{
    var formData = Form.serialize($('rlist'));
    var res_d = $("ritem"+itemId+"_res");
    res_d.style.display = "none";
    var url = '/basket.ajax.php';
    var pars = '';
    var d = new Date();    
    pars += 'date='+d.getTime()+'&';
    pars += formData+'&';
    var myAjax = new Ajax.Request(
        url, 
        {
            method: 'get', 
            parameters: pars, 
            onComplete: resBasket2
        });
    return false;    
}

function resBasket2(res)
{
    var resp = res.responseText;

    $('in_basket').setStyle({'display': 'none'});
    $('add_to_basket').setStyle({'display': ''});
    var tds = $('rlist').getElementsByTagName('td');
    for (var i=0; i<tds.length; i++)
    {
    
        if (tds[i].id.match(/^td_\w+_qn$/)) {
            $(tds[i]).setStyle({'display': 'none'});
        }
        if (tds[i].id.match(/^ritem\w+_res$/)) {
            $(tds[i]).setStyle({'display': ''});
        }
        
    }
    
    updateCheck(0);
    /*
    if (addRes == "ok")
    {
        updateCheck(userId);
    }
    */
}

function showAddRecept()
{
    $('in_basket').setStyle({'display': ''});
    $('add_to_basket').setStyle({'display': 'none'});
    var tds = $('rlist').getElementsByTagName('td');
    for (var i=0; i<tds.length; i++)
    {
        if (tds[i].id.match(/^td_\w+_qn$/)) {
            $(tds[i]).setStyle({'display': ''});
        }
        if (tds[i].id.match(/^ritem\w+_res$/)) {
            $(tds[i]).setStyle({'display': 'none'});
        }
        
    }
}
