var ie4 = document.all
var ns6 = document.getElementById && !document.all

function confirmLink(_title, _link){
    if (confirm(_title)) {
        location.href = _link;
    }
}

function nc_event(evt){
    return (evt) ? evt : ((window.event) ? event : null);
}

function nc_cancel(evt){
    evt.returnValue = false;
    evt.cancelBubble = true;
    if (evt.preventDefault) {
        evt.preventDefault();
    }
    if (evt.stopPropagation) {
        evt.stopPropagation();
    }
}

function evt_cancel(evt){
    evt = nc_event(evt);
    if (evt) 
        nc_cancel(evt);
    return false;
}

function nc_add_handler(element, event_type, func){
    if (element.attachEvent) { // IE
        element.attachEvent('on' + event_type, func);
    }
    else 
        if (element.addEventListener) { // W3C
            element.addEventListener(event_type, func, false);
        }
        else { // should not happen
            element['on' + event_type] = func;
        }
}

function nc_remove_handler(element, event_type, func){
    if (element.detachEvent) { // IE
        element.detachEvent('on' + event_type, func);
    }
    else 
        if (element.removeEventListener) { // W3C
            element.removeEventListener(event_type, func, false);
        }
        else { // should not happen
            element['on' + event_type] = null;
        }
}

function add_class(element, class_name){
    if (element && element.className.indexOf(class_name) == -1) 
        element.className += " " + class_name;
}

function remove_class(element, class_name){
    if (!element) 
        return;
    element.className = element.className.replace(class_name, "");
}

function adv_getbyid(id){
    itm = null;
    if (document.getElementById) {
        itm = document.getElementById(id);
    }
    else 
        if (document.all) {
            itm = document.all[id];
        }
        else 
            if (document.layers) {
                itm = document.layers[id];
            }
    return itm;
}

function div_hide(id){
    if (!id) 
        return;
    itm = adv_getbyid(id);
    itm.style.display = "none";
}

function inlinediv(obj, ddobj){
    ajobj = adv_getbyid(ddobj);
    if (ie4 || ns6) {
        ajobj.style.display = "";
        ajobj.x = getposOffset(obj, "left");
        ajobj.y = getposOffset(obj, "top");
    }
}

function ajwin_hide(ajwin){
    div_hide(ajwin);
}

function ajwin_show(obj, ajwin){
    inlinediv(obj, ajwin);
}

/**
 * inpage Tabs
 */
function ClearPages(){
    for (var i = 0; i < tabpagescount; i++) {
        pg = adv_getbyid('page' + i);
        pg.style.display = "none";
        tb = adv_getbyid('tab' + i);
        remove_class(tb, 'selected');
    }
}

function SelectPage(i){
    ClearPages();
    pg = adv_getbyid('page' + i);
    tb = adv_getbyid('tab' + i);
    pg.style.display = "block";
    add_class(tb, 'selected');
}

function SWHide(elem){
    tml = document.getElementById(elem)
    if (tml.style.display == "none") {
        tml.style.display = "block";
    }
    else {
        tml.style.display = "none";
    }
}

function RecalcSelected(id, chname, formname){
    checkboxes = document.forms[formname].elements[chname];
    if (!checkboxes) 
        return;
    var items = checkboxes.length ? checkboxes : [checkboxes];
    ccount = 0;
    for (var i = 0; i < items.length; i++) {
        if (items[i].checked) {
            ccount++;
        }
    }
    hcc = document.getElementById("htcount" + id);
    hcc.innerHTML = '(' + ccount + ')';
}

function ShowHideHB(id, chname, formname){
    obj = document.getElementById('ht' + id);
    ddobj = document.getElementById('hc' + id);
    ddobj.left = obj.left;
    ddobj.top = obj.top + 21;
    if (ddobj.style.display == "block") {
        ddobj.style.display = "none";
        if (document.getElementById("topBanner")) {
            document.getElementById("topBanner").style.visibility = 'visible';
        }
        RecalcSelected(id, chname + '[]', formname);
    }
    else {
        if (document.getElementById("topBanner")) {
            document.getElementById("topBanner").style.visibility = 'hidden';
        }
        ddobj.style.display = "block";
    }
}

function checklist_install(checkboxes, check_all){
    if (!checkboxes) 
        return;
    var items = checkboxes.length ? checkboxes : [checkboxes];
    if (check_all) 
        nc_add_handler(check_all, 'click', function(){
            for (var i = 0; i < items.length; i++) 
                items[i].checked = check_all.checked;
        });
    items[0].prev_click = 0;
    for (var i = 0; i < items.length; i++) {
        items[i].index = i;
        nc_add_handler(items[i], 'click', function(evt){
            var evt = nc_event(evt);
            var item = evt.target || evt.srcElement;
            var cur_click = item.index;
            if (evt) {
                if (evt.shiftKey) {
                    var from = items[0].prev_click, to = cur_click;
                    if (from > to) {
                        to = from;
                        from = cur_click;
                    }
                    for (var i = from; i <= to; ++i) {
                        items[i].checked = item.checked;
                    }
                }
            }
            items[0].prev_click = cur_click;
            if (check_all) {
                check_all.checked = true;
                for (var i = 0; i < items.length; i++) {
                    if (!items[i].checked) {
                        check_all.checked = false;
                        break;
                    }
                }
            }
        });
    }
}

function checklist_any(checkboxes){
    if (!checkboxes) 
        return false;
    var items = checkboxes.length ? checkboxes : [checkboxes];
    for (var i = 0; i < items.length; ++i) 
        if (items[i].checked) 
            return true;
    return false;
}

// AJAX call
function get_http(){
    var xmlhttp;
    /*
     * @cc_on @if (@_jscript_version >= 5) try { xmlhttp = new
     * ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlhttp = new
     * ActiveXObject("Microsoft.XMLHTTP"); } catch (E) { xmlhttp = false; } }
     * @else xmlhttp = false; @end @
     */
    if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
        try {
            xmlhttp = new XMLHttpRequest();
        } 
        catch (e) {
            xmlhttp = false;
        }
    }
    return xmlhttp;
}

function SetSearchExample(s, e){
    if (window.event) 
        event.cancelBubble = true
    else 
        if (e.stopPropagation) 
            e.stopPropagation();
    
    sval = document.forms['rootParams'].elements['s'];
    sval.value = s;
}

function show_message(dhref, w, h){
    x = Math.round((screen.height / 2) - (h / 2));
    y = Math.round((screen.width / 2) - (w / 2));
    
    newWindow = window.open(dhref, "wMessage", "width=" + w + ",height=" + h +
    ",resizable=no,scrollbars=no,top=" +
    x +
    ",left=" +
    y);
    newWindow.focus();
}

function navHover(){
    var uls = document.getElementsByTagName("ul");
    for (var k = 0; k < uls.length; k++) {
        elt = uls[k];
        if (elt.className.indexOf("navmenu") != -1) {
            var lis = elt.getElementsByTagName("LI");
            for (var i = 0; i < lis.length; i++) {
                lis[i].onmouseover = function(){
                    add_class(this, "iehover");
                }
                lis[i].onmouseout = function(){
                    remove_class(this, "iehover");
                }
            }
        }
    }
}

nc_add_handler(window, "load", navHover);

// idea from: http://www.alistapart.com/articles/zebratables
function zebra_table(){
    var uls = document.getElementsByTagName("table");
    for (var k = 0; k < uls.length; k++) {
        elt = uls[k];
        even = false;
        if (elt.className.indexOf("zebra") != -1) {
            var tbodies = elt.getElementsByTagName("tbody");
            for (var h = 0; h < tbodies.length; h++) {
                var trs = tbodies[h].getElementsByTagName("tr");
                
                for (var i = 0; i < trs.length; i++) {
                    tds = trs[i].getElementsByTagName("td");
                    for (var f = 0; f < tds.length; f++) {
                        if (even) {
                            add_class(tds[f], 'dark');
                        }
                        else {
                            add_class(tds[f], 'light');
                        }
                    }
                    trs[i].onmouseover = function(){
                        add_class(this, 'highlight');
                    };
                    trs[i].onmouseout = function(){
                        remove_class(this, 'highlight');
                    };
                    even = !even;
                }
            }
        }
    }
}

nc_add_handler(window, "load", zebra_table);




function getCookie(name){
    var elems = document.cookie.split(';');
    for (var i = 0; i < elems.length; i++) {
        var arr = elems[i].split('=');
        if (arr[0] == name) 
            return arr[1];
    }
    return null;
}

function setCookie(name, value, expires, path, domain, secure){
    document.cookie = name + "=" + escape(value) +
    ((expires) ? "; expires=" + expires.toGMTString() : "") +
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    ((secure) ? "; secure" : "");
}