//Trimming values
function trim(str)
{
	var str1=str.replace(/\S/g,"|");
	var i=str1.indexOf("|")-1;
	var j=str1.lastIndexOf("|")+1;
	var trimStr=str.substring(0,i).replace(/\s/g,"") + str.substring(i+1,j)
    trimStr = trimStr + str.substring(j).replace(/\s/g,"");
	return trimStr;
}

function CheckDropDown( dropDownValue )
{
if ( dropDownValue == 0 )
	{
	return false;
	}
else
	{
	return true;
	} 
}

//Email Validation
function checkMail(txtEmail)
{
    var strEmail,tempStr,countI,countJ;
	strEmail="";
	tempStr=txtEmail;
	
	for(countI=0;countI<tempStr.length;countI++)
	{
		if(tempStr.charAt(countI)==' ') 
			continue;
		else
			break
	}
	
	for(countJ=tempStr.length-1;countJ>=0;countJ--)
	{
		if(tempStr.charAt(countJ)==' ') 
			continue;
		else
			break
	}
	strEmail=tempStr.substring(countI,countJ+1);
	
	var SPLCHARS;
	SPLCHARS="'~!#$%^&*()`:\"<>?,/|\\"
	if(disallowChar(txtEmail,SPLCHARS) == false || countChar(txtEmail,"@") >1)
	{
		return false;
	}
	
	if(strEmail.indexOf("@") == -1 || strEmail.indexOf(".") == -1 || strEmail.indexOf(" ") != -1 || strEmail.indexOf("@") > strEmail.lastIndexOf(".") || strEmail.lastIndexOf(".")==strEmail.length-1) 
	{
		return false;
	}

	//added by Amjath on 04.01.2005 - to avoid "abc@.com" these type of email addressess
	var afterat = strEmail.substring(strEmail.indexOf("@")+1,strEmail.indexOf("@")+2);
	if(afterat == ".")
	{
		return false;
	}
	//added by Amjath ends

	return true;
}


//This function is used to check for the allowable characters
//FieldValue - The text entered by the user
//Chars - list of allowable characters
function allowChar(FieldValue,Chars)
{
	var FieldLen = FieldValue.length;
	for(i=0;i<FieldLen;i++)
	{
		var FieldChar = FieldValue.charAt(i);
		if(Chars.indexOf(FieldChar) < 0)
		{
			return false;
		}
	}
	return true;
}

//This function is used to check for the disallowable characters
//FieldValue - The text entered by the user
//Chars - list of allowable characters
function disallowChar(FieldValue,Chars)
{
	var FieldLen = FieldValue.length;
	for(i=0;i<FieldLen;i++)
	{
		var FieldChar = FieldValue.charAt(i);
		if(Chars.indexOf(FieldChar) >= 0)
		{
			return false;
		}
	}
	return true;
}


//To count the no. of occurences of a character
//str - the text entered by user 
//chr - character to check
function countChar(str,chr)
{
	var pos,cnt;
	cnt=0;
	while((pos=str.indexOf(chr)) != -1)
	{
		cnt++;
		str=str.substring(pos+1);
	}
	return cnt;
}


//date validation starts for mmm-yyyy format
function checkDateFormat2(FieldValue)
{
	var strMonths = "jan#feb#mar#apr#may#jun#jul#aug#sep#oct#nov#dec";
   	if(!(FieldValue.match(/\w\w\w-\d\d\d\d/gi))||(strMonths.match(FieldValue.substring(0,3).toLowerCase())!=FieldValue.substring(0,3).toLowerCase())||(FieldValue.substring(4,8)<1900)||(FieldValue.length>8))
   	{
		return false;
	}else {
		return true;
	}
}

//date validation starts for dd-mmm-yyyy format
function checkDateFormat(FieldValue)
{
	var strMonths = "jan#feb#mar#apr#may#jun#jul#aug#sep#oct#nov#dec";
   	if(!(FieldValue.match(/\d\d-\w\w\w-\d\d\d\d/gi))||(FieldValue.substring(0,FieldValue.length-9)>31)||(strMonths.match(FieldValue.substring(3,FieldValue.length-5).toLowerCase())!=FieldValue.substring(3,FieldValue.length-5).toLowerCase())||(FieldValue.substring(7,FieldValue.length)<1900)||(FieldValue.length>11))
   	{
		return false;
	}
	else
	{
		if (checkDate(FieldValue) == false)
		{
			return false;
		}
	}
}
	   
function checkDate(FieldValue)
{
	var strDate = FieldValue.substring(3,6)+" "+FieldValue.substring(0,2)+" "+FieldValue.substring(7,11);;
	var strDatestyle = "US"; //United States date style
	var strDateArray;
	var strDay;
	var strMonth;
	var strYear;
	var intday;
	var intMonth;
	var intYear;
	var booFound = false;
	var strSeparatorArray = new Array("-"," ");
	var intElementNr;
	var err = 0;
	var strMonthArray = new Array(12);
	strMonthArray[0] = "Jan";
	strMonthArray[1] = "Feb";
	strMonthArray[2] = "Mar";
	strMonthArray[3] = "Apr";
	strMonthArray[4] = "May";
	strMonthArray[5] = "Jun";
	strMonthArray[6] = "Jul";
	strMonthArray[7] = "Aug";
	strMonthArray[8] = "Sep";
	strMonthArray[9] = "Oct";
	strMonthArray[10] = "Nov";
	strMonthArray[11] = "Dec";
	
	if(strDate.length < 1)
	{
		return true;
	}
	
	for (intElementNr = 0; intElementNr < strSeparatorArray.length; intElementNr++)
	{
		if (strDate.indexOf(strSeparatorArray[intElementNr]) != -1) 
		{
			strDateArray = strDate.split(strSeparatorArray[intElementNr]);
			if (strDateArray.length != 3)
			{
				err = 1;
				return false;
			}
			else
			{
				strDay = strDateArray[0];
				strMonth = strDateArray[1];
				strYear = strDateArray[2];
			}
			booFound = true;
		}
	}
	
	if (booFound == false)
	{
		if (strDate.length>5) 
		{
			strDay = strDate.substr(0, 2);
			strMonth = strDate.substr(2, 2);
			strYear = strDate.substr(4);
	   }
	}

	if (strYear.length == 2) 
	{
		strYear = '20' + strYear;
	}

	// US style
	if (strDatestyle == "US") 
	{
		strTemp = strDay;
		strDay = strMonth;
		strMonth = strTemp;
	}
	
	intday = parseInt(strDay, 10);
	if (isNaN(intday)) 
	{
		err = 2;
		return false;
	}
	
	intMonth = parseInt(strMonth, 10);
	if (isNaN(intMonth)) 
	{
		for (i = 0;i<12;i++)
		{
			if (strMonth.toUpperCase() == strMonthArray[i].toUpperCase())
			{
				intMonth = i+1;
				strMonth = strMonthArray[i];
				i = 12;
		   }
		}
		
		if (isNaN(intMonth)) 
		{
			err = 3;
			return false;
		}
	}
	
	intYear = parseInt(strYear, 10);
	if (isNaN(intYear)) 
	{
		err = 4;
		return false;
	}

	if (intMonth>12 || intMonth<1) 
	{
		err = 5;
		return false;
	}

	if ((intMonth == 1 || intMonth == 3 || intMonth == 5 || intMonth == 7 || intMonth == 8 || intMonth == 10 || intMonth == 12) && (intday > 31 || intday < 1)) 
	{
		err = 6;
		return false;
	}
	
	if ((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) && (intday > 30 || intday < 1)) 
	{
		err = 7;
		return false;
	}

	if (intMonth == 2) 
	{
		if (intday < 1) 
		{
			err = 8;
			return false;
		}
		if (LeapYear(intYear) == true) 
		{
			if (intday > 29) 
			{
				err = 9;
				return false;
			}
		}
		else
		{
			if (intday > 28) 
			{
				err = 10;
				return false;
			}
		}
	}
		
	return true;
}

function LeapYear(intYear) 
{
	if (intYear % 100 == 0) 
	{
		if (intYear % 400 == 0) { return true; }
	}
	else 
	{
		if ((intYear % 4) == 0) { return true; }
	}
	return false;
}

//Checks for greater than current date (dd-mmm-yyyy format)
function checkCurrentDate(FieldValue) 
{
	var strDate = FieldValue.substring(3,6)+" "+FieldValue.substring(0,2)+" "+FieldValue.substring(7,11);
		
	//Getting Current Date - starts
	function makeArray()
	{
		for (i = 0; i<makeArray.arguments.length; i++)
			this[i + 1] = makeArray.arguments[i];
	}
	var months = new makeArray('Jan','Feb','Mar','Apr','May','Jun', 'Jul','Aug','Sep','Oct','Nov','Dec');
	var date = new Date();
	var day = date.getDate();
	var month = date.getMonth() + 1;
	var yy = date.getYear();
	var year = (yy < 1000) ? yy + 1900 : yy;
	var currdt = months[month]+" "+day+" "+year;
	//Getting Current Date - ends
	
	if (Date.parse(strDate) <= Date.parse(currdt)) 
	{
		return true;
	}
	else 
	{
		return false;
	}
}
//Added for mm-yyyy format
function checkCurrentDate2(FieldValue) 
{
	var strDate = FieldValue.substring(0,3)+" "+"01"+" "+FieldValue.substring(4,11);
		
	//Getting Current Date - starts
	function makeArray()
	{
		for (i = 0; i<makeArray.arguments.length; i++)
			this[i + 1] = makeArray.arguments[i];
	}
	var months = new makeArray('Jan','Feb','Mar','Apr','May','Jun', 'Jul','Aug','Sep','Oct','Nov','Dec');
	var date = new Date();
	var day = date.getDate();
	var month = date.getMonth() + 1;
	var yy = date.getYear();
	var year = (yy < 1000) ? yy + 1900 : yy;
	var currdt = months[month]+" "+day+" "+year;
	//Getting Current Date - ends
	
	if (Date.parse(strDate) <= Date.parse(currdt)) 
	{
		return true;
	}
	else 
	{
		return false;
	}
}

function checkAlphaNumeric(FieldValue)
{
	var CharsToAllow = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
	if(allowChar(FieldValue,CharsToAllow) == false)
		return false;
	else
		return true;
}
function checkAlphaNumericDot(FieldValue)
{
	var CharsToAllow = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.";
	if(allowChar(FieldValue,CharsToAllow) == false)
		return false;
	else
		return true;
}
function checkAlphaNumericSpace(FieldValue)
{
	var CharsToAllow = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ ";
	if(allowChar(FieldValue,CharsToAllow) == false)
		return false;
	else
		return true;
}
function checkNull(FieldValue)
{
	
	if(FieldValue.length == 0 )
		return false;
	else
		return true;
}

//Check TextBox Null  || 
function checkSpace(FieldValue)
{
	
	if(FieldValue.indexOf(" ") != -1)
		return false;
	else
		return true;
}

function checkName(FieldValue)
{
	var CharsToAllow = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ. ";
	if(allowChar(FieldValue,CharsToAllow) == false)
		return false;
	else
		return true;
}

function checkNameChar(FieldValue)
{
	var CharsToAllow = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ ";
	if(allowChar(FieldValue,CharsToAllow) == false)
		return false;
	else
		return true;
}

function checkNamewithAlpha(FieldValue)
{
	var CharsToAllow = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789' ";
	if(allowChar(FieldValue,CharsToAllow) == false)
		return false;
	else
		return true;
}

function checkNameSpecial(FieldValue)
{
	var CharsToAllow = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*(), ";
	if(allowChar(FieldValue,CharsToAllow) == false)
		return false;
	else
		return true;
}

function checkAddress(FieldValue)
{
	var CharsToAllow = "-1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*(),. ";
	if(allowChar(FieldValue,CharsToAllow) == false)
		return false;
	else
		return true;
}

/*
function checkAddress(FieldValue)
{
	var CharsToAllow = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*(),/-.:'\"+/*- ";
	if(allowChar(FieldValue,CharsToAllow) == false)
		return false;
	else
		return true;
}
*/


function checkInvalidEntry(FieldValue)
{
	var CharsToDisAllow = "<>";	
	if(disallowChar(FieldValue,CharsToDisAllow) == false)
		return false;
	else
		return true;
}

function checkPassword(FieldValue)
{	
	//Password should contain only the characters given below
	var PwdSet = "!@#$%^&*.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
	if(allowChar(FieldValue,PwdSet) == false)
	{
		return false;
	}
	else
	{
		return true;
	}
}

function checkAlphaNumOccurence(FieldValue)
{
	//Password should have atleast one alphabet and atleast one number

	//Checking whether any Number exists in the input
	var NumberSet = "0123456789";
	var NumberFlag = "false";
	for(i=0; i<FieldValue.length; i++)
	{
		var FieldChar = FieldValue.charAt(i);
		if(NumberSet.indexOf(FieldChar) >= 0)
		{
			NumberFlag = "true";
			break;
		}
	}
	
	//Checking whether any Alphabet exists in the input
	var AlphabetSet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
	var AlphabetFlag = "false";
	for(i=0; i<FieldValue.length; i++)
	{
		var FieldChar = FieldValue.charAt(i);
		if(AlphabetSet.indexOf(FieldChar) >= 0)
		{
			AlphabetFlag = "true";
			break;
		}
	}
	
	if(NumberFlag == "false" || AlphabetFlag == "false")
	{
		return false;
	}
	else if(NumberFlag == "true" && AlphabetFlag == "true")
	{
		return true;
	}
}

function checkNumeric(FieldValue)
{
	var CharsToAllow = "0123456789";
	if(allowChar(FieldValue,CharsToAllow) == false)
		return false;
	else
		return true;
}

function checkdecimal(FieldValue)
{
	var CharsToAllow = "0123456789.";
	if(allowChar(FieldValue,CharsToAllow) == false)
		return false;
	else
		return true;
}

function checkPhone(FieldValue)
{
	var CharsToAllow = "0123456789 ";
	if(allowChar(FieldValue,CharsToAllow) == false)
		return false;
	else
		return true;
}

// validation for CGPA
function checkCGPAFormat(FieldValue)
{
	if (!(FieldValue.match(/\d\d\d\.\d\d/gi)))
		return false;
	else if (trim(FieldValue).length > 6)
		return false;
	else
		return true;
}
function checkValidCGPA(FieldValue)
{
	if(allowChar(FieldValue,"0123456789.")==false){
		return false;
	}else {
		var NoNumber = 0;
		for(intI=0;intI<FieldValue.length;intI++)
		{
			if (FieldValue.charAt(intI)=='.')
			NoNumber = NoNumber + 1;
		}
		if (trim(FieldValue)=='.') {
			return false;
		}else if(trim(FieldValue).length > 5) {
			return false;
		}else if (NoNumber > 1) {
			return false;
		}else if(FieldValue<1.00 || FieldValue>10) {
			return false;
		}else if(!(FieldValue.indexOf(".")==-1)) {
			if (FieldValue.split(".")[1].length < 1) {
			return false;
			}else if (FieldValue.split(".")[1].length > 2) {
			return false;
			}
		}else {
			return true;
		}
	}
}

// validation for percentage
function checkValidPercentage(FieldValue)
{
	if(allowChar(FieldValue,"0123456789.")==false){
		return false;
	}else {
		var NoNumber = 0;
		for(intI=0;intI<FieldValue.length;intI++)
		{
			if (FieldValue.charAt(intI)=='.')
			NoNumber = NoNumber + 1;
		}
		if (trim(FieldValue)=='.') {
			return false;
		}else if(trim(FieldValue).length > 6) {
			return false;
		}else if (NoNumber > 1) {
			return false;
		}else if(FieldValue<0.01 || FieldValue>100) {
			return false;
		}else if(!(FieldValue.indexOf(".")==-1)) {
			if (FieldValue.split(".")[1].length < 1) {
			return false;
			}else if (FieldValue.split(".")[1].length > 2) {
			return false;
			}
		}else {
			return true;
		}
	}
}

function checkValidRate(FieldValue)
{
	if(allowChar(FieldValue,"0123456789.")==false){
		return false;
	}else {
		var NoNumber = 0;
		for(intI=0;intI<FieldValue.length;intI++)
		{
			if (FieldValue.charAt(intI)=='.')
			NoNumber = NoNumber + 1;
		}
		if (trim(FieldValue)=='.') {
			return false;
		}else if(trim(FieldValue).length > 11) {
			return false;
		}else if (NoNumber > 1) {
			return false;
		}else if(FieldValue<0 || FieldValue>10000000) {
			return false;
		}else if(!(FieldValue.indexOf(".")==-1)) {
			if (FieldValue.split(".")[1].length < 1) {
			return false;
			}else if (FieldValue.split(".")[1].length > 2) {
			return false;
			}
		}else {
			return true;
		}
	}
}

//returns false if Date1 < Date2
function compareDate(Date1, Date2) 
{
	var strDate1 = Date1.substring(3,6)+" "+Date1.substring(0,2)+" "+Date1.substring(7,11);
	var strDate2 = Date2.substring(3,6)+" "+Date2.substring(0,2)+" "+Date2.substring(7,11);
		
	if(Date.parse(strDate1) < Date.parse(strDate2)) 
	{
		return false;
	}
	else 
	{
		return true;
	}
}

//returns false if Date1 < Date2 for the format mm-yyyy
function compareDate2(Date1, Date2) 
{
	var strDate1 = Date1.substring(0,3)+" "+"01"+" "+ Date1.substring(4,11);
	var strDate2 = Date2.substring(0,3)+" "+"01"+" "+ Date2.substring(4,11);
		
	if(Date.parse(strDate1) < Date.parse(strDate2)) 
	{
		return false;
	}
	else 
	{
		return true;
	}
}


function checkTelephone(Tel1,Tel2,Tel3)
{
	if(Tel1.length == 0 || Tel2.length == 0 || Tel3.length == 0)
	{
		return false;
	}
	else
	{
		if(checkNumeric(Tel1) == false || checkNumeric(Tel2) == false || checkNumeric(Tel3) == false)
		{
			return false;
		}
	}	
}


//Check for mobile number validation
function checkMobile(Tel1,Tel2)
{
	if(Tel1.length == 0 || Tel2.length == 0)
	{
		return false;
	}
	else
	{
		if(checkNumeric(Tel1) == false || checkNumeric(Tel2) == false)
		{
			return false;
		}
	}	
}

//Checks for greater than 100yrs and less than 18yrs
function checkBirthDate(FieldValue) 
{
	
	//Getting Current Date - starts
	function makeArray()
	{
		for (i = 0; i<makeArray.arguments.length; i++)
			this[i + 1] = makeArray.arguments[i];
	}
	var months = new makeArray('Jan','Feb','Mar','Apr','May','Jun', 'Jul','Aug','Sep','Oct','Nov','Dec');
	var date = new Date();
	var day = date.getDate();
	var month = date.getMonth() + 1;
	var yy = date.getYear();
	var year = (yy < 1000) ? yy + 1900 : yy;
	var currdt = months[month]+" "+day+" "+year;
	//Getting Current Date - ends
	
	//alert( (Date.parse(currdt) - Date.parse(strDate))/86400000 );
	var strTotYrs = (year-1) - FieldValue.substring(7,11);	
	var strLastYr = FieldValue.substring(3,6)+" "+FieldValue.substring(0,2)+" "+(year-1);
	var strYrDays;
	if (LeapYear(year))
		strYrDays = 366;
	else
		strYrDays = 365;
		
	if ( ((Date.parse(currdt) - Date.parse(strLastYr)) / 86400000) >=strYrDays )
		{ strTotYrs = strTotYrs + 1; }

 	if (strTotYrs<18)
	{
		return 1;
	}
	else if (strTotYrs>100)
	{
		return 2;
	}	
	else
	{
		return 0;
	}
	
}

function getResln()
{
	
	var txtReslnVal = "";
	if (screen.width >=1024) {
		txtReslnVal = "_1024";
	}else if (screen.width <=800) {
		txtReslnVal = "_800";
	}else {
		txtReslnVal = "_800";
	}

return txtReslnVal;
}

function checkValidName(FieldValue)
{
	if (trim(FieldValue).length > 0) 
	{
		if(!FieldValue.match(/^[a-zA-Z]+[a-zA-Z\s']*$/gi))
			return false;
		else
			return true;
	}
}

function checkNonNumeral(FieldValue)
{
	if (trim(FieldValue).length > 0) 
	{
		if(!FieldValue.match(/[a-zA-Z]+/gi))
			return false;
		else
			return true;
	}
}

function checkValidTextArea(FieldValue)
{
	if (trim(FieldValue).length > 0) 
	{
		if(!FieldValue.match(/[a-zA-Z]+/gi))
			return false;
		else
			return true;
	}
}

function checkPositiveNumbers(FieldValue)
{
	if (trim(FieldValue).length > 0) 
	{
		if(!FieldValue.match(/^[1-9]+[0-9]*$/gi))
			return false;
		else
			return true;
	}
}

function checkValidPassAns(FieldValue)
{
	if (trim(FieldValue).length > 0) 
	{
		if(!FieldValue.match(/^[a-zA-Z0-9\s']*$/gi))
			return false;
		else
			return true;
	}
}

/// Checks For Decimal lengths and Returns The Rounded Number 
/// fdp(23.345,2) Returns ---> 23.35

function fdp(n,d){
	var xx = n.indexOf('.')
	var l = n.length
	var zstr = '0000000000000000000000'
	var theInt = ''
	var theFrac = ''
	var theNo = ''
	rfac = ''
	rfacx = 0
	nx = 0
	var xt = parseInt(d) + 1
	var rstr = '' + zstr.substring(1,xt)
	var rfac = '.' + rstr + '5'
	var rfacx = parseFloat(rfac)
	if (xx == -1 ) 	{    // No fraction
		theFrac = zstr
		theInt = "" + n
	}
	else if (xx == 0) {
		theInt = '0'
		nx = 0 + parseFloat(n) + parseFloat(rfacx)
		n = nx + zstr
		theFrac = '' + n.substring(1, n.length)
	}
	else {
		theInt = n.substring(0,xx)
		
		nx = parseFloat(n) + rfacx
		n = '' + nx + zstr
		if(parseInt(n) == 1 )
		{
		theInt	=	parseInt(n);
		}
		theFrac = '' + n.substring(xx+1,xx + 1 + parseInt(d))
		var astr = 'd = ' + d
	}
	theFrac = theFrac.substring(0,parseInt(d))
	var ii = 0
	theNo = theInt + '.' + theFrac
	return theNo
}

