// JavaScript Document

var haveStateSelected ='NO';
var field_main;
var main_form;
var invalidmsg=new Array();
function do_blink(field)
{
	var errorcolor="#3399FF";
	//field.focus();
	//field.select();
	field.style.background=errorcolor;
	//setInterval("temp("+field+")",1000); 
	//setTimeout(function(field){field.style.background="#ffffff";},2000);
}

function temp(field)
{
	var okcolor="#ffffff";
	main_form.style.background=okcolor;
}

function validate(field)
{
	
	try
	{
	valiclass=field.getAttribute("valiclass");
	valimessage=field.getAttribute("valimessage");
	var inputtype = field.getAttribute("type");
	
	if(valiclass == 'username')
	{
		if(field.value == '')
		{
			//alert('your username is blank.');
			do_blink(field);return false;
		}
		pattern = "[^a-z0-9_.]";
		if(field.value.match(pattern)){
			//alert("Invalid characters in your User name field.\n Check if it has capital letters or non alpha numeric character");
			do_blink(field);return false;
		}				
	}
	if(inputtype =='text')
	{
			if(field.value.indexOf('<') >=0 || field.value.indexOf('>') >=0){
				//alert('Invalid Input character');
				do_blink(field);return false;
			}
	}
	
	if(valiclass=="required")
	{
		req=field.getAttribute("req");
		pattern="\\w{"+req+",}";
		if(!field.value.match(pattern))
		{
			
			//alert(valimessage);
			do_blink(field);return false;
		}
	}
	
	else if(valiclass=="email")
	{
		var dotcount = 0;
		var atcount = 0;
		
		for(var i=0;i<field.value.length;i++){
			if(field.value.charAt(i) == '.'){
				dotcount +=1;
			}else if(field.value.charAt(i) == '@'){
				atcount +=1;
				//alert(atcount);
			}
		}
		if(field.value == ''){
			//alert('your email is blank.');
			do_blink(field);return false;
		}
		else if(dotcount==0 || atcount !=1){			
			//alert(valimessage);
			do_blink(field);return false;
		}		
	
	}
	
	else if(valiclass=="number")
	{
		if((field.value.length<1)||isNaN(field.value))
		{
			//alert(valimessage);
			do_blink(field);return false;
		}
	}
	/*else if(valiclass=="radio")
	{
				var test=field.getAttribute("name");
				var temp=field.elements.length;
				alert(temp);return false;
				var temp1=0;
				for (i=0; i<temp; i++) 
				{
					if (field.elements[i].checked==true)
							return true;
				}
				if (temp1==0)
				{
				 alert(valimessage);do_blink(field);return false;
				}
	}*/
	
	else if(valiclass=="quantity")
	{
		if((field.value.length<1)|| (field.value.length>99) || isNaN(field.value))
		{
			//alert(valimessage);
			do_blink(field);return false;
		}
	}
	
	else if(valiclass=="creditcard")
	{
		pattern="[0-9]{16}$";
		if(!field.value.match(pattern))
		{
			//alert(valimessage);
			do_blink(field);return false;
		}
	}
	
	else if(valiclass=="zip")
	{
		pattern="[0-9]{5}$";
		if(!field.value.match(pattern))
		{
			//alert(valimessage);
			do_blink(field);return false;
		}
	}
	
	else if(valiclass=="code")
	{
		pattern="[0-9]{3}$";
		if(!field.value.match(pattern))
		{
			alert(valimessage);do_blink(field);return false;
		}
	
	}
	
	else if(valiclass=="select")
	{
		if(field.options[field.selectedIndex].text.toLowerCase()=="")
		{
			//alert(valimessage);
			field.focus();
			return false;
		}		
	}
	
	
	if(valiclass=="selectcombo")
	{		
		if(field.value=='')
		{			
			//alert(valimessage);
			return false;
		}
		if(field.getAttribute("name")== 'selectState')
		{
				if(haveStateSelected == 'NO')
					{
						//alert(valimessage);
						return false;
					}			
		}
	}
	
	else if(valiclass=="date")
	{
		pattern="[0-9]{4}\\-[1-9]{1,2}\\-[1-9]{1,2}$";
		if(!field.value.match(pattern))
		{
			//alert(valimessage);
			do_blink(field);return false;
		}
	}

	else if(valiclass=="integer")
	{
		$bool=field.value.match("^[0-9]{1,4}$");
		
		if((!$bool)||isNaN(field.value)||(field.value.indexOf(".")!=-1))
		{
			//alert(valimessage);
			do_blink(field);return false;
		}
	}

	else if(valiclass=="picture")
	{		
		if(field.value == '')
		{
			//alert(valimessage);
			do_blink(field);return false;
		}
		/*
		if(field.value.length<1)
			return true;
		*/
		values=field.value.toLowerCase();
		if(!ends_with(values,".jpg"))
		{
			//alert(values+" is not a valid jpg file");
			do_blink(field);return false;
		}
	}
	else if(valiclass=="textfile")
	{		
		if(field.value == '')
		{
			//alert(valimessage);
			do_blink(field);return false;
		}
		/*
		if(field.value.length<1)
			return true;
		*/
		values=field.value.toLowerCase();
		if(!ends_with(values,".doc") && !ends_with(values,".rtf"))
		{
			alert(values+" is not a valid doc or rtf file");do_blink(field);return false;
		}
	}
	else if(valiclass =='checkage18')
	{
		if(!checkAge())
			return false;
		
	}
	return true;
	}
	
	catch(ex)
	{
	alert(ex.message);
	return true;
	}
}



function call_validate(form,from,to)
{
	var invalidfield= new Array();
	var isvalid=true;
	var i=0;
	var msg="";
	for(counter=from;counter<to;counter++)
	{
		bool=validate(form[counter]);
		if(!bool)
		{
			isvalid=false;
			invalidfield[i]=form[counter];
			invalidmsg[i]=form[counter].getAttribute("valimessage");
			
		}
		
		
	i++;
	}
if(!isvalid)
		{
			//alert(invalidfield.length);
			for(var j=0; j<invalidfield.length;j++)
			{
				//
				if(invalidfield[j])
				{
				var t=invalidfield[j].id.toString();
				invalidfield[j].setAttribute("class","javainvalid");
				//invalidfield[j].style.background="#ff0000";
				setTimeout("timeout('"+t+"')",5000)
				do_blink(invalidfield[j]);
				msg+=invalidmsg[j]+"\n\n";;
			
				}
			}
			if(document.getElementById("invalidform"))
				{
				//	document.getElementById("test").innerHTML=msg;
					document.getElementById("invalidform").style.display="block"
					setTimeout(function (){document.getElementById("invalidform").style.display="none";},5000)
				}
			alert(msg);
			return false;		
		}
	return true;
	//form.submit();
}
function timeout(id)
{
	//id=eval(id);
	//id=id.toString();
	//alert(id);
	if(document.getElementById(id)!=null)
	{
		//alert(document.getElementById(id).class);
		document.getElementById(id).style.background="#fff";
		document.getElementById(id).setAttribute("class","");
	}
	
}