var param = '';
if((typeof(web_dir) == 'undefined') || (web_dir === null))
    var web_dir = '';
var pref = window.location.protocol + '//' + window.location.host + web_dir+'/';

if(typeof(cur_page) == "undefined" || cur_page === null)
    var cur_page = 'cart';
if(cur_page == 'search')
    pref += 'search.php?mode=search';
if(cur_page == 'manufacturer_products')
    pref += 'manufacturers.php?manufacturerid='+cur_manuf;
if(cur_page == 'catalog' || !cur_page)
    pref += 'home.php?cat='+cur_cat;

function fastRef(obj) {
    if(TrimString($('contentcolumn').innerHTML).indexOf('ajax-loader.gif')>-1)
        return false;
    if(typeof(obj)=='undefined') return false;
    obj.style.display = 'none';
    var lg = document.createElement('img');
    lg.src='ajax-loader.gif';
    lg.width = '30';
    lg.height = '30';
    lg.alt = 'Loading...';
    obj.parentNode.appendChild(lg);
    refresh(obj);
    return false;
}

function slide(id) {
    var stat = $(id).getElementsByTagName("li");
    for(i = max_filters;stat[i];i++) {
        if(stat[i].style.display == 'block' || stat[i].style.display == '')
            stat[i].style.display = 'none';
        else
            stat[i].style.display = 'block';
    }
}

function put_products(r) {
    if(r.readyState == 4 && r.status == 200) {
        $('contentcolumn').innerHTML = r.responseText;
    }
}

function update(param, menu){
    targetElem =  $('contentcolumn');
    targetElem.innerHTML = '<img src="ajax-loader.gif" alt="Loading..." />';
    scroll(0,0);
    new Ajax.Request(param, {method: 'get',parameters:{'ajax':1},onSuccess: put_products});
    if(menu == 1)
        new Ajax.Updater('leftcolumn',param, {method: 'get',parameters:{'ajax':2}});
}

function clear_sel(){
    if(TrimString($('contentcolumn').innerHTML).indexOf('ajax-loader.gif')>-1)
        return false;
    parent.location.hash = ' ';
    elems = $$('a.act');
    for (var i=0;i<elems.length;i++){
        elems[i].className = '';
    }
    update(pref,1);
    return false;
}

function TrimString(sInString){
	if(typeof(sInString) == 'undefined' || sInString === null) return false;
    sInString = sInString.replace(/ /g,'');
    return sInString.replace(/(^\s+)|(\s+$)/g, '');
}

function refresh(obj){
    if(TrimString($('contentcolumn').innerHTML).indexOf('ajax-loader.gif')>-1)
        return false;
    var url = obj.href;
    var cur_url = document.URL;
    param = URLDecode(parent.location.hash.substr(1));
    url = url.replace('%5B', '[');
    url = url.replace('%5D', ']');
    url = url.replace('%3B', '');
    if(url.substr(url.length-1,url.length) == "=")
        url = url.substr(0,url.length-1);
    url = url.replace('search.php?mode=search', '');
    var ind = 0;
	if(url.indexOf('#') > -1) {
		ind = url.indexOf('#');
	} else if(url.indexOf('?')>-1 && cur_url.indexOf('cat=')==-1 && cur_url.indexOf('manufacturerid=')==-1) {
        ind = url.indexOf('?');
    } else {
        ind = url.indexOf('&') > -1 ? url.indexOf('&') : ind = url.indexOf('?');
    }
    if(ind < 0)
        ind = url.indexOf(extraFeildParamName+'[');
    if(ind < 0)
        ind = url.indexOf('price_')-1;
    addparam = url.substr(ind+1).replace(/^&/g,'');
    addparam=addparam.replace(/\s/g,"%20");
    re = '%5B0%5D';
    addparam=addparam.replace(re,"[]");

    if(cur_page == 'search')
        re ='mode=search';
    addparam2 = URLDecode(addparam);
    param = param.replace(/\s/g,"%20");
    var exist = param.indexOf(addparam2);

    if(param.substr(1).indexOf(addparam2) > -1) {
        param = param.replace(addparam2,'');
    } else if(addparam2.indexOf(param.substr(1)) > -1) {
        addparam2 = addparam2.replace(param.substr(1),'');
    }
    if(exist > -1){
        obj.className = '';
        re = '&'+addparam2;
        param = param.replace(re,'');
    }else{
        obj.className = 'act';
        param = param +'&'+ addparam2;
    }
	if(param.indexOf('#') > -1)
		param = param.substr(0,param.indexOf('#'));

	if(param.substr(0,1) != '&')
		param = '&' + param;

    if(param.indexOf('&&')>-1)
        param = param.replace('&&','&');

	parent.location.hash = param.length > 3 ? '#'+TrimString(param.replace(/&$/g,'')) : '';
    update(TrimString(pref)+TrimString(param),1);
    return false;
}

function sort_by(l){
    if(!cur_cat && cur_page != 'search' && cur_page !='manufacturer_products') return true;
    param = parent.location.hash.substr(1);
    re = /&sort=[a-z]*/;
    param = param.replace(re,'');
    re = /^sort=[a-z]*/;
    param = param.replace(re,'');
    re = /&sort_direction=\d/;
    param = param.replace(re,'');
    re = /sort_direction=\d/;
    param = param.replace(re,'');
    if(param.length)
        parent.location.hash = param+'&'+l;
    else
        parent.location.hash = param+l;
    update(pref+'&'+parent.location.hash.substr(1), 0);
    return false;
}

function pagenom(nom){
    if(!cur_cat && cur_page != 'search' && cur_page !='manufacturer_products') return true;
    param = parent.location.hash.substr(1);
    re = /&page=\d*/;
    param = param.replace(re,'');
    re = /^page=\d*/;
    param = param.replace(re,'');
    if(param.length)
        parent.location.hash = param+'&page='+nom;
    else
        parent.location.hash = '#&page='+nom;
    update(pref+param+'&page='+nom, 0);
    return false;
}

function objects_per_page(listValue){
    if(!cur_cat && cur_page != 'search' && cur_page !='manufacturer_products') return true;
    param = parent.location.hash.substr(1);
    re = /&objects_per_page=\d*/;
    param = param.replace(re,'');
    re = /objects_per_page=\d*/;
    param = param.replace(re,'');
    if(param.length)
        parent.location.hash = param+'&objects_per_page='+listValue;
    else
        parent.location.hash = param+'objects_per_page='+listValue;
    update (pref+param+'&objects_per_page='+listValue, 0);
    return false;
}

function read_hesh(){
    var dloc = URLDecode(document.location.href);
    var extra = dloc.indexOf(extraFeildParamName+'[');
    var page_nom = dloc.indexOf('page=');
    var objects_per_page = dloc.indexOf('objects_per_page=');
    var sort_by = dloc.indexOf('sort=');
    var if_search = dloc.indexOf('search.php');
    var ind = -1;

    if(extra == -1 && page_nom ==-1 && objects_per_page == -1)
        return false;
	if(if_search > -1) {
		ind = extra;
	} else if((dloc.indexOf('cat') > -1 || dloc.indexOf('manufacturerid') > -1) && dloc.indexOf('&') > -1) {
        ind = dloc.indexOf('&');
    } else if(dloc.indexOf('?') > -1) {
        ind = dloc.indexOf('?');
    }
    param = '';
    norefresh = 0;
    if(ind > -1 && parent.location.hash ==''){
        addparam = '&'+dloc.substr(ind);
        parent.location.hash = addparam;
        norefresh = 1;
    } else {
        addparam = '';
    }
    if(parent.location.hash.length > 5 && !norefresh){
        param = parent.location.hash.substr(1).replace('&&','&');
		if(param.indexOf('#') > -1)
			param = param.substr(0,param.indexOf('#'));
		if(param.substr(0,1) != '&')
			param = '&' + param;
		parent.location.hash = '#'+TrimString(param);
        if(param.length >5){
            update (pref+param,1);
        }
    }
    return false;
}

function URLDecode (encodedString) {
    var output = encodedString;
    var binVal, thisString;
    var myregexp = /(%[^%]{2})/;
    while ((match = myregexp.exec(output)) != null && match.length > 1 && match[1] != '') {
        binVal = parseInt(match[1].substr(1),16);
        thisString = String.fromCharCode(binVal);
        output = output.replace(match[1], thisString);
    }
    return output;
}