$( function()
  { 
    $('body').removeClass('js_off').addClass('js_on');
    $('form.check') // validace formulare
    .submit
    ( function()
      {
        var returnVal = true;
        $(this).find('.check').each(
          function ()
          {
            // not empty
            if ($(this).hasClass('not-empty')) {
              if ($(this).val() == '') {
                $(this).css('border','1px red solid');
                returnVal = false;
              }
              else $(this).css('border','1px green solid');
            }
            // email
            if ($(this).hasClass('email')) {
              var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
              if (!emailPattern.test($(this).val())) {
                $(this).css('border','1px red solid');
                returnVal = false;
              }
              else $(this).css('border','1px green solid');
            }
            // number
            if ($(this).hasClass('number')) {
              var value = '' + $(this).val() + '';
              value = value.replace(/[\s\+]/g,'');
              var emailPattern = /^[0-9]+$/;
              if ((value.length < 9) || !emailPattern.test(value)) {
                $(this).css('border','1px red solid');
                returnVal = false;
              }
              else $(this).css('border','1px green solid');
            }
          }
        );
        if (!returnVal) alert('Nebyla vyplnena vsechna povinna pole formulare nebo byla vyplnena spatne!');
        return returnVal;
      }
    );
    $('.empty').click(
      function () { 
        $(this).removeClass('empty');
      }
    );
    $('.empty').focus(
      function () { 
        $(this).removeClass('empty');
      }
    );
    $('a.external').attr('target','_blank');
    $('.answer-header .control span').click( 
      function () { 
        $(this).parent().toggleClass('closed');
        if ($(this).parent().hasClass('closed')) $(this).html('zobrazit odpověď'); 
          else $(this).html('skrýt odpověď');
        $(this).parent().parent().parent().children('div.answer').slideToggle();
      }
    );
    $('.advertisement-info-header .control span').click( 
      function () { 
        $(this).parent().toggleClass('closed');
        if ($(this).parent().hasClass('closed')) $(this).html('zobrazit podrobnosti'); 
          else $(this).html('skrýt podrobnosti');
        $(this).parent().parent().parent().children('div.advertisement-info').slideToggle();
      }
    );
    $('a.gallery').colorbox(
      { transition: 'elastic',
        opacity: 0.8,
        initialWidth: 320,
        initialHeight: 320,
        maxWidth: '90%',
        maxHeight: '90%',
        photo: true,
        title: function() { return '<strong>' + $(this).attr('title') + '</strong>' },
        current: '{current}/{total}' }
    ); 
    $('a.google').colorbox(
      { iframe: true,
        innerWidth: 660,
        innerHeight: 500,
        title: function() { return '<strong>' + $(this).attr('title') + '</strong>' },
        current: '{current}/{total}' }
    );
    $('#registrationtype').change(
      function() {
        if ($('#registrationtype option:selected').val()=='lite') {
          $('.lite').css('border','1px #FFBA00 solid');
          $('#registrationtype').css('background-color','#FFBA00');
        }
        else {
          $('.lite').css('border','1px #CCCCCC solid');
          $('#registrationtype').css('background-color','#FFFFFF');
        }
      });
    $('#surgery-search-form map').on("click", "area",
      function() {
        $('#regions').removeClass('empty');
        $('#region-map').attr('class',$(this).attr('class'));
        $('option:selected').attr('selected',false);
        $('#regions').find('option').each(
          function(index) {
            if ($(this).hasClass($('#region-map').attr('class'))) $(this).attr('selected','selected');
          });
        $('#districts').find('option').each(
          function(index) {
            if (!($(this).hasClass($('#regions option:selected').attr('class')))) 
              if (!($(this).hasClass('region0'))) $(this).appendTo($('#districts-container'));
          });
        $('#districts-container').find('option').each(
          function(index) {
            if (($(this).hasClass($('#regions option:selected').attr('class')))) $(this).appendTo($('#districts'));
          });
        $('#districts option.region0').attr('selected','selected');
      });
    $('#regions').change(
      function() {
        $('#districts option:selected').attr('selected',false);
        $('#districts').find('option').each(
          function(index) {
            if (!($(this).hasClass($('#regions option:selected').attr('class')))) 
              if (!($(this).hasClass('region0'))) $(this).appendTo($('#districts-container'));
          });
        $('#districts-container').find('option').each(
          function(index) {
            if (($(this).hasClass($('#regions option:selected').attr('class')))) $(this).appendTo($('#districts'));
          });
        $('#region-map').attr('class',$('#regions option:selected').attr('class'));
        $('#districts option.region0').attr('selected','selected'); 
      });
    $('#billingregions').change(
      function() {
        $('#billingdistricts option:selected').attr('selected',false);
        $('#billingdistricts').find('option').each(
          function(index) {
            if (!($(this).hasClass($('#billingregions option:selected').attr('class')))) 
              if (!($(this).hasClass('region0'))) $(this).appendTo($('#billingdistricts-container'));
          });
        $('#billingdistricts-container').find('option').each(
          function(index) {
            if (($(this).hasClass($('#billingregions option:selected').attr('class')))) $(this).appendTo($('#billingdistricts'));
          });
        $('#billingdistricts option.region0').attr('selected','selected'); 
      });
    $('#surgery-search-form map area').mouseover(
      function() {
        $('#region-map').attr('class',$(this).attr('class'));
      });
    $('#surgery-search-form map area').mouseout(
      function() {
        $('#region-map').attr('class',$('#regions option:selected').attr('class'));
      });
    $(document).ready(
      function() {
        // typ registrace ordinace
        if ($('#registrationtype')) {
          if ($('#registrationtype option:selected').val()=='lite') {
            $('.lite').css('border','1px #FFBA00 solid');
            $('#registrationtype').css('background-color','#FFBA00');
          }
          else {
            $('.lite').css('border','1px #CCCCCC solid');
            $('#registrationtype').css('background-color','#FFFFFF');
          }
        }
        // roletky s kraji a okresy
        $('#districts').after('<div style="display: none"><select id="districts-container"></select></div>');
        $('#districts').find('option').each(
          function(index) {
            if (!($(this).hasClass($('#regions option:selected').attr('class')))) 
              if (!($(this).hasClass('region0'))) $(this).appendTo($('#districts-container'));
          });
        $('#billingdistricts').after('<div style="display: none"><select id="billingdistricts-container"></select></div>');
        $('#billingdistricts').find('option').each(
          function(index) {
            if (!($(this).hasClass($('#billingregions option:selected').attr('class')))) 
              if (!($(this).hasClass('region0'))) $(this).appendTo($('#billingdistricts-container'));
          });
        // scrolovani na vysledky vyhledavani
        if ($('#scrollTo')) {
          $('html, body').delay(500).animate({
            scrollTop: $("#scrollTo").offset().top
          },3000);
        }
      });
  }
);
