$j(document).ready(function() {
	"use strict";

    $j('.price_slider_wrapper').parents('.widget').addClass('widget_price_filter');
    initSelect2();
    initAddToCartPlusMinus();
    initSingleProductImageSlider();
    initSingleProductPrint();
});

$j(window).on('resize', function() {
    calculateProductSliderHeight();
});

function initSelect2() {
    $j('.woocommerce-ordering .orderby, #calc_shipping_country, #dropdown_product_cat').select2({
        minimumResultsForSearch: -1
    });
    $j('.woocommerce-account .country_select').select2();
}

function initAddToCartPlusMinus(){
 "use strict";
    $j(document).on( 'click', '.quantity .plus, .quantity .minus', function() {

        // Get values
        var $qty		= $j(this).closest('.quantity').find('.qty'),
            currentVal	= parseFloat( $qty.val() ),
            max			= parseFloat( $qty.attr( 'max' ) ),
            min			= parseFloat( $qty.attr( 'min' ) ),
            step		= $qty.attr( 'step' );

        // Format values
        if ( ! currentVal || currentVal === '' || currentVal === 'NaN' ) currentVal = 0;
        if ( max === '' || max === 'NaN' ) max = '';
        if ( min === '' || min === 'NaN' ) min = 0;
        if ( step === 'any' || step === '' || step === undefined || parseFloat( step ) === 'NaN' ) step = 1;

        // Change the value
        if ( $j( this ).is( '.plus' ) ) {

            if ( max && ( max == currentVal || currentVal > max ) ) {
                $qty.val( max );
            } else {
                $qty.val( currentVal + parseFloat( step ) );
            }

        } else {

            if ( min && ( min == currentVal || currentVal < min ) ) {
                $qty.val( min );
            } else if ( currentVal > 0 ) {
                $qty.val( currentVal - parseFloat( step ) );
            }
        }

        // Trigger change event
        $qty.trigger( 'change' );
    });
}

function initSingleProductImageSlider() {
    'use strict';

    var slider = $j( '#single-product-slider');
    if ( slider.length ) {
        slider.carouFredSel({
            responsive: true,
            items: {
                visible: 1
            },
            scroll		: {
                fx			: "crossfade"
            },
            pagination	: {
                container		: ".single-product-slider-thumbs",
                anchorBuilder   : false
            },
            onCreate: function() {
                slider.animate({'opacity':1}, '300');
            }
        });

    }

    calculateProductSliderHeight();

}

function calculateProductSliderHeight() {
    'use strict';
    var slider = $j( '#single-product-slider');

    var height = slider.height();
    slider.parent().css({
        'height' : height
    });

}

function initSingleProductPrint(){
    'use strict';
    var print = $j('.single-product-print-wrapper');

    print.on('click', function() {
        window.print();
    });
}