var addonReq = new Array();
var buzztimer = new Array();
var adminback = '';

function showloader(n) {
    if(!getObject(n)) return;
    $(getObject(n)).fadeIn('fast');
}
function charcounter(srcobj,trgname,max) {
    if(!getObject(trgname)) return;
    if(!srcobj) return;
    if(max!==undefined) {
        if(srcobj.value.length>max) {
            getObject(trgname).innerHTML = '<span style="background:darkred; color:white;">'+srcobj.value.length+'</span>';
            return;
        }
    }
    getObject(trgname).innerHTML = srcobj.value.length;
}

function table_checkall(formobj,onoff) {
    if(!formobj) return;
    for(i=0; i<formobj.elements.length; i++) {
        if(formobj.elements[i].name.indexOf('check_')==-1) continue;
        formobj.elements[i].checked = onoff;
    }
}
function table_checksynchronize(formobj) {
    var c=0; nc=0; t=0;
    for(i=0; i<formobj.elements.length; i++) {
        if(formobj.elements[i].name.indexOf('check_')==-1) continue;
        t++;
        if(formobj.elements[i].checked) {
            c++;
        } else {
            nc++;
        }
    }
    formobj.elements['checkall'].checked = (nc==0 && t>0);
}
function getaddon(url,parameters,showdiv,callback) {
    if(addonReq[showdiv]) {
        try {addonReq[showdiv].abort();}
        catch (err) {}
    }
    addonReq[showdiv] = null;
    addonReq[showdiv] = getXMLDoc();
    //if(getObject('icon_processing'+showdiv)) getObject('icon_processing'+showdiv).style.visibility = 'visible';
    addonReq[showdiv].open("POST",url,true);
    addonReq[showdiv].setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    addonReq[showdiv].setRequestHeader("Content-length", parameters.length);
    addonReq[showdiv].setRequestHeader("Connection", "close");
    addonReq[showdiv].onreadystatechange = function() {
        if(addonReq[showdiv]) {
            if(addonReq[showdiv].readyState==4 && addonReq[showdiv].status==200) {
                var nodename = getObject(showdiv).nodeName;
                var response = addonReq[showdiv].responseText.split('-=-=-BM-=-=-');
                if(response[1]=='BACKHOME') {
                    document.location.href = '/';
                    return;
                }
                if(response[1]=='RELOAD') {
                    document.location.href = document.location.href;
                    return;
                }
                if(nodename=="DIV") {
                    getObject(showdiv).innerHTML = "<div id=icon_processing"+showdiv+" style='position:relative; visibility:hidden; text-align:center;'><div style='position:absolute; height:100%; width:100%; text-align:center;'><center><table cellpadding=0 cellspacing=0><tr><td width=40 height=40 style=\"background:url('/images/icon_processing_overlay.png') top left no-repeat;\" align=center valign=center><img src='/images/icon_processing.gif'></td></tr></table></center></div></div>";
                    getObject(showdiv).innerHTML += response[0];
                } else if(nodename=="INPUT") {
                    getObject(showdiv).value = response[0];
                } else if(nodename=="TEXTAREA") {
                    getObject(showdiv).value = response[0];
                } else if(nodename=="IMAGE") {
                    getObject(showdiv).src = response[0];
                } else if(nodename=="SPAN") { //no icon
                    getObject(showdiv).innerHTML = response[0];
                } else if(nodename=="IMG") {
                    getObject(showdiv).src = response[0];
                }                
                if(window[callback]) {                    
                    window[callback](response[1]);
                }
            }
        }
    }
    addonReq[showdiv].send(parameters);
}
function gototop() {
    scroll(0,0);
}
function wrapformdata(form) {
    if(!form) return '';
    var params = '';
    for(i=0; i<form.elements.length; i++) {
        var obj = form.elements[i];
        if(obj.nodeName=='FIELDSET') continue;
        var name = (obj.type=='radio') ? obj.id : obj.name;
        var value = (obj.type=='checkbox' || obj.type=='radio') ? obj.checked : obj.value;
        if(name=='') continue;
        value = value+'';
        value = encodeURIComponent(value);
        params += '&'+name+'='+value;
    }
    return params;
}
function getXMLDoc() {
    if(window.XMLHttpRequest) {
        return new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        return new ActiveXObject("Microsoft.XMLHTTP");
    }
}
function getObject(elementID) {
    if (document.getElementById)
        return document.getElementById(elementID);
    else if (document.layers)
        return document.layers[elementID];
    else if (document.all)
        return document.all[elementID];
}
function buzz(obj,clear) {
    if(obj===undefined) return;
    if(clear===undefined) clear = false;
    if(buzztimer[obj.name]) window.clearTimeout(buzztimer[obj.name]);
    if(buzztimer[obj.id]) window.clearTimeout(buzztimer[obj.id]);
    obj.style.background = '#CC4444';
    obj.style.color = 'white';
    var tmpname = (obj.name=='') ? obj.id : obj.name;
    buzztimer[tmpname] = setTimeout(function() {
        if(obj.nodeName=='LABEL') obj.style.background = 'white';
        else if(obj.nodeName=='DIV') obj.style.background = '';
        else obj.style.background = '';
        obj.style.color='';
        if(obj.value && clear) obj.value='';
        buzztimer[tmpname] = null;
    },3000);
}
function callbackerror(status) {
    if(status===undefined) return false;
    status = status.split('###');
    if(status[0]=='ERR0') return true; /*message is shown*/
    if(status[0]=='ERR1') {
        //if(!getObject(status[1])) alert(status[1]);
        getObject(status[1]).focus();
        buzz(getObject(status[1]));
        return true;
    }
    if(status[0]=='RELOAD') {window.location.href=window.location.href; return true;}
    return false;
}
function surfto(url) {
    document.location.href=url;
}

