function $(id) {
    return document.getElementById(id);
}

function setClass(obj, cl) {
    if (obj != null && obj.className != cl) {
        obj.className = cl;
    }
}

function makeGray(obj, state, text) {
    if (state && (obj.value == '')) {
        obj.value = text;
    } else if (!state && (obj.value == text)) {
        obj.value = '';
    }
}

function changeFaqDisplayStyleById(id) {
    time = new Date();
    time.setTime(new Date().getTime() + 30 * 24 * 60 * 60 * 1000);
    var obj = document.getElementById(id);
    if (getCookie('HelpArticle' + id) != null) {
        if (getCookie(id) == 'none') {
            obj.style.display = '';
            setCookie('HelpArticle' + id, ' ', time, '/', null, null);
        }
        else {
            obj.style.display = 'none';
            setCookie('HelpArticle' + id, 'none', time, '/', null, null);
        }
    }
    else {
        if (obj.style.display == 'none') {
            obj.style.display = '';
            setCookie('HelpArticle' + id, ' ', time, '/', null, null);
        }
        else {
            obj.style.display = 'none';
            setCookie('HelpArticle' + id, 'none', time, '/', null, null);
        }
    }
    var obj1 = document.getElementById(id);
    var obj2 = document.getElementById(id);
}





function changeDisplayStyleById(id) {
    var obj = document.getElementById(id);
    if (obj) {
        if (obj.style.display == 'none')
            obj.style.display = '';
        else
            obj.style.display = 'none';
    }
}

function changeDisplayById(objId) {
    for (c = 0; c < changeDisplayById.arguments.length; c++) {
        obj = document.getElementById(changeDisplayById.arguments[c]);
        if (obj.style.display == 'none') obj.style.display = 'block';
        else obj.style.display = 'none';
    }
}

function gotoURL(url, target, callback) {

    if (!url) url = "/";

    if (typeof callback == "function")
        callback(url);

    if (target && target != '_self') {
        popupURL(url, target);
    }
    else {
        if (window.event) {
            var src = window.event.srcElement;
            if ((src.tagName != 'A') && ((src.tagName != 'IMG') || (src.parentElement.tagName != 'A'))) {
                if (window.event.shiftKey) window.open(url);
                else document.location = url;
            }
        } else document.location = url;
    }
}


function popupURL(url, options) {
    window.open(url, 'CoolWindow', options);
}

function getLeftPos(obj) {
    var res = 0;
    while (obj) {
        res += obj.offsetLeft;
        obj = obj.offsetParent;
    }
    return res;
}

function getTopPos(obj) {
    var res = 0;
    while (obj) {
        res += obj.offsetTop;
        obj = obj.offsetParent;
    }
    return res;
}

function CheckAll(formObj, checkName, checkVal) {
    var el = formObj.elements;
    for (count = 0; count < el.length; count++)
        if (el[count].name == checkName + '[]')
        if (!el[count].disabled) el[count].checked = checkVal;
}

function ExamAll(formObj, checkName, resName) {
    var checkCount = 0;
    var boxCount = 0;
    var el = formObj.elements;
    for (count = 0; count < el.length; count++)
        if (el[count].name == checkName + '[]') {
        boxCount++;
        if (el[count].checked || el[count].disabled) checkCount++;
    }
    formObj.elements[resName].checked = (checkCount == boxCount);
}

function CheckAll(checkName, checkVal) {
    var checkCount = 0;
    var el = document.forms[0].elements;
    for (count = 0; count < el.length; count++) {
        if (el[count].name == checkName) {
            if (!el[count].disabled) {
                el[count].checked = checkVal;
            }
            checkCount++;
        }
    }
}

function ExamAll(checkName, resName) {
    var checkCount = 0;
    var boxCount = 0;
    var el = document.forms[0].elements;

    for (count = 0; count < el.length; count++) {
        if (el[count].name == checkName) {
            boxCount++;
            if (el[count].checked || el[count].disabled) checkCount++;
        }
    }

    if (document.forms[0].elements[resName])
        document.forms[0].elements[resName].checked = (checkCount == boxCount);
}

function checkAllByPrefix(checkName, checkVal, itemsToDeleteName, itemTitleNamePrefix, itemsToDeleteDelimeter) {
    var checkCount = 0;
    var el = document.forms[0].elements;
    document.forms[0].elements[itemsToDeleteName].value = '';
    for (count = 0; count < el.length; count++) {
        if (el[count].name != null && el[count].name != '' && el[count].name.indexOf(checkName) == 0) {
            if (!el[count].disabled) {
                el[count].checked = checkVal;
            }
            checkCount++;
        }
        if (el[count].name != null && el[count].name != '' && el[count].name.indexOf(itemTitleNamePrefix) == 0) {
            if (checkVal) {
                document.forms[0].elements[itemsToDeleteName].value = addStringToSequance(document.forms[0].elements[itemsToDeleteName].value, el[count].value, itemsToDeleteDelimeter);
            }
        }
    }
}

function checkByPrefix(checkName, checkAllName, itemsToDeleteName, chechedItem, itemTitleName, itemsToDeleteDelimeter) {
    var checkCount = 0;
    var boxCount = 0;
    var el = document.forms[0].elements;

    for (count = 0; count < el.length; count++) {
        if (el[count].name != null && el[count].name.trim() != '' && el[count].name.indexOf(checkName) == 0) {
            boxCount++;
            if (el[count].checked || el[count].disabled) {
                checkCount++;
            }
        }
    }

    if (document.forms[0].elements[checkAllName]) {
        document.forms[0].elements[checkAllName].checked = (checkCount == boxCount);
    }

    if (checkCount == 0) {
        document.forms[0].elements[itemsToDeleteName].value = '';
    }
    else {
        if (chechedItem.checked) {
            document.forms[0].elements[itemsToDeleteName].value = addStringToSequance(document.forms[0].elements[itemsToDeleteName].value, document.forms[0].elements[itemTitleName].value, itemsToDeleteDelimeter);
        }
        else {
            document.forms[0].elements[itemsToDeleteName].value = removeStringFromSequance(document.forms[0].elements[itemsToDeleteName].value, document.forms[0].elements[itemTitleName].value, itemsToDeleteDelimeter);
        }
    }

    checkAllChild(chechedItem.id, chechedItem.checked, itemsToDeleteName, itemsToDeleteDelimeter);
}

function CheckedDayItem(checkName, checkVal, checkPostfix) {
    var el = document.forms[0].elements;
    for (count = 0; count < el.length; count++) {
        if (el[count].name != null && el[count].name != '' && el[count].name.indexOf(checkName) == 0 && el[count].name.indexOf(checkPostfix) > 0) {
            if (!el[count].disabled) {
                el[count].checked = checkVal;
            }
        }
    }

}

function treeExpand(namingPrefix, id_item) {
    var e = document.getElementById(namingPrefix + 'r_' + id_item);
    var state = document.getElementById(namingPrefix + 'node_state_' + id_item);
    var anc = document.getElementById(namingPrefix + 'a_' + id_item);
    if (e != null) {
        if (e.style.display != 'block') {
            e.style.display = 'block';
            if (anc != null) {
                anc.src = anc.src.replace('plus', 'minus');
                anc.alt = ' - ';
            }
            if (state != null) {
                state.value = '1';
            }
        } else {
            e.style.display = 'none';
            if (anc != null) {
                anc.src = anc.src.replace('minus', 'plus');
                anc.alt = '+';
            }
            if (state != null) {
                state.value = '0';
            }
        }
    }
}


function removeStringFromSequance(sequance, value, delimiter) {
    result = '';
    valuesSet = sequance.split(delimiter);
    for (i = 0; i < valuesSet.length; i++) {
        if (valuesSet[i] != value) {
            result = addStringToSequance(result, valuesSet[i], delimiter);
        }
    }
    return result;
}

function addStringToSequance(sequance, value, delimiter) {
    if (sequance == null || sequance == '') {
        sequance = value;
    }
    else {
        sequance += delimiter + value;
    }
    return sequance;
}

function chbIsAllEmpty(formObj, checkName) {
    var checkCount = 0;
    var boxCount = 0;
    var el = formObj.elements;
    for (count = 0; count < el.length; count++)
        if (el[count].name == checkName + '[]') {
        boxCount++;
        if (el[count].checked) checkCount++;
    }
    return (checkCount == 0);
}

function chbIsOnlyOne(formObj, checkName) {
    var checkCount = 0;
    var boxCount = 0;
    var el = formObj.elements;
    for (count = 0; count < el.length; count++) {
        if (el[count].name == checkName + '[]') {
            boxCount++;
            if (el[count].checked) checkCount++;
        }
    }
    return (checkCount == 1);
}

function disableAll() {
    for (c1 = 0; c1 < document.forms.length; c1++) {
        var formElements = document.forms[c1].elements;
        for (c2 = 0; c2 < formElements.length; c2++) formElements[c2].disabled = true;
    }
}

// name - cookie name
// value - cookie value
// [expires] - Date object (by default cookie expires at the end of browser session)
// [path]
// [domain]
// [secure]
function setCookie(name, value, expires, path, domain, secure) {
    var curCookie = name + "=" + escape(value) +
                ((expires) ? "; expires=" + expires.toGMTString() : "") +
                ((path) ? "; path=" + path : "") +
                ((domain) ? "; domain=" + domain : "") +
                ((secure) ? "; secure" : "")

    if ((name + "=" + escape(value)).length <= 4000)
        document.cookie = curCookie
}

// name - cookie name
function getCookie(name) {
    var prefix = name + "="
    var cookieStartIndex = document.cookie.indexOf(prefix)
    if (cookieStartIndex == -1)
        return null
    var cookieEndIndex = document.cookie.indexOf(";", cookieStartIndex + prefix.length)
    if (cookieEndIndex == -1)
        cookieEndIndex = document.cookie.length
    return unescape(document.cookie.substring(cookieStartIndex + prefix.length, cookieEndIndex))
}

// name - cookie name
// [path]
// [domain]
function deleteCookie(name, path, domain) {
    if (getCookie(name)) {
        document.cookie = name + "=" +
                ((path) ? "; path=" + path : "") +
                ((domain) ? "; domain=" + domain : "") +
                "; expires=Thu, 01-Jan-70 00:00:01 GMT"
    }
}


function preLoad() {
    if (document.images) {
        var argLen = arguments.length;
        for (var i = 0; i < argLen; i++) {
            var arg = arguments[i];
            self[arg] = new Image();
            self[arg].src = arg;
        }
    }
}

function ch_img(obj, img) {
    if (self[img]) {
        obj.src = self[img].src;
    }
}

function mm_act(obj, img, cl, num, selected) {

    if (cl == 'item act')
        showMenu(obj, num);
    else
        hideMenu(obj, num);

    if (selected) return;

    while (obj) {
        obj = obj.childNodes[0];
        if (obj && obj.tagName == 'IMG') {
            ch_img(obj, img);
            break;
        }
    }

    while (obj && cl != '') {
        obj = obj.parentNode;
        if (obj && obj.tagName == 'DIV') {
            obj.className = cl;
            break;
        }
    }
}

function popup_view_image(url, w, h, wname) {
    scr_left = 0;
    scr_top = 0;
    w *= 1.4;
    h *= 1.4;
    wname = wname;
    new_window = window.open(url, wname, "title=image,location=no,menubar=no,resizable=no,scrollbars=yes,status=no,toolbar=no,width=" + w + ",height=" + h + ",top=" + scr_top + ",left=" + scr_left);
    new_window.focus();
    return new_window;
}

function popup_view(url, w, h, wname) {
    scr_left = 0;
    scr_top = 0;
    wname = wname;
    new_window = window.open(url, wname, "title=image,location=no,menubar=no,resizable=no,scrollbars=yes,status=no,toolbar=no,width=" + w + ",height=" + h + ",top=" + scr_top + ",left=" + scr_left);
    new_window.focus();
    return new_window;
}

function openPopupWithARgs(url, w, h, wname, openArgs) {
    scr_left = 0;
    scr_top = 0;
    new_window = window.open(url, wname, "title=image,location=no,menubar=no,resizable=no,scrollbars=yes,status=no,toolbar=no,width=" + w + ",height=" + h + ",top=" + scr_top + ",left=" + scr_left);
    window.setTimeout(function() {
        try {
            new_window.setOpenArgs(openArgs);
        }
        catch (e) {
            new_window.close();
        }
    }, 3000);
    new_window.focus();
    return new_window;
}

function LTrim(str) {
    var whitespace = new String(" \t\n\r");
    var s = new String(str);
    if (whitespace.indexOf(s.charAt(0)) != -1) {
        var j = 0, i = s.length;
        while (j < i && whitespace.indexOf(s.charAt(j)) != -1)
            j++;
        s = s.substring(j, i);
    }

    return s;
}

function RTrim(str) {
    var whitespace = new String(" \t\n\r");

    var s = new String(str);

    if (whitespace.indexOf(s.charAt(s.length - 1)) != -1) {

        var i = s.length - 1;
        while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
            i--;
        s = s.substring(0, i + 1);
    }

    return s;
}

function Trim(str) {
    return RTrim(LTrim(str));
}

function headerKeydown(Url, Header) {
    var reg = /[\x21-\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5e\x60\x7b\x7d\xa3]/ig;
    var regAnd = /&/ig;
    var regS = /[\s\x2f]/ig;

    var val = Trim(Header.value.toLowerCase()).replace(reg, "").replace(regAnd, "and").replace(regS, "-").replace(/\x2D{2,}/ig, '-');

    //Url.value = (val.length > 0) ? val + ".aspx" : "";
    Url.value = val;
}

function headerKeydownCMS(Url, Header, Postfix) {
    var reg = /[\x21-\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5e\x60\x7b\x7d\xa3]/ig;
    var regAnd = /&/ig;
    var regS = /[\s\x2f]/ig;

    var val = Trim(Header.value.toLowerCase()).replace(reg, "").replace(regAnd, "and").replace(regS, "-").replace(/\x2D{2,}/ig, '-');

    //Url.value = (val.length > 0) ? val + ".aspx" : "";
    Url.value = val + Postfix;
}
function checkSelection(checkName) {
    var checkCount = 0;
    var el = document.forms[0].elements;
    for (count = 0; count < el.length; count++) {
        if (el[count].name != null && el[count].name.indexOf(checkName) == 0) {
            //if (!el[count].disabled)
            {
                if (el[count].checked) {
                    checkCount++;
                }
            }
        }
    }
    if (checkCount == 0) {
        alert('You must check any item!');
    }
    return checkCount;
}

function deleteConfirmation(checkName, entityTitle, itemsToDeleteFieldID) {
    var checkCount = checkSelection(checkName);
    if (checkCount == 0) {
        return false;
    }
    conrimationMessage = 'You are trying to delete selected item(s). \n\nAre you sure you wish to continue?'
    if (checkCount > 1) {
        conrimationMessage = 'You are trying to delete multiple ' + entityTitle + ' records. \n\nAre you sure you wish to continue?';
    }
    else {
        itemsToDeleteField = document.getElementById(itemsToDeleteFieldID);
        if (itemsToDeleteField != null) {
            conrimationMessage = 'You are trying to delete the ' + entityTitle + ' \'' + itemsToDeleteField.value + '\'. \n\nAre you sure you wish to continue?';
        }
    }
    if (!confirm(conrimationMessage)) {
        return false;
    }
    else {
        return true;
    }
}

var checkedCount = 0;

function updateCheckedCount(checkBox) {
    if (checkBox.checked) {
        checkedCount += 1;
    }
    else {
        checkedCount -= 1;
    }
}

var allCheckedChildren = null;

function checkAllChild(id, checked, itemsToDeleteName, itemsToDeleteDelimeter) {
    var cell = document.getElementById('subItems' + id);
    if (cell != null) {
        checkChild(cell, checked, itemsToDeleteName, itemsToDeleteDelimeter);
    }
}

function checkChild(element, checked, itemsToDeleteName, itemsToDeleteDelimeter) {
    if (element.tagName != 'TABLE' && element.tagName != 'TBODY' && element.tagName != 'TR' && element.tagName != 'TD' && element.tagName != 'DIV') {
        return;
    }
    if (element.childNodes != null) {
        var i = 0;
        for (i = 0; i < element.childNodes.length; i++) {
            if (element.childNodes[i].type == 'checkbox') {
                lastCheckState = element.childNodes[i].checked;
                element.childNodes[i].checked = checked;
                element.childNodes[i].disabled = checked;
                if (element.childNodes[i - 1].type == 'hidden' && lastCheckState != checked) {
                    itemTitle = element.childNodes[i - 1].value;
                    if (checked) {
                        document.forms[0].elements[itemsToDeleteName].value = addStringToSequance(document.forms[0].elements[itemsToDeleteName].value, itemTitle, itemsToDeleteDelimeter);
                    }
                    else {
                        document.forms[0].elements[itemsToDeleteName].value = removeStringFromSequance(document.forms[0].elements[itemsToDeleteName].value, itemTitle, itemsToDeleteDelimeter);
                    }
                }
            }
            checkChild(element.childNodes[i], checked, itemsToDeleteName, itemsToDeleteDelimeter);
        }
    }
}

function isIE() {
    return (navigator.userAgent.indexOf('MSIE') != -1 && navigator.userAgent.indexOf('Opera') == -1);
}

function isOpera() {
    return (navigator.userAgent.indexOf('Opera') != -1);
}

function isFirefox() {
    return (navigator.userAgent.indexOf('Firefox') != -1 && navigator.userAgent.indexOf('Opera') == -1);
}

function isMozila() {
    return (navigator.userAgent.indexOf('Mozila') != -1 && navigator.userAgent.indexOf('Opera') == -1 && navigator.userAgent.indexOf('MSIE') == -1);
}

//  var editorInstance = FCKeditorAPI.GetInstance(textAreaId) ; 
//  if (editorInstance != null) {
//    editorInstance.Events.AttachEvent( 'OnFocus', fckEditorOnFocus ) ;
//  }  

function removeFile(UploadRowId, PreviewRowId, StateId) {
    uploadRow = document.getElementById(UploadRowId);
    previewRow = document.getElementById(PreviewRowId);
    stateField = document.getElementById(StateId);
    if (uploadRow == null || previewRow == null || stateField == null) {
        return;
    }
    uploadRow.style.display = '';
    previewRow.style.display = 'none';
    stateField.value = 'True';
}

function findLink(parentElement, text) {
    if (parentElement.childNodes != null) {
        var i = 0;
        for (i = 0; i < parentElement.childNodes.length; i++) {
            if (parentElement.childNodes[i].tagName == 'A' && parentElement.childNodes[i].innerHTML == text) {
                return parentElement.childNodes[i];
            }
            else {
                result = findLink(parentElement.childNodes[i], text);
                if (result != null) {
                    return result;
                }
            }
        }
        return null;
    }
}

function changeTreeNodeVisibility(linkElement, visibile) {
    if (linkElement == null) {
        return;
    }
    temp = linkElement;
    while (temp != null && temp.tagName != 'TABLE') {
        temp = temp.parentNode;
    }
    if (temp != null) {
        if (visibile) {
            temp.style.display = '';
        }
        else {
            temp.style.display = 'none';
        }
    }
}

function hideElement(id) {
    hidedEelement = document.getElementById(id);
    if (hidedEelement != null) {
        hidedEelement.style.display = 'none';
    }
}


function doCustomPostBack(controlID, eventArgs) {
    document.getElementById('CustomPostBackEventArgs').value = eventArgs;
    __doPostBack(controlID, '');
}

function doAjaxControlPostBack(containerID, controlID, eventArgs) {
    document.getElementById('CustomPostBackEventArgs' + containerID).value = eventArgs;
    __doPostBack(controlID, '');
}

function initLoadingHint() {
    Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(showLoadingHint);
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(hideLoadingHint);
}


function showLoadingHint() {
    setClass(document.getElementById('LoadingHint'), 'PreloaderImageActive');
    loadingHintBackground = document.getElementById('LoadingBackground');
    if (loadingHintBackground != null) {
        loadingHintBackground.style.display = '';
        loadingHintBackground.style.width = document.body.offsetWidth + 'px';
        loadingHintBackground.style.height = document.body.offsetHeight + 'px';
        loadingHintBackground.width = 10;
        loadingHintBackground.height = 10;
    }
}

var goOnPageTop = false;

function hideLoadingHint() {
    if (goOnPageTop) {
        window.setTimeout(function() {
            try {
                scroll(0, 0);
            }
            catch (e) {
                new_window.close();
            }
        }, 1000);
        goOnPageTop = false;
    }
    setClass(document.getElementById('LoadingHint'), 'PreloaderImageInactive');
    loadingHintBackground = document.getElementById('LoadingBackground');
    if (loadingHintBackground != null) {
        loadingHintBackground.style.display = 'none';
        loadingHintBackground.style.width = '0px';
        loadingHintBackground.style.height = '0px';
    }
}

function keyUpHandler(eventArgs, containerID, controlID, postBackEventArgs) {
    key = eventArgs.which;
    if (key == 13) {
        doAjaxControlPostBack(containerID, controlID, postBackEventArgs);
        return false;
    }
    return true;
}

function MyClass() {
    this.UpdateEditorFormValue = function() {
        for (i = 0; i < parent.frames.length; ++i)
            if (parent.frames[i].FCK)
            parent.frames[i].FCK.UpdateLinkedField();
    }
    this.UpdateEditorFormValueParent = function(site) {
        for (i = 0; i < site.parent.frames.length; ++i) {
            if (site.parent.frames[i].FCK) {
                site.parent.frames[i].FCK.UpdateLinkedField();
            }
        }
    }
}

var MyObject = new MyClass();

function setRelatedPosition(parentControlID, controlID) {
    parentControl = document.getElementById(parentControlID);
    control = document.getElementById(controlID);
    if (control != null && parentControl != null) {
        leftOffset = control.offsetWidth + 180;
        topOffset = 0;
        control.style.left = control.offsetLeft + leftOffset + 'px';
        control.style.top = control.offsetTop + topOffset + 'px';
    }
}

function switchEditors(editorDivID, sType) {
    oNode = document.getElementById(editorDivID);
    if (oNode != null) {
        var i = 0;
        for (i = 0; i < oNode.childNodes.length; i++) {
            childNode = oNode.childNodes.item(i);
            editor = FCKeditorAPI.GetInstance(childNode.name);
            if (editor && editor.EditorDocument && editor.EditMode == FCK_EDITMODE_WYSIWYG) {
                editor.EditorDocument.designMode = sType;
            }
            switchElementEditors(childNode, sType);
        }
    }
}

function switchElementEditors(oNode, sType) {
    var i = 0;
    for (i = 0; i < oNode.childNodes.length; i++) {
        childNode = oNode.childNodes.item(i);
        editor = FCKeditorAPI.GetInstance(childNode.name);
        if (editor && editor.EditorDocument && editor.EditMode == FCK_EDITMODE_WYSIWYG) {
            editor.EditorDocument.designMode = sType;
        }
        switchElementEditors(childNode, sType);
    }
}

function changeFileUploadImage(fileName, uploadClientID, imagePreviewID, uploadButtonID, deleteButtonID, hiddenFieldID, imageBaseDirectory) {
    previewImage = document.getElementById(uploadClientID + imagePreviewID);
    uploadButton = document.getElementById(uploadClientID + uploadButtonID);
    deleteButton = document.getElementById(uploadClientID + deleteButtonID);
    fileNameHiddenField = document.getElementById(uploadClientID + hiddenFieldID);
    if (previewImage != null && uploadButton != null && deleteButton != null && fileNameHiddenField != null) {
        fileNameHiddenField.value = fileName;
        previewImage.src = imageBaseDirectory + fileName;
        uploadButton.style.display = 'none';
        deleteButton.style.display = 'block';
    }
}

function changeFileUploadLinkName(fileName, uploadClientID, fileNameLinkID, uploadButtonID, deleteButtonID, hiddenFieldID, fileBaseDirectory) {
    fileNameLink = document.getElementById(uploadClientID + fileNameLinkID);
    uploadButton = document.getElementById(uploadClientID + uploadButtonID);
    deleteButton = document.getElementById(uploadClientID + deleteButtonID);
    fileNameHiddenField = document.getElementById(uploadClientID + hiddenFieldID);
    if (fileNameLink != null && uploadButton != null && deleteButton != null && fileNameHiddenField != null) {
        fileNameHiddenField.value = fileName;
        fileNameLink.href = fileBaseDirectory + fileName;
        fileNameLink.innerHTML = fileName;
        uploadButton.style.display = 'none';
        deleteButton.style.display = 'block';
    }
}

// If NS -- that is, !IE -- then set up for mouse capture
if (!isIE) {
    document.captureEvents(Event.MOUSEMOVE)
    document.captureEvents(Event.MOUSECLICK)
}

function clearPasswordField(controlID) {
    var control = document.getElementById(controlID);
    if (control != null && control.value == '************') {
        control.value = '';
    }
}

function setBlockVisibility(hidePanelID, hideLinkID, hideImageID, imagePath, readCookie) {
    var hidePanel = document.getElementById(hidePanelID);
    hideLink = document.getElementById(hideLinkID);
    if (hideLink == null)
        return;
    hideImage = document.getElementById(hideImageID);
    if (readCookie) {
        if (getCookie(hidePanelID) != null) {
            if (getCookie(hidePanelID) == 'none') {
                setShowButton(hidePanel, hideLink, hideImage, imagePath, hidePanelID);
            }
            else {
                setHideButton(hidePanel, hideLink, hideImage, imagePath, hidePanelID);
            }
        }
        else {
            setHideButton(hidePanel, hideLink, hideImage, imagePath, hidePanelID);
        }
    }
    else {
        if (hidePanel != null) {
            if (hidePanel.style.display == 'block') {
                setShowButton(hidePanel, hideLink, hideImage, imagePath, hidePanelID);
            }
            else {
                setHideButton(hidePanel, hideLink, hideImage, imagePath, hidePanelID);
            }
        }
    }
}

function setShowButton(hidePanel, hideLink, hideImage, imagePath, hidePanelID) {
    setBlockDetails(hidePanel, 'none', hideLink, '', hideImage, imagePath + 'show.gif', hidePanelID);
}

function setHideButton(hidePanel, hideLink, hideImage, imagePath, hidePanelID) {
    setBlockDetails(hidePanel, 'block', hideLink, '', hideImage, imagePath + 'hide.gif', hidePanelID);
}

function setBlockDetails(hidePanel, hidePanelDisplay, hideLink, hideText, hideImage, imageSrc, cookieName) {
    if (hidePanel) {
        hidePanel.style.display = hidePanelDisplay;
        hideLink.innerHTML = hideText;
        hideImage.src = imageSrc;
        hideImage.alt = hideText;
        time = new Date();
        time.setTime(new Date().getTime() + 30 * 24 * 60 * 60 * 1000);
        setCookie(cookieName, hidePanelDisplay, time, '/', null, null);
    }
}

function expandCollapseRegion(expandedModeID, collapsedModeID) {
    expandedMode = document.getElementById(expandedModeID);
    collapsedMode = document.getElementById(collapsedModeID);

    if (!expandedMode || !collapsedMode) {
        return;
    }

    if (expandedMode.style.display == 'none') {
        expandedMode.style.display = '';
        collapsedMode.style.display = 'none';
    }
    else {
        expandedMode.style.display = 'none';
        collapsedMode.style.display = '';
    }
}


function showHideElement(elementID, elementHelperID, showClassName, hideClassName) {
    element = document.getElementById(elementID);
    elementHelper = document.getElementById(elementHelperID);
    if (!element || !elementHelper) {
        return;
    }

    if (element.style.display == 'none') {
        element.style.display = '';
        elementHelper.className = showClassName;
    }
    else {
        element.style.display = 'none';
        elementHelper.className = hideClassName;
    }
}

function setFocus(inputId) {
    var inp = document.getElementById(inputId);
    if (inp) {
        inp.focus();
        inp.select();
    }
}

function setAllGroupVisibility(linkID) {
    var link = document.getElementById(linkID);
    if (link != null) {
        if (link.innerHTML.indexOf("Expand all groups") != -1) {
            link.innerHTML = "Collapse all groups";
        }
        else {
            link.innerHTML = "Expand all groups";
        }
    }
}

function setItemVisibility(hidePanelID, hideLinkID, hideImageID, imagePath, modeID) {
    var hidePanel = document.getElementById(hidePanelID);
    var hideLink = document.getElementById(hideLinkID);
    var hideImage = document.getElementById(hideImageID);
    var link = document.getElementById(modeID);
    if (hidePanel != null && hideLink != null && hideImage != null && link != null) {
        if (link.innerHTML.indexOf("Expand all groups") != -1) {
            setShowButton(hidePanel, hideLink, hideImage, imagePath, hidePanelID);
        }
        else {
            setHideButton(hidePanel, hideLink, hideImage, imagePath, hidePanelID);
        }
    }
}



function ShowConfirm(sender) {
    if (sender) {

        var hideInput = document.getElementById("hideinputID");

        if (hideInput && hideInput.value != "") {
            ChangeHideInputValue(sender, "");
            return confirm("Do you want to save your changes?");
        }
    }

    ChangeHideInputValue(sender, "");
    return false;
}



function ChangeHideInputValue(sender, value) {
    if (sender) {
        if (sender.tagName == "TD") {
            ChangeHideInputValueTD(sender, value);
        }
        else if (sender.tagName == "DIV") {
            var hideInput = document.getElementById("hideinputID");
            if (hideInput)
                hideInput.value = value;
        }
        else if (!sender.disabled && !sender.readOnly) {
            var hideInput = document.getElementById("hideinputID");
            if (hideInput)
                hideInput.value = value;
        }
        //        if(value != "")
        //        {
        //            showAlarm(sender);
        //        }
    }
    return true;
}

function showAlarm(sender) {
    while (sender != null && sender.className != "resizeble-column" && sender.className != "main-column") {
        sender = sender.parentNode;
    }
    if (sender != null && sender.className != "resizeble-column") {
        var node = getElementsByClass("tab-content", document, "div");
        var error = getElementsByClass("error", node, "div");
        var box = getElementsByClass("ValidationBox SuccessValidationBox", node, "div");
        if (box) {
            box.className = "ValidationBox AlarmValidationBox";
            box.innerHTML = "<div class=\"container\"><div class=\"header\"><div class=\"msg-header\">Do not forget to click \"Save\" to keep your changes. </div></div></div>";
        }
        else if (error) {
            error.innerHTML = "<div class=\"ValidationBox AlarmValidationBox\"><div class=\"container\"><div class=\"header\"><div class=\"msg-header\">Do not forget to click \"Save\" to keep your changes. </div></div></div></div>";
        }
    }
}

function getParent(sender, className) {

}

function ChangeHideInputValueTD(sender, value) {
    if (value == "") {
        var hideInput = document.getElementById("hideinputID");
        hideInput.value = value;
        return false;
    }
    while (sender.tagName != "TABLE") {
        sender = sender.parentNode;
    }
    if (sender.className != "grid hibrid") {
        sender = sender.getElementsByTagName("TBODY")[0].getElementsByTagName("TR")[0];
        sender = getElementsByClass("selected-column", sender, "TD");
    }
    //    if(sender.childNodes.length<2)
    //        return;
    //    sender = sender.childNodes[sender.childNodes.length-1].childNodes[0];
    if (sender) {
        var hideInput = document.getElementById("hideinputID");
        hideInput.value = value;
    }
}

function getElementsByClass(searchClass, node, tag) {

    var classElements = new Array();
    if (node == null)
        node = document;
    if (tag == null)
        tag = '*';
    var els = node.getElementsByTagName(tag);
    var elsLen = els.length;
    var pattern = new RegExp("(^|\\s)" + searchClass + "(\\s|$)");
    var j = 0;
    for (i = 0; i < elsLen; i++) {
        if (pattern.test(els[i].className)) {
            classElements[j] = els[i];
            j++;
        }
    }
    if (j > 0)
        return classElements[0];
    else
        return null;
}

function passwordStrength(password) {
    var desc = new Array();
    desc[0] = "Very Weak";
    desc[1] = "Weak";
    desc[2] = "Better";
    desc[3] = "Medium";
    desc[4] = "Strong";
    desc[5] = "Strongest";

    var score = 0;

    //if password bigger than 6 give 1 point
    if (password.length > 6) score++;

    //if password has both lower and uppercase characters give 1 point
    if ((password.match(/[a-z]/)) && (password.match(/[A-Z]/))) score++;

    //if password has at least one number give 1 point
    if (password.match(/\d+/)) score++;

    //if password has at least one special caracther give 1 point
    if (password.match(/.[!,@,#,$,%,^,&,*,?,_,~,-,(,)]/)) score++;

    //if password bigger than 12 give another 1 point
    if (password.length > 12) score++;

    document.getElementById("passwordDescription").innerHTML = desc[score];
    document.getElementById("passwordStrength").className = "strength" + score;
}

function hideAdvancedSearch(id) {
    var d = document;

    if (d.getElementById(id) != null && d.getElementById(id).className.indexOf("hidden-search") == -1) {
        d.getElementById(id).className += " hidden-search";
    }
    else d.getElementById(id).className = d.getElementById(id).className.replace("hidden-search", "")
}

function autoMove(length, maxlength, controlID) {
    if (length == maxlength) {
        controlID.focus();
    }
}


function ChangePromoCountVisibility(sender, obj) {
    if (!sender.checked)
        obj.style.display = "block";
    else
        obj.style.display = "none";
}

function changePackageVisibility(sender,container) {
    var images = container.getElementsByTagName('img');

    for (var i = 0; i < images.length; i++) {
        images[i].onclick();
    }
    if (sender.innerHTML == 'Collapse all features') {
        sender.innerHTML = 'Expand all features';
    }
    else {
        sender.innerHTML = 'Collapse all features';
    }
}

function changeMenuItemVisibility(sender,container) {
    var images = container.getElementsByTagName('td');
    if (sender.innerHTML == 'Collapse all items') {
        sender.innerHTML = 'Expand all items';
        for (var i = 0; i < images.length; i++) {
            if (images[i].className.indexOf('minusimage')!=-1)
            {
                if(images[i].onclick)
                images[i].onclick();
            }
        }
    }
    else {
        sender.innerHTML = 'Collapse all items';
        for (var i = 0; i < images.length; i++) {
            if (images[i].className.indexOf('plusimage')!=-1)
            {
                if(images[i].onclick)
                images[i].onclick();
            }
        }        
    }
}
