﻿
String.prototype.trim = function() {
    a = this.replace(/^\s+/, '');
    return a.replace(/\s+$/, '');
};

function wait(msecs) {
    var start = new Date().getTime();
    var cur = start
    while (cur - start < msecs) {
        cur = new Date().getTime();
    }
}

function getPreviousObject(o) {
    var p = o;
    do p = p.previousSibling;
    while (p && p.nodeType != 1);
    return p;
}

function getNextObject(o) {
    var p = o;
    do p = p.nextSibling;
    while (p && p.nodeType != 1);
    return p;
}

function getPreviousObjectByTagName(o, tag) {
    var p = o;
    var i = 1;
    do {
        p = p.previousSibling;
        if (p == null) {
            return p;
        }

        if (p && p.nodeType == 1) {
            if (p.tagName != 'undefined' && p.tagName != null && p.tagName.toLowerCase() == tag.toLowerCase())
                return p;
        }
    }
    while (i = 1);
    return p;
}

function getFirstChild(o) {
    var p = o.firstChild;
    if (p && p.nodeType != 1) {
        do p = p.nextSibling;
        while (p && p.nodeType != 1);
    }
    return p;
}

function getChildById(obj, id) {
    var list = obj.childNodes;
    for (i = 0; i < list.length; i++) {
        if (typeof (list[i].id) != 'undefined' && list[i].id != 'undefined') {
            if (list[i].id.toLowerCase().indexOf(id.toLowerCase()) >= 0) {
                return list[i]
            }
        }
    }
    return null;
}

function getElementByTagAndType(obj, tag, type) {
    var list = obj.getElementsByTagName(tag);
    for (i = 0; i < list.length; i++) {
        if (list[i].type.toLowerCase() == type.toLowerCase()) {
            return list[i]
        }
    }
    return null;
}

function validateCombo(source, args) {
    //var comboId = source.getAttributeNode("ControlToValidate").value;
    var comboId = source.controltovalidate;
    args.IsValid = false;
    var combo = $find(comboId);
    var text = combo.get_text();
    if (text.length < 1) {
        args.IsValid = false;
    }
    else {
        var node = combo.findItemByText(text);
        if (node) {
            var value = node.get_value();
            if (value.length > 0 && value >= 0) {
                args.IsValid = true;
            }
        }
        else {
            args.IsValid = false;
        }
    }
}

function validateComboFF(comboId) {
    var isValid = false;
    var combo = $find(comboId);
    var text = combo.get_text();
    if (text.length < 1) {
        isValid = false;
    }
    else {
        var node = combo.findItemByText(text);
        if (node) {
            var value = node.get_value();
            if (value.length > 0 && value >= 0) {
                isValid = true;
            }
        }
        else {
            isValid = false;
        }
    }

    return isValid
}

function GetRadWindow() {
    var oWindow = null;
    if (window.radWindow)
        oWindow = window.radWindow; //Will work in Moz in all cases, including clasic dialog      
    else if (window.frameElement.radWindow)
        oWindow = window.frameElement.radWindow; //IE (and Moz as well)      
    return oWindow;
}

function Close() {
    GetRadWindow().Close();
    resetSessionTimeout();
}

function CloseAndRefreshParent() {
    Close();
    GetRadWindow().BrowserWindow.location.reload();
}

function CloseAndOpenNewWindow(url) {
    Close();
    var owind = GetRadWindow();
    owind.SetUrl(url);
    owind.Show();
    owind.close
}

function OpenNewRadWindow(url, windowname) {
    var oWnd = radopen(url, windowname);
}

function OpenNewRadWindowOnExisting(url, windowname) {
    var owind = GetRadWindow();
    var oManager = owind.GetWindowManager();
    //Show a particular existing window
    oManager.open(url, windowname);
}


function CloseAndRefreshOtherWindow() {
    Close();
    var owind = GetRadWindow();
    var oManager = owind.GetWindowManager();
    var pWind = oManager.getActiveWindow();
    if (pWind != null)
        pWind.reload();
}

function CloseAndUpdate(elementId, newvalue) {
    Close();
    var ele = GetRadWindow().BrowserWindow.document.getElementById(elementId);
    ele.innerHTML = newvalue;
}

function GetQueryString(key) {
    hu = window.location.search.substring(1);
    gy = hu.split("&");
    for (i = 0; i < gy.length; i++) {
        ft = gy[i].split("=");
        if (ft[0] == key) {
            return ft[1];
        }
    }
}

function OpenPopupWindow(url) {
    newwindow = window.open(url);
    if (newwindow) {
        newwindow.focus();
    }
    else {
        alert('We have detected that you are using popup blocking software.\nPlease disable your popup blocker when using this application');
    }
}


//-----------------------------------------------------
// function for popup generate
//-----------------------------------------------------
function generate(BaseUrl, location) {
    // page = 'http://www.customercommunity.com.au/Communities/windowopen.asp?' //document.inputForm.page.value;
    //Communities/windowopen.asp?resizable=yes&status=no&toolbar=no&menubar=no&width=600&height=800&left=30&top=30&location=http://www.google.com
    var toolbars = document.inputForm.toolbars.checked;
    var scrollprops = document.inputForm.scrollit.checked;
    var locations = document.inputForm.locations.checked;
    var statusbars = document.inputForm.statusbars.checked;
    var menubars = document.inputForm.menubars.checked;
    var resizeable = document.inputForm.resizeable.checked;
    var thewidth = document.inputForm.thewidth.value;
    var theleft = document.inputForm.theleft.value
    var thetop = document.inputForm.thetop.value
    var theheight = document.inputForm.theheight.value;

    start = "";

    scriptOutput = start + ''

    //scriptOutput += "eval(\"page\" + id + \" = window.open(URL, '\" + id + \"', '" +
    scriptOutput += "" + "<A HREF=" + BaseUrl + "WindowOpen.aspx?" +
    ((toolbars) ? "toolbar=1" : "&toolbar=0") +
    ((scrollprops) ? "&scrollbars=1" : "&scrollbars=0") +
    ((statusbars) ? "&status=1" : "&status=0") +
    ((menubars) ? "&menubar=1" : "&menubar=0") +
    ((resizeable) ? "&resizable=1" : "&resizable=0") +
    ((thewidth) ? "&width=" + thewidth : "") +
    ((theheight) ? "&height=" + theheight : "") +
    ((theleft) ? "&left=" + theleft : "") +
    ((thetop) ? ",top=" + thetop : "") + "&location=" + location + " target=_blank>Stay in touch with the latest news - Click Here</a>"; //+
    //"');\");\n}\n// End -->\n" + start + "/sc" + "ript>\n";

    output = scriptOutput; //+ "\n\n" + start +'!-- Script Size:  0.73 KB  --'+'>';

    document.mail.source.value = output;

}


//-----------------------------------------------------
// functions for RadGrid Mouse Over
//-----------------------------------------------------
function RowMouseOver(sender, eventArgs) {
    $get(eventArgs.get_id()).className += " RowMouseOver";
}
function RowMouseOut(sender, eventArgs) {
    var row = $get(eventArgs.get_id());
    row.className = row.className.replace("RowMouseOver", "");
}

function cmbPageSize_ClientSelectedIndexChanged(sender, args) {
    var pager = sender.get_parent();
    if (pager != 'undefined' && pager != null) {
        var grid = pager.get_parent();
        var tableView = grid.get_masterTableView();
        tableView.set_pageSize(sender.get_value());
    }
}

//-----------------------------------------------------
// functions for Editable Field
//-----------------------------------------------------
function changeToEditMode(dv) {
    var dvEdit = getNextObject(dv);
    dvEdit.style.display = '';
    dv.style.display = 'none';

    var lblId = dvEdit.id.replace('pnlEdit', 'lblField');
    var lbl = document.getElementById(lblId);

    var localtexId = dvEdit.id.replace('pnlEdit', 'txtField');
    var localtext = document.getElementById(localtexId);
    var textbox = $find(localtext.id);

    if (lbl.innerHTML.indexOf('&nbsp;&nbsp;') >= 0) {
        textbox.set_value('');
    }

    // if not hidden then set focus
    if (textbox._textBoxElement.style.display.toLowerCase() != 'none') {
        textbox.focus();
    }

}

function changeToReadMode(btn, isCancel) {
    var dvId;
    var localtextId;
    var lblId;
    var type = '1';

    if (isCancel) {
        dvId = btn.id.replace('btnCancel', 'pnlEdit');
        localtextId = btn.id.replace('btnCancel', 'txtField');
        lblId = btn.id.replace('btnCancel', 'lblField');
    }
    else {
        dvId = btn.id.replace('btnUpdate', 'pnlEdit');
    }

    // set textbox text to initial
    if (isCancel) {
        var lbl = document.getElementById(lblId);
        var localtext = document.getElementById(localtextId);

        var hdnId = btn.id.replace('btnCancel', 'hdnFieldDtl');
        var hdn = document.getElementById(hdnId);
        var dtl = hdn.value.split(',');
        if (dtl.length >= 3) {
            type = dtl[2];
        }
        if (type == '2') {  // check box
            var chkboxId = btn.id.replace('btnCancel', 'chkField');
            var chkbox = document.getElementById(chkboxId);
            if (lbl.innerHTML.toLowerCase() == 'yes') {
                chkbox.checked = true;
            }
            else {
                chkbox.checked = false;
            }
        }
        else {
            var textbox = $find(localtext.id);
            textbox.set_value(lbl.innerHTML);
        }
    }

    var dv = document.getElementById(dvId);
    var dvRead = getPreviousObject(dv);
    dvRead.style.display = '';
    dv.style.display = 'none';
}

function UpdateField(btn) {
    var fieldname;
    var intid;
    var type = '1';

    var hdnId = btn.id.replace('btnUpdate', 'hdnFieldDtl');
    var hdn = document.getElementById(hdnId);
    var dtl = hdn.value.split(',');
    if (dtl.length >= 3) {
        fieldname = dtl[0];
        intid = dtl[1];
        type = dtl[2];
    }

    var isCheckBox = false;
    var itemText;
    var localtextId = btn.id.replace('btnUpdate', 'txtField');
    var localtext = document.getElementById(localtextId);
    if (type == '2') {  // check box
        var chkboxId = btn.id.replace('btnUpdate', 'chkField');
        var chkbox = document.getElementById(chkboxId);
        if (chkbox.checked) {
            itemText = '1';
        }
        else {
            itemText = '0';
        }
        isCheckBox = true;
    }
    else {
        var textbox = $find(localtext.id);
        itemText = textbox.get_value().trim();
        if (!itemText) {
            alert("Please specify the text.");
            return false;
        }

        if (localtextId.toLowerCase().indexOf('email') >= 0) { // Validate email address
            if (!validateEmail(itemText)) {
                alert("Please enter valid email address.");
                return false;
            }
        }
    }


    if (intid != 'undefined' && intid != null) {
        PageMethods.UpdateEditableField(fieldname, intid, itemText);
    }

    var lblId = btn.id.replace('btnUpdate', 'lblField');
    var lbl = document.getElementById(lblId);
    if (isCheckBox) {
        if (itemText == '1')
            lbl.innerHTML = 'Yes';
        else
            lbl.innerHTML = 'No';
    }
    else {
        lbl.innerHTML = itemText;
    }
    changeToReadMode(btn, false);
}

function validateEmail(email) {
    var reg = /^\w+([.-]\w+)*@\w+([.-]\w+)*\.\w{2,4}$/;
    return reg.test(email);
}

//-----------------------------------------------------
// functions for RadEditor
//-----------------------------------------------------
function changeImageManager(editor, args) {
    if (args.get_commandName() == "ImageManager") {

        var callbackFunction = function(sender, args) {
            var result = args.get_value(); //get returned value of ImageManager which is IMG element

            var imagealt = result.alt
            if (result.src.indexOf("thumbnail.aspx") >= 0) {
                result.alt = "";
                result.border = 0;
            }
            var htmlresult = Telerik.Web.UI.Editor.Utils.getOuterHtml(result); //get HTML source of the DOM element 

            if (result.src.indexOf("thumbnail.aspx") >= 0) {
                htmlresult = "<a target='_blank' href='" + imagealt + "'>" + htmlresult + "</a>";
            }



            editor.pasteHtml(htmlresult, "ImageManager");
        };

        args.set_callbackFunction(callbackFunction); //register callback function
    }
}

// if insertsnippet command and value = -1 then cancel
function OnCommandExecuting(editor, args) {
    if (args.get_commandName() == 'InsertSnippet' && args.get_value() == '-1') {
        args.set_cancel(true);
    }
    if (args.get_commandName() == 'InsertSnippet1') {
        if (args.get_value() != '-1') {
            editor.pasteHtml(args.get_value());
        }
        args.set_cancel(true);
    }
}

// if TemplateManager then clear editor text
function OnCommandExecuted(editor, args) {
    if (args.get_commandName() == 'TemplateManager') {
        editor.set_html("");
    }
}


//-----------------------------------------------------
// functions for session time counter
//-----------------------------------------------------

var intialSessionTimeout;
var sessionTimeout;
var lblSessionTimeId;

function DisplaySessionTimeout() {

    //assigning minutes left to session timeout to Label
    if (typeof (lblSessionTimeId) != 'undefined' && lblSessionTimeId != 'undefined') {
        document.getElementById(lblSessionTimeId).innerHTML = 'Session Time Left - ' + getMinutes(sessionTimeout);
        sessionTimeout = sessionTimeout - 1;

        //if session is not less than 0
        if (sessionTimeout >= 0) {
            //call the function again after 1 minute delay
            window.setTimeout("DisplaySessionTimeout();", 1000);
        }
        else {
            //show message box
            //alert("Your current Session is over.");
        }
    }
}

function resetSessionTimeout() {
    if (sessionTimeout > 0) {
        sessionTimeout = intialSessionTimeout;
    }
    else {
        sessionTimeout = intialSessionTimeout;
        window.setTimeout("DisplaySessionTimeout();", 1000);
    }
}

function getSeconds(minutes) {
    return minutes * 60;
}

function getMinutes(seconds) {
    return Math.floor(seconds / 60) + ":" + (seconds % 60).toFixed();
}


//-----------------------------------------------------
// functions for multi select combobox
//-----------------------------------------------------

var supressDropDownClosing = false;

function OnClientDropDownClosing(sender, eventArgs) {
    eventArgs.set_cancel(supressDropDownClosing);
}

function OnClientSelectedIndexChanging(sender, eventArgs) {
    //if (eventArgs.get_item().get_value() != '-2') {
    eventArgs.set_cancel(supressDropDownClosing);
    //}
}

function OnClientDropDownOpening(sender, eventArgs) {
    supressDropDownClosing = true;
}

function OnClientBlur(sender) {
    supressDropDownClosing = false;

    sender.toggleDropDown();
}

function checkboxClick(sender) {
    collectSelectedItems(sender);
}

function getItemCheckBox(item) {
    //Get the 'div' representing the current RadComboBox Item.
    var itemDiv = item.get_element();

    //Get the collection of all 'input' elements in the 'div' (which are contained in the Item).
    var inputs = itemDiv.getElementsByTagName("input");

    for (var inputIndex = 0; inputIndex < inputs.length; inputIndex++) {
        var input = inputs[inputIndex];

        //Check the type of the current 'input' element.
        if (input.type == "checkbox") {
            return input;
        }
    }

    return null;
}

function collectSelectedItems(sender) {
    var combo = $find(sender);
    //alert(combo);
    var items = combo.get_items();

    var selectedItemsTexts = "";
    var selectedItemsValues = "";

    var itemsCount = items.get_count();

    for (var itemIndex = 0; itemIndex < itemsCount; itemIndex++) {
        var item = items.getItem(itemIndex);

        var checkbox = getItemCheckBox(item);

        //Check whether the Item's CheckBox) is checked.
        if (checkbox.checked) {
            selectedItemsTexts += item.get_text() + ", ";
            selectedItemsValues += item.get_value() + ", ";
        }
    }

    selectedItemsTexts = selectedItemsTexts.substring(0, selectedItemsTexts.length - 2);
    selectedItemsValues = selectedItemsValues.substring(0, selectedItemsValues.length - 2);

    //Set the text of the RadComboBox with the texts of the selected Items, separated by ','.
    combo.set_text(selectedItemsTexts);

    //Set the comboValue hidden field value with values of the selected Items, separated by ','.
    //document.getElementById("EHSForm1_comboValue").value = selectedItemsValues;

    if (selectedItemsValues == "") {
        combo.clearSelection();
    }
}
function tabOnly(event) {
    if (event.keyCode != 9) { return false; }
}

function OnClientLoad(sender) {
    sender.get_inputDomElement().readOnly = "readonly";
}

function ClearAllMutliSelectComboItems(combo) {
    var items = combo.get_items();

    var itemsCount = items.get_count();

    for (var itemIndex = 0; itemIndex < itemsCount; itemIndex++) {
        var item = items.getItem(itemIndex);
        var checkbox = getItemCheckBox(item);

        //Check whether the Item's CheckBox) is checked.
        checkbox.checked = false;
    }

    combo.clearSelection();
}

//-----------------------------------------------------
// functions for highlight control on validation fail
//-----------------------------------------------------

var g_BackgroundColor = '#80a2d1'; //'#fffacd';
jQuery(document).ready(function() {
    if (typeof (Page_Validators) != 'undefined') {
        for (var i = 0; i < Page_Validators.length; i++) {
            var validator = Page_Validators[i];
            if (validator.controltovalidate) {
                BindValidatorsForChecking(validator.controltovalidate);
            }
        }
    }
});

function OnUpdateValidators() {
    if (typeof (Page_Validators) != 'undefined') {
        for (var i = 0; i < Page_Validators.length; i++) {
            var validator = Page_Validators[i];
            // *** For each validator, find its associated control, then check its valid status
            if (validator.controltovalidate) {
                var control = document.getElementById(validator.controltovalidate);
                if (control != null) {
                    //debugger;
                    ChangeBackground(control);

                    // *** Bind to check valid status
                    BindValidatorsForChecking(validator.controltovalidate);
                }
            }
        }
    }
}

// *** Check all validators for a control
function CheckValidatorsForControl(control) {
    if (typeof (control.Validators) != 'undefined' && control.Validators != 'undefined') {
        for (var i = 0; i < control.Validators.length; i++) {
            if (!control.Validators[i].isvalid) {
                return false;
            }
        }
    }
    return true;
}

// *** Bind to check valid status
function BindValidatorsForChecking(controlID) {
    jQuery("#" + controlID).bind("blur focus mouseout mouseleave", function(e) {
        ChangeBackground(this);
    });
}

function ChangeBackground(control) {
    //debugger;
    if (control.type == 'text' || control.type == 'textarea' || control.type == 'password') // RadTextBox
    {
        //var ctl = getPreviousObject(control);
        var ctl;
        
        ctl = document.getElementById(control.id + '_text');
        if (ctl != 'undefined' && ctl != null) {
            // RadTextBox
        }
        else {
            ctl = document.getElementById(control.id + '_dateInput_text');
            if (ctl != 'undefined' && ctl != null) {
                // check for RadDatePicker
            }
            else {
                // Asp Textbox
                ctl = control;
            }
        }
        
        if (ctl != null) {
            ctl.style.background = CheckValidatorsForControl(control) ? '#ffffff' : g_BackgroundColor;
        }
//        else { // check for RadDatePicker
//            ctl = document.getElementById(control.id + '_dateInput_text');
//            if (ctl != 'undefined' && ctl != null) {
//                ctl.style.background = CheckValidatorsForControl(control) ? '#ffffff' : g_BackgroundColor;
//            }
//        }
    }
}


//-----------------------------------------------------
// functions for Combobox with Add New functionality
//-----------------------------------------------------
function OnAddNewComboSelectedIndexChanging(sender, eventArgs) {
    //debugger;
    var combo = sender;
    var comboId = combo.get_id();

    var selectedItem = combo.get_selectedItem();
    if (selectedItem != null) {
        var lastIndex = selectedItem.get_index();
        var dvCombo = document.getElementById(comboId);
        var dv = getNextObject(dvCombo);
        var hdn = getElementByTagAndType(dv, 'input', 'hidden');
        //var hdn = document.getElementById("hdnLastIndex");
        hdn.value = lastIndex;
    }
}

function OnAddNewComboSelectedIndexChanged(sender, eventArgs) {

    //var comboID = "<%= cmbCombo.ClientID %>";
    //var textboxID = "<%= txtAddNewItem.ClientID %>"

    var combo = sender;
    var comboId = combo.get_id();

    var selectedItem = eventArgs.get_item();
    var itemValue = selectedItem.get_value();
    if (itemValue.toString() == '-2') {
        var dvCombo = document.getElementById(comboId);
        var dv = getNextObject(dvCombo);
        dv.style.display = "";
        //combo.style.display = "none";
        combo.set_visible(false);

        var localcombo = document.getElementById(comboId);
        var dvText = getNextObject(localcombo);
        var localtextSpan = getFirstChild(dvText);
        var localtext = getNextObject(getFirstChild(localtextSpan));
        var textbox = $find(localtext.id);
        textbox.focus();
    }
    else {
        if (selectedItem != null) {
            var lastIndex = selectedItem.get_index();
            var dvCombo = document.getElementById(comboId);
            var dv = getNextObject(dvCombo);
            var hdn = getChildById(dv, 'hdnLastIndex');
            //            //var hdn = document.getElementById("hdnLastIndex");
            hdn.value = lastIndex;
        }
    }
}

function AddNewItem(sender) {
    debugger;
    //        var comboID = "<%= cmbCombo.ClientID %>";
    //        var textboxID = "<%= txtAddNewItem.ClientID %>"

    var localcombo = getPreviousObject(sender.parentNode);
    var localtextSpan = getPreviousObjectByTagName(sender, 'span');
    var localtext = getNextObject(getFirstChild(localtextSpan));

    var textbox = $find(localtext.id);
    var itemText = textbox.get_value().trim();
    if (!itemText) {
        alert("Please specify the text for the new item.");
        return false;
    }

    var combo = $find(localcombo.id);
    if (combo.findItemByValue(itemText) != null) {
        alert("Item already exists.");
        return false;
    }

    var lastItem = combo.get_items().getItem(combo.get_items().get_count() - 1);

    combo.trackChanges();
    //Instantiate a new client item
    var item = new Telerik.Web.UI.RadComboBoxItem();

    item.set_value(itemText);
    item.set_text(itemText);

    if (localcombo.id.toLowerCase().indexOf('multiselect') < 0) { // if not multi select combo then set last
        var position = combo.get_items().get_count() - 1;
        combo.get_items().insert(position, item);

        item.select();
        item.scrollIntoView();
    }
    else {
        var chkElement = lastItem.get_element();
        if (typeof (chkElement) != 'undefined' && chkElement != 'undefined') {
            var strHtml = chkElement.innerHTML;
            var pos = strHtml.indexOf('cmbComboMultiSelect_i');
            var intControlCounter = strHtml.substring(pos + 21, pos + 22);
            var intNewControlCounter = parseInt(intControlCounter) + 1;
            var newHtml = strHtml.replace('i' + intControlCounter, 'i' + intNewControlCounter);

            var chkItem = item._createDomElement();
            chkItem.innerHTML = newHtml;
            item.set_element(chkItem);
            //item.innerHTML = newHtml;

            var position = combo.get_items().get_count() - 1;
            combo.get_items().insert(position, item);
        }
        //item.select();
    }

    combo.commitChanges();

    var mainDiv = localcombo.parentNode
    var hdnTbl = getChildById(mainDiv, 'hdnTable');
    var tblName = hdnTbl.value;

    PageMethods.InsertNewComboItem(itemText, tblName);
    //alert(tblName);

    return CancelNew(sender, true);
}

function CancelNew(sender, isInserted) {
    //debugger;
    //        var comboID = "<%= cmbCombo.ClientID %>";
    //        var textboxID = "<%= txtAddNewItem.ClientID %>"

    var localcombo = getPreviousObject(sender.parentNode);
    var localtextSpan = getPreviousObjectByTagName(sender, 'span');
    var localtext = getNextObject(getFirstChild(localtextSpan));

    var combo = $find(localcombo.id);
    var comboId = combo.get_id();

    var dvCombo = document.getElementById(comboId);
    var dv = getNextObject(dvCombo);
    //var dv = document.getElementById("AddNew");
    dv.style.display = "none";
    var hdn = getChildById(dv, 'hdnLastIndex');
    var lastIndex = parseInt(hdn.value);

    var textbox = $find(localtext.id);
    textbox.clear();

    //combo.style.display = "";
    combo.set_visible(true);
    if (!isInserted) {
        if (localcombo.id.toLowerCase().indexOf('multiselect') < 0) { // if not multi select combo then set last
            var items = combo.get_items();
            var firstItem = items.getItem(lastIndex);
            if (typeof (firstItem) != 'undefined' && firstItem != 'undefined') {
                combo.trackChanges();
                firstItem.select();
                firstItem.scrollIntoView();
                combo.commitChanges();
            }
        }
    }

    var comboInput = combo.get_inputDomElement();
    comboInput.focus();

    return false;
}



//-----------------------------------------------------
// functions for Set focus to first field
//-----------------------------------------------------
function setFocus() {
    var bFound = false;

    // for each form

    for (f = 0; f < document.forms.length; f++) {
        // for each element in each form

        for (i = 0; i < document.forms[f].length; i++) {
            // if it's not a hidden element

            if (document.forms[f][i].type != "hidden") {
                // and it's not disabled

                if (document.forms[f][i].disabled != true) {
                    // set the focus to it

                    try {
                        document.forms[f][i].focus();
                        var bFound = true;
                    }
                    catch (err) {

                    }
                }
            }
            // if found in this element, stop looking

            if (bFound == true)
                break;
        }
        // if found in this form, stop looking

        if (bFound == true)
            break;
    }
}
//window.onload = setFocus;




//-----------------------------------------------------
// functions for Javascript AJAX
//-----------------------------------------------------
function GetXmlHttpObject() {
    var xmlhttp = false;
    /*@cc_on@*/
    /*@if (@_jscript_version >= 5)
    // JScript gives us Conditional compilation, we can cope with old IE versions.
    // and security blocked creation of the objects.
    try {
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
        try {
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (E) {
            xmlhttp = false;
        }
    }
    @end@*/
    if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
        try {
            xmlhttp = new XMLHttpRequest();
        } catch (e) {
            xmlhttp = false;
        }
    }
    if (!xmlhttp && window.createRequest) {
        try {
            xmlhttp = window.createRequest();
        } catch (e) {
            xmlhttp = false;
        }
    }

    return xmlhttp;
}
