if (base_url==undefined) var base_url = window.location.protocol+'//'+window.location.host+'/';
if (current_lang==undefined) var current_lang = window.location.pathname.split('/')[1];
var feedback_page, validate = {};
validate.url = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;

// simple window
(function(jQuery) {
    jQuery.fn.modalWin = function(options, prm){
        var modalwinKeyPress = function(e){
            var key = (window.event) ? event.keyCode : e.keyCode;
            if (key==27) modalwinClose();
        };
        var modalwinClose = function() {
            if (jQuery.browser.msie) {
                jQuery('select').css('visibility', 'visible');
            }
            jQuery('.modalwin_close').unbind('click', modalwinClose);
            jQuery(window).unbind('resize', modalwinResize);
            jQuery(window).unbind("keypress", modalwinKeyPress);
            jQuery('#modalwin_overlay').fadeOut("fast").remove();
            jQuery('#modalwin_wrapper').remove();
            if (typeof options.onClose == 'function') {
                options.onClose();
            }
        };
        var modalwinResize = function() {
            var ie6 = (jQuery.browser.msie && jQuery.browser.version < 7);
            $window = jQuery(window);
            jQuery('#modalwin_overlay').css({
                position: (ie6) ? "absolute" : "fixed",
                height: $window.height(),
                width: "100%",
                top: (ie6) ? $window.scrollTop() : 0,
                left: 0,
                right: 0,
                bottom: 0
            });
            var $wrap = jQuery('#modalwin_wrapper');
            $wrap.css({
                left: $window.width()/2 - $wrap.width()/2 -12,
                top: $window.height()/2 - $wrap.height()/2 -12
            });
        };
        var calcScrollTop = function(winHeight, dialogHeight){
            if (jQuery.browser.msie) {
                return jQuery(window).scrollTop() + (winHeight/2-dialogHeight/2);
            } else {
                return winHeight/2-dialogHeight/2 -12;
            }
        };
        var show = function(self, options){
            var params = {
                width:0,
                height:0,
                url:'',
                iframe: '',
                content:'',
                method:'',
                showClose: 'standart',
                onRender: null,
                onClose: null,
                header:'',
                cssOverlay: {
                    opacity: 0.5
                },
                cssWin: {},
                cssClose: {},
                action: {
                    url: '',
                    button: '',
                    data: {},
                    success: null,
                    error: null
                }
            };
            var rel = jQuery(self).attr('rel');
            if (options != undefined && typeof options == 'object') {
                params = jQuery.extend( params, options );
            }
            if (rel) {
                params = jQuery.extend( params, eval('('+rel+')') );
            }

            params.method = params.method.toLowerCase();

            params.width = parseInt( params.width );
            params.height = parseInt( params.height );

            var overflow_x = (params.width > 0) ? 'hidden' : 'auto';
            var overflow_y = (params.height > 0) ? 'hidden' : 'auto';

            var maskHeight = jQuery(document).height();
            var maskWidth = jQuery(document).width();

            var winH = jQuery(window).height();
            var winW = jQuery(window).width();

            var $overlay = jQuery('<div id="modalwin_overlay" />').css(jQuery.extend({
                'position': 'absolute',
                'left': 0,
                'top': 0,
                'z-index': 498,
                'background': '#000000',
                'opacity': params.opacity,
                'display': 'none',
                'width': maskWidth,
                'height': maskHeight
            }, params.cssOverlay)).appendTo(jQuery('body'));
            if (jQuery.browser.msie) {
                jQuery('select').css({
                    'visibility': 'hidden',
                    'filter': 'alpha(opacity=50)'
                });
            }
            jQuery(window).resize(modalwinResize);
            jQuery(window).bind("keypress", modalwinKeyPress);
            $overlay.fadeIn("fast");
            $overlay.click(modalwinClose);

            var $window = jQuery('<div id="modalwin_wrapper" class="box"/>').css(jQuery.extend({
                'left': winW/2-params.width/2 -12,
                'display': 'none',
                'z-index': 499,
                'width': params.width,
                'padding': '10px',
                'background': '#ffffff',
                'overflow-x': overflow_x,
                'overflow-y': overflow_y
            }, params.cssWin));
            if ( params.height != 0 ) {
                $window.css({
                    'height': params.height
                });
            } else {
                params.height = 300;
            }
            $window.data('params', params);
            $window.css({
                'top': calcScrollTop(winH, params.height),
                'position': (jQuery.browser.msie) ? 'absolute' : 'fixed'
            });
            jQuery(window).scroll(function() {
                $window.css('top', calcScrollTop(winH, params.height));
            });
            $window.appendTo(jQuery('body'));

            if (params.header) {
                $window.prepend('<h4 id="modalwin_header">' + params.header + '</h4>');
            }

            var render = function(d) {
                $window.html(d);
                renderButtons();
                $window.fadeIn("fast").queue(function(){
                    if (typeof params.onRender == 'function') {
                        params.onRender(this);
                    }
                });
            };
            var renderButtons = function(){
                if (params.action.url) {
                    $window.wrapInner('<form name="modalWin_form" action=""></form>');
                    var btn = jQuery('<button/>').html(params.action.button).click(function(){
                        var form = jQuery('form').serializeArray();
                        for(var i in form){
                            if (form[i]['value']=='') {
                                if (typeof params.action.error == 'function') {
                                    params.action.error();
                                } else if (typeof params.action.error == 'string') {
                                    alert(params.action.error);
                                }
                                return false;
                            }
                        }
                        var info = {}, d = [], j=form.length;
                        if (typeof params.action.data == 'function') {
                            info = params.action.data.call(jQuery(self));
                        } else if (typeof params.action.data != 'object') {
                            info = {};
                        }
                        for(i in info){
                            d[j] = {"name":i, "value": info[i]};
                            j++;
                        }

                        var p = jQuery.extend(form, d);
                        jQuery.post(params.action.url, p, function(){
                            modalwinClose();
                            if (typeof params.action.success == 'function') {
                                params.action.success();
                            } else if (typeof params.action.success == 'string') {
                                alert(params.action.success);
                            }
                        });
                        return false;
                    });
                    $window.append( jQuery('<div style="padding-top:14px;text-align:center;"/>').html(btn) );
                }

                if (typeof params.showClose == 'function') {
                    $window.prepend(params.showClose());
                    return;
                } else if (params.showClose == false) {
                    return;
                } else if (params.showClose == 'standart') {
                    var close_html = '<div class="close">x</div>';
                    var close_width = '22px';
                } else {
                    var close_html = params.showClose;
                    var close_width = '';
                }

                var $close = jQuery(close_html).css(jQuery.extend({
                    'float': 'right',
                    'border': 'none',
                    'cursor': 'pointer',
                    'font-weight': 'bold',
                    'position': 'relative',
                    'width': close_width,
                    'right': 0,
                    'text-align': 'center',
                    'top': 0,
                    'background-color':'#eeeeee',
                    '-moz-border-radius': '6px',
                    '-webkit-border-radius': '6px',
                    '-khtml-border-radius': '6px',
                    'border-radius': '6px'
                }, params.cssClose)).click( function() {
                    modalwinClose();
                });
                if (jQuery('body').attr('dir') == 'rtl') {
                    $close.css('float', 'left');
                }
                $window.prepend($close);
            };

            if (params.src) {
                if (/get|post/.test(params.method)) {
                    jQuery.ajax( {
                        url: params.src,
                        type: params.method,
                        dataType: "html",
                        success: render
                    } );
                } else if (params.method == 'iframe') {
                    $header = $window.find('#modalwin_header');
                    var iframe_height = ($header.length) ? params.height - $header.height() : params.height;
                    render('<iframe frameborder="0" src="'+params.src+'" width="'+params.width+'" height="'+iframe_height+'"></iframe>');
                } else if (params.method == 'element' || params.src.substr(0,1) == '#') {
                    if (params.method == 'element' && params.src.substr(0,1) != '#') {
                        params.src = '#'+params.src;
                    }
                    render(jQuery(params.src).clone().show().html());
                } else {
                    render(params.src);
                }
            }

            jQuery('.modalwin_close').bind('click', modalwinClose);
        };

        if (options == 'close') {
            modalwinClose();
            return;
        }

        if (typeof options == 'string' && options.substr(0,2).toLowerCase() == 'on') {
            var params = jQuery('#modalwin_wrapper').data('params');
            if (typeof params[options] == 'function') {
                params[options]( prm );
            }
            return;
        }

        if (jQuery('#modalwin_wrapper').length) {
            return;
        }

        var rel = jQuery(this).attr('rel');
        if (typeof options == 'object' && options.autoOpen === true) {
            show(this, options);
        } else if (rel != ''){
            options = jQuery.extend( options, eval('('+rel+')') );
        }
        if (typeof options == 'object') {
            jQuery(this).live('click', function(e) {
                e.preventDefault();
                show(this, options);
            });
        }
    };
})(jQuery);
jQuery.modalWin = function(options, prm){
	if (typeof options == 'object') {
		jQuery.extend( options, {autoOpen: true} );
	}
	jQuery().modalWin(options, prm);
};


(function(jQuery) {
	jQuery.fn.feedback = function (options) {
		this.config = {
            css: {
                'position':'absolute',
                'float':'left',
                'display':'none',
                'zIndex':'999'
            },
           'animate':false,
           'css3Safe':false,
           'float':'left'
        };
		jQuery.extend(this.config, options);
		this.config.css.float = this.config.float;

		this.window = jQuery(window);
		var self = this;

		if (this.config.css3Safe) {
			this.badgeHeight = this.height();
			this.windowHeight = self.window.height();
			this.topDistance = ~~(+ (this.windowHeight - this.badgeHeight) / 2);
			this.config.css.position = 'absolute';

			if (typeof(this.config.css.marginTop) == 'undefined') {
				this.config.css.marginTop = this.getTopMiddleDistance(true);
			}

			if (this.config.animate) {
				self.window.scroll(function () {
					self.stop().animate({'margin-top': self.getTopMiddleDistance(true)}, 1000);
				});
			} else {
				self.window.scroll(function () {
					self.css('margin-top', self.getTopMiddleDistance(true));
				});
			}

			self.window.resize(function () {
				self.badgeHeight = self.height();
				self.windowHeight = self.window.height();
				self.topDistance = ~~(+ (self.windowHeight - self.badgeHeight) / 2);
				self.css('margin-top', self.getTopMiddleDistance(true));
			});
		} else {
			this.config.css.position = 'fixed';
			if (typeof(this.config.css.top) == 'undefined') {
				this.config.css.top = this.getTopMiddleDistance();
			}
		}

		if (typeof(this.config.onClick) == 'function') {
			jQuery(this).bind('click', this.config.onClick);
		}

		jQuery(this).css(this.config.css).prependTo('body').show();

		return this;
	},

	jQuery.fn.getTopMiddleDistance = function (inPixels) {
		if (inPixels) {
			return (this.topDistance + this.window.scrollTop() + 'px');
		} else {
			var badgeHeightPerc = jQuery(this).height() * 100 / this.window.height();
			return ~~(+ (100 - badgeHeightPerc) / 2) + '%';
		}
	}
})(jQuery);

(function($){

    var keyString = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";

    var uTF8Encode = function(string) {
        string = string.replace(/\x0d\x0a/g, "\x0a");
        var output = "";
        for (var n = 0; n < string.length; n++) {
            var c = string.charCodeAt(n);
            if (c < 128) {
                output += String.fromCharCode(c);
            } else if ((c > 127) && (c < 2048)) {
                output += String.fromCharCode((c >> 6) | 192);
                output += String.fromCharCode((c & 63) | 128);
            } else {
                output += String.fromCharCode((c >> 12) | 224);
                output += String.fromCharCode(((c >> 6) & 63) | 128);
                output += String.fromCharCode((c & 63) | 128);
            }
        }
        return output;
    };

    var uTF8Decode = function(input) {
        var string = "";
        var i = 0;
        var c = c1 = c2 = 0;
        while ( i < input.length ) {
            c = input.charCodeAt(i);
            if (c < 128) {
                string += String.fromCharCode(c);
                i++;
            } else if ((c > 191) && (c < 224)) {
                c2 = input.charCodeAt(i+1);
                string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
                i += 2;
            } else {
                c2 = input.charCodeAt(i+1);
                c3 = input.charCodeAt(i+2);
                string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
                i += 3;
            }
        }
        return string;
    };

    $.extend({
        base64Encode: function(input) {
            var output = "";
            var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
            var i = 0;
            input = uTF8Encode(input);
            while (i < input.length) {
                chr1 = input.charCodeAt(i++);
                chr2 = input.charCodeAt(i++);
                chr3 = input.charCodeAt(i++);
                enc1 = chr1 >> 2;
                enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
                enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
                enc4 = chr3 & 63;
                if (isNaN(chr2)) {
                    enc3 = enc4 = 64;
                } else if (isNaN(chr3)) {
                    enc4 = 64;
                }
                output = output + keyString.charAt(enc1) + keyString.charAt(enc2) + keyString.charAt(enc3) + keyString.charAt(enc4);
            }
            return output;
        },
        base64Decode: function(input) {
            var output = "";
            var chr1, chr2, chr3;
            var enc1, enc2, enc3, enc4;
            var i = 0;
            input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
            while (i < input.length) {
                enc1 = keyString.indexOf(input.charAt(i++));
                enc2 = keyString.indexOf(input.charAt(i++));
                enc3 = keyString.indexOf(input.charAt(i++));
                enc4 = keyString.indexOf(input.charAt(i++));
                chr1 = (enc1 << 2) | (enc2 >> 4);
                chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
                chr3 = ((enc3 & 3) << 6) | enc4;
                output = output + String.fromCharCode(chr1);
                if (enc3 != 64) {
                    output = output + String.fromCharCode(chr2);
                }
                if (enc4 != 64) {
                    output = output + String.fromCharCode(chr3);
                }
            }
            output = uTF8Decode(output);
            return output;
        }
    });
})(jQuery);


function feedbackSend(ok, err){
    jQuery.post( base_url+current_lang+'/feedback/send', {
        feedback_user_id: jQuery('#feedback_user_id').val(),
        feedback_name: jQuery('#feedback_name').val(),
        feedback_email: jQuery('#feedback_email').val(),
        feedback_text: jQuery('#feedback_text').val(),
        feedback_url: window.location.href,
        feedback_page: feedback_page
    }, function(d){
        if (d == '1') {
            alert(ok);
            jQuery('#feedback_text').val('');
            jQuery.modalWin('close');
        } else {
            alert(err);
            jQuery.modalWin('close');
        }
    } );
    delete feedback_page;
}


jQuery(function(){
    
	if (jQuery.browser.msie && (jQuery.browser.version[0] == 6 || jQuery.browser.version[0] == 7)) {
		jQuery('.browserOldIE').show();
	}
	
    // main menu
    var aa = 0, $a = jQuery('.mainmenu ul li a'), $ul = jQuery('.mainmenu ul'), $li = jQuery('.mainmenu ul li');
    $a.each(function(){aa += jQuery(this).width();}); var pp = ($ul.width()-aa-3)/$a.length/2; $li.css({'padding-left':pp+'px','padding-right':pp+'px'});
    $ul.lavaLamp({autoSize:true,target:'li',startItem: 0, speed: 400,fx: "easeOutBack"});
    jQuery('.mainmenu ul li').css('visibility','visible');
    //jQuery('#mycarousel').jcarousel({scroll: 1});
    
    // welcome sliders
    if (jQuery('#slider li').length > 1) {
        jQuery('#slider').s3Slider({
            timeOut: 4000
        });
    }
    if (jQuery('#sliderStudents li').length > 1) {
        jQuery('#sliderStudents').s3Slider({
            timeOut: 9500
        });
    }
    if (jQuery('#sliderTeachers li').length > 1) {
        jQuery('#sliderTeachers').s3Slider({
            timeOut: 8000
        });
    }
    
    // get more info
    jQuery('#send_request button').click(function(){
        var ecss = {'border': '1px solid red'};
        var vcss = {'border': '1px solid #ffffff'};
        var un = jQuery('#send_request input[name=username]');
        if (un.val() == '') {
            un.css(ecss);
            alert(sidebar_get_more_info['username']);
            return false;
        } else {
            un.css(vcss);
        }
        var pp = jQuery('#send_request input[name=phone_prefix]');
        if (pp.val() == '') {
            pp.css(ecss);
            alert(sidebar_get_more_info['phone_prefix']);
            return false;
        } else {
            pp.css(vcss);
        }
        var pn = jQuery('#send_request input[name=phone_number]');
        if (pn.val() == '') {
            pn.css(ecss);
            alert(sidebar_get_more_info['phone_number']);
            return false;
        } else {
            pn.css(vcss);
        }
        var sj = jQuery('#send_request select[name=subject], #send_request input[name=subject]');
        if (sj.val() == '') {
            sj.css(ecss);
            alert(sidebar_get_more_info['subject']);
            return false;
        } else {
            sj.css(vcss);
        }
        if (!jQuery('#send_request input[name=ruls]').is(':checked')) {
            alert(sidebar_get_more_info['ruls']);
            return false;
        }
        
        jQuery.post(base_url+current_lang+'/sys/send/', {
            'title': 'from iok_site',
            'page': document.title,
            'url': window.location.href,
            'username': un.val(),
            'phone': pp.val()+'-'+pn.val(),
            'subject': sj.val()
        });
        un.val('');
        pp.val('');
        pn.val('');
        sj.val('');
        document.location.href=base_url+current_lang+'/services/thanks.html';
        alert(sidebar_get_more_info['sent']);
    });

    jQuery('#feedback-badge').feedback({
        css3Safe: jQuery.browser.safari ? true : false,
        css: {
            background: 'url(/assets/shared/images/feedback_'+current_lang+'.png) no-repeat',
            width: 22,
            height: 160,
            cursor: 'pointer',
            top: '40%'
        },
        onClick: function () {
            feedback_page = jQuery.base64Encode(jQuery('html').html());
            jQuery.modalWin({
                src: base_url+current_lang+'/sys/feedbackForm/',
                method: 'get',
                width: 450,
                top: 40,
                cssOverlay: {
                    opacity: 0.5
                }
            });
        }
    });
});

function bookOrder(error, success, send) {
    jQuery('.bookOrder').modalWin({
        width: 300,
        src: base_url+current_lang+'/feedback/bookOrder',
        method: 'post',
        action: {
            url: base_url+current_lang+'/sys/send',
            data: function(){
                return {
                    title: 'iok Books',
                    book: jQuery(this).attr('title')
                }
            },
            button: send,
            error: error,
            success: success
        }
    });
}
