

var word_count = 0 ;
var word_count_allowed = 350 ;
var result = true ; 

function emailCheck(fld) 
{
	if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(fld.value))) 
	{
		return false ;
	}
	else 
	{
		return true ;
	}
}  

function checkVal(fld, mbr) 
{
	if (!mbr) 
	{
		fld.focus() ;
	}
}

function anyStr(fld, minlength, maxlength)
{
	str = fld.value ; 
	anyChars = false ;
	field = fld.name.toUpperCase() ;

	if (str.length == 0) 
	{
		alert(field + " can not be all blank")
		return false ;
	}
	
	for (var i=0; i<str.length; i++) 
	{
		subStr = str.substring(i, i+1) ;  
		if (subStr != ' ')
		{
			anyChars = true ;
		}
	}
	
	if (!anyChars) 
	{
		alert(field + " can not be all spaces") ;
		return false ;
	}
	
	if (minlength > 0 || maxlength > 0)
	{
		if(!chkLength(fld, minlength, maxlength)) 
		{
			return false ;
		}
	}
	
	return true ;
}

function isDigit(fld, minlength, maxlength, minvalue, maxvalue)
{ 
	str = fld.value ;
	field = fld.name.toUpperCase() ;
	
	if (str.length == 0)
	{
		return false ;
	}
	
	for (i = 0; i < str.length; i++) 
	{   
		var c = str.charAt(i);
		if (!isNumber(c))
		{
			return false;
		}
	}
	
	if (parseInt(str, 10) == 0)
	{
		return false ;
	}
	
	if (minlength > 0 || maxlength > 0)
	{
		if (chkLength(fld, minlength, maxlength) == false) 
		{
			return false ;
		}
	}
	
	if (minvalue != 0 || maxvalue != 0)
	{
		if (chkValue(str, minvalue, maxvalue) == false) 
		{
			return false ;
		}
	}
	
	return true ;
}

function nameChk(fld, minlength, maxlength)
{
	str = fld.value ; 
	anyChars = false ;
	field = fld.name.toUpperCase() ;
	
	if (str.length == 0) 
	{
		alert(field + " can not be all blank")
		return false ;
	}
	
	for (var i=0; i<str.length; i++) 
	{
		subStr = str.substring(i, i+1) ;  
		if (subStr != ' ')
		{
			anyChars = true ;
		}
	}
	
	if (!anyChars) 
	{
		alert(field + " can not be all spaces") ;
		return false ;
	}
	
	for (var i=0; i<str.length; i++) 
	{
		subStr = str.substring(i, i+1);
		if (i == 0) 
		{
			if (subStr == ' ') 
			{
				alert(field + " must start with an alphabet please...") ;
				return false ;
			}
		}
	
		if ((subStr >= 'A' && subStr <= 'Z') || (subStr >= 'a' && subStr <= 'z') || (subStr == ' ')) 
		{}
		else
		{
			alert(field + " can have characters A-Z, a-z or space") ;
			return false ;
		}
	}
	
	if (minlength > 0 || maxlength > 0)
	{
		if(!chkLength(fld, minlength, maxlength))
		{
			return false ;
		}
	}
	
	return true ;
}

function strChk(fld, minlength, maxlength)
{
	str   = fld.value ; 
	field = fld.name.toUpperCase() ;
	
	if (str.length == 0)
	{
		alert(field + " can not be blank")
		return false ;
	}
	
	anySpaces = false ;
	
	for (var i=0; i<str.length; i++)
	{
		subStr = str.substring(i, i+1) ;  
		if (subStr == ' ')
		{
			anySpaces = true ;
		}
	}
	
	if (anySpaces)
	{
		alert(field + " can not have spaces") ;
		return false ;
	}
	
	for (var i=0; i<str.length; i++) 
	{
		subStr = str.substring(i, i+1);
		if (i == 0)
		{
			if (subStr == ' ')
			{
				alert(field + " must start with an alphabet please...") ;
				return false ;
			}
		}
		
		if ((subStr >= 'A' && subStr <= 'Z') || (subStr >= 'a' && subStr <= 'z') || (subStr == ' '))
		{}
		else
		{
			alert(field + " can have characters A-Z, a-z or space") ;
			return false ;
		}
	}
	
	if (minlength > 0 || maxlength > 0)
	{
		if(!chkLength(fld, minlength, maxlength))
		{
			return false ;
		}
	}
	
	return true ;
}

function idChk(fld, minlength, maxlength)
{
	str = fld.value ; 
	field = fld.name.toUpperCase() ;
	
	if (str.length == 0)
	{
		alert(field + " can not be blank")
		return false ;
	}
	
	anySpaces = false ;
	
	for (var i=0; i<str.length; i++) 
	{
		subStr = str.substring(i, i+1) ;  
		if (subStr == ' ')
		{
			anySpaces = true ;
		}
	}
	
	if (anySpaces)
	{
		alert(field + " can not have spaces") ;
		return false ;
	}
	
	for (var i=0; i<str.length; i++) 
	{
		subStr = str.substring(i, i+1);
		
		if ((subStr >= 'A' && subStr <= 'Z') || (subStr >= 'a' && subStr <= 'z') || (subStr == '_') || (subStr == '-'))
		{}
		else
		{
			alert(field + " can have characters A-Z, a-z, - or an _") ;
			return false ;
		}
	}
	
	if (minlength > 0 || maxlength > 0)
	{
		if(!chkLength(fld, minlength, maxlength))
		{
			return false ;
		}
	}
	
	return true ;
}

function passwordChk(fld, minlength, maxlength)
{
	str = fld.value ; 
	field = fld.name.toUpperCase() ;
	
	if (str.length == 0)
	{
		alert(field + " can not be blank")
		return false ;
	}
	
	anySpaces = false ;
	
	for (var i=0; i<str.length; i++) 
	{
		subStr = str.substring(i, i+1) ;  
		if (subStr == ' ')
		{
			anySpaces = true ;
		}
	}
	
	if (anySpaces)
	{
		alert(field + " can not have spaces") ;
		return false ;
	}
	
	if (minlength > 0 || maxlength > 0)
	{
		if(!chkLength(fld, minlength, maxlength))
		{
			return false ;
		}
	}
	
	return true ;
}

function chkLength(fld, minlength, maxlength)
{
	str       = fld.value ;
	field     = fld.name.toUpperCase() ;
	maxstatus = true ;
	minstatus = true ;
	
	if (maxlength > 0)
	{
		if (str.length > maxlength)
		{
			maxstatus = false ;
		}
		if (minlength > 0)
		{
			if (str.length < minlength)
			{
				minstatus = false ;
			}
		}
		if (!maxstatus || !minstatus)
		{
			return false ;    
		} 
		else
		{
			return true ;
		}
	}		
}

function chkValue(str, minvalue, maxvalue)
{
	if (parseInt(str, 10) < minvalue)
	{   
		return false ;
	}
	
	if (parseInt(str, 10) > maxvalue)
	{
		return false ;
	}
	
	return true ;
}

function isNumber (c)
{   
	return ((c >= "0") && (c <= "9"))
}

function showStatus(message)
{
	status = message ;
}  


function isPostCode(entry)
{ 
	// Canadian Postal Code only
	strlen = entry.length; 
	if (strlen != 6) return false;
	// in case of lowercase characters
	entry=entry.toUpperCase(); 
	// Check for legal characters in string - note index starts at zero
	if ('ABCEHJKLMNPRSTVXY'.indexOf(entry.charAt(0)) < 0) {return false;}
	if ('0123456789'.indexOf(entry.charAt(1)) < 0) {return false;}
	if ('ABCDEFGHJKLMNPQRSTUVWXYZ'.indexOf(entry.charAt(2)) < 0) {return false;}
	if ('0123456789'.indexOf(entry.charAt(3)) < 0) {return false;}
	if ('ABCDEFGHJKLMNPQRSTUVWXYZ'.indexOf(entry.charAt(4)) < 0) {return false;}
	if ('0123456789'.indexOf(entry.charAt(5)) < 0) {return false;}
	return true;
}

function countWords(fld)
{
	var char_count = fld.value.length;
	var fullStr = fld.value + " ";
	var initial_whitespace_rExp = /^[^A-Za-z0-9]+/gi;
	var left_trimmedStr = fullStr.replace(initial_whitespace_rExp, "");
	var non_alphanumerics_rExp = rExp = /[^A-Za-z0-9]+/gi;
	var cleanedStr = left_trimmedStr.replace(non_alphanumerics_rExp, " ");
	var splitString = cleanedStr.split(" ");
	var word_count = splitString.length -1;
	
	return word_count;
}

function checkFieldsNominations(frm)
{
	fld = frm.elements["nominee_name"] ;
	if (fld.value == "")
	{
		alert("Please enter Nominee Name...") ;  
		fld.focus() ;
		return false ;
	}
	
	fld = frm.elements["job_position"] ;
	if (fld.value == "")
	{
		alert("Please enter Job Position...") ;  
		fld.focus() ;
		return false ;
	}
	
	fld = frm.elements["star_service_place"] ;
	if (fld.value == "")
	{
		alert("Please enter Place of Star Service...") ;  
		fld.focus() ;
		return false ;
	}   
  
	fld = frm.elements["date"] ;
	if (fld.value == "")
	{
		alert("Please enter Date...") ;  
		fld.focus() ;
		return false ;
	} 

  
	fld = frm.elements["nominated_by_name"] ;
	if (fld.value == "")
	{
		alert("Please enter Your Name...") ;  
		fld.focus() ;
		return false ;
	}

	fld = frm.elements["nominated_by_phone_area_code"] ;
	if (!(fld.value == ""))
	{
		result = isDigit(fld,3,3,100,999) ;
		if (!result)
		{
			alert("Phone Area Code must be a 3 digit number!") ;  
			fld.focus() ;
			return result ;
		}  
	} 
	else
	{
		alert("Phone Area Code must be a 3 digit number!") ;  
		fld.focus() ;
		return false ;  
	}  

	fld = frm.elements["nominated_by_phone_number"] ;
	if (!(fld.value == ""))
	{
		result = isDigit(fld,7,7,1000000,9999999) ;
		if (!result)
		{
			alert("Phone Number must be a 7 digit number!") ;  
			fld.focus() ;
			return result ;
		}  
	} 
	else
	{
		alert("Phone Number must be a 7 digit number!") ;  
		fld.focus() ;
		return false ;  
	}

	fld = frm.elements["nominated_by_email"] ;
	result = emailCheck(fld) ;
	if (!result)
	{
		alert("E-mail ID is not valid...") ;  
		fld.focus() ;
		return result ;
	}   

	fld = frm.elements["R1"] ;
	result = valButton(fld) ;
	if (!result)
	{
		alert("Rate if Nominee is Genuinely friendly, smiles & makes eye contact...") ;  
		//fld[0].focus() ;
		return result ;
	}  
	
	fld = frm.elements["R2"] ;
	result = valButton(fld) ;
	if (!result)
	{
		alert("Rate if Nominee is Responsive, prompt & efficient in service...") ;  
		//fld[0].focus() ;
		return result ;
	}
	
	fld = frm.elements["R3"] ;
	result = valButton(fld) ;
	if (!result)
	{
		alert("Rate if Nominee is Knowledgeable, helpful & informative to customers...") ;  
		//fld.focus() ;
		return result ;
	}
	
	fld = frm.elements["R4"] ;
	result = valButton(fld) ;
	if (!result)
	{
		alert("Rate if Nominee is Goes above & beyond to exceed customer expectations...") ;  
		//fld.focus() ;
		return result ;
	}
	
	fld = frm.elements["R5"] ;
	result = valButton(fld) ;
	if (!result)
	{
		alert("Rate if Nominee is Ambassador for their organization & the City of Brantford...") ;  
		//fld.focus() ;
		return result ;
	}
    
	fld = frm.elements["Q1"] ;
	word_count = countWords(fld) ;
	if ((word_count <=0) || (word_count > word_count_allowed))
	{
		alert("Description cannot be blank and allowed a maximum of 350 words...") ;  
		fld.focus() ;
		return false ;
	} 	

	return true ;
} 


function valButton(btn) 
{
    var cnt = -1;
    
    for ( var i = btn.length-1; i > -1; i-- ) 
    {
        if (btn[i].checked) 
        {
        	cnt = i; i = -1;
        }
    }
    
    if (cnt > -1) 
    {
    	return true;
    }
    else 
    {
    	return false;    
    }
    
    //if (cnt > -1) return btn[cnt].value;
    //else return null;
}

