




/***************************************************************************

		              	validation.js

		            -------------------

		    begin                : Fri, April 27, 2007

		    copyright            : (C) 2006 Varshyl Tech

		    email                : support@varshyltech.com

		

		   purpose  :	Functions for validation purpose.

		

****************************************************************************/



function valtrim(st)
{
	if(st.length > 0)
	{
		re = / +$/g; 
		newval = st.replace(re,"");
		re = /^ +/g;
		newvala = newval.replace(re,"");
		return newvala;
	}
	return "";
}
 
function showPage(flag){
	document.getElementById('choose_manage').style.display = 'none';
	document.getElementById('choose_account_num').style.display = 'none';
	
	if (flag == 4) {
		document.getElementById('choose_manage').style.display='';
 	}
	
	document.getElementById('choose_account').style.display = 'none';
	if (flag == 2) {
		document.getElementById('choose_account').style.display='';
		document.getElementById('choose_account_num').style.display='';
	}
}


/*Checks if a required field has been left empty

Parameters: field take name of field and alerttext take text for alert.*/

function validate_required(field,errid)
{
	with(field)
	{
	
		if(field.value==null||field.value=="")
		{
		   		obj=document.getElementById(errid);
				obj.innerHTML="Required";
				return false;
		}
		else
		{
			return true;
		}
		
	}
}



/*Validate the login form entries.

Parameters: thisform take name of the login form.*/

function validate_login_form(thisform)

{

	with(thisform)

	{

		if(validate_required(username,"Username must be filled out!")==false)

		{

			username.focus();

			return false;

		}

		if(validate_required(password,"Password must be filled out!")==false)

		{

			password.focus();

			return false;

		}

	}

}



/*Validate the email address.*/

function isValidEmail(strEmail){

  validRegExp = /^[^@]+@[^@]+.[a-z]{2,}$/i;

  if (strEmail.search(validRegExp) == -1) 

  {

      //alert('A valid e-mail address is required.\nPlease amend and retry');

      return false;

   } 

   return true; 

}



//-------------------------------------------------------------------

// isDigit(value)

//   Returns true if value is a 1-character digit

//-------------------------------------------------------------------

function isDigit(num) {
   
     var num = valtrim(num);
	 
	if (num.length>1){return false;}

	var string="1234567890";

	if (string.indexOf(num)!=-1){return true;}

	return false;

	}





//-------------------------------------------------------------------

// isBlank(value)

//   Returns true if value only contains spaces

//-------------------------------------------------------------------

function isBlank(val){
	var val = valtrim(val);

	if(val==null){return true;}

	for(var i=0;i<val.length;i++) {

		if ((val.charAt(i)!=' ')&&(val.charAt(i)!="\t")&&(val.charAt(i)!="\n")&&(val.charAt(i)!="\r")){return false;}

		}

	return true;

	}



/* isInteger(value)

   Returns true if value contains all digits*/

function isInteger(val)

{
    var val = valtrim(val);
	
	if(isBlank(val))

	{

		return false;

	}

	for(var i=0;i<val.length;i++)

	{

		if(!isDigit(val.charAt(i)))

		{

			return false;

		}

	}

	return true;

}



/* isNumeric(value)

   Returns true if value contains a positive float value*/

function isNumeric(val)

{

	return(parseFloat(val,10)==(val*1));
	
}



/*Validate the add new user form entries.

Parameters: thisform take name of the login form.*/

function validate_adduser(thisform)

{

	with(thisform)

	{

		if(validate_required(username,'uname')==false)

		{

			uname.focus();

			return false;

		}

		if(validate_required(password,'pword')==false)

		{

			pword.focus();

			return false;

		}

		if(validate_required(repassword,'repass')==false)

		{

			repass.focus();

			return false;

		}

		/*if(validate_required(email,'mail')==false)

		{

			mail.focus();

			return false;

		}*/

		if(validate_required(first,'firstname')==false)

		{

			firstname.focus();

			return false;

		}

		if(validate_required(last,'lastname')==false)

		{

			lastname.focus();

			return false;

		}

		/*if(validate_required(add1,'address1')==false)

		{

			address1.focus();

			return false;

		}*/
		
		
		/*if(validate_required(city,'cityname')==false)

		{

			cityname.focus();

			return false;

		}*/

		
		/*if(validate_required(state,'statename')==false)

		{

			statename.focus();

			return false;

		}*/

		
		/*if(validate_required(zip,'zipcode')==false)

		{

			zipcode.focus();

			return false;

		}*/

		/*if(validate_required(ship_add,'ship_address')==false)
		
		{
		
			ship_address.focus();
			
			return false;
			
		}*/
		
		/*if(validate_required(ship_city,'ship_cityname')==false)

		{

			ship_cityname.focus();

			return false;

		}

		if(validate_required(ship_state,'statename')==false)

		{

			ship_statename.focus();

			return false;

		}

		if(validate_required(ship_zip,'ship_zipcode')==false)

		{

			ship_zipcode.focus();

			return false;

		}*/


		if(password.value!=repassword.value)

		{

			obj=document.getElementById('repass');

			obj.innerHTML="   Password not match";

			repassword.focus();

			return false;

		}

		if(thisform.zip.value != "")
		{
			if(isInteger(zip.value)==false)
			{

				obj=document.getElementById('zipcode');
 
				obj.innerHTML="Invalid";

				return false;
			}
		}
 
 		if(thisform.email.value != "")
		{
			if(isValidEmail(email.value)==false)

			{

				obj=document.getElementById('mail');

				obj.innerHTML="Invalid";

				return false;

			}
		}

		if(type.value=="none")

		{

			obj=document.getElementById('utype');

			obj.innerHTML="Select Type";

			utype.focus();

			return false;

		}
		if(type.value =="4"){
			if(manager.value=="none")
			{
				obj=document.getElementById('managern');
	
				obj.innerHTML="Select Manager";
	
				managern.focus();
	
				return false;
	
			}
	 }	
	 if(type.value =="2"){
		// alert(type.value);
			if(account_name.value=="")
			{   //alert(account_name.value);
				obj=document.getElementById('accountnam');
	
				obj.innerHTML="Customer Name";
	
				accountnam.focus();
	
				return false;
	
			}
			
			if(account_number.value=="")
			{   //alert(account_name.value);
				obj=document.getElementById('accountnum');
	
				obj.innerHTML="Customer Number";
	
				accountnum.focus();
	
				return false;
	
			}
			
	 }	

		if((pm.checked)&&((type.value)!="5"))

		{

			obj=document.getElementById('pmname');

			obj.innerHTML="Invalid";

			return false;

		}

	}

}
function validate_subcontractor_report(thisform){
with(thisform)
		{
			if(validate_required(subcontractor_name,'c_name')==false)
			{
				c_name.focus();
				return false;
			}
		}
}
function validate_new_compliant(thisform)
{
	with(thisform) {
		if(validate_required(title,'title') == false) {
			title.focus();
			return false;
		}
		if(validate_required(desc,'desc') == false) {
			desc.focus();
			return false;
		}
	}
}

function validate_new_comment(thisform)
{
	with(thisform) {
		if(validate_required(comment,'comment') == false) {
			comment.focus();
			return false;
		}
	}
}
function validate_report(thisform){
	with(thisform)
		{
			if(validate_required(customer_name,'c_name')==false)
			{
				c_name.focus();
				return false;
			}
		}
}

function validate_edit_profile(thisform)

{

	with(thisform)

	{

		if(validate_required(username,'uname')==false)

		{

			uname.focus();

			return false;

		}

		if(validate_required(password,'pass')==false)

		{

			pass.focus();

			return false;

		}

		if(validate_required(repassword,'repass')==false)

		{

			repass.focus();

			return false;

		}

		if(validate_required(email,'mail')==false)

		{

			mail.focus();

			return false;

		}

		if(validate_required(first,'firstname')==false)

		{

			firstname.focus();

			return false;

		}

		if(validate_required(last,'lastname')==false)

		{

			lastname.focus();

			return false;

		}

		if(validate_required(add1,'address')==false)

		{

			address.focus();

			return false;

		}

		if(validate_required(city,'cityname')==false)

		{

			cityname.focus();

			return false;

		}

		if(validate_required(state,'statename')==false)

		{

			statename.focus();

			return false;

		}

		if(validate_required(zip,'zipcode')==false)

		{

			zipcode.focus();

			return false;

		}

		if(password.value!=repassword.value)

		{

			obj=document.getElementById('repass');

			obj.innerHTML="Password not match";

			repass.focus();

			return false;

		}

		if(isInteger(zip.value)==false)

		{

			obj=document.getElementById('zipcode');

			obj.innerHTML="Invalid";

			return false;

		}

		if(isValidEmail(email.value)==false)

		{

			obj=document.getElementById('mail');

			obj.innerHTML="Invalid Email Address";

			return false;

		}
	}

}

function msg_clear_complaint() {
	document.getElementById('title').innerHTML = "";
	document.getElementById('desc').innerHTML = "";
}

function msg_clear_comment() {
	document.getElementById('comment').innerHTML = "";
}

/*Clear the validation messages in add user form*/

function msg_clear_adduser()

{

	document.getElementById('uname').innerHTML="";

	document.getElementById('pword').innerHTML="";

	document.getElementById('repass').innerHTML="";

	document.getElementById('mail').innerHTML="";

	document.getElementById('firstname').innerHTML="";

	document.getElementById('lastname').innerHTML="";

	document.getElementById('address1').innerHTML="";

	document.getElementById('cityname').innerHTML="";

	document.getElementById('statename').innerHTML="";

	document.getElementById('zipcode').innerHTML="";

	document.getElementById('utype').innerHTML="";
	
	document.getElementById('managern').innerHTML="";
	
	document.getElementById('pmname').innerHTML="";

	document.getElementById('ship_add').innerHTML="";
	
	document.getElementById('ship_city').innerHTML="";
	
	document.getElementById('ship_state').innerHTML="";
	
	document.getElementById('ship_zip').innerHTML="";
}

function msg_clear_edit_profile()
{
	document.getElementById('uname').innerHTML="";

	document.getElementById('pass').innerHTML="";

	document.getElementById('repass').innerHTML="";

	document.getElementById('mail').innerHTML="";

	document.getElementById('firstname').innerHTML="";

	document.getElementById('lastname').innerHTML="";

	document.getElementById('address').innerHTML="";

	document.getElementById('cityname').innerHTML="";

	document.getElementById('statename').innerHTML="";

	document.getElementById('zipcode').innerHTML="";
}

function validate_date(txt_datebox,msgid)

{

	obj=document.getElementById(msgid);

	

	var currentTime = new Date()

	var month = currentTime.getMonth() + 1

	var day = currentTime.getDate()

	var year = currentTime.getFullYear()

	var Today = month + "/" + day + "/" + year;

 

 	datebox=document.getElementById(txt_datebox);

 	var dateStr=datebox.value;

	var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{2})$/;;

	

	// To require a 4 digit year entry, use this line instead:

	var datePat_yyyy = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/;

	var matchArray = dateStr.match(datePat); // is the format ok?

	var matchArray_yyyy = dateStr.match(datePat_yyyy); // is the format ok?

	

	if (matchArray == null && matchArray_yyyy == null)

 	{

		obj.innerHTML="Please fill date and/or it should in mm/dd/yy or mm-dd-yy format.";

		datebox.value = "";

		datebox.focus();

		return false;

	}

	

	if(matchArray == null)

	{ 	

		month = matchArray_yyyy[1]; // parse date into variables

		day = matchArray_yyyy[3];

		year = matchArray_yyyy[4];

	}

	else

	{ 	

		month = matchArray[1]; // parse date into variables

		day = matchArray[3];

		year = matchArray[4];

	}

	if (month < 1 || month > 12) 

	{ // check month range

		obj.innerHTML="Month must be between 1 and 12.";

		datebox.value = "";

		datebox.focus();

		return false;

	}

	if (day < 1 || day > 31)

 	{

		obj.innerHTML="Day must be between 1 and 31.";

		datebox.value = "";

		datebox.focus();

		return false;

	}

	if ((month==4 || month==6 || month==9 || month==11) && day==31) 

	{

		obj.innerHTML="Month "+month+" doesn't have 31 days!";

		datebox.value = "";

		datebox.focus();

		return false;

	}

	if (month == 2) 

	{ // check for february 29th

		var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));

		if (day>29 || (day==29 && !isleap)) 

		{

			obj.innerHTML="February " + year + " doesn't have " + day + " days!";

			return false;

		}

	}	

	return true;

}



function validate_new_wo(thisform)

{

	with(thisform)

	{

		if(validate_required(account_name,'a_name')==false)

		{

			a_name.focus();

			return false;

		}

		if(validate_required(address,'add')==false)

		{

			add.focus();

			return false;

		}

		if(flag.value=='1')

		{

			if(requested_by.value=='none')

			{
				obj=document.getElementById('r_by');

				obj.innerHTML="Select";

				r_by.focus();

				return false;

			}

		}

		else

		{

			if(validate_required(requested_by,'r_by')==false)

			{

				r_by.focus();

				return false;

			}

		}

		if(validate_required(txtdescription,'tdescription')==false)

		{

			tdescription.focus();

			return false;

		}
		
		if(end_date.value < start_date.value)
		{
			
			obj=document.getElementById('datemsg');

			obj.innerHTML="End date should be greater than starting date";

			end_date.value = "";

			datemsg.focus();

			return false;

		}
		/*if(validate_required(start_date,'start_date')==false){
			
			start_date.focus();
			return false;
		}
		if(validate_required(end_date,'end_date')==false){
			
			end_date.focus();
			return false;
		}
		*/
		
	}

}

function msg_clear_new_wo()

{

	document.getElementById('a_name').innerHTML="";

	document.getElementById('add').innerHTML="";

	document.getElementById('r_by').innerHTML="";

	document.getElementById('tdescription').innerHTML="";


}



function validate_percent_tax(thisform)

{

	with(thisform)

	{

		if(isNumeric(percentage.value)==false)

		{

			obj=document.getElementById('percentage');

			obj.innerHTML="Enter valid percentage";

			percentage.focus();

			return false;

		}

		if(isNumeric(tax.value)==false)

		{

			obj=document.getElementById('tax');

			obj.innerHTML="Enter valid tax";

			tax.focus();

			return false;

		}

	}

}

function msg_clear_percent_tax()

{

	document.getElementById('percentage').innerHTML="";

	document.getElementById('tax').innerHTML="";

}

function validate_password_lost()

{

	email=document.getElementById('email');

	if(email.value=='')

	{

		document.getElementById('message').innerHTML="Enter email id.";

		email.focus();

		return false;

	}

	if(isValidEmail(email.value)==false)

	{

		document.getElementById('message').innerHTML="Enter valid email id.";

		email.focus();

		return false;

	}

}

function validate_assign_wo(thisform)

{

	with(thisform)

	{

		if(validate_required(account_name,'a_name')==false)

		{

			a_name.focus();

			return false;

		}

		if(validate_required(address,'add')==false)

		{

			add.focus();

			return false;

		}

		if(flag.value=='1')
		{
			if(requested_by.value=='none')
			{
				obj=document.getElementById('r_by');

				obj.innerHTML="Select";

				r_by.focus();

				return false;

			}

		}

		else

		{

			if(validate_required(requested_by,'r_by')==false)

			{

				r_by.focus();

				return false;

			}

		}

		if(assigned_to.value=='none')

		{

			document.getElementById('a_to').innerHTML="Required";

			a_to.focus();

			return false;

		}

		if(validate_required(txtdescription,'tdescription')==false)

		{

			tdescription.focus();

			return false;

		}

		if(end_date.value < start_date.value)

		{

			obj=document.getElementById('datemsg');

			obj.innerHTML="End date should be greater than starting date";

			end_date.value = "";

			datemsg.focus();

			return false;

		}

	}

}

function ship_addr()
{
	
	if(document.frm.shipping_addr.checked)
	{
		document.frm.ship_add.value = document.frm.add1.value;
		document.frm.ship_city.value = document.frm.city.value;
		document.frm.ship_state.value = document.frm.state.value;
		document.frm.ship_zip.value = document.frm.zip.value;
	}
	else
	{
		document.frm.ship_add.value = "";
		document.frm.ship_city.value = "";
		document.frm.ship_state.value = "";
		document.frm.ship_zip.value = "";
	}
	
}