﻿/* OPEN UI DIALOG */
var dialog_box = '';
var loader = '<p style="text-align:center;"><img src="/images/loader.gif" alt="loading..." />';
$(document).ready(function(){
    if($('#dialog').length>0) return false;
    $('body').append('<div id="dialog">'+loader+'</div>');
    dialog_box = $('#dialog');
    dialog_box.dialog({
        autoOpen: false,
        modal: true,
        resizable: false,
        width: 'auto',
        minHeight: 100,
        stack: false,
        open: function() {
            $('.ui-widget-overlay').click(function(){
                  dialog_box.dialog('close');
            });
        },
        close: function(event, ui) {
            if($('.ck_editor').length>0) {
                var editor = $('.ck_editor').ckeditorGet();
                editor.destroy();
            }
            dialog_box.html(loader);
        }
    })
})

function showPopUp(action, title, params) {
    dialog_box.dialog({'title':title}).dialog('open');
    params = params ? params : '';
	var params = 'act='+action+'&'+params;
    dialog_box.html(loader);
    dialog_box.dialog('option', 'position', 'center');
	$.ajax({type: 'POST', url: '/ajax/popups', data: params, success:
		function (result) {
			if (result == '') {
				showMessage ('Ошибка', 'error');
                dialog_box.dialog('close');
				return false;
			}
		    if (result == 'reload') {
                window.location.reload()
                return false;
		    }
            dialog_box.html(result).dialog('option', 'position', 'center');
		}
	})
}

/* MESSAGES */
$(document).ready(function () {
    initMessage();
});

/* MESSAGES */
$(window).scroll(function() {
    var obj = $('#messageBox');
    if(obj.hasClass('ok') || obj.hasClass('error')) {
    	obj.animate({top:$(window).scrollTop()+10+"px" },{queue: false, duration: 350});
    }
});

/* MESSAGES */
var timeoutID;
function showMessage (text, type) {
	clearTimeout(timeoutID);
    var obj = $('#messageBox');
	obj.stop();
	obj.removeClass('ok').removeClass('error');
	var top = $(window).scrollTop()+"px";
	obj.css({top:($(window).scrollTop()+10)+'px',opacity:100}).addClass(type).text(text);

	timeoutID = setTimeout(function() {
		obj.animate({opacity: 0}, 2000, null, function() {
			obj.removeClass(type).text(' ');
            obj.stop();
		});
	}, 5000);
}

/* MESSAGES */
function initMessage() {
    var obj = $('#messageBox');
    if(obj.hasClass('ok')||obj.hasClass('error')) {
        if(obj.hasClass('ok')) type = 'ok';
        if(obj.hasClass('error')) type = 'error';
    	clearTimeout(timeoutID);
    	var top = $(window).scrollTop()+"px";
    	obj.css("top",($(window).scrollTop()+10)+'px');
    	timeoutID = setTimeout(function() {
    		obj.animate({opacity: 0}, 1000, null, function() {
    			obj.removeClass(type).text(' ');
    		});
    	}, 5000);
    }
}

/* CK-EDITOR */
function ck_editor_init(options)
{
    options = options ? options : {};

    var defaults1 = { resize_enabled : false, skin : "office2003", toolbar : "MyToolbar" };
    var options1 = my_merge(defaults1, clone(options));

    $(".ck_editor.my_toolbar").ckeditor(options1);

    var defaults2 = { resize_enabled : false, toolbar : "ShortToolbar" };
    var options2 = my_merge(defaults2, clone(options))

    $(".ck_editor.short_toolbar").ckeditor(options2);
}

function my_merge(my_defaults, my_options)
{
    for(key in my_defaults) {
        if(typeof(my_options[key])=='undefined') {
            my_options[key] = my_defaults[key];
        }
    }
    return my_options;
}
//Clone object
function clone(obj){
    if(obj == null || typeof(obj) != 'object')
        return obj;
    var temp = new obj.constructor();
    for(var key in obj)
        temp[key] = clone(obj[key]);
    return temp;
}

$(document).ready(function(){
    if(typeof(CKEDITOR)!='undefined' && typeof(CKFinder)!='undefined') {
        CKFinder.SetupCKEditor(null);
    }
    if(typeof(CKEDITOR)!='undefined') {
        ck_editor_init();
    }
})


/* UPLOAD FORM ???? */
function formsToggle () {
	$('#multi').toggle();
	$('#simple').toggle();
	$('#simpleUploadForm').toggle();
	$('#multiUploadFormBody').toggle();
	$('#multiUploadForm').toggle();
	return false;
}

/* sign-up.html */
function refresh_captcha(obj) {
    var src = $(obj).attr('src');
    var len = src.indexOf('?');
    if(len<0) return false;
    src = src.substr(src,len);
    $(obj).attr('src',src+'?'+Math.floor(Math.random()*100));
    return false;
}

/* sign-in.html */
function checkLoginFields (formObj) {
	var username = $('[name=username]', $(formObj)).val();
	var password = $('[name=password]', $(formObj)).val();

	if (username == '') {
		showMessage(lang['input_username'], 'error');
		return false;
	}

	if (password == '') {
		showMessage(lang['input_password'], 'error');
		return false;
	}

	return true;
}


/* NEW REGISTRATION FORM */
$(document).ready(function(){
    checkSignupForm.init();
})

var checkSignupForm = {

    form : '#signup_form',
    username : '[name=username]',
	email : '[name=email]',
	password : '[name=password]',
	repeat_password  : '[name=repeat_password]',
	captcha  : '[name=captcha]',
	terms  : '[name=terms]',
    input_err : '.input_err',

    submiting : 0,

    trim : function(string) {
    	var filter  = /^\s*$/;
    	if (filter.test(string)) {
    		return '';
    	}
    	return string.replace(/^\s*([^\s].*)$/, '$1').replace(/^(.*[^\s])\s*$/, "$1");
    },

    set_err : function(obj,text) {
         var self = this;
         //showMessage(text, 'error');
         obj.parent().find(self.input_err).attr('title',text).html('!');
         obj.css('border','1px solid red');
         return false;
    },
    set_ok : function(obj) {
         var self = this;
         obj.parent().find(self.input_err).attr('title','').html(' ');
         obj.css('border','1px solid green');
         return true;
    },
    clear_style : function(obj) {
         var self = this;
         obj.parent().find(self.input_err).attr('title','').html(' ');
         obj.css('border','1px solid #BCBCBC');
         return false;
    },

    check_username : function () {
        var self = this;
        var obj = $(self.username, $(self.form));
        var value = self.trim(obj.val());
    	var filter  = /^[a-zA-Z0-9_-]+$/;
        var sub = self.submiting;
        self.submiting = 0;
        if(obj.val().length==0&&sub==0) {
            return self.clear_style(obj);
        } else if (value == '') {
            return self.set_err(obj,lang['input_username']);
    	} else 	if (value.length < 3) {
    	    return self.set_err(obj,lang['short_username']);
        } else if (!filter.test(value)) {
		    return self.set_err(obj,lang['invalid_characters_in_username']);
        } else if (sub==0) {
            var url  = '/ajax/check_username';
            var data = 'username='+value;
            $.post(url,data,function(r){
                if(parseInt(r)==1) return self.set_ok(obj);
                else return self.set_err(obj,lang['user_with_that_name_already_exists']);
            });
        } else {
             return self.set_ok(obj);
        }
  	},

    check_email : function () {
        var self = this;
        var obj = $(self.email, $(self.form));
        var value = self.trim(obj.val());
    	var filter  = /^[a-zA-Z0-9\._-]+@[a-zA-Z0-9\._-]+\.[a-zA-Z]{2,4}$/;
        var sub = self.submiting;
        self.submiting = 0;
        if(obj.val().length==0&&sub==0) {
            return self.clear_style(obj);
        } else if (value == '') {
    		return self.set_err(obj,lang['input_email']);
    	} else if (!filter.test(value)) {
    		return self.set_err(obj,lang['invalid_email_format']);
    	} else if (sub==0) {
            var url  = '/ajax/check_email';
            var data = 'email='+value;
            $.post(url,data,function(r){
                if(parseInt(r)==1) return self.set_ok(obj);
                else return self.set_err(obj,lang['this_email_is_already_registered']);
            });
        } else {
            return self.set_ok(obj);
        }
    },

    check_password : function () {
        var self = this;
        var obj = $(self.password, $(self.form));
        var value = obj.val();
        var sub = self.submiting;
        self.submiting = 0;
        if(obj.val().length==0&&sub==0) {
            return self.clear_style(obj);
        } else if (value == '') {
            return self.set_err(obj,lang['input_password']);
        } else if (value.length < 6) {
            return self.set_err(obj,lang['short_password']);
        } else {
            return self.set_ok(obj);
        }
    },

    check_repeat_password : function () {
        var self = this;
        var obj = $(self.password, $(self.form));
        var obj2 = $(self.repeat_password, $(self.form));
        var value = obj.val();
        var value2 = obj2.val();
        var sub = self.submiting;
        self.submiting = 0;
        if(obj2.val().length==0&&sub==0) {
            return self.clear_style(obj2);
        } else if (value2 == '') {
            return self.set_err(obj2,lang['repeat_password']);
        } else if (value != value2) {
            return self.set_err(obj2,lang['password_not_equal_repeat_password']);
        } else {
            return self.set_ok(obj2);
        }
    },

    check_captcha : function () {
        var self = this;
        var obj = $(self.captcha, $(self.form));
        var value = obj.val();
        var sub = self.submiting;
        self.submiting = 0;
        if(obj.val().length==0&&sub==0) {
            return self.clear_style(obj);
        } else if(obj.val().length!=4) {
            return self.set_err(obj,lang['bad_code']);
        } else if (sub==0) {
            var url  = '/ajax/check_captcha';
            var data = 'code='+value;
            $.post(url,data,function(r){
                if(parseInt(r)==1) return self.set_ok(obj);
                else return self.set_err(obj,lang['bad_code']);
            });
        } else {
            return true;
        }
    },

    check_terms : function () {
        var self = this;
        var obj = $(self.terms, $(self.form));
    	if(!obj.attr('checked')) {
            return self.set_err(obj,lang['must_agree_with_terms']);
    	} else {
            return self.set_ok(obj);
    	}
    },

    init : function () {
        var self = this;

        if($(self.form).length<1) return false;

    	$(self.username, $(self.form)).blur(function() {
            self.check_username();
    	})
    	$(self.email, $(self.form)).blur(function() {
            self.check_email();
    	})
    	$(self.password, $(self.form)).blur(function() {
            self.check_password();
    	})
    	$(self.repeat_password, $(self.form)).blur(function() {
            self.check_repeat_password();
    	})
    	$(self.captcha, $(self.form)).blur(function() {
            self.check_captcha();
    	})
    },

    check_submit : function () {
        var self = this;
        self.submiting = 1;
        if(!self.check_username()) return false;
        self.submiting = 1;
        if(!self.check_email()) return false;
        self.submiting = 1;
        if(!self.check_password()) return false;
        self.submiting = 1;
        if(!self.check_repeat_password()) return false;
        self.submiting = 1;
        if(!self.check_captcha()) return false;
        self.submiting = 1;
        if(!self.check_terms()) return false;
        return true;
    }
}

/* calendar div */

$(document).ready(function(){
    if($('.show_calendar').length  && $('.calendar_container').length) {
        $('.show_calendar').click(function(){
            $('.calendar_container')
                .appendTo('body')
                .css({'position' : 'absolute',
                      'z-index' : 1000,
                      'top': $(this).offset().top+$(this).height()+'px',
                      'left': $(this).offset().left-330+'px'
                     })
                .toggle();
            return false;
        })
    }
    if($('.datepicker').length) {
	   	$('.datepicker').datepicker({
			showOn: 'button',
			buttonImage: '/tools/calendar/icons-calendar.png',
			buttonImageOnly: true,
            altFormat: 'dd.mm.yy',
            dateFormat: 'dd.mm.yy',
            maxDate: '+0d',
            showAnim: false,
            dayNames: ['Воскресенье', 'Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота'],
            dayNamesShort: ['Вос', 'Пон', 'Вто', 'Чтв', 'Срд', 'Птн', 'Сбт'],
            dayNamesMin: ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб'],
            monthNames: ['Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'],
            monthNamesShort: ['Янв','Фев','Мар','Апр','Май','Июн','Июл','Авг','Снт','Окт','Ноя','Дек'],
            firstDay: 1
    	});
    }
})


/* graphic toggle */

$(document).ready(function(){
    $('#load_grahp_link a').toggle(
        function(){
            show_graph()
            return false;
        },
        function(){
            hide_graph()
            return false;
        }
    )
})

function show_graph()
{
    var src = $('#load_grahp_link a').attr('rel');
    if(!src) return false;
    $('#load_grahp_link').addClass('open');
    if(!$('.graph').attr('src')) {
        $('.graph').attr('src',src);
    }
    $('.graph').show();
}

function hide_graph()
{
    $('#load_grahp_link').removeClass('open');
    $('.graph').hide();
}

//slider
var slide_width = 150;
function move_slider(is_left)
{
    if($('.body:animated').length>0) {
        return;
    }
    var slider = $('.slider');
    var slide = $('.slide', slider);
    var body = $('.body', slider);
    var d_left = -3;
    var width = slide_width;
    var slides_in_frame = 5;

    var left_limit = -( (slide.length - slides_in_frame) * width + d_left );
    var cur_left = parseInt(body.css('left'));

    if(is_left) {
        if(cur_left<=left_limit) return;
        body.animate({
            'left' : cur_left-width + 'px'
        })
    }
    else {
        if(cur_left>=d_left) return;
        body.animate({
            'left' : cur_left+width + 'px'
        })
    }
}

$(document).ready(function(){
    if($('.slider').length>0) {

        var width = $('.slider .slide').length * slide_width + 'px';
        $('.slider .body').width(width);

        $('.slider .button_right').click(function(){
             move_slider(true);
        })
        $('.slider .button_left').click(function(){
             move_slider(false);
        })
    }
})

$(document).ready(function(){
    if($.fancybox) {
        $('a.fancybox').fancybox();
        $('a.fancyhelp').fancybox({
                titleShow : false,
                overlayShow : false,
                onStart : function() {
                    $('#fancybox-wrap').addClass('notice');
                },
                onClosed : function() {
                    $('#fancybox-wrap').removeClass('notice');
                }
        });
    }
});

//Fiber :
function change_sell_tab (id)
{
    $('#link_tab_1').removeClass('tab_act');
    $('#link_tab_2').removeClass('tab_act');
    $('#link_tab_3').removeClass('tab_act');
    $('#link_tab_4').removeClass('tab_act');
    $('#tab1').hide();
    $('#tab2').hide();
    $('#tab3').hide();
    $('#tab4').hide();

    $('#tab'+id).show();
    
    $('#link_tab_'+id).addClass('tab_act');
}

$(document).ready(function() {
     if(typeof(product_id)!=='undefined' && typeof(product_id)!=='undefined' && already_rated=="0")
     {   /* STARS */
         $('.active.rating .rating_star').css('cursor','pointer');

         $('.active.rating .rating_star').hover(
              function(){
                 var index = $(this).index();
                 $(this).parent().find('span:lt('+(index+1)+')').addClass('hover1');
                 $(this).parent().find('span:gt('+(index)+')').addClass('hover0');
              },
              function(){
                 $(this).parent().find('.rating_star').removeClass('hover1').removeClass('hover0');
              }
         );

         /* RATING */
         $('.active.rating .rating_star').click(function(){
              var index = $(this).index();
              $(this).parents('form').find('input[name=rating]').val(index+1);
              $(this).parent().find('span:lt('+(index+1)+')').addClass('rated');
              $(this).parent().find('span:gt('+(index)+')').removeClass('rated');
         });

/*        $.ajax({
            type: "POST",
            url: "/ajax/rate",
            data: "rate="+(index+1)+"&id="+product_id,
            success: function(msg){
                   if(msg.substr(0,1)=='1')
                   {
                        $('.rating .rating_star').unbind('mouseenter').unbind('mouseleave').unbind('click').css('cursor','default');
                        showMessage('Ваш голос засчитан', 'ok');
                   }
                   else if (msg=='') {}
                   else showMessage(msg, 'error');
             }
         });
         return false;*/
     }
})