$(document).ready(function(){

  /* validace formularu */
  if($.isFunction($.fn.validate)){
  	$('#regForm').validate({
  		rules: {
  			registration_nick: {
          required: true,
          minlength: 3
        },
        registration_email: {
  				required: true,
  				email: true
  			},
  			registration_password: {
          required: true,
          minlength: 5
        },
  			registration_password2: {
          required: true,
          equalTo: '#registration_password'
        }
  		},
  		messages: {
      	registration_nick: {
  				required: 'Zadejte přezdívku.',
  				minlength: 'Přezdívka musí mít alespoň 3 znaky.'
  			},
  			registration_email: {
  				required: 'Zadejte Váš e-mail.',
  				email: 'E-mail má špatný formát.'
  			},
        registration_password: {
  				required: 'Zadejte heslo.',
  				minlength: 'Heslo musí být alespoň 5 znaků dlouhé.'
        },
        registration_password2: {
  				required: 'Zadejte stejné heslo pro kontrolu.',
  				equalTo: 'Zadejte stejné heslo pro kontrolu.'
        }
      },
  		errorPlacement: function(error, element) {
  			$('input[id='+ element.attr('id') +']').parent().find('span').remove();
  			$('input[id='+ element.attr('id') +']').parent().append('<span class="val valKo"></span>');
    		error.appendTo( element.parent().append() );
  		},
  		showErrors: function(errorMap, errorList) {
  			var el = this.currentElements;
  			el.parent().addClass('inputTextError');
        this.defaultShowErrors();
  		},
  		success: function(label) {
  			var elm = $("#" + label.attr("for"));
  			var elmId = elm.attr("id");
  			$('input[id='+ elmId +']').parent().find('span, label').remove();
  			$('input[id='+ elmId +']').parent().removeClass('inputTextError').append('<span class="val valOk"></span>');
  		}
  	})

    date = new Date();
  	$('#regForm2').validate({
  		rules: {
        registration_birth_year: {
          number: true,
          minlength: 4,
          maxlength: 4,
          min: 1900,
          max: date.getFullYear()
        },
  			registration_agree: {
          required: true
        }
  		},
  		messages: {
        registration_birth_year: {
          number: 'Zadejte prosím číslo.',
          minlength: 'Rok narození musí mít 4 znaky.',
          maxlength: 'Rok narození musí mít 4 znaky.',
          min: 'Rok musí být větší než 1900',
          max: 'Rok musí být menší než '+date.getFullYear()
        },
  			registration_agree: {
          required: 'Pro dokončení registrace musíte souhlasit se smluvními podmínkami serveru vanilka.cz'
        }
      },
  		errorPlacement: function(error, element) {
  			$('input[id='+ element.attr('id') +']').parent().find('.val').remove();
  			$('input[id='+ element.attr('id') +']').parent().append('<span class="val valKo"></span>');
    		error.appendTo( element.parent().append() );
  		},
  		showErrors: function(errorMap, errorList) {
  			var el = this.currentElements;
  			el.parent().addClass('inputTextError');
        this.defaultShowErrors();
  		},
  		success: function(label) {
  			var elm = $("#" + label.attr("for"));
  			var elmId = elm.attr("id");
  			$('input[id='+ elmId +']').parent().find('.val, label').remove();
  			$('input[id='+ elmId +']').parent().removeClass('inputTextError').append('<span class="val valOk"></span>');
  		}
  	})
  }

  /* Hover classy pro ie6 */
  if ($.browser.msie && $.browser.version.substr(0,1)<7) {
    $('#content .articles li, #content .articles2 li, #content .list3 li').hover(function(){
      $(this).addClass('hover');
    },function(){
      $(this).removeClass('hover');
    })

    $('button').hover(function(){
      $(this).find('span:eq(0)').addClass('hover');
    },function(){
      $(this).find('span:eq(0)').removeClass('hover');
    })
  }

  /* Klik na celou kartu */
  $('#content .articles li').click(function(){
    window.location.href = $(this).find('h3 a').attr('href');
    return false;
  })
  $('#content .articles li .wh a').click(function(){
    window.location.href = $(this).attr('href');
    return false;
  })

  /* checkboxy */
  if($.isFunction($.fn.checkbox)){
    $('input:checkbox').checkbox();
  }

  /* velikosti pisma */
  $('#textSize .smallA').click(function(){
    $('#content').css({'font-size':'1.2em'});
    $(this).addClass('smallActive');
    $('.bigActive').removeClass('bigActive');
    return false
  });
  $('#textSize .bigA').click(function(){
    $('#content').css({'font-size':'1.4em'});
    $(this).addClass('bigActive');
    $('.smallActive').removeClass('smallActive');
    return false;
  });

  /* Zobrazi/skryje form prop sani autorovi z clanku */
  $('#authorFormLink').click(function(){
    if($(this).hasClass('btnAdd')) {
      $(this).removeClass('btnAdd').addClass('btnClose').find('strong').html('Zavřít okno');
      $('#authorFormBox').show();
    } else {
      $(this).removeClass('btnClose').addClass('btnAdd').find('strong').html('Napsat autorovi');
      $('#authorFormBox').hide();
    }
    return false;
  })

  /* Tooltipy */
  prepareTooltips();

  /* Taby */
  if($('.tabs').length) {
    /*
    if($('.tabs a.active').length == 0) {
      $('.tabs a:first').addClass('active');
    }
    */

    $('.tabs a:not(.active)').each(function(){
      $('#' + $(this).attr('href').substr(1)).hide();
    })

    $('.tabs a').click(function(){
      $($(this).parent().find('a.active').attr('href')).hide();
      $(this).parent().find('a.active').removeClass('active');

      $(this).addClass('active');
      $($(this).parent().find('a.active').attr('href')).show().find('input:first').focus();
      return false;
    })

    if($.isFunction($.fn.uploadify)){
    	$('#uploadify').uploadify({
    		'uploader'    : '/swf/uploadify.swf',
    		'script'      : '/uploadify.php',
    		'buttonImg'   : '/img/btn-upload.png',
    		'width'       : '105',
    		'cancelImg'   : '/img/ico-del.gif',
    		'folder'      : '/uploads/user/%%user_id%%',
    		'queueID'     : 'photoUploading',
    		'fileDesc'    : 'Obrázky',
    		'fileExt'     : '*.jpg;*.png;*.jpeg;*.JPG;*.PNG;*.JPEG',
    		'auto'        : true,
    		'multi'       : true,
    		'scriptData'  : { session_id: getSessionId() },
	      'onComplete'  : function(event, queueID, fileObj, response) {
	                        if (response != 'ERROR') {
	                          var img = response.substring(0, response.lastIndexOf('|'));
	                          var user_id = parseInt(response.substring(response.lastIndexOf('|') + 1));
	                          addArticlePhoto(user_id, img);
	                        }
	                      }
    	})
  	}
  }

  /* Slidery */
  if($('.slider').length) {
    $('.slider').each(function(){
    
      var slider = $(this);
      
      var offset = slider.width() + 33;
      
      /* Pocet cudliku v slideru */
      var sliderPoints = '';
      for (var i = 1; i<=Math.ceil(slider.find('ul').size()); i++) {
          sliderPoints += '<a href="#" class="replace point">'+ i +'<span></span></a>';
      }
      
      /* Obaleni obsahu do divu + pridani posouvacich cudliku*/
      slider.addClass('sliderJs').html('<div class="sliderContent">'+slider.html()+'</div>').append('<p class="slide"><span href="" class="replace prev prevActive">&lsaquo;<span></span></span>'+ sliderPoints +'<span href="" class="replace next nextActive">&rsaquo;<span></span></span></p>');
      var sliderContent = slider.find('.sliderContent');

      /* Prvni cudlik a ul je aktivni */
      slider.find('.slide .point:first, ul:first').addClass('active');
      slider.find('ul:not(.active) li').hide();

      /* Kotrola */
      function checkArrows() {
        if(slider.find('.slide .point:first').hasClass('active')) {
          slider.find('.prevActive').removeClass('prevActive').addClass('prevNoActive');
        }
        else
        {
          slider.find('.prevNoActive').removeClass('prevNoActive').addClass('prevActive');
        }
        
        if(slider.find('.slide .point:last').hasClass('active')) {
          slider.find('.nextActive').removeClass('nextActive').addClass('nextNoActive');
        }
        else
        {
          slider.find('.nextNoActive').removeClass('nextNoActive').addClass('nextActive');
        }
      }
               
      /* Predchozi/Dalsi */
      slider.find('.next').live('click', function(){
        if($(this).hasClass('nextActive')) {
          slider.find('.prevNoActive').removeClass('prevNoActive').addClass('prevActive');

          slider.css({'overflow' : 'hidden'}).find('ul li').show().parent().removeClass('active');

          sliderContent.animate({marginLeft: -offset*parseInt(slider.find('.slide .point.active').html())}, {queue: false, duration: 250, complete: function() {
              sliderContent.find('ul').eq(parseInt(slider.find('.slide .point.active').html())-1).addClass('active');
              slider.css({'overflow' : 'visible'}).find('ul:not(.active) li').hide();
            }
          });

          slider.find('.slide .point.active').removeClass('active').next().addClass('active');
          if(slider.find('.slide .point.active').next().next().length=='0') {
            slider.find('.nextActive').removeClass('nextActive').addClass('nextNoActive');
          }
        }
        return false;
      });

      slider.find('.prev').live('click', function(){
        if($(this).hasClass('prevActive')) {
          slider.find('.nextNoActive').removeClass('nextNoActive').addClass('nextActive');
          slider.css({'overflow' : 'hidden'}).find('ul li').show().parent().removeClass('active');
          sliderContent.animate({marginLeft: -offset*(parseInt(slider.find('.slide .point.active').html())-2)}, {queue: false, duration: 250, complete: function() {
              sliderContent.find('ul').eq(parseInt(slider.find('.slide .point.active').html())-1).addClass('active');
              slider.css({'overflow' : 'visible'}).find('ul:not(.active) li').hide();
            }
          });
          slider.find('.slide .point.active').removeClass('active').prev().addClass('active');
          if(slider.find('.slide .point.active').prev().prev().length=='0') {
            slider.find('.prevActive').removeClass('prevActive').addClass('prevNoActive');
          }
        }
        return false;
      });
      
      /* Cudlik */
      slider.find('.slide .point').click(function(){
        slider.css({'overflow' : 'hidden'}).find('ul li').show().parent().removeClass('active');
        sliderContent.animate({marginLeft: -offset*(parseInt($(this).html())-1)}, {queue: false, duration: 250, complete: function() {
            sliderContent.find('ul').eq(parseInt(slider.find('.slide .point.active').html())-1).addClass('active');
            slider.css({'overflow' : 'visible'}).find('ul:not(.active) li').hide();
          }
        });
        slider.find('.slide .point.active').removeClass('active');
        $(this).addClass('active');
        checkArrows();
        return false;
      });

      checkArrows();

    });
  }

  /* Zobrazi form pro vlozeni statusu */
  $('#addCom').click(function() {
    $(this).hide();
    $('#addComForm').show();
    $('#addComForm input[type=text]:first').focus();
    return false;
  })

  /* Schova form pro vlozeni statusu */
  $('#addComForm .closeForm').click(function() {
    $('#addComForm').hide();
    $('#addCom').show()
    return false;
  })

  /* Form vlozeni statusu */
  if($('#addStat').length) {
    if($('.tabs').length) {
      $('.tabs a[href=#'+ $('#addStat').parent().attr('id') +']').click(function(){
        $('#addStat label').hide();
      })
    }
    $('#addStat label').addClass('js');
    if($('#addStat input').val()!='') {
      $('#addStat label').hide();
    }
    $('#addStat label, #addStat input').click(function() {
      $('#addStat label:not(.error)').hide().parent().find('input').focus();
    })
    $('#addStat input').blur(function() {
      if($(this).val()=='') {
        $(this).parent().parent().find('label').show();
      }
    })
  }
  
  /* Form pro reakci ve foru */
  if($('.reply').length) {
    $('form.replyForm').hide();
    $('.reply').click(function(){
      $($(this).find('a').hide().attr('href')).show().find('textarea').focus();
      return false;
    })
  }

  /* Infobox po odeslani stavu/clanku/odkazu/fotky */
  if($('#formThx').length) {
    $('#formThx .btn2').click(function(){
      if($('#formThx').parents('.box10').hasClass('box6Sh')) {
        $('#formThx').parents('.box10').removeClass('box10').addClass('box6').find('#status').show().parents('.box6').find('.tabs a[href=#status]').addClass('active');
      } else {
        $('#formThx').parents('.box10').removeClass('box10').addClass('box7').find('#status').show().parents('.box7').find('.tabs a[href=#status]').addClass('active');
      }
      $('#formThx').remove();
      return false;
    })

    $('.box10 .tabs a').click(function(){
      if($(this).parents('.box10').hasClass('box6Sh')) {
        $(this).parents('.box10').removeClass('box10').addClass('box6').find('#formThx').remove();
      } else {
        $(this).parents('.box10').removeClass('box10').addClass('box7').find('#formThx').remove();
      }
    })
  }
  
  prepareProfile();
})

function prepareTooltips() {
  $('#content .articles li p.info .tooltip').hover(function(){
    $(this).append('<span class="tt1"><span class="tt2"><span class="tt3">'+ $(this).find('img').attr('alt') +'</span></span></span>');
    $(this).find('.tt1').css({'left' : -$(this).find('.tt1').width()/2});
  },function(){
    $(this).find('span').remove();
  })
}

function updateProfilePhoto(id, img)
{
  $('.avatar' + id).each(function() {
    this.src = this.src.substring(0, this.src.lastIndexOf('/') + 1) + img;
  });
  $('#changeProfImg').html('Změnit profilové foto');
  $('#selectProfImg').slideUp(100);
}

function addArticlePhoto(id, img)
{
  $('#photoUploaded').append('<p><img src="/t/113x113/uploads/user/' + id + '/' + img + '" width="113" height="113" alt="" /></p>');
}

function getSessionId()
{
  return $.ajax({type: 'GET', url: '/session', async: false}).responseText;
}

function getUserId()
{
  return $.ajax({type: 'GET', url: '/user-id', async: false}).responseText;
}

function prepareProfile()
{
  /* Zmena profiloveho obrazku */
  if($('#selectProfImg').length) {
    $('#selectProfImg').hide();
    $('#changeProfImg').click(function(){
      $('#changeProfImg').html($(this).html() == 'Neměnit' ? 'Změnit profilové foto' : 'Neměnit');
      $('#selectProfImg').slideToggle(100);
      return false;
    });
    
    $('#selectProfImg a').bind('mouseover', function () {
      var i = $('#profimg img');
      i.attr('alt', i.attr('src'));
      var src = $('img', $(this)).attr('src');
      var img = src.substring(src.lastIndexOf('/') + 1);
      var src2 = i.attr('src');
      i.attr('src', src2.substring(0, src2.lastIndexOf('/') + 1) + img);
    });

    $('#selectProfImg a').bind('mouseout', function () {
      var i = $('#profimg img');
      if (i.attr('alt')) {
        i.attr('src', i.attr('alt'));
      }
    });
  }

  /* Nahrani vlastniho profiloveho obrazku */  
  if($('#avatarInput').length) {
    $('#avatarInput').uploadify({
      'uploader'    : '/swf/uploadify.swf',
      'script'      : '/uploadify.php',
      'checkScript' : '/check.php',
      'cancelImg'   : '/img/ico-del.gif',
      'auto'        : true,
      'folder'      : '/uploads/profile/avatar',
      'fileExt'     : '*.jpg;*.png;*.jpeg',
      'fileDesc'    : 'Obrázky',
      'buttonImg'   : '/img/browse.png',
      'width'       : 134,
      'height'      : 35,
      'scriptData'  : { session_id: getSessionId() },
      'onComplete'  : function(event, queueID, fileObj, response) {
                        if (response != 'ERROR') {
                          var img = response.substring(0, response.lastIndexOf('|'));
                          var user_id = parseInt(response.substring(response.lastIndexOf('|') + 1));
                          $('#profimg img').attr('src', $('#profimg img').attr('src').substring(0, $('#profimg img').attr('src').lastIndexOf('/') + 1) + img);
                          updateProfilePhoto(user_id, img);
                        }
                      }
    });
  }
}

function setCursorToEnd(inputEl) {
  var len = inputEl.value.length; 
  inputEl.focus(); 
  if (inputEl.setSelectionRange) { 
    inputEl.setSelectionRange(len, len); 
 } else if (inputEl.createTextRange) { 
   var range = inputEl.createTextRange(); 
   range.collapse(true); 
   range.moveEnd('character', len); 
   range.moveStart('character', len); 
   range.select(); 
 } 
}

function cite(id)
{
  var cmt_id = 'comment' + id;
  var atr_id = 'cmt_a' + id;
  var content = '[citace autor:' + $('#' + atr_id).html()  + ']\n' + $('#' + cmt_id).html() + '\n[/citace]\n\n';
  $('#comment_body').html(content);
  setCursorToEnd(document.getElementById('comment_body'));
  window.location.hash = 'comment_body';
}
