function adjustSlider() {
    var left = -$('div.slider ul.slider').position().left / window.sliderKoef;
    if (left > window.sliderAreaWidth) {
        left = window.sliderAreaWidth;
    }
    $('div.slide-me div').css({
        left:left + 'px'
    });
    applyCarousel();
}
function applyCarousel() {
    $('div.slider ul.slider').css({
        left:-$('div.slide-me div').position().left * window.sliderKoef + 'px'
    });
}
jQuery(document).ready(function() {
    $('div.slider ul.slider li.product').each(function(i) {
        var href = $('a', this).attr('href');
        $('ul.images li img', this).wrap($('<a></a>').attr('href', href));
        $(this).append($('<a class="taste-some">taste some now</a>').attr('href', href));
    });
    window.count = $('div.slider ul.slider li.product').length;
    window.fullSliderWidth = $('div.slider ul.slider li.product').last().position().left + $('div.slider ul.slider li.product').last().outerWidth() + 5;
    window.slideMeWidth = $('div.slide-me div').width();
    window.sliderAreaWidth = $('div.slide-me').width() - window.slideMeWidth;
    window.sliderKoef = (window.fullSliderWidth - window.sliderAreaWidth - window.slideMeWidth) / window.sliderAreaWidth;
    applyCarousel();
    $(window).resize(function() {
        setTimeout(function() {
            window.sliderAreaWidth = $('div.slide-me').width() - $('div.slide-me div').width();
            window.sliderKoef = (window.fullSliderWidth - window.sliderAreaWidth - window.slideMeWidth) / window.sliderAreaWidth;
            adjustSlider();
        }, 10);
    });
    $('div.slide-me div').draggable({
        axis:'x',
        containment:'parent'
    });
    $('div.slide-me div').bind('drag', applyCarousel);
    $('div.slider').bind('mousewheel', function(event, delta) {
        var newLeft = $('div.slide-me div').position().left - delta * 10;
        if (newLeft < 0) {
            newLeft = 0;
        } else if (newLeft > window.sliderAreaWidth) {
            newLeft = window.sliderAreaWidth;
        }
        $('div.slide-me div').css({left:newLeft + 'px'});
        applyCarousel();
        return false;
    });
    $('a.taste-some').live('focus', function() {
        $(this).blur();
    });
    /* IOS */
    var slider = $('div.slide-me div').get(0);
    slider.addEventListener('touchstart', function(event) {
	event.preventDefault();
        $(this).data('startX', event.targetTouches[0].pageX - $(this).position().left);
    }, false);
    slider.addEventListener('touchmove', function(event) {
        var curX = event.targetTouches[0].pageX - $(this).data('startX');
        if (curX < 0) {
            curX = 0;
        }
        if (curX > window.sliderAreaWidth) {
            curX = window.sliderAreaWidth;
        }
        $(this).css('left', curX + 'px');
        applyCarousel();
    }, false);
    var products = $('ul.slider').get(0);
    products.addEventListener('touchstart', function(event) {
        $(this).data('startX', event.targetTouches[0].pageX - $(this).position().left);
        $(this).data('realStartX', event.targetTouches[0].pageX);
    }, false);
    products.addEventListener('touchmove', function(event) {
        if (Math.abs($(this).data('realStartX') - event.targetTouches[0].pageX) > 10) {
            event.preventDefault();
        }
        var curX = event.targetTouches[0].pageX - $(this).data('startX');
        if (curX > 0) {
            curX = 0;
        }
        if (curX + window.fullSliderWidth < $('div.slider').width()) {
            curX = $('div.slider').width() - window.sliderAreaWidth;
        }
        $(this).css('left', curX + 'px');
        adjustSlider();
    }, false);
    /* end IOS */
});

