if (typeof (console) == 'undefined') {
  var console = {log: function () {}};
}

window.lt = function(a, b){
  return (a < b);
}

window.gt = function(a, b){
  return (a > b);
}

function Waiter(testFunc, successFunc, timeout) {
  var key='waiter'+Math.random();
  var self = this;
  this.interval = setInterval(function(){
    try {
      if(testFunc()){
        clearInterval(self.interval);
        $('window').removeData(key);
        successFunc();
      }
    }
    catch (e) {
      clearInterval(self.interval);
      $('window').removeData(key);
    }
  }, timeout||100); 
  $('window').data(key,this);
}


  
  var hvtmenu = function() {
    return this;
  };
  
  hvtmenu.prototype = {
    
    backStack : new Array(),

    lastUrl: '',
    
    init: function(url) {
    },
    
    setActive: function(el){
      if(el == null || el.length == 0) return;
      this.lastUrl = el.attr("href");
      
      if(el.parents('#navigationmain').length > 0){
        this.activateMain(el);
      } else if(el.parents('.subnavigation').length > 0){
        this.activateSub(el);
      }
  
    },
    
    activateMain: function(el, fullreset /* = true */  ){
      if(fullreset == undefined) fullreset = true;

      // reset
      if(fullreset) {
        $('.subnavigation li').removeClass('active');
        $('.subnavigation .navitem').hide(); 
      }
      $('#navigationmain li').removeClass('active');
      
      var classname = $(el).parent().attr('class');
      var resArr = classname.split(' ');
      if(resArr && resArr.length) {
        var classname = resArr[1];
      }
      $(el).parent().addClass('active'); 
     
      $('.subnavigation .'+classname).show();
      
    },
    
    hideAll: function(){
      $('.subnavigation .navitem').hide(); 
      $('#navigationmain li').removeClass('active');      
    },
    
    activateSub: function(el){
      // reset
      $('.subnavigation .navitem').hide(); 
      $('.subnavigation li').removeClass('active');
      $('.subnavigation li').removeClass('activeWithSubmenu');
      
      el.parents('li').addClass('active');
      
      if(el.siblings('ul').size() || el.hasClass('l3')) {
        // console.log('huhu ' + el.html());
        el.parents('li').addClass('activeWithSubmenu');
        el.parents('ul.sub > li.active').addClass('activeWithSubmenu');
      }
        
      
      var classname = el.parents('.navitem').show().attr('class');
      
      var resArr = classname.split(' ');
      if(resArr && resArr.length) {
        var type = resArr[1];
        this.activateMain( $('#navigationmain .'+type+ ' a') , false );
      }
    },
    
    setActiveCurrent: function(stack){  
      var hash = window.location.hash;
      hash = hash.replace(";search=1;", "");
      this.setActiveByUrl(hash.substring(1), stack);

    },
    
    isVisited : function(url){
      for(key in this.backStack){
        if(this.backStack[key] === url) return true;
      }
      return false;
    },
    
    setActiveByUrl: function(url, stack){
      var result = $('.nav a[href=' + url + ']');

      if(result.size() === 1){
        if(stack){
          this.pushBackStack(url);          
        }
        this.setActive(result);
      } else {
        var footerResult = $('.flinks a[href=' + url + ']');
        if(footerResult.size()===1 || url.match("^"+"search;")=="search;"){
          this.hideAll();
        }
      }
    },

    pushBackStack: function(url){
      this.backStack.unshift(url);
      if(this.backStack.length >2) this.backStack.pop();
    },
    
    getLastUrl: function(){
      if(this.backStack.length)
        return this.backStack[0];
      else return '';
    }    
   
  };
  window.hvtmenu = new hvtmenu();

  function getCurrentNoscriptUrl() {
    var jsurl = window.location.href;
    var nojsurl = jsurl.replace("_#", "");    
    return nojsurl;
  }

  function gaFind() {
    var items=$('.ga');
    if (items.length) {
      for (var j=0;j<items.length;j++) {
        var i=$(items[j]);
        if (i.data('gafound')=='1') {
          continue;
        }
        i.data('gafound','1');
        i.click(gaHandler);
      }
    }
  }

  function gaHandler(evt) {
    var classes=$(this).attr('class');
    if (classes==undefined) {
      return;
    }
    var ga=[];
    var cs=classes.split(' ');
    for (var j=0;j<cs.length;j++) {
      var c=cs[j];
      if (c.substring(0,3)!='ga_') {
        continue;
      }
      var href=$(this).attr('href');
      if (href==undefined) {
        return;
      }
      var path='';
      c=c.substring(3);
      switch (c) {
        case 'extern':
          path='extern/'+encodeURIComponent(href);
          break;
        case 'video':
          path='video/'+encodeURIComponent(href);
          break;
        case 'download':
          var pos=href.lastIndexOf(':');
          if (pos>-1) {
            href=href.substring(pos+1);
          }
          path='download/'+href;
          break;
        default:
          return;
      }
      ga.push(['_trackPageview',path]);
    }
    _gaq.push.apply(_gaq, ga);
  }

  
  
  
window.jscb.addGlobalCallbacks({
  onWrappedWidgetClick:function(element) {
    if($(element).hasClass('csignore')) {
      return "ignore";
    }
  }
});

