jQuery(document).ready(function() {
  jQuery.sH = {
      language: jQuery.cookie("language")? jQuery.cookie("language") : "en"
  };

  try
  {
    jQuery.cookie("language", jQuery.sH.language, { expires: 7, path: "/" });
  } catch (e) {
    // could not set cookie. should we display a message?
  }
  if (jQuery.browser.msie) {
    jQuery('input').bind('focus', function() {
      jQuery(this).addClass('focus');
    });
    jQuery('input').bind('blur', function() {
      jQuery(this).removeClass('focus');
    });
  }

  jQuery("img").fullsize({extraTrigger: ".image-slideshow"});
  
  
  if (String(window.location.search).indexOf('print=true') != -1)
  {
    $(window).load(function () {
      window.print();
    });
  }
  
  function getTotalPages (scroll_id) {
    if (jQuery('div#'+scroll_id+' .language-container').length)
    {
      return jQuery('#'+scroll_id+' div#'+jQuery.sH.language+
        ".language-container").children().size();
    } else {
      return jQuery('#'+scroll_id+' div.screen').length;
    }
  }

  if (jQuery('div#'+jQuery.sH.language+".language-container").length &&
    String(window.location.hash).indexOf('#') == -1)
  {
    jQuery('a.show-language').removeClass('active');
    jQuery("a.show-language[hreflang='"+jQuery.sH.language
      +"']").addClass('active');
    var index = jQuery('div.language-container').index(
        jQuery('div#'+jQuery.sH.language));
    var height = jQuery('div#'+jQuery.sH.language+" div.screen").height();
    jQuery('.scroll-container').each(function() {
      if (jQuery(this).children('div').children('div.language-container').length)
        jQuery(this).animate(
            {scrollTop: index*height}, 0, function() {
            });
    });
  };
  
  jQuery('#pager').each(function() {
    var scroll_id = jQuery(this).attr('class');
    var page = jQuery('#pager.'+scroll_id+' .current-page').text();
    var totalPages = getTotalPages(scroll_id);
    
    if (page == 1) jQuery(this).children('.pager-bwd').addClass('inactive');
    if (totalPages == 1) jQuery(this).children('.pager-fwd').addClass('inactive');
    jQuery('#pager.'+scroll_id+' .total-pages').text(totalPages);
  });
  
  jQuery('.pager-bwd').bind('click', function(e) {
    e.preventDefault();
    if (jQuery(this).hasClass('inactive')) return;
    if (jQuery('.scroll-container:animated').length)
      return false;

    var scroll_id = jQuery(this).parents('#pager').attr('class');

    var width = pxToNum(jQuery('#'+scroll_id).css('width'));
    var new_x = jQuery('#'+scroll_id).scrollLeft()-width;
    if (new_x >= 0)
    {
      var page = Math.ceil(new_x/width+1);
      jQuery('#'+scroll_id).animate(
          {scrollLeft: new_x}, 500, function() {
          });
      jQuery('#pager.'+scroll_id+' .current-page').text(page);
      jQuery('#pager.'+scroll_id+' .pager-fwd').removeClass('inactive');
      if (page == 1)
      {
        jQuery('#pager.'+scroll_id+' .pager-bwd').addClass('inactive');
      }
    }
  });

  jQuery('.pager-fwd').live('click', function(e) {
    e.preventDefault();
    if (jQuery(this).hasClass('inactive')) return;
    if (jQuery('.scroll-container:animated').length)
      return false;

    var scroll_id = jQuery(this).parents('#pager').attr('class');
    var totalPages = getTotalPages(scroll_id);

    var width = pxToNum(jQuery('#'+scroll_id).css('width'));
    var new_x = jQuery('#'+scroll_id).scrollLeft()+width;
    var len = (jQuery('#'+scroll_id+ 'div#'+
      jQuery.sH.language+' .screen').length)?
        jQuery('#'+scroll_id+ ' div#'+jQuery.sH.language+' .screen').length :
        jQuery('#'+scroll_id+ ' .screen').length;

    if (new_x < len*width)
    {
      var page = Math.ceil(new_x/width+1);
      jQuery('#'+scroll_id).animate(
          {scrollLeft: new_x}, 500, function() {
          });
      jQuery('#pager.'+scroll_id+' .pager-bwd').removeClass('inactive');
      jQuery('#pager.'+scroll_id+' .current-page').text(page);
      if (page == totalPages)
      {
        jQuery('#pager.'+scroll_id+' .pager-fwd').addClass('inactive');
      }
    }

  });
  
  jQuery('div.shadowbox').each(function() {
    var w = jQuery(this).width()-jQuery(this).children('.shadow-tr').eq(0).width()*2;
    var h = jQuery(this).height()-jQuery(this).children('.shadow-tr').eq(0).height()*2+4;
    jQuery(this).children('.shadowbox-content').height(h);
    jQuery(this).children('.shadow-t,.shadow-b,.shadowbox-content').width(w);
  });
  
  jQuery('a.show-language').bind('click', function(e) {
    e.preventDefault();
    jQuery.sH.language = jQuery(this).attr('hreflang');
    var scroll_id = "scroll_0";
    var totalPages = getTotalPages(scroll_id);
    var currentPage = jQuery('#pager.'+scroll_id+' .current-page').text();
    if (currentPage < totalPages)
    {
      jQuery('#pager.'+scroll_id+' .pager-fwd').removeClass('inactive');
    } else {
      jQuery('#pager.'+scroll_id+' .pager-fwd').addClass('inactive');
    }
    jQuery('#pager.'+scroll_id+' .total-pages').text(totalPages);
    var h = jQuery('#'+scroll_id+' div.language-container').height();
    var w = jQuery('#'+scroll_id+' div.language-container div.screen').width();
    var index = jQuery('div.language-container').index(
        jQuery('div#'+jQuery.sH.language));
    var height = jQuery('div#'+jQuery.sH.language+" div.screen").height();
    if (currentPage > totalPages) {
      jQuery('#pager.'+scroll_id+' .pager-bwd').trigger('click');
    }
    jQuery('#'+scroll_id+'.scroll-container').animate(
        {scrollTop: index*height}, 500, function() {
        });

    jQuery('a.show-language').removeClass('active');
    jQuery(this).addClass('active');
    jQuery.cookie("language", jQuery.sH.language, { expires: 7 });
    e.preventDefault();
  });
  
  jQuery('.list-item > a').bind('mouseover mouseout', function(e) {
    jQuery('.list-item').children('h3').removeClass('active');
    if (e.type == "mouseout") return;
    jQuery(this).parent('div').children('h3').addClass('active');
  });
  
  jQuery('.tile a,.tile-box a').bind('click mouseover mouseout', function(e) {
    jQuery('.tile-box').removeClass('active');
    if (e.type == "mouseout") return;

    var box = jQuery(this).attr('class');
    jQuery('.tile-box.'+box).addClass('active');
    if (e.type == "click")
    {
      window.location = jQuery(this).attr('href');
    }
  });
  
  jQuery('input[type=text][title]').each(function() {
    if (jQuery(this).val() == "")
      jQuery(this).val(jQuery(this).attr('title'));
    else
      jQuery(this).removeClass('small');
  });
  jQuery('input[type=text][title]').bind('focus', function() {
    if (jQuery(this).val() == jQuery(this).attr('title'))
    {
      jQuery(this).val("").removeClass('small');
    }
  });
  jQuery('input[type=text][title]').bind('blur', function() {
    if (jQuery(this).val() == "")
    {
      jQuery(this).val(jQuery(this).attr('title')).addClass('small');
    }
  });
  
  jQuery('.auto-remove').each(function() {
    jQuery(this).animate({'zoom': 1}, 5000, function() {
      jQuery(this).fadeOut('slow');
    });
  });
  
  jQuery('a.popup-link').bind('click', function(e) {
    e.preventDefault();
    var popup_id = jQuery(this).attr('id')+"-popup";
    var params = jQuery('div#'+popup_id).attr('title').split(',');
    var iframe = "<iframe src='"+params[0]+"' scrolling='no' frameborder='0'"
      +"class='"+popup_id+"' width='"+params[1]+"' height='"+params[2]+"'></iframe>";
    
    jQuery('#container').append(iframe);
    
    var box = jQuery('iframe.'+popup_id);
    box.load( function() {
      box.contents().find("img").bind('click', function() {
        box.fadeOut( function() { jQuery(this).remove();});
      });
    });
    var x = jQuery(this).offset().left-box.width();
    var y = jQuery(this).offset().top-box.height();
    box.css({'position': 'absolute', 'left': x, 'top': y}).show().fadeOut(0).fadeIn();
  });
  
  if (jQuery('div.image-slideshow').children().length > 1)
  {
    jQuery(this).animate({ dummy: 1 }, 2000, function() {
      jQuery(this).startAutoSlide();
    });
  }
  
  jQuery.fn.startAutoSlide = function() {
    jQuery('div.image-slideshow').each(function() {
      if (jQuery(this).children().length > 1)
      {
        jQueryelem = jQuery(this).children('img').eq(1).show().fadeOut(0);
        jQueryelem.css({'z-index': 2 }).fadeIn('slow');
        jQuery(this).children('img').eq(0).fadeOut('fast', function() {
          jQuery(this).css({'z-index': 0}).appendTo(jQuery(this).parent('div'));
        });
      }
    }); 
    
    jQuery(this).animate({ dummy: 1 }, 2000, function() {
      jQuery(this).startAutoSlide();
    });
    return this;
  };

  
});

function pxToNum (value) {
  return Number(value.replace('px', ''));
}
function numToPx (value) {
  return String(value)+'px';
}
