var VAL_TYPE_BLANK = 1;
var VAL_TYPE_EMAIL = 2;
var VAL_TYPE_PHONE_NO = 3;
var VAL_TYPE_DATE = 4;
var VAL_TYPE_COMPARE = 5;
var VAL_TYPE_TIME = 6;
var VAL_TYPE_NUM = 7;
var VAL_TYPE_ZIP = 8;
var VAL_TYPE_MUL_EMAIL = 9;
var VAL_TYPE_ZIP_CANADA = 10;
var VAL_TYPE_CELLNUM =11;
var VAL_TYPE_PHONE_NO_SPAIN=12;
var VAL_TYPE_OTHER_STATE= 13;
var arrayofvaluesforpages = new Array();
var playerstobeadded = "";
			

function VerifyObjects() {
//debugger;
	var arg = VerifyObjects.arguments;
	var i;
	var isOk = true;
	var curRef = eval(arg[0]);
	var curRefString = arg[0];
	if (typeof(curRef) != "object" && typeof(curRef) != "function") isOk = false;
	else {
		for (i=1;i<arg.length;i++) {
			curRefString = curRefString + "." + arg[i];
			if (typeof(eval(curRefString)) != "object" && typeof(eval(curRefString)) != "function") {
				isOk = false;
				break;
			}
			else {
				curRef = eval(curRefString);
			}
		}
	}
	if (isOk == true) return curRef;
	else return null;
}
function ValidateEmailAdds(inVal)  {
	var j;
	if ((inVal.split (",").length > 1) && (inVal.split (";").length > 1)) {
		emailArr = inVal.split (",");
		for (j=0 ;j<emailArr.length; j++) {
			valid = ValidateMultipleEmailAdds (emailArr[j],";")
			if (!valid)
				return false;
		}
	}
	else if (inVal.split (",").length > 1) {
		valid = ValidateMultipleEmailAdds (inVal,",");
		if  (!valid)
			return false;
	}
	else {
		valid = ValidateMultipleEmailAdds(inVal,";");
		if (!valid)
			return false;
	}
	return true;
}
function Trim(inStr, inVal) {
	var tmpStr = 0, i = 0;
	if(inVal == "undefined")
		inVal = 0;
	if (inVal == 1 || inVal == 0 || Trim.arguments.length == 1)
		for (i = 0;i < inStr.length;i++)
			if (inStr.substring(i,i + 1) != ' ')
				break;
	inStr = inStr.substring(i, inStr.length);
	i = inStr.length - 1;
	if (inVal == 2 || inVal == 0 || Trim.arguments.length == 1)
		for (;i > -1;i--)
			if (inStr.substring(i, i + 1) != ' ')
				break;
	inStr = inStr.substring(0, i + 1);
	return inStr;
}
var monthdateArr = [{month:0,days:31}, {month:1,days:28}, {month:2,days:31}, {month:3,days:30}, {month:4,days:31}, {month:5,days:30}, {month:6,days:31}, {month:7,days:31}, {month:8,days:30}, {month:9,days:31}, {month:10,days:30}, {month:11,days:31}];
function validateDate(date, month, year)
{
	var remainder = year%4;
	var maxdate = getmaxformonth(remainder, month);
	return (date > 0 && date < (maxdate + 1));
}
function getmaxformonth(remainder, month)
{if(month < 0 || month > 11 || month == "undefined")
	return -1;
return (remainder == 0 && month == 1)?29:monthdateArr[month].days;
}
function validatephoneNo(phoneno)
{
	var arrPhone = phoneno.split("-")
	if(arrPhone.length != 3)
		return false;
	
	if(!validateNo(arrPhone[0]) || !validateNo(arrPhone[1]) || !validateNo(arrPhone[2]))
		return false;
	
	if(arrPhone[0].length != 3)
		return false;
		
	if(arrPhone[1].length != 3)
		return false;
		
	if(arrPhone[2].length != 4)
		return false;
	
	return true;
}

function validatephoneNoSpan(phoneno)
{
	var arrPhone = phoneno.split("-")
	if(arrPhone.length != 3)
		return false;
	
	if(!validateNo(arrPhone[0]) || !validateNo(arrPhone[1]) || !validateNo(arrPhone[2]))
		return false;
	
	if(arrPhone[0].length != 2)
		return false;
		
	if(arrPhone[1].length != 3)
		return false;
		
	if(arrPhone[2].length != 4)
		return false;
	
	return true;
}
function VerifyURL(sel)
{
	var breturnVal=false;
	sel = sel.toLowerCase();
	if (sel.indexOf("http://") ==0)
		breturnVal = true
	if (sel.indexOf("ftp://") == 0)
		breturnVal = true	
	if (sel.indexOf("file://") == 0)
		breturnVal = true	
	if (sel.indexOf("gopher://") == 0)
		breturnVal = true	
	if (sel.indexOf("https://") == 0)
		breturnVal = true
	if (sel.indexOf("mailto:") == 0)
		breturnVal = true	
	if (sel.indexOf("news:") == 0)
		breturnVal = true	
	if (sel.indexOf("telnet:") == 0)
		breturnVal = true	
	if (sel.indexOf("wais:") == 0)
		breturnVal = true	
	if (sel.indexOf("www.") == 0)
		breturnVal = true	
	if (sel.length < 0)	
		breturnVal = false
		
	return breturnVal;
}
function elements(formElement, type, errMsg)
{
this.formElement = formElement;
this.type = type;
this.errMsg = errMsg;
}
function validatefields(arrElements)
{//debugger;
	var whattoreturn = true;
	
	for(i = 0; i < arrElements.length; i++)
	{
		var currentElement = arrElements[i];
		switch(currentElement.type)
		{
		case VAL_TYPE_BLANK:
			whattoreturn = !(Trim(currentElement.formElement.value) == "");
		break;
		case VAL_TYPE_EMAIL:
			whattoreturn = VerifyEmail(currentElement.formElement.value); 
		break;
		case VAL_TYPE_MUL_EMAIL:
			whattoreturn = ValidateMultipleEmailAdds(currentElement.formElement.value, ";");
		break;
		case VAL_TYPE_PHONE_NO:
			whattoreturn = validatephoneNo(currentElement.formElement.value);
		break;
		
		case VAL_TYPE_DATE:
			whattoreturn = validateDate(currentElement.formElement[0].value, currentElement.formElement[1].value, currentElement.formElement[2].value);
		break;
		case VAL_TYPE_COMPARE:
			whattoreturn = comparefields(currentElement.formElement[0].value, currentElement.formElement[1].value);
		break;
		case VAL_TYPE_TIME:
			whattoreturn = validateTime(currentElement.formElement.value);
			break;
		case VAL_TYPE_NUM:
			whattoreturn = validateNo(currentElement.formElement.value);
			break;
		case VAL_TYPE_ZIP:
			whattoreturn = validateZipCode(currentElement.formElement.value);
			break;
		case VAL_TYPE_ZIP_CANADA:
			whattoreturn = validateZipCodeCanada(currentElement.formElement.value);
			break;
		case VAL_TYPE_CELLNUM:
			whattoreturn = validateCellNo(currentElement.formElement.value);
			break;
		case VAL_TYPE_PHONE_NO_SPAIN:
			whattoreturn = validatephoneNoSpan(currentElement.formElement.value);
		break;
		case VAL_TYPE_OTHER_STATE:
			whattoreturn = validateOtherState(currentElement.formElement.value);
		break;
		
		}
		if(!whattoreturn)
		{
			alert(currentElement.errMsg);
			if(currentElement.type == VAL_TYPE_DATE || currentElement.type == VAL_TYPE_COMPARE)
				currentElement.formElement[0].focus();
			else
				currentElement.formElement.focus();
			return false;
		}
	}
	return true;
}
function validateTime(strTime)
{
	var arrTime = strTime.split(":");
	if(arrTime.length < 2)
		return false;
	if(arrTime.length == 2)
	{
		var hrs = parseInt(arrTime[0]);
		var min = parseInt(arrTime[1]);
		if(validateNo(hrs) || validateNo(min) || hrs > 23 || min > 59)
			return false;
		else
			return true;
	}
	else if(arrTime.length == 3)
	{
		var hrs = parseInt(arrTime[0]);
		var min = parseInt(arrTime[1]);
		var sec = parseInt(arrTime[2]);
		if(!validateNo(hrs) || !validateNo(min) || !validateNo(sec) || hrs > 23 || min > 59 || sec > 59)
			return false;
		else
			return true;
	}
	else
		return false;
}
function comparefields(field1, field2)
{
    return field1 == field2;
}
function ValidateMultipleEmailAdds(inVal,character) {
	var i;
	if (Trim(inVal) == "") 
		return true;
	var emailArr = inVal.split(character);
	if  (emailArr.length > 1) {
		for (i=0 ;i<emailArr.length ; i++) {
			if ((VerifyEmail(Trim(emailArr[i])) == false ))
				return false;
		}
	}
	else {
		if (VerifyEmail(Trim(inVal)) == false)
			return false;
	}
	return true;
}
function VerifyEmail(sel) {
	pos = sel.indexOf("@");
	pos2 = sel.lastIndexOf("@");
	if (pos != pos2) return false;
	pos1 = sel.lastIndexOf(".");
	if (pos == -1 || pos1 == -1 || pos1 <= pos || sel.indexOf(" ") != -1) {
		return false;
	}
var charpos =  sel.search("[~]"); 
if(sel.length > 0 &&  charpos == 0) return false;
     
   	
    
      
	sel1 = sel.substr(pos+1);
	var RegPat = "[`~!#$%^&*)(+=}{|\[:;\"'><,?/]";
	var emailReg = new RegExp(RegPat,"g");
	if (emailReg.test(sel1) || sel1.indexOf('\\') > 0 || sel1.indexOf(']') > 0) return false;

	sel2 = sel.substr(0, pos);
	//var RegPat = "[><)(\[,;:\"]";
	var RegPat ="[`~!#$%^&*)(+=}{|\[:;\"'><,?/]";
	var emailReg = new RegExp(RegPat,"g");
	if (emailReg.test(sel2) || sel2.indexOf('\\') > 0 || sel2.indexOf(']') > 0) return false;

	pos2 = 0;
	while (sel1.indexOf(".") != -1) {
		pos2 = sel1.indexOf(".");
		if (pos2 == -1) pos2 = sel1.length;
		temp = sel1.substr(0,pos2);
		if (temp == "") return false;
		sel1 = sel1.substr(pos2+1);
	}
	if (sel1 == "") return false;
	pos2=0;
	while (sel2.indexOf(".") != -1) {
		pos2 = sel2.indexOf(".");
		if (pos2 == -1) pos2 = sel2.length;
		temp = sel2.substr(0,pos2);
		if (temp == "") return false;
		sel2 = sel2.substr(pos2+1);
	}
	if (sel2 == "") return false;
	return true;
}
function validateNo(sel) {

	if ((parseInt(sel) == 0 || sel != "") && (sel.toString()).indexOf(".") == -1 && !isNaN(Math.abs(sel)))
	{
		if (!isTooLargeNumber(sel))
		{
			return false;
		}
		else
		{
			return true;
		}
	}
	return false;
}
function validateCellNo(sel) {

	if ((parseInt(sel) == 0 || sel != "") && (sel.toString()).indexOf(".") == -1 && !isNaN(Math.abs(sel)))
	{
	if(sel.length > 10)
		{
			return false;
		}
	else if(sel.length < 10)
		{
			return false;
		}
	else
	return true;
	}
	return false;
}
function validateZipCode(sel)
{

	if(sel.length != 5)
		return false;
	return validateNo(sel);
}
function validateZipCodeCanada(sel)
{

	if(sel.length != 6)
		return false;
	return true;
}
function VerifyObjects()
		{//debugger;
			var arg = VerifyObjects.arguments;
			var i;
			var isOk = true;
			var curRef = eval(arg[0]);
			var curRefString = arg[0];
			if (typeof(curRef) != "object" && typeof(curRef) != "function") isOk = false;
			else {
				for (i=1;i<arg.length;i++) {
					curRefString = curRefString + "." + arg[i];
					if (typeof(eval(curRefString)) != "object" && typeof(eval(curRefString)) != "function") {
						isOk = false;
						break;
					}
					else {
						curRef = eval(curRefString);
					}
				}
			}
			if (isOk == true) return curRef;
			else return null;
		}

function isTooLargeNumber(sel)
{
	if (sel > 999999)
	{
		alert("Input Number is too large.");
		return false;
	}
	else
	{
		return true;
	}
}

function fnSetNextValues(pageType, pageIndex, pagePrimaryValue, lastkeycolvalue, lastsortcolvalue)
{
	var arrayforcurpage = [pageIndex,pagePrimaryValue, lastkeycolvalue, lastsortcolvalue];
	var selpagevalues =arrayofvaluesforpages[pageType];
	if(selpagevalues == null || typeof(selpagevalues) == "undefined")
	{
		selpagevalues = new Array();
	}
	selpagevalues[pageIndex] = arrayforcurpage;
	arrayofvaluesforpages[pageType] = selpagevalues;
}
function fnGetPrevValues(pageType, pageIndex)
{
	var curpage = arrayofvaluesforpages[pageType];
	return curpage[pageIndex];
}
function fnaddtoplayers(playerid)
{
		
		var added ="false";
		if ( playerstobeadded =='')
		{
			playerstobeadded += "a"+playerid+"a"
			added= "true";
		}
		else
		{
			var duplicate ="false";
			var listofplayers = playerstobeadded.split("a");
			for (var ii=0;ii<listofplayers.length-1;ii++)
			{
				if (listofplayers[ii] == playerid)
				{
				duplicate = "true";
				added ="false";
				}
			}
			if (duplicate =='false')
			{
				playerstobeadded +="a"+ playerid + "a";
				added = "true";
			}
		}
		
		if (added=='false')
			return 0;
		else
			return 1;
}
function fnremoveplayers(remplayerid)
{
	var tempplayers ="";
	var deleted = 0;
	if ( playerstobeadded =='')
		{
			deleted = 1;
		}
	else
		{
			var found ="false";
			var listofplayers = playerstobeadded.split("a");
			for (var jj=0;jj<listofplayers.length-1;jj++)
			{
				if (listofplayers[jj] == remplayerid)
				{
					var repltext = "a"+remplayerid+"a";
					playerstobeadded=playerstobeadded.replace(repltext,"");
					found = "true"
					deleted = 2;
				}
			}
			if (found =='false')
			{	
				deleted = 3;
			}						
		}
	return deleted;
}
function valueofplayerstobeadded()
{
	var returnvalue =playerstobeadded;
	return returnvalue;
}
function countofplayers()
{
	var listofplayers = playerstobeadded.split("a");
	return listofplayers.length;
}
function setplayerstobeadded()
{
	playerstobeadded ="";
}
				
//Script to deny Special Symbol 
//First Parameter Accept 'Field Name' and Second Parameter accept 'Form Name'
function denySymbol(itemname,frmname)
{
	this.formobj=document.forms[frmname];
	var itemobj = this.formobj[itemname];
	var charpos =  itemobj.value.search("[^A-Za-z0-9\-.`!@#$^%&*()_]"); 
    if(itemobj.value.length > 0 &&  charpos >= 0) 
    {            
		strError = "In " + itemobj.name+" Field A-Z,a-z,0-9,- . ` ! @ # $ % ^ & * ( ) _ characters allowed  \nPlease Do not Enter Any Other Symbol "; 
		//alert(strError + "\n [Error character position " + eval(charpos+1)+"]"); 
		alert(strError); 
		itemobj.value = "";
		itemobj.focus();
		return false;							
	}                             
    return true;             
}
//function deny < and > symbol
function denyltngtSymbol(itemname,frmname)
{
	var strError = "Please Don't Enter < And > Symbol as Search Parameter" ;
	this.formobj=document.forms[frmname];
	var itemobj = this.formobj[itemname];
	var charpos =  itemobj.value.search("[<>]"); 
   if(itemobj.value.length > 0 &&  charpos >= 0) 
    {            
		alert(strError); 
		itemobj.value = "";
		itemobj.focus();
		return false;							
	}                             
    return true;             
}

function validateOtherState(sel) {
	if ((parseInt(sel) == 0 || sel != "") && (sel.toString()).indexOf(".") == -1 && !isNaN(Math.abs(sel)))
	{
		return false;
    }
    else
    {
	 return true;          
	}
}
    //var charpos =  sel.search("[0-9]"); 
    //    if(sel.length > 0 &&  charpos == 0) 
    //    {  
    //		return false;
    //    }
    //    else
    //    {
    //	return true;
    //	}


				