var cufonEnabled = true;
var playerPlaying = false;

$(document).ready(function() {
  if (typeof noCufon !== 'undefined' && noCufon === true) {
    cufonEnabled = false;
  }
});



function css() {
  $('.link-print').bind('click',function(){ window.print(); });
  
  if (cufonEnabled) {
    /*
     * CUFON
     *
     * @ Myriad Pro 
     * @ Myriad Pro bold
     *
     */
    Cufon.replace('nav a, h1, #content h2, #content h4, #content h3, .mod h4, .mod h5, .mod h5+small, .btn-mini-banner, .link-movie, .link-more, .sitemap h6, .links-list strong a, button span, .link-register, .no-data, .link-apply, .mod-pagination span, .prods-list a span, #spare-parts-data strong a, thead th', {
      fontFamily: 'Myriad Pro bold',
      hoverable: {
        a  : true,
        span: true
      },
      hover: true    
    });
    Cufon.replace('.article-list .link-more, .btn-mini-banner small', {
      fontFamily: 'Myriad Pro',
      hoverable: {
        a  : true,
        span: true
      },
      hover: true    
    });
    $('nav>ul>li').hover(function(){
      $(this).addClass('temp');
    }, function(){
      $(this).removeClass('temp');
      Cufon.replace('nav>ul>li>a', {
      fontFamily: 'Myriad Pro bold',
        hoverable: {
          a  : true,
          span: true
        },
        hover: true
      });
    });
  }
  
  /* nav items auto adjustment */
  var nav = {
    width : $('nav>ul').width(),
    size : $('nav>ul>li').size(),
    items : 0
  }
  Cufon.CSS.ready(function() {
    
    $('nav>ul>li>a').each(function(){      
      nav.items = nav.items + parseInt($(this).width());
    });
    if (!cufonEnabled) {
    nav.items += nav.size;
  }

    nav.width = nav.width - nav.items;
    
    nav.padding = Math.floor( (nav.width / nav.size)/2 );
    $('nav>ul>li:not(:last)>a').css('padding','9px ' + nav.padding + 'px');
    
    nav.paddingLast = nav.width - ( nav.padding * (nav.size*2) );
    nav.padding = nav.paddingLast%2 == 0 ? nav.padding + (nav.paddingLast/2) : nav.padding + ((nav.paddingLast-1)/2);
    nav.paddingExtra = nav.paddingLast%2 == 0 ? nav.padding : (nav.padding + 1);
    
    $('nav>ul>li:last>a').css('padding','9px ' + nav.paddingExtra + 'px 9px ' + nav.padding + 'px');
     
    $('#banner-mod img').css('left', '0');
  });  
  
  /* fancybox */
  $.extend($.fn.fancybox.defaults, {
    padding : 30,
    margin : 0,
    scrolling : 'no',
    overlayOpacity : 0,
    centerOnScroll: true,
    closeText: lang['close'],
	hideOnContentClick: false
  });
  
  $('.link-video').fancybox();
  $('.link-video-text').fancybox();
  
  $(document).ready(function()
  {
	$("#fancybox-wrap").draggable();
	
	$.getScript("/assets/design/scripts/jquery.touch.compact.js", function()
	{
		$("#fancybox-wrap").touch({
            animate: true,
            sticky: false,
            dragx: true,
            dragy: true,
            rotate: false,
            resort: false,
            scale: false
        });
	});
	
  }); 
	

  
    
  $('.mod-shortcuts > ul').each(function(){
    var t = $(this).attr('title');
    $(this).wrap('<div class="expand-list"></div>');
    $(this).before('<strong>'+t+'</strong>');
  });
  $('.news-list2-select').each(function(){
    var t = $(this).attr('title'), c = $(this).attr('class');
    $(this).wrap('<div class="expand-list '+c+'"></div>');
    $(this).before('<strong>'+t+'</strong>');
  });
  $('.news-list2-select').find('a').unbind().bind('click',function(e){
    t = $(this).text();
    $(this).parents('li').siblings().removeClass('act');
    $(this).parents('li').addClass('act');
    $(this).parents('.expand-list').find('strong').text(t);
  });
  
  $(document).click(function(e)
  {
    var src;
	if (!e) var e = window.event;
	if (e.target) src = e.target;
	else if (e.srcElement) src = e.srcElement;
	if (src.nodeType == 3) // defeat Safari bug
		src = src.parentNode;
		
	var parentList = $(src).parents(".expand-list:first");
	if($(src).hasClass("expand-list"))
		parentList = $(src);
		
	var parentList2 = $(src).parents(".regional:first");
	if($(src).hasClass("regional"))
		parentList2 = $(src);
	
	
	
	if(!$(src).data("autoclick"))
	{
		if( parentList.length == 0
			|| ( !$(parentList).hasClass("expand-list") && !$(parentList).hasClass("expand-list-hover") ) )
		{
			$(".expand-list-hover").removeClass("expand-list-hover");
		}
		if( parentList2.length == 0
			|| ( !$(parentList2).hasClass("regional") && !$(parentList).hasClass("hover") ) )
		{
			$('#regional-settings .regional').removeClass('hover');
		}
	}
	
	$(src).data("autoclick", false);
  });
  
  $('#regional-settings .regional').click(function(){  
		if (!$(this).hasClass('hover')) {
			$('#regional-settings .regional').removeClass('hover');
			$(this).addClass('hover');
		} else 
		{
			$('#regional-settings .regional').removeClass('hover');
		}
		
	});
 
  $('.expand-list').click(function()
  {
    var active = $(this).hasClass("expand-list-hover");
    $(".expand-list-hover").removeClass("expand-list-hover");
	
	if(!active)
		$(this).addClass("expand-list-hover");
  });

  $('.mod-tabs').tabs();
  
    $('#tabs-maint ul.t-nav a').click(function()
	{
		$(".tab:visible .jp-jplayer").jPlayer("destroy");
		
		playerPlaying = false;
		eval( $(".tab:visible .video:visible script").html() );
	});
  
  $('#tabs-accessories .t-nav a').each(function(){
    t = $(this).text();
    $(this).html('<span>'+t+'</span>');
  });
  
  /* NEWS */
	var links = $('a.link-more.news-button');
	$.each(links, function(){
		$(this).text($(this).attr('data-expand-caption'));}
		);
		
  $('.news-list').collapse({
    onLoad: function(c){
      c.children('li').each(function(){
    var h6main = $(this).find('h6');
        var heading = h6main.text();
    var text = h6main.next().text();
    $(this).find('.news-data').prepend('<div class="cover"><h6></h6></div>');
    
    var addWordsUntilEOL = function(el, words) {
      var text = '';
      for (i = 0; i < words.length; i++) {
        el.text(text + words[i] + ' (...)');
        if (initHeight === 0) {
          initHeight = cover.height();
        }
        if (cover.height() > initHeight) {
          el.text(text);
          return true;
        }
        text += words[i] + ' ';
      }
      el.text(text);
      return false;
    }
    
    var cover = $(this).find('.cover');
    var h6 = cover.children('h6');
    var words = heading.split(' ');
    var initHeight = 0;
    if (!addWordsUntilEOL(h6, words)) {
      cover.append('<p></p>');
      var p = h6.next();
      words = text.split(' ');
      addWordsUntilEOL(p, words);
      p.text(p.text() + ' (...)');
    } else {
      h6.text(h6.text() + ' (...)');
    }
    h6main.addClass('undercover').next().addClass('undercover');
    $(this).find('.undecover').hide();
      });
    },
    onStart: function(c){
      $('.collapse-list > li .cover').show();
      $('.collapse-list > li .undercover').hide();
      c.find('.cover').hide();
      c.find('.undercover').show();
    },
    onClose: function(){
      $('.collapse-list > li .cover').show();
      $('.collapse-list > li .undercover').hide();
    }
  });  
  
  
   $('a.link-more.news-button').unbind().bind('click', function(e){
	  e.preventDefault();
	
	  var stories;
	  if ($(this).attr('id') == 'hqNewsButton') {
		stories = $('#hqNews>li');
	  }
	  else if ($(this).attr('id') == 'localNewsButton'){
		stories = $('#localNews>li');
	  }
	  else if ($(this).attr('id') == 'hqEventsButton'){
		stories = $('#hqEvents>li');
 	  }
	  else if ($(this).attr('id') == 'localEventsButton'){
		stories = $('#localEvents>li');
	  }
	if ($(this).text() != $(this).attr('data-collapse-caption')) {
      $(this).text($(this).attr('data-collapse-caption'));
	  $(this).addClass('act');
	  if (stories != null) {
		var ind = 0;
		$.each(stories, function() {
			if (ind>4) {
				//$(this).removeClass('hide');
				$(this).show();
			}
			ind++;
		});
	  }
	  
	}
	else {$(this).text($(this).attr('data-expand-caption'));
		$(this).removeClass('act');
	if (stories != null) {
			var ind = 0;
			$.each(stories, function() {
				if (ind>4) {
					$(this).hide();
				}
				ind++;
			});
	  }
	}
	
});

	var stories = $('#localNews>li');	
	hideNewsEvents(stories);
	stories = $('#hqNews>li');	
	hideNewsEvents(stories);
	stories = $('#localEvents>li');	
	hideNewsEvents(stories);
	stories = $('#hqEvents>li');	
	hideNewsEvents(stories);


  /* TOOLS */
  $('.prods-data .link-more').unbind().bind('click',function(e){
    e.preventDefault();
    //t = $(this).text() == lang['close'] ? lang['browse'] : lang['close'];
    if ($(this).text() != $(this).attr('data-close-caption')) {
      $(this).attr('data-browse-caption', $(this).text());
      $(this).text($(this).attr('data-close-caption'));
    }
    else {
      $(this).text($(this).attr('data-browse-caption'));
    };
    //$(this).text(t).toggleClass('act');
    $(this).toggleClass('act');
    $(this).siblings('.prods-preview').toggle();
  })
  $('.prods-preview').each(function(){
    $('.cats-list', this).each(function(){
      $('li', this).each(function(i){
      
      $prodList = $(this).parents('.prods-preview').find('.prods-list');

        if($.browser.msie && $.browser.version <= 8)
          $(this).find('img').css('filter','progid:DXImageTransform.Microsoft.BasicImage(grayScale=1)');
        else
          $(this).find('img').grayscale();
        
        $(this).hover(function(){
          $(this).siblings().removeClass('act');
          if($.browser.msie && $.browser.version <= 8)
            $(this).siblings().find('img').css('filter','progid:DXImageTransform.Microsoft.BasicImage(grayScale=1)');
          $(this).parents('.cats-list').siblings('.prods-list').hide();

          if($.browser.msie && $.browser.version <= 8) {
            $(this).find('img').css('filter','progid:DXImageTransform.Microsoft.BasicImage(grayScale=0)');
          }
          $(this).parents('.cats-list').siblings('.prods-list').eq(i).show();
          $(this).addClass('act');
        }, function() {});
        
        $prodList.eq(i).hover(function(){
          $(this).siblings('.cats-list').find('li').removeClass('act');
          if($.browser.msie && $.browser.version <= 8)
            $(this).siblings('.cats-list').find('li').find('img').css('filter','progid:DXImageTransform.Microsoft.BasicImage(grayScale=1)');

          $(this).siblings('.cats-list').find('li').eq(i).addClass('act');
          if($.browser.msie && $.browser.version <= 8)
            $(this).siblings('.cats-list').find('li').eq(i).find('img').css('filter','progid:DXImageTransform.Microsoft.BasicImage(grayScale=0)');
        }, function() {});
      });
    });
  });
  
  $('#acc-data').collapse({
    onLoad: function(c){
      c.children('li').each(function(i){
        $(this).addClass('item'+i)
      });
    },
    onStart: function(c){
      if(c.is('.item0')) {
        c.width(800);
    }
    if (cufonEnabled) {
        Cufon.replace('#acc-data h4', {
          fontFamily: 'Myriad Pro bold',
          hoverable: {
            a  : true,
            span: true
          },
          hover: true    
        });
    }
    },
    onClose: function(){
      $('#acc-data').children('li').width(588);
    if (cufonEnabled) {
        Cufon.replace('#acc-data h4', {
          fontFamily: 'Myriad Pro bold',
          hoverable: {
            a  : true,
            span: true
          },
          hover: true    
        });
      }
    }
  });
  
  /* PRODUCT */
  $('#prod-data').collapse({
    onLoad: function(c)
	{
	  c.children('li').each(function(i){
        $(this).addClass('item'+i)
      });
	  
	  if($('#sparePartsListItem').length == 1) {
		$('#sparePartsListItem > h4').click(function(){
			var prodDataHeight = $(this).next('.prod-data:first').outerHeight(true);
			var l = $(this).parents('li:first');
			l.height(prodDataHeight);
			l.attr('data-height', prodDataHeight);
		});
	  }
    },
    onStart: function(c){
  
      if(c.is('.item4')) {
        c.width(800);
    }
    if (cufonEnabled) {
        Cufon.replace('#prod-data h4', {
          fontFamily: 'Myriad Pro bold',
          hoverable: {
            a  : true,
            span: true
          },
          hover: true    
        });
    }
    },
    onClose: function(){
      $('#prod-data > li').width(588);
    if (cufonEnabled) {
        Cufon.replace('#prod-data h4', {
          fontFamily: 'Myriad Pro bold',
          hoverable: {
            a  : true,
            span: true
          },
          hover: true    
        });
    }
    }
  });
  
  /* forms */
  $('form').transform();  
  
 /* MAINTENANCE */
 $('.prod-options').each(function(){
    var p = { 
      root: $(this),
      size: $(this).children('li').size()
    }
    p.root.attr('data-slide',0).append('<a href="#" class="s-nav" rel="prev">'+lang['prev']+'</a><a href="#" class="s-nav" rel="next">'+lang['next']+'</a>').children('li:eq(0)').addClass('act');
    p.root.find('.s-nav').unbind().bind('click',function(e){
	//$('.jp-jplayer').jPlayer("stop");
		//$('.jp-jplayer').jPlayer("pauseOthers");
      e.preventDefault();
      p.root.children('li').removeClass('act');
      p.prev = parseInt(p.root.attr('data-slide'));
      if($(this).attr('rel') == 'next')
        p.act = (p.prev+1) >= p.size ? 0 : (p.prev+1);
      else
        p.act = (p.prev-1) < 0 ? p.size-1 : (p.prev-1);		
		
	  $('.tab:visible .jp-jplayer').jPlayer("destroy");
		
	  var idplayer = $(".jp-jplayer",p.root.attr('data-slide', p.act).children('li').eq(p.act)).attr("id");
	
	  $("#"+idplayer).jPlayer("play");

	  playerPlaying = false;
	  eval( $(".video script", p.root.attr('data-slide', p.act).children('li').eq(p.act)).html() );
	
        
      p.root.attr('data-slide', p.act).children('li').eq(p.act).addClass('act');
      if (cufonEnabled) {
          Cufon.replace('.prod-options h3', {
            fontFamily: 'Myriad Pro bold',
            hoverable: {
              a  : true,
              span: true
            },
            hover: true    
          });
      }
    });
  });
}

function ie() {
  /* go on for IE in generall */
  if($.browser.msie){
    
    if($.browser.version <= 7) {
      /* take care IE 7 & lower */
      
      $('input').ieClass('type');
      $('label[for]').addClass('for');
      $('#user-bar li').iePseudoElem('before', '|');
      $('#breadcrumbs li').iePseudoElem('before', '>');
      $('.download-list a').iePseudoElem('before', '[ ');
      $('.download-list a').iePseudoElem('after', ' ]');
      $('section ul li, article ul li, .form-aide .label, .form-aide label[for], .tool-type-list li, .sitemap li li, .mod-table-cont-selectd li').iePseudoElem('before', '-');
      $('.tbl1 thead th:first-child, .t-nav li, .btn-mini-banner, .regional + .regional').iePseudoElem('before', ' ');
      $('.t-nav li, .mod-video .link-video').iePseudoElem('after', ' ');
      $('.sitemap + .sitemap, .regional + .regional').addClass('sib');
    
    
    }
    if($.browser.version <= 8) {
      
      $('div:last-child, li:last-child, tr:last-child, th:last-child, td:last-child').addClass('last-child');
      $('.prods-list li:nth-child(4n+1), .video-list li:nth-child(4n), .articles-list >li:nth-child(4n+1)').addClass('nth-child4n');
      $('.prods-list li:nth-child(5n+1)').addClass('nth-child5n');
      $('ul, ol').each(function() {
        $(this).children('li').each(function(i){
          (i % 2 === 1) ? $(this).addClass('even') : $(this).addClass('odd');
        });
      });
        
      
      $('table').each(function(){
        c = $(this).attr('class');
        $(this).attr('class','');
        $(this).wrap('<div class="ie-tbl '+c+'"></div>')
      });
      
      $('.prod-options').each(function(){
        $(this).find('h3').each(function(i){
          $(this).iePseudoElem('before', (i+1)+' - ');
        });
      });
    
      function beforePrint(){
        $('nav, footer ul, aside').wrap('<div class="hide"></div>');
        $('header').wrap('<div class="header"></div>');
        $('aside').wrap('<div class="aside"></div>');
        $('article').wrap('<div class="article"></div>');
        $('footer').wrap('<div class="footer"></div>');
        
      }
      function afterPrint(){
        $('nav, footer ul, aside').unwrap();
        $('header, aside, article, footer, .mod-frm').unwrap();
      }
      
      window.attachEvent('onbeforeprint', beforePrint);
      window.attachEvent('onafterprint', afterPrint);

      $(document).scrollTop(1);
      $.doTimeout(1000, function() {
        $(document).scrollTop(0);
      });
    }
  }
}

  /* 
   * Load HTML5 IE set 
   * before DOM is ready
   */
if($.browser.msie){
  var html5Set = "abbr,article,aside,nav,canvas,footer,header,section,time,mark".split(','),i=html5Set.length;
  while (i--){
    document.createElement(html5Set[i])
  }
}

function searchableLists() {
  $.each(['.expand-list', '.select'], function(i, el) {
    $(document).find(el).each(function(i, list) {
      function findOption($items, str) {
        for (var i = 0; i < $items.length; i++) {
          if ($($items[i]).text().toLowerCase().indexOf(str) === 0) {
            var $active = $($items[i]);
            var $list = $(list).children('ul');
            $active.addClass('active');
            var offset = '';
            if ($active.position().top - $list.position().top < 0) {
              offset = $list.scrollTop() + $active.position().top - 5;
            } else if ($active.position().top - $list.position().top > $list.height()) {
              offset = $list.scrollTop() + $active.position().top - $list.position().top - $list.height() + 50;
            }
            if (offset != '') {
              $list.animate({
                scrollTop: offset
              });
            }
            return true;
          }
        }
        return false;
      }

      $(list).attr('tabindex', -1);
      $(list).attr('data-search-string', '');
      $(list).hover(function() {
        $(this).focus();
      }, function() {});
      $(list).keypress(function(e) {
        if (e.which == 13) {
          $(list).find('li.active').trigger('click');
          return;
        }
        var chr = String.fromCharCode(e.which).toLowerCase();
        
        var chrIsLegal = false;
        if ($.browser.msie && $.browser.version < 9) {
          chrIsLegal = chr.match(/[\S ]/);
        } else {
          var regex = new XRegExp("\\P{C}");
          chrIsLegal = regex.test(chr);
        }
        if (chrIsLegal && e.ctrlKey === false && e.altKey === false) {

          var str = $(list).attr('data-search-string') + chr;
          var $children = $(list).find('li');
          $children.removeClass('active');
          if (!findOption($children, str)) {
            str = chr;
            findOption($children, str)
          }
          $(list).attr('data-search-string', str);
          $.doTimeout(1000, function() {
            if ($(list).attr('data-search-string') === str) {
              $(list).attr('data-search-string', '');
            }
          });
        }
      });
    });
  });
}

  /* 
   * Load jQuery sets
   */
$(document).ready(ie);
$(document).ready(css);
$(document).ready(searchableLists);

  /* 
   * jQuery extras
   */
$.fn.extend({
  ieClass: function(ieAttr) {
    return this.each(function(){
      $(this).addClass($(this).attr(ieAttr));
    });
  }, // ieClass  
  unwrap: function() {
    this.parent(':not(body)').each(function(){
      $(this).replaceWith( this.childNodes );
    });
    return this;
  }, // unwrap
  iePseudoElem: function(type,html) {
    return this.each(function(){
      htmlElem = type == 'after' ? document.createElement('after') : document.createElement('before');
        
      $(htmlElem).html(html);
      if(type == 'after')
        $(this).append(htmlElem);
      else
        $(this).prepend(htmlElem);
    });
  }, // iePseudoElem
  collapse: function(set){
    set = $.extend({
      onLoad: function(){}, // first script run
      onStart: function(){}, // item animation start
      onClose: function(){}, // item animation close
      height: 20,
      transition: 'slide', // 'none'
      speed: '750' // if transition on 'slide'
    }, set);  
    
    return this.each(function(){
      var c = {
        root  : $(this),
        item  : $(this).children('li'),
        close  : '.collapse-close'
      }
      
      c.root.addClass('collapse-list');
      c.item.each(function(i){
        c.height = $(this).outerHeight(true);
        $(this).attr('data-height',c.height).height(set.height).prepend('<span class="collapse-close">'+lang['close']+'</span>');
        $(c.close).hide();
      });
      set.onLoad(c.root);
      
      c.item.unbind().bind('click',function(){
        c.self = $(this);
        if(!c.self.is('.collapsed')){
          toClose('.collapsed');
          
        
        c.self.addClass('collapsed').find(c.close).show();
        
        set.onStart(c.self);
        
        if(set.transition == 'slide')
          c.self.animate({height: c.self.attr('data-height')}, set.speed)
        else
          c.self.css({'height':c.self.attr('data-height')});
        }
        
      });
      
      $(c.close).unbind().bind('click',function(){
        c.self = $(this);
        toClose($(this).parent());
          
        return false;
      });
      
      
      function toClose(element){
        
        if(set.transition == 'slide')
          $(element).animate({height: set.height});
        else
          $(element).css({'height': set.height}).removeClass('collapsed');
          $(element).removeClass('collapsed');
        
        $(c.close).hide();
        set.onClose();
      }
    });
  }, // collapse
  tabs: function() {
  
    if($(this).size() > 0) {
      var t = {
        root  : $(this),
        id    : $(this).attr('id'),
        nav    : $(this).find('.t-nav'),
        tabs  : $(this).find('.tab'),
        act    : 0,
        cookie  : $.cookie($(this).attr('id'))        
      }
    
      t.tabs.hide();
      
      $.each(location.search.substring(1).split('&'), function() {
        var parts = this.split('=');
        if (parts[0] == 'tab' && !isNaN(parts[1])) {
          var i = parts[1];
          t.nav.find('li').eq(i).addClass('act');
          t.nav.parent().children('div').eq(i).show();
          t.act = 1;
        }
      });
      
      if (!t.act && t.cookie) {
        t.act = 1; 
        t.nav.find('a[href=#'+t.cookie+']').parent().addClass('act');
        $('#'+t.cookie).show();
      }
      
      if (!t.act) {
        t.nav.find('li').eq(0).addClass('act');
        t.tabs.eq(0).show();
      }
      
      $('a', t.nav).click(function (e){
        e.preventDefault();
        t.href = $(this).attr('href').split('#')[1];
        t.nav.find('li').removeClass('act');
        $(this).parent().addClass('act');
        t.tabs.hide();
        $('#'+t.href).show();
        $.cookie(t.id, t.href, {expires: 365});
      });
    
    } // if t.root  
  }, // tabs()
  ieClear: function(){
    placeholder = new Array();
    return this.each(function(i){
    
      if($(this).is('@[type=text]') || $(this).is('@[type=password]')){
        placeholder[i] = $(this).attr('placeholder');
        if(placeholder[i] != undefined){
        
          if($(this).val() == '')
             $(this).val(placeholder[i]);
            
          $(this).focus(function(){
            if($(this).val() == placeholder[i])
              $(this).val(''); 
          }).blur(function(){ 
            if($(this).val() == '')
              $(this).val(placeholder[i]);              
          });  // blur
        }
      }
    });
  }, // ieClear
  transform: function(set){
    set = $.extend({
      select: true,
      checkbox: true
    }, set);
    
    $.fn.formCheckbox = function(){
      return this.each(function(){
        
        var act = $(this).attr('checked') ? ' act' : '', checkbox = document.createElement('checkbox');
        
        $(this).after(checkbox).hide();
        $(checkbox).addClass(act);
        
        if($.browser.msie && $.browser.version < 9){
          $(this).parent().unbind().bind('click',function(){
            i = $(this).find('input');
            
            if(i.attr('checked'))
              i.attr('checked','');
            else
              i.attr('checked','checked');
            
            i.next().toggleClass('act');
          });
          
        }
        else{
          $(this).change(function(){
            $(this).next().toggleClass('act');
          });
        }
        
      });    
    };
    
    
    $.fn.formSelect = function(){
      return this.each(function(){
        var s = { 
          code: ''
        };
        $('option', this).each(function(i){
          s.o = $(this);
        
          if(s.o.attr('selected'))
            s.act = new Array(s.o.text(),i);
            
          s.code += '<li data-val="'+s.o.val().replace(/\\/g, "\\\\")+'">'+s.o.text()+'</li>';
        });
        if(!s.act)
          s.act = new Array($('option:eq(0)', this),0);
          
        $(this).after('<div class="select"><strong>'+s.act[0]+'</strong><ul>'+s.code+'</ul></div>').hide();
        
        $(this).next('.select').find('li').eq(s.act[1]).addClass('act');
        
        $('.select').parents().unbind().bind('click',function(){
          $('.select.act').removeClass('act'); 
        });
        $('.select').unbind().bind('click',function(){
          _self = $(this);
          $('.select.act').not(_self).removeClass('act');
          $(this).toggleClass('act'); 
          if($(this).is('.act'))
          $(".expand-list-hover").removeClass("expand-list-hover");
		  
          return false;
          
        })
        $('.select').find('li').unbind().bind('click',function(){
          s.self = $(this).parents('.select');
          s.val = $(this).attr('data-val');
          s.text = $(this).text();
          
          $(this).siblings().removeClass('act');
          $(this).addClass('act');
          
          s.self.prev('select').find('option').attr('selected',false);
          s.self.prev('select').find('option[value="'+s.val+'"]').attr('selected',true);
          s.self.removeClass('act').find('strong').text(s.text);
          s.self.prev('select').change();
          
          return false;
        });
      });  // each
    };
    
    if(set.select)
      $('select', this).formSelect();
    
    if(set.checkbox)
      $('input:checkbox', this).formCheckbox();
  
  },
  grayscale: function() {
    return this.each(function(){ 
      var img, canvas, ctx, iSource, iWidth, iHeight, iData;
    
      iSource = $(this);
      img = new Image();
      img.src = iSource.attr('src');
      iWidth = iSource.attr('width');
      iHeight = iSource.attr('height');


      // image loaded  
      $(img).load(function(){  
        if (!iWidth) { iWidth = this.width; }
        if (!iHeight) { iHeight = this.height; }
      
        // take care canvas
        canvas = document.createElement('canvas');
      
        canvas.width = iWidth;
        canvas.height = iHeight;
        
        iSource.after(canvas);
        iSource.hide();
        
        ctx = canvas.getContext('2d');
        ctx.drawImage(img,0,0);
        
        iData = ctx.getImageData(0, 0, iWidth, iHeight);  
        
        for(y = 0; y < iHeight; y++){
           for(x = 0; x < iWidth; x++){
              var i = (y * 4) * iData.width + x * 4;
              var avg = (iData.data[i] + iData.data[i + 1] + iData.data[i + 2]) / 3;
              iData.data[i] = avg;
              iData.data[i + 1] = avg;
              iData.data[i + 2] = avg;
           }
        }    
        
        ctx.putImageData(iData, 0, 0);

      }); // end onload
    });
  } // grayscale
});  

$(document).ready(function() {
  var isoCulture = (typeof realIso != 'undefined') ? realIso : 'en_US';

  var scr = document.createElement('script');
  scr.type = 'text/javascript';
  scr.src = 'http://connect.facebook.net/' + isoCulture + '/all.js#xfbml=1';
  document.body.appendChild(scr);
  
  function addButtons(container, url) {
    function addCulture(url) {
      var culture = (typeof currentCulture != 'undefined') ? currentCulture : 'hq-en';
      if (url.indexOf('culture=') >= 0) {
        return url;
      }
      if (url.indexOf('?') < 0) {
        url += '?';
      } else {
        url += '&';
      }
      return url + 'culture=' + culture;
    }

    url = addCulture(url);
    var list = container.children('li');
    list.eq(0).append('<a href="http://twitter.com/share?url=' + encodeURIComponent(url) + '" target="_blank"><img src="/assets/design/images/btn-tweet.png"/></a>');
    list.eq(1).append('<fb:like send="false" layout="button_count" width="100" show_faces="false" font="arial" href="' + url + '"></fb:like>');
  }

  $('.social').each(function() {
    var url = (typeof getUrl == 'function') ? getUrl($(this)) : getDefaultUrl();
    addButtons($(this), url);
  });
});

function getDefaultUrl(omitQueryString) {
  url = location.protocol + '//' + location.host + location.pathname;
  if (typeof omitQueryString != 'undefined' && omitQueryString === true) {
    return url;
  }
  return url + location.search;
}

function makeJplayer(videoPath, videoPoster, contId, currentTime, cssSelectorAncestor, urlPrefix)
{
	if( $("#"+contId).parents(".prod-options").length == 0 || !playerPlaying )
	{
		playerPlaying = true;
		
		$(document).ready(function()
		{
			var solutionType = "";
			
			if(videoPath.match(/flv/gi)) {
				 solutionType = "flash";
			}
			else {
				 solutionType = "html,flash";
			}
				
			$("#" + contId).jPlayer(
			{
				ready: function () 
				{
					$(this).jPlayer("setMedia", 
					{
						m4v: videoPath,
						poster: videoPoster
					});
					
					$(this).jPlayer("play");
				},
				
				swfPath: urlPrefix + "assets/design/scripts/js",
				solution: solutionType,
				supplied: "m4v",
				cssSelectorAncestor: cssSelectorAncestor,
				
				size: {
					width: "380px",
					height: "290px",
					cssClass: "jp-video-360p"
				},
				
				timeupdate: function(event){
					currentTime = event.jPlayer.status.currentTime;
				},
				
				play: function() { // To avoid both jPlayers playing together.
						$(this).jPlayer("pauseOthers");
				}
			});            
				
			$('#' + contId + ' .jp-previous').click(function(){previous("#" + contId, currentTime ) });
			$('#' + contId + ' .jp-next').click(function(){ forward("#" + contId, currentTime)});	
		});
	}
}

function hideNewsEvents(stories){
	if (stories != null) {
		var ind = 0;
		$.each(stories, function() {
			if (ind>4) {
				//$(this).addClass('hide');
				$(this).hide();
			}
			ind++;
		});
	}
}
