var bIe=navigator.userAgent.indexOf("MSIE")!=-1 && document.all && !window.innerWidth;
var bMz=navigator.userAgent.indexOf("Gecko")!=-1 && document.getElementById && !document.all;
var bOp=navigator.userAgent.indexOf("Opera")!=-1 && document.getElementById ? 1:0;
var bKn=navigator.userAgent.indexOf("Konqueror")!=-1 && document.getElementById && document.body.offsetWidth ? 1:0;
var bNs=navigator.userAgent.indexOf("Opera")==-1 && document.getElementById && !document.all;
var bOp6=bOp && document.body.offsetWidth ? 1:0;
var bNs4=document.layers ? 1:0;

function strreplace(string,src,dst) {

    var len=string.length,srcLen=src.length,i=string.indexOf(src);

    if (!len || !srcLen)
        return(string);

    if (!i && (src!=string.substring(0,srcLen)))
        return(string);

    if (i==-1)
        return(string);

    var newstr=string.substring(0,i)+dst;

    if ((i+srcLen)<len)
        newstr+=strreplace(string.substring(i+srcLen,len),src,dst);

    return(newstr);
}

function strentities(s) {

    s=strreplace(s,"&","&amp;");
    s=strreplace(s,"<","&lt;");
    s=strreplace(s,">","&gt;");

    return(s);
}

function formUpdateOnly(form,linkaddon) {

    // buggy mozila browser... Workaround
    if (bMz) {

        var t,f,fd,s,e,sparam,sbody,doc;

        f=document.forms[form];

        if (!window.frames['adu__frame_mz']) {

            var x=document.createElement("IFRAME");
            x.setAttribute("name", "adu__frame_mz");
            x.setAttribute("id", "adu__frame_mz");
            x.setAttribute("src", "");
            x.setAttribute("frameborder", "0");
            x.setAttribute("marginwidth" , "0");
            x.setAttribute("scrolling", "no");
            x.setAttribute("align", "center");
            x.setAttribute("width", "0");
            x.setAttribute("height", "0");

            x=document.body.appendChild(x);
        }


        s='<FORM id="'+form+'" name="'+form+'" action="'+f.action+'&reqProcessFormOnly=1&'+linkaddon+'" method="'+f.method+'" enctype="'+f.enctype+'">';

        for (t=0;t<f.elements.length;t++) {

            e=f.elements[t];
            sparam='';
            sbody ='';
            shaveend=0;

            if (e.tagName=='TEXTAREA') {
        
                sbody=strentities(e.value);
                shaveend++;
            }
            else
            if (e.tagName=='INPUT') {

                sparam+=' value="'+e.value+'"';
                sparam+=' name="'+e.name+'"';
                sparam+=' type="'+e.type+'"';
            }
            else
            if (e.tagName=='SELECT') {

                sparam+=' value="'+e.value+'"';

                for (u=0;u<e.options.length;u++) {

                    sbody+='<OPTION value="'+e.options[u].value+'"';
                    if (e.options[u].selected)
                        sbody+=' SELECTED="TRUE"';
                    sbody+='>';
                    sbody+=e.options[u].text;
                    sbody+='</OPTION>';
                }

                shaveend++;
            }
            else {

                alert("Mozzila is TOO BUGY BROWSER !!! Tell coder about add next workaround, or well Mozzila team to fix IFRAMES finally !!!!! :(");
                return;
            }

            s+='<'+e.tagName+' name="'+e.name+'" '+sparam+'>';

            if (shaveend) {

                s+=sbody;
                s+='</'+e.tagName+">\n";
            }
        }

        s+='</FORM>';

        doc=window.frames['adu__frame_mz'].document;

        doc.open();
        doc.write(s);
        doc.close();

        fd=doc.getElementById(form);
        fd.submit();
    }
    else {

        var fc,fdst;

        fc=window.frames['adu__frame'];
        fc.document.body.innerHTML=document.body.innerHTML
        fdst=fc.document.forms[form];
        fdst.action=fc.document.forms[form].action+"&reqProcessFormOnly=1&"+linkaddon;
        fdst.submit();
    }
}

function findThisForm(e) {

    var t,u;

    while (e) {

        if (e.tagName && e.tagName.toLowerCase()=="input" && e.form)
            break;

        if (!e.previousSibling)
            break;

        e=e.previousSibling;
    }

    if (!e || !e.form) {

        alert("Sorry, check your template for <FORM> tag");
        return(0);
    }
    

    return(e.form);
}

function mdlgResult(x) {
    if (opener.dlg.execfn!=0)
        opener.dlg.execfn(x,opener.dlg.userval)
    if (opener.dlg.dstitem!=0)
        opener.dlg.dstitem.value=x;
    window.close();
}
function setElementText(el,t) {
    if (bIe)
        el.innerHTML=t;
    if (bNs) {
        var rng=document.createRange();
        rng.setStartBefore(el);
        var htmlFrag=rng.createContextualFragment(t);
        while (el.hasChildNodes())
            el.removeChild(el.lastChild);
        el.appendChild(htmlFrag);
    }
}
function getElement(a) {
    return(bIe ? document.all[a]:bNs4 ? document.layers[a]:document.getElementById(a));
}
function showElement(el,vis) {

    if (vis!=0) {

        if (bNs4)
            el.visibility=(vis==-1) ? "inherit":'visible';
        else
        if (bIe && (el.filters && el.filters.length!=0)) {

            el.filters[0].apply();
            el.style.visibility=(vis==-1) ? "inherit":"visible";
            el.filters[0].play();
        }
        else
            el.style.visibility=(vis==-1) ? "inherit":"visible";
    }
    else {

        if (bNs4)
            el.visibility="hide";
        else
            el.style.visibility="hidden";
    }
}
function cbsItemPos_get(el,posX,posY,rel) {
    if (rel) {
        posX+=bNs4 ? rel.pageX:el.offsetLeft;
        posY+=bNs4 ? rel.pageY:el.offsetTop;
    }
    var e=el.offsetParent;
    while(e && e.tagName.toLowerCase()!="body") {

        posX+=e.offsetLeft;
        posY+=e.offsetTop;
        e=e.offsetParent;
    }
    return([posX,posY]);
}
function cbsItemPos_set(el,posX,posY) {
    if (bNs || bKn) {
        el.style.left=posX+'px';
        el.style.top =posY+'px';
    }
    else {
        el.style.pixelLeft=posX;
        el.style.pixelTop =posY;
    }
}
var dlg=new Object(),timerclose=0;
function dlgCheckFocus2() {
    if (dlg.win && !dlg.win.closed)
        dlg.win.focus();
}
function dlgCheckFocus() {
    setTimeout("dlgCheckFocus2()",50);
}
function dlgCheckClose() {
    if (!dlg.win || dlg.win.closed) {
        window.onfocus='';
        window.onclose='';
        dlg.win=0;
        if (timerclose)
            clearTimeout(timerclose);
        timerclose=0;
    }
}
function dlgClose() {
    if (dlg.win && !dlg.win.closed) {
        dlg.win.close();
        dlgCheckClose();
    }
}
function openDialog(url,execfn,width,height,userval) {
    var attr,left,top;
    if (dlg.win && !dlg.win.closed) {

        dlgCheck();
        return;
    }
    dlg.dstitem=0;
    dlg.execfn=0;
    dlg.userval=userval;
    if (execfn.value)
        dlg.dstitem=execfn;
    else
        dlg.execfn=execfn;
    if (!bIe) {
        left=window.screenX+((window.outerWidth-width)/2);
        top =window.screenY+((window.outerHeight-height)/2);
        attr="screenX="+left+",screenY="+top;
    }
    else {
        left=(screen.width-width)/2;
        top =(screen.height-height)/2;
        attr="left="+left+",top="+top;
    }
    attr+=",scrollbars=1,resizable=yes,width="+width+",height="+height;
    dlg.win=window.open(url,'',attr)
    dlg.win.focus();
    window.onfocus=dlgCheckFocus;
    window.onclose=dlgCheckClose;
    timerclose=setInterval("dlgCheckClose()",100);
}
function openPopup(url,width,height,attr2) {
    var attr,left,top;
    if (!bIe) {
        left=window.screenX+((window.outerWidth-width)/2);
        top =window.screenY+((window.outerHeight-height)/2);
        attr="screenX="+left+",screenY="+top;
    }
    else {
        left=(screen.width-width)/2;
        top =(screen.height-height)/2;
        attr="left="+left+",top="+top;
    }
    attr+=","+attr2+",width="+width+",height="+height;
    dlg.win=window.open(url,'',attr)
}
var moveOldBlur,moveOldUp,moveMouseX,moveMouseY,moveOrigX,moveOrigY,moveState=0,moveHighOld,moveHighOldS;
var movePtr,dropItemDst,dropItemSrc,moveCb=0,moveHighOldCol='';
function moveEnd() {

    moveState=0;
    showElement(movePtr,0);
    document.onmouseup=moveOldUp;
    document.onblur=moveOldBlur;
    document.onmousemove=moveOldMove;
    window.status='';
    if (moveHighOld) {
        moveHighOld.style.fontWeight='';
        moveHighOld.style.background=moveHighOldCol;
        moveHighOld=0;
        if (dropItemSrc!=dropItemDst) {
            for (t=0;t<document.forms.length;t++) {
                if (document.forms[t].name=="popuppost") {
                    document.forms[t].elements[0].value=dropItemSrc;
                    document.forms[t].elements[1].value='move';
                    document.forms[t].elements[2].value=dropItemDst;
                    document.forms[t].submit();
                }
            }
        }
    }

    return(false);
}

function rgb(r,g,b) {

    r=r.toString(16).toUpperCase();
    if (r.length!=2)
        r="0"+r;
    g=g.toString(16).toUpperCase();
    if (g.length!=2)
        g="0"+g;
    b=b.toString(16).toUpperCase();
    if (b.length!=2)
        b="0"+b;

    return("#"+r+g+b);
}

function moveMove(evnt) {

    var e,e2,esrc=bIe ? event.srcElement:evnt.target;
    if (!bIe)
        event=evnt;
    if (moveState==1) {

        moveOrigX=0;
        moveOrigY=0;
        e=esrc;
        while(e && (e.nodeName=="#text" || (e.tagName && e.tagName.toLowerCase()!="body"))) {

            if (e.nodeName=="#text") {

                e=e.parentNode;
                continue;
            }
     
            moveOrigX+=e.offsetLeft;
            moveOrigY+=e.offsetTop;
            e=e.offsetParent;
        };

        var doc=document[document.compatMode=='CSS1Compat' ? 'documentElement':'body'];
        moveOrigX=(bIe ? event.screenX-window.screenLeft:event.clientX)+12+(bIe ? doc.scrollLeft:pageXOffset);
        moveOrigY=(bIe ? event.screenY-window.screenTop:event.clientY)-2+(bIe ? doc.scrollTop:pageYOffset);
        moveMouseX=event.screenX;
        moveMouseY=event.screenY;
        cbsItemPos_set(movePtr,moveOrigX,moveOrigY);
        showElement(movePtr,1);
        moveState=2;
    }
    else
    if (moveState==2) {

        e=esrc;
        found=false;
        while(e && (e.nodeName=="#text" || (e.tagName && e.tagName.toLowerCase()!="body"))) {

            if (e.nodeName=="#text") {

                e=e.parentNode;
                continue;
            }

            if (e.id.substr(0,9)=="dragdropt") {

                dropItemDst=e.id.substr(9,15);
                found=true;
                break;
            }
            e=e.offsetParent;
        }

        if (found) {

            if (dropItemDst>0 || dropItemSrc==dropItemDst)
                found=0;
        }

        if (moveHighOld && (!found || moveHighOld!=e)) {

            moveHighOld.style.fontWeight='';
            moveHighOld.style.background=moveHighOldCol;
            moveHighOld=0;
        }

        if (found) {

            if (moveCb!=0)
                found=moveCb(e)
        }

        if (found) {

            // if we are table, look for 'destination' inside
            if (e.tagName.toLowerCase()=="table") {

                e2=e;
                for (var r=0;r<e2.rows.length;r++) {
                    for (var c=0;c<e2.rows[r].cells.length;c++) {
                
                        if (e2.rows[r].cells[c].id=='dragdropdst') {

                            e=e2.rows[r].cells[c];
                            break;
                        }
                    }
                }
            }

            // changed
            if (e!=moveHighOld) {

                moveHighOld=e;

                // remember background color
                if (e.style.backgroundColor!='')
                    moveHighOldCol=e.style.backgroundColor;
                else
                    moveHighOldCol='';

                e.style.fontWeight=700;
                e.style.background="#eedddd";

                movePtr.style.color="#11aa11";
            }
        }
        else {

            movePtr.style.color='#aa1111';
        }

        cbsItemPos_set(movePtr,moveOrigX+event.screenX-moveMouseX,moveOrigY+event.screenY-moveMouseY);
    }
    else
        return(true);

    return(false);
}
function moveMouseDown(evnt) {

    e=bIe ? event.srcElement:evnt.target;
    btn=bIe ? event.button&1:evnt.which==1;

    movePtr=getElement('moveDiv');

    if (btn && moveState==0 && movePtr) {

        movePtr.style.color='#aa1111';

        while(e && (e.nodeName=="#text" || (e.tagName && e.tagName.toLowerCase()!="body"))) {

            if (e.nodeName=="#text") {

                e=e.parentNode;
                continue;
            }

            if (e.id.substr(0,9)=="dragdropt") {

                dropItemSrc=e.id.substr(9,15);
                moveOldUp=document.onmouseup;
                moveOldMove=document.onmousemove;
                moveOldOnBlur=document.onblur;
                document.onmouseup=moveEnd;
                document.onmouseup=moveEnd;
                document.onmousemove=moveMove;
                moveState=1;
                return(false);
            }
            e=e.offsetParent;
        }
    }

    return(true);
}


