var isNS4 = (navigator.appName=="Netscape")?1:0;
var strDateFormat = 'dd NNN yyyy';
// Java Script to Handle AutoSearch in a select box
function selectKeyDown()
{
    // Delete Key resets previous search keys
    if(window.event.keyCode == 46)
        clr();
}
function selectKeyPress()
{
    // Notes:
    //    1) previous keys are cleared onBlur/onFocus and with Delete key
    //    2) if the search doesn't find a match, this returns to normal 1 key 
    //        search setting returnValue = false below for ALL cases will 
    //        prevent default behavior    
    //TODO:
    //    1) add Netscape handling 

    var sndr = window.event.srcElement;
    var pre = this.document.all["keys"].value;
    var key = window.event.keyCode;
    var char = String.fromCharCode(key);

    // "i" -> ignoreCase
    var re = new RegExp("^" + pre + char, "i"); 

    for(var i=0; i<sndr.options.length; i++)
    {
        if(re.test(sndr.options[i].text))
        {
            sndr.options[i].selected=true;
            document.all["keys"].value += char;
            window.event.returnValue = false;
            break;
        }
    }
}
function clr()
{
    document.all["keys"].value = "";
}

//End of  Java Script to Handle AutoSearch in a select box


function check_email(e) {
	ok = "1234567890qwertyuiop[]asdfghjklzxcvbnm.@-_QWERTYUIOPASDFGHJKLZXCVBNM";	
	for(i=0; i < e.length ;i++){
		if(ok.indexOf(e.charAt(i))<0){ 
			return (false);
		}	
	} 	
	if (document.images) {
		re = /(@.*@)|(\.\.)|(^\.)|(^@)|(@$)|(\.$)|(@\.)/;
		re_two = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
		if (!e.match(re) && e.match(re_two)) {
			return (-1);		
		} 	
	}
}

function strtrim() {
//Match spaces at beginning and end of text and replace with null strings
	return this.replace(/^\s+/,'').replace(/\s+$/,'');
}
String.prototype.trim = strtrim;
//-------------------------------------------------------------------
// Trim functions
//   Returns string with whitespace trimmed
//-------------------------------------------------------------------
function LTrimBlank(str){
	if (str==null){return null;}
	for(var i=0;str.charAt(i)==" ";i++);
	return str.substring(i,str.length);
	}
function RTrimBlank(str){
	if (str==null){return null;}
	for(var i=str.length-1;str.charAt(i)==" ";i--);
	return str.substring(0,i+1);
	}
function TrimBlank(str){return LTrimBlank(RTrimBlank(str));}
function LTrim(str) {
	if (str==null){return str;}
	for (var i=0; str.charAt(i)==" " || str.charAt(i)=="\n" || str.charAt(i)=="\t"; i++);
	return str.substring(i,str.length);
	}
function RTrim(str) {
	if (str==null){return str;}
	for (var i=str.length-1; str.charAt(i)==" " || str.charAt(i)=="\n" || str.charAt(i)=="\t"; i--);
	return str.substring(0,i+1);
	}
function Trim(str) {
	return LTrim(RTrim(str));
	}

//-------------------------------------------------------------------
// isNull(value)
//   Returns true if value is null
//-------------------------------------------------------------------
function isNull(val){return(val==null);}

//-------------------------------------------------------------------
// isBlank(value)
//   Returns true if value only contains spaces
//-------------------------------------------------------------------
function isBlank(val){
	if(val==null){return true;}
	for(var i=0;i<val.length;i++) {
		if ((val.charAt(i)!=' ')&&(val.charAt(i)!="\t")&&(val.charAt(i)!="\n")&&(val.charAt(i)!="\r")){return false;}
		}
	return true;
	}
//-------------------------------------------------------------------
// isDigit(value)
//   Returns true if value is a 1-character digit
//-------------------------------------------------------------------
function isDigit(num) {
	if (num.length>1){return false;}
	var string="1234567890";
	if (string.indexOf(num)!=-1){return true;}
	return false;
	}
//-------------------------------------------------------------------
// isInteger(value)
//   Returns true if value contains all digits
//-------------------------------------------------------------------
function isInteger(val){
	if (isBlank(val)){return false;}
	for(var i=0;i<val.length;i++){
		if(!isDigit(val.charAt(i))){return false;}
		}
	return true;
	}
	
//-------------------------------------------------------------------
// isNumeric(value)
//   Returns true if value contains a positive float value
//-------------------------------------------------------------------
function isNumeric(val){	
	return(parseFloat(val,10)==(val*1))
}

//-------------------------------------------------------------------
// isArray(obj)
// Returns true if the object is an array, else false
//-------------------------------------------------------------------
function isArray(obj){return(typeof(obj.length)=="undefined")?false:true;}
//-------------------------------------------------------------------
// setNullIfBlank(input_object)
//   Sets a form field to "" if it isBlank()
//-------------------------------------------------------------------
function setNullIfBlank(obj){if(isBlank(obj.value)){obj.value="";}}

//-------------------------------------------------------------------
// setFieldsToUpperCase(input_object)
//   Sets value of form field toUpperCase() for all fields passed
//-------------------------------------------------------------------
function setFieldsToUpperCase(){
	for(var i=0;i<arguments.length;i++) {
		arguments[i].value = arguments[i].value.toUpperCase();
		}
	}
//-------------------------------------------------------------------
// setFieldsToLowerCase(input_object)
//   Sets value of form field toLowerCase() for all fields passed
//-------------------------------------------------------------------
function setFieldsToLowerCase(){
	for(var i=0;i<arguments.length;i++) {
		arguments[i].value = arguments[i].value.toLowerCase();
		}
	}

//-------------------------------------------------------------------
// allowNumbersOnlyKeyPress()
//   restrict the fields to accept only numbers
//-------------------------------------------------------------------
function allowNumbersOnlyKeyPress(event){
	
	if(!isNS4){
		if (event.keyCode ==13) {
			event.returnValue = false;
		}
		if ((event.keyCode < 48) || (event.keyCode > 57) && (event.keyCode != 32) && (event.keyCode != 8) && (event.keyCode != 127) && (event.keyCode != 13) && (event.keyCode != 9)  && (event.keyCode != 0)){
			alert("Please enter numbers only.");
			event.returnValue = false;
		}
	}else{
		if (event.which ==13) {
			return false;
		}
		if ((event.which < 48) || (event.which > 57) && (event.which != 32) && (event.which != 8) && (event.which != 127) && (event.which != 13) && (event.which != 9) && (event.which != 0)){
			alert("Please enter numbers only");
			return false;
		}
	}	
}
	
//-------------------------------------------------------------------
// allowNumbersDashOnlyKeyPress()
//   restrict the fields to accept only numbers and Dash
//-------------------------------------------------------------------	
function allowNumbersDashOnlyKeyPress(event){
	
	if(!isNS4){
		if (event.keyCode ==13) {
			event.returnValue = false;
		}
		if (((event.keyCode < 48) || (event.keyCode > 57)) && event.keyCode != 45 && (event.keyCode != 32) && (event.keyCode != 8) && (event.keyCode != 127) && (event.keyCode != 13) && (event.keyCode != 9)  && (event.keyCode != 0)){
			alert("Please enter only numbers or hyphens(-)");
			event.returnValue = false;
		}
	}else{
		if (event.which ==13) {
			return false;
		}
		if (((event.which < 48) || (event.which > 57)) && event.which != 45  && (event.which != 32) && (event.which != 8) && (event.which != 127) && (event.which != 13) && (event.which != 9) && (event.which != 0)){
			alert("Please enter only numbers or hyphens(-)");
			return false;
		}
	}
}

//-------------------------------------------------------------------
// allowCharacterOnly()
//   restrict the fields to accept only alphabets
//-------------------------------------------------------------------	
function allowCharacterOnly(event){
if (event.keyCode ==13) {
		return false;
	}
	if(!isNS4){
		//alert("event.keyCode = "+event.keyCode)
		if (((event.keyCode < 65) || (event.keyCode > 90)) && ((event.keyCode < 97) || (event.keyCode > 122))  && (event.keyCode != 32) && (event.keyCode != 8) && (event.keyCode != 127) && (event.keyCode != 13) && (event.keyCode != 9)  && (event.keyCode != 0)){
			alert("Please enter character only. maximum 20 characters");
			event.returnValue = false;
		}
	}else{
		//alert("event.which = "+event.which)
		if (((event.which < 65) || (event.which > 90)) && ((event.which < 97) || (event.which > 122)) && (event.which != 32) && (event.which != 8) && (event.which != 127) && (event.which != 13) && (event.which != 9) && (event.which != 0)){
			alert("Please enter character only. maximum 20 characters");
			event.returnValue = false;
		}
	}
}



//-------------------------------------------------------------------
// FloatNumberTypeKeyPress()
//   Checking the field for only for Floating Number
//-------------------------------------------------------------------

function fnNumberTypeKeyPress(event) {
	if(!isNS4){				
		if ( !((47 < event.keyCode) && (event.keyCode < 58)) && (event.keyCode != 46) && (event.keyCode != 32) && (event.keyCode != 8) && (event.keyCode != 127) && (event.keyCode != 13) && (event.keyCode != 9)  && (event.keyCode != 0) ) {
			alert("Only numbers and decimals(.) allowed for this field.");
			event.returnValue = false;
		} 
	}else{		
		if ( !((47 < event.which) && (event.which < 58)) && (event.which != 46)  && (event.which != 32) && (event.which != 8) && (event.which != 127) && (event.which != 13) && (event.which != 9) && (event.which != 0)) {
			alert("Only numbers and decimals(.) allowed for this field.");
   		 	return false;
		}
	}
}


//-------------------------------------------------------------------
// FloatNumberTypeKeyPress()
//   Checking the field for only for Floating Number
//-------------------------------------------------------------------

function fnNumberOnlyKeyPress(event) {
	if(!isNS4){				
		if ( !((47 < event.keyCode) && (event.keyCode < 58))  && (event.keyCode != 32) && (event.keyCode != 8) && (event.keyCode != 127) && (event.keyCode != 13) && (event.keyCode != 9)  && (event.keyCode != 0)) {
			alert("Only numbers allowed for this field.");
			event.returnValue = false;
		} 
	}else{		
		if ( !((47 < event.which) && (event.which < 58)) && (event.which != 32) && (event.which != 8) && (event.which != 127) && (event.which != 13) && (event.which != 9) && (event.which != 0)) {
			alert("Only numbers allowed for this field.");
   		 	return false;
		}
	}
}


//-------------------------------------------------------------------
// doNothing()
//  no action is taken 
//-------------------------------------------------------------------
function doNothing() {
	//do nothing
}

// ------------------------------------------------------------------
// Utility functions for parsing in getDateFromFormat()
// ------------------------------------------------------------------
function _isInteger(val) {
	var digits="1234567890";
	for (var i=0; i < val.length; i++) {
		if (digits.indexOf(val.charAt(i))==-1) { return false; }
		}
	return true;
	}
function _getInt(str,i,minlength,maxlength) {
	for (var x=maxlength; x>=minlength; x--) {
		var token=str.substring(i,i+x);
		if (token.length < minlength) { return null; }
		if (_isInteger(token)) { return token; }
		}
	return null;
	}
	


function findPosX(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}

/*this function will retun the Y th position in Pixel
of the given Object
*/
function findPosY(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}
var strCulprit = "";
function removeSqlInjection(strWords){
	var badStuff = new Array("select","union","drop", ";", "--", "insert",	"delete", "xp_","alert","'","script","<",">");		
	for(ccccc= 0;ccccc<badStuff.length;ccccc++){	
		if(CheckMatch(strWords, badStuff[ccccc])!= null) strCulprit+= badStuff[ccccc];
		strWords = replaceAll(strWords,badStuff[ccccc], "");
	}
	return strWords;
}

function replaceAll(str, strA, strB)
{
    return str.replace( new RegExp(strA,"gi"), strB );    
}

function CheckMatch(strWords,strMatch) {
	var re = new RegExp(strMatch);
	return strWords.match(new RegExp(strMatch));	
}

function checkInputString(obj, maxlength){		
	if(obj.value.length>=maxlength) {
		alert("Content should not exceed "+maxlength+" characters");		
		obj.value = obj.value.substring(0,maxlength);
	}
	obj.value = removeSqlInjection(obj.value);
	if(strCulprit.length>0){
		alert("The word '"+strCulprit+"' wont allowed");
		strCulprit = "";
	}
}
