var PAGE = 0,
    COLUMNEROS_PAGE = 0;
    CAT = null;

var lazy_load_imgs = function (){
  // Hack para cargar las imágenes de los posts después de las de 
  // la interfáz.
  var imgs = document.getElementsByTagName('img'),
  	  i, img, src;
  for (i=0; i < length; i++){
	img = imgs[i];
    if (img.className == 'lazy_load'){
  	  img.className = '';
	  src = img.longdesc;
      img.setAttribute('src', src);
      img.removeAttribute('longdesc');
    }
  }
};

(function ($){
		  
$(document).ready(function(){
  setup_lista_destacadas();
  setup_ayuda_buscador();
  setup_toggleable();
  setup_fancybox();
  setup_tabs_content();
  
  $('#leermas').click(traer_posts_antiguos);
  $('#leermas_columneros').click(traer_mas_columneros);
  
  setup_contact_form();
});

var setup_lista_destacadas = function (){
  // Las lista de noticias destacadas funcionan como tabs
  $("#d_posts_list li").click(function(){
    var post = $(this).find('a.title').attr('rel');
    $('#d_posts_list li')
        .removeClass('selected')
        .removeClass('prev')
        .removeClass('next');
    var tab = $(this);
    tab.addClass('selected');
    tab.prev().addClass('prev');
    tab.next().addClass('next');
    $('#d_posts li').removeClass('show');
    $(post).addClass('show');
  });
}

var setup_ayuda_buscador = function (){
  // Ayuda de buscador
  $('.searchform').each(function(){
    sinput = $(this).find('input');
    slabel = $(this).find('label');
    sinput
      // Limpiar tip de ayuda al obtener foco
      .focus(function(){
        if (slabel.hasClass('help')){
          slabel.removeClass('help').hide();
        }
      })
      // Restaurar el tip de ayuda si no se ha escrito nada
      .blur(function(){
        if (sinput.val() == ''){
          slabel.addClass('help').show();
        }
      });
    
    if (sinput.val() === ''){
      slabel.addClass('help').show();
    }
  });
}

var setup_toggleable = function (){
	$("a.toggle_section").each(function (){
		var the_a = $(this);
		the_a.click(function(){
			$(the_a.attr('href')).slideToggle("fast");
			return false;
		});
	});
}

var setup_fancybox = function(){
    if (typeof($('#content p a:has(img)').fancybox) == 'function'){
        $('#content p a:has(img)').fancybox({
            'hideOnContentClick': true
        });
    }
}

var setup_tabs_content = function (){
    var tabs = $('#content_nav li'),
        tabs_a = tabs.find('a'),
        plist = $('#posts_list');
    tabs_a.click(function(){
        var tab_a = $(this),
            tab = tab_a.parents('li'),
            sel = tab_a.attr('rel'),
            leermas = $('#leermas');
        
        CAT = tab_a.parents('li').attr('id');
        var mostrar = plist.find(sel),
            no_mostrar = plist.find(':not(' + sel + ')');

        tabs.removeClass('selected');
        tab.addClass('selected');
        plist.find('li').hide();
        mostrar.show();
        
        if (CAT == 'content_nav_todo'){
            leermas.find('a').text('Ver más');
        }
        else {
            leermas.find('a').text('Ver otros');
        }
    });
}


var igualar_columnas = function(col1, col2) {
  var col1 = $(col1);
  var col2 = $(col2);
  if((col1.height()) > col2.height()) {
    col2.css('height', col1.height()+"px");
  }
  else {
    col1.css('height', col2.height()+"px");
  }
}


var traer_posts_antiguos = function() {
  PAGE = PAGE + 1;
  var list = $('#posts_list ol'),
      btn = $(this),
      url = 'http://lamula.pe/wp-content/themes/lamula/content_post_ajax.php?xno=';
  if (btn.hasClass('wait')) {
    return false;
  }
  
  btn.addClass('wait');
  var onComplete = function(data){
      btn.removeClass('wait');
      if (data){
          data = $(data);
          insertPosts(list, data);
          lazy_load_imgs();
          update_datetimes();
          $('#content_nav_todo a').trigger('click');
      }
  };
  url = url + PAGE*20 + '&' + (new Date().getTime());
  $.get(url, {}, onComplete);
}

var traer_mas_columneros = function() {
  COLUMNEROS_PAGE = COLUMNEROS_PAGE + 1;
  var list = $('#content_secnav_entintado'),
      btn = $(this),
      url = 'http://lamula.pe/wp-content/themes/lamula/muleros_ajax.php?xno=';
  if (btn.hasClass('wait')) {
    return false;
  }

  btn.addClass('wait');
    var onComplete = function(data){
    btn.removeClass('wait');
    // Quitar los comentarios en HTML
    data = data.replace(/<!--[^>]*-->/gi, '');
    // Quitar espacios extra al inicio y al final
    data = $.trim(data);
    if (data){
        data = $(data);
        insertPosts(list, data);
    }
    else {
        btn.remove();
    }
  };
  url = url + COLUMNEROS_PAGE*15 + '&' + (new Date().getTime());
  $.get(url, {}, onComplete);
}


var insertPosts = function (where, data){
    var i, item;
    var len = data.length - 1;
    for (i=0; i <= len; i++){
        item = data[i];
        li = $(item).css('display', 'none');
        li
            .addClass('temp')
            .appendTo(where)
            .slideDown('slow', 
              function(){ $(this).removeClass('temp')}
              );
    }
}

// Envía el mensaje de contacto por AJAX
var setup_contact_form = function (){
    var form = $('form.contact');
    if (!form.hasClass('ajax')){
        return;
    }
    var imsg = $('#contact_msg'),
        button = $('#contact_submit'),
        done = $('#contact_done'),
        onComplete = function(){
            button
                .removeClass('wait')
                .attr('type', 'submit');
            imsg.val('');
            done.slideDown();
            return false;
        };

    button.click(function(e){
        button.addClass('wait').removeAttr('type');
        done.slideUp();
        $.get(form.attr('action'),
            { msg: $.trim(imsg.val()) },
            onComplete
            );
        e.preventDefault();
        e.stopPropagation();
        return false;
    });
}


})(jQuery);
