$(document).ready(function ()
{
    var flv_add_form = $('#flv-add-form');
    if (flv_add_form.length > 0 ) {
        flv_add_form.find('#type1').click(function(){
           flv_add_form.find('.code').show();   
           flv_add_form.find('.file').hide();   
        });
         flv_add_form.find('#type2').click(function(){
           flv_add_form.find('.code').hide();   
           flv_add_form.find('.file').show();   
        });
    }
    
    //enter form
    $('#enterpass, #entername, #puzer, #xuzer').bind('keypress', 
        function(e) {
            if(e.which == 13)
                entering();
        }
    );
    
    if ($('.reply_consultation').length > 0) {
        $('.reply_consultation').click(function(){
            var rel = $(this).attr("rel");
            $('.reply_consultation').show();
            $(this).hide();
            if ( $('#reply_text').length > 0 ) $('#reply_text').remove();
            $('#'+rel).after('<div id="reply_text"><h4>Ответ</h4><textarea></textarea><br /><button class="submiter" onclick="send_reply_consultation(\''+rel+'\')">Ответить</button></div>');
            return false;
        });
    }
    
    //panel rating buts
    $('div.panel-rating img').hover(
        function() {
             $(this).attr('src', $(this).attr('src').replace('images/', 'images/i'));
        },function() {
            $(this).attr('src', $(this).attr('src').replace('images/i', 'images/'));
        }
    );
    
    if ($('.list_city_title').length > 0) {
        $('.list_city_title').click(function(){
            $(this).closest('td').find('div.list_city').slideToggle();
        });
    }
    
    //get automatically article comments
    if($('#getPageComments').length > 0) {
        show_comments($('#getCommentsType').attr('value'), $('#getPageComments').attr('value'), false)    
    }
    //get login form
    $('#enterlink, #tutor_message_link, #reg_rools_link').overlay({expose: '#000'});
    //drop-down-menu
    $('#nav').droppy();
    //dictionary tooltip
    xOffset = -10;
    yOffset = 0;
    $("a.preview, .tooltip, a.lesson-payment-tooltip").hover(function(e){
        this.t = this.title;
        this.title = "";    
		
		if(this.className == 'preview') {
			var c = (this.t != "") ? "<br/>" + this.t : "";
            var txt = ''; 
		}
		else {
			txt = this.t;
		}
        
        
        var div = $(this).closest('div');
        div.find('.preview').each(function(){
            txt += "<img src='"+ $(this).attr('href') +"' alt='Image preview' />";
                    
        });

        $("body").append("<p id='preview'" + ( (this.className == 'tooltip') ? " class='preview-pay'" : '' ) + ">"+ txt +"</p>");                                 
        $("#preview")
            .css("top",(e.pageY - xOffset) + "px")
            .css("left",(e.pageX + yOffset) + "px")
            .fadeIn("fast");                        
    },
    function(){
        this.title = this.t;    
        $("#preview").remove();
    });    
    $("a.preview").mousemove(function(e){
        $("#preview")
            .css("top",(e.pageY - xOffset) + "px")
            .css("left",(e.pageX + yOffset) + "px");
    });
    //lessons
    $('#lessons-desc').find('a[name=player]').each(
        function(num) {
            $(this).addClass('player-link');
            var file = $(this).attr('href');
            $(this).before('<img src="/images/player.jpg" alt="Прослушать" title="Прослушать" align="top" id="image'+num+'" onclick="listen(\'image'+num+'\', \''+file+'\', \'player_global\')" /> ');
            $(this).click(
                function() {
                    listen('image'+num, file, 'player-main');
                    return false;
                }
            );
        }
    );
    //dictionary
    if($('#flashcontent').length > 0) {
        $('#flashcontent').flash({
            swf: "/includes/swf/hdt.swf",
            width: 151,
            height: 180,
            hasVersion: "9.0.28",
            expressInstaller: "/swf/expressInstall.swf",
            flashvars: flashvars,
            params: params
        });
    }
    //conversations
    if($('#convs-add-form').length > 0) {
        $('#convs-add-form').validate({
            messages: {
                category: 'Категория не выбрана',
                title: 'Заполните поле',
                'part_name[]': '',
                'part_transc[]': '',
                'part_transl[]': ''
            },
            errorClass: 'invalidInput'
        });
    }
    // theme.php
    $('#theme-add-selected span').hover(
        function() {
            $(this).addClass('active');    
        }, function() {
            $(this).removeClass('active');
        }
    ).click(
        function() {
            $(this).remove();    
        }
    );
    
    if($('#addImageInputDivKurs').length > 0) {
       
        $('#addImageInputDivKurs a').click(
        function() {
           var div = $(this).closest('div');
           newdiv = div.clone();
           newdiv.find('a').remove();
           newdiv.find('br').remove();
           newdiv.find(':file').remove('');
           newdiv.append('<input type="file" name="photo[]" />')
           newdiv.append('<a href="#" class="del">Удалить</a><br />');
               newdiv.find('.del').click(function(){
                   $(this).closest('div').remove();
                   return false;
               });
           $('#addImageInputDivKurs').append(newdiv);
        return false;
        });
    } 
    
    if ($('#set_rate_china_system').length > 0) {
      initRateChina();
    }
    if ($('#set_rate_russia_system').length > 0) {
      initRateRussia();
    }
    
    
    // add to theme
    var word = 0;
    $('div[id^=themebut] img, div[id^=themebut] span. img').click(
        function(e) {
            var id = $(this).parent('div').attr('id').substring(8);
            var flag = $(this).attr('class');
            var layer = $('#layer');
            if(word == id) {
                layer.fadeOut('fast');
                word = 0;
            }
            else {
                word = id;
                switch(flag) {
                    case '1':
                        if(confirm('Фунция доступна только после регистрации, Вы хотите зарегистрироваться сейчас?'))
                            document.location.href = '/registration';
                        break;
                    case '0':
                        if(layer.length > 0) {
                            xOffset = -10;
                            yOffset = 0;
                            layer.css("top",(e.pageY - xOffset) + "px")
                                 .css("left",(e.pageX + yOffset) + "px")
                                 .fadeIn('fast');
                        }
                        else {
                            if(confirm('У вас нет ни одного созданного словаря, Вы хотите создать его сейчас?'))
                                document.location.href = '/theme/user/add';
                        }
                        break;
                }
            }
        }
    );
    $('#layer li a').click(
        function() {
            var theme_id = $(this).attr('href');
            addThemeWord(theme_id, word);
            word = 0;
            $(this).parent('li').parent('ul').fadeOut('fast');
            return false;
        }
    );
    
    // Обучение в Китае – вопросы и ответы
    if ( $('.faq_china_item_href').length > 0 ) {
        
        
        $('.faq_china_item_href').each(function(){
            $(this).click(function(){
                $('.faq_china_item_href').css('font-weight', 'normal');
                $(this).css('font-weight', 'bold');
                $('.items').hide();
                var rel = $(this).attr('rel');
                var elem = $('.item_'+rel);
                if (elem) {
                    elem.show();
                }
                var ch = 1;
                // Простановка нумерации
                $('.item_'+rel).each(function(){
                    $(this).find('.number').html(ch+'. ');
                    ch++;    
                });
                
            return false;
            });
                
        });
    }
    
});

//heiroglyps.php
function get_hieroglyps(letter, lesson)
{
    $('#hiero-items').hide();
    var obj = $('#hiero-letters > a[title='+letter+']');
    if(!obj.hasClass('active'))
    {
        $('#hiero-letters > a.active').removeClass('active').removeClass('loader');
        obj.addClass('active').addClass('loader');
        $('#hiero-loader:hidden').show();
        $('#hiero-play img').remove();

        $.ajax({
            type: 'POST',
            url: '/ajax/get_hieroglyphs.php',
            data: "letter="+letter+'&lesson='+lesson,
            success: function(result){
                switch(result) {
                    case 'err':
                        alert('У нас тут ошибка..');
                        break;
                    default:
                        $('#hiero-letters > a.loader').removeClass('loader');
                        $('#hiero-items').show().find('div').html(result);
                        break;
                }
            }
        });    
    }
    return false;
}
function get_hiero_image(id, obj, img)
{
    if(!img)
        alert('У данного иероглифа нет рисования');
    else {
        $('#hiero-loader:visible').hide();
        $('#hiero-items > div > a.active').removeClass('active').removeClass('loader');
        $(obj).addClass('active');
        var txt = '';
        img = explode(',',img);
        var c = img.length
        for(var i=0; i<c; i++) {
            txt += '<img src="/content/hieroglyphs/'+id+'/'+img[i]+'" alt="" title="" />';
        }
        $('#hiero-play').html(txt);
    }
    return false;
}
function explode( delimiter, string ) {    
    var emptyArray = { 0: '' };
    if ( arguments.length != 2
        || typeof arguments[0] == 'undefined'
        || typeof arguments[1] == 'undefined' )
    {
        return null;
    }

    if ( delimiter === ''
        || delimiter === false
        || delimiter === null )
    {
        return false;
    }
    if ( typeof delimiter == 'function'
        || typeof delimiter == 'object'
        || typeof string == 'function'
        || typeof string == 'object' )
    {
        return emptyArray;
    }
    if ( delimiter === true ) {
        delimiter = '1';
    }
    return string.toString().split ( delimiter.toString() );
}

//test.php
function test_finish()
{
    var arr = new Array();
    var no_apply = 0; // неотвеченные тесты
    var all_num = $('ul.test-varients').length;
    $('ul.test-varients').each(
        function(i) {
            var l = $(this).find('input:checked').length;    
            if(l == 0)
            {
                arr[arr.length] = i+1;
                no_apply ++;
            }
        }
    );
    if(all_num == no_apply)
        alert('Вы не ответили ни на один вопрос теста!');
    else
        if(no_apply > 0)
        {
            switch(no_apply)
            {
                case 1: case 11: case 21: case 31: q_text = 'вопрос'; break;
                case 2: case 4: case 22: case 23: case 24: q_text = 'вопроса'; break;
                default: q_text = 'вопросов'; break;
            }
            if(confirm('Вы не ответили на '+no_apply+' '+q_text+' теста, закончить?\nНеотвеченные вопросы: '+arr))
            {
                if($('#for-test').length > 0)
                    send_test();
                else
                    $('form[name=test-form]').submit();
                return false;
            }
        }
        else
        {    
            if($('#for-test').length > 0)
                send_test();
            else
                $('form[name=test-form]').submit();
            return false;
        }
    return false;
}

function send_test()
{
    var send = '';
    $('input[name^=quest]:checked').each(
        function() {
            send += '&'+$(this).attr('name')+'='+$(this).attr('value');
        }
    );
    var id = $('input[name=lessonID]').val();
    
    var type = $('input[name=test_type]').val();
    switch(type) {
        case 'listening':
            url = '/ajax/get_listening_test_result.php';
            break;
        default:
            url = '/ajax/get_lesson_test_result.php';
            break;
    }
    
    $.ajax({
        type: 'POST',
        url: url,
        data: "id="+id+send,
        success: function(result){
            switch(result) {
                case 'err':
                    alert('У нас тут ошибка..');
                    break;
                default:
                    $('#for-test').html(result);
                    break;
            }
        }
    });        
}

function test_stop() {
    if(confirm('Вы хотите остановить время. В этом случае результат теста не будет записан в вашем профиле". Вы уверены?')) {
        $('#timehere').stopTime();
        $('#stoptime').remove();
    }
    return false;    
}

//study.php
function get_study_text()
{
    if($('#study-fulltext-but > div > a').is(":contains('Подробнее')"))
        $('#study-fulltext-but > div > a').text('Свернуть');
    else
        $('#study-fulltext-but > div > a').text('Подробнее о проекте');
    $('#study-fulltext').slideToggle();
    return false;    
}
function showstudy(num)
{
    $('li.but-active').removeClass('but-active');
    $('li.but-corner-active').removeClass('but-corner-active');
    
    $('#study'+num).addClass('but-active');
    $('#corner'+num).addClass('but-corner-active');
    $('#study-cats-ch').html($('#cat'+num).html());
    return false;
}
function show_lesson(id)
{
    $('div.lesson').find('div[id^=lesson]:visible').each(
        function() {
            if($(this).attr('id') != 'lesson'+id)
                $(this).hide();
        }
    );
    $('#lesson'+id).toggle();
    return false;
}
function show_lesson_params(name, id, num)
{
    //get comments
    if(name == 'comments')
    {
        type = 'lessons';
        $('#comments'+id).html('<img src="/images/ajax-loader.gif" align="left" class="ajax-loader" /> что-то происходит...');
        $.ajax({
            type: 'POST',
            url: '/ajax/get_comments.php',
            data: "type="+type+"&id="+id,
            success: function(result){
                $('#comments'+id).empty();
                switch(result) {
                    case 'err':
                        alert('У нас тут ошибка..');
                        break;
                    default:
                        $('#comments'+id).html(result);
                        break;
                }
            }
        });    
    }
    
    $('#lesson'+id+' li.but-active').removeClass('but-active');
    $('#lesson'+id+' li.but-corner-active').removeClass('but-corner-active');    
    $('#'+id+'corner'+num).addClass('but-corner-active');
    $('#lesson'+id+' > ul.lesson-buts > li').find('a').eq(num).parent('li').addClass('but-active');
    
    name = 'lesson-'+name;
    var params = $('#lesson'+id+' > div.lesson-params');
    params.find('div.lesson-info:visible, div.lesson-themes:visible, div.lesson-tags:visible, div.lesson-comments:visible').hide();
    params.find('div.'+name).show();
    return false;
}

/* lessons.php */
function get_test(id)
{
    $('#for-test').html('<img src="/images/ajax-loader.gif" align="left" class="ajax-loader" /> что-то происходит...');
    $.ajax({
        type: 'POST',
        url: '/ajax/get_lesson_test.php',
        data: "id="+id,
        success: function(result){
            switch(result) {
                case 'err':
                    alert('У нас тут ошибка..');
                    break;
                default:
                    $('#get-test-but').hide();
                    $('#for-test').html($(result));
                    $("#tests-slider").codaSlider();
                    //if (jQuery.browser.msie)
                        //$('.nav-pages li a').click(function() {$('.stripNavR a').click()});
                    break;
            }
        }
    });    
}

pl_config = {
	controls: {
		backgroundColor: '#000', 

		mute: false, 
		fullscreen: false, 
		height: 30,
		backgroundGradient: "none",
		progressColor: '#555555',
		sliderColor: '#555555',
		sliderBorder: '1.5px solid rgba(160,160,160,0.7)',
		volumeSliderColor: '#555555',
		volumeBorder: '1.5px solid rgba(160,160,160,0.7)'
	}
};

function listen(id, file, player)
{
	player = 'player_global';
    var img = $('#'+id);
    $('div.lesson-files-img').find('img').each(
        function() {
            if($(this).attr('id') != id)
                $(this).attr('src', '/images/player.jpg');
        }
    );
    $('#lessons-desc').find('img[id^=image]').each(
        function() {
            if($(this).attr('id') != id) {
                $(this).attr('src', '/images/player.jpg');
            }
        }
    );
    if(img.attr('src') == '/images/player.jpg') {
		if ($('#' + player).is(':hidden')) {
			$('#' + player).show();
		}
		$('div.player-close').show();
		img.attr('src', '/images/stop.jpg');
        var defaults = flow_config.audio.defaults;
        defaults.url = file;
        $f(player, "/includes/flowplayer/flowplayer-3.1.5.swf", { 
            clip: defaults,
			plugins: pl_config
        }).play();
        //$f().play();
    }
    else {
		//$('#' + player).hide();
        img.attr('src', '/images/player.jpg');
        $f().stop();
    }
}

function player_close() {
	$f().stop();
	$('#player_global, div.player-close').hide();	
}

//view comments at showing something
function view_comments(type, id)
{
    $('#comments').html('<img src="/images/ajax-loader.gif" align="left" class="ajax-loader" /> что-то происходит...');
    $.ajax({
        type: 'POST',
        url: '/ajax/view_comments.php',
        data: "type="+type+"&id="+id,
        success: function(result){
            $('#comments').empty();
            switch(result) {
                case 'err':
                    alert('У нас тут ошибка..');
                    break;
                default:
                    $('#comments').html(result);
                    break;
            }
        }
    });
}
//show hide function 
function showhide(obj)
{   
    if ( $('.reply_consultation').length > 0 ) $('.reply_consultation').show(); 
    if ( $('#reply_text').length > 0 ) $('#reply_text').remove(); 
    $('#'+obj).toggle();    
    return false;
}
//login error function 
function login_err()
{
    alert('Функция доступна только зарегистрированным пользователям'); 
    return false;    
}

/* anecdote.php */
function anecdote_add_words()
{
    var count = $('#words-here input:text').length;
    $('#words-here').append('<div><input type="text" name="words['+count+']" /></div>');
    return false;    
}

/* Adding Comment */
var comment_flag = false; // проверка на необходимость повторной загрузки уже загруженного содержимого
function show_add_comment(type, id)
{
    if(comment_flag != 'comment')
    {
        $('#comments').html('<img src="/images/ajax-loader.gif" align="left" class="ajax-loader" /> что-то происходит...');
        $.ajax({
            type: 'POST',
            url: '/ajax/show_add_comment.php',
            data: "type="+type+"&id="+id,
            success: function(result){
                $('#comments').empty();
                switch(result) {
                    case 'err':
                        alert('У нас тут ошибка..');
                        break;
                    case 'login_err':
                        alert('Вам необходимо авторизоваться');
                        break;
                    default:
                        $('#comments').html(result);
                        $('#addcomment').focus();
                        break;
                }
            }
        });
    }
    comment_flag = 'comment';
    return false;
}
function add_comment(type, id)
{
    var message = $('#addcomment').attr('value');
    if(message != undefined && message != '')
    {
        $('#submiter').attr('disabled', 'disabled');
        $('#add_comment-text').append('<img src="/images/ajax-loader.gif" align="top" class="ajax-loader" />');
        $.ajax({
            type: 'POST',
            url: '/ajax/add_comment.php',
            data: "type="+type+"&id="+id+"&comment="+message,
            success: function(result){
                switch(result) {
                    case 'login_err':
                        alert('Вам необходимо авторизоваться');
                        break;
                    case 'time_err':
                        alert('Комментарий можно добавлять раз в 5 минут');
                        break;
                    case 'exist_err':
                        alert('Одинаковые комменарии нет смысла добавлять');
                        break;
                    case 'success':
                        comment_flag = 'comment';
                        show_comments(type, id, true);
                        var obj = $('div.comments-panel-count > a > span, .panel-comments > span, .comments-title > span');
                        obj.text(obj.text()-0+1);
                        break;
                    default:
                        alert('У нас тут ошибка..');
                        break;
                }
                $('#submiter').removeAttr('disabled');
                $('#add_comment-text img').remove();
            }
        });
    }
    else
        alert('Поле комментария не содержит текста');
}
//отображение комментариев
function show_comments(type, id, focusflag)
{
    if(comment_flag != 'comments')
    {
        $('#comments').html('<img src="/images/ajax-loader.gif" align="left" class="ajax-loader" /> что-то происходит...');
        $.ajax({
            type: 'POST',
            url: '/ajax/get_comments.php',
            data: "type="+type+"&id="+id,
            success: function(result){
                $('#comments').empty();
                switch(result) {
                    case 'err':
                        alert('У нас тут ошибка..');
                        break;
                    default:
                        $('#comments').html(result);
                        if(focusflag)
                            $('#addcomment').focus();
                        break;
                }
            }
        });
    }
    comment_flag = 'comments';
    return false;
}
//установка фокуса на необходимый элемент
function setFocus(obj)
{
    $('#'+obj).focus();
    return false;
}

//ajaxlogin
function ajaxlogin()
{
    if($('input[name=entername]').attr('value') != '' && $('input[name=enterpass]').attr('value') != '')
    {
        $.ajax({
            type: 'POST',
            url: '/ajax/ajaxlogin.php',
            data: "type=enter&login="+$('input[name=entername]').attr('value')+'&pass='+$('input[name=enterpass]').attr('value'),
            success: function(result){
                switch(result)
                {
                    case 'blocked':
                        alert('Пользователь заблокирован!');
                        break;
                    case 'notreg':
                        alert('Регистрация не подтверждена');
                        break;
                    case 'errpass':
                        alert('Пароль не верный');
                        break;
                    case 'ok':
                        tb_remove();
                        $('#basketAdd').submit();
                        break;
                    case 'notfind':
                        alert('Пользователь не найден');
                        break;
                    default:
                    alert(result);
                        alert('Server Error');
                        break;
                }
            }
        });
    }
}
function forgetpass()
{
    if($('input[name=entername]').attr('value') != '')    
    {
        $.ajax({
            type: 'POST',
            url: '/ajax/ajaxlogin.php',
            data: "type=forgetpass&login="+$('input[name=entername]').attr('value'),
            success: function(result){
                switch(result)
                {
                    case 'blocked':
                        alert('Пользователь заблокирован!');
                        break;
                    case 'notreg':
                        alert('Регистрация не подтверждена');
                        break;
                    case 'ok':
                        document.location.href = '/registration/forgetpass';
                        break;
                    case 'notfind':
                        alert('Пользователь не найден');
                        break;
                    default:
                        alert('В данный момент восстановить пароль не получится по техническим причинам');
                        break;
                }
            }
        });
    }
    else
        alert('Введите логин');
}
function entering()
{
	var user = $('input[name=xuzer]').val();
	var pass = $('input[name=puzer]').val();
    if(user != '' && pass != '')
    {
		var data = "type=enter&login="+user+'&pass='+pass;
        $.ajax({
            type: 'POST',
            url: '/ajax/ajaxlogin.php',
            data: data,
            success: function(result){
                switch(result)
                {
                    case 'blocked':
                        alert('Пользователь заблокирован!');
                        break;
                    case 'notreg':
                        alert('Регистрация не подтверждена');
                        break;
                    case 'errpass':
                        alert('Пароль не верный');
                        break;
                    case 'ok':
                        if($('input[name=userexit]').length > 0)
                            document.location.href='/user';
                        else
                            document.location.reload();
                        break;
                    case 'notfind':
                        alert('Пользователь не найден');
                        break;
                    default:
                        alert('Server Error');
                        break;
                }
                return false;
            }
        });
    }
    return false;
}

//some site functions
function send_order() {
    $('#s_order').slideUp('normal', 
        function() {
            var str = "name="+$('#s_name').attr('value')+'&mail='+$('#s_mail').attr('value')+'&message='+$('#s_message').attr('value');
            $('#s_order').html('<div align="center"><img src="/images/lightbox-ico-loading.gif" alt="Загрузка" /><div>Обработка данных</div></div>').slideDown();
            $.ajax({
            type: 'POST',
            url: '/modules/send_order.php',
            data: str,
            success: function(result){
                    switch(result)
                    {
                        case 'ok':
                            $('#s_order').html('<strong>Ваше письмо успешно отправлено, спасибо, что написали нам!</strong>');
                            break;
                        default:
                            $('#s_order').html('<strong>В данный момент ваше письмо не может быть отправлено по техническим причинам, пожалуйста попробуйте повторить попытку позже!</strong>');
                            break;
                    }
                    return false;
                }
            });
        }
    );            
    return false;
}

//jquery timer
jQuery.fn.extend({
    everyTime: function(interval, label, fn, times, belay) {
        return this.each(function() {
            jQuery.timer.add(this, interval, label, fn, times, belay);
        });
    },
    oneTime: function(interval, label, fn) {
        return this.each(function() {
            jQuery.timer.add(this, interval, label, fn, 1);
        });
    },
    stopTime: function(label, fn) {
        return this.each(function() {
            jQuery.timer.remove(this, label, fn);
        });
    }
});

jQuery.extend({
    timer: {
        guid: 1,
        global: {},
        regex: /^([0-9]+)\s*(.*s)?$/,
        powers: {
            // Yeah this is major overkill...
            'ms': 1,
            'cs': 10,
            'ds': 100,
            's': 1000,
            'das': 10000,
            'hs': 100000,
            'ks': 1000000
        },
        timeParse: function(value) {
            if (value == undefined || value == null)
                return null;
            var result = this.regex.exec(jQuery.trim(value.toString()));
            if (result[2]) {
                var num = parseInt(result[1], 10);
                var mult = this.powers[result[2]] || 1;
                return num * mult;
            } else {
                return value;
            }
        },
        add: function(element, interval, label, fn, times, belay) {
            var counter = 0;
            
            if (jQuery.isFunction(label)) {
                if (!times) 
                    times = fn;
                fn = label;
                label = interval;
            }
            
            interval = jQuery.timer.timeParse(interval);

            if (typeof interval != 'number' || isNaN(interval) || interval <= 0)
                return;

            if (times && times.constructor != Number) {
                belay = !!times;
                times = 0;
            }
            
            times = times || 0;
            belay = belay || false;
            
            if (!element.$timers) 
                element.$timers = {};
            
            if (!element.$timers[label])
                element.$timers[label] = {};
            
            fn.$timerID = fn.$timerID || this.guid++;
            
            var handler = function() {
                if (belay && this.inProgress) 
                    return;
                this.inProgress = true;
                if ((++counter > times && times !== 0) || fn.call(element, counter) === false)
                    jQuery.timer.remove(element, label, fn);
                this.inProgress = false;
            };
            
            handler.$timerID = fn.$timerID;
            
            if (!element.$timers[label][fn.$timerID]) 
                element.$timers[label][fn.$timerID] = window.setInterval(handler,interval);
            
            if ( !this.global[label] )
                this.global[label] = [];
            this.global[label].push( element );
            
        },
        remove: function(element, label, fn) {
            var timers = element.$timers, ret;
            
            if ( timers ) {
                
                if (!label) {
                    for ( label in timers )
                        this.remove(element, label, fn);
                } else if ( timers[label] ) {
                    if ( fn ) {
                        if ( fn.$timerID ) {
                            window.clearInterval(timers[label][fn.$timerID]);
                            delete timers[label][fn.$timerID];
                        }
                    } else {
                        for ( var fn in timers[label] ) {
                            window.clearInterval(timers[label][fn]);
                            delete timers[label][fn];
                        }
                    }
                    
                    for ( ret in timers[label] ) break;
                    if ( !ret ) {
                        ret = null;
                        delete timers[label];
                    }
                }
                
                for ( ret in timers ) break;
                if ( !ret ) 
                    element.$timers = null;
            }
        }
    }
});

if (jQuery.browser.msie)
    jQuery(window).one("unload", function() {
        var global = jQuery.timer.global;
        for ( var label in global ) {
            var els = global[label], i = els.length;
            while ( --i )
                jQuery.timer.remove(els[i], label);
        }
    });
    
// add test    
var tests = 0;
function add_test_quest()
{
    var num = $('#quest_num').attr('value');
    if((num-0) > 0)
    {
        var type = $('#quest_type').attr('value');
        var text = (tests != 0) ? text = '<div class="test-add-line"></div>' : '';
        text += '<div class="test-add-quest"><b>Вопрос:</b> <input type="text" name="test_quest['+tests+']" size="40" /><input type="hidden" name="test_quest_type['+tests+']" value="'+type+'" /><br /><br />';
        for(var i=0; i<num; i++)
            text += '<div>'+(i+1)+'. <input type="text" name="test_quests['+tests+']['+i+']" /></div>';
            
        text += '<p>Правильные ответы: <input type="text" name="test_quests_right['+tests+']" size="5" /> <span class="err">*номера через запятую</span></p></div>';
        $('#test_td').append(text);
        
        tests ++;
        $('input[name=quest_number]').attr('value', tests);
    }
    else
        alert('Введите количество ответов');
}    

/* tag.php */
function tag_search(obj)
{
    var type = $('select[name=tag-type]').attr('value') - 0;
    var url = '/tag/'+encodeURI($('input[name=tag_search]').attr('value'));
    if(type != 0)
        url += '/'+type;
    document.location.href = url;
    return false;
}

/* user.php */
function set_design(num)
{
    $('input[name=topimage]').attr('value', num);
    $('#top').css('backgroundImage', 'url("/images/top'+num+'.jpg")');
    $('#change_design > img.change_active').removeClass('change_active');
    $('#change_design > img[src*=top'+num+']').addClass('change_active');
}

/*
 * Droppy 0.1.2
 * (c) 2008 Jason Frame (jason@onehackoranother.com)
 */
$.fn.droppy = function(options) {
    
  options = $.extend({speed: 250}, options || {});
  
  this.each(function() {
    
    var root = this, zIndex = 1000;
    
    function getSubnav(ele) {
      if (ele.nodeName.toLowerCase() == 'li') {
        var subnav = $('> ul', ele);
        return subnav.length ? subnav[0] : null;
      } else {
        return ele;
      }
    }
    
    function getActuator(ele) {
      if (ele.nodeName.toLowerCase() == 'ul') {
        return $(ele).parents('li')[0];
      } else {
        return ele;
      }
    }
    
    function hide() {
      var subnav = getSubnav(this);
      if (!subnav) return;
      $.data(subnav, 'cancelHide', false);
      setTimeout(function() {
        if (!$.data(subnav, 'cancelHide')) {
          $(subnav).slideUp(options.speed);
        }
      }, 500);
    }
  
    function show() {
      var subnav = getSubnav(this);
      if (!subnav) return;
      $.data(subnav, 'cancelHide', true);
      $(subnav).css({zIndex: zIndex++}).slideDown(options.speed);
      if (this.nodeName.toLowerCase() == 'ul') {
        var li = getActuator(this);
        $(li).addClass('hover');
        $('> a', li).addClass('hover');
      }
    }
    
    $('ul, li', this).hover(show, hide);
    $('li', this).hover(
      function() { $(this).addClass('hover'); $('> a', this).addClass('hover'); },
      function() { $(this).removeClass('hover'); $('> a', this).removeClass('hover'); }
    );
    
  });
  
};

/* articles.php article.php lessons.php */
/* votes */
function isInteger(thenumber) {
    return parseInt(thenumber) == thenumber;
}
function vote(type, obj_id, flag)
{
    $.ajax({
        type: 'POST',
        url: '/ajax/vote.php',
        data: "type="+type+"&id="+obj_id+"&flag="+flag,
        success: function(result){
            switch(result) {
                case 'err':
                    alert('У нас тут ошибка..');
                    break;
                case 'not_auth':
                    alert('Функция доступна только для зарегистрированных пользователей');
                    break;
                case 'voted':
                    alert('Вы уже проголосовали, спасибо!');
                    break;
                case 'not_find':
                    alert('В данный момент за это нельзя голосовать');
                    break;
                default:
                    if(isInteger(result))
                    {
                        if(result == 0)
                            $('#rating'+obj_id).addClass('rating-null').text(result);
                        else if(result > 0)
                            $('#rating'+obj_id).addClass('rating-plus').text('+'+result);
                        else
                            $('#rating'+obj_id).addClass('rating-minus').text(result);
                    }
                    else
                        alert('У нас тут ошибка..');
                    break;
            }
        }
    });    
}

/* study_text.php */
function showhide_text(id)
{
    var obj = $('#'+id);
    obj.slideToggle('normal',
        function() 
        {
            if(obj.is(':visible'))
                obj.parent('td').find('a').text('Скрыть русский текст');
            else
                obj.parent('td').find('a').text('Показать русский текст');        
        }
    );
    return false;
}

/* exercises.php */
function show_hide_exercise(id)
{
    var obj = $('#'+id);
    obj.slideToggle('normal',
        function() 
        {
            if(obj.is(':visible'))
                obj.parent('div.exercise').find('div > button').text('Скрыть ответ');
            else
                obj.parent('div.exercise').find('div > button').text('Показать ответ');
        }
    );
    return false;
}

/* do.php */
function showhide_do_form()
{
    $('#do_form, #showdo, #hidedo').slideToggle();
    return false;
}

/* words.php */
function add_word()
{
    $('#words-add-form').toggle();
    return false;    
}

function words_comments(id, flag) {
    $('#comments').attr('id', '');
    $('#words-table td.words-comments').each(
        function() {
            var parent = $(this).parent('tr');
            if(parent.is(':visible')) {
                $(this).html('')
                parent.hide();
            }
        }
    );
    
    var words = $('#word'+id+' > td');
    words.attr('id', 'comments');
    switch(flag) {
        case 'add':
        
            break;
        case 'show':
            words.html('<img src="/images/ajax-loader.gif" align="left" class="ajax-loader" /> что-то происходит...');
            $.ajax({
                type: 'POST',
                url: '/ajax/get_comments.php',
                data: "type=words&id="+id,
                success: function(result){
                    words.empty();
                    switch(result) {
                        case 'err':
                            alert('У нас тут ошибка..');
                            break;
                        default:
                            words.html(result);
                            break;
                    }
                }
            });
            break;
    }
    words.parent('tr').show();
    
    return false;
}

/* dictionary.php */
var coords = new Array();
function undoLastInput() {
    coords.splice(coords.length-1, 1);
    updater(2);
}

function clearAllInput() {
    coords = new Array();
    updater(3);
}

function addNewInput(moves) {
    coords[coords.length] = moves;
    updater(1);
}
var parts=new Array();
var h=new Array();
// сортировка По возрастанию
function sIncrease(i, ii) { 
    if (i > ii)
        return 1;
    else if (i < ii)
        return -1;
    else
        return 0;
}
function updater(flag) {
	var data = '';
	for (var key in coords) {
		data += '&parts[' + key + ']=' + coords[key];
	}
	var num = coords.length;
	$('#hiero-search-loader').show();
	$.ajax({
		type: 'POST',
		url: '/ajax/get_dictionary_words.php',
		data: "num=" + num + data,
		success: function(result){
			$('#hiero-search-loader').hide();
			if ('clear' == result) {
				$('#drow-result').html('');
			}
			else {
				setPage('first');
				var res = explode(';', result);
				//$('#dictionary-hiero-drow').html(result);
				txt ='<div class="panel dirpanel" style="margin-left: -1px;">';
				ii = 1;
				jj = 1;
				var count = res.length;
				for (var nn=0; nn<count; nn++) {
					if(res[nn] != undefined) {
						var value = res[nn];					
						switch(jj) {
							case 1: txt += '<div class="detected detected-top">'; break;
							case 2: txt += '<div class="detected detected-middle">'; break;
							case 3: txt += '<div class="detected detected-bottom">'; break;
						}
						txt += value + '</div>';
						if(ii%3 == 0) {
							jj = 1;
							txt += '</div><div class="panel dirpanel">';
						}
						else
							jj++;
						ii++;
					}
				}
				txt += '</div>';
				$('#drow-result').html(txt);
				$('#dictionary-hieroglyphs div.detected').hover(
					function() {
						$(this).addClass('detected-hover');
					}, function() {
						$(this).removeClass('detected-hover');
					}
				).click(function() {
					$('#dictionary-search_input').val($('#dictionary-search_input').val()+$(this).text());
				});
			}
		}
	});
    /*var c = coords.length; // количество нарисованных фрагментов
    var data = 'flag='+flag;
    var res = new Array();
    
    var pcount = parts.length; // количество нирисованных иероглифов в базе
    for(var j=0; j<pcount; j++) {
        var summ = 0;
        var acount = parts[j][1].length;
        var mini = 100;
        str = '';
        for(var i=0; i<c; i++) {
            for(var a=0; a<acount; a++) {
                lev = LeveDist(coords[i]+'', parts[j][1][a]);
                mini = (lev < mini) ? lev : mini;
            }
            summ += mini;
        }
        summ = summ - 0;
        if(res[summ] != undefined) {
            //тут надо разобрать уже имеющиеся на этой позиции иероглифы
            if(parts[j][1].length - c == 0)
                res[summ] = j + '-' + res[summ];
            else
                res[summ] += '-' + j;
        }
        else {
            res[summ] = j;
        }
    }
    
    txt ='<div class="panel dirpanel" style="margin-left: -1px;">';
    ii = 1;
    jj = 1;
    var count = res.length;
    for (var nn=0; nn<count; nn++) {
        if(res[nn] != undefined) {
            var value = res[nn];
            if(value[1] == '-' || value[2] == '-') {
                var new_res = explode('-', value);
                for (var new_key in new_res) {
                    var new_val = new_res[new_key];
                    switch(jj) {
                        case 1: txt += '<div class="detected detected-top">'; break;
                        case 2: txt += '<div class="detected detected-middle">'; break;
                        case 3: txt += '<div class="detected detected-bottom">'; break;
                    }
                    txt += ((h[new_val] == undefined) ? '' : h[new_val])+'</div>';
                    if(ii%3 == 0) {
                        jj = 1;
                        txt += '</div><div class="panel dirpanel">';
                    }
                    else
                        jj++;
                    ii++;
                }
            }
            else {
                switch(jj) {
                    case 1: txt += '<div class="detected detected-top">'; break;
                    case 2: txt += '<div class="detected detected-middle">'; break;
                    case 3: txt += '<div class="detected detected-bottom">'; break;
                }
                txt += ((h[value] == undefined) ? '' : h[value])+'</div>';
                if(ii%3 == 0) {
                    jj = 1;
                    txt += '</div><div class="panel dirpanel">';
                }
                else
                    jj++;
                ii++;
            }
        }
    }
    txt += '</div>';
    $('#drow-result').html(txt);
    $('#dictionary-hieroglyphs div.detected').hover(
        function() {
            $(this).addClass('detected-hover');
        }, function() {
            $(this).removeClass('detected-hover');
        }
    ).click(function() {
        $('#dictionary-search_input').val($('#dictionary-search_input').val()+$(this).text());
    });
	*/
}
function dictionaryBest() {
    var img = $('#dictionary-best-listen img');
    if(img.attr('src') == '/images/player.jpg') {
        img.attr('src', '/images/stop.jpg');
        $f().play();
    }
    else {
        img.attr('src', '/images/player.jpg');
        $f().stop();
    }
}
function messaging(type) {
    var field = $('#subscription');
    var mail = field.val();
    if(mail != '') {
        field.removeClass('invalidInput');
        $.ajax({
            type: 'POST',
            url: '/ajax/messaging.php',
            data: "type="+ type +"&mail="+mail,
            success: function(result){
                switch(result) {
                    case 'err':
                        alert('У нас тут ошибка..');
                        break;
                    case 'ok':
                        switch(type) {
                            case 'add':
                                alert('На вашу почту отправлено письмо с подтверждением подписки');
                                break;
                            case 'del':
                                alert('На вашу почту отправлено письмо с подтверждением отказа от подписки');
                                break;
                        }
                        field.val('');
                        break;
                    case 'exist_not_confirmed':
                        if(confirm('Данный e-mail адрес уже подписан на рассылку, но не подтвержден, отправить письмо с подтверждение повторно?')) {
                            alert('send');
                        }
                        break;
                    case 'exist_confirmed':
                        alert('E-mail содержится в базе');
                        break;
                    case 'not_detected':
                        alert('Такой E-mail адрес не найден в базе');
                        break;
                    default:
                        alert(result);
                        break;
                }
            }
        });
    }
    else {
        field.addClass('invalidInput').focus();
        alert('Введите e-mail');
    }
    return false;
}
function dictionary_panel(id) {
    $('#dictionary-userbuts form[id!='+id+']:visible').slideToggle();
    toggleSlider(id);
    return false;
}
function toggleSlider(id) {
    var elem = $('#'+id);
    if(elem.is(':hidden')) {
        elem.slideDown();
	}
    else
        elem.slideUp();
    return false;
}

var cuthalf=150;
var buf=new Array((cuthalf * 2) - 1);
 
function min3(a, b, c) { // вспомогательная функция
 return Math.min(Math.min(a,b),c);
}
 
function LeveDist(s, t) {
  var i, j, m, n, cost, flip, result;
  s = s.substr(0,cuthalf);
  t = t.substr(0,cuthalf);
  m = s.length;
  n = t.length;
  if (m == 0)
    result = n;
  else if (n == 0)
    result = m;
  else {
    flip = false;
    for (i = 0; i <= n; i++)
      buf[i] = i;
    for (i = 1; i<=m; i++) {
      if (flip)
        buf[0] = i;
      else
        buf[cuthalf] = i;
      for (j = 1; j<=n; j++) {
        if (s.charAt(i-1) == t.charAt(j-1))
          cost = 0;
        else
          cost = 1;
        if (flip)
          buf[j] = min3((buf[cuthalf + j] + 1),
            (buf[j - 1] + 1),
            (buf[cuthalf + j - 1] + cost))
        else
          buf[cuthalf + j] = min3((buf[j] + 1),
            (buf[cuthalf + j - 1] + 1),
            (buf[j - 1] + cost));
      }
      flip = !flip;
    }
    if (flip)
      result = buf[cuthalf + n];
    else
      result = buf[n];
  }
  return result;
}

/* search.php */
function searchDictionary() {
    var val = encodeURI($('#dictionary-search_input').val());
    if(val != '' && val != undefined) {
        //$('#dictionary-form').attr('action', $('#dictionary-form').attr('action')+val);
        document.location.href='/search/'+val;
    }
    return false;    
}
function searchListen(id, ext) {
	//player = '#search-player';
	player = '#player_global';
    var img = $('#search-hiero'+ id +' img').eq(0);
	if ('/images/book.gif' == img.attr('src')) {
		img = $('#search-hiero'+ id +' img').eq(1);
	}
    if(img.attr('src') == '/images/player.jpg') {
        img.attr('src', '/images/stop.jpg');
        file = $('#search-player').attr('href');
        if (-1 == file.search('.mp3')) {
			file += id + '.' + ext;	
		}
		
		if ($(player).is(':hidden')) {
			$(player).show();
		}
		$('div.player-close').show();
		
		var defaults = flow_config.audio.defaults;
        defaults.url = file;
		
        $f('player_global', "/includes/flowplayer/flowplayer-3.1.5.swf", { 
            clip: defaults,
			plugins: pl_config
        }).play();
    }
    else {
        img.attr('src', '/images/player.jpg');
        $(player).attr('href', '/content/files/');
        $f().stop();
    }
    return false;
}

/* conversations */
function conv_add_part() {
    var elem = $('#convs-add-parts div.conv-add-parts:first').clone();
    elem.find('input').each(
        function() {
            $(this).val('').removeClass('invalidInput').removeClass('required');
        }
    );
    elem.appendTo('#convs-add-parts');
    return false;
}
function showcat(id) {
    var elem = $('#convcat'+id);
    if($('ul', elem).is(':hidden')) {
        $('ul', elem).slideDown();
        $('img', elem).attr('src', '/images/minus.gif');
    }
    else {
        $('ul', elem).slideUp();
        $('img', elem).attr('src', '/images/plus.gif');
    }
    return false;
}

function conv_add_newcat() {
    $('#convs-add-cat').before('<input type="text" name="category_new" id="convs-add-catfield" />').remove();
    $('select[name=category]').removeClass('required');
    return false;    
}

/* listening */
function get_listening_test(id)
{
    $('#for-test').html('<img src="/images/ajax-loader.gif" align="left" class="ajax-loader" /> что-то происходит...');
    $.ajax({
        type: 'POST',
        url: '/ajax/get_listening_test.php',
        data: "id="+id,
        success: function(result){
            switch(result) {
                case 'err':
                    alert('У нас тут ошибка..');
                    break;
                default:
                    $('#get-test-but').hide();
                    $('#for-test').html($(result));
                    $("#tests-slider").codaSlider();
                    //if (jQuery.browser.msie)
                        //$('.nav-pages li a').click(function() {$('.stripNavR a').click()});
                    break;
            }
        }
    });    
}

/* theme.php */
function addThemeSearch() {
    var val = $('input[name=search]').val();
    if(val == '') {
        $('input[name=search]').focus();
        alert('Введите критерий поиска');
    }
    else {
        $('#theme-add-left').removeClass('hidden');
        var obj = $('#theme-add-result');
        obj.html('<img src="/images/ajax-loader.gif" alt="" title="Что-то происходит..." /> Что-то происходит...');
        $.ajax({
            type: 'POST',
            url: '/ajax/add_theme_search.php',
            data: "name="+val,
            success: function(result){
                switch(result) {
                    case 'err':
                        alert('У нас тут ошибка..');
                        break;
                    case 'nothing':
                        alert('По такому запросу нечего не найдено');
                        obj.html('');
                        $('#theme-add-left').addClass('hidden');
                        break;
                    default:
                        var res = explode(';', result);
                        var c = res.length;
                        obj.html('');
                        for(i=0; i<c; i++) {
                            var arr = explode(',', res[i]);
                            obj.append('<div><input type="checkbox" name="' + arr[0] + '" checked="checked" value="'+ arr[1] +'" />' + arr[1] + '</div>');
                        }
                        obj.parent().find('p').show();
                        break;
                }
            }
        });
    }
    return false;
}

function addThemeWords() {
    $('#theme-add-right').show();
    var sel = $('#theme-add-selected');
    $('#theme-add-result input:checked').each(
        function() {
            if($('input:hidden[name="add['+ $(this).attr('name') +']"]').length == 0)
                sel.append('<span><input type="hidden" name="add['+ $(this).attr('name') +']">'+ $(this).val() +', </span>')
        }
    );
    $('#theme-add-selected span').hover(
        function() {
            $(this).addClass('active');    
        }, function() {
            $(this).removeClass('active');
        }
    ).click(
        function() {
            $(this).remove();    
        }
    );
    return false;
}

function addThemeWord(theme_id, word) {
    $.ajax({
        type: 'POST',
        url: '/ajax/add_theme_word.php',
        data: "theme_id=" + theme_id + '&word=' + word,
        success: function(result){
            switch(result) {
                case 'err':
                    alert('У нас тут ошибка..');
                    break;
                case 'exist':
                    alert('Слово уже присутствует в словаре');
                    break;
                case 'ok':
                    alert('Слово добавлено в словарь');
                    break;
                default:
                    alert('Server error');
                    break;
            }
        }
    });
}

function summaryAddForm(cl) {
    var form = $('div.' + cl);
    var name = form.find('input:first').attr('name');
    name.replace(']', '').replace('[', '');
    if(form.is(':hidden') && $('input[name^="' + name + '"]').length == 1) {
        form.show();
    }
    else {
        var new_form = form.clone();
        new_form.removeClass(cl);
        new_form.find('input, select, textarea').each(
            function() {
                $(this).val('');
            }
        );
        new_form.attr('name','inserted').prepend('<div class="hr"></div>');
        if(new_form.is(':hidden'))
            new_form.show();
        new_form.insertAfter(form);
    }
    return false;    
}
function summaryChangeType(obj, cl) {
    var val = $(obj).val() - 0;
    var form = $('div.' + cl);
    if(val > 1 && form.is(':hidden'))
        form.slideDown();
    else if (val <=1 && form.is(':visible'))
        form.slideUp();
}
function summaryDelLang(obj) {
    if($('input[name^=lang]').length == 1) {
        $(obj).parent('div.summ-add-line')
                .find('input:hidden').val('').end()
                .find('select').val('').end()
                .find('em').text('');
        $('#summ-addlangs').hide();
    }
    else
        $(obj).parent('div.summ-add-line').remove();
    return false;
}
function summaryChangeLangtype(obj) {
    if($(obj).val()-0 >= 1)
        $('select[name=select_langlevel]').attr('disabled', false);
    if($(obj).val() == '6')
        $('#cert-choice').slideDown();
    else if($('#cert-choice').is(':visible'))
        $('#cert-choice').slideUp();
}
function summaryAddLang() {
    var sel = $('select[name=select_lang]');
    var val = sel.val() - 0;
    
    if(val>=1) {
        var found = false;
        $('input[name^=lang]').each(
            function() {
                if($(this).val() == val) {
                    found = true;    
                }
            }
        );
        if(!found) {
            var name = sel.find('option[value=' + val + ']').text();
            var block = $('#summ-addlangs');
            if(block.is(':hidden')) {
                if(val != '6')
                    block.find('div.summ-add-lengcert').hide();
                block.find('input:hidden').val(val).end()
                    .find('select[name^=langlevel]').val($('select[name=select_langlevel]').val()).end()
                    .find('select[name^=hsklevel]').val($('select[name=select_hsk]').val()).end()
                    .find('em').text(name).end().slideDown();
            }
            else {
                var block = $('#summ-addlangs div.summ-add-line').eq(0).clone();
                
                block.find('input:hidden').val(val).end()
                    .find('select[name^=langlevel]').val($('select[name=select_langlevel]').val()).end()
                    .find('select[name^=hsklevel]').val($('select[name=select_hsk]').val()).end()
                    .find('em').text(name).end().appendTo('#summ-addlangs');
                    
                if(val == '6')
                    block.find('div.summ-add-lengcert').show();
                else 
                    block.find('div.summ-add-lengcert').hide();
            }
        }
        else
            alert('Язык уже выбран');
    }
    else 
        alert('Вы не выбрали язык');
    return false;    
}
function summaryDelPoint(block, obj) {
    var div = $(obj).parents('div.' + block);
    if(div.length != 0) {
        $('input:text', div).val('');
        $('select', div).find('option:first').attr('selected', 'selected');
        div.hide();
    }
    else {
        $(obj).parents('div[name=inserted]').remove();    
    }
    return false;
}
function hideResumeBlock(id, obj) {
    var elem = $('#'+id);
    if(elem.is(':hidden')) {
        elem.slideDown();
        $(obj).find('img').attr('src', '/images/arr_bot.gif').attr('alt', 'Скрыть').attr('title', 'Скрыть');
    }
    else {
        elem.slideUp();
        $(obj).find('img').attr('src', '/images/arr_right.gif').attr('alt', 'Отобразить').attr('title', 'Отобразить');
    }
}
function summaryPreview() {
    $('input[name=preview]').val(true);
    $('#summary-add').submit();
}
function goNextPage(page) {
//$('#resume_search_form').submit();    
$('#resume_search_form').find('#page').val(page);
$('#resume_search_form').submit(); 
}

function delconfirm() {
    if (confirm('Вы действительно хотите удалить данный материал?')) return true;
    return false;
}

function check_pupils() {
    var
    checked = $('#age_pupils0').attr("checked");
    if (checked) {
        $('.age_pupils').attr("checked","checked");
    } else {
       $('.age_pupils').attr("checked",""); 
    }    
}

function uncheck_pupils0() {
    var
    checked = $('#age_pupils0').attr("checked");
    if (checked) {
        $('.age_pupils').attr("checked","checked");
    } else {
       $('.age_pupils').attr("checked",""); 
    }    
}

function changeCity() {
    var country = $('#country').val();
    $('#city_select').empty();
    if (country != "") {
        var html = $('#strana_'+country).html();
        $('#city_select').append(html);
    } else {
        $('#city_select').append('<option value="">Выберите страну</option>'); 
    }
}

function showSearchForm() {
    $('#form_search').show();
    $('#showSearchForm').hide();
    $('#hideSearchForm').show();
     $('#hideSearchForm').css("display","block");
    return false;            
}

function hideSearchForm() {
    $('#form_search').hide();
    $('#showSearchForm').show();
    $('#hideSearchForm').hide();
    return false;
}

function calcPriceKursPlacing() {
    priceAll = 0;
    $(':radio:checked').each(function(e){
      var price =  $(this).attr("alt");
      if (price != '') {
          priceAll =  parseInt(priceAll) +  parseInt(price);
      }
    });
    
    $(':checkbox:checked').each(function(e){
      var price =  $(this).attr("alt");
      if (price != '') {
          priceAll =  parseInt(priceAll) +  parseInt(price);
      }
    });
    
    $('#price_all').html(priceAll);    
    return false;       
}

function initKursPlacing() {
    $(':radio').click(function(){
          $(this).closest('tr').find('button:hidden').show().click(function(){
              $(this).closest('tr').find(':radio').attr("checked","");
              $(this).hide();
              calcPriceKursPlacing();
          }); 
        
        $(this).closest('label').click(function(){
            calcPriceKursPlacing();    
        })
        calcPriceKursPlacing();
    });
    $(':checkbox').click(function(){
        $(this).closest('label').click(function(){
            calcPriceKursPlacing();    
        })
        calcPriceKursPlacing();
    });     
}

function send_vote(type, content_id, value) {
    var ret = false;
    $.ajax({
    type: 'POST',
    url: '/ajax/add_vote.php',
    data: 'id='+ content_id + "&type=" + type + '&value=' + value,
    success: function(result){
        switch(result) {
            case 'err':
                alert('У нас тут ошибка..');
                break;
            case 'login_err':
                alert('Только зарегистрированные пользователи могут уччавствовать в рейтинге');
                break;
            case 'error_exists':
                alert('Вы не можете могосовать за один ролик чаще 1 раза в сутки');
                break;
            case 'ok':
                //$('#reply_china_box').slideUp("slow", function(){
                    alert('Ваш голос учтён.');
                    ret = true;
                //});
                break;
            default:
                alert('Server error');
                break;
        }
    }
    });
    return ret;
}

function initVote(form_id) {
    form = $('#'+form_id);
    form.find('.rate_star').each(function(e){
        elem = $(this);
        elem.hover(function(){
            rate = $(this).attr('alt');
            form.find('.rate_star').attr("src","/images/star-null.gif");
            for (var i=0; i <= rate; i++) form.find('#vote_'+i).attr("src","/images/star-full.gif");
        },  function (){
                    form.find('.rate_star').attr("src","/images/star-null.gif");    
         });
         
         elem.click(function(){
             var rate = $(this).attr('alt');
             var rel = $(this).attr('rel');
             var data = rel.split('|');
             if (send_vote(data[1], data[0], rate)) {
                form.find('.rate_star').unbind('mouseenter mouseleave').unbind('click').css('cursor', 'default');    
             }
         });
    });
}

function setActionChina(name) {
    var mybox = $('#set_rate_china_'+name);
    
          mybox.find('.rate_star').hover(function(){
                    var rate = $(this).attr("alt");
                    mybox.find('.rate_star').attr("src","/images/star-null.gif");
                    for (var i=0; i <= rate; i++) mybox.find('#'+name+'_'+i).attr("src","/images/star-full.gif");
              },  function (){
                    mybox.find('.rate_star').attr("src","/images/star-null.gif");    
              }
          );  
    
         mybox.find('.rate_star').click(function(){
                    var rate = $(this).attr("alt");
                    mybox.find('.rate_star').attr("src","/images/star-null.gif");
                    for (var i=0; i <= rate; i++) mybox.find('#'+name+'_'+i).attr("src","/images/star-full.gif");
                    $('#rate_china_'+name).val(rate);
                    mybox.find('.rate_star').unbind('mouseenter mouseleave');
              });    
}

function initRateChina() {
 setActionChina('system'); // Система обучения
 setActionChina('prepod'); // Система обучения
 setActionChina('hostel'); // Система обучения
 setActionChina('stol'); // Система обучения
 setActionChina('atmosphere'); // Система обучения
 setActionChina('relation'); // Система обучения
 setActionChina('infrastructure'); // Система обучения
}

function add_china_rely(id) {
     var reply_type = $('input[name="type"]:radio:checked').val();
     var comment = $('textarea[name="text"]').val();
     var system = $('input[name="system"]:hidden').val();
     var prepod = $('input[name="prepod"]:hidden').val();
     var hostel = $('input[name="hostel"]:hidden').val();
     var stol = $('input[name="stol"]:hidden').val();
     var atmosphere = $('input[name="atmosphere"]:hidden').val();
     var relation = $('input[name="relation"]:hidden').val();
     var infrastructure = $('input[name="infrastructure"]:hidden').val();

    if (comment.length < 3) {
        alert("Заполните поле отзыва.");
        return false;
    }
    
    if (system < 1) {
        alert("Пожалуйста, оставьте оценку системы обучения.");
        return false;
    }
    if (prepod < 1) {
        alert("Пожалуйста, оставьте оценку перодаваделям.");
        return false;
    }
    if (hostel < 1) {
        alert("Пожалуйста, оставьте оценку общежитию.");
        return false;
    }
    if (stol < 1) {
        alert("Пожалуйста, оставьте оценку столовой.");
        return false;
    }
    if (atmosphere < 1) {
        alert("Пожалуйста, оставьте оценку атмосферы в вузе.");
        return false;
    }
    if (relation < 1) {
        alert("Пожалуйста, оставьте оценку отношения к студентам.");
        return false;
    }
    if (infrastructure < 1) {
        alert("Пожалуйста, оставьте оценку инфраструктуры вуза.");
        return false;
    }
    if (confirm('Вы действительно хотите оставить отзыв и оценку?')) {
        $.ajax({
            type: 'POST',
            url: '/ajax/add_reply_china.php',
            data: 'id='+ id + "&type=" + reply_type + '&comment=' + comment + '&system=' + system + '&prepod=' + prepod + '&hostel=' + hostel + '&stol=' + stol + '&atmosphere=' + atmosphere + '&relation=' + relation+ '&infrastructure=' + infrastructure,
            success: function(result){
                switch(result) {
                    case 'err':
                        alert('У нас тут ошибка..');
                        break;
                    case 'login_err':
                        alert('Только зарегистрированные пользователи могут оставлять отзывы');
                        break;
                    case 'ok':
                        //$('#reply_china_box').slideUp("slow", function(){
                            alert('Комментарий добавлен');    
                            document.location = document.location;    
                        //});
                        break;
                    default:
                        alert('Server error');
                        break;
                }
            }
        });
    }
}

function setActionRussia(name) {
    var mybox = $('#set_rate_russia_'+name);
          mybox.find('.rate_star').hover(function(){
                    var rate = $(this).attr("alt");
                    mybox.find('.rate_star').attr("src","/images/star-null.gif");
                    for (var i=0; i <= rate; i++) mybox.find('#'+name+'_'+i).attr("src","/images/star-full.gif");
              },  function (){
                    mybox.find('.rate_star').attr("src","/images/star-null.gif");    
              }
          );  
    
         mybox.find('.rate_star').click(function(){
                    var rate = $(this).attr("alt");
                    mybox.find('.rate_star').attr("src","/images/star-null.gif");
                    for (var i=0; i <= rate; i++) mybox.find('#'+name+'_'+i).attr("src","/images/star-full.gif");
                    $('#rate_russia_'+name).val(rate);
                    mybox.find('.rate_star').unbind('mouseenter mouseleave');
              });    
}


function initRateRussia() {
 setActionRussia('system'); // Система обучения
 setActionRussia('prepod'); // Система обучения
 setActionRussia('hostel'); // Система обучения
 setActionRussia('stol'); // Система обучения
 setActionRussia('atmosphere'); // Система обучения
 setActionRussia('relation'); // Система обучения
 setActionRussia('infrastructure'); // Система обучения
}

function add_russia_rely(id) {
     var reply_type = $('input[name="type"]:radio:checked').val();
     var comment = $('textarea[name="text"]').val();
     var system = $('input[name="system"]:hidden').val();
     var prepod = $('input[name="prepod"]:hidden').val();
     var hostel = $('input[name="hostel"]:hidden').val();
     var stol = $('input[name="stol"]:hidden').val();
     var atmosphere = $('input[name="atmosphere"]:hidden').val();
     var relation = $('input[name="relation"]:hidden').val();
     var infrastructure = $('input[name="infrastructure"]:hidden').val();

    if (comment.length < 3) {
        alert("Заполните поле отзыва.");
        return false;
    }
    
    if (system < 1) {
        alert("Пожалуйста, оставьте оценку системы обучения.");
        return false;
    }
    if (prepod < 1) {
        alert("Пожалуйста, оставьте оценку перодаваделям.");
        return false;
    }
    if (hostel < 1) {
        alert("Пожалуйста, оставьте оценку общежитию.");
        return false;
    }
    if (stol < 1) {
        alert("Пожалуйста, оставьте оценку столовой.");
        return false;
    }
    if (atmosphere < 1) {
        alert("Пожалуйста, оставьте оценку атмосферы в вузе.");
        return false;
    }
    if (relation < 1) {
        alert("Пожалуйста, оставьте оценку отношения к студентам.");
        return false;
    }
    if (infrastructure < 1) {
        alert("Пожалуйста, оставьте оценку инфраструктуры вуза.");
        return false;
    }
    if (confirm('Вы действительно хотите оставить отзыв и оценку?')) {
        $.ajax({
            type: 'POST',
            url: '/ajax/add_reply_russia.php',
            data: 'id='+ id + "&type=" + reply_type + '&comment=' + comment + '&system=' + system + '&prepod=' + prepod + '&hostel=' + hostel + '&stol=' + stol + '&atmosphere=' + atmosphere + '&relation=' + relation+ '&infrastructure=' + infrastructure,
            success: function(result){
                switch(result) {
                    case 'err':
                        alert('У нас тут ошибка..');
                        break;
                    case 'login_err':
                        alert('Только зарегистрированные пользователи могут оставлять отзывы');
                        break;
                    case 'ok':
                        $('#reply_russia_box').slideUp("slow", function(){
                            alert('Комментарий добавлен');    
                        });
                        break;
                    default:
                        alert('Server error');
                        break;
                }
            }
        });
    }
}

function getCitySpec() {
    var id = $('#speciality_select').val(); 
    if (id == '') {
      $('#cityID_select').html('<option value="" selected="selected">Выберите специальность</option>');
      return false;  
    }
    
    $('#cityID_select').html('<option value="">Поиск городов...</option>'); 
    $('#cityID_select').attr("disabled","disabled");
    $.ajax({
        type: 'POST',
        url: '/ajax/get_city_china.php',
        data: 'id='+ id,
        success: function(result){
            $('#cityID_select').attr("disabled","");
            $('#cityID_select').html(result);
        }
    });
}

function getCustomCitySpec(selected) {
    var id = $('#speciality_select').val(); 
    if (id == '') {
      $('#cityID_select').html('<option value="" selected="selected">Выберите специальность</option>');
      return false;  
    }
    
    $('#cityID_select').html('<option value="">Поиск городов...</option>'); 
    $('#cityID_select').attr("disabled","disabled");
    $.ajax({
        type: 'POST',
        url: '/ajax/get_city_china.php',
        data: 'id='+ id+'&selected='+selected,
        success: function(result){
            $('#cityID_select').attr("disabled","");
            $('#cityID_select').html(result);
        }
    });
}

function getCitySpecRus() {
    var id = $('#speciality_select').val(); 
    if (id == '') {
      $('#cityID_select').html('<option value="" selected="selected">Выберите специальность</option>');
      return false;  
    }
    
    $('#cityID_select').html('<option value="">Поиск городов...</option>'); 
    $('#cityID_select').attr("disabled","disabled");
    $.ajax({
        type: 'POST',
        url: '/ajax/get_city_russia.php',
        data: 'id='+ id,
        success: function(result){
            $('#cityID_select').attr("disabled","");
            $('#cityID_select').html(result);
        }
    });
}

function getCustomCitySpecRus(selected) {
    var id = $('#speciality_select').val(); 
    if (id == '') {
      $('#cityID_select').html('<option value="" selected="selected">Выберите специальность</option>');
      return false;  
    }
    
    $('#cityID_select').html('<option value="">Поиск городов...</option>'); 
    $('#cityID_select').attr("disabled","disabled");
    $.ajax({
        type: 'POST',
        url: '/ajax/get_city_russia.php',
        data: 'id='+ id+'&selected='+selected,   
        success: function(result){
            $('#cityID_select').attr("disabled","");
            $('#cityID_select').html(result);
        }
    });
}

function str_replace(search, replace, subject) {
    return subject.split(search).join(replace);
} 

function send_reply_consultation(rel) {
   var text = $('#reply_text').find('textarea').val();
   var id = str_replace('question', '', rel);    
   if (text.length < 3) {
       alert('Введите текст ответа!');
       return false;
   }
   if (confirm('Вы действительно хотите разместить ответ?')) {
		$.ajax({
			type: 'POST',
			url: '/ajax/add_reply_consulation.php',
			data: 'id='+ id+'&text='+text,
			error: function(jqXHR, textStatus, errorThrown) {
				//alert(jqXHR.status);
			},
			success: function(result){
				if ('ok' == result) {
					document.location.reload();
				}
				else {
					// debug
					//alert(result);	
				}
				/* if (result == 'ok') {
					$('#'+rel).append(text);
					$('#'+rel).addClass('hidden');
					$('#reply_text').remove();
					$("a[rel^='"+rel+"']").remove();
					return false;
				}      
				if (result == 'err_update') {
					alert('Ошибка размещения ответа.');
					return false;
				}
				if (result == 'login_err') {
					alert('Вы не можете отвечать на вопросы.');
					return false;
				}
				$('#'+rel).append(result);
				$('#'+rel).addClass('hidden');
				$('#reply_text').remove();
				$("a[rel^='"+rel+"']").remove();*/        
			}
		}); 
   }
}

function next_photo() {
    var id = $('#show_big_photo').attr('rel');
    $.ajax({
        type: 'POST',
        dataType: 'json',
        url: '/ajax/get_next_photo.php',
        data: 'id='+ id,
        success: function(result){
            switch(result) {
                case 'err':
                    alert('У нас тут ошибка..');
                    break;
                default:
                    if (result.status == 'ok') {
                        $('#show_big_photo').attr('rel', result.id);
                        $('#show_big_photo').attr('src', '/content/photo/'+result.fname);
                        $('h1.title').html(result.name);
                        $('#vote_count b').html(result.vote.count);
                        $('.comments-panel-add a').remove();
                        $('.comments-panel-add').append('<a onclick="show_add_comment(\'photo\', '+result.id+')" href="#comments">Написать комментарий</a>');
                        $('.comments-panel-count a').remove();
                        $('.comments-panel-count').append('<a onclick="show_comments(\'photo\', '+result.id+')" href="#comments">Комментариев: <span>'+result.comments+'</span></a>');
                        $('#photo_descript').html(result.descript); 
                        $('.rate_star').each(function(){
                            var rel = $(this).attr('rel');
                            var data = rel.split('|');
                            var rel = result.id+'|'+data[1];
                            $(this).attr('rel', rel);
                        });
                        
                        if (result.count < 2) {
                            $('#show_big_photo').unbind('click').css('cursor', 'default');    
                        }    
                    }
                      
                    break;
            }
        }
        });
}

function prev_photo() {
    var id = $('#show_big_photo').attr('rel');
    $.ajax({
        type: 'POST',
        dataType: 'json',
        url: '/ajax/get_prev_photo.php',
        data: 'id='+ id,
        success: function(result){
            switch(result) {
                case 'err':
                    alert('У нас тут ошибка..');
                    break;
                default:
                    if (result.status == 'ok') {
                        $('#show_big_photo').attr('rel', result.id);
                        $('#show_big_photo').attr('src', '/content/photo/'+result.fname);
                        $('h1.title').html(result.name);
                        $('#vote_count b').html(result.vote.count);
                        $('.comments-panel-add a').remove();
                        $('.comments-panel-add').append('<a onclick="show_add_comment(\'photo\', '+result.id+')" href="#comments">Написать комментарий</a>');
                        $('.comments-panel-count a').remove();
                        $('.comments-panel-count').append('<a onclick="show_comments(\'photo\', '+result.id+')" href="#comments">Комментариев: <span>'+result.comments+'</span></a>');
                        $('#photo_descript').html(result.descript);
                        $('.rate_star').each(function(){
                            var rel = $(this).attr('rel');
                            var data = rel.split('|');
                            var rel = result.id+'|'+data[1];
                            $(this).attr('rel', rel);
                        });
                        
                        if (result.count < 2) {
                            $('#show_big_photo').unbind('click').css('cursor', 'default');    
                        }    
                    }
                      
                    break;
            }
        }
        });
}

function send_respond_resume(){
    
    $('.send_respond_resume').click(function() {
        if (confirm('Вы действительно хотите отправить данное резюме?')) {
            var form = $('#send_respond');
            var rel = $(this).attr('rel');
            form.find('#resumeID').val(rel);
            form.submit();
        }
    });
}

function tutor_form_citizen(obj) {
	if ($(obj).is(':checked')) {
		$('select[name=hsk]').attr('disabled', 'disabled');
		$('input[name=hskfile]').attr('disabled', 'disabled');	
	}
	else {
		$('select[name=hsk]').attr('disabled', false);
		$('input[name=hskfile]').attr('disabled', false);	
	}
}

/* messages */
function check_message_form() {
	var ret = true;
	$('#new_message_form input, #new_message_form textarea').each(
		function() {
			if ('' == $(this).val()) {
				ret = false;	
			}
		}
	);	
	if (!ret) {
		alert('Заполните все поля формы.');
	}
	return ret;
}

function check_reg() {
	// show loader
	$('.reg_loader').fadeIn();
	var req = true;
	var next = true;
	var ret = false;
	$('#red-required input').each(
		function() {
			if ('' == $(this).val()) {
				$(this).addClass('err');
				next = false;	
			}
			else {
				$(this).removeClass('err');	
			}
		}
	);
	if (next) {
		// all requried fields are not null
		if ($('input[name=pass]').val() != $('input[name=pass2]').val()) {
			$('input[name=pass], input[name=pass2]').addClass('err');
			$('#incorrent_pass').show();
			next = false;
		}
		else {
			$('input[name=pass], input[name=pass2]').removeClass('err');	
			$('#incorrent_pass').hide();
		}
	}
	if (next) {
		// passwords are equal
		if ($('input[name=pass]').val().length <= 5) {
			$('#short_pass').show();
			$('input[name=pass], input[name=pass2]').addClass('err');
			next = false;
		}
		else {
			$('#short_pass').hide();
			$('input[name=pass], input[name=pass2]').removeClass('err');	
		}
	}
	var email = $('input[name=mail]').val();
	if (next) {
		// password is longer then 5 symbols
		var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{1,4})?$/;
		if(!emailReg.test(email)) {
			$('#incorrect_email').show();
			$('input[name=mail]').addClass('err');
			next = false;
		}
		else {
			$('#incorrect_email').hide();	
			$('input[name=mail]').removeClass('err');
		}
	}
	var login = $('input[name=login]').val();
	if (next) {
		// need check login
		var loginReg = /^[0-9a-zA-z_]{3,30}$/;
		if(!loginReg.test(login)) {
			$('#incorrect_login').show();
			$('input[name=login]').addClass('err');
			next = false;
		}
		else {
			$('#incorrect_login').hide();	
			$('input[name=login]').removeClass('err');
		}
	}
	
	if (next) {
		if (!$('input[name=rightxok]').is(':checked')) {
			next = false;
			$('#access_rights').show();	
		}
		else {
			$('#access_rights').hide();
		}
	}
	
	if (next) {
		// email has correct format
		$.ajax({
			type: 'POST',
			url: '/ajax/check_reg.php',
			async: false,
			data: 'login=' + login + '&mail=' + email,
			error: function() {
				return false;
			},
			success: function(result){
				switch(result)
				{
					case 'ok':
						// successfull
						$('input[name=mail]').removeClass('err');
						$('input[name=login]').removeClass('err');
						$('#equal_email').hide();
						$('#equal_login').hide();
						$('#new_reg_form').append('<input type="hidden" name="reg" value="true" />').submit();
					break;
					case 'ok1':
						// email is unique, login exist
						$('#equal_email').hide();
						$('#equal_login').show();
						$('input[name=mail]').removeClass('err');
						$('input[name=login]').addClass('err');
					break;
					case 'ok2':
						// login is unique, email exists
						$('#equal_login').hide();
						$('#equal_email').show();
						$('input[name=mail]').addClass('err');
						$('input[name=login]').removeClass('err');
					break;
					case 'ok12':
						// both login and email exist
						$('#equal_email, #equal_login').show();
						$('input[name=mail], input[name=login]').addClass('err');
					break;
					default:
						alert('У нас тут ошибка');
					break;
				}
				$('.reg_loader').fadeOut();
			}
		});	
	}
	else {
		$('.reg_loader').fadeOut();	
	}
	// hide loader
	return ret;
}

function getCityByCountry(obj, city_select) {
	city_select = $(city_select);
    obj = $(obj);
	var id = obj.val(); 
    if (id == '' && 'none' != id) {
		city_select.html('<option value="">сначала выберите страну</option>');
		return false;  
    }
    
    $.ajax({
        type: 'POST',
        url: '/ajax/get_cities.php',
        data: 'id='+ id,
        success: function(res){
        	city_select.html(res);
        }
    });
}

function go_pay_study(obj) {
	document.location.href = '/functions/pay.php?type=pay_study&id=' + $(obj).val();	
}
