var ls = {

  is_ie6 : false,
  is_ie7 : false,
  
  check_ie : function() {
    ie55 = (navigator.appName == "Microsoft Internet Explorer" && parseInt(navigator.appVersion) == 4 && navigator.appVersion.indexOf("MSIE 5.5") != -1);
    ie6 = (navigator.appName == "Microsoft Internet Explorer" && parseInt(navigator.appVersion) == 4 && navigator.appVersion.indexOf("MSIE 6.0") != -1);

    ls.is_ie6 = (jQuery.browser.msie && (ie55 || ie6));
    if (ls.is_ie6) return;
    
    ls.is_ie7 = (jQuery.browser.msie && jQuery.browser.version == 7);
    return ;
  },
  
  // fixing ie problems
  fix_ie: function () {
    // ie7 & ie6
    if (ls.is_ie6 || ls.is_ie7) {
      tmp = jQuery("p.tx_spbettercontact_message");
      jQuery.each(tmp, function(i, val) {
        if (jQuery(val).html() == '') {
          jQuery(val).remove();
        }
      });
      tmp = jQuery("div.main-content div.csc-default div.pagebrowser");
      jQuery.each(tmp, function(i, val) {
        if (jQuery(val).html() == '') {
          /* alert(jQuery(val).html()); */
          jQuery(val).remove();
        }
      });
    }
  },
  
  // Bind events listeners to page elements
  page_elements_binder: function() {
    var wrapper = jQuery('#wrapper');
    var launchers = jQuery('div.full-width-content div.launcher');
    launchers.attr('state', 'off');
    launchers.click(function(){
      var launchers = jQuery('div.full-width-content div.launcher');
      var element = jQuery(this);
      var state = element.attr('state');
      jQuery.each(launchers, function() {
        var element = jQuery(this);
        var id = element.attr('id');
        element.attr('state', 'off');
        element.removeClass('launcher-opened-red');
        element.removeClass('launcher-opened-black');
        jQuery('#' + id + '-container').hide();
      });
      var id = element.attr('id');
      var is_red = element.hasClass('semi-red');
      if(state == 'off') {
        jQuery('#' + id + '-container').show();
        element.attr('state', 'on');
        if(is_red) {
          element.addClass('launcher-opened-red');
        } else {
          element.addClass('launcher-opened-black');
        }
      } else {
        jQuery('#' + id + '-container').hide();
      }
      return false;
    })
  },


  // Sets pictures for products images
  products_images: function(){
    // Images and descriptions
    var rewriter = function(){
      var element = jQuery(this);
      var img = jQuery(element.children('div.image').children('img')[0]).attr('src');

      if (ls.is_ie6) {
        jQuery(element.children('div.image')).show();
      } else {
        element.css("background", "url('" + img + "') 50% 50% no-repeat");
      }
      element.bind('mouseenter', function(){
        jQuery(this).children('div.description').show();
      });
      element.bind('mouseleave', function(){
        jQuery(this).children('div.description').hide();
      });
    };
    var products = jQuery('div.products-container li');
    jQuery.each(products, rewriter);
    var products = jQuery('#productos-destacados-container li');
    jQuery.each(products, rewriter);

    // Scrolling
    var div = jQuery('#productos-destacados-container div.content');
    var ul = jQuery('#productos-destacados-container ul');
    var scroll_left = 0;
    var img_width = 156;
    var ul_width = ul.children().length * img_width;
    div.css({overflow: 'hidden'});
    jQuery('#productos-destacados-container div.left').click(function(e){
      scroll_left = (scroll_left - img_width < 0) ? 0 : scroll_left - img_width;
      div.animate({scrollLeft: scroll_left}, 'slow');
    });
    jQuery('#productos-destacados-container div.right').click(function(e){
      scroll_left = (scroll_left + (5 * img_width) + 1 > ul_width) ? scroll_left : scroll_left + img_width;
      div.animate({scrollLeft: scroll_left}, 'slow');
    });
  },

  // Single product images
  product_images: function(){
    var images = jQuery('div.product-container div.main a');
    images.hide();
    if (ls.is_ie7) {
      jQuery(images.get(0)).css('display', 'block');
    } else {
      jQuery(images.get(0)).css('display', 'table-cell');
    }
    var dots_container = jQuery('div.product-container div.checkpoints');
    for(var i=0; i<images.length; i++) {
      jQuery('<div class="button button-border-left" rel="' + i + '" style="padding:0.2em 0.4em; margin: 0.3em;">' + jQuery(images.get(i)).find('img').attr('alt') + '</div>').appendTo(dots_container).click(function(){
      //jQuery('<div class="' + (i&&!ls.is_ie6?'point-white':'point-red') + '" rel="' + i + '"></div>').appendTo(dots_container).click(function(){
        var element = jQuery(this);
        var image = element.attr('rel');
        var images = jQuery('div.product-container div.main a');
        images.hide();
        //var dots = jQuery('div.product-container div.checkpoints div');
        //dots.attr('class', 'point-white');
        //element.attr('class', 'point-red');

        if (ls.is_ie7) {
          jQuery(images.get(image)).css('display', 'block');
        } else {
          jQuery(images.get(image)).css('display', 'table-cell');
        }
      });
    }
  },


  // Set products colors table
  product_colors: function() {
    var cells = jQuery('div.product-container div.right td');
    jQuery.each(cells, function(){
      var element = jQuery(this);
      var content = element.html();
      element.html('&nbsp;');
      element.qtip({
        content: content,
        show: 'mouseover',
        hide: 'mouseout',
        position: {
          corner: {
            target: 'topMiddle',
            tooltip: 'bottomMiddle'
          }
        },
        style: {
          name: 'dark',
          border: { width: 0 },
          background: '#000000',
          fontSize: '0.8em',
          tip: {
            corner: 'bottomMiddle',
            color: '#000000'
          }
        }
      });
    });
  },


  // Sets pictures for home publication images
  home_publication_images: function(){
    // Scrolling
    var div = jQuery('#publicaciones-container div.content');
    var ul = jQuery('#publicaciones-container ul');
    var scroll_left = 0;
    var img_width = 140;
    var ul_width = ul.children().length * img_width;
    div.css({overflow: 'hidden'});
    jQuery('#publicaciones-container div.left').click(function(e){
      scroll_left = (scroll_left - img_width < 0) ? 0 : scroll_left - img_width;
      div.animate({scrollLeft: scroll_left}, 'slow');
    });
    jQuery('#publicaciones-container div.right').click(function(e){
      scroll_left = (scroll_left + (5 * img_width) + 1 > ul_width) ? scroll_left : scroll_left + img_width;
      div.animate({scrollLeft: scroll_left}, 'slow');
    });
  },


  // Peocess page background
  process_background: function() {
    var container = jQuery("#body-background");
    var images = jQuery("#body-background img");
    var num = Math.round(Math.random() * (images.length - 1));
    num = 0; // Take only 1st image, not random. For random remove this line
    container.html(images[num]);
    container.ezBgResize();
  },


  // Run pngfix
  fix_png: function() {
    //jQuery(document).pngFix();
  },

  // Render fonts by cufon
  render_fonts: function() {
    //Cufon.replace(".font-rendered", { fontFamily: 'josefin' });
    //Cufon.replace("div.right h3", { fontFamily: 'josefin' });
    //Cufon.now();
  },

  // Launcher
  launch: function() {
    ls.check_ie();
    ls.process_background();
    ls.page_elements_binder();
    ls.products_images();
    ls.product_images();
    ls.product_colors();
    ls.home_publication_images();
    ls.fix_ie();
    ls.fix_png();
    ls.render_fonts();
  }
};

// Bind launcher to onload event
jQuery(document).ready(function(){
  ls.launch();
});

