var $, debug;
debug = function($obj) {
  if (window.console && window.console.log) {
    return console.log("Preparing magic show.");
  }
};
$ = jQuery;
/*mousehold event*/
$.fn.mousehold = function(timeout, f) {
  var fireStep, timer;
  if (timeout && (typeof timeout === "function" ? timeout() : void 0)) {
    f = timeout;
    timeout = 100;
  }
  if (f && (typeof f === "function" ? f() : void 0)) {
    timer = 0;
    fireStep = 0;
    return this.each(function() {
      var clearMousehold;
      $(this).mousedown(function(event) {
        var ctr, t;
        event.preventDefault();
        fireStep = 1;
        ctr = 0;
        t = this;
        return timer = setInterval(function() {
          ctr++;
          f.call(t, ctr);
          return fireStep = 2;
        }, timeout);
      });
      clearMousehold = function() {
        clearInterval(timer);
        if (fireStep === 1) {
          f.call(this, 1);
          return fireStep = 0;
        }
      };
      $(this).mouseout(clearMousehold);
      return $(this).mouseup(clearMousehold);
    });
  }
};
/* usability plugins */
$.fn.extend({
  /*wrap headerline in table*/
  fixHeadline: function() {
    return this.each(function() {
      var obj, space, text, wrapper;
      obj = $(this);
      wrapper = $('.wrapper', obj);
      text = $('h1, h3', wrapper);
      space = $('.space', wrapper);
      text.wrap('<td />');
      space.replaceWith('<td class=\"space\"><div>&nbsp;</div></td>');
      return wrapper.replaceWith('<table class=\"wrapper\"><tr>' + wrapper.html() + '</tr></table>');
    });
  },
  /*styled checkboxes*/
  styledControl: function(options) {
    var defaults;
    defaults = {
      radioButton: false,
      callback: null,
      check: null,
      uncheck: null
    };
    options = $.extend(defaults, options);
    return this.each(function() {
      var inp, obj, opt;
      opt = options;
      obj = $(this);
      inp = $('input', obj);
      return inp.change(function() {
        var actEl, callback, cbkCheck, cbkUnCheck, name, rdEl, val;
        name = inp.attr('name');
        val = obj.text();
        if (opt.radioButton === true) {
          rdEl = $('input[name=' + name + ']:radio');
          actEl = rdEl.closest('.radio.active');
          actEl.removeClass('active');
        }
        if (inp.is(':checked')) {
          obj.addClass('active');
          cbkCheck = opt.check;
          if (cbkCheck != null) {
            cbkCheck.call(this, name, val);
          }
        } else {
          obj.removeClass('active');
          cbkUnCheck = opt.uncheck;
          if (cbkUnCheck != null) {
            cbkUnCheck.call(this, name, val);
          }
        }
        callback = opt.callback;
        if (callback != null) {
          return callback.call(this);
        }
      });
    });
  },
  /* dropdown menu container */
  dropContainer: function() {
    return this.each(function() {
      var arrow, obj, ulObj;
      obj = $(this);
      ulObj = $('ul', obj);
      arrow = $('.arrow', obj);
      return arrow.click(function(event) {
        event.preventDefault();
        if (obj.hasClass('active')) {
          return ulObj.slideUp('medium', function() {
            return obj.removeClass('active');
          });
        } else {
          return ulObj.slideDown('fast', function() {
            return obj.addClass('active');
          });
        }
      });
    });
  }
});
/* init usability script */
$(function() {
  /*activate facebox plugin*/
  var accessories, browser, cartIcon, changeContentPos, changeImage, checkBoxes, faceboxEl, featuresList, filterPanel, formCheckout, gallery, getTotal, goodsBlock, headline, hideCartIco, ie7, menuContainer, offerCarousel, openCart, readmoreLink, scrollContent, scrollDownBtn, scrollUpBtn, scrollbar, scroller, sel, setupGallery, setupScroller, setupSlider, showCartIco, showImage, slider, submitBtn, submitWrapper, updateImage, updateInputs, updateValues, _ref;
  faceboxEl = $('a[rel*=facebox]');
  if (faceboxEl.length > 0) {
    $.facebox.settings.closeImage = '/img/closelabel.png';
    $.facebox.settings.loadingImage = '/img/loading.gif';
    faceboxEl.facebox();
  }
  /*fix ie7*/
  browser = $.browser;
  ie7 = (_ref = browser.version) != null ? _ref : 7;
  headline = $('.headline');
  if (browser.msie && ie7) {
    headline.fixHeadline();
  }
  menuContainer = $('#sidebar-nav .container');
  if (menuContainer.length > 0) {
    menuContainer.dropContainer();
  }
  /*radio buttons*/
  if ($('.radio').length > 0) {
    $('.radio').styledControl({
      radioButton: true
    });
  }
  /*styled scrollbar*/
  changeContentPos = function(slider, content, pos) {
    if (content.height() > slider.height()) {
      return content.css('margin-top', Math.round(pos / 100 * (slider.height() - content.height())) + 'px');
    } else {
      return content.css('margin-top', 0);
    }
  };
  setupScroller = function(obj, content, scrollbar) {
    return scrollbar.slider({
      orientation: 'vertical',
      range: "min",
      animate: true,
      min: 0,
      max: 100,
      value: 100,
      slide: function(event, ui) {
        return changeContentPos(obj, content, 100 - ui.value);
      },
      change: function(event, ui) {
        return changeContentPos(obj, content, 100 - ui.value);
      },
      create: function(event, ui) {
        return obj.mousewheel(function(event, delta) {
          var value;
          value = scrollbar.slider('option', 'value');
          if (delta > 0) {
            value += 10;
          } else if (delta < 0) {
            value -= 10;
          }
          value = Math.max(0, Math.min(100, value));
          scrollbar.slider('option', 'value', value);
          return event.preventDefault();
        });
      }
    });
  };
  scroller = $('.scroller');
  scrollContent = $('ul', scroller);
  scrollbar = $('.scrollbar', scroller);
  if (scroller.length > 0 && scrollContent.length > 0 && scrollbar.length > 0) {
    setupScroller(scroller, scrollContent, scrollbar);
    scrollUpBtn = $('.up', scroller);
    scrollDownBtn = $('.down', scroller);
    scrollUpBtn.mousehold(60, function(i) {
      var val;
      val = 6;
      if (i === void 0) {
        val = 0;
      }
      return scrollbar.slider('value', scrollbar.slider('value') + val);
    });
    scrollDownBtn.mousehold(60, function(i) {
      var val;
      val = 6;
      if (i === void 0) {
        val = 0;
      }
      return scrollbar.slider('value', scrollbar.slider('value') - val);
    });
  }
  /*tabs*/
  featuresList = $('#features');
  if (featuresList.length > 0) {
    featuresList.tabs();
    accessories = $('.accessories_thetab');
    if (accessories.length > 0) {
      accessories.tabs();
    }
  }
  /*dropdown select*/
  sel = $('select');
  if (sel.length > 0) {
    $('select').selectmenu();
  }
  /*carousel*/
  offerCarousel = $('#specialoffer .slider_wrapper');
  if (offerCarousel.length > 0) {
    offerCarousel.carousel({
      pagination: false,
      itemsPerPage: 5,
      itemsPerTransition: 2
    });
  }
  /*photo gallery */
  showImage = function(obj) {
    return obj.removeAttr('style').hide().fadeIn();
  };
  changeImage = function(obj, imgscr) {
    obj.attr('src', imgscr);
    // return setTimeout(showImage(obj), 300);
  };
  updateImage = function(obj, src) {
    var effOpt;
    effOpt = {
      color: '#258ABE'
    };
    if (obj.attr('src')==src) return false;
    return obj.hide('highlight', effOpt, 'slow', function() {
      return changeImage(obj, src);
    });
  };
  setupGallery = function(obj) {
    var bigImage, slider;
    slider = $('.photoslider', obj);
    bigImage = $('.full-image img', obj);
    return slider.carousel({
      pagination: false,
      itemsPerPage: 4,
      init: function() {
        var el;
        el = $(this);
		bigImage.bind('load', function () {
			$(this).hide().fadeIn();
		});

        return $('.mask a', el).click(function(event) {
          var imgSrc;
          event.preventDefault();
          imgSrc = $(this).attr('href');
          return updateImage(bigImage, imgSrc);
        });
      }
    });
  };
  gallery = $('#gallery');
  if (gallery.length > 0) {
    setupGallery(gallery);
  }
  /*open cart popup*/
  openCart = function() {
    var closeBtn, popup;
    popup = $('.cartpopup');
    popup.hide().fadeIn();
    closeBtn = $('.close', popup);
    return closeBtn.click(function(event) {
      event.preventDefault();
      return popup.fadeOut();
    });
  };
  /*add to cart popup*/
  /*readmore link*/
  readmoreLink = $('.readmore');
  if (readmoreLink.length > 0 && featuresList.length > 0) {
    readmoreLink.click(function(event) {
      event.preventDefault();
      $.scrollTo(featuresList, 1100, {
        easing: 'easeOutCirc'
      });
      return featuresList.tabs('select', 1);
    });
  }
  /*add to cart ico*/
  /*showCartIco = function() {
    var cartIcon;
    cartIcon = $('.price > .addtocart', $(this));
    if (cartIcon.length > 0) {
      return cartIcon.hide().fadeIn();
    }
  };
  hideCartIco = function() {
    var cartIcon;
    cartIcon = $('.price > .addtocart', $(this));
    if (cartIcon.length > 0) {
      return cartIcon.fadeOut();
    }
  };*/
  /*goodsBlock = $('.goods-list li');
  if (goodsBlock.length > 0) {
    goodsBlock.hover(showCartIco, hideCartIco);
    cartIcon = $('.price > .addtocart', goodsBlock);
    if (cartIcon.length > 0) {
      cartIcon.hide();
    }
  }*/
  /*gettotal search*/
  getTotal = function() {
    var getTotalInterval, totalCounter;
    totalCounter = $('.totalcounter', filterPanel);
    totalCounter.text('...');
    if (FinderPosition != null) {
        $('#FloatingFinder').hide();
        $('.FFTotal').html("<img src='/img/miniloader.gif'>");
        $('#FloatingFinder').css('left',FinderPosition.left-186);
        $('#FloatingFinder').css('top',FinderPosition.top-9);
        $('#FloatingFinder').fadeIn('fast');
    }

    if (getTotalInterval) {
      window.clearTimeout(getTotalInterval);
    }
    return getTotalInterval = window.setTimeout(function() {
      var fieldPrice1, fieldPrice2, listParams, thiscategory;
      fieldPrice1 = $('.min-price', filterPanel);
      fieldPrice2 = $('.max-price', filterPanel);
      listParams = $('#listParams');
      thiscategory = $('#thiscategory');
      return $.get('/ajax/countresult.htm', {
        'fieldPrice1': fieldPrice1.val(),
        'fieldPrice2': fieldPrice2.val(),
        'listParams': listParams.val(),
        'category': thiscategory.val()
      }, function(data) {
        totalCounter.text(data);
        $('.FFTotal').text(data);
        return totalCounter.closest('a').click(function(event) {
          event.preventDefault();
          return $(this).closest('form').submit();
        });
      });
    }, 300);
  };
  updateValues = function(value, remove) {
    var listParams;
    listParams = $('#listParams');
    if (remove !== true) {
      return listParams.val(listParams.val() + value);
    } else {
	  value = value.replace('(', '\\\(');
	  value = value.replace(')', '\\\)');
      repStr = new RegExp(value.replace('||', '\\|\\|'), 'gi');
      return listParams.val(listParams.val().replace(repStr, ""));
    }
  };
  /*checkboxes*/
  filterPanel = $('#filter');
  formCheckout = $('#ordercheckout');
  checkBoxes = $('.checkbox');
  if (checkBoxes.length > 0) {
    if (filterPanel.length > 0) {
      checkBoxes.styledControl({
        check: function(name, val) {
          return updateValues(name + '\|\|');
        },
        uncheck: function(name, val) {
          return updateValues(name + '\|\|', true);
        },
        callback: function() {
          return getTotal();
        }
      });
    } else if (formCheckout.length > 0) {
      submitBtn = $('input[type=submit]');
      submitWrapper = submitBtn.closest('label');
      checkBoxes.styledControl({
        check: function(name, val) {
          submitWrapper.removeClass('disabled');
          return submitBtn.removeAttr('disabled');
        },
        uncheck: function(name, val) {
          submitWrapper.addClass('disabled');
          return submitBtn.attr('disabled', 'disabled');
        }
      });
    } else {
      checkBoxes.styledControl();
    }
  }
  /*styled price slider*/
  updateInputs = function(minVal, maxVal) {
    var maxIn, minIn;
    minIn = $('.min-price');
    maxIn = $('.max-price');
    minIn.val(minVal);
    return maxIn.val(maxVal);
  };
  setupSlider = function(obj) {
    var pricefrom, pricemax, pricemin, priceto;
    pricemin = $('.min-price').attr('min');
    pricemax = $('.max-price').attr('max');
    pricefrom = $('.min-price').val();
    priceto = $('.max-price').val();
    return obj.slider({
      range: true,
      min: pricemin * 1,
      max: pricemax * 1,
      values: [pricefrom * 1, priceto * 1],
      create: function(event, ui) {
        var maxHandle;
		
		$('.max-price, .min-price').change(function() {
			var minVal, maxVal;
			minVal = parseInt($('.min-price').val());
			maxVal = parseInt($('.max-price').val());
			if (minVal < maxVal) {
				obj.slider('option', 'values', [minVal, maxVal]);
				updateInputs(minVal, maxVal);
			}
		});
        maxHandle = $('.ui-slider-handle:last-child', obj);
        maxHandle.addClass('max');
        return updateInputs(obj.slider('values', 0), obj.slider('values', 1));
      },
      slide: function(event, ui) {
        return updateInputs(ui.values[0], ui.values[1]);
      },
      change: function(event, ui) {
        return getTotal();
      }
    });
  };
  slider = $('.slider > dd');
  if (slider.length > 0) {
    return setupSlider(slider);
  }
  /*form validation*/
});
