//this function is used to trim the white spaces at the beginning and at the end of the sentence
	function trim_space(sString) 
	{
		var tmp = sString.substring(0,1);
		while(tmp == ' ')
		{
			sString = sString.substring(1, sString.length);
			tmp = sString.substring(0,1);
		}
		tmp = sString.substring((sString.length-1), sString.length);
		while (tmp == ' ')
		{
			sString = sString.substring(0,(sString.length-1));
			tmp = sString.substring((sString.length-1), sString.length);
		}
		return sString;
	}
	
function IsNumeric(sText)
{
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char1;

 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char1 = sText.charAt(i); 
      if (ValidChars.indexOf(Char1) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber; 
}

function IsChar(sText)
{
   var ValidChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.";
   var IsNumber=true;
   var Char1;

 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char1 = sText.charAt(i); 
      if (ValidChars.indexOf(Char1) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber; 
}

alreadyFoundEmail = "";
alreadyFoundPassword = "";
function _checkfield(field,isEmail,mask)
	{
		var value = trim_space(field.value);
		field.value = value;
		if (isEmail)
		{
			
			var reg1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/; // not valid
			var reg2 = /^.+\@(\[?)[_a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/; // valid
			if (!reg1.test(value) && reg2.test(value)) // if syntax is valid
			{
			alreadyFoundEmail = value;
				return true;
				}
			
		}
		else
		{
		if (mask != "")
		{
		if (value.length > mask.length || value.length < mask.length)
			{
			field.focus();
			field.select();
			return false;
			}
		
		errors = 0;
		for (j = 0;j < value.length;j++)
			{

			maskc = mask.charAt (j);
			valuec = value.charAt (j);
						
			if ((maskc == "n" || maskc == "N") && IsNumeric (valuec) == false)
				{
				errors = 1;
				}
			if ((maskc == "c" || maskc == "C") && IsChar (valuec) == false)
				{
				errors = 1;
				}				
			}
		if (errors == 0) {	return true;  }
		}
		else {
			 if (value.length > 0) { return true; }
			 }
		}		
		field.focus();
		field.select();
		return false;
	}

function checkMulti (frmName, rbGroupName) {
 var radios = document[frmName].elements[rbGroupName];
 for (var i=0; i <radios.length; i++) {
  if (radios[i].checked) {
   return true;
  }
 }
 return false;
} 

function checkField (item,formname,itemname,type,masks,show_correct,bad_msg,good_msg,bgtype,bgval_good,bgval_bad,color_bad,color_good)
	{	
	resp_div = itemname;
	//alert (formname + " " + itemname);
	requ_id = "#" + resp_div.replace ("form","requ");
	tabl_id = "#" + resp_div.replace ("form","tabl");
	resp_div2 = resp_div.replace ("form","resp");
	resp_div = "#" + resp_div.replace ("form","resp");
	if ($(requ_id).attr ("value") == "0") return true;

	domaskloop = 0;
	ret = false;
	if (type == "select")
		{
		if (item.selectedIndex > 0) { ret = true; }
		}
	if (type == "radio")
		{
		if (checkMulti (formname, itemname) == true) {ret = true; } 
		}		
	if (type == "checkbox")
		{
		if (checkMulti (formname, itemname) == true) {ret = true; }
		}			
	if (type == "phone_number")
		{
		masks = "NNN-NNN-NNNN|NNNNNNNNNN|N-NNN-NNN-NNNN|+NNNN-NNN-NNNN|NNNN-NNN-NNNN";
		type = "mask";
		}
	if (type == "file")
		{
		if (item.value != "") ret = true;
		}
	if (type == "textarea")
		{
		type = "text";
		}		
	if (type == "password")
		{
		alreadyFoundPassword = item.value;
		type = "text";
		}
	if (masks.indexOf ("|") > -1)
		{
		domaskloop=1;
		msplit = masks.split ("|");
		}
	else 
		{
		mask=masks;
		}
	if (type == "email")
		{
		ret = _checkfield (item,true,"");
		}
	if (type == "text")
		{
		ret = _checkfield (item,false,"");
		}
	if (type == "validate_email")
		{
		ret = false;
		if (alreadyFoundEmail == "") { ret = false; }
		else {
		if (item.value == alreadyFoundEmail)
			{
			ret = true;
			}
		}
		}
	if (type == "validate_password")
		{
		ret = false;
		if (alreadyFoundPassword == "") { ret = false; }
		else {
		if (item.value == alreadyFoundPassword)
			{
			ret = true;
			}
		}
		}
	if (type == "mask")
		{
		if (domaskloop == 0)
			{
			ret = _checkfield (item,false,mask);
			}
		else 
			{
			foundvalid=0;
			for (n = 0; n < msplit.length && foundvalid == 0; n++)
				{
				if (_checkfield (item,false,msplit[n]) == true) {
				foundvalid = 1;
				}
			}
			if (foundvalid == 1) { ret = true; }
			else { ret = false; }
			}
		}
		
	if (ret == false)
	{
	if (bgtype == "bgimg")
	{
	$(tabl_id).css ({"background-repeat":"repeat-x","background-image":"url('" + bgval_bad + "')"});
	}
	else {
	$(tabl_id).css ({"background-repeat":"repeat-x","background-color":bgval_bad});
	}
	$(resp_div).html ("<font color='" + color_bad + "'>" + bad_msg + "</font>");
	ty = $(resp_div).attr ("scrollHeight");
	$(resp_div).animate ({"height":ty+"px"},300);
	}
	else
	{

	if (show_correct == 1)
	{
	if (bgtype == "bgimg")
	{
	$(tabl_id).css ({"background-repeat":"repeat-x","background-image":"url('" + bgval_good + "')"});
	}
	else {
	$(tabl_id).css ({"background-repeat":"repeat-x","background-color": bgval_good});
	}
	$(resp_div).html ("<font color='" + color_good + "'>" + good_msg + "</font>");
	ty = $(resp_div).attr ("scrollHeight");
	$(resp_div).animate ({"height":ty+"px"},300);
	
	}
	else 
	{
	if (bgtype == "bgimg")
	{
	$(tabl_id).css ({"background-repeat":"repeat-x","background-image":"url('" + "none" + "')"});
	}
	else {
	$(tabl_id).css ({"background-repeat":"repeat-x","background-color": "#FFFFFF"});
	}
	$(resp_div).html ("");
	ty = 1;
	//alert ($(resp_div).attr ("offsetHeight"));
	if ($(resp_div).attr ("offsetHeight") != 1)
		{
		$(resp_div).animate ({"height":ty+"px"},300);
		}
	}
	}
	
	return ret;
	//alert (resp_div);
	}
	

