// common jquery helpers:
if (window.jQuery) {
  $(function(){
    $(document).keyup(function(e) {
      if (e.keyCode == 27) { $("#drop-box-overlay").fadeOut(125); }   // esc
    });
    $('#newSubs').html('<b>...</b>');
    initDnD();
    refreshLove();
    pos = 0;
    refreshNewSubs();    
    $('.tooltip').aToolTip();
    c='subcake';
    a='admin';
    e='com';
    b='@';
    d='.';
    $('#email').html('<a href="mailto:'+a+b+c+d+e+'">'+a+b+c+d+e+'</a>');
    $('.search_box_text').focus();
    setInputSelection(document.getElementById("search_box_text_id"), $("#search_box_text_id").val().length, $("#search_box_text_id").val().length);
    /*
     $('#results table tbody tr').click(function(){
      alert('download');
    });
    */
    // external links fasthack for xhtml validation
    $('a[rel=external]').attr('target','_blank');  

    //disable input text history
    $('.no-history').each(function(){
      $(this).attr('autocomplete','off');
    });
    var termTemplate = "<span style='font-weight:bold;'>%s</span>";
    $('#search_box_text_id').autocomplete({
      	    source: '/autocomplete/get/' + getCookie('sublang'),
	    delay: 0,
	    open: function(e,ui) {
            var
                acData = $(this).data('autocomplete'),
                styledTerm = termTemplate.replace('%s', acData.term);

            acData
                .menu
                .element
                .find('a')
                .each(function() {
                    var me = $(this);
                    var regex = new RegExp(acData.term, "gi");
                    me.html( me.text().replace(regex, function (matched) {
                      return termTemplate.replace('%s', matched);
                    }) );

                });
	    },
	    select: function(event, ui) {
	      if(ui.item){
		      $('#search_box_text_id').val(ui.item.value);
	      }
	      $('#search_form').submit();
	    }	
    });
    
    
    // clear input box value on click - returns default value on empty 
    $('.clear-value').each(function(){
		  if (getParameterByName('q').length > 0) var $v=''; else var $v = $(this).val();
		  $(this).focus(function(){
		  	if ($(this).val()==$v) { $(this).val(''); }
		  });
		  $(this).click(function(){
		  	if ($(this).val()==$v) { $(this).val(''); }
		  });
		  $(this).keypress(function(){
		  	if ($(this).val()==$v) { $(this).val(''); }
		  });
		  $(this).blur(function(){
		  	if ($(this).val()=='') { $(this).val($v); }
		  });
    });
    
    // avoid to post an empty form
    $('#search_form').submit(function(){
		  if ($('.search_box_text').val() == 'Search for EN subtitles' ||
		      $('.search_box_text').val() == 'Search for SK/CZ subtitles' ||
		      $('.search_box_text').val() == 'Hľadať EN titulky' ||
		      $('.search_box_text').val() == 'Hľadať SK/CZ titulky' ||
		      $('.search_box_text').val() == '') {
		    return false;
		  } else {
		    $('.search_box_text').val($('.search_box_text').val().trim());
		  }
    });
    
    $('#love').click(function(){
      incrementLove();
      //showLove();
    });
    if ($("#recaptcha_response_field")){
      $("#recaptcha_response_field").focus();
    }
    $("#recaptcha_image").click(function(){
        Recaptcha.reload();
    });
    $("#recaptcha_image").mouseover(function () {
        $(this).css('cursor', 'pointer');
    });
    
  });
}

// common javascript helpers:
function incrementLove(){
  $('#love').text(parseInt($('#love').text()) + 1);
  $.get('/love/increment');
}
function showLove(){
  $.get('/love/count/', function(data) {
    $('#love').html(data);
    //alert(data);
  });
}
function startRefreshNewSubs(){
  newSubsTimeout = setTimeout("refreshNewSubs()", 1000);
}
function refreshNewSubs(){
  pos++;
  if (pos == 11) pos = 1;
  updateNewSubs(pos);
  newSubsTimeout = setTimeout('refreshNewSubs()', 3000);
}
function updateNewSubs(p){
  $.get('/last/subs/' + p, function(data) {
    $('#newSubs').fadeOut('slow',function(){
      $('#newSubs').html(data);
      $('#newSubs').fadeIn('slow');
    });
  });
}
function refreshLove(){
  showLove();
  setTimeout('refreshLove()', 2000);
}
function getParameterByName(name)
{
  name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
  var regexS = "[\\?&]" + name + "=([^&#]*)";
  var regex = new RegExp(regexS);
  var results = regex.exec(window.location.href);
  if(results == null)
    return "";
  else
    return decodeURIComponent(results[1].replace(/\+/g, " "));
}

function setInputSelection(input, startPos, endPos) {
    if (typeof input.selectionStart != "undefined") {
        input.selectionStart = startPos;
        input.selectionEnd = endPos;
    } else if (document.selection && document.selection.createRange) {
        // IE branch
        input.focus();
        input.select();
        var range = document.selection.createRange();
        range.collapse(true);
        range.moveEnd("character", endPos);
        range.moveStart("character", startPos);
        range.select();
    }
}

function getCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}

function breakLongWord(str, num) { 
  return str.replace(RegExp("(\\w{" + num + "})(\\w)", "g"), function(all,text,char){
    return text + "\n" + char;
  });
}
function wordwrap( str, width, brk, cut ) {
 
    brk = brk || '\n';
    width = width || 75;
    cut = cut || false;
 
    if (!str) { return str; }
 
    var regex = '.{1,' +width+ '}(\\s|$)' + (cut ? '|.{' +width+ '}|.+$' : '|\\S+?(\\s|$)');
 
    return str.match( RegExp(regex, 'g') ).join( brk );
 
}

function dndPopup(){
  //if (popupChild != null) popupChild.close();
  //alert('dik');
  window.open('/dnd-info.htm','Info','scrollbars=yes,toolbar=no,resizable=yes,width=620,height=560,left=350,top=100,screenX=350,screenY=100');
}
