/*
  -------------------------------------------------------------------------
	                    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/
    -------------------------------------------------------------------------  
*/


String.prototype.trim = function(){
return( this.replace(new RegExp("^([\\s]+)|([\\s]+)$", "gm"), "") );
}

var errorPrefix;
var errorDivStyle;
var showPrefix;

function setValidationParams(prefix)
{
	
errorPrefix = '<img src="images/bulb.png" width="25" height="31" align="absmiddle" hspace="8">';
errorDivStyle = 'errorSpan red txt11 bold';
showPrefix = prefix;
}

function setValidationParams2(prefix)
{
	
errorPrefix = bulbStr;
errorDivStyle = 'errorSpan red txt11 bold';
showPrefix = prefix;
}

function validateEmailv2(email)
{
// a very simple email validation checking. 
// you can add more complex email checking if it helps 
    if(email.value.length <= 0)
	{
	  return true;
	}
    var splitted = email.value.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 validate(objItem, strValidateStr, strError, errorDiv) 
{ 

if(strValidateStr == "checkPasswords") var objValue = objItem.split("|");
else objValue = document.getElementById(objItem);

if(objValue)
{
	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.trim().length) == 0) 
           { 
              if(!strError || strError.length ==0) 
              { 
                strError = objValue.name + " : Required Field"; 
              }//if 
             changeCss(objValue, false);	
			 showErrorMsg(strError, errorDiv, false );
			 
			 return false; 
           }
		  

           break;             
         }//case required 
        case "maxlength": 
        case "maxlen": 
          { 
             if(eval(objValue.value.trim().length) >  eval(cmdvalue)) 
             { 
               if(!strError || strError.length ==0) 
               { 
                 strError = objValue.name + " : "+cmdvalue+" characters maximum "; 
               }//if 
				showErrorMsg(strError, errorDiv, false );
               changeCss(objValue, false)
			   return false; 
             }
			 //if 
             break; 
          }//case maxlen 
        case "minlength": 
        case "minlen": 
           { 
             if(eval(objValue.value.trim().length) <  eval(cmdvalue)) 
             { 
               if(!strError || strError.length ==0) 
               { 
                 strError = objValue.name + " : " + cmdvalue + " characters minimum  "; 
               }//if               
               showErrorMsg(strError, errorDiv, false );
              changeCss(objValue, false)
			 return false;                 
             }
			 //if 
             break; 
            }//case minlen 
        case "alnum": 
        case "alphanumeric": 
           { 
              var charpos = objValue.value.trim().search("[^A-Za-z0-9]"); 
              if(objValue.value.trim().length > 0 &&  charpos >= 0) 
              { 
               if(!strError || strError.length ==0) 
                { 
                  strError = objValue.name+": Only alpha-numeric characters allowed "; 
                }//if 
                showErrorMsg(strError, errorDiv, false );
               changeCss(objValue, false)
 				return false; 
              }
			  else
		   	  {
			   changeCss(objValue)
  		      }//if 
              break; 
           }//case alphanumeric 
        case "num": 
        case "numeric": 
           { 
              var charpos = objValue.value.trim().search("[^0-9]"); 
              if(objValue.value.trim().length > 0 &&  charpos >= 0) 
              { 
                if(!strError || strError.length ==0) 
                { 
                  strError = objValue.name+": Only digits allowed "; 
                }//if               
              
				showErrorMsg(strError, errorDiv, false );
               changeCss(objValue, false)
 				return false; 
              }
			  //if 
              break;               
           }//numeric 
        case "alphabetic": 
        case "alpha": 
           { 
              var charpos = objValue.value.trim().search("[^A-Za-z]"); 
              if(objValue.value.trim().length > 0 &&  charpos >= 0) 
              { 
                  if(!strError || strError.length ==0) 
                { 
                  strError = objValue.name+": Only alphabetic characters allowed "; 
                }//if                             
               
				showErrorMsg(strError, errorDiv, false );
               changeCss(objValue, false)
 				return false; 
              }
			  //if 
              break; 
           }//alpha 
		case "alnumhyphen":
			{
              var charpos = objValue.value.trim().search("[^A-Za-z0-9\-_]"); 
              if(objValue.value.trim().length > 0 &&  charpos >= 0) 
              { 
                  if(!strError || strError.length ==0) 
                { 
                  strError = objValue.name+": characters allowed are A-Z,a-z,0-9,- and _"; 
                }//if                             
                showErrorMsg(strError, errorDiv, false );
               changeCss(objValue, false)
 				return false; 
              }
			  //if 			
			break;
			}
        case "email": 
          { 
               if(!validateEmailv2(objValue)) 
               { 
                 if(!strError || strError.length ==0) 
                 { 
                    strError = objValue.name+": Enter a valid Email address "; 
                 }//if                                               
                 showErrorMsg(strError, errorDiv, false );
                changeCss(objValue, false)
 				return false; 
               }
			   //if 
			changeCss(objValue, true)
           break; 
          }//case email 
        case "lt": 
        case "lessthan": 
         { 
            if(isNaN(objValue.value)) 
            { 
              alert(objValue.name+": Should be a number "); 
             changeCss(objValue, false)
 				return false; 
            }//if 
            if(eval(objValue.value) >=  eval(cmdvalue)) 
            { 
              if(!strError || strError.length ==0) 
              { 
                strError = objValue.name + " : value should be less than "+ cmdvalue; 
              }//if               
              showErrorMsg(strError, errorDiv, false );
             changeCss(objValue, false)
				return false;                 
             }
			 //if             
            break; 
         }//case lessthan 
        case "gt": 
        case "greaterthan": 
         { 
            if(isNaN(objValue.value)) 
            { 
			showErrorMsg(objValue.name+": Should be a number ", errorDiv );
             
             changeCss(objValue, false)
 				return false; 
            }//if 
             if(eval(objValue.value) <=  eval(cmdvalue)) 
             { 
               if(!strError || strError.length ==0) 
               { 
                 strError = objValue.name + " : value should be greater than "+ cmdvalue; 
               }//if               
               showErrorMsg(strError, errorDiv, false );
              changeCss(objValue, false)
 				return false;                 
             }
			 //if             
            break; 
         }//case greaterthan 
		 case "stdval": 
         { 
			//alert(cmdvalue);
             if(objValue.value ==  cmdvalue) 
             { 
               if(!strError || strError.length ==0) 
               { 
                 strError = objValue.name + " : should not be "+ cmdvalue; 
               }//if               
               showErrorMsg(strError, errorDiv, false );
              changeCss(objValue, false)
				 return false;                 
             }
			 //if             
            break; 
         }//case greaterthan 
        case "regexp": 
         { 
		 	if(objValue.value.trim().length > 0)
			{
	            if(!objValue.value.trim().match(cmdvalue)) 
	            { 
	              if(!strError || strError.length ==0) 
	              { 
	                strError = objValue.name+": Invalid characters found "; 
	              }//if                                                               
	               showErrorMsg(strError, errorDiv, false );
	             changeCss(objValue, false)
 				return false;                   
	            }
				//if 
			}
           break; 
         }//case regexp 
        case "dontselect": 
         { 
            if(objValue.selectedIndex == null) 
            { 
              alert("BUG: dontselect command for non-select Item"); 
             changeCss(objValue, false)
 				return false; 
            } 
            if(objValue.selectedIndex == eval(cmdvalue)) 
            { 
             if(!strError || strError.length ==0) 
              { 
              strError = objValue.name+": Please Select one option "; 
              }//if                                                               
               showErrorMsg(strError, errorDiv, false );
             changeCss(objValue, false)
 				return false;                                   
             } 
			 
             break; 
         }//case dontselect 
		 
		 
		 
		 case "checked": 
         { 
            
            if(objValue.checked == false) 
            { 
                                                                   
             showErrorMsg(strError, errorDiv, false );
             changeCss(objValue, false)
 				return false;                                   
             } 
			 
             break; 
         }//case dontselect 
		 
		case "radiobox" :
		{
			alert("jkjk");
			alert(objValue);
			return false;
			/*var radio_choice = false;
			alert("objValue: "+objValue.value.length);
				var selected = false;
			for (var i = 0; i < document.form1.customers_gender.length; i++)
			{
				if (document.form1.customers_gender[i].checked)
				selected = true; 
			}
			if (!selected)
			{
				changeCss(objValue, status)
				showErrorMsg(strError, errorDiv, status)
				alert("Please select gender.")
				return (false);
			}*/
			
			break; 
		}
		 
		 case "checkPasswords":
		{ 
			
			
			if(document.getElementById(objValue[0]).value.trim() != document.getElementById(objValue[1]).value.trim())	
			{
				
				changeCss(document.getElementById(objValue[1]), false);
				changeCss(document.getElementById(objValue[0]), false);
				showErrorMsg(strError, errorDiv, false)
				return false;
			}
			else 
			{
				
				changeCss(document.getElementById(objValue[1]), true);
				changeCss(document.getElementById(objValue[0]), true);
				showErrorMsg(strError, errorDiv, true)
				return true;
			}
		
		break;             
		}
		
		case "defaultStr":
		{ 
		 var cmdArr = cmdvalue.split("_");
		var cmdvalueStr ="";
		for(var v=0; v<cmdArr.length; v++) cmdvalueStr += cmdArr[v]+" ";
			 
			if(objValue.value == cmdvalueStr.trim()) 
			{ 
				if(!strError || strError.length ==0) 
				{ 
					strError = objValue.name + " : Required Field"; 
				}//if 
				
				changeCss(objValue, false);
				showErrorMsg(strError, errorDiv, false );
				
				return false; 
			}
			break;             
		}
		
		
		
		 
		  
    }//switch 
	changeCss(objValue, true);
	showErrorMsg(strError, errorDiv, true );
    return true; 
}
}



function customValidation(objItem, strValidateStr, strError, errorDiv, formname)
{
var objValue = document.getElementById(objItem);	


switch(strValidateStr)	
{
case "radiobox":
var selected = false;
var formObj = document.getElementById(formname);

		for (var i = 0; i < formObj.elements[objItem].length; i++)
		{
			if (formObj.elements[objItem][i].checked)
			selected = true; 
		}
		if (!selected)
		{
			changeCss(objValue, status)
			showErrorMsg(strError, errorDiv, status)
			return false;
		}
break;
}
	
	
	
changeCss(objValue, true);
showErrorMsg(strError, errorDiv, true );
return true; 
	
}



function changeCss(objValue, status)
{
	var classname = objValue.className.substr(objValue.className.length-6)
	
	if(status == true)
	{
		if(classname == " error") objValue.className = objValue.className.substr(0,(objValue.className.length-6));
	}
	else if(status == false)
	{
		if(classname != " error") objValue.className = objValue.className+" error";
	}
	
	objValue.focus();
}

function showErrorMsg(strError, errorDiv, status)
{
	// errorPrefix declared on top of this file.
	// showPrefix - declare this in your js file before validation
	if(errorPrefix && showPrefix==true) strError = errorPrefix+strError;
	
	var span = document.getElementById(errorDiv);
	
	//alert(strError+"--"+span.id+"--")
	if(status == true && errorDiv) span.innerHTML = ""; 
	else if(status == false && errorDiv) span.innerHTML = ""+strError+"";
	//else alert(strError); 
}


/*
	Copyright 2003 JavaScript-coder.com. All rights reserved.
*/
