jQuery(document).ready(function(){

 /* --- ticker --- */
 jQuery('.ticker').each(function(){

  var me = jQuery(this);
  var params = _getParams(me);
  me.attr('blocked','no');
  me.attr('moving','no');

  me.hover(
   function(){
   //if(me.attr('moving') == 'yes'){ return;  }  
     me.attr('blocked','yes');
   },function(){ 
     me.attr('blocked','no');
  });

  function moveTicker(){
   if(me.attr('blocked') == 'yes'){
    window.setTimeout(moveTicker, 1000);
    return;
   }
   me.attr('moving','yes');
   var news = me.find('.ticker_scroll:first');
   news.slideUp("slow", function(){
    me.find("div:first").append(news); news.show(); window.setTimeout(moveTicker, 5000); me.attr('moving','no');
   });
  }

  window.setTimeout(moveTicker, 5000);

 });

 /* switchbox */
 jQuery("div.switchBox").each(function(){
  var sbox = jQuery(this);
  var params = _getParams(jQuery(this));
  if(params) var currTab = strFilter(params.defTab);
  var sboxId = jQuery(this).attr("id");
  sbox.find("> div").each(function(){
   jQuery(this).attr("id",strFilter(jQuery(this).attr('id')));
  });
  //connect tabs with theirs containers
  var tabCtr = jQuery(this).find("#"+sboxId+"_tabs").eq(0);
  if(tabCtr){
   var tabs = tabCtr.find("a");
   if(tabs.length > 0) {
    tabs.each(function(){
     jQuery(this).attr("href",strFilter(jQuery(this).attr('href')));
    });
    for(var i=0; i<tabs.length; i++){
     tabs.eq(i).attr('rel', sboxId+'_'+tabs.eq(i).attr("href").split("#")[1]);
     tabs.eq(i).click(function(){
      var selTab = tabCtr.find(".sel").eq(0);
      if(selTab){
       //deselect current selected tab
       selTab.removeClass("sel");
       var selTabContentDivId = selTab.attr("rel");
       sbox.find("#"+selTabContentDivId).css("display","none");
      }
      //select new tab
      selectTab(jQuery(this), sbox);
     });
    }
   }
  }
  if(currTab){
   selectTab(tabCtr.find("a[href='#"+currTab+"']"), sbox);
  } else {
   selectTab(tabCtr.find("a").eq(0), sbox);
  }

  /* -- show switchbox tab -- */
  function selectTab(_obj,_sbox){
   _obj.addClass("sel");
   _sbox.find("#"+_obj.attr("rel")).css("display","block");
  }
  
 });

 /* dailyphoto */
 jQuery('.dailyPhoto').each(function(){

  var me = jQuery(this);

  var speed = 5000;
  var photo = 0;
  var photoCount = me.find('img').length;

  var params = _getParams(me);
  if(params.speed){ speed = params.speed; }
  if(params.photo){ photo = params.photo; }
  if(params.photoCount){ photoCount = params.photoCount; }

  var meId = me.attr('id');
  me.attr('blocked','no');
  me.attr('moving','no');
  me.attr('currentPhoto',photo);
  
  //prepare
  for(var i = 0; i < photoCount; i++){
   if( i == photo){
    me.find('.head .kR a').eq(i).addClass('sel');
    me.find('#'+meId + '_i' + i).addClass('sel');
    me.find('#'+meId + '_ic' + i).addClass('sel');
   }else{
    me.find('#'+meId + '_i' + i).hide().removeClass('hidden');
    me.find('#'+meId + '_ic' + i).hide().removeClass('hidden');
   }
  }

  me.hover(
   function(){
   //if(me.attr('moving') == 'yes'){ return;  }  
     me.attr('blocked','yes');
   },function(){ 
     me.attr('blocked','no');
  });

  function switchPhoto(){
   if(me.attr('blocked') == 'yes'){
    window.setTimeout(switchPhoto, 1000);
    return;
   }
   me.attr('moving','yes');
   var i = me.attr('currentPhoto');
   me.find('.head .kR a').eq(i).removeClass('sel');
   me.find('#'+meId + '_i' + i).fadeOut('slow').removeClass('sel');
   me.find('#'+meId + '_ic' + i).fadeOut('slow').removeClass('sel');
   i++;
   if(photoCount <= i) i = 0;
   me.find('.head .kR a').eq(i).addClass('sel');
   me.find('#'+meId + '_i' + i).fadeIn('slow').addClass('sel');
   me.find('#'+meId + '_ic' + i).fadeIn('slow').addClass('sel');
   me.attr('currentPhoto',i);
   me.attr('moving','no');
   window.setTimeout(switchPhoto, speed);
  }
  
  window.setTimeout(switchPhoto, speed);

 });

});



/* --- common functions --- */
/* -- get params -- */
function _getParams(obj){
 var _params = new Object();
 var _elems = obj.find("div.params");
 if(_elems.length > 0){
  for(var i=0; i<_elems.length; i++){
   var _elem = _elems.eq(i).find("div");
   if(_elem.length > 0){
    for(var j=0; j<_elem.length; j++){
     _params[_elem.eq(j).attr("class")]=_elem.eq(j).text();
    }
   }
  }
 }
 return _params;
}
/* -- strip out of polish chars -- */
function strFilter(str){
 var newstr = decodeURI(str);
 var plChar = new Array('¥', 'Æ', 'Ê', '£', 'Ñ', 'Ó', 'Œ', '', '¯', '¹', 'æ', 'ê', '³', 'ñ', 'ó', 'œ', 'Ÿ', '¿');
 var plCharStr = '¥ÆÊ£ÑÓŒ¯¹æê³ñóœŸ¿';
 var nplChar = new Array('A','C','E','L','N','O','S','Z','Z','a','c','e','l','n','o','s','z','z');
 newstr = newstr.replace(new RegExp(/\./g), '_');
 for (i=0; i < newstr.length; i++) {
  if (plCharStr.indexOf(newstr.charAt(i)) != -1) {
   for (ii=0;ii<plChar.length;ii++) {
    if (newstr.charAt(i) == plChar[ii]) newstr=newstr.replace(plChar[ii], nplChar[ii]);
   }
  }
 }
 return newstr;
}