/**
 ололо, пыщь-пыщь, нечего тут смотреть !!!!1111
*/

holywars = { 
    minLoginLength : 3,
    maxLoginLength : 24,
    minPasswordLength : 6,
    maxPasswordLength : 40,
    validateRegFormResult : {
        login: false,
        email: false,
        password: false,
        password2: false
    },
    validateRegForm : function(){ 
        for (var x in this.validateRegFormResult) {
            if (this.validateRegFormResult[x] === false) return false;
        }
        return true;
    },
    validateUsernameRegexp : function(s){
        return /^([a-zA-Z][a-zA-Z0-9_\.]+)$/.test(s);
    }, /* */
    validate_username : function(s){ 
        this.validateRegFormResult.login = false;
        if (s === false) {
            return 'Такое имя уже занято';
        }
        if (s.length < this.minLoginLength || s.length > this.maxLoginLength) { 
            return 'Имя должно быть от '+this.minLoginLength+' до '+this.maxLoginLength+' символов';
        }
        if (this.validateUsernameRegexp(s) !== true) { 
            return 'Имя должно содержать только латинские буквы, цифры и знаки "._" и начинаться с буквы';
        }
        $.post(BASEURL+'/registration/check/what/login', { login: s }, function(data){ 
            if (data.result !== true) {
                $('#reg_username').trigger('blur', [true]);
            }
        }, "json");
        this.validateRegFormResult.login = true;
        return true;
    },
    validateEmailRegexp : function(s){
        return /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test(s);
    }, /* */
    validate_email : function(s){ 
        this.validateRegFormResult.email = false;
        if (s === false) {
            return 'Такой адрес уже занят';
        }
        if (this.validateEmailRegexp(s) !== true) { 
            return 'Неправильный адрес';
        }
        $.post(BASEURL+'/registration/check/what/email', { addr: s }, function(data){ 
            if (data.result !== true) {
                $('#reg_email').trigger('blur', [true]);
            }
        }, "json");
        this.validateRegFormResult.email = true;
        return true;
    },
    validate_password : function(s){ 
        this.validateRegFormResult.password = false;
        if (s.length < this.minPasswordLength || s.length > this.maxPasswordLength) { 
            return 'Пароль должен быть от '+this.minPasswordLength+' до '+this.maxPasswordLength+' символов';
        }
        this.validateRegFormResult.password = true;
        return true;
    },
    validate_password2 : function(s){
        if ( s.length > 0 && s == $('#reg_password').val() ) { 
            this.validateRegFormResult.password2 = true;
            return true;
        }
        this.validateRegFormResult.password2 = false;
        return 'Пароли не совпадают';
    },
    openRegForm : function() { 
        $('#regform-cnt').dialog('open'); 
        this.loadCaptcha();
        return false; 
    },
    loadCaptcha : function() { 
        $('#reg_captcha').val('');
        $('#captcha-cnt').html(' '); 
        $('#captcha-cnt').load(BASEURL+'/registration/get-captcha'); 
        return false; 
    },
    closeRegForm : function() { $('#regform-cnt').dialog('close'); return false; },
    submitRegForm : function() {
        if (this.validateRegForm() !== true) { 
            $('#reg_username').blur();
            $('#reg_email').blur();
            $('#reg_password').blur();
            $('#reg_password2').blur();
            return false;
        }
        
        var rdata = {};
        $('#regform input').each(function(){ 
            rdata[$(this).attr('name')] = $(this).val();
        });
        
        $.post(BASEURL+'/registration/validate', rdata, function(data){ 
            if (data.result === true) {
            	alert('Не забудьте активировать аккаунт! Вам должно прийти письмо с ключем активации');
                holywars.closeRegForm();
                // logging in
                $.ajax({
                    url: BASEURL+"/do/log-in?ajaxcheck=true",
                    type: 'POST',
                    data: {auth_login: rdata.username, auth_pass: rdata.password1},
                    success: function(html){ 
                        HASIDENTITY = true;
                        $('#userinfoplace').html(html); 
                        $('#userloginplace').html('<a href="'+BASEURL+'/do/log-out"><b>Выход</b></a>');
                        //holywars.closeLoginForm();
                    },
                    error: function(){
                        alert('Ошибка! Автовход невозможен');
                    }
                });
            } else { 
                var errStr = '';
                for (var x in data.errors) { 
                    for (var xx in data.errors[x]) { 
                        errStr += data.errors[x][xx] + "\n";
                    }
                }
                alert(errStr);
                holywars.loadCaptcha();
            }
        }, "json");
        return false;
    },
    openLoginForm : function() { $('#loginlink').hide(); $('#loginform').show(); return false; },
    openOpenIdForm : function() { $('#loginlink').hide(); $('#openidform').show(); return false; },
    closeLoginForm : function() { $('#loginlink').show(); $('#loginform').hide(); return false; },
    closeOpenIdForm : function() { $('#loginlink').show(); $('#openidform').hide(); return false; },
    submitLoginForm : function() { $('#loginform form').submit(); return false; },
    submitOpenIdForm : function() { $('#openidform form').submit(); return false; },
    warRatingPlus : function(uid, el) {
        if (HASIDENTITY!==true) {
            this.openLoginForm(); return false;
        }
        if ($(el).hasClass('plus')) {
            return false;
        }
        $.postJSON(BASEURL+"/vote/vote-war", {type:'plus',target_id:uid}, function(data){
            if (data.result == true) {
    var myvoters = '<div id="'+uid+'" class="voters" style="display: none;">';
        myvoters += '<div class="div_1">';
        myvoters += '<table width="100%">';
        myvoters += '<tbody><tr>';
        myvoters += '<td class="first_td">( <span class="dig_plus">'+data.myvoters_plus+'</span> / <span class="dig_minus">'+data.myvoters_minus+'</span> )</td>';
        myvoters += '<td><a onclick="document.getElementById(\''+uid+'\').style.display=\'none\'; return false;" href="#">Закрыть</a></td>';
        myvoters += '</tr>';
        myvoters += '</tbody></table>';
        myvoters += '<div class="container">';
        if(data.myvoters.length > 5)
          var myvoters_count = 5;
        else
          var myvoters_count = data.myvoters.length;
        for(var i=0; i < myvoters_count; i++)
        {
          myvoters += '<div class="'+ data.myvoters[i].type+'"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><a href="'+BASEURL+'/user/'+data.myvoters[i].user_id+'">'+data.myvoters[i].username+'</a></div>';
        }
        myvoters += '      </div></div>';
        myvoters += '<div class="div_2"></div>';
        myvoters += '</div>';

                var parent = $('#war_rating').parent();
                $('#war_rating').remove();
                parent.html('<span id="war_rating" onclick="document.getElementById(\''+uid+'\').style.display=\'block\'; return false;"></span>');
                $('#war_rating').html(data.new_val);
                $('#'+uid).after().remove();
                $('#war_rating').after(myvoters);

                $("#war_rating").removeClass();

                if(data.new_val < 0){
                    $("#war_rating").addClass("minus");
                }
                if(data.new_val == 0){
                    $("#war_rating").addClass("grey");
                }
                if(data.new_val > 0){
                    $("#war_rating").addClass("plus");
                }
                $("#rating_minus").hide();
                $("#rating_plus").html($("#a_plus").html());
            } else if (data.error) {
                alert(data.error);
            }
        });
        $(el).addClass('plus');
        return false;
    },
    warRatingMinus : function(uid, el) {
        if (HASIDENTITY!==true) {
            this.openLoginForm(); return false;
        }
        if ($(el).hasClass('minus')) {
            return false;
        }
        $.postJSON(BASEURL+"/vote/vote-war", {type:'minus',target_id:uid}, function(data){
            if (data.result == true) {

    var myvoters = '<div id="'+uid+'" class="voters" style="display: none;">';
        myvoters += '<div class="div_1">';
        myvoters += '<table width="100%">';
        myvoters += '<tbody><tr>';
        myvoters += '<td class="first_td">( <span class="dig_plus">'+data.myvoters_plus+'</span> / <span class="dig_minus">'+data.myvoters_minus+'</span> )</td>';
        myvoters += '<td><a onclick="document.getElementById(\''+uid+'\').style.display=\'none\'; return false;" href="#">Закрыть</a></td>';
        myvoters += '</tr>';
        myvoters += '</tbody></table>';
        myvoters += '<div class="container">';
        if(data.myvoters.length > 5)
          var myvoters_count = 5;
        else
          var myvoters_count = data.myvoters.length;
        for(var i=0; i < myvoters_count; i++)
        {
          myvoters += '<div class="'+ data.myvoters[i].type+'"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><a href="'+BASEURL+'/user/'+data.myvoters[i].user_id+'">'+data.myvoters[i].username+'</a></div>';
        }
        myvoters += '      </div></div>';
        myvoters += '<div class="div_2"></div>';
        myvoters += '</div>';
                var parent = $('#war_rating').parent();
                $('#war_rating').remove();
                parent.html('<span id="war_rating" onclick="document.getElementById(\''+uid+'\').style.display=\'block\'; return false;"></span>');
                $('#war_rating').html(data.new_val);
                $('#'+uid).after().remove();
                $('#war_rating').after(myvoters);

                $("#war_rating").removeClass();

                if(data.new_val < 0){
                    $("#war_rating").addClass("minus");
                }
                if(data.new_val == 0){
                    $("#war_rating").addClass("grey");
                }
                if(data.new_val > 0){
                    $("#war_rating").addClass("plus");
                }
                $("#rating_plus").hide();
                $("#rating_minus").html($("#a_minus").html());
            } else if (data.error) {
                alert(data.error);
            }
        });
        $(el).addClass('minus');
        return false;
    },
    warRatingAdmin : function(uid, val, el) {
        
        if (HASIDENTITY!==true) {
            this.openLoginForm(); return false;
        }
        
        $.postJSON(BASEURL+"/vote/vote-war", {type:'admin', value:val, target_id:uid}, function(data){
            if (data.result == true) {
                $('#war_rating').html(data.new_val);

                $("#war_rating").removeClass();

                if(data.new_val < 0){
                    $("#war_rating").addClass("minus");
                }
                if(data.new_val == 0){
                    $("#war_rating").addClass("grey");
                }
                if(data.new_val > 0){
                    $("#war_rating").addClass("plus");
                }
            } else if (data.error) {
                alert(data.error);
            }
        });
        
        //alert(val);
        return false;
    },
    userRatingPlus : function(uid, el) {
        if (HASIDENTITY!==true) {
            this.openLoginForm(); return false;
        }
        if ($(el).hasClass('plus')) {
            return false;
        }
        $.postJSON(BASEURL+"/vote/vote-user", {type:'plus',target_id:uid}, function(data){
            if (data.result == true) {
                $('#profilekarma').html(data.new_val);
            } else if (data.error) {
                alert(data.error);
            }
        });
        $(el).addClass('plus');
        return false;
    },
    userRatingMinus : function(uid, el) {
        if (HASIDENTITY!==true) {
            this.openLoginForm(); return false;
        }
        if ($(el).hasClass('minus')) {
            return false;
        }
        $.postJSON(BASEURL+"/vote/vote-user", {type:'minus',target_id:uid}, function(data){ 
            if (data.result == true) {
                $('#profilekarma').html(data.new_val); 
            } else if (data.error) {
                alert(data.error);
            }
        });
        $(el).addClass('minus');
        return false;
    },
    voteForComment : function(el, type, commId) {
        $.postJSON(BASEURL+"/vote/vote-comment", {type:type,target_id:commId}, function(data){ 
            if (data.result == true) { 
                var jqEl = $(el);
                var curTD = jqEl.parent();
                var curTR = curTD.parent();
                var img = jqEl.html();
                if (data.new_val > 0) {
                    var numClass = 'inner_plus';
                } else if (data.new_val == 0) {
                    var numClass = 'inner_zero';
                } else {
                    var numClass = 'inner_minus';
                }
                var val = (data.new_val > 0 ? '+'+data.new_val : data.new_val);
                curTR.children('.v_plus').html('');
                curTR.children('.v_minus').html('');
                curTR.children('.v_num').children('div').children('span').attr('class', numClass).html(val);

if(data.myvoters){
  var myvotershtml = '<div id="'+commId+'" class="voters" style="display: none; margin-left:-132px">';
  myvotershtml += '<div class="div_1">';
  myvotershtml += '<table width="100%">';
  myvotershtml += '<tr>';
  myvotershtml += '<td class="first_td">( <span class="dig_plus">'+data.myvoters_plus+'</span> / <span class="dig_minus">'+data.myvoters_minus+'</span> )</td>';
  myvotershtml += '<td><a onclick="document.getElementById(\''+commId+'\').style.display=\'none\'; return false;" href="#">Закрыть</a></td>';
  myvotershtml += '</tr>';
  myvotershtml += '</table>';
  myvotershtml += '<div class="container">';

  if(data.myvoters.length > 5)
    var myvoters_count = 5;
  else
    var myvoters_count = data.myvoters.length;
  for(var i=0; i < myvoters_count; i++)
  {
    myvotershtml += '<div class="'+ data.myvoters[i].type+'"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><a href="'+BASEURL+'/user/'+data.myvoters[i].user_id+'">'+data.myvoters[i].username+'</a></div>';
  }
    myvotershtml += '</div>';
    myvotershtml += '</div>';
    myvotershtml += '<div class="div_2"></div>';
    myvotershtml += '</div>';
}
curTR.children('.v_num').children('div.voters').remove();
curTR.children('.v_num').children('div').after(myvotershtml);

                curTD.html(img);
            } else if (data.error) {
                alert(data.error);
            }
        });
        return false;
    },
    deleteAvatar : function() {
        $.getJSON(BASEURL+"/do/delete-avatar", null, function(data){ 
            var src = data.result; 
            $('#profile_avatar').attr('src', src);
            $('#layout_avatar').attr('src', src);
        });
        return false;
    },
    openCommentBox : function(id, war_id, elmId) { 
        var searchForOld = $('#comment_reply_form');
        if (searchForOld.length > 0) {
            searchForOld.remove();
        }
        if (typeof elmId === 'undefined') elmId = id;
        
        var html = '<div id="comment_reply_form" class="reply_form">';
        html += '<form name="myForm" method="POST" action="'+BASEURL+'/comments/add/?war_id='+war_id+'&parent_id='+id+'" onsubmit="return holywars.postComment(this, \''+id+'\', \''+war_id+'\');">';
        /*html += '    <a href="#"><b>Bold</b></a> &nbsp;';
        html += '    <a href="#"><i>Italic</i></a> &nbsp;';
        html += '    <a href="#"><u>Underline</u></a> &nbsp;';
        html += '    <a href="#"><s>Strike</s></a> &nbsp;';*/
		html += '    <div onclick="tag_b()" class="input_div_b"><b>B</b></div>';
		html += '    <div onclick="tag_i()" class="input_div_b"><i>I</i></div>';
		html += '    <div onclick="tag_u()" class="input_div_b"><u>U</u></div>';
		html += '    <div title="Не используйте картинки более 350 пикселей в ширину, они испортят верстку." onclick="tag_img()" class="input_div_a">IMG</div>';
		html += '    <div onclick="tag_a()" class="input_div_a">A HREF</div>';
        html += '    <textarea id="comm_input" rows="5" cols="35" name="text"></textarea>';
		html += '    <div class="submit_b">';
      /*html += '    <input type="button" value="предпросмотр" onclick="holywars.previewComment(this, \''+id+'\', \''+war_id+'\');" /> &nbsp; ';*/
        html += '    <input type="submit" value="Написать" />';
		html += '    </div>';
        html += '</form>';
        html += '<div id="preview_box"></div>';
        html += '</div>';
        var place = $('#comm_reply_place_'+elmId);
        place.before(html);
		document.myForm.text.focus();
		cleanForm();
        return false;
    },
    editCommentBox : function(id, war_id) {
        $('#comm_edit_place_' + id).toggle();
	    var comment_text    =   $('#comment_text_' + id).html();
	    var reg=/<.+>:/;
	    var reporter   = reg.exec(comment_text);
        if(reporter && reporter[0]){
            $('#reporter_' + id).html(reporter[0]);
        }
        
        $.post(BASEURL+"/comments/get-text", {id:id}, function(data){ 
        	var html = '<div id="comment_edit_form" class="reply_form">';
            if(reporter && reporter[0]){
                html += '<form name="myForm_' + id + '" method="" action="" onsubmit="holywars.editComment(this, \''+id+'\', \''+war_id+'\', 1 ); return false;">';
            }
            else{
                html += '<form name="myForm_' + id + '" method="" action="" onsubmit="holywars.editComment(this, \''+id+'\', \''+war_id+'\' ); return false;">';
            }
            html += '    <div onclick="tag_b(\'comm_text_' + id + '\')" class="input_div_b"><b>B</b></div>';
            html += '    <div onclick="tag_i(\'comm_text_' + id + '\')" class="input_div_b"><i>I</i></div>';
            html += '    <div onclick="tag_u(\'comm_text_' + id + '\')" class="input_div_b"><u>U</u></div>';
            html += '    <div title="Не используйте картинки более 350 пикселей в ширину, они испортят верстку." onclick="tag_img(\'comm_text_' + id + '\')" class="input_div_a">IMG</div>';
            html += '    <div onclick="tag_a(\'comm_text_' + id + '\')" class="input_div_a">A HREF</div>';
            html += '    <textarea id="comm_text_' + id +'" rows="5" cols="35" name="text">' + data + '</textarea>';
            html += '    <div class="submit_b">';
            html += '    <input type="submit" value="Изменить" />';
            html += '    </div>';
            html += '</form>';
            html += '</div>';
    	    var place = $('#comm_edit_place_'+id);
            place.html(html);

            $('#comm_text_' + id).focus();
        });
        return false;
    },
    previewComment : function(el, id, war_id) { 
        var textarea = $(el).parent().children('textarea');
        var text = textarea.val();
        //console.log(text);
        $.post(BASEURL+"/comments/preview", {text:text}, function(data){ 
            $('#comment_reply_form form').hide();
            data+='<hr/><input type="button" value="к редактированию" onclick="holywars.cancelPreviewComment(this, \''+id+'\', \''+war_id+'\');" />';
            $('#comment_reply_form #preview_box').html(data); 
        });
    },
    cancelPreviewComment : function(el, id, war_id) { 
        $('#comment_reply_form #preview_box').html(''); 
        $('#comment_reply_form form').show();
    },
    postComment : function(el, id, war_id) { 
        var textarea = $('#comment_reply_form textarea');
        var text = textarea.val();
        if (text.length == 0 || /^\s+$/.test(text)) {
        /* */
        	alert('Не стоит постить пустой коммент');
        	return false;
        }
        $('#comment_reply_form input').attr('disabled', 'disabled');
        setTimeout(function(){ $('#comment_reply_form input').removeAttr("disabled"); }, 2000);
        var callback = function(data){ 
            if (data.success===true) { 
                var searchForOld = $('#comment_reply_form');
                if (searchForOld.length > 0) {
                    searchForOld.remove();
                }
            }
        }
        Hw_Comments.postAndLoad(id, text, callback);
        return false;
    },
    editComment : function(el, id, war_id, comment) {
        var textarea = $('#comm_text_' + id);
        var text = textarea.val();
        if (text.length == 0 || /^\s+$/.test(text)) {
        	alert('Не стоит постить пустой коммент');
        	return false;
        } else {
            $.postJSON(BASEURL+'/comments/edit/', { id: id, text: text}, function(data){
                 if(data.result){
                     if(comment){
                        reporter = $('#reporter_' + id).html();
                        $('#comment_text_' + id).html(reporter + ' ' + data.text);
                     }
                     else{
                         $('#comment_text_' + id).html(data.text);
                     }
                    $('#comm_edit_place_'+id).html('');
                    $('#comm_edit_place_'+id).hide();
                 }
            });
        }
    },
    deleteFromMy : function(warId) {
        $.postJSON(BASEURL+"/do/delete-from-my", {id:warId}, function(data){ 
            if (data.result == true) {
                $('#war_'+warId+'_top').remove();
                $('#war_'+warId+'_body').remove();
            }
        });
        return false;
    },
    addToMy : function(warId, el) {
        $.postJSON(BASEURL+"/do/add-to-my", {id:warId}, function(data){ 
            if (data.result == true && el) {
                $(el).remove();
            }
        });
        return false;
    },
    changeRubric : function(warId, rubricid, el) {
      $(el).parent().children('span.ico_status').children('img').remove();
      $(el).parent().children('span.ico_status').html('<img src="'+BASEPATH+'/public/images/holy_idle.gif" width="16" height="16" class="ico_status_16">');
      $.postJSON(BASEURL+"/rubrics/choose-rubric",{warid:warId,rubricid:rubricid}, function(data){ 
        if (data.result == true)
        {
          $(el).parent().children('span.ico_status').children('img').remove();
          $(el).parent().children('span.ico_status').html('<img src="'+BASEPATH+'/public/images/16_appy.gif" width="16" height="16" class="ico_status_16">');
          document.getElementById('rubric_sel_'+warId).style.display='none';
          document.getElementById('rubric_name_'+warId).style.display='inline';
          document.getElementById('rubric_sel_img_'+warId).style.display='inline';
          $(document.getElementById('rubric_name_'+warId)).html(data.rubric_name);
        }
        else
        {
          alert('err');
        }
      });
      return false;
    }
};

function countLines(strtocount, cols) {
	var hard_lines = 1;
	var last = 0;
	while ( true ) {
		last = strtocount.indexOf("\n", last+1);
		hard_lines ++;
		/* if ( hard_lines == 35) break; */
		if ( last == -1 ) break;
		}
	var soft_lines = Math.ceil(strtocount.length / (cols-1));
	var hard = eval("hard_lines " + unescape("%3e") + "soft_lines;");
	if ( hard ) soft_lines = hard_lines;
	return soft_lines;
}
function cleanForm() {
	var the_form = document.getElementById('comm_input');
	if (the_form) {
	    the_form.rows = countLines(the_form.value,the_form.cols) +1;
	}
	setTimeout("cleanForm();", 500);
}


function tag_b(textarea_id){

    if(textarea_id){
        var el=document.getElementById(textarea_id);
    }
    else{
        var el=document.getElementById("comm_input");
    }
    
    el.focus();

    if (el.selectionStart==null){
        var rng=document.selection.createRange();
        rng.text="<b>"+rng.text+"</b>"
    }
    else{
        el.value=el.value.substring(0,el.selectionStart)+
        "<b>"+
        el.value.substring(el.selectionStart,el.selectionEnd)+
        "</b>"+
        el.value.substring(el.selectionEnd);
    }
}

function tag_i(textarea_id){

    if(textarea_id){
        var el=document.getElementById(textarea_id);
    }
    else{
        var el=document.getElementById("comm_input");
    }

    el.focus();
    if (el.selectionStart==null){
        var rng=document.selection.createRange();
        rng.text="<b>"+rng.text+"</b>"
    }
    else{
        el.value=el.value.substring(0,el.selectionStart)+
        "<i>"+
        el.value.substring(el.selectionStart,el.selectionEnd)+
        "</i>"+
        el.value.substring(el.selectionEnd);
    }
}
function tag_u(textarea_id){

    if(textarea_id){
        var el=document.getElementById(textarea_id);
    }
    else{
        var el=document.getElementById("comm_input");
    }

    el.focus();
    if (el.selectionStart==null){
        var rng=document.selection.createRange();
        rng.text="<b>"+rng.text+"</b>"
    }
    else{
        el.value=el.value.substring(0,el.selectionStart)+
        "<u>"+
        el.value.substring(el.selectionStart,el.selectionEnd)+
        "</u>"+
        el.value.substring(el.selectionEnd);
    }
}
function tag_img(textarea_id){

    if(textarea_id){
        var el=document.getElementById(textarea_id);
    }
    else{
        var el=document.getElementById("comm_input");
    }

    el.focus();
    if (el.selectionStart==null){
        var rng=document.selection.createRange();
        rng.text="<b>"+rng.text+"</b>"
    }
    else{
        el.value=el.value.substring(0,el.selectionStart)+
        "<img src=\""+
        el.value.substring(el.selectionStart,el.selectionEnd)+
        "\" />"+
        el.value.substring(el.selectionEnd);
    }
}
function tag_a(textarea_id){

    if(textarea_id){
        var el=document.getElementById(textarea_id);
    }
    else{
        var el=document.getElementById("comm_input");
    }

    el.focus();
    if (el.selectionStart==null){
        var rng=document.selection.createRange();
        rng.text="<b>"+rng.text+"</b>"
    }
    else{
        el.value=el.value.substring(0,el.selectionStart)+
        "<a href=\""+
        el.value.substring(el.selectionStart,el.selectionEnd)+
        "\">Ссылка</a>"+
        el.value.substring(el.selectionEnd);
    }
}


function registerKeyDown(evt)
{
    if (!evt) evt = window.event;
    if (evt.ctrlKey) {
        switch (evt.keyCode) {
            case 37:
                var aelt = $('#previous_page');
                if (aelt.length > 0) location.href = aelt.attr('href');
                break;
            case 39:
                var aelt = $('#next_page');
                if (aelt.length > 0) location.href = aelt.attr('href');
                break;
        }
    }
}
document.onkeydown = registerKeyDown;

$(document).ready(function () { 
    
    $.postJSON = function(url, data, callback) {
    	$.post(url, data, callback, "json");
    };

    $('#regform-cnt').dialog({
        modal:true,
        resizable:false,
        draggable:false,
        width:393,
        height:378,
        autoOpen:false
    });
    
    var fields = [
        'username',
        'email',
        'password',
        'password2'
    ];
    for (var x in fields) {
        $('#reg_'+fields[x]).blur(function (e, aj) {
            var f = $(this).attr('id').replace('reg_', '');
            if (aj) var res = holywars['validate_'+f](false);
            else var res = holywars['validate_'+f]($(this).val());
            if ( res === true ) {
                $('#reg_'+f+'_pass').show();
                $('#reg_'+f+'_notpass').hide();
            } else {
                if ( res !== false ) { $('#reg_'+f+'_notpass').attr('title',res); $('#reg_'+f+'_notpass').tooltip({showURL: false}); }
                $('#reg_'+f+'_pass').hide();
                $('#reg_'+f+'_notpass').show();
            }
        });
    }
    
    $('#anonce').tooltip({showURL: false});
    //$('#previous_page').tooltip({showURL: false});
    //$('#next_page').tooltip({showURL: false});
});

function war_edit_open(war_id){
    $('#edit_war_' + war_id).toggle();
}

function war_edit(form, war_id, comment_flag){

    s1_title    =   form.side_a.value;
    s2_title    =   form.side_b.value;
    s1_desc     =   form.desc_a.value;
    s2_desc     =   form.desc_b.value;
    time_days   =   form.time_days.value;

    $.post('/hell/edit-war/?', { war_id: war_id, s1_title: s1_title, s2_title: s2_title, s1_desc: s1_desc, s2_desc: s2_desc, time_days: time_days},
        function(data){
            if(data.result){
                $('#s1_title_' + war_id).html(s1_title);
                $('#s2_title_' + war_id).html(s2_title);

                if(comment_flag){
                    $('#s1_title_dop_' + war_id).html(s1_title);
                    $('#s2_title_dop_' + war_id).html(s2_title);
                }

                $('#s1_desc_' + war_id).html(s1_desc);
                $('#s2_desc_' + war_id).html(s2_desc);
                $('#days_str_' + war_id).html(data.days_str);
            }
            else{
                alert('Форма не прошла проверку');
            }
        },"json"

    );
    $('#edit_war_' + war_id).toggle();
}

function TrimString(sInString){
    sInString = sInString.replace(/ /g, ' ');
    return sInString.replace(/(^\s+)|(\s+$)/g, '');
}