function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}





function ToggleById(id, state) {
    // Unfold the branch if it isn't visible
    //alert('state = '+state);
    var nodeToToggle = document.getElementById("branch_" + id);
    //alert('nodeToToggle.tagName = '+nodeToToggle.tagName);
    if (state) {
        nodeToToggle.style.display = state;
        return state;
    }
    var dsp = nodeToToggle.style.display;
    //alert(dsp)
    if (nodeToToggle.style.display != 'none') {
        nodeToToggle.style.display = 'none';
    } else {
        nodeToToggle.style.display = '';
    }
    save_tree_state("branch");
    return nodeToToggle.style.display;
}



function save_tree_state(save_who) {
    var y = document.all;
    //var y = document.getElementsByTagName("*");
    // var tree_state = [];
    var tree_state = "";
    for (var i in y) {
        //
        if (y[i] != null) {
            if (y[i].id != null && y[i].id != "") {
                if (String(y[i].id).indexOf("branch") != -1) {
                    y[i].style.display == "none" ? 0 : y[i].style.display = '';
                    f = ","+String(y[i].id) + "^" + y[i].style.display;
                    tree_state+=f;
                }
            }
        }
    }
    //  alert("tree_state = "+tree_state)
    // tree_state.join();
    SetCookie('trees', tree_state, "", "/");
}

//  COOKIES

function getCookieVal(offset) {
    var endstr = document.cookie.indexOf(";", offset);
    if (endstr == -1) {
        endstr = document.cookie.length;
    }
    return unescape(document.cookie.substring(offset, endstr));
}
function GetCookie(name) {
    var arg = name + "=";
    var alen = arg.length;
    if(document.cookie.indexOf(name)==-1)
        return false;//alert ("zu "+document.cookie);
    var clen = document.cookie.length;
    var i = 0;
    while (i < clen) {
        var j = i + alen;
        if (document.cookie.substring(i, j) == arg) {
            return getCookieVal(j);
        }
        i = document.cookie.indexOf(" ", i) + 1;
        if (i == 0) {
            break;
        }
    }
    return "";
}


function SetCookie(name,value,expires,path,domain, secure) {
//alert(expires);
    document.cookie = name + "=" + escape(value) + ((expires) ? "; expires=" + expires.toGMTString() : "") + ((path)? "; path=" + path : "") + ((domain) ? "; domain=" +domain : "") + ((secure)? "; secure": "");
}


function FilterPrintObjects(filter,allfilter){
   var filter_arr=filter.split(",");
   var allfilter_arr=allfilter.split(",");
   for (var i in allfilter_arr){
        var field=allfilter_arr[i];
        var oldstate=strToArr(GetCookie("filter"))[field];//
      // alert(oldstate);
        if(oldstate===false){
            if(filter.indexOf(field)!=-1)
                SetVisibleSubstr(field,"");
            else
                SetVisibleSubstr(field,"none");
        }else{
            SetVisibleSubstr(field,""+oldstate);
        }
   }

}

function arrToStr(arr){
    str="";
    for(var i in arr){
        str+=","+i+"^"+arr[i];
    }
    return str;
}
function strToArr(str){
    var arr=[];
    if(str){
        var f=str.split(",");
        for(var i in f){
            var z=f[i].split("^");
            arr[z[0]]=z[1];
        }
    }
    return arr;
}

function SetVisibleSubstr(substr,state) {
    if(substr=="")
        return;
    var ctl=document.all[substr+"_controller"];
    if(state=="none")
        ctlstate="";
    else
        ctlstate="none";
    if (ctl && ctl.style)
        ctl.style.display=ctlstate;
    var inputs = document.all;
    for (var i = 0; i < inputs.length; i++) {
        var el=inputs[i];
        try{
            if (el.name &&el.name==substr && el.disabled!=true)
                el.style.display = state;
        }catch(er){}

    }
    var cookie=GetCookie("filter");
    var arr =strToArr(cookie);
    arr[substr]=state;
    cookie=arrToStr(arr);
   // alert(cookie);//arr.join()
    SetCookie("filter",cookie);// , "", "/"
}
function SetVisible(id, state) {
    var nodeToToggle = document.getElementById(id);
    if(nodeToToggle) {
        nodeToToggle.style.display = state;
        //alert('id = '+id);
    }
}
function load_tree_state(load_who) {
    cookie = GetCookie("trees");
    if (cookie) {
        //alert("MUMU")
        tree_state = cookie.split(",");
        for (i in tree_state) {
            toTogglePair = tree_state[i].split("^");
            nodeToToggle = document.getElementById(toTogglePair[0]);
            if (nodeToToggle) {
                var state = toTogglePair[1];
                var id = nodeToToggle.id.split("branch_")[1];
                var arr = document.getElementById(id);
                nodeToToggle.style.display = state;
                if (arr && arr.className == 'trigger') {
                    //alert(arr)
                    arrToState(arr, state);
                }
            }
        }
    }
    //restore arrows
}


var search_rules="";
oldrulesstr=window.document.URL.match(/&srules=[^&]*/gi)
if(oldrulesstr && oldrulesstr[0] && oldrulesstr[0]!="")
    search_rules=oldrulesstr[0].replace(/&srules=/gi, "");

function search_page_rule_remove(field,sstr) {//alert("remove "+field+"|"+sstr);
    //var url=window.document.URL;
    //url=url.replace(/&sstr=[^&]*/gi, "");
    //search_rules=search_rules.replace(/&sstr=[^&]*/gi, "");//var re = new RegExp ('<br>', 'gi') ;var newstr = strText.replace(re, '') ;
 //alert(search_rules);
   // search_rules=search_rules.replace(new RegExp ("[,]+"+field+"\\|"+sstr, 'gi'), ""); //alert(search_rules);
    search_rules=search_rules.replace(new RegExp (field+"\\|"+sstr+"[,]{0,1}", 'gi'), ""); //alert(search_rules);
    search_rules=search_rules.replace(new RegExp (",$", 'gi'), ""); //alert(search_rules);
     search_page();
}
function search_page_rule_save(field,sstr) {
    if(search_rules)
        search_rules+=",";
    search_rules+=field+"|"+sstr;
    search_page();
    //alert(search_rules);
    //search_rules=.replace(/&srules=/gi, "");
   // alert(search_rules);

   // alert();
}
function search_page(input_id,field_selector_id) {
    var sstr="";
    if (input_id) {
        var el=document.getElementById(input_id);
        var sel=document.getElementById(field_selector_id);
        var field=sel.options[sel.selectedIndex].value;
    //alert(field);

        if (el.value)
            sstr=el.value;
    }
   // alert(remove_get_var("srules","sstr"));
   var url=window.document.URL;
    url=url.replace(/&sstr=[^&]*/gi, "");
    url=url.replace(/&field=[^&]*/gi, "");
    url=url.replace(/&srules=[^&]*/gi, "");
    var href = url+"&sstr="+sstr;
    if(search_rules){
        href +="&srules="+search_rules;
    }
    if(field){
       href +="&field="+field;
    }
    window.self.document.location.href=href;
    return false;
};

function remove_get_var(varname1,varname2,varname3,varname4,varname5) {
    var url=window.document.URL;
    url=url.replace(/&sstr=[^&]*/gi, "");
    return url;
}
function sort_page(col_name,sortdir) {
    var url=window.document.URL.replace(/&sort=[^&]*/gi, "");
    var url=url.replace(/&sortdir=[^&]*/gi, "");//alert(sortdir);
    window.document.location.href =url+'&sort='+col_name+'&sortdir='+sortdir;
};
