var timeInt = 0;
var timeStop = 10000;
var ajaxHistory = new Array;
var ajaxFunc = new Array;
var ajaxHIter = 0;

function freeze( module ) {
    var modFreeze = document.getElementById(module);
    modFreeze.className = 'freeze';
}

function unfreeze( module ) {
    var modUnFreeze = document.getElementById(module);
    modUnFreeze.className = 'unfreeze';
}

function msgVis() {
    document.imgLoad.src = ajaxLoadImg.src;
    cWidth = getClientWidth();
    cHeight = getClientHeight();
    var top = cHeight / 2;
    var left = cWidth / 2;
    var offsetTop = document.body.scrollTop;   
    var MsgLoad = document.getElementById('msgLoad');
    MsgLoad.className = 'msgLoad';
    MsgLoad.style.position = 'absolute';
    MsgLoad.style.top = offsetTop + top - 18 + 'px';
    MsgLoad.style.left = left - 50 + 'px';
  
}

function msgResultVis() {
    cWidth = getClientWidth();
    cHeight = getClientHeight();
    var top = cHeight / 2;
    var left = cWidth / 2;
    var offsetTop = document.body.scrollTop;   
    var MsgResult = document.getElementById('msgResult');
    MsgResult.className = 'msgResult';
    MsgResult.style.position = 'absolute';
    MsgResult.style.top = offsetTop + top - 10 + 'px';
    MsgResult.style.left = left - 70 + 'px';
}

function msgHide() {
    var msgLoad = document.getElementById('msgLoad');
    msgLoad.className = 'msgLoadHide';
}

function msgResultHide() {
    var msgResult = document.getElementById('msgResult');
    msgResult.className = 'msgResultHide';
}

function getAll( url ) {   
    // Помещаем в спец-массив.
    ++ajaxHIter;
    ajaxHistory[ajaxHIter] = url;
    ajaxFunc[ajaxHIter] = "getAllA('" + url + "')";
    getAllA( url );
}

function getAllA( url ) {
    // Устанавливаем таймер.
    timeInt = setInterval("stopGetAll()", timeStop);
            
    freeze('page_three');
    freeze('page_content');
    msgVis();
            
    var req = new JsHttpRequest();
    req.onreadystatechange = function() {
        if (req.readyState == 4) {
            // Результат.
            var pageThree = req.responseJS.page_three;
            var pageContent = req.responseJS.page_content;
            if (pageThree) document.getElementById('page_three').innerHTML = pageThree;
            if (pageContent) document.getElementById('page_content').innerHTML = pageContent;
            stopGetAll();
            //document.getElementById('debug').innerHTML = req.responseText;
        }
    }
    req.open('POST', url, true);
    req.send( { input: 'ajax' } );
}

function getContent( url ) {   
    // Помещаем в спец-массив.
    ++ajaxHIter;
    ajaxHistory[ajaxHIter] = url;
    ajaxFunc[ajaxHIter] = "getContentA('" + url + "')";
    getContentA( url );
}

function getContentA( url ) {
    // Устанавливаем таймер.
    timeInt = setInterval("stopGetContent()", timeStop);
    
    freeze('page_content');
    msgVis();
            
    var req = new JsHttpRequest();
    req.onreadystatechange = function() {
        if (req.readyState == 4) {
            // Результат.
            var pageContent = req.responseJS.page_content;
            if (pageContent) document.getElementById('page_content').innerHTML = pageContent;
            stopGetContent();
            //document.getElementById('debug').innerHTML = req.responseText;
        }
    }
    req.open('POST', url, true);
    req.send( { input: 'ajax', three: 'no' } );
}

// Добавить в корзину.
function basket( url ) {
    // Устанавливаем таймер.
    timeInt = setInterval("stopGetContent()", timeStop);

    freeze('page_content');
    msgVis();
            
    var req = new JsHttpRequest();
    req.onreadystatechange = function() {
        if (req.readyState == 4) {
            // Результат.
            var resProc = req.responseJS.resProc;
            var resMsg = req.responseJS.resMsg;
            // Устанавливаем cookie.            
            var colorMsg = '';
            if (resProc == 'yes') colorMsg = 'green';
            else colorMsg = '#FF0000';
            document.getElementById('boxResultMsg').innerHTML = '<center><font color="' + colorMsg + '">' + resMsg + '</font></center>';
            msgHide();
            msgResultVis();
            setTimeout('msgResultHide()', 1500);
            unfreeze('page_content');
            clearInterval( timeInt );
            //document.getElementById('debug').innerHTML = req.responseText;
        }
    }
    req.open('POST', url, true);
    req.send( { input: 'ajax', three: 'no' } );
}

function stopGetAll() {   
    clearInterval( timeInt );
    msgHide();
    unfreeze('page_three');
    unfreeze('page_content');
}

function stopGetContent() {   
    clearInterval( timeInt );
    msgHide();
    unfreeze('page_content');
}

function ajaxUpload() {
    // Обновить страницу.
    eval(ajaxFunc[ajaxHIter]);
    //document.getElementById('deb').innerHTML = '<font>' + ajaxHistory[ajaxHIter] + '</font>';
}

function ajaxBack() {
    // Назад.
    --ajaxHIter;
    if (ajaxHIter < 0) ajaxHIter = 0;
    eval(ajaxFunc[ajaxHIter]);
}

function ajaxCalc( url, formName ) {
    var req = new JsHttpRequest();
    req.onreadystatechange = function() {
        if (req.readyState == 4) {
            // Результат.
            var calcList = req.responseJS.calcList;
            if (calcList) document.getElementById('calcList').innerHTML = calcList;
            //document.getElementById('debug').innerHTML = req.responseText;
        }
    }
    req.open('POST', url, true);
    req.send( { input: 'ajax', selAction: 'calc', q: formName } );
}

function stopGetGoodList() {   
    clearInterval( timeInt );
    msgHide();
    unfreeze('goodList');
}

function getGoodList( url ) {
    // Устанавливаем таймер.
    timeInt = setInterval("stopGetGoodList()", timeStop);
    
    freeze('goodList');
    msgVis();
            
    var req = new JsHttpRequest();
    req.onreadystatechange = function() {
        if (req.readyState == 4) {
            // Результат.
            var goodList = req.responseJS.goodList;
            if (goodList) document.getElementById('goodList').innerHTML = goodList;
            stopGetGoodList();
            //document.getElementById('debug').innerHTML = req.responseText;
        }
    }
    req.open('POST', url, true);
    req.send( { input: 'ajax', selAction: 'goods' } );
}

function stopGetCalcList() {   
    clearInterval( timeInt );
    msgHide();
    unfreeze('calcList');
}

// Добавить в корзину.
function addGood( url ) {
    // Устанавливаем таймер.
    timeInt = setInterval("stopGetCalcList()", timeStop);

    freeze('calcList');
    msgVis();
            
    var req = new JsHttpRequest();
    req.onreadystatechange = function() {
        if (req.readyState == 4) {
            // Результат.
            var resProc = req.responseJS.resProc;
            var resMsg = req.responseJS.resMsg;
            var calcList = req.responseJS.calcList;
            var colorMsg = '';
            if (resProc == 'yes') colorMsg = 'green';
            else colorMsg = '#FF0000';
            document.getElementById('boxResultMsg').innerHTML = '<center><font color="' + colorMsg + '">' + resMsg + '</font></center>';
            if (calcList) document.getElementById('calcList').innerHTML = calcList;
            msgHide();
            msgResultVis();
            setTimeout('msgResultHide()', 1500);
            unfreeze('calcList');
            clearInterval( timeInt );
            //document.getElementById('debug').innerHTML = req.responseText;
        }
    }
    req.open('POST', url, true);
    req.send( { input: 'ajax', selAction: 'add' } );
}

function delGood( url ) {
    var req = new JsHttpRequest();
    req.onreadystatechange = function() {
        if (req.readyState == 4) {
            // Результат.
            var calcList = req.responseJS.calcList;
            if (calcList) document.getElementById('calcList').innerHTML = calcList;
            //document.getElementById('debug').innerHTML = req.responseText;
        }
    }
    req.open('POST', url, true);
    req.send( { input: 'ajax', selAction: 'delete' } );
}

function deleteAllGood( url ) {
    var req = new JsHttpRequest();
    req.onreadystatechange = function() {
        if (req.readyState == 4) {
            // Результат.
            var calcList = req.responseJS.calcList;
            if (calcList) document.getElementById('calcList').innerHTML = calcList;
            //document.getElementById('debug').innerHTML = req.responseText;
        }
    }
    req.open('POST', url, true);
    req.send( { input: 'ajax', selAction: 'delete' } );
}

