// JavaScript Document
//
(function($) {
//
var error = true;

// plugin definition
$.fn.validation = function(options) {
	$this = $(this);
	var message = '';
	$.fn.validation.defaults  = $.extend({}, $.fn.validation.defaults, options);
	$(':input').each(function(){
		  $(this).css({'border': $.fn.validation.defaults.baseBorder });
	})	
	$this.bind('submit',function(){
		error = true;					 
		$(':input').each(function(){
		  var type = $(this).attr('rel');
		  var invalid = false;
		  switch (type){
		    case 'required': 
			  message = $.fn.validation.defaults.errorMessage;
			  if(!$.fn.validation.required(this)){
				  error = false;				
				  invalid = true;
			  }else{
			      invalid = false;
			  };break;
			case 'number': 
			  message = $.fn.validation.defaults.justNumberMessage;
			  if(!$.fn.validation.number(this)){ error = false;				
				  invalid = true;
			  }else{
			      invalid = false;
			  };break;
			case 'required-number': 
			  if(!$.fn.validation.required(this)){
				  message = $.fn.validation.defaults.errorMessage;
				  error = false;				
				  invalid = true;
			  }else{
				  if(!$.fn.validation.number(this)){ 
				      message = $.fn.validation.defaults.justNumberMessage;
					  error = false;				
					  invalid = true;
				  }else{
					  invalid = false;
				  }
			  };break;
		  }		  
		  
		  if($(this).attr('id') == 'registration-form_email'){
			var email = $('#registration-form_email').val();
			var at = email.lastIndexOf('@');
			var dot = email.lastIndexOf('.');
			if(at == -1 || dot == -1){
				message = $.fn.validation.defaults.errorMessage;
				error = false;				
				invalid = true;
			}
		  }
		  
		  //alert(error)
		  if(invalid == true){
			  $.fn.validation.invalid(this,message);
		  }else{
		      $(this).css({'border': $.fn.validation.defaults.baseBorder});
		      //$('li #'+this.name).remove();
		  }
		  
		})			
		if(error == false){
			$('.required').html($.fn.validation.defaults.outlineMessage).fadeIn("slow");
			//alert('Please fill out all the required fields. ');			
			return false;
		}
	})
};
//
$.fn.validation.defaults = {
  baseBorder : '1px solid #052050',
  invalidBorder : '1px solid #ff0000',
  errorMessage : 'Required field',
  justNumberMessage : 'Just numbers',
  outlineMessage : 'Please fill the required fields!'
}

//
//
$.fn.validation.invalid = function(field,message){
	 var name = field.name;
		$(field).css({'border': $.fn.validation.defaults.invalidBorder});
		this.error = false;
		var n = $('*').index($('#'+name));
		if(n==-1){
		  //var parent = $(field).parent();	
		  //$(parent).after('<li class="required" id="' + name + '" >' + message + '</li>');
		  //var p = $('#'+name);
		  //p.fadeIn("slow");
		  //return false;
		}else{
		  //var p = $('#'+name);
		  //p.text(message);
		}
}
//
//REQUIRED
$.fn.validation.required = function(field){
	var type = $(field).attr('type');
	switch(type){
		case 'text': 
			if(jQuery.trim(field.value) == ''){
				  return false;
			}else{
				return true;
			}
		break;
		case 'checkbox': 
			if(!field.checked){
				  return false;
			}else{
				return true;
			}
		break;
		case 'textarea': 
		    if(jQuery.trim(field.value) == ''){
				  return false;
			}else{
				return true;
			}
		break;
	}

		
		
}
//NUMBER
$.fn.validation.number = function(field){
	var name = field.name;
	var value = jQuery.trim(field.value);
	var pattern = /\D/g;
	if(value.match(pattern)!=null){
		  return false;
	}else{
		return true;
	}
}

//
})(jQuery);


