<!-- Hide

function sValidateInt()
{
	var smRegExpr = new RegExp('[^0-9.-]');

	if (arguments.length != 1)
		return('ValidateInt : Invalid No. of arguments');

	if (smRegExpr.test(arguments[0]))
		return ('Invalid Integer');

	if ((isNaN(arguments[0])) | (isNaN(parseInt(arguments[0],10))))
		return ('Invalid Integer');

	return ("");
}

function sValidateInteger()
{
	var smRegExpr = new RegExp('[^0-9]');

	if (arguments.length != 1)
		return('ValidateInt : Invalid No. of arguments');

	if (smRegExpr.test(arguments[0]))
		return ('Invalid Integer');

	if ((isNaN(arguments[0])) | (isNaN(parseInt(arguments[0],10))))
		return ('Invalid Integer');

	return ("");
}

function sValidateStr()
{
	var smInStr;
	var smRegExp = new RegExp('^\\s\*$');

	if ((arguments.length < 1) | (arguments.length > 2))
		return('ValidateStr : Invalid No. of Arguments')

	smInStr = arguments[0];

	if (smInStr == "")
		return ('Invalid String ');

	if (smRegExp.test(smInStr))
		return ('Invalid String ');

	if (arguments.length == 2)
		if (smInStr.length > arguments[1])
			return ('Invalid String : Maximum ' + arguments[1] + ' Characters allowed');

	return ("");
}

function sValidateDate()
{
	var smDtStr, amRes, nmDD, nmMM, nmYY, dmDate;
	var smRegExpr = new RegExp('^\\d{1,2}[/-]\\d{1,2}[/-]\\d{4}$');

	if (arguments.length == 2)
	{
		smDtStr = arguments[0];
		if (smRegExpr.test(smDtStr))
		{
			amRes = smDtStr.split(new RegExp('[/-]'));
			if ((amRes == null) || (amRes.length != 3))
				return ('Invalid Date ');
			else
			{
				if (arguments[1] == 'dmy')
				{
					nmDD = amRes[0];
					nmMM = amRes[1];
				}
				else if (arguments[1] == 'mdy')
				{
					nmDD = amRes[1];
					nmMM = amRes[0];
				}
				else
					return ('Invalid Argument : ' + arguments[1]);

				nmYY = amRes[2];
			}
		}
		else
			return ('Invalid Date ');
	}
	else if (arguments.length == 4) 
	{
	if (arguments[3] == 'dmy')
	{
		nmDD = arguments[0];
		nmMM = arguments[1];
	}
	else if (arguments[3] == 'mdy')
	{
		nmDD = arguments[1];
		nmMM = arguments[0];
	}
	else
		return ('Invalid Argument : ' + arguments[3]);
	nmYY = arguments[2];

	if (sValidateInt(nmDD) != "")
		return('Invalid Day ');

	if (sValidateInt(nmMM) != "")
		return('Invalid Month ');
	if ((sValidateInt(nmYY) != "") || (parseInt(nmYY,10) < 1900))
		return('Invalid Year. Enter the year after 1899 ');
	}
	else
		return('ValidateDate : Invalid N0. of Arguments ');

	if ((nmDD > 31) || (nmDD < 1))
		return ('Invalid Day ');
	if ((nmMM > 12) || (nmMM < 1))
		return ('Invalid Month ');
	if (nmYY < 1900)
		return ('Invalid Year. Enter the year after 1899 ');

	dmDate = new Date(nmMM + '/' + nmDD + '/' + nmYY);

	if ((dmDate.getDate() != parseInt(nmDD,10)) || ((dmDate.getMonth()+1) != parseInt(nmMM,10)) || (dmDate.getFullYear() != (parseInt(nmYY,10))))
		return('Invalid Date ');

	return("");

}


function sValidateDateDMY()
{
	if (arguments.length == 1) 
		return(sValidateDate(arguments[0],'dmy'));
	else if (arguments.length == 3) 
		return(sValidateDate(arguments[0],arguments[1],arguments[2],'dmy'));
	else
		return('ValidateDateDMY : Invalid No. of arguments');
}


function sValidateDateMDY()
{
	if (arguments.length == 1) 
		return(sValidateDate(arguments[0],'mdy'));
	else if (arguments.length == 3) 
		return(sValidateDate(arguments[0],arguments[1],arguments[2],'mdy'));
	else
		return('ValidateDateMDY : Invalid No. of arguments');
}


function bCheckWhiteSpace()
{
	var smRegExpr = new RegExp('\\s');

	if (arguments.length != 1)
	{
		alert ('CheckWhiteSpace : Invalid Arguments');
		return 0;
	}
	return(smRegExpr.test(arguments[0]));
}


function sValidatePhoneNumbers()
{
	var amPhNos, nmCounter, smMsgStr, smInStr;
	var smRegExp = new RegExp('^(\\d{1,15}|\\d{1,4}-\\d{1,4}-\\d{1,7}|\\(\\d{1,4}\\)\\d{1,4}-\\d{1,7})$');

	if (arguments.length != 1)
		return('ValidatePhoneNumbers : Invalid No. of Arguments');

	smInStr = arguments[0];
	amPhNos = smInStr.split(';');

	smMsgStr = ' : Invalid Phone No. \n Valid formats \n  999999999999999 \n  (9999)9999-9999999 \n  9999-9999-9999999 \n ';

	for (nmCounter = 0; nmCounter < amPhNos.length; nmCounter++)
	if ((!(smRegExp.test(amPhNos[nmCounter]))) && (amPhNos[nmCounter] != ""))
		return (amPhNos[nmCounter] + smMsgStr);

	return("");
}


function bCheckPunctuationSymbols()
{
	var smRegExp = new RegExp('[^0-9A-Za-z]');

	if (arguments.length != 1)
	{
		alert ('CheckPunctuationSymbols : Invalid Arguments');
		return 0;
	}

	return (smRegExp.test(arguments[0]));
}


function sValidatePassword()
{
	var smPassword1, smPassword2;
	var smRegExp = new RegExp('\\s');

	if (arguments.length != 2) 
		return('ValidatePassword : Invalid No. of Arguments');

	smPassword1 = arguments[0];
	smPassword2 = arguments[1];

	if (sValidateStr(smPassword1) != "")
		return('Invalid Password String ');
	if (sValidateStr(smPassword2) != "")
		return('Invalid Password String ');
	if ((smRegExp.test(smPassword1)) || (smRegExp.test(smPassword1)))
		return('Invalid Password String ');
	if (smPassword1 != smPassword2)
		return('Passwords Doesn\'t match');
	return("");
}


function sValidateMailAddress(addr)
{
	/*
	var smRegExp = new RegExp('^[^.@][^@]\*@[^.@][^@]\*.[^.@]\*[^@]\*[^.@]\+$');

	if (arguments.length != 1) 
		return ('ValidateMailAddress : Invalid No. of Arguments ');
	if (smRegExp.test(arguments[0]))
		return ("");
	else
		return ('Invalid email address ');
	*/
	//alert("I am here");	
	if (arguments.length != 1) 
		return ('ValidateMailAddress : Invalid No. of Arguments ');
	else
	{
		//alert("I am here");	
		var addr = new String(arguments[0]);
		//alert("I am here");	
		at = addr.indexOf("@");
		//alert("I am here");	
		dt = addr.lastIndexOf(".");
		//alert("I am here");	
		if ((at != -1) && (dt != -1) && (at != 0) && (dt > at) && (dt-at != 1) && (dt != addr.length-1))
			return "";
		else
			return "Invalid email address";
		alert("I am here");	
	}
}


function sTrim()
{
	var smRegExp1 = new RegExp('^\\s\*');
	var smRegExp2 = new RegExp('\\s\*$');
	var smTmpStr;

	if (arguments.length != 1)
		return ("");

	smTmpStr = arguments[0].replace(smRegExp1,"");
	return(smTmpStr.replace(smRegExp2,""));
}


function sValidateTime()
{
	var smRegExp, amResStr, amResTime;

	if ((arguments.length < 2) || (arguments.length > 3))
		return('ValidateTime : Invalid No. of Arguments');

	if (arguments.length == 2)  // for timestring validation 
	{
		if (arguments[1] == 0)  // for 'hh:mm ampm'  format
		{
			smRegExp = new RegExp('^\\d{1,2}:\\d{1,2}\\s\+\(am|pm\)$','i');
			if (!(smRegExp.test(arguments[0])))
				return('Invalid Time String. Enter in (hh:mm ampm) format. \nNo Extra Spaces are allowed ');
			amResStr = arguments[0].split(new RegExp('\\s\+'));
			amResTime = amResStr[0].split(':');
			if ((amResTime[0] > 12) || (amResTime[0] < 1))
				return ('Invalid Hours (Valid Range : 1-12) ');
			if (amResTime[1] > 59)
				return ('Invalid Minutes (Valid Range : 0-59) ');
		}
		else if (arguments[1] == 1) // for 'hh:mm' format
		{
			smRegExp = new RegExp('^\\d{1,2}:\\d{1,2}$');
			if (!(smRegExp.test(arguments[0])))
				return('Invalid Time String. Enter in (hh:mm) format. \n No Extra Spaces are allowed ');
			amResTime = arguments[0].split(':');
			if (amResTime[0] > 23)
				return ('Invalid Hours (Valid Range : 0-23) ');
			if (amResTime[1] > 59)
				return ('Invalid Minutes (Valid Range : 0-59) ');
		}
		else
			return('ValidateTime : Last Argument Should be 0 or 1');
	}
	else  // for time with three arguments hh,mm, ampm
	{
	if (!((sTrim(arguments[2]).toLowerCase() == 'am') || (sTrim(arguments[2]).toLowerCase() == 'pm')))
		return ('Invalid Third Argument. Only am or pm are valid ');
	if (sValidateInt(arguments[0]) != "") 
		return ('Invalid Hours ');
	if (sValidateInt(arguments[1]) != "") 
		return ('Invalid Minutes ');
	if ((arguments[0] > 12) || (arguments[0] < 1))
		return ('Invalid Hours (Valid Range : 1-12) ');
	if (arguments[1] > 59)
		return ('Invalid Minutes (Valid Range : 0-59) ');
	}

	return("");
}

function vCompareDate()
{
	var smFirstDate, smLastDate;

	if (arguments.length != 2)
		return ('CompareDate : Invalid No. of arguments');

	smFirstDate = sGetDateString(arguments[0]);
	smLastDate = sGetDateString(arguments[1]);

	if (sValidateInt(smFirstDate) != "")
		return ('Invalid First Date ');

	if (sValidateInt(smLastDate) != "")
		return ('Invalid Last Date ');

	if (smFirstDate < smLastDate)
		return -1;
	else 
		if (smFirstDate == smLastDate) 
			return 0;
		else
			return 1;
}


function vCompareDateDMY()
{
	var amRes, omFDate, omSDate;
	var smRegExp = new RegExp('[/-]');
	if (arguments.length != 2)
		return('CompareDateDMY : Invalid Argument');
	if (sValidateDateDMY(arguments[0]) != "")
		return('Invalid First Date');
	if (sValidateDateDMY(arguments[1]) != "")
		return('Invalid Second Date');
	amRes = arguments[0].split(smRegExp);
	omFDate = new Date(amRes[1] + '/' + amRes[0] + '/' + amRes[2]);
	amRes = arguments[1].split(smRegExp);
	omSDate = new Date(amRes[1] + '/' + amRes[0] + '/' + amRes[2]);
	return(vCompareDate(omFDate,omSDate));
}

function sGetDateString()
{
	var smDateStr;

	if (arguments.length != 1)
		return ('GetDateString : Invalid Arguments ');

	if (typeof(arguments[0]) != 'object')
		return ('GetDateString : Invalid Date Object ');

	smDateStr = "" + arguments[0].getFullYear();
	while (smDateStr.length < 4)
	{
		smDateStr = '0' + smDateStr;
	}
	if (arguments[0].getMonth() < 9)
		smDateStr += '0';
	smDateStr +=  (arguments[0].getMonth() + 1);
	if (arguments[0].getDate() < 10)
		smDateStr += '0';
	smDateStr += arguments[0].getDate();
	return smDateStr;
}


function sHandleSingleQuote()
{
	if (arguments.length != 1)
	{
		alert('HandleSingleQuates: Invalid no. of arguments');
		return("");
	}
	return(arguments[0].replace(new RegExp("'","g"),"''"));
}

function sValidateIdentifier()
{
	var smRegExp1 = new RegExp('^(\\w|\\d|\-)+$');
	var smRegExp2 = new RegExp('(__|\-\-)');
	if (arguments.length != 1) 
		return ('ValidateIdentifier : Invalid No. of Arguments ');
	if (smRegExp1.test(arguments[0]))
	{
		if (smRegExp2.test(arguments[0]))
			return('Invalid Identifier');
		return ('');
	}
	else
		return ('Invalid Identifier ');
}

//*** FOLLOWINGS ARE ADDED FOR FUNCTIONALITY OF "XARA" ***//

// follwing function checks whether or not at least one checkbox is selected
// among list of checkboxes
// this function also handles condition when only one checkbox is there in list
// Author : Prem
// param : obj = checkbox  -  or  - array checkbox
// return true/false
function atLeastOneChecked(obj) {
	var flag = false;
	if ( obj.type == "checkbox" ) {
		if ( obj.status )
			flag = true
	} else {
		for( var i = 0 ; i< obj.length ; i++ ) {
			if ( obj[i].status ) {
				flag = true;
				break;
			}
		}
	}
	return flag;
}

// function to check whether all characters in textboxes are white spaces [imran]

function isAllSpaces(textBox)
{	var matchstr = textBox.value.match(/ /g);
	if ( matchstr == null )
		return false;
	else if ( matchstr.length == textBox.value.length )
		return true;
	else
		return false;
}

// End Hide -->
