var comparisonItemCount = 0;
$(function(){
   
   $("#form1").find('input[name=product]').val( $('h1').eq(0).html() );
   $("#form1").attr('onsubmit', 'return ajaxSubmit(this)');
   //$("#form1").submit('ajaxSubmit');
   /*
   $(".brock").click(function(){
      if( $(this).attr('class').indexOf('on') != -1 ) {
         $(".brock").removeClass('on');
      } else {
         $(".brock").removeClass('on');
         this.className = 'on brock'
      }
      return false;
   });*/
   
   $(".brock").each(function() {
      $(this).hover(
         function() {
            //$(this).addClass('on');
         },
         function() {
            $(this).removeClass('on');
         }
      );
   });
   
   $(".brock a:first-child").each(function() {
      $(this).hover(
         function() {
            $(this).parent().addClass('on');
         },
         function() {
            //$(this).removeClass('on');
         }
      );
   });
   
   // заполняем форму
   var pairs = location.search.slice(1).split('&');
   var allowedVals = new Array();
   $('#selectionInputs input:hidden').each(function(){
      allowedVals.push( $(this).attr('name') )
   });
   while( pairs.length ) { 
      var pair = pairs.shift().split('=');
      if( jQuery.inArray(pair[0], allowedVals) != -1 && pair[1] ) {
         $('#selectionInputs input[name=' + pair[0] + ']').val(pair[1]);
         var reg=/%(\d*?)2A/g;
         pair[1] = pair[1].replace(reg, "*");
         var a = $(".pops a[href=#" + pair[1] + "]");
         var val = $(a).html();
         $(a).parents('.pops').prev().html(val);
      }
   }//while
   //showInfo();
   
   $(".pops a").click(function(){
      // берем № элемента
      var n = $("#filter .brock").index( $(this).parents('.brock') );
      // устанавливаем значения
      var paramId = $(this).attr('href').substr(1);
      var value = $(this).html();
      $('#selectionInputs input:hidden').eq(n).val(paramId);
      // скрываем слой с выбором
      $(this).parents('.pops').prev()
         .html(value)
         .parents('.brock').removeClass('on');
      showInfo();
      return false;
   });
   
   $("#filter input:text").blur(function() {
     showInfo();
   });
   $('#filter input[name=offer]').click(function() {
     showInfo();
   });   
   
   $(".popupsus a.clearValue").click(function(){
      var n = $(".switcher").index( $(this).parents('.switcher') );
      $('#selectionInputs input:hidden').eq(n).val('');
      $(this).parents('.switcher')
         .find('div.pun div').html('')
         .parents('.switcher').removeClass('on');
      return false;
   });
   
   function showInfo(){
      var dataString = '';
      if ( $('#filter input[name=offer]:checked').length )
         dataString = $('#filter input'); 
      else 
         dataString = $('#filter input:not(:checkbox)'); 
   //   if( $("#filter input[value='']:not(:checkbox)").length < 7 || $('#filter input[name=offer]:checked').length ) {
         $.ajax({
           type: "POST",  
           url: "/cgi-bin/catalog/show_info.pl",
           data: dataString,
           success: function( response ) {
            $('#filter .budet').html( 'Будет найдено товаров: ' + response );
           },
           error: function( ) {
            alert( ' \
               При обращени к серверу произошла ошибка, \n \
               попробуйте перезагрузить страницу. \n \
               Если ошибка повотрится сообщите нам об этом. \
            ' );
           }
         });
    //  }
  
   }
   
   // инициализируем ~!@#$%^&*()(*&^%$# фейсбокс, который копирует контент в свое окно, 
   // вместо того чтобы отображать нужный элемент c заданием необходимых стилей,
   // после загрузки данных
   var comp = '';
   var re = new RegExp( "to_comp=([^;]*);" );
   if( re.exec( document.cookie + ";" ) ) { comp = RegExp.$1; }
   if( $('#capa-bottom').length && comp ) {
      $('#capa-bottom').find(".cl").load( '/cgi-bin/catalog/get_data.pl', {}, function(){
         if( $('#capa-bottom').find(".cl").html() != '' ) {
            $('#capa-box').show();
         }
      });
   }
   
   $("#capa-top img").click(function () {
      $(this).parents("#capa-box").hide();
   });
   
   //countComparisonItem();
   
});


function setComparisonCount( comparisonCount ){
   comparisonCount = comparisonCount || 0;
   // в object есть заэскейпеные кавычки
   var comparisonCountTmpl = "<span>Отобрано для сравнения: " + comparisonCount + "</span> \
      <object type='image/svg+xml'   data=\"data:image/svg+xml; charset=utf-8,&lt;svg xmlns='http://www.w3.org/2000/svg'&gt;&lt;text x='-200' y='18' font-family='Arial' font-size='12' fill='#000000' transform='rotate(-90)' text-rendering='optimizeSpeed'&gt;Отобрано для сравнения: " + comparisonCount + "&lt;/text&gt;&lt;/svg&gt;\"></object>";
   $('.vertical').html( comparisonCountTmpl );

} // setComparisonCount


function toComparison( item_id, cover_id ){
   var comp = '';
   var re = new RegExp( "to_comp=([^;]*);" );
   if( re.exec( document.cookie + ";" ) ) { comp = RegExp.$1; }
   $.ajax({
     type: "POST",  
     url: "/cgi-bin/catalog/get_data.pl",
     data: 'item_id=' + item_id + 'cover_id=' + cover_id,
     success: function( response ) {
     if( response ) {
         $('#capa-bottom').find(".cl").html( response );
         $('#capa-box:hidden').show();
         if( !comp ) document.cookie = " to_comp=1; path=/";
         //$('.comparisonList').eq(1).html( response );
         //countComparisonItem();
      }
     },
     error: function( ) {
      alert( ' \
         При обращени к серверу произошла ошибка, \n \
         попробуйте перезагрузить страницу. \n \
         Если ошибка повотрится сообщите нам об этом. \
      ' );
     }
   });
   show_text('Товар добавлен для сравнения.');
   // return false;
} // toComparison


function deleteComparisonItem( id ){

      // из-за того, что **?:%;№ фейсбокс копирует контент, приходится обращаться к конкретной форме
      data = 'id=' + id + '&action=delete';
      $.ajax({
        type: "POST",
        url: "/cgi-bin/catalog/get_data.pl",
        data: data,
        success: function( response ) {
         // установка резульатата для оригинального контейнера и для !"№;%:?* фейсбокса
         if( response ) 
            $('#capa-bottom').find(".cl").html( response );
         else {
            var comp = '';
            var re = new RegExp( "to_comp=([^;]*);" );
            if( re.exec( document.cookie + ";" ) ) { comp = RegExp.$1; }
            if( comp ) document.cookie = " to_comp=; path=/; expires=Thu, 01-Jan-70 00:00:01 GMT";
            $('#capa-box:visible').hide();
         }
        },
        error: function( ) {
         alert( ' \
            При обращени к серверу произошла ошибка, \n \
            попробуйте перезагрузить страницу. \n \
            Если ошибка повотрится сообщите нам об этом. \
         ' );
        }
      });
   

   // return false;
} // deleteComparisonItem


function countComparisonItem( ){
      data = 'action=count';
      $.ajax({
        type: "POST",
        url: "/cgi-bin/catalog/get_data.pl",
        data: data,
        success: function( response ) {
         comparisonItemCount = response;
         setComparisonCount( comparisonItemCount );
        },
        error: function( ) {
         alert( ' \
            При обращени к серверу произошла ошибка, \n \
            попробуйте перезагрузить страницу. \n \
            Если ошибка повотрится сообщите нам об этом. \
         ' );
        }
      });
} // countComparisonItem


function compareItems(){
   if( $('#capa-bottom input:hidden').length >= 1 ) {
      data = $('#comparisonForm').serialize() + '&action=compare';
      OpenWin( "/cgi-bin/catalog/get_data.pl?" + data, 'cw', 1000, 600, 1 );
   } else {
      show_text('Для сравнения необходимо отметить несколько товаров.');
   }
   // return false;
} // compareItems


function ClientBrowse() { this.w=0; this.h=0;
if (self.screen) { this.w=screen.width; this.h=screen.height; }
else if (self.java) { var jkit=java.awt.Toolkit.getDefaultToolkit(); var scrsize=jkit.getScreenSize(); this.w=scrsize.width; this.h=scrsize.height; } return this; }
function OpenWin(url,nwin,w,h,s) { p=new ClientBrowse();
if (w) { leftPos=(p.w-w)/2; } else { w=p.w-100; leftPos=(p.w-w)/2; }
if (h) { topPos=(p.h-h)/2; } else { h=p.h-100; topPos=10; }
(s==1)?null:s=0; (nwin)?null:nwin="win"; var property="left="+leftPos+",top="+topPos+",width="+w+",height="+h+",scrollbars="+s;
window.open (url,nwin,property); }







   
   
/**
 * jQuery jbasket
 * $('#img').jbasket({target:$('#basket')});
 * запускает #img в полет к target (например картинки товара к корзине) со скроллом окна
 * @param target - dom element обязательный параметр
 * 
 * @param flyElement - элемент который полетит, то есть возможно задать полет картинки 
      при клике на ссылке
 * @param flyOptions - параметры, которые будут переданы animate,
      к которым прилетит элемент  (по дефолту заданы left и top)
 * @param scrollOptions:{ targetScrollTop:0, targetScrollLeft:0 } - 
      параметры, к которым будет проскролено окно, по дефолту - позиция target
 * @param callback - функция, которая будет вызвана после полета, 
      например реагирование корзины
 *  
 * 
 * Copyright vipro 2010 http://vipro.ru
 * 
 * Licensed under the MIT licence:
 *   http://www.opensource.org/licenses/mit-license.php
 *
 * 
 * Tested in FF 3.6, IE 7, Chrome 6.0, Opera 9, Opera 10
 *
 */

 /**
   алгоритм работы:
   запоминаем позицию скролла
   скроллим к элементу, который будет летать
   клонируем, увеличиваем элемент
   скроллим к корзине во время анимации
   выполняем колбек после анимации
   скроллим обратно
 */
 
;(function($){
	
   var flag_fly = false;
   
   $.fn.jbasket = function ( options ){
      if(!flag_fly) {
         flag_fly = true;
         var params = {
            flyElement:null,
            flyOptions:null,
            target:null,
            callback:null,
            scrollOptions:{targetScrollTop:null,targetScrollLeft:null}
         }
         
         if( typeof options == 'object' ) {
            params = $.extend(params, options);
         }
         
         // запоминаем позицию скролла
         var windowScrollTop = $(window).scrollTop();
         var windowScrollLeft = $(window).scrollLeft();
         
         // что будет летать: или указанный элемент или текущий
         var $flyElement = params.flyElement || $(this);
         // куда будет улетать элемент
         var $target = $(params.target);
         
         // скроллим к элементу, который будет летать
         pageScrollFix({
            scrollTop:$flyElement.offset().top,
            scrollLeft:$flyElement.offset().left
         }, 400, function(){
            // после скролла к элементу, который будет летать
            var flyOptions = {
               top: $target.offset().top + ($target.height()/2), 
               left:$target.offset().left + ($target.width()/2)
            };
            // если расширение возможно
            if( typeof params.flyOptions == 'object' ) {
               flyOptions = $.extend( flyOptions, params.flyOptions );
            }
            
            // клонируем элемент и добавляем его в конец документа
            $fly = $flyElement.clone().css({
               position:'absolute', 
               top:$flyElement.offset().top, 
               left:$flyElement.offset().left
            });
            $('body').append( $fly );
            
            // скроллим к цели и запускаем полет, "понаехали!"
            $fly.animate({width:$fly.width()+20,height:$fly.height()+20},400,function(){
               pageScrollFix({
                  scrollTop: ( typeof params.scrollOptions.targetScrollTop !== 'undefined') ? 
                     params.scrollOptions.targetScrollTop : $target.offset().top,
                  scrollLeft:( typeof params.scrollOptions.targetScrollLeft !== 'undefined') ? 
                     params.scrollOptions.targetScrollLeft : $target.offset().left
               }, 400);
            });
            $fly.animate(flyOptions,400,function(){
               $(this).remove(); 
               // вызов переданной пользовательской функции, возможно реагирование корзины
               if( typeof params.callback == 'function' ) {
                  params.callback();
               };
               // скролл к месту старта
               pageScrollFix({
                  scrollTop:windowScrollTop,
                  scrollLeft:windowScrollLeft
               }, 400, function(){
                  flag_fly = false;
               });
            });
         
         }); // 1-st animate complete
         
      } // flag
      
      return this;
	   
	};//jbasket
   
   // fix scroll for opera
   function pageScrollFix(params,duration,callback){
      // если точки находятся в видимой области экрана, то не скроллим
      if( params.scrollTop && params.scrollLeft ){
         if( ( params.scrollTop > $(window).scrollTop()
               && params.scrollTop < $(window).scrollTop() + $(window).height() )
            && ( params.scrollLeft > $(window).scrollLeft()
               && params.scrollLeft < $(window).scrollLeft() + $(window).width() ) 
         ) {
            if(typeof callback === 'function') {
               callback();
            }
            return;
         }
      }
      if($.browser.opera){
         $('html').animate(params,duration,callback);
      } else {
         $('html, body').animate(params,duration,callback);
      }
   }//pageScrollFix

})(jQuery);

function t() {
   if(window.console && window.console.trace) {
      console.trace('tt');
   }
}
