/*
 * Setting JQuery non conflict mode
 */
var $j = jQuery.noConflict();


		
$j(document).ready(function() { 
	
	/*
	 * Add class to input on focus
	 */
	  $j('input').focus(
		  function() {
			  $j(this).addClass('focus');
		  }
	  );
	
	/*
	 * Hover effect for send button
	 */
	$j('#submitContactForm').hover(function(){
	       $j(this).attr('src', '/templates/public/zivotko/img/zazadat_hover.png');
	}, function(){
	       $j(this).attr('src', '/templates/public/zivotko/img/zazadat_pasiv.png');
	});

	
	  
	  /*
	   * Add custom validator on phone number
	   */
	  $j.validator.addMethod('phone', function(value) {
		  //var numbers = value.split(/\d/).length - 1;
		  return (value.match(/^(\+420)? ?\d{3} ?\d{3} ?\d{3}$/)); }, 'Please enter a valid phone number');
	  
	  /*
	   * Add custom validator on phone number fakes
	   */
	  $j.validator.addMethod('phoneFake', function(value) {
		  var phoneVal = $j('#pnumber').val();
		  var phoneLength = phoneVal.length;
		  if (phoneLength == 9)
		  {
			  var phoneStr = phoneVal.substr(3, 6);
		  }
		  else
		  {
			  var phoneStr = phoneVal.substr(7, 6);
		  }
		  var fakes = new Array('234567', '345678', '456789', '567890', '012345', '123456');
		  
		  try
		  {
			  
			  for (var i=0;i<fakes.length;i++){
				 var re = new RegExp(fakes[i]);
				 var res = phoneVal.search(re);
				 //alert("Nalezeno na pozici: "+res+"!");
				 if (res != -1) throw 1;
				 delete re;
				 delete res;
			  }
			  
			  var res = phoneStr.search(/(\d)\1\1(\d)\2\2/);
			  if (res != -1) throw 1;
		  }
		  catch(e)
		  {
			  return false;
		  }
		  return true; }, 'Please enter a valid phone number');
	  
	  /*
	   * Add custom validator for check label
	   */
	  $j.validator.addMethod('isChecked', function(value, element){
		  return ($j('#check').is(':checked'))
	  }, 'Element not checked');
	  
	  /*
	   * Add custom validator for purpose label
	   */
	  
	  $j.validator.addMethod('isCheckedPurpose', function(value){
		  
		  if($j("#purpose-element input[type='checkbox']:checked").length > 0)
		    {
		    	return true;
		    }
		  //return ($j(".pur").is(':checked'))
	  }, 'Element not checked');
	  
	  /*
	   * Add custom validator for letter only
	   */
	  
	  $j.validator.addMethod("lettersonly", function(value, element) {
          return value.match(/^[a-žA-Ž., ]*$/);
      }, "Letters only please");

	  
	  /*
	   * Validate form
	   */
	  
	  $j("#BrokerForm").validate({ 
		  
    		  rules: { 
    		  fname: {
		  		required: true,
		  		lettersonly: true
	          },
    		  lname: {
		  		required: true,
		  		lettersonly: true
	          },
    		  pnumber: {
		  		required: true,
		  		phone: true,
		  		phoneFake: true
	  		  },
	  		
	  		  check: {
	  			  isChecked: true
	  		  },
	  		  psc: {
	  			  required: true,
	  			  digits: true,
	  			  rangelength: [5,5]
	  		  },
	  		  town: {
	  			  required: true
	  		  }
    		},
    		messages: { 
    			  fname: {
    					required: "Prosím vyplňte Vaše jméno.",
    					lettersonly: "Povolena jsou pouze písmena, nikoliv číslice."
    		      },
    			  lname: {
	  					required: "Prosím vyplňte Vaše příjmení.",
						lettersonly: "Povolena jsou pouze písmena, nikoliv číslice."
		          },
		          
    			  check: {
    				  isChecked: "Zatrhněte, pokud souhlasíte s podmínkami o použití osobních údajů."
    			  },
    			  pnumber: {
    				  required: "Prosím zadejte Váš telefon.",
    				  phone: "Prosím zadejte telefon<br/>ve správném formátu 603123456.",
    				  phoneFake: "Zadaný údaj není korektní."
    				},
    			  town: {
    					required: "Prosím vyplňte město."
    				},
    			  psc: {
    					required: "Prosím vyplňte PSČ.",
    					digits: "Povoleny jsou pouze číslice bez mezer.",
    					rangelength: "Povoleno je pouze 5 číslic."
    				}
    			    }, 
    		submitHandler: function(form) {
    			      
    			      var fields = $j("input[@name='purpose']:checked").length - 1; 
    			  	  if (fields == 0) 
    			  	  { 
    			  	    $j("#purpose-element").append("<label for='purpose' generated='true' class='error'>Vyberte prosím alespoň<br/>jeden účel pojištění.</label>");
    			  	    var i=0;
    			  	  } 
    			  	  else 
    			  	  { 
    			  	    var i=1;
    			  	  } 
    			if (i == 1) 
    			{
    				form.submit();
    			}
 			 }
	  });
	   
	 
});
