// JavaScript Document         

jQuery(document).ready(function() {
  //form effect
  jQuery('#idHelperTextarea').val(inputMsg['contact_text'][lang]);
  jQuery("#contact_sprava").val(inputMsg['contact_text'][lang]);
  jQuery("#contact_sprava")
    .blur(function(){
      if(jQuery(this).val()==''){
        jQuery(this).val(inputMsg['contact_text'][lang])
      }
     }) 
    .focus(function(){
      if(jQuery(this).val()==inputMsg['contact_text'][lang]){
        jQuery(this).val('')
      }
    });
    
  //date time  
  jQuery('#book_datum').datepicker(
    jQuery.extend({  
      duration: '',  
      showTime: true,  
      constrainInput: false,  
      stepMinutes: 10,  
      stepHours: 1,  
      altTimeField: '',
      minDate: 0,
      maxDate: 60,  
      time24h: true      
    },jQuery.datepicker.regional[lang]));  
    
  //validation   
  jQuery.validator.addMethod("notEqualTo", function(value, element, param) {
    return this.optional(element) || value != jQuery(param).val();
  }, 'Default error message');
  jQuery.validator.addMethod(
    "dateSK",
    function(value, element) {
      var check = false;
      var re = /^\d{1,2}\/\d{1,2}\/\d{4}$/;
      if( value ){
        var adata = value.split('/');
        var dd = parseInt(adata[0],10);
        var mm = parseInt(adata[1],10);
        var adata2 = adata[2].split(' ');
        var yyyy = parseInt(adata2[0],10);
        var adata3 = adata2[1].split(':');
        var hh = parseInt(adata3[0],10);
        var min = parseInt(adata3[1],10);
        var xdata = new Date(yyyy,mm,dd,hh,min);        
        if ( ( xdata.getFullYear() == yyyy ) && ( xdata.getMonth () == mm ) && ( xdata.getDate() == dd ) && (xdata.getHours() == hh) && (xdata.getMinutes() == min) )
          check = true;
        else
          check = false;
      }else
        check = false;
      return this.optional(element) || check;
    },"Please enter a correct date"
  );
  
                
    jQuery("#contact_form").validate({ 
      rules: {                     
          contact_name: {
            required: true,
            minlength: 2,
            number: false
          },
          contact_email:{
            required: true,
            email: true
          },
          contact_subject:{
            required: true,
            minlength: 4
          },
          contact_text: {
            required: true,            
            rangelength: [4,120],
            notEqualTo: '#idHelperTextarea'
          }          
      }, 
      messages: {             
          contact_name: {
            required: aErrorMsg['contact_name']['required'][lang],
            minlength: jQuery.format(aErrorMsg['contact_name']['minlength'][lang]),
            number: aErrorMsg['contact_name']['number'][lang]
          },                    
          contact_email:{
            required: aErrorMsg['contact_email']['required'][lang],
            email: aErrorMsg['contact_email']['email'][lang]
          },
          contact_subject: {
            required: aErrorMsg['contact_subject']['required'][lang],
            minlength: jQuery.format(aErrorMsg['contact_subject']['minlength'][lang])            
          },
          contact_text:{
            required: aErrorMsg['contact_text']['required'][lang],
            rangelength: jQuery.format(aErrorMsg['contact_text']['rangelength'][lang]),
            notEqualTo: aErrorMsg['contact_text']['notEqualTo'][lang]
          }        
      }, 
      errorElement: "label",
      errorClass: "errorLabel",
      // the errorPlacement has to take the table layout into account 
      errorPlacement: function(error, element) {                                   
        error.insertBefore( element );                    
      },
      // specifying a submitHandler prevents the default submit, good for the demo 
      submitHandler: function() { 
          var dataString = 'contact_submit=Odoslať&contact_name='+ jQuery('[name=contact_name]').val() + '&contact_email=' + jQuery('[name=contact_email]').val() + '&contact_subject=' + jQuery('[name=contact_subject]').val() + '&contact_text=' + jQuery('[name=contact_text]').val();  
          //alert (dataString);return false;  
          jQuery.ajax({  
            type: "POST",  
            url: "/kontakt",
            data: dataString,  
            success: function(){
              jQuery('<p class="infoMsg">'+inputMsg['infoContact_text'][lang]+'</p>').prependTo('#contact_form');
              jQuery(':input','#contact_form')
               .not(':button, :submit, :reset, :hidden')
               .val('')
               .removeAttr('checked')
               .removeAttr('selected');
              jQuery("#contact_sprava").blur();    
              return(false);
            }                     
          });    
      }, 
      // set this class to error-labels to indicate valid fields 
      success: function(label) { 
          // set   as text for IE
          if ( label.parent().parent().next().children().is(":radio") ) 
              ; 
          else if ( label.prev('input').is(":checkbox") ) 
              ; 
          else 
              ;
                           
          label.html(" ").addClass("checked");           
      }                     
    });
                  
    jQuery("#book_form").validate({ 
      rules: {                     
          book_name: {
            required: true,
            minlength: 2,
            number: false
          },
          book_tel:{
            required: true,            
            digits: true,
            minlength: 10
          },
          book_email:{
            required: true,            
            email: true            
          },
          book_date:{
            required: true,            
            dateSK: true            
          },
          book_count:{
            required: true,
            digits: true
          },
          book_type:{
            required: true            
          },
          book_text: {                        
            rangelength: [4,120]            
          }          
      }, 
      messages: {             
          book_name: {
            required: aErrorMsg['book_name']['required'][lang],
            minlength: jQuery.format(aErrorMsg['book_name']['minlength'][lang]),
            number: aErrorMsg['book_name']['number'][lang]
          },                    
          book_tel:{
            required: aErrorMsg['book_tel']['required'][lang],            
            digits: aErrorMsg['book_tel']['digits'][lang],
            minlength: jQuery.format(aErrorMsg['book_tel']['minlength'][lang])
          },          
          book_email:{
            required: aErrorMsg['book_email']['required'][lang],            
            email: aErrorMsg['book_email']['email'][lang]           
          },
          book_date:{
            required: aErrorMsg['book_date']['required'][lang],            
            dateSK: aErrorMsg['book_date']['date'][lang]            
          },
          book_count: {
            required: aErrorMsg['book_count']['required'][lang],
            digits: jQuery.format(aErrorMsg['book_count']['digits'][lang])            
          },
          book_type:{
            required: aErrorMsg['book_type']['required'][lang]
          },
          book_text:{            
            rangelength: jQuery.format(aErrorMsg['book_text']['rangelength'][lang])            
          }        
      }, 
      errorElement: "label",
      errorClass: "errorLabel",
      // the errorPlacement has to take the table layout into account 
      errorPlacement: function(error, element) {                                   
        error.insertBefore( element );              
      },
      // specifying a submitHandler prevents the default submit, good for the demo 
      submitHandler: function() { 
          var dataString = 'book_submit=Rezervovať&book_name='+ jQuery('[name=book_name]').val() + '&book_tel=' + jQuery('[name=book_tel]').val()+ '&book_email=' + jQuery('[name=book_email]').val()+ '&book_date=' + jQuery('[name=book_date]').val() + '&book_count=' + jQuery('[name=book_count]').val() + '&book_type=' + jQuery('[name=book_type]').val() + '&book_text=' + jQuery('[name=book_text]').val();              
          jQuery.ajax({  
            type: "POST",  
            url: submitUrl["book"][lang],
            data: dataString,  
            success: function(data){
              jQuery('<p class="infoMsg">'+inputMsg['infoBook_text'][lang]+'</p>').prependTo('#book_form');
              jQuery(':input','#book_form')
               .not(':button, :submit, :reset, :hidden')
               .val('')
               .removeAttr('checked')
               .removeAttr('selected');  
               //alert(data);                
              return(false);
            }                     
          });    
      }, 
      // set this class to error-labels to indicate valid fields 
      success: function(label) { 
          // set   as text for IE
          if ( label.parent().parent().next().children().is(":radio") ) 
              ; 
          else if ( label.prev('input').is(":checkbox") ) 
              ; 
          else 
              ;
                           
          label.html(" ").addClass("checked"); 
      }                     
    });     
});
