Limb.Class('ajaxLoader',
{
  __construct: function(container)
  {
    if (container && jQuery(container)[0])
      this.container = jQuery(container);
    else
      this.container = jQuery('body');
    this.build();
  },
  build: function()
  {
    var html = '<div class="ajax_loader" style="display:none;">'
    html += '<div class="shadow_left"><div class="top"></div><div class="center"></div></div>';
    html += '<strong>Загрузка ...</strong>';
    html += '<div class="shadow_right"><div class="top"></div><div class="center"></div></div>';
    html += '<div class="shadow_bottom"><div class="left"></div><div class="center"></div><div class="right"></div></div>';
    html += '</div>'
    this.container.append(html);
    this.ajaxLoader = jQuery('.ajax_loader');
  },
  show: function ()
  {
    this.ajaxLoader.show();
  },
  hide: function ()
  {
    this.ajaxLoader.hide();
  }
});

function add_bookmark(url, title)
{
  if(jQuery.browser.msie)
    window.external.AddFavorite(url, title);
  else
    window.sidebar.addPanel(title, url, '');
}

function set_as_home_page(obj, url)
{
  if(!jQuery.browser.msie)
    return;

  obj.style.behavior='url(#default#homepage)';
  obj.setHomePage(url);
}

// menu
function view_submenu(submenu) {
  jQuery('#main_menu li').removeClass('active');
  jQuery('#main_menu li').each(function()
  {
    if(jQuery(this).attr('item_id') == submenu)
      jQuery(this).addClass('active');
  });

  jQuery('.menu_bot').hide();
  jQuery('.sub_menu_bot').hide();
  jQuery('#submenu_'+submenu).slideDown();
}

function view_subsubmenu(submenu) {
  jQuery('.menu_bot ul li a').removeClass('active');
  jQuery('.menu_bot ul li a').each(function()
  {
    if(jQuery(this).attr('sub_item_id') == submenu)
      jQuery(this).addClass('active');
  });

  jQuery('.sub_menu_bot').hide();
  jQuery('#subsubmenu_'+submenu).slideDown();
}

// catalog menu
function view_subsubmenu2(submenu, show_submenu) {
  jQuery('.roll_menu ul li a').removeClass('active');
  jQuery('#sub_item_id_' + submenu + ' a, #sub_sub_item_id_' + submenu + ' a').addClass('active');

  jQuery('.sub_menu_bot').hide();
  if(show_submenu != false)
    jQuery('#subsubmenu2_'+submenu).slideDown();
}

function hight_light_menu(submenu)
{
  jQuery('.sub_menu_bot ul li a').removeClass('active');
  jQuery('#sub_item_id_' + submenu + ' a, #sub_sub_item_id_' + submenu + ' a').addClass('active');
}

// init player
function init_video_player(video_uri)
{
  var player = new SWFObject('/mediaplayer/player.swf','player','360','300','9');
  player.addParam('allowfullscreen','true');
  player.addParam('allowscriptaccess','always');
  player.addParam('wmode','transparent');
  player.addParam('flashvars','file=' + video_uri);
  player.write('mediaplayer');
}

// init fancybox
function init_fancybox_images()
{
  jQuery('.document_content img, #viewport_block img').each(function()
  {
    if(!jQuery(this).hasClass('no_preview'))
    {
      var src = jQuery(this).attr('src').replace('_preview', '');

      if('' != src && undefined != src)
      {
        jQuery(this).css('text-indent','0').wrap('<a href="'+src+'" class="fancybox"></a>');
      }
    }
  });

  jQuery('a.fancybox').each(function()
  {
    jQuery(this).fancybox(
    {
      'overlayShow'        : true,
      'hideOnContentClick' : true,
      'centerOnScroll'     : true
    });
  });
}

// fixed pages
function move_to(num)
{
  var num = parseInt(num);
  var current = parseInt(jQuery('#current_page').html()) + 1;

  if(num == current)
    return;

  if(num > current)
    next_page((num - current));
  else
    prev_page((current - num));
}

function next_page(count)
{
  var n_page = jQuery('#radio_navi input').length - 1;

  var count = count || 1;
  var delta_px = 600*count;

  var current = jQuery('#current_page');
  if(current.html() == n_page)
    return;

  var pos = parseInt(jQuery('#pages').css('top').replace(/px/, "").replace(/\-/, ""));
  jQuery('#pages').animate({top:'-'+(pos + delta_px)+'px'}, 600);

  current.html( (parseInt(current.html())+count) );

  jQuery('input[name="radio_navi"]').removeAttr('checked');
  jQuery('#radio_navi_' + (parseInt(current.html()) + 1) ).attr('checked','checked');

  if(current.html() == n_page)
  {
    jQuery('#next_page').hide();
    jQuery('#next_page_dis').show();
  }
  jQuery('#prev_page').show();
  jQuery('#prev_page_dis').hide();
}

function prev_page(count)
{
  var count = count || 1;
  var delta_px = 600*count;

  var current = jQuery('#current_page');
  if(current.html() == '0')
    return;

  var pos = parseInt(jQuery('#pages').css('top').replace(/px/, "").replace(/\-/, ""));
  jQuery('#pages').animate({top:'-'+(pos - delta_px)+'px'}, 600);

  current.html( (parseInt(current.html())-count) );

  jQuery('input[name="radio_navi"]').removeAttr('checked');
  jQuery('#radio_navi_' + (parseInt(current.html()) + 1) ).attr('checked','checked');

  if(current.html() == '0')
  {
    jQuery('#prev_page').hide();
    jQuery('#prev_page_dis').show();
  }
  jQuery('#next_page').show();
  jQuery('#next_page_dis').hide();
}

// uri
function getQueryItems(uri)
{
  var arr = uri.split('?');

  var query = arr[0];

  return query.split('/');
}

function pathToLevel(uri, level)
{
  level = level + 3; // href hack
  var q_items = getQueryItems(uri);

  var path = new Array();
  for(var i = 0; i < level; i++)
  {
    if(q_items[i] != undefined)
      path.push(q_items[i]);
  }

  return path.join('/');
}

// catalog
function catalog_error()
{
  ajaxLoader.hide();
  alert('Произошла непредвиденная ошибка.');
}

function load_category(id)
{
  ajaxLoader.show();
  jQuery.ajax({
    type: 'POST',
    url: '/catalog/ajax_load_category',
    data: {'id':id},
    success: function(response){
      if('error' == response)
        return catalog_error();

      ajaxLoader.hide();

      var item_content = document.getElementById('item_content');
      item_content.innerHTML = response;

      init_fancybox_images();
      initFlashTitles();
    },
    error: function(e){
      return catalog_error();
    }
  });
}

function load_sub_category(id)
{
  ajaxLoader.show();

  jQuery.ajax({
    type: 'POST',
    url: '/catalog/ajax_load_sub_category',
    data: {'id':id},
    success: function(response){
      if('error' == response)
        return catalog_error();

      ajaxLoader.hide();

      var sub_item_content = document.getElementById('sub_item_content');
      sub_item_content.innerHTML = response;

      init_fancybox_images();
      initFlashTitles();
    },
    error: function(e){
      return catalog_error();
    }
  });
}

function load_goody(id)
{
  ajaxLoader.show();
  jQuery.ajax({
    type: 'POST',
    url: '/catalog/ajax_load_goody',
    data: {'id':id},
    dataType: 'html',
    success: function(response){
      if('error' == response.error)
        return catalog_error();

      ajaxLoader.hide();
      jQuery('#ajax_content').html(response);
      jQuery('#goody_content2').html( jQuery('#ajax_content #goody_content2_cont').html() );
      jQuery('#goody_content').html( jQuery('#ajax_content #goody_content_cont').html() );
      jQuery('#goody_image img').hide().attr('src', jQuery('#image_url').val()).slideDown();

      jQuery('img.goody_image').slideDown();
      jQuery('img#goody_image_' + id).hide('slow');

      init_fancybox_images();
      initFlashTitles();
    },
    error: function(e){
      return catalog_error();
    }
  });
}

function onImageHover(obj, state)
{
  if(state == 0)
  {
    jQuery(obj).removeClass('a_hover');
    return;
  }

  jQuery(obj).addClass('a_hover');
  if( jQuery(obj).hasClass('a_hover') )
  {
     jQuery('#goody_image img').hide().attr('src', obj.href).slideDown();

     jQuery('img.goody_image').slideDown();
     jQuery(obj).find('img').hide('slow');
  }
}

function initFlashTitles()
{
  if(typeof sIFR == "function")
  {
    sIFR.replaceElement(named({sSelector:"h1",sFlashSrc:"/sIFR/boyarsky.swf",sColor:"#a21449",sWmode:"transparent",sFlashVars:"textalign=left&offsetTop=0&offsetLeft=6"}));
    sIFR.replaceElement(named({sSelector:"h2,.h2",sFlashSrc:"/sIFR/calligraph.swf",sColor:"#a21449",sWmode:"transparent",sFlashVars:"textalign=left&offsetTop=0&offsetLeft=6"}));
    sIFR.replaceElement(named({sSelector:".h3",sFlashSrc:"/sIFR/ceremonious_three.swf",sColor:"#a21449",sWmode:"transparent",sFlashVars:"textalign=left&offsetTop=0&offsetLeft=8"}));
  }
}


/* */
jQuery(document).ready(function()
{
    var active_item_id = '';
    var sub_menu_item = '';

    var url = window.location.toString(); // window.location.pathname
    var url_l1 = pathToLevel(url, 1);
    var url_l2 = pathToLevel(url, 2);

    jQuery("ul#main_menu > li > a").each(function()
    {
      var n_l1 = pathToLevel(this.href, 1);

      if( url_l1.indexOf(n_l1.substr(7)) >= 7 )
        active_item_id = jQuery(this).parent().attr('item_id');
    });

    jQuery(".menu_block #submenu_" + active_item_id + " ul > li > a").each(function()
    {
      var n_l2 = pathToLevel(this.href, 2);

      if( url_l2.indexOf(n_l2.substr(7)) >= 7 )
        sub_menu_item = jQuery(this).parent().attr('sub_item_id');
    });

    view_submenu(active_item_id);
    view_subsubmenu(sub_menu_item);
    jQuery('ul#main_menu li').each(function()
    {
      if(jQuery(this).attr('item_id') == active_item_id)
        jQuery(this).addClass('active');
    });
    jQuery('.menu_bot a').each(function()
    {
      if(jQuery(this).attr('sub_item_id') == sub_menu_item)
        jQuery(this).addClass('active');
    });
    jQuery('.sub_menu_bot a').each(function()
    {
      if(jQuery(this).attr('sub_sub_item_id') == sub_menu_item)
        jQuery(this).addClass('active');
    });

    jQuery('.menu_bot a[href="/catalog/novinki"]').css('color', '#A21449');
});
