var IE = /*@cc_on!@*/false;

function showObj(obj, show) {
    if (show==null) {
        s = true;
    }
    else {
        s = show;
    }
    if (document.getElementById(obj)) {
        if (IE) {
            var displayStyle = (s==true)? '' : 'none' ;
        }
        else {
            var displayStyle = (s==true)? '' : 'none' ;            
        }
        document.getElementById(obj).style.display = displayStyle;
    }
}

function hideObj(obj) {
    showObj(obj, false);
}

function getElementsByClass(node,searchClass,tag) {
    var classElements = new Array();
    var els = node.getElementsByTagName(tag); // use "*" for all elements
    var elsLen = els.length;
    var pattern = new RegExp("\b"+searchClass+"\b");
    for (i = 0, j = 0; i < elsLen; i++) {
         if ( pattern.test(els[i].className) ) {
             classElements[j] = els[i];
             j++;
         }
    }
    return classElements;
}

var TimeToFade = 1000.0;

function animateFade(lastTick, eid) {  
    var curTick = new Date().getTime();
    var elapsedTicks = curTick - lastTick;
    var element = document.getElementById(eid);
    if(element.FadeTimeLeft <= elapsedTicks) {
        element.style.opacity = element.FadeState == 1 ? '1' : '0';
        element.style.filter = 'alpha(opacity = ' 
            + (element.FadeState == 1 ? '100' : '0') + ')';
        element.FadeState = element.FadeState == 1 ? 2 : -2;
        return;
    }
    element.FadeTimeLeft -= elapsedTicks;
    var newOpVal = element.FadeTimeLeft/TimeToFade;
    if(element.FadeState == 1)
    newOpVal = 1 - newOpVal;
    element.style.opacity = newOpVal;
    element.style.filter = 'alpha(opacity = ' + (newOpVal*100) + ')';
    setTimeout("animateFade(" + curTick + ",'" + eid + "')", 33);
}

function fade(eid) {
    var element = document.getElementById(eid);
    if(element == null) return;
    
    if(element.FadeState == null) {
        if(element.style.opacity == null 
            || element.style.opacity == '' 
            || element.style.opacity == '1') {
            element.FadeState = 2;
        }
        else {
            element.FadeState = -2;
        }
    }
    
    if(element.FadeState == 1 || element.FadeState == -1) {
        element.FadeState = element.FadeState == 1 ? -1 : 1;
        element.FadeTimeLeft = TimeToFade - element.FadeTimeLeft;
    }
    else {
        element.FadeState = element.FadeState == 2 ? -1 : 1;
        element.FadeTimeLeft = TimeToFade;
        setTimeout("animateFade(" + new Date().getTime() + ",'" + eid + "')", 33);
    }  
}

/* */
function displayHelpWindow(url, width, height) {
        window.open(url,"displayHelpWindowName",'width=' + width + ',height=' + height + ',resizable=yes,scrollbars=yes,menubar=yes,status=0,toolbar=no');
}

/* simulation of behaviour of radio buttons and check boxes
   not simulated yet: hovering */
function check(el) {
    var p;
    p = el.parentNode;
    
    if (p.className=='radio') {
        for ( var x = 0; p.childNodes[x]; x++ ) {
            if (p.childNodes[x] == el) {
                p.childNodes[x].className = 'ticked';
                /* now set the hidden field's value in the parent form */
                document.getElementsByName(el.parentNode.id)[0].value = p.childNodes[x].id;
            } else {
                p.childNodes[x].className = '';
            }
        }
    } else {
        alert('changing ' + el.id + '.checked');
        if (el.className=='checked') { 
            el.className=''; 
            document.getElementsByName(el.id)[0].checked = false;
        } else { 
            el.className='checked'; 
            document.getElementsByName(el.id)[0].checked = true;
        } 
    }
}

/* Attach the parseButtons handler to the onload event of the window. This is
   again a fix for Internet Explorer (6) that submits all buttons in a form
   where all browsers submit only the clicked button. Also this routine changes
   all SELECT objects by placing in a DIV to be able to set the border. */
function parseButtons() {
    if ((navigator.appName=="Microsoft Internet Explorer") && (parseFloat(navigator.appVersion)<7)) {
        // set the event handlers for the BUTTONs
        var bs = document.getElementsByTagName('button');
        for (var i=0; i<bs.length; i++) {
            if(bs[i].onclick) continue;

            bs[i].onclick = function () {
                for(j=0; j<this.form.elements.length; j++)
                    if( this.form.elements[j].tagName == 'BUTTON' )
                        this.form.elements[j].disabled = true;
                this.disabled=false;
            }
        }
    }
    // now wrap the SELECT tags
    var ss = document.all.tags('select');
    for (var i=0; i<ss.length; i++) {
        var s = ss[i];
        if ((s.size>1)||(s.multiple=='multiple')) {
            var p = s.parentNode;
            var d = document.createElement('div');
            d.style.borderWidth = 2;
            d.style.borderStyle = 'solid';
            d.style.borderColor = '#ffffff';
            d.style.position = 'relative';
            d.style.width = s.style.width;
            d.style.height = 240;
            d.style.overflow = 'hidden';
            p.insertBefore(d, s);
            d.appendChild(p.removeChild(s));
            s.style.position = 'relative';
            s.style.top = -2;
            s.style.left = -2;
        }
    }
}

function setFocus(obj) {
    obj.select();
    obj.focus();
}


function doOnLoad() {
    parseButtons();
}

