function collapseElement(display,elementId){
    var blockToCollapse = document.getElementById(elementId);
    if (display){
        blockToCollapse.style.display = 'block';
    } else{
        blockToCollapse.style.display = 'none';
    }
}
function switchRowColorOnHover(){
        var table = document.getElementsByTagName("table");
    for (var i=0; i<table.length; i++) {
        var row = table[i].getElementsByTagName("tr");
        for (var j=0; j<row.length; j++) {
            row[j].onmouseover=function() {
                if (this.className.search(new RegExp("back"))>=0) {
                    this.className+=" backHighlight";
                }
            }
            row[j].onmouseout=function(){
                this.className=this.className.replace(new RegExp(" backHighlight\\b"), "");
            }
        }
    }
}
function lockButtons(whichform){
    ua = new String(navigator.userAgent);
    if (ua.match(/IE/g)){
        for (i=1; i<whichform.elements.length; i++){
            if ((whichform.elements[i].type == 'submit') || (whichform.elements[i].type == 'button'))
                whichform.elements[i].disabled = true;
        }
    }
    whichform.submit();
}
function openWindow(){
    var newWin = null;
    var url = openWindow.arguments[0];
    nArgs = openWindow.arguments.length;
    var width = openWindow.arguments[1];
    var height = openWindow.arguments[2];
    if (nArgs > 1)
        newWin =  window.open ("","newWindow","toolbar=no,width=" + width + ",height=" + height + ",directories=no,status=no,scrollbars=yes,resizable=no,menubar=no");
    else
        newWin =  window.open ("","newWindow","toolbar=no,width=" + SGL_JS_WINWIDTH + ",height=" + SGL_JS_WINHEIGHT + ",directories=no,status=no,scrollbars=yes,resizable=no,menubar=no");
    newWin.location.href = url;
}
function confirmSubmit(item, formName){
    var evalFormName = eval('document.' + formName)
    var flag = false
    for (var count = 0; count < evalFormName.elements.length; count++) {
        var tipo = evalFormName.elements[count].type
        if (tipo == 'checkbox' && evalFormName.elements[count].checked == true && evalFormName.elements[count].name != '')
            flag = true
    }
    if (flag == false) {
        alert('You must select an element to delete')
        return false
    }
    var agree = confirm("Are you sure you want to delete this " + item + "?");
    if (agree)
        return true;
    else
        return false;
}
function confirmDelete(item, formName){
    var evalFormName = eval('document.' + formName)
    var flag = false
    var agree = confirm("Are you sure you want to delete this " + item + "?");
    if (agree)
        return true;
    else
        return false;
}
function confirmDeleteWithMsg(msg){
    var agree = confirm(msg);
    if(agree)
        return true;
    else
        return false;
}
function confirmSave(formName){
    var evalFormName = eval('document.' + formName)
    var flag = false
    for(var count = 0; count < evalFormName.elements.length; count++) {
        var tipo = evalFormName.elements[count].type
        if (tipo == 'checkbox' && evalFormName.elements[count].checked == true && evalFormName.elements[count].name != '')
            flag = true
    }
    if(flag == false){
        alert('You must select an element to save')
        return false
    }
}
function confirmSend(formName){
    var evalFormName = eval('document.' + formName)
    var flag = false
    for(var count = 0; count < evalFormName.elements.length; count++){
        var tipo = evalFormName.elements[count].type
        if (tipo == 'checkbox' && evalFormName.elements[count].checked == true && evalFormName.elements[count].name != '')
            flag = true
    }
    if (flag == false){
        alert('You must select at least one recipient')
        return false
    }
}
function confirmCategoryDelete(item){
    var agree = confirm("Are you sure you want to delete this " + item + "?");
    if (agree)
        return true;
    else
        return false;
}
function verifySelectionMade(){
    var moveForm = document.moveCategory.frmNewCatParentID
    var selectedCat = moveForm.value
    if(selectedCat == '') {
        alert('Please select a new parent category')
        return false;
    } else
        return true;
}
function checkInput(formName, fieldName){
    var f = eval('document.' + formName + '.' + fieldName)
    if (f.value == '') {
        alert('Please enter a value in the field before submitting');
        return false;
    } else
        return true;
}
function getSelectedValue(selectObj){
    return (selectObj.options[selectObj.selectedIndex].value);
}
function toggleDisplay(myElement){
        boxElement = document.getElementById(myElement);

        if (boxElement.style.display == 'none') {
                boxElement.style.display = 'block';
        } else {
                boxElement.style.display = 'none';
        }
}
function confirmCustom(alertText, confirmText, formName){
    var evalFormName = eval('document.' + formName)
    var flag = false
    for (var count = 0; count < evalFormName.elements.length; count++) {
        var tipo = evalFormName.elements[count].type
        if (tipo == 'checkbox' && evalFormName.elements[count].checked == true && evalFormName.elements[count].name != '')
            flag = true
    }
    if(flag == false){
        alert(alertText)
        return false
    }
    var agree = confirm(confirmText);
    if(agree)
        return true;
    else
        return false;
}
var oldDate;
oldDate = new Array();
function time_select_reset(prefix, changeBack) {
    function setEmpty(id) {
        if (dateSelector = document.getElementById(id)) {
            oldDate = dateSelector.value;
            dateSelectorToShow = document.getElementById("frmExpiryDateToShow");
            oldDateToShow = dateSelectorToShow.innerHTML;
            if (dateSelector.value != ''){
                dateSelector.value = '';
                dateSelectorToShow.innerHTML = '';
            }
        }
    }
    function setActive(id) {
        if (dateSelector = document.getElementById(id)) {
            dateSelector.value = oldDate;
            dateSelectorToShow.innerHTML = oldDateToShow;
        }
    }
    if (document.getElementById(prefix+'NoExpire').checked) {
        setEmpty('frmExpiryDate');
    } else {
        if (changeBack == true) {
            setActive('frmExpiryDate');
        }
    }
}
function async_load(){
    var node;
    try {
        node = top._asyncDom;
        node.removeChild(node.getElementsByTagName("script")[0]);
    } catch (e) {
    }
    try {
        document.getElementById("async_demo").appendChild(node);
    } catch (e) {
        try {
            document.getElementById("async_demo").innerHTML = node.innerHTML;
        } catch (e1) {};
    }
}
function makeUrl(params){
    var rslt = SGL_JS_WEBROOT + '/' + SGL_JS_FRONT_CONTROLLER;
    var moduleName  =  (params.module) ? params.module : '';
    var managerName =  (params.manager) ? params.manager : moduleName;
    switch (SGL_JS_URL_STRATEGY) {
    case 'SGL_UrlParser_ClassicStrategy':
        if (rslt.charAt(rslt.length - 1) != '?') {
          rslt = rslt + '?';
        }
        rslt = rslt + 'moduleName=' + escape(moduleName) + '&managerName=' + escape(managerName) + '&';
        for (x in params) {
            if ((x == 'module') || (x =='manager')) {
                continue;
            }
            rslt = rslt + escape(x) + '=' + escape(params[x]) + '&';
        }
        break;
    default:
        rslt = rslt + '/' + escape(moduleName) + '/' + escape(managerName) + '/';
        for (x in params) {
            if ((x == 'module') || (x =='manager')) {
                continue;
            }
            rslt = rslt + escape(x) + '/' + escape(params[x]) + '/';
        }
        break;
    }
    return rslt;
}
function setCheckboxes(the_form, element_name, do_check){
    var elts      = (typeof(document.forms[the_form].elements[element_name]) != 'undefined')
                  ? document.forms[the_form].elements[element_name]
                  : '';
    var elts_cnt  = (typeof(elts.length) != 'undefined')
                  ? elts.length
                  : 0;
    if (elts_cnt) {
        for (var i = 0; i < elts_cnt; i++) {
            elts[i].checked = do_check;
        }
    } else if (element_name == false) {
        var f = document.forms[the_form];
        for (var c = 0; c < f.elements.length; c++)
        if (f.elements[c].type == 'checkbox') {
          f.elements[c].checked = do_check;
        }
    } else {
        elts.checked        = do_check;
    }
    return true;
}
function applyToAllCheckboxes(formName, elementName, isChecked){
    if (isChecked) {
        setCheckboxes(formName, elementName, true)
    } else {
        setCheckboxes(formName, elementName, false)
    }
}
function toggleSelected(elem, state){
        var i;
        for (i = 0; i< elem.length; i++) {
                elem[i].selected = state;
        }
}

var sgl = {
    isReady: false,
    ready: function(f) {
        if (sgl.isReady) {
            if (typeof f == 'string') {
                eval(f);
            } else if (typeof f == 'function') {
                f.apply(document);
            }
        } else {
            sgl.onReadyDomEvents.push(f);
        }
    },
    onReadyDomEvents: [],
    onReadyDom: function() {
        if (!sgl.isReady) {
            sgl.isReady = true;
            if (sgl.onReadyDomEvents) {
                for (var i = 0, j = sgl.onReadyDomEvents.length; i < j; i++) {
                    if (typeof sgl.onReadyDomEvents[i] == 'string') {
                        eval(sgl.onReadyDomEvents[i]);
                    } else if (typeof sgl.onReadyDomEvents[i] == 'function') {
                        sgl.onReadyDomEvents[i].apply(document);
                    }
                }
                sgl.onReadyDomEvents = null;
            }
        }
    }
};
new function() {
    if (document.addEventListener) {
        document.addEventListener("DOMContentLoaded", sgl.onReadyDom, false);
    }
    if (/WebKit/i.test(navigator.userAgent)) {
        sgl.webkitTimer = setInterval(function() {
            if (/loaded|complete/.test(document.readyState)) {
                clearInterval(sgl.webkitTimer);
                sgl.webkitTimer = null;
                sgl.onReadyDom();
            }
        }, 10);
    }
    oldWindowOnload = window.onload || null;
    window.onload = function() {
        if (oldWindowOnload) {
            oldWindowOnload();
        }
        sgl.onReadyDom();
    }
}
