function resizer() {
	var iMinHeight;
	var iOffset;
	if ( typeof( window[ 'minimumheight' ] ) != "undefined" ) {
   		iMinHeight = minimumheight;
	}
	else {
		iMinHeight = 400;
	}
	if ( typeof( window[ 'offset' ] ) != "undefined" ) {
   		iOffset = offset;
	}
	else {
		iOffset = 137;
	}
	var height = getViewportHeight();
	if ( height >= iMinHeight ) {
		//prevent css errs
		try{
		    var pc = document.getElementById("masterpage_container");
		    if (pc) {
	            {pc.style.height=parseInt( height- pc.offsetTop-iOffset )+"px";}
		    }
		}catch(err){}
	}
}
function getViewportHeight() {
	if (window.innerHeight!=window.undefined) return window.innerHeight;
	if (document.compatMode=='CSS1Compat') return document.documentElement.clientHeight;
	if (document.body) return document.body.clientHeight;

	return window.undefined;
}
function getViewportWidth() {
	var offset = 17;
	var width = null;
	if (window.innerWidth!=window.undefined) return window.innerWidth;
	if (document.compatMode=='CSS1Compat') return document.documentElement.clientWidth;
	if (document.body) return document.body.clientWidth;
}

/**
 * Gets the real scroll top
 */
function getScrollTop() {
	if (self.pageYOffset) // all except Explorer
	{
		return self.pageYOffset;
	}
	else if (document.documentElement && document.documentElement.scrollTop)
		// Explorer 6 Strict
	{
		return document.documentElement.scrollTop;
	}
	else if (document.body) // all other Explorers
	{
		return document.body.scrollTop;
	}
}
function getScrollLeft() {
	if (self.pageXOffset) // all except Explorer
	{
		return self.pageXOffset;
	}
	else if (document.documentElement && document.documentElement.scrollLeft)
		// Explorer 6 Strict
	{
		return document.documentElement.scrollLeft;
	}
	else if (document.body) // all other Explorers
	{
		return document.body.scrollLeft;
	}
}

function modalWin(obj) {
if ( typeof(obj)==="object") {
	var url = obj.url;
	var windowname = typeof (obj.name) != 'undefined' ? obj.name : (new Date()).getSeconds().toString();
	var toolbar = typeof (obj.toolbar) != 'undefined' ? obj.toolbar : 'no';
	var height = typeof (obj.height) != 'undefined' ? obj.height : 500;
	var width = typeof (obj.width) != 'undefined' ? obj.width : 700;
	var resizable = typeof (obj.resizable) != 'undefined' ? obj.resizable : "yes";
	var center = typeof (obj.center) != 'undefined' ? obj.center : "no";
	var scroll = typeof (obj.scroll) != 'undefined' ? obj.scroll : "yes";
    
	var parms
	if (window.showModalDialog) {
		var args = { name: windowname, opener: self } ;
		parms = "dialogWidth:" + width + "px;";
		parms += "dialogHeight:" + height + "px;";
		parms += "resizable:" + resizable + ";";
		parms += "center:" + center + ";";
		parms += "scroll:" + scroll;
		window.showModalDialog(url, args, parms);
	} else {
		parms = "height=" + height + ',';
		parms += "width=" + width + ',';
		parms += "toolbar=" + toolbar + ","
		parms += "directories=no,"
		parms += "status=no,"
		parms += "menubar=no,"
		parms += "scrollbars=no,"
		parms += "resizable=no,"
		parms += "modal=yes"
		window.open(url,windowname,parms);
	}
	}
}

var dialogWin = new Object()
// Generate a modal dialog.
// Parameters:
//    url -- URL of the page/frameset to be loaded into dialog
//    width -- pixel width of the dialog window
//    height -- pixel height of the dialog window
//    returnFunc -- reference to the function (on this page)
//                  that is to act on the data returned from the dialog
//    args -- [optional] any data you need to pass to the dialog
function openDialog(url, width, height, parms, returnFunc, args, dialogname) {
	if (!dialogWin.win || (dialogWin.win && dialogWin.win.closed)) {
		// Initialize properties of the modal dialog object.

		if (returnFunc==null ) { returnFunc = "";}
		if (args==null ) { args = "";}

		dialogWin.returnFunc = returnFunc
		dialogWin.returnedValue = ""
		dialogWin.args = args
		dialogWin.url = url
		dialogWin.width = width
		dialogWin.height = height

		// Keep name unique so Navigator doesn't overwrite an existing dialog.
		if (dialogname) {
			dialogWin.name = dialogname
		}
		else {
			dialogWin.name = (new Date()).getSeconds().toString()
		}	
		// Assemble window attributes and try to center the dialog.
		if (parms==null || parms=="") {	parms = "resizable=no";}

		// The best we can do is center in screen.
		dialogWin.left = (screen.width - dialogWin.width) / 2
		dialogWin.top = (screen.height - dialogWin.height) / 2
		var attr = "left=" + dialogWin.left + ",top=" + dialogWin.top + "," + parms + ",width=" + dialogWin.width + ",height=" + dialogWin.height

		// Generate the dialog and make sure it has focus.
		dialogWin.win=window.open(dialogWin.url, dialogWin.name, attr)
		dialogWin.win.focus()
	} else {
		dialogWin.win.focus()
	}
	//If current document is maintaining a list of popups, add this to the array
	if (document.rtpopups) {
		document.rtpopups.push(  dialogWin.win  );	
	}
}

function trim(stringToTrim) {
    //modified 4/13/2011:gsj avoid crash on null value
    try { var retval = stringToTrim.replace(/^\s+|\s+$/g, ""); }
    catch (e) { var retval = ""; }
    return retval
}

function IsAllowed(strString, allowedchars)
//  check for valid numeric strings	
{
    var strValidChars = allowedchars;
    var strChar;
    var blnResult = true;

    if (strString.length == 0) return false;

    //  test strString consists of valid characters listed above
    for (i = 0; i < strString.length && blnResult == true; i++) {
        strChar = strString.charAt(i);
        if (strValidChars.indexOf(strChar) == -1) {
            blnResult = false;
        }
    }
    return blnResult;
}
function IsNumeric(input) {
    return (input - 0) == input && input.length > 0;
}

function IsKeyAllowed(enteredkey, acceptedkeys) {
    //ignore the script for the enter, shift, up arrow, down arrow
    if (enteredkey == '13' || enteredkey == '16' || enteredkey == '38' || enteredkey == '40' || enteredkey == '9') { return true } 

    var ak = acceptedkeys.split(",");
    var translatedkeys = "";
    var x;   

    if (acceptedkeys == "alpha") {
        translatedkeys = translatedkeys + "65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,90,";
    } else if (acceptedkeys == "numeric") {
        translatedkeys = translatedkeys + "48,49,50,51,52,53,54,55,56,57,96,97,98,99,100,101,102,103,104,105,";
    } else {
        for (x in ak) {
            if (ak[x] == "0") { translatedkeys = translatedkeys + "48,96,"; }
            if (ak[x] == "1") { translatedkeys = translatedkeys + "49,97,"; }
            if (ak[x] == "2") { translatedkeys = translatedkeys + "50,98,"; }
            if (ak[x] == "3") { translatedkeys = translatedkeys + "51,99,"; }
            if (ak[x] == "4") { translatedkeys = translatedkeys + "52,100,"; }
            if (ak[x] == "5") { translatedkeys = translatedkeys + "53,101,"; }
            if (ak[x] == "6") { translatedkeys = translatedkeys + "54,102,"; }
            if (ak[x] == "7") { translatedkeys = translatedkeys + "55,103,"; }
            if (ak[x] == "8") { translatedkeys = translatedkeys + "56,104,"; }
            if (ak[x] == "9") { translatedkeys = translatedkeys + "57,105,"; }


            if (ak[x] == "-") { translatedkeys = translatedkeys + "189,109,"; }
            if (ak[x] == "^") { translatedkeys = translatedkeys + "54,"; }

            if (ak[x] == "a") { translatedkeys = translatedkeys + "65,"; }
            if (ak[x] == "b") { translatedkeys = translatedkeys + "66,"; }
            if (ak[x] == "c") { translatedkeys = translatedkeys + "67,"; }
            if (ak[x] == "d") { translatedkeys = translatedkeys + "68,"; }
            if (ak[x] == "e") { translatedkeys = translatedkeys + "69,"; }
            if (ak[x] == "f") { translatedkeys = translatedkeys + "70,"; }
            if (ak[x] == "g") { translatedkeys = translatedkeys + "71,"; }
            if (ak[x] == "h") { translatedkeys = translatedkeys + "72,"; }
            if (ak[x] == "i") { translatedkeys = translatedkeys + "73,"; }
            if (ak[x] == "j") { translatedkeys = translatedkeys + "74,"; }
            if (ak[x] == "k") { translatedkeys = translatedkeys + "75,"; }
            if (ak[x] == "l") { translatedkeys = translatedkeys + "76,"; }
            if (ak[x] == "m") { translatedkeys = translatedkeys + "77,"; }
            if (ak[x] == "n") { translatedkeys = translatedkeys + "78,"; }
            if (ak[x] == "o") { translatedkeys = translatedkeys + "79,"; }
            if (ak[x] == "p") { translatedkeys = translatedkeys + "80,"; }
            if (ak[x] == "q") { translatedkeys = translatedkeys + "81,"; }
            if (ak[x] == "r") { translatedkeys = translatedkeys + "82,"; }
            if (ak[x] == "s") { translatedkeys = translatedkeys + "83,"; }
            if (ak[x] == "t") { translatedkeys = translatedkeys + "84,"; }
            if (ak[x] == "u") { translatedkeys = translatedkeys + "85,"; }
            if (ak[x] == "v") { translatedkeys = translatedkeys + "86,"; }
            if (ak[x] == "w") { translatedkeys = translatedkeys + "87,"; }
            if (ak[x] == "x") { translatedkeys = translatedkeys + "88,"; }
            if (ak[x] == "y") { translatedkeys = translatedkeys + "89,"; }
            if (ak[x] == "z") { translatedkeys = translatedkeys + "90,"; }
        }
    }
    translatedkeys = translatedkeys.split(",");
    var index = translatedkeys.indexOf(enteredkey + "");

    //alert(enteredkey + ' ' + translatedkeys);
    return(index >= 0);
}


function Left(str, n){
    if (n <= 0)
        return "";
    else if (n > String(str).length)
        return str;
    else
        return String(str).substring(0,n);
}
function Right(str, n){
   if (n <= 0)
      return "";
   else if (n > String(str).length)
      return str;
   else {
      var iLen = String(str).length;
      return String(str).substring(iLen, iLen - n);
   }

}
function Exists(con) {
    if (con != undefined) {
        return true;
    } else {
        return false;
    }
}
    

    


