function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function confirmDelete(objType, objName)
{
	event.cancelBubble = true;
	
	if( objName )
	{
		return confirm('Are you sure you want to delete the ' + objType + ' called "' + objName + '"?');
	}
	else
	{
		return confirm('Are you sure you want to delete this ' + objType + '?');
	}
}

function PageQuery(q) {
    if(q.length > 1)
        this.q = q.substring(1, q.length);
    else
        this.q = null;
    this.keyValuePairs = new Array();
    if(q) {
        for(var i=0; i < this.q.split("&").length; i++) {
            this.keyValuePairs[i] = this.q.split("&")[i];
        }
    }
    this.getKeyValuePairs = function() { return this.keyValuePairs; }
    this.getValue = function(s) {
        for(var j=0; j < this.keyValuePairs.length; j++) {
            if(this.keyValuePairs[j].split("=")[0] == s)
                return this.keyValuePairs[j].split("=")[1];
        }
        return false;
    }

    this.getParameters = function() {
        var a = new Array(this.getLength());
        for(var j=0; j < this.keyValuePairs.length; j++) {
            a[j] = this.keyValuePairs[j].split("=")[0];
        }
        return a;
    }
    this.getLength = function() { return this.keyValuePairs.length; }
}

function queryString(key, defaultValue){
    var page = new PageQuery(window.location.search);
    var queryValue = page.getValue(key);
    if (queryValue)
        return unescape(queryValue);
    else
        return defaultValue;
}

function setSelectIndexToValue(selectObject, optionValue) {
    if ((selectObject != "") && (optionValue != "") && (selectObject.selectedIndex > -1) && (selectObject[selectObject.selectedIndex].value != optionValue)) {
        var newIndex = 0;
        for (var i = 0; i < selectObject.length; i++) {
            if (selectObject[i].value == optionValue) {
                newIndex = i;
                break;
            }
        }
        selectObject.selectedIndex = newIndex;
    }
 }

function appendUrlParam(source, paramName, paramValue) {
    var result = "";
    if (source != "")
        result = source + '&';
    result = result + paramName + "=" + escape(paramValue);
    return result;
}

function insertUrlParam(source, paramName, paramValue) {
    var tempUrl = "";
    var anchorArray = source.split("#");
    var queryArray = anchorArray[0].split("?");
    tempUrl = queryArray[0] + "?";
    if (queryArray.length > 1)
       tempUrl = tempUrl + queryArray[1] + "&";
    tempUrl = tempUrl + paramName + "=" + escape(paramValue);
    if (anchorArray.length > 1)
       tempUrl = tempUrl + "#" + anchorArray[1];
    return tempUrl;
}

function ToggleElementVisibility(name) {
	// Get the element to toggle
	if( typeof name == 'string' )
	{
    	var ele = document.getElementById(name);
    }
    else
    {
    	var ele = name;
    }
    if(ele)
    {
        if( ele.style.display == 'none' || ele.style.visibility == 'hidden' )
        {
            ShowElement(name);
            return true;
        }
        else
        {
        	HideElement(name);
        	return false;
        }
    }
}

function ShowElement(name)
{
	if( typeof name == 'string' )
	{
    	var ele = document.getElementById(name);
    }
    else
    {
    	var ele = name;
    }
    
    if(ele)
    {
    	ele.style.display = 'block';
        ele.style.visibility = 'visible';
    }		
}

function HideElement(name)
{
	if( typeof name == 'string' )
	{
    	var ele = document.getElementById(name);
    }
    else
    {
    	var ele = name;
    }
    
    if(ele)
    {
    	ele.style.display = 'none';
        ele.style.visibility = 'hidden';
    }		
}

function validateCurrencyKey(e){
	return validateNumericalKey(e);
}

function validateNumericalKey(e){
	// Important keys:
	//
	//  8 - Backspace
	//  9 - Tab
	// 13 - Enter
	// 35 - End
	// 36 - Home
	// 37 - Left Arrow
	// 38 - Up Arrow
	// 39 - Right Arrow
	// 40 - Down Arrow
	// 45 - Insert
	// 46 - Decimal
	// 46 - Delete
	var allowedKeys = new Array(8,9,13,35,36,37,38,39,40,45,46);
	
	// Get the key code
	var keyCode = (e.keyCode ? e.keyCode : e.charCode);
	
	// Enter key
	if (keyCode == 13)
	{ 
		// TODO: Submit form
		return false; 
	}
	
	// Allowed keys
	for(var i = 0; i < allowedKeys.length; i++)
	{
		if( allowedKeys[i] == keyCode ) return true;
	}
    
    // Allow digits (48=0, 57=9)
    if (keyCode >= 48 && keyCode <= 57)
	{
		return true;
    }
    
    // Key is not allowed
    return false;
}

function enterPressed(e){
    if (e.keyCode == 13){
        return true;
    }
    return false;
}

function SelectOptionByValue( oSelect, sOptionValue )
{
	if( oSelect )
	{
		for( i=0; i < oSelect.options.length; i++ )
		{
			var oOption = oSelect.options[i];
			if( oOption.value == sOptionValue )
			{
				oOption.selected = true;
				return;
			}
		}
	}
}

var popupWin = null;
function popUp(sURL, sWidth, sHeight, sType)
{
	if (popupWin != null && !popupWin.closed) popupWin.close();
	
	var strOptions = "resizable,height="+sHeight+",width="+sWidth;
	
	if (sType=="fixed")   strOptions="status,height="+sHeight+",width="+sWidth;
	if (sType=="elastic") strOptions="toolbar,menubar,scrollbars,resizable,location,height="+sHeight+",width="+sWidth;
	if (sType=="scroll") strOptions="scrollbars,height="+sHeight+",width="+sWidth;
	
	popupWin = window.open(sURL, 'popupWin', strOptions);
	popupWin.focus();
}