var d = document;
var req;

function initJsHTTPRequest(){
    req = new JsHttpRequest();
    req.onreadystatechange = function(){
        if (req.readyState == 4) {
        
            if (req.responseText) {
                var wnd = window.open('', 'jsdebug');
                wnd.document.write('<pre>' + req.responseText + '</pre>');
            }
            else {
                var resp = req.responseJS;
                eval(resp.callback);
            }
        }
    }
}

function documentLoaded(){
    initJsHTTPRequest();
    if (window.setupZoom) 
        setupZoom();
    
    if (window.customModuleFunction) 
        customModuleFunction();
    
    
}

function addInCompare(prod_id){
    req.open(null, '/jscript/common.php', true);
    req.send({
        param: prod_id,
        query: 'addToCompareList',
        callback: 'addInCompareOut'
    })
}

function addInCompareOut(msg_type){
    if (msg_type == 1) 
        alert('Товар не найден');
    
    if (msg_type == 2) 
        alert('Нельзя сравнивать товары из разных категорий');
    
    if (msg_type == 3) 
        alert('Товар уже присутсвует в списке сравнения');
    
    if (msg_type == 4) 
        window.location = '/compare/';
}

function deleteFromCompare(prod_id){
    req.open(null, '/jscript/common.php', true);
    req.send({
        param: prod_id,
        query: 'deleteFromCompare',
        callback: 'deleteFromCompareOut'
    })
    
}

function deleteFromCompareOut(param){
    window.location = '/compare/' + param;
}


function openCategory(cat_id){
    var table = d.createElement('table');
    table.cellPadding = '2';
    table.cellSpacing = '0';
    table.border = '0';
    table.className = 'table19';
    table.id = "left_menu_subcats_table_" + cat_id;
    
    var tr = d.createElement('tr');
    var td = d.createElement('td');
    //td.className='td20';
    var img = new Image();
    img.src = '/images/wait.gif';
    td.appendChild(img);
    tr.appendChild(td);
    var tbody = d.createElement('tbody');
    tbody.appendChild(tr);
    table.appendChild(tbody);
    d.getElementById('left_menu_root_' + cat_id).appendChild(table);
    
    
    
    req.open(null, '/jscript/common.php', true);
    req.send({
        param: cat_id,
        query: 'mphGetSubcatsToCat',
        callback: 'openCategoryOut'
    });
    
}

function openCategoryOut(params){

    var cat_id = params.cat_id;
    var cats = params.list;
    
    var div = d.getElementById('left_menu_root_' + cat_id);
    div.getElementsByTagName('img')[0].src = '/images/minus.gif';
    div.getElementsByTagName('a')[1].onclick = function(){
        closeCategory(cat_id);
    }
    div.getElementsByTagName('a')[0].onclick = function(){
        closeCategory(cat_id);
    }
    
    
    
    var table = d.getElementById('left_menu_subcats_table_' + cat_id).getElementsByTagName('tbody')[0];
    var rows = table.getElementsByTagName('tr');
    while (rows.length > 0) {
        table.removeChild(rows[rows.length - 1]);
    }
    
    for (i = 0; i < cats.length; i++) {
        var tr = d.createElement('tr');
        tr.id = 'left_menu_subcats_' + cats[i].id;
        var td = d.createElement('td');
        var a = d.createElement('a');
        a.href = '/catalog/' + cats[i].url + '/';
        a.innerHTML = cats[i].name;
        
        
        //if (cats[i].need_more==1) {
        var a2 = d.createElement('a');
        a2.href = 'javascript:void(0);';
        a2.id = cats[i].id
        a2.onclick = function(){
            openSubCategory(this.id);
        }
        
        var img = new Image();
        img.src = '/images/plus.gif';
        a2.appendChild(img);
        //
        
        var span = d.createElement('span');
        span.innerHTML = '&nbsp;';
        
        if (cats[i].need_more == 1) {
            td.appendChild(a2);
        }
        td.appendChild(span);
        td.appendChild(a);
        tr.appendChild(td);
        table.appendChild(tr);
        
    }
}

function closeCategory(cat_id){
    var div = d.getElementById('left_menu_root_' + cat_id);
    div.removeChild(div.getElementsByTagName('table')[0]);
    div.getElementsByTagName('img')[0].src = '/images/plus.gif';
    div.getElementsByTagName('a')[1].onclick = function(){
        openCategory(cat_id);
    }
    div.getElementsByTagName('a')[0].onclick = function(){
        openCategory(cat_id);
    }
    
}


function openSubCategory(cat_id){
    var td = d.getElementById('left_menu_subcats_' + cat_id).getElementsByTagName('td')[0];
    var div = d.createElement('div');
    div.className = 'div_left_menu_brand';
    var img = new Image();
    img.src = '/images/wait.gif';
    div.appendChild(img);
    td.appendChild(div);
    
    req.open(null, '/jscript/common.php', true);
    req.send({
        param: cat_id,
        query: 'mpgGetBrandsToSubcat',
        callback: 'openSubCategoryOut'
    });
    
}

function openSubCategoryOut(params){
    var cat_id = params.cat_id;
    var brands = params.brands;
    var cat_url = params.url;
    
    var td = d.getElementById('left_menu_subcats_' + cat_id).getElementsByTagName('td')[0];
    
    td.getElementsByTagName('img')[0].src = '/images/minus.gif';
    td.getElementsByTagName('a')[0].onclick = function(){
        closeSubCategory(cat_id);
    }
    
    var div = td.getElementsByTagName('div');
    while (div.length > 0) {
        td.removeChild(div[div.length - 1]);
    }
    
    for (i = 0; i < brands.length; i++) {
        var div = d.createElement('div');
        div.className = 'div_left_menu_brand';
        var a = d.createElement('a');
        a.href = '/catalog/' + cat_url + '/' + brands[i].url + '/';
        a.innerHTML = brands[i].name;
        
        div.appendChild(a);
        td.appendChild(div);
    }
}

function closeSubCategory(cat_id){
    var td = d.getElementById('left_menu_subcats_' + cat_id).getElementsByTagName('td')[0];
    var div = td.getElementsByTagName('div');
    while (div.length > 0) {
        td.removeChild(div[div.length - 1]);
    }
    
    td.getElementsByTagName('img')[0].src = '/images/plus.gif';
    td.getElementsByTagName('a')[0].onclick = function(){
        openSubCategory(cat_id);
    }
    
}


function addProductInBracket(prod_id, count){
    var frm = d.getElementById('form_add_in_bracket');
    frm.add_prod_in_bracket.value = prod_id;
    frm.add_prod_in_bracket_count.value = count;
    frm.submit();
}

function addAccessInBasket(prod_id, access_id, count){
    var frm = d.getElementById('form_add_in_bracket');
    frm.add_prod_in_bracket_parent_prod.value = prod_id;
    addProductInBracket(access_id, count);
}

function getToBasket(){
    window.location = '/basket/'
}

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
    }
}


window.onload = documentLoaded;


/*
 Developed by Robert Nyman, http://www.robertnyman.com
 Code/licensing: http://code.google.com/p/getelementsbyclassname/
 */
var getElementsByClassName = function(className, tag, elm){
    if (document.getElementsByClassName) {
        getElementsByClassName = function(className, tag, elm){
            elm = elm || document;
            var elements = elm.getElementsByClassName(className), nodeName = (tag) ? new RegExp("\\b" + tag + "\\b", "i") : null, returnElements = [], current;
            for (var i = 0, il = elements.length; i < il; i += 1) {
                current = elements[i];
                if (!nodeName || nodeName.test(current.nodeName)) {
                    returnElements.push(current);
                }
            }
            return returnElements;
        };
    }
    else 
        if (document.evaluate) {
            getElementsByClassName = function(className, tag, elm){
                tag = tag || "*";
                elm = elm || document;
                var classes = className.split(" "), classesToCheck = "", xhtmlNamespace = "http://www.w3.org/1999/xhtml", namespaceResolver = (document.documentElement.namespaceURI === xhtmlNamespace) ? xhtmlNamespace : null, returnElements = [], elements, node;
                for (var j = 0, jl = classes.length; j < jl; j += 1) {
                    classesToCheck += "[contains(concat(' ', @class, ' '), ' " + classes[j] + " ')]";
                }
                try {
                    elements = document.evaluate(".//" + tag + classesToCheck, elm, namespaceResolver, 0, null);
                } 
                catch (e) {
                    elements = document.evaluate(".//" + tag + classesToCheck, elm, null, 0, null);
                }
                while ((node = elements.iterateNext())) {
                    returnElements.push(node);
                }
                return returnElements;
            };
        }
        else {
            getElementsByClassName = function(className, tag, elm){
                tag = tag || "*";
                elm = elm || document;
                var classes = className.split(" "), classesToCheck = [], elements = (tag === "*" && elm.all) ? elm.all : elm.getElementsByTagName(tag), current, returnElements = [], match;
                for (var k = 0, kl = classes.length; k < kl; k += 1) {
                    classesToCheck.push(new RegExp("(^|\\s)" + classes[k] + "(\\s|$)"));
                }
                for (var l = 0, ll = elements.length; l < ll; l += 1) {
                    current = elements[l];
                    match = false;
                    for (var m = 0, ml = classesToCheck.length; m < ml; m += 1) {
                        match = classesToCheck[m].test(current.className);
                        if (!match) {
                            break;
                        }
                    }
                    if (match) {
                        returnElements.push(current);
                    }
                }
                return returnElements;
            };
        }
    return getElementsByClassName(className, tag, elm);
};

function showGlobalSearchList(){
    var frm = d.getElementById('frm_global_search');
    if (frm.globalSearchString.value) 
        frm.submit();
}

function showSampleSearchResult(param){
    d.getElementById('globalSearchString').value = param;
    showGlobalSearchList();
}

function openQuickProd(url){
    if (url != 0) {
        window.location = url;
    }
}

function setValueList(){
    d.getElementById('frm_valute_list').submit();
}


function ReviewChangeBrand(param){
    if (param.value) 
        window.location = '/review/' + param.value;
}

function userNeedRegister(){
    if (confirm('Уведомления доступны только зарегистрированным пользователям. Войти на сайт?')) {
        window.location = '/user/';
    }
}


function UfixThumbImage(img,width,height){		
		img.style.display='inline';
		if (img.height>height){
				img.width=img.width*height/img.height;
				img.height=height;
		}
				
		if (img.width>width){
			img.height=img.height*width/img.width;
			img.width=width;
		}
			
		img.style.maxHeight=height+'px';
		img.style.maxWidth=width+'px';
		
	}	

function changeAccess(url){
    if (url != '0') 
        window.location = url;
}

