var ajaxReqDelim = "<^>";
var isIE = (null != document.all) && (window.opera == null);	
var __nonMSDOMBrowser = (window.navigator.appName.toLowerCase().indexOf('explorer') == -1);


function stringToJS(s) 
{
    s = s.replace(/\\/g, "\\\\");
    s = s.replace(/\n/g, "\\n");
    s = s.replace(/\r/g, "\\r");
    s = s.replace(/'/g, "\\'");
    s = s.replace(/"/g, "\\\"");
    return s;
}

function ajaxRequest(ajaxManagerId, command, argument)
{
    if (typeof(argument)=="object" && typeof(argument.join)!="undefined")
    {
        //If argument type is array
        argument = argument.join(ajaxReqDelim);
    }

    var reqArgument;
    if (typeof(command) != "undefined")
    {
        reqArgument = command;
        
        if (typeof(argument) != "undefined")
        {
            reqArgument += (ajaxReqDelim + argument);
        }
    }
    
    //Send ajax request
    window[ajaxManagerId].AjaxRequest(reqArgument);
}

function fireDefaultButton(event, target) {
    if (event.keyCode == 13) {    
        var activeButton;
        var sender;
    
        if (__nonMSDOMBrowser) {
            sender = event.target;
            activeButton = document.getElementById(target);
        } else {
            sender = event.srcElement;
            activeButton = document.all[target];
        }
    
        if (sender && (sender.tagName.toLowerCase() == "textarea" || sender.tagName.toLowerCase() == "select")) {
            return true;
        }

        var args = fireDefaultButton.arguments;
        
        // It will not fire default button when event come from ignore element
        if (sender && args.length > 2) {
            var i;
            for (i=2; i < args.length; i++) {
                if (sender.id == args[i]) {
                    // Change active button from target to ignore element
                    if (__nonMSDOMBrowser) {
                        activeButton = document.getElementById(sender.id);
                    } else {
                        activeButton = document.all[sender.id];
                    }
                }
            } 
        }

        if (activeButton) {
            if (typeof(activeButton.click) != "undefined") {
                activeButton.click();
            } else if (typeof(activeButton.href) != "undefined") {
                eval(activeButton.href);
            } else {
                return true;
            }
             
            event.cancelBubble = true;
            if (event.stopPropagation) event.stopPropagation();
            
            return false;
        }
    }
    return true;
}

function getRadioValue(table) {
    for (var i=0; i < table.rows.length; i++) {
        var tr = table.rows[i];

        for (var j=0; j<tr.cells.length; j++) {
            var td = tr.cells[j];

            for (var k=0; k<td.childNodes.length; k++) {
                var elem = td.childNodes[k];
                if (elem.tagName == "INPUT" && elem.type == "radio" && elem.checked) {
                    return elem.value;
                }
            }
        }
    }
    return null;
}


function compareBDPLiteDate(ctrlID1, ctrlID2)
{
    var bdpLite;
    if (window.BDPLite) {
        bdpLite = new BDPLite();
    } else {
        return null;
    }

    var date1 = bdpLite.getSelectedDate(ctrlID1);
    var date2 = bdpLite.getSelectedDate(ctrlID2);
    if (date1 == null || date2 == null) {
        return null;
    }
    
    if (date1 < date2) {
        return -1;
    } else if (date1 > date2) {
        return 1;
    }
    return 0;
}

function popup(url, wname, wid, hei, lft, tp, hasScroll, hasMenu, hasToolBar){		
	param = "toolbar="+hasToolBar+",menubar="+hasMenu+",scrollbars="+hasScroll+",resizable=yes,status=yes,location=no";
	
	var newWindow;
	
	if ( document.layers ){
		newWindow = window.open(url, wname, param + ',height='+hei+',width='+wid+',screenX='+lft+',screenY='+tp);
	}else{
		newWindow = window.open(url, wname, param + ',height='+hei+',width='+wid+',left='+lft+',top='+tp);
	}
	
	newWindow.focus();
}

function showHideObjectByID(objectId, show)
{
    var obj = document.getElementById(objectId);
    
    obj.style.display = "none";    
    if (show==true) { obj.style.display = ""; }
}

function enableValidatorByID(validatorID, enable)
{
    var oValidator = document.getElementById(validatorID);
    
    oValidator.enabled = enable;            
}
