﻿
function popupImage(popupUrl, imageUrl, width, height) {
    var win = window.open(popupUrl + "?" + imageUrl + "&" + width + "&" + height, 'image', 'resizable=1, height=' + height + ', width=' + width + ', directories = no, location = no, menubar = no, status = no, scrollbars = no');
    win.focus();
}

function initNiceSelects() {
    //select enable
    var options = { selectCallback: callbackFunction };
    $("select.nice_select").niceSelect(options);

    var bigselect_options = {
        selectCallback: callbackFunction,
        virtualInputClass: "nice_select_big",
        virtualSelectClass: "virtual_select_big"
    };
    $("select.nice_select_big").niceSelect(bigselect_options);

    function callbackFunction(vals, select) {
        // call stored onchange if it is stored
        if (select[0].onchange != null)
            select[0].onchange();
    }
}

function showHideOptgroup(psdLink) {
    var show = (psdLink[0].style.display == "none");
    if (show)
        psdLink.animate({ height: "show", width: "show", opacity: "show" }, 0, false);
    else
        psdLink.animate({ height: "hide", width: "hide", opacity: "hide" }, 0, false);
}

function initOptlinks() {

    //trigger block====================================================================================
    /*
    var trigger_block = $('.trigger_block');
    if (trigger_block.length) {
        trigger_block.each(function() {
            var 
				block = $(this),
				trigger = block.find('.trigger'),
				content = trigger.nextAll();

            trigger.click(function() {
                content.toggle();
                return false;
            });

        });
    }
    */
    
    //menus hidden on load
    $('.trigger').each(function() {
        if ($(this).attr("initialized") == null) {
            $(this).click(function() { var psdLink = $(this).next('.opt_group'); showHideOptgroup(psdLink); return false; });
            $(this).attr("initialized", true);
        }
    });
}

var flag = 1;
function closeSearch(sec) {
    hideSearch(sec);
    flag = 0;
}

function hideSearch(sec) {
    var toggler = $('.hd_search_toggle');
    $('.hd_filter_cont').slideUp(sec);
    toggler.removeClass('search_opened').addClass('search_closed');
    toggler.find('.name').html('показать подбор изделия');
}

function showSearch(sec) {
    var toggler = $('.hd_search_toggle');
    $('.hd_filter_cont').slideDown(sec);
    toggler.removeClass('search_closed').addClass('search_opened');
    toggler.find('.name').html('скрыть подбор изделия');
}

function initIndexOfMethodForArray() {
	// see details at http://www.tutorialspoint.com/javascript/array_indexof.htm
	if (!Array.prototype.indexOf)
	{
	  Array.prototype.indexOf = function(elt /*, from*/)
	  {
		var len = this.length;

		var from = Number(arguments[1]) || 0;
		from = (from < 0)
			 ? Math.ceil(from)
			 : Math.floor(from);
		if (from < 0)
		  from += len;

		for (; from < len; from++)
		{
		  if (from in this &&
			  this[from] === elt)
			return from;
		}
		return -1;
	  };
}}

$(function() {
    Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(initNiceSelects);
    Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(initOptlinks);
    //checkbox enable
    //$('input:checkbox').checkbox({ cls: 'jquery-safari-checkbox' });

	// init indexOf method for arrays, if browser doesn't support it
	initIndexOfMethodForArray();
	
    //placeholder--------------------------------------------------------------------------------------------
    $('#side_search').find('.input').placeholder();

    //head_filter toggle-------------------------------------------------------------------------------------
    if (flag == 1) {
        $('.hd_search_toggle').toggle(
		        function() {
		            hideSearch(400);
		        },
		        function() {
		            showSearch(600);
		        }
	        );
    }
    else {
        $('.hd_search_toggle').toggle(
		        function() {
		            showSearch(600);
		        },
		        function() {
		            hideSearch(400);
		        }
	        );
    }

    //sliders----------------------------------------------------------------------------------------------

    var slider_weight = $('#slider_weight'),
			slider_color = $('#slider_color'),
			slider_clear = $('#slider_clear'),
			slider_price = $('#slider_price');

    // diamond weight range===================================

    slider_weight.slider({
        range: true,
        min: 0.01,
        max: 11,
        values: [slider_weight.find('.hfValueFrom').val(), slider_weight.find('.hfValueTo').val()],
        step: 0.01,
        slide: function(event, ui) {
            //min value
            slider_weight.find('.ui-slider-handle-left').find('.value').text(ui.values[0]);
            slider_weight.find('.hfValueFrom').val(ui.values[0]);
            //max value
            slider_weight.find('.ui-slider-handle-right').find('.value').text(ui.values[1]);
            slider_weight.find('.hfValueTo').val(ui.values[1]);
        }
    });


    //apply handle start values
    slider_weight.find('.ui-slider-handle').eq(0).addClass('ui-slider-handle-left').html('<span class="value">' + slider_weight.slider("values", 0) + '</span>');
    slider_weight.find('.ui-slider-handle').eq(1).addClass('ui-slider-handle-right').html('<span class="value">' + slider_weight.slider("values", 1) + '</span>');
    //apply range values
    slider_weight.find('.slider_range_start').find('.value').html(slider_weight.slider('option', "min"));
    slider_weight.find('.slider_range_end').find('.value').html(slider_weight.slider('option', "max"));


    //diamond color range====================================

    //colors matrix
    var Colors = [
			'1', '2', '3', '4', '5', '6',
			'6-1', '7', '8-1', '8-2', '8-3', '8-4',
			'8-5', '9-1', '9-2', '9-3', '9-4', 'фант.'
		];

    slider_color.slider({
        range: true,
        min: 1,
        max: Colors.length,
        values: [Colors.indexOf(slider_color.find('.hfValueFrom').val()) + 1, Colors.indexOf(slider_color.find('.hfValueTo').val()) + 1],
        step: 1,
        slide: function(event, ui) {
            //min value
            slider_color.find('.ui-slider-handle-left').find('.value').text(Colors[ui.values[0] - 1]);
            slider_color.find('.hfValueFrom').val(Colors[ui.values[0] - 1]);
            //max value
            slider_color.find('.ui-slider-handle-right').find('.value').text(Colors[ui.values[1] - 1]);
            slider_color.find('.hfValueTo').val(Colors[ui.values[1] - 1]);
        }
    });

    //making grid
    var grid = $('<ins class="grid" />');
    for (var i = 1; i <= (slider_color.slider('option', "max") - 2); i++) {
        slider_color.append(grid.clone().css('left', slider_color.width() / (slider_color.slider('option', "max") - 1) * i));
    }
    //apply handle start values
    slider_color.find('.ui-slider-handle').eq(0).addClass('ui-slider-handle-left').html('<span class="value">' + Colors[slider_color.slider("values", 0) - 1] + '</span>');
    slider_color.find('.ui-slider-handle').eq(1).addClass('ui-slider-handle-right').html('<span class="value">' + Colors[slider_color.slider("values", 1) - 1] + '</span>');
    //apply range values
    slider_color.find('.slider_range_start').find('.value').html(Colors[slider_color.slider('option', "min") - 1]);
    slider_color.find('.slider_range_end').find('.value').html(Colors[slider_color.slider('option', "max") - 1]);

    //diamond clear range=====================================

    slider_clear.slider({
        range: true,
        min: 1,
        max: 12,
        values: [slider_clear.find('.hfValueFrom').val(), slider_clear.find('.hfValueTo').val()],
        step: 1,
        slide: function(event, ui) {
            //min value
            slider_clear.find('.ui-slider-handle-left').find('.value').text(ui.values[0]);
            slider_clear.find('.hfValueFrom').val(ui.values[0]);
            //max value
            slider_clear.find('.ui-slider-handle-right').find('.value').text(ui.values[1]);
            slider_clear.find('.hfValueTo').val(ui.values[1]);
        }
    });
    //making grid
    var grid = $('<ins class="grid" />');
    for (var i = 1; i <= (slider_clear.slider('option', "max") - 2); i++) {
        slider_clear.append(grid.clone().css('left', slider_clear.width() / (slider_clear.slider('option', "max") - 1) * i));
    }
    //apply handle start values
    slider_clear.find('.ui-slider-handle').eq(0).addClass('ui-slider-handle-left').html('<span class="value">' + slider_clear.slider("values", 0) + '</span>');
    slider_clear.find('.ui-slider-handle').eq(1).addClass('ui-slider-handle-right').html('<span class="value">' + slider_clear.slider("values", 1) + '</span>');
    //apply range values
    slider_clear.find('.slider_range_start').find('.value').html(slider_clear.slider('option', "min"));
    slider_clear.find('.slider_range_end').find('.value').html(slider_clear.slider('option', "max"));

    //diamond price range======================================

    slider_price.slider({
        range: true,
        min: 10000,
        max: 5000000,
        values: [slider_price.find('.hfValueFrom').val(), slider_price.find('.hfValueTo').val()],
        step: 10000,
        slide: function(event, ui) {
            //min value
            slider_price.find('.ui-slider-handle-left').find('.value').html(ui.values[0].toString().replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, '$1' + '&nbsp;'));
            slider_price.find('.hfValueFrom').val(ui.values[0]);
            //max value
            slider_price.find('.ui-slider-handle-right').find('.value').html(ui.values[1].toString().replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, '$1' + '&nbsp;'));
            slider_price.find('.hfValueTo').val(ui.values[1]);
        }
    });
    //apply handle start values
    slider_price.find('.ui-slider-handle').eq(0).addClass('ui-slider-handle-left').html('<span class="value">' + slider_price.slider("values", 0).toString().replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, '$1' + '&nbsp;') + '</span>');
    slider_price.find('.ui-slider-handle').eq(1).addClass('ui-slider-handle-right').html('<span class="value">' + slider_price.slider("values", 1).toString().replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, '$1' + '&nbsp;') + '</span>');
    //apply range values
    slider_price.find('.slider_range_start').find('.value').html(slider_price.slider('option', "min").toString().replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, '$1' + '&nbsp;'));
    slider_price.find('.slider_range_end').find('.value').html(slider_price.slider('option', "max").toString().replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, '$1' + '&nbsp;'));

    //dynamic range validation------------------------------------------------------------------------------

    if ($('.d_price_range').length) {
        var error = $('<div class="error">* Пожалуйста, проверьте правильность ввода цифр! <br />Числа не должны содержать пробелов, букв и прочих символов.</div>');
        $('.d_price_range').append(error.hide());

        function numberCheck(input) {
            error.hide();
            var value, i = 0;
            for (i; i < input.length; i++) {
                if (input.eq(i).val() == '') continue;
                value = input.eq(i).val().search(/^\d+$/);
                if (value == -1) { error.show(); }
            }
        }

        //load
        numberCheck($('.d_price_range').find('.input'));

        //input change
        $('.d_price_range').find('.input').keyup(function() {
            numberCheck($('.d_price_range').find('.input'));
        });



    }

    // popup helpers ('what's this?')----------------------------------------------------------------------

    var popup = {
        link: $('.slider').find('.what_is_this'),
        applyID: function() {
            popup.link.each(function() {
                popup.curr = $(this);
                popup.help = popup.curr.next();
                if (popup.help.length != 0) {
                    popup.slider = popup.curr.parents('.slider').find('.content > div');
                    popup.id = 'popup_' + popup.slider.attr('id');
                    popup.help.attr('id', popup.id);
                }
            });
        },
        openDialog: function() {
            popup.link.click(function(e) {
                popup.curr = $(this);
                popup.slider = popup.curr.parents('.slider').find('.content > div');
                popup.id = popup.slider.attr('id');
                if ($('#popup_' + popup.id).length) {
                    $('#popup_' + popup.id).dialog({
                        width: 420,
                        modal: true,
                        title: popup.curr.prev().text(),
                        resizable: false,
                        show: 'fade'
                    });
                }
                return false;
            });
        }
    };

    popup.applyID();
    popup.openDialog();
});


/* Callback

$(function() {

    //captcha refresh
    $('#renewcaptcha').live('click', function() {

        $.ajax({
            //	crossDomain: true,
            type: 'GET',
            cache: false,
            timeout: 2000,
            url: "http://www.miuz.ru/captcha.php?act=renew",
            success: function(src) {
                $('#captcha').attr("src", "http://www.miuz.ru/_captcha/" + src);
            }
        });
        return false;
    });

    //form callback===================================================================================

    var myForm = function(formId) {
        var that = this;
        that.obj = $(formId);
        that.button = that.obj.find('.button a');
        that.submit = that.obj.find('.submit');
        that.containers = that.obj.find('.input, .textarea').parent();
        that.prepare = function() {
            if (that.obj.length) {
                that.submit.hide();
                that.button.click(function() {
                    that.obj.submit();
                    return false;
                });
            }
        };
        that.refresh = function() {
            if (that.obj.length) {
                that.obj.find('#renewcaptcha').click();
            }
        }
    }

    var callback = new myForm('#form_callback');
    callback.prepare();

    if ($('#callback').length) {
        //add mode to the link in JS case
        $('#callback').attr('href', $('#callback').attr('href') + '?mode=ajax');
        //colorbox init
        $('#callback').colorbox({
            opacity: 0.2,
            initialWidth: "300",
            innerWidth: "400",
            minHeight: "420",
            maxHeight: "680",
            scrolling: false,
            close: "Закрыть",
            onComplete: function() {
                //close button
                $('#cboxClose').html('<span class="button"><a href="#close"><ins class="icon">Закрыть</ins></a><i></i></span>');
                $('#cboxClose').find('a').click(function(e) { e.preventDefault() });
                //prepare form
                callback = new myForm('#form_callback');
                callback.prepare();
                //submit form
                callback.obj.submit(function() {
                    $.ajax({
                        crossDomain: true,
                        timeout: 2000,
                        dataType: 'json',
                        type: "POST",
                        data: callback.obj.serialize() + '&mode=ajax',
                        url: callback.obj.attr('action'),
                        error: function(xhr, status, error) {
                            callback.obj.prepend('<div class="message"><h2>Произошла ошибка. Попробуйте повторить запрос позднее. (' + error, status + ')</h2></div>');
                            $.colorbox.resize();
                        },
                        success: function(data, status, xhr) {
                            //clear previous errors
                            callback.containers.removeClass('errorCont').removeAttr('title');
                            callback.refresh();
                            //check errors
                            if (data.status == 0 && data.errors != 'undefined') {
                                $.each(data.errors, function(name, text) {
                                    callback.containers
									.filter(function() { return $('[name^="' + name + '"]', this).length })
									.addClass('errorCont')
									.attr('title', text);
                                });
                            }
                            else if (data.status == 1 && data.successmsg != null) {
                                //correct data
                                //thanks and good bye
                                var cbox = callback.obj.parent();
                                callback.obj.remove();
                                cbox.append('<div class="form"><div class="message"><h2>' + data.successmsg + '</h2></div></div>');
                                $.colorbox.resize();
                            }
                        }
                    });
                    return false;
                });

            }
        });
    }

});
*/

/* Image previews */

function OnInitPreView()
{
    // initializing photo preview
    $(".image-preview").mediaPreview(
    {
        loading_text: 'Загрузка...',
        offset: 20
    });
}


$(document).ready(function() 
{
    OnInitPreView()
});


/* Numeric inputs */

$(document).ready(function() 
{
    $(".numeric").numeric(        {               decimal: true,             negative: false        }, function() {                 alert("Разрешены только положительные числа!");                 this.value = "";                 this.focus();            }    );});
