    $.fn.validation = function() {
       
             
       var name = "validation-item";
        
      this.submit( function( event ) {				
					// prevent form submit 
			    var valid = true;
      		event.preventDefault();
					
					$(this).find('.required').each(function() {
           
            
            if( $(this).val() == '' )
            {
              valid = false;
              if( ! $(this).hasClass("validation-failed") ) $(this).addClass('validation-failed');               
                                          
              if( ! $(this).next().hasClass(name) )
              {
                var text = '<div class="'+name+'">'+this.title+'</div>';
                $(this).after(text);                
              }  
                          
            }
            else //valid data 
            {
                $(this).removeClass('validation-failed');
                if( $(this).next().hasClass(name) ) { $(this).next().remove(); }                                                  
            }
          }); //end required
        
          $(this).find('.validate-email').each(function() {
            var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
              if( $(this).val() != '' )  
                if( ! reg.test( $(this).val() ) )
                {
                  valid = false;
                  $(this).addClass('validation-failed');
                  if( ! $(this).next().hasClass(name) )
                  {
                    $(this).after('<div class="'+name+'">'+this.title+'</div>');                
                  }                                 
                }
                else
                {
                  $(this).removeClass('validation-failed');
                  if( $(this).next().hasClass(name) ) { $(this).next().remove(); }                
                }
          }); //end validate-email        
          
          $(this).find('.validate-psc').each(function() {
            var reg = /[\d]{5}/;
             if( $(this).val() != '' )
                if( ! reg.test( $(this).val() ) )
                {
                  valid = false;
                  $(this).addClass('validation-failed');
                  if( ! $(this).next().hasClass(name) )
                  {
                    $(this).after('<div class="'+name+'">'+this.title+'</div>');                
                  }                                 
                }
                else
                {
                  $(this).removeClass('validation-failed');
                  if( $(this).next().hasClass(name) ) { $(this).next().remove(); }                
                }
          }); //end validate-psc         
        
        
        $(this).find('.validate-phone').each(function() {
            var reg = /[\d]{9}/;
             if( $(this).val() != '' )
                if( ! reg.test( $(this).val() ) )
                {
                  valid = false;
                  $(this).addClass('validation-failed');
                  if( ! $(this).next().hasClass(name) )
                  {
                    $(this).after('<div class="'+name+'">'+this.title+'</div>');                
                  }                                 
                }
                else
                {
                  $(this).removeClass('validation-failed');
                  if( $(this).next().hasClass(name) ) { $(this).next().remove(); }                
                }
          }); //end validate-digits
        
        
        
          if( valid )
          {
            this.submit();
          }
          else
          {
            //not valid
          }
         
			}); //end submit
      
   		
/**    
		// http://docs.jquery.com/Plugins/Validation/Methods/number
		number: function(value, element) {
			return this.optional(element) || /^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/.test(value);
		},
	
		// http://docs.jquery.com/Plugins/Validation/Methods/email
		email: function(value, element) {
			// contributed by Scott Gonzalez: http://projects.scottsplayground.com/email_address_validation/
			return this.optional(element) || /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(value);
		}	
**/   
    
    } //end validation  

