function CheckValidFrm(Frm)
{
 var i;
 var currName,currFld,pattern;

 for (i=0; i<Frm.length; i++)
 {
 	currFld = Frm.elements[i];
	
	if (!currFld.disabled && currFld.id && currFld.id.indexOf("~") != -1 && Number(currFld.id.split("~")[1]) == 1) 
	{
		currName = currFld.id.split("~")[0];
		
		switch (currFld.type)
		{
			case "text":
				pattern = /\w+\W*/
				if (currFld.name == "Email")
					pattern = /^(\w+((-\w+)|(\.\w+))*){2,30}\@((\w(\.?))+(-\w+)*){2,20}\.[a-zA-Z]{2,7}((\.[a-zA-Z]{2,10})?)$/
				else if (currFld.name == "Username")
					pattern = /^[a-zA-Z0-9_]{5,10}$/
				
				if (!pattern.test(currFld.value))
					return DisableAction(currFld,"Valid " + currName + " is required");
			break;

			case "password":
				pattern = /^\w{6,10}$/
				if (!pattern.test(currFld.value))
						return DisableAction(currFld,"Valid " + currName + " is required");
	
			 	else if(currFld.value.toLowerCase() != Frm.ConfPassword.value.toLowerCase())
			 		 	return DisableAction(Frm.ConfPassword,"Password is not confirmed correctly");
			break;
			
			case "textarea":
				pattern = /\w*\W*/
				if (currFld.name == "SiteDesc")
					pattern = /\w+\W*/

				if (!pattern.test(currFld.value))
						return DisableAction(currFld,currName + " is required");
						
				if (currFld.value.length > 250)
					return DisableAction(currFld,currName + " must not exceed 250 characters");
			break;
			
			case "select-one":
				if (currFld.name != "State" && currFld.selectedIndex <= 0)
					return DisableAction(currFld,"Valid " + currName + " is required");
					
				if (currFld.name == "Country" && (currFld.value == "US" || currFld.value == "CA") && Frm.State.selectedIndex == 0)
					return DisableAction(Frm.State,"Valid State is required");
				
				
			break;
		}
 	
 	}
  }
  
  	if (Frm.Country)
  	{
  		Frm.Country.options[Frm.Country.selectedIndex].value = Frm.Country.options[Frm.Country.selectedIndex].text;
  		Frm.State.options[Frm.State.selectedIndex].value = Frm.State.options[Frm.State.selectedIndex].text;
 	}
 }

function DisableAction(Ctrl,Msg)
{
 alert(Msg);
 if (Ctrl.type.indexOf("select") == -1) 
 	Ctrl.select();
 Ctrl.focus();
 return false;
}

function isBlankStr(str)
{
	var cChar;
	for (var i=0; i<str.length-1;i++)
	{
		cChar = str.charAt(i);
		if (cChar != " " && cChar != "\n" && cChar != "\t" && cChar != "\r")
			return false;
	}
	return true;
}
