// JavaScript Document
function trim(s) 
{
	while (s.substring(0,1) == ' ') 
	{
    	s = s.substring(1,s.length);
	}
  
  	while (s.substring(s.length-1,s.length) == ' ') 
  	{
    	s = s.substring(0,s.length-1);
  	}
  	return s;
}


//make sure if it is a validate telphone
function isTEL(TEL)
{
	if (TEL=='') return false;
	var i,j,strTemp;
	strTemp="0123456789-()# ";
	for (i=0;i<TEL.length;i++)
	{
		j=strTemp.indexOf(TEL.charAt(i)); 
		if (j==-1)
  		{
			return false;
		}
	}
	return true;
}

function isZip(s)
{
	if (s=='') return false;
	var i,j,strTemp;
	strTemp="0123456789";
	for (i=0;i<s.length;i++)
	{
		j=strTemp.indexOf(s.charAt(i)); 
		if (j==-1)
  		{
			return false;
		}
	}
	return true;
}

function isEmail(a)
{
	var i=a.length;
	var temp = a.indexOf('@');
	var tempd = a.indexOf('.');
	if (temp > 1) 
	{
  		if ((i-temp) > 3)
		{
    
    		if ((i-tempd)>0)
			{
     			return true;
    		}
    
  		}
	}
	
	return false;
}

function isCharacter(s)
{
	var myRe;
	var myArr;
	myRe = new RegExp("\[^a-zA-Z]");
	myArr=myRe.test(s);
	return myArr;	
}

function isNum(num)
{
	var i,j,strTemp;
	strTemp="0123456789.";
	for (i=0;i<TEL.length;i++)
	{
		j=strTemp.indexOf(TEL.charAt(i)); 
		if (j==-1)
  		{
			return false;
		}
	}
	return true;
}

function totalCheck(inputarr, messagearr, requirementarr)
{
	if (inputarr.length!=messagearr.length || inputarr.length!=requirementarr.length  )
	{
		alert(inputarr.length);
		alert(messagearr.length);
		alert(requirementarr.length);		
		alert("argument error, three arrays have defferent length.");
		return false;
	}


	
	var i=0;
	//check all input array
	for (i=0;i<inputarr.length;i++)
	{
		if (document.getElementById(inputarr[i])=='undefined')
		{
			
			alert ("input array error, some fields are not included in form.")
			return false;
		}
	}

	//check all requirementarr
	for (i=0;i<requirementarr.length;i++)
	{
		if (requirementarr[i]!='text' && requirementarr[i]!='phone' && requirementarr[i]!='zip' && requirementarr[i]!='email' && requirementarr[i]!='num')
		{
			alert(i);
			alert (requirementarr[i]);
			alert ("requirement array error, must be text, phone, zip, email or num.")
			return false;
		}
	}
	
	
	
	for (i=0;i<inputarr.length;i++)
	{
		//not null
		if (requirementarr[i]=='text')
		{
		
			if (trim(document.getElementById(inputarr[i]).value)=='')
			{

				alert(messagearr[i]);
				document.getElementById(inputarr[i]).focus();
				return false;
			}
		}
		
		//is tel
		if (requirementarr[i]=='phone')
		{
			if (!isTEL(trim(document.getElementById(inputarr[i]).value)))
			{
				alert(messagearr[i]);
				document.getElementById(inputarr[i]).focus();
				return false;
			}
		}
		
		//is zip
		if (requirementarr[i]=='zip')
		{
			if (!isZip(trim(document.getElementById(inputarr[i]).value)))
			{
				alert(messagearr[i]);
				document.getElementById(inputarr[i]).focus();
				return false;
			}
		}
		
		//is email
		if (requirementarr[i]=='email')
		{
			if (!isEmail(trim(document.getElementById(inputarr[i]).value)))
			{
				alert(messagearr[i]);
				document.getElementById(inputarr[i]).focus();
				return false;
			}
		}
		
		// is numberic
		if (requirementarr[i]=='num')
		{
			if (!isNum(trim(document.getElementById(inputarr[i]).value)))
			{
				alert(messagearr[i]);
				document.getElementById(inputarr[i]).focus();
				return false;
			}
		}	
		
		
		
	}
	return true;

}
