// JavaScript Document
var expChk1=new Array("SCRIPT","CREATE","INSERT","SELECT","DELETE","DROP","UPDATE");
//-----------------------
function numbersonly(e,dec)
{
var key;
var keychar;
if (window.event)
   key = window.event.keyCode;
else if (e)
   key = e.which;
else
   return true;
keychar = String.fromCharCode(key);

// control keys
if ((key==null) || (key==0) || (key==8) || 
    (key==9) || (key==13) || (key==27) )
   return true;

// numbers
else if ((("0123456789").indexOf(keychar) > -1))
   return true;

// decimal point jump
else if (dec && (keychar == "."))
   {
   dec.focus();
   dec.select();
   return false;
   }
else
   return false;
}

//2.to return 0 if the text box is left empty
function checkzero(field){var str1=new String();str1=field.value; if(str1.length==0){field.value="0";}}
//3.Function to  for converting the decimal number to two digit number
function checkzeroD(field)
{var str1=new String();str1=field.value;
if(str1.length==0) {field.value="00";}
else{if (str1.length==1){field.value="0"+field.value;}}
}

function trimString (str) {
  while (str.charAt(0)==' ')
    str = str.substring(1);
  while (str.charAt(str.length-1)==' ')
    str = str.substring(0, str.length-1);
  return str;
}
//4.For printing a page and hiding the button on click and show after print
// quick browser tests
var ns4 = (document.layers) ? true : false;
var ie4 = (document.all && !document.getElementById) ? true : false;
var ie5 = (document.all && document.getElementById) ? true : false;
var ns6 = (!document.all && document.getElementById) ? true : false;

function show(sw,obj) {
	// show/hide the divisions
	if (sw && (ie4 || ie5) ){document.all[obj].style.visibility = 'visible';}
	if (!sw && (ie4 || ie5) ){document.all[obj].style.visibility = 'hidden';}

	if (sw && ns4){ document.layers[obj].visibility = 'visible';}
	if (!sw && ns4){ document.layers[obj].visibility = 'hidden';}
	
}

//5.To avoid the entry of invalid charachers
function validChar(e)
{
var key;
var keychar;
if (window.event)
   key = window.event.keyCode;
else if (e)
   key = e.which;
else
   return true;
keychar = String.fromCharCode(key);
// control keys
if ((key==null) || (key==0) || (key==8) || 
    (key==9) || (key==13) || (key==27) )
   return true;
// numbers
else if ((("'\\@#$%^*().~!_+=|:;\"{}[]?><`").indexOf(keychar) > -1))
   return false;
}

//6.To avoid the entry of invalid charachers in message/subject/suggestion
function validKeyMsg(e)
{
var key;
var keychar;
if (window.event)
   key = window.event.keyCode;
else if (e)
   key = e.which;
else
   return true;
keychar = String.fromCharCode(key);
// control keys
if ((key==null) || (key==0) || (key==8) || 
    (key==9) || (key==13) || (key==27) )
   return true;
// numbers
else if ((("'\\@#$%^*()~!_+=|:;\"{}[]?><`").indexOf(keychar) > -1))
   return false;
}

//7.Check Keypress of phone
 function chkPhoneKey(e)
 {
	var key;
	var keychar;
	if (window.event)
	   key = window.event.keyCode;
	else if (e)
	   key = e.which;
	else
   		return true;
	keychar = String.fromCharCode(key);
	if (("0123456789-()+ ").indexOf(keychar) > -1)
		return true;
	else
		return false;
 }
//8.Checking email Validation
 function validEmail(str){ 
  //var filter=/^.+@.+\..{2,3}$/ ;
  var filter=/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;
  return (filter.test(str));
  }
//
String.prototype.trim = function() { return this.replace(/^\s+|\s+$/, ''); };

//9.For key press on user id text box
function chkUserKey(e)
{
var key;
var keychar;
if (window.event)
   key = window.event.keyCode;
else if (e)
   key = e.which;
else
   return true;
keychar = String.fromCharCode(key);
// control keys
if ((key==null) || (key==0) || (key==8) || 
    (key==9) || (key==13) || (key==27) )
   return true;
// numbers
else if ((key >=65 && key<=90) || (key>=97 && key <122) || (key>=48 && key <=57)) //Alphabets & Numbers
	   return true;
   else
   return false;
}

//10.for strings validations
function validStr(strChk)
{
var invalidYN=0;var i=0;strChk=strChk.trim();
//Reserved word
for(i=0;i<expChk1.length;i++)
{
	var chk=new RegExp(expChk1[i]);
	if (strChk.toUpperCase().match(chk))
	{invalidYN=1;break;}
}
//==========Invalid Charachers 
var strlen=strChk.length;
var chkStr=/['\\@#$%^*()~!_+=|:;\"{}[]?><`]/;
if (strChk.match(chkStr))
{invalidYN=1;}
//=============================
if (invalidYN==1){return false;}
}

//===Integer Check=======================================
function validInt(intCheck,intMinLen,intMaxLen,intSign)
{
if (intCheck.length>intMaxLen)
{return false;}
//------------------------------------
if (intCheck.length<intMinLen)
{return false;}
//------------------------------------
validFormatRegExp = /^(\d)?\d*$/;

if (intSign=="-")
{
if ((intCheck=="-1") || validFormatRegExp.test(intCheck)==true)
{return true;}
else
{return false;}

}
else
{
//integer 
return validFormatRegExp.test(intCheck);
}
}

//11. For Month validation
function validMonth(strChk)
{
if (validInt(strChk,1,2,"+")==true)
{
	var mmonth=parseInt(strChk,10);
	if (mmonth>12 || mmonth<1){return false;}
	else{return true;}
}
else
{
	return false;
}
}

//12.for valid message
function validMessage(strChk,fieldName)
{
var errCount=0;
var errMsg=new String();
errMsg="Please Check " +fieldName+" for-->>\n";
//Reserved Words
for(i=0;i<expChk1.length;i++)
{

	var chk=new RegExp(expChk1[i]);
	if (strChk.toUpperCase().match(chk))
	{errCount++;errMsg=errMsg+errCount+". Use synonym of word "+expChk1[i]+"\n";break;}
}
 //==========Invalid Charachers 
var strlen=strChk.length;
var chkStr=/['\\@#$%^*()~!_+=|:;\"{}[]?><`]/;
if (strChk.match(chkStr))
{invalidYN=1;}

 //return false;
if (errCount>0){alert(errMsg);return false;}
}

///13.FUNCTIONS FOR VALID CONTACT NUMBER
// Declaring required variables
var digits = "0123456789";
// non-digit characters which are allowed in phone numbers
var phoneNumberDelimiters = "()- ";
// characters which are allowed in international phone numbers
// (a leading + is OK)
var validWorldPhoneChars = phoneNumberDelimiters + "+";
// Minimum no of digits in an international phone no.
var minDigitsInIPhoneNumber = 10;

function isInteger(s)
{   var i;
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag)
{   var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function checkInternationalPhone(strPhone){
s=stripCharsInBag(strPhone,validWorldPhoneChars);
return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}

function checkPhone(strChk){
	var Phone=strChk
	
	if ((Phone.value==null)||(Phone.value=="")){
		//alert("Please Enter your Phone Number")
		//Phone.focus()
		return false
	}
	if (checkInternationalPhone(Phone.value)==false){
		//alert("Please Enter a Valid Phone Number")
		//Phone.value=""
		//Phone.focus()
		return false
	}
	return true
 }



//14.to check password
function validPSWD(fieldChk,keyType)
{
var i;
var expChk=/\s/;
var strChk=fieldChk.value.trim();
var errCount=0;
var errMsg=new String();
errMsg="Invalid "+keyType+" Key, Please Check for-->>\n";
//Length Check
if (strChk.trim().length>10 || strChk.length<8)
{errCount++;errMsg=errMsg+errCount+". Minimum 8 & Maximum 10 Characters are allowed\n";}
else
{
	//Preceeding/following integer check
	if (("0123456789").indexOf(strChk.substr(0,1)) > -1) 
	{errCount++;errMsg=errMsg+errCount+". Should not start with a digit\n";}
	
	
	if (("0123456789").indexOf(strChk.substr(strChk.length-1,1)) > -1)
	{errCount++;errMsg=errMsg+errCount+". Should not end with a digit\n";}
	
	if (strChk.search(expChk)>-1)
	{errCount++;errMsg=errMsg+errCount+". Should not contain any whitespace character\n";}
	
	//Reserved word
	for(i=0;i<expChk1.length;i++)
	{
		var chk=new RegExp(expChk1[i]);
		if (strChk.toUpperCase().match(chk))
		{errCount++;errMsg=errMsg+errCount+". Should not contain the reserved keyword "+expChk1[i]+"\n";break;}
	}

}

if (errCount>0){alert(errMsg);fieldChk.focus();return false;}
}


//15. to validate user id
function validUser(fieldChk)
{
var errCount=0;
var errMsg=new String();
errMsg="Invalid User Id, Please Check for-->>\n";

var i=0;
var usrID=fieldChk.value.trim();

//Should Not Blank
var strlen=usrID.length;
if (strlen==0)
{errCount++;errMsg=errMsg+errCount+". Blank User ID is not allowed\n";}
//Should only contain alphanumeric characters

for (i=0;i<strlen;i++)
{
strChk=usrID.charCodeAt(i);
 if ((strChk >=65 && strChk<=90) || (strChk>=97 && strChk <122) || (strChk>=48 && strChk <=57)){continue;}
 else{errCount++;errMsg=errMsg+errCount+". Only alphanumeric characters are allowed\n";break;}
 }

//Should not contain any reserved word
for(i=0;i<expChk1.length;i++)
{
	var chk=new RegExp(expChk1[i]);
	if (usrID.toUpperCase().match(chk))
	{errCount++;errMsg=errMsg+errCount+". "+expChk1[i]+" is a reserved keyword\n";break;}
}
if (errCount>0){alert(errMsg);fieldChk.focus();return false;}
}


//16.Functions for Login user id & pswd check
function validUsrLog(valChk)
{
var i=0;
var usrID=valChk.trim();

//Should Not Blank
var strlen=usrID.length;
if (strlen==0)
{return false;}
//Should only contain alphanumeric characters

for (i=0;i<strlen;i++)
{
strChk=usrID.charCodeAt(i);
 if ((strChk >=65 && strChk<=90) || (strChk>=97 && strChk <122) || (strChk>=48 && strChk <57)){continue;}
 else{return false;break;}
 }

//Should not contain any reserved word
for(i=0;i<expChk1.length;i++)
{
	var chk=new RegExp(expChk1[i]);
	if (usrID.toUpperCase().match(chk))
	{return false;break;}
}
}



//17. for valid password
function validPSWDLog(valChk)
{
var i;
var expChk=/\s/;
var strChk=valChk.trim();
//Length Check
if (strChk.trim().length>10 || strChk.length<8)
{return false;}
else
{
	//Preceeding/following integer check
	if (("0123456789").indexOf(strChk.substr(0,1)) > -1) 
	{return false;}
	
	
	if (("0123456789").indexOf(strChk.substr(strChk.length-1,1)) > -1)
	{return false;}
	
	if (strChk.search(expChk)>-1)
	{return false;}
	
	//Reserved word
	for(i=0;i<expChk1.length;i++)
	{
		var chk=new RegExp(expChk1[i]);
		if (strChk.toUpperCase().match(chk))
		{return false;break;}
	}

}
}

