/*
 * 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/pujcky/img/sk_zazadat_hover.png');
	}, function(){
	       $j(this).attr('src', '../../templates/public/pujcky/img/sk_zazadat_pasiv.png');
	});

	
	/*
	   * Add custom validator on czech personal identification number
	   */
	  $j.validator.addMethod('pin', function(value, age) {

		  //var pinOne = $j('#nativeNumberPartOne').val();
		  //var pinTwo = $j('#nativeNumberPartTwo').val();
		  //var pin = pinOne + pinTwo;
		  var pin = $j('#LoanApplicationPin').val();
		  if (!pin) return true;
		  
		  if (!age) age=0;
		  try
		  {
			  //if(x.length == 0) return true;
			  	if(pin.length < 9) throw 1;
			  
				var year = parseInt(pin.substr(0, 2), 10);
				var month = parseInt(pin.substr(2, 2), 10);
				var day = parseInt(pin.substr(4, 2), 10);
				var ext = parseInt(pin.substr(6, 3), 10);
				if((pin.length == 9) && (year < 54)) return true;
				var c = 0;
				if(pin.length == 10) c = parseInt(pin.substr(9, 1));
				var m = parseInt(pin.substr(0, 9)) % 11;
				if(m == 10) m = 0;
				if(m != c) throw 1;
				year += (year < 54) ? 2000 : 1900;
				if((month > 70) && (year > 2003)) month -= 70;
				else if (month > 50) month -= 50;
				else if ((month > 20) && (year > 2003)) month -= 20;
				var d = new Date();
				if((year + age) > d.getFullYear()) throw 1;
				if(month == 0) throw 1;
				if(month > 12) throw 1;
				if(day == 0) throw 1;
				if(day > 31) throw 1
		  }
		  catch(e)
		  {
			  return false;
		  }
		  
		  return true;
		   }, 'Please enter a valid pin.');
	  
	  /*
	   * Add custom validator on phone number
	   */
	  $j.validator.addMethod('phone', function(value) {
		  //var numbers = value.split(/\d/).length - 1;
		  return (value.match(/^(\+421)? ?\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('#LoanApplicationMobilePhoneNumber').val();
		  var fakes = new Array('234567', '345678', '456789', '567890', '012345', '123456');
		  var phoneLength = phoneVal.length;
		  if (phoneLength == 9)
		  {
			  var phoneStr = phoneVal.substr(3, 6);
		  }
		  else
		  {
			  var phoneStr = phoneVal.substr(7, 6);
		  }
		  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 on Czech psc
	   */
	  $j.validator.addMethod('psc', function(value, element) {
			  if (value.length == 5){
				  return true;
			  }
			  else {
				  return false
			  }
	  }, 'Lenght must be accurate 5 characters.');
	  
	  
	  /*
	   * Add custom validator on mobile phone extension
	   */
	  
	  $j.validator.addMethod('checkMob', function(value) {
		  if (value.length == 9)
		  {
			  if (value.match(/^[6-7]/)){
				  return true;
			  }else{
				  return false;
			  }
		  }
		  if (value.length == 13){
			  var p = value.substr(4,13);
			  if (p.match(/^[6-7]/)){
				  return true;
			  }else{
				  return false;
			  }
		  }
	  }, 'Please enter valid mobil phone number.'	  
	  );
	  
	  /*
	   * Add custom validator for check label
	   */
	  $j.validator.addMethod('isCheckedTerms', function(value){
		  return ($j("#LoanApplicationTerms").is(':checked'))
	  }, 'Element not checked');
	  
	  $j.validator.addMethod('isCheckedPers', function(value){
		  return ($j("#LoanApplicationPersonaltcs").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");

	  $j.validator.addMethod('preferredTime', function(value) {
			  var t = $j('#LoanApplicationPreferredTimeToCall').val();
	          if (t==0) {
	        	  return false;
	          } else {
	        	  return true;
	          }
	  }, "Select preferred time.");
	  
	  $j.validator.addMethod('costumer', function(value) {
		  var t = $j('#LoanApplicationProvidentCustomer').val();
          if (t==0) {
        	  return false;
          } else {
        	  return true;
          }
	  }, "Select costumer.");
	  
	  $j.validator.addMethod('responsibilities', function(value) {
		  var t = $j('#LoanApplicationPaybackAbbility').val();
          if (t==0) {
        	  return false;
          } else {
        	  return true;
          }
	  }, "Select responsibilities.");
	  
	  $j('#customer_status-1').change(function(){$j('#LoanApplicationPin').removeAttr('disabled'); } ); 
	  $j('#customer_status-0').change(function(){ $j('#LoanApplicationPin').attr('disabled', 'disabled');} );
	  
	  
	  /*
	   * Validate form
	   */
	  
	  $j("#ProvidentForm").validate({ 
		  
    		  rules: { 
		      LoanApplicationPersonaltcs: {
		         isCheckedPers: true
	          },
		      LoanApplicationTitle: {
		    	  required: true
	          },
	          LoanApplicationFirstName: {
		  		required: true,
		  		lettersonly: true
	          },
	          LoanApplicationLastName: {
		  		required: true,
		  		lettersonly: true
	          },
	  		  LoanApplicationMobilePhoneNumber: {
	  			  required: true,
	  			  phoneFake: true
	  		  },
	  		  LoanApplicationPin: {
	  			  digits: true,
	  			  pin: true
	  		  },
	  		  LoanApplicationPreferredTimeToCall: {
	  			  preferredTime: true
	  		  },
	  		LoanApplicationPaybackAbbility: {
	  			  responsibilities: true
	  		  },
	  		LoanApplicationProvidentCustomer: {
	  			  costumer: true
	  		  },
	  		  LoanApplicationEmailAddress: {
	  			  email: true
	  		  },
	  		  LoanApplicationTerms: {
	  			  required: true,
	  			  isCheckedTerms: true
	  		  }
    		  
    		  
    		},
    		messages: { 
    			LoanApplicationPersonaltcs: {
		        isCheckedPers: "Prosím podtvrďte podmienky."
			      },
				  LoanApplicationFirstName: {
						required: "Uveďte prosím svoje meno.",
						lettersonly: "Zadajte iba písmená."
			      },
			      LoanApplicationLastName: {
						required: "Uveďte prosím svoje priezvisko.",
					lettersonly: "Zadajte iba písmená."
		          },
				  LoanApplicationPin: {
					  required: "Uveďte prosím svoje rodné číslo.",
					  digits: "Zadajte iba čísla.",
					  pin: "Zadaný údaj nie je korektný."
				  },
				  LoanApplicationPreferredTimeToCall: {
		  			  preferredTime: "Prosím vyberte."
		  		  },
		  		LoanApplicationProvidentCustomer: {
    	  			  costumer: "Prosím vyberte."
    	  		  },
    	  		LoanApplicationPaybackAbbility: {
    	  			  responsibilities: "Prosím vyberte."
    	  		  },
		          LoanApplicationEmailAddress: {
					  email: "Zadajte 'neco@domena.sk'."
				  },
				  LoanApplicationTelephoneHomeNumber: {
					  phone: "Zadejte formát 0907123456.",
					  phoneFake: "Zadaný údaj nie je korektný."
				  },
				  LoanApplicationTerms: {
					  isCheckedTerms: "Zatrhnite, ak súhlasíte s podmienkami."
				  },
				  LoanApplicationMobilePhoneNumber: {
					  required: "Uveďte prosím telefónne číslo.",
					  phone: "Zadejte formát 907123456.",
					  checkMob: "Zadejte formát 907123456.",
					  phoneFake: "Zadaný údaj nie je korektný."
					}
				    }, 
    		      submitHandler: function(form) {
    			    	
    		    			   form.submit();
    		       }
 			 
	  });
	   
	 
});

