/*

  -------------------------------------------------------------------------

	                    JavaScript Form Validator 

                                Version 2.0.2

	Copyright 2003 JavaScript-coder.com. All rights reserved.

	You use this script in your Web pages, provided these opening credit

    lines are kept intact.

	The Form validation script is distributed free from JavaScript-Coder.com



	You may please add a link to JavaScript-Coder.com, 

	making it easy for others to find this script.

	Checkout the Give a link and Get a link page:

	http://www.javascript-coder.com/links/how-to-link.php



    You may not reprint or redistribute this code without permission from 

    JavaScript-Coder.com.

	

	JavaScript Coder

	It precisely codes what you imagine!

	Grab your copy here:

		http://www.javascript-coder.com/

    -------------------------------------------------------------------------  

*/

function Validator(frmname)

{

  this.formobj=document.forms[frmname];

	if(!this.formobj)

	{

	  alert("BUG: couldnot get Form object "+frmname);

		return;

	}

	if(this.formobj.onsubmit)

	{

	 this.formobj.old_onsubmit = this.formobj.onsubmit;

	 this.formobj.onsubmit=null;

	}

	else

	{

	 this.formobj.old_onsubmit = null;

	}

	this.formobj.onsubmit=form_submit_handler;

	this.addValidation = add_validation;

	this.setAddnlValidationFunction=set_addnl_vfunction;

	this.clearAllValidations = clear_all_validations;

}

function set_addnl_vfunction(functionname)

{

  this.formobj.addnlvalidation = functionname;

}

function clear_all_validations()

{

	for(var itr=0;itr < this.formobj.elements.length;itr++)

	{

		this.formobj.elements[itr].validationset = null;

	}

}

function form_submit_handler()

{

	for(var itr=0;itr < this.elements.length;itr++)

	{

		if(this.elements[itr].validationset &&

	   !this.elements[itr].validationset.validate())

		{

		  return false;

		}

	}

	if(this.addnlvalidation)

	{

	  str =" var ret = "+this.addnlvalidation+"()";

	  eval(str);

    if(!ret) return ret;

	}

	return true;

}

function add_validation(itemname,descriptor,errstr)

{

  if(!this.formobj)

	{

	  alert("BUG: the form object is not set properly");

		return;

	}//if

	var itemobj = this.formobj[itemname];

  if(!itemobj)

	{

	  alert("BUG: Couldnot get the input object named: "+itemname);

		return;

	}

	if(!itemobj.validationset)

	{

	  itemobj.validationset = new ValidationSet(itemobj);

	}

  itemobj.validationset.add(descriptor,errstr);

}

function ValidationDesc(inputitem,desc,error)

{

  this.desc=desc;

	this.error=error;

	this.itemobj = inputitem;

	this.validate=vdesc_validate;

}

function vdesc_validate()

{

 if(!V2validateData(this.desc,this.itemobj,this.error))

 {

    this.itemobj.focus();

		return false;

 }

 return true;

}

function ValidationSet(inputitem)

{

    this.vSet=new Array();

	this.add= add_validationdesc;

	this.validate= vset_validate;

	this.itemobj = inputitem;

}

function add_validationdesc(desc,error)

{

  this.vSet[this.vSet.length]= 

	  new ValidationDesc(this.itemobj,desc,error);

}

function vset_validate()

{

   for(var itr=0;itr<this.vSet.length;itr++)

	 {

	   if(!this.vSet[itr].validate())

		 {

		   return false;

		 }

	 }

	 return true;

}

function validateEmailv2(email)

{

// a very simple email validation checking. 

// you can add more complex email checking if it helps 

    if(email.length <= 0)

	{

	  return true;

	}

    var splitted = email.match("^(.+)@(.+)$");

    if(splitted == null) return false;

    if(splitted[1] != null )

    {

      var regexp_user=/^\"?[\w-_\.]*\"?$/;

      if(splitted[1].match(regexp_user) == null) return false;

    }

    if(splitted[2] != null)

    {

      var regexp_domain=/^[\w-\.]*\.[A-Za-z]{2,4}$/;

      if(splitted[2].match(regexp_domain) == null) 

      {

	    var regexp_ip =/^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;

	    if(splitted[2].match(regexp_ip) == null) return false;

      }// if

      return true;

    }

return false;

}

function V2validateData(strValidateStr,objValue,strError) 

{ 

    var epos = strValidateStr.search("="); 

    var  command  = ""; 

    var  cmdvalue = ""; 

    if(epos >= 0) 

    { 

     command  = strValidateStr.substring(0,epos); 

     cmdvalue = strValidateStr.substr(epos+1); 

    } 

    else 

    { 

     command = strValidateStr; 

    } 

    switch(command) 

    { 

        case "req": 

        case "required": 

         { 

           if(eval(objValue.value.length) == 0) 

           { 

              if(!strError || strError.length ==0) 

              { 

                strError = objValue.name + " : Required Field"; 

              }//if 

              alert(strError); 

              return false; 

           }//if 

           break;             

         }//case required 

        case "maxlength": 

        case "maxlen": 

          { 

             if(eval(objValue.value.length) >  eval(cmdvalue)) 

             { 

               if(!strError || strError.length ==0) 

               { 

                 strError = objValue.name + " : "+cmdvalue+" characters maximum "; 

               }//if 

               alert(strError + "\n[Current length = " + objValue.value.length + " ]"); 

               return false; 

             }//if 

             break; 

          }//case maxlen 

        case "minlength": 

        case "minlen": 

           { 

             if(eval(objValue.value.length) <  eval(cmdvalue)) 

             { 

               if(!strError || strError.length ==0) 

               { 

                 strError = objValue.name + " : " + cmdvalue + " characters minimum  "; 

               }//if               

               alert(strError + "\n[Current length = " + objValue.value.length + " ]"); 

               return false;                 

             }//if 

             break; 

            }//case minlen 

        case "alnum": 

        case "alphanumeric": 

           { 

              var charpos = objValue.value.search("[^A-Za-z0-9]"); 

              if(objValue.value.length > 0 &&  charpos >= 0) 

              { 

               if(!strError || strError.length ==0) 

                { 

                  strError = objValue.name+": Only alpha-numeric characters allowed "; 

                }//if 

                alert(strError + "\n [Error character position " + eval(charpos+1)+"]"); 

                return false; 

              }//if 

              break; 

           }//case alphanumeric 

        case "num": 

        case "numeric": 

           { 

              var charpos = objValue.value.search("[^0-9]"); 

              if(objValue.value.length > 0 &&  charpos >= 0) 

              { 

                if(!strError || strError.length ==0) 

                { 

                  strError = objValue.name+": Only digits allowed "; 

                }//if               

                alert(strError + "\n [Error character position " + eval(charpos+1)+"]"); 

                return false; 

              }//if 

              break;               

           }//numeric 

        case "alphabetic": 

        case "alpha": 

           { 

              var charpos = objValue.value.search("[^A-Za-z]+.[^A-Za-z]+"); 

              if(objValue.value.length > 0 &&  charpos >= 0) 

              { 

                  if(!strError || strError.length ==0) 

                { 

                  strError = objValue.name+": Only alphabetic characters allowed "; 

                }//if                             

                alert(strError + "\n [Error character position " + eval(charpos+1)+"]"); 

                return false; 

              }//if 

              break; 

           }//alpha 

		case "alnumhyphen":

			{

              var charpos = objValue.value.search("[^A-Za-z0-9\-_]"); 

              if(objValue.value.length > 0 &&  charpos >= 0) 

              { 

                  if(!strError || strError.length ==0) 

                { 

                  strError = objValue.name+": characters allowed are A-Z,a-z,0-9,- and _"; 

                }//if                             

                alert(strError + "\n [Error character position " + eval(charpos+1)+"]"); 

                return false; 

              }//if 			

			break;

			}

        case "email": 

          { 

               if(!validateEmailv2(objValue.value)) 

               { 

                 if(!strError || strError.length ==0) 

                 { 

                    strError = objValue.name+": Enter a valid Email address "; 

                 }//if                                               

                 alert(strError); 

                 return false; 

               }//if 

           break; 

          }//case email 

        case "lt": 

        case "lessthan": 

         { 

            if(isNaN(objValue.value)) 

            { 

              alert(objValue.name+": Should be a number "); 

              return false; 

            }//if 

            if(eval(objValue.value) >=  eval(cmdvalue)) 

            { 

              if(!strError || strError.length ==0) 

              { 

                strError = objValue.name + " : value should be less than "+ cmdvalue; 

              }//if               

              alert(strError); 

              return false;                 

             }//if             

            break; 

         }//case lessthan 

        case "gt": 

        case "greaterthan": 

         { 

            if(isNaN(objValue.value)) 

            { 

              alert(objValue.name+": Should be a number "); 

              return false; 

            }//if 

             if(eval(objValue.value) <=  eval(cmdvalue)) 

             { 

               if(!strError || strError.length ==0) 

               { 

                 strError = objValue.name + " : value should be greater than "+ cmdvalue; 

               }//if               

               alert(strError); 

               return false;                 

             }//if             

            break; 

         }//case greaterthan 

        case "regexp": 

         { 

		 	if(objValue.value.length > 0)

			{

	            if(!objValue.value.match(cmdvalue)) 

	            { 

	              if(!strError || strError.length ==0) 

	              { 

	                strError = objValue.name+": Invalid characters found "; 

	              }//if                                                               

	              alert(strError); 

	              return false;                   

	            }//if 

			}

           break; 

         }//case regexp 

        case "dontselect": 

         { 

            if(objValue.selectedIndex == null) 

            { 

              alert("BUG: dontselect command for non-select Item"); 

              return false; 

            } 

            if(objValue.selectedIndex == eval(cmdvalue)) 

            { 

             if(!strError || strError.length ==0) 

              { 

              strError = objValue.name+": Please Select one option "; 

              }//if                                                               

              alert(strError); 

              return false;                                   

             } 

             break; 

         }//case dontselect 

    }//switch 

    return true; 

}

/*

	Copyright 2003 JavaScript-coder.com. All rights reserved.

*/

function DoCustomValidation()

{

  var frm = document.forms["myform"];

 /* if (frm.txt_regemail.value != frm.txt_regconfemail.value)

  {

  	alert('The Email and Confirm Email does not match!');

    return false;

  }*/

   if(frm.password.value != frm.password2.value)

  {

    alert('The Password and Confirm Password does not match!');

    return false;

  }

  else if(frm.terms.checked == false)

  {

    alert('Please agree with the terms and conditions');

    return false;

  }

  else

  {

    return true;

  }

}



function DoCustomValidation2()

{

  var frm = document.forms["myform"];

 

  if(frm.txt_regpassword.value != frm.txt_regconfpassword.value)

  {

    alert('The Password and Confirm Password does not match!');

    return false;

  }

  else

  {

    return true;

  }

}

function DoCustomValidation3()

{

  var frm = document.forms["myform"];

 

  if(frm.fn.value == '' && frm.ln.value == '')

  {

    alert('Please enter either Forename or Last Name');

    return false;

  }

  else

  {

    return true;

  }

}



function DoCustomValidation4()

{

  var frm = document.forms["myform"];

 

  if(frm.hf.value == '' && frm.hl.value == '' && frm.wf.value == '' && frm.wl.value == '')

  {

    alert('Please enter atleast one Forename or Last Name');

    return false;

  }

  else

  {

    return true;

  }

}





function DoCustomValidation5()

{

  var frm = document.forms["myform"];

 

  if(frm.lname.value == '' )

  {

    alert('Please enter Last Name');

    return false;

  }

  else

  {

    return true;

  }

}



// Function to Confirm before a delete operation in the admin

function confirm_delete()

{

  if (confirm("Are you sure you want to delete?")==true)

    return true;

  else

    return false;

}	



// Below function is to toggle the advanced search in the admin for searching customers.

function toggleLayer(whichLayer)

{

	

if (document.getElementById)

{

// this is the way the standards work

var style2 = document.getElementById(whichLayer).style;

style2.display = style2.display? "":"block";

}

else if (document.all)

{

// this is the way old msie versions work

var style2 = document.all[whichLayer].style;

style2.display = style2.display? "":"block";

}

else if (document.layers)

{

// this is the way nn4 works

var style2 = document.layers[whichLayer].style;

style2.display = style2.display? "":"block";

}



if (style2.display){

	document.getElementById("showhide").innerHTML = "Hide Advanced Search";

	//alert("Hide");

}else{

	document.getElementById("showhide").innerHTML = "Show Advanced Search";

	//alert("Show");

}

}



// Function used in emp_modifydelete.php to check is a employee is clicked.

function radio_button_checker()

{

// set var radio_choice to false

var radio_choice = false;



// Loop from zero to the one minus the number of radio button selections

for (counter = 0; counter < emp_edit.txt_empid.length; counter++)

{

// If a radio button has been selected it will return true

// (If not it will return false)

if (emp_edit.txt_empid[counter].checked)

radio_choice = true; 

}



if (!radio_choice)

{

// If there were no selections made display an alert box 

alert("Please select an employee to edit.")

return (false);

}

return (true);

}



function checkCheckBoxes() 

{

	if (document.forms[0].CHKBOX_1.checked == false && 

		document.forms[0].CHKBOX_2.checked == false && 

		document.forms[0].CHKBOX_3.checked == false)

	{

	alert ('You didn\'t agree with the terms and conditions');

	return false;

	}

	else {

	return true;

	}

}



// THIS FUNCTION IS USED IN EMP_REPORT.PHP

function ActionDeterminator()

{

if(document.myform.re[0].checked == true) {

document.myform.action = 'emp_cust_rep_results.php';

}

if(document.myform.re[1].checked == true) {

document.myform.action = 'emp_inv_rep_results.php';

}

if(document.myform.re[2].checked == true) {

document.myform.action = 'emp_sea_rep_results.php';

}

return true;

}





function DoCustomValidation6()

{

  var frm = document.forms["myform"];

 

  if(frm.initial.value == '' && frm.lname.value == '')

  {

    alert('Please enter either Initial or Last Name');

    return false;

  }

  else

  {

    return true;

  }

}