$(document).ready(function(){
    $(window).scroll(function () {
        offsets();
    }).resize(function () {
        offsets();
    });
    
    $("#logo").click(function(){
        window.location.href = '/';
        return false;
    });
    $("input[name='login'], input[name='password']").focus(function () {
        if($(this).attr('value') == 'Логин' || $(this).attr('value') == 'Пароль' ) {
            $(this).attr('value','');
        }
    });
    $(".anonym-login").click(function(){
        $("#user, #anonym, #login-box").hide();
        $("#login-box").show();
        return false;
    });
    $(".login-submit").click(function(){
        $("form[name='loginform']").submit();
    });    
    
    $(".popup-close").click(function(){
        $("#overlay, .popup-wrap").hide();
        return false;
    });
        $(".suggest-noun-submit").click(function(){
            var postWordId = $(".word-input form input[name='wordid']").attr('value');
            var postNoun = $(".suggest-noun-input").attr('value');
            var postLink = $(".source-link").attr('value');
            if ((postLink == 'http://') || (postLink == '')) {
                $(".source-link").css('border','1px solid red');
                return false;
            } else {
                $(".source-link").css('border','1px solid #ccc');
            }
            
            $("#overlay, .popup-wrap").hide();
            $.post("/ajax.php", { action: "suggestnoun", wordid: postWordId, noun: postNoun, link: postLink }, function(data){
                if (data != "") {
                    alert('Данное слово уже предлагалось другими участниками и было отклонено по следующей причине:\n- '+data);
                } else{
                    alert('Предложенное Вами существительное будет рассмотрено в течение 24 часов и, в случае утверждения, добавлено в список.\nСпасибо за активное участие!');
                }
                $(".source-link").attr('value','http://');
                $(".suggest-noun-input").attr('value','');
            });
        });
    $(".suggest-word").click(function(){
        offsets();
        $("#overlay, #popup-suggest-word").show();
        return false;
    });
        $(".suggest-word-submit").click(function(){
            var postWord = $(".suggest-word-input").attr('value');
            $("#overlay, .popup-wrap").hide();
            $.post("/ajax.php", { action: "suggestword", word: postWord }, function(data){
                alert('Если из предложенного слова возможно составить как минимум 100-150 существительных - оно будет обязательно включено в список.\nСпасибо за активное участие!');
                $(".suggest-word-input").attr('value','');
            });
        });               
    $(".report-error").click(function(){
        offsets();
        $("#overlay, #popup-report-error").show();
        return false;
    });
        $(".report-error-submit").click(function(){
            var text = $(".report-error-input").val();
            text += '<br /><br />'+navigator.userAgent;
            $("#overlay, .popup-wrap").hide();
            $.post("/ajax.php", { action: "reporterror", text: text }, function(data){
                alert('Обещаем, все ошибки будут исправлены.\nСпасибо за активное участие!');
                $(".report-error-input").text('');
            });
        });        
    $(".feedback").click(function(){
        offsets();
        $("#overlay, #popup-feedback").show();
        return false;
    });
        $(".feedback-submit").click(function(){
            var text = $(".feedback-input").val();
            text += '<br /><br />'+navigator.userAgent;
            $("#overlay, .popup-wrap").hide();
            $.post("/ajax.php", { action: "feedback", text: text }, function(data){
                alert('Ваше сообщение будет обязательно рассмотрено.\nСпасибо за активное участие!');
                $(".feedback-input").text('');
            });
        });
    $(".toblog").click(function(){
        offsets();
        $("#overlay, #popup-toblog").show();
        return false;        
    });
    
    $("form[name='nounform']").submit(function(){
        $(".word-submit").click();
        return false;
    });
    $(".word-submit").click(function(){
        if ($("#clickable").attr('value') == '0') {return false;}
        var postNoun = $(".word-input form input[name='noun']").attr('value').toLowerCase();
        if (postNoun.length < 2) {return false;}
        if ((typeof DoneNouns != "undefined") && InArray(DoneNouns, postNoun)) {
            $("#status-add").html('<div class="content-status status-error"><p><span>Слово <strong>'+postNoun+'</strong> не было добавлено</span><br />(Вы уже составляли слово <b>'+postNoun+'</b>)</p></div>');
            $(".word-input form input[name='noun']").attr('value','');
            return false;
        }
        var sortOrder = $("#sortorder").attr('value');
        var sortKey = $("#sortkey").attr('value');                
        var postWordId = $(".word-input form input[name='wordid']").attr('value');
        var postWord = $(".word-input form input[name='word']").attr('value').toLowerCase();
        if(!CheckEntry(postNoun, postWord)) {
            $("#status-add").html('<div class="content-status status-error"><p><span>Слово <strong>'+postNoun+'</strong> не было добавлено</span><br />(<strong>'+postNoun+'</strong> нельзя составить из <strong>'+postWord+'</strong>)</p></div>');
            $(".word-input form input[name='noun']").attr('value','');
            return false;
        }
        $(".word-input form input[name='noun']").css('background-color','#ddd');
        $(".word-submit").html('<img src="/images/ajax.gif" />');
        $("#clickable").attr('value','0');
        $.post("/ajax.php", { action: "addnoun", noun: postNoun, wordid: postWordId, sortkey: sortKey, sortorder: sortOrder, captcha: ufo }, function(data){
            var content = data.split("::");
            $("#status-add").html(content[0]);
            $("#status-params").html(content[1]);
            $("#composes").html(content[2]);
            $("#top-ten").html(content[3]);                    
            $("#time-to-play").html(content[4]);
            $("#captcha").html(content[5]);
            suggestUpdate(postNoun);
            toBlogUpdate();
            stripe();
            $(".word-input form input[name='noun']").css('background-color','#fff').attr('value','');
            $(".word-submit").html('Добавить');
            $("#clickable").attr('value','1');
        });
        $(".word-input form input[name='noun']").focus();
        return false;
    });

    $("form[name='captcha-form']").submit(function(){
        $(".word-submit").click();
        return false;
    });    
    
    $(".sort-num").click(function(){
        var postWordId = $(".word-input form input[name='wordid']").attr('value');
        $("#sortkey").attr('value', 1);
        composesSort(postWordId);
        return false;
    });
    $(".sort-noun").click(function(){
        var postWordId = $(".word-input form input[name='wordid']").attr('value');
        $("#sortkey").attr('value', 2);
        composesSort(postWordId);
        return false;
    });            
    $(".sort-percent").click(function(){
        var postWordId = $(".word-input form input[name='wordid']").attr('value');
        $("#sortkey").attr('value', 3);
        composesSort(postWordId);
        return false;
    });
    $(".sort-len").click(function(){
        var postWordId = $(".word-input form input[name='wordid']").attr('value');
        $("#sortkey").attr('value', 4);
        composesSort(postWordId);
        return false;
    });    
    
    $(".check-login").click(function(){
        CheckLogin();
        return false;
    });
    $("input[name='reglogin']").blur(function(){
        $(".check-login").click();
        return false;
    })
    $(".regform-submit").click(function(){
        $("form[name='regform']").submit();
        return false;
    });
    $("form[name='regform']").submit(function(){
        checkRegForm();
        return (error == 0) ? true : false;
    });
    
    $(".change-pass-href").click(function(){
        $(this).hide();
        $(".change-pass-div").show();
        return false;
    });
    $(".profform-submit").click(function(){
        $("form[name='profform']").submit();
        return false;
    });
    $("form[name='profform']").submit(function(){
        checkProfForm();
        return (error == 0) ? true : false;
    });
    
    $(".forgotform-submit").click(function(){
        $("form[name='forgotform']").submit();
        return false;
    });
    $("form[name='forgotform']").submit(function(){
        checkForgotForm();
        return (error == 0) ? true : false;
    });        
    
    error = 0;
    stripe();         
});
function offsets() {
    if ($.browser.msie && $("#overlay").css('position') == 'absolute') {
        var top = self.pageYOffset || (document.documentElement && document.documentElement.scrollTop) || (document.body && document.body.scrollTop);
        var height = document.compatMode=='CSS1Compat' && !window.opera?document.documentElement.clientHeight:document.body.clientHeight; 
        $("#overlay, .popup-wrap").css('top', top).css('height', height);
        return false;                    
    } else {
        return false;
    }                   
}
function stripe() {
    $(".content-table table tr:even td").addClass('stripe');
}
function suggestUpdate(postNoun) {
    $(".suggest-noun").click(function(){
        $(".suggest-noun-input").attr('value', postNoun);
        offsets();
        $("#overlay, #popup-suggest-noun").show();
        return false;
    });                    
}
function toBlogUpdate() {
    $(".toblog").click(function(){
        offsets();
        $("#overlay, #popup-toblog").show();
        return false;        
    });                    
}
function composesSort(postWordId) {
    sortOrder = $("#sortorder").attr('value');  
    
    sortOrderNew = (sortOrder == 1) ? 2 : 1;
    $("#sortorder").attr('value', sortOrderNew);
                
    var sortKey = $("#sortkey").attr('value');
    $.post("/ajax.php", { action: "composessort", wordid: postWordId, sortkey: sortKey, sortorder: sortOrderNew }, function(data){
        $("#composes").html(data);
        stripe();
    });
}

/* REGISTER */

function checkRegForm() {
    error = 0;
    var login = $("form[name='regform'] input[name='reglogin']");
    var mail = $("form[name='regform'] input[name='regmail']");
    var pass1 = $("form[name='regform'] input[name='regpass1']");
    var pass2 = $("form[name='regform'] input[name='regpass2']");
    var mailpreg = /^([a-z0-9])(([-a-z0-9._])*([a-z0-9]))*\@([a-z0-9])(([a-z0-9-])*([a-z0-9]))*(\.([a-z0-9])([-a-z0-9_-])?([a-z0-9])+)+$/i;
    
    if (login.attr('value').length < 4 || $("input[name='check-login-trigger']").attr('value')!='0') {login.css('border','1px solid red'); error++;} else {login.css('border','1px solid #ccc');}
    if (!mail.attr('value').match(mailpreg)) {mail.css('border','1px solid red'); error++;} else {mail.css('border','1px solid #ccc');}    
    if (pass1.attr('value').length < 4) {pass1.css('border','1px solid red'); error++;} else {pass1.css('border','1px solid #ccc');}
    if (pass1.attr('value') != pass2.attr('value')) {pass2.css('border','1px solid red'); error++;} else {pass2.css('border','1px solid #ccc');}
    return (error > 0) ? false : true;
}

function CheckLogin() {
    var login = $("form[name='regform'] input[name='reglogin']").attr('value');
    $.post("/ajax.php", { action: "checklogin", postlogin: login }, function(data){
        if(data == 1) {
            $(".check-login").text('Логин свободен');
            $("input[name='check-login-trigger']").attr('value','0');
            $("form[name='regform'] input[name='reglogin']").css('border','1px solid #ccc');
        } else  {
            $(".check-login").text('Занят. Проверить?');
            $("input[name='check-login-trigger']").attr('value','1');
            $("form[name='regform'] input[name='reglogin']").css('border','1px solid red');
        }
    });
}

/*PROFILE*/
function checkProfForm() {
    error = 0;
    var mail = $("form[name='profform'] input[name='profmail']");
    var pass0 = $("form[name='profform'] input[name='profpass0']");
    var pass1 = $("form[name='profform'] input[name='profpass1']");
    var pass2 = $("form[name='profform'] input[name='profpass2']");
    var mailpreg = /^([a-z0-9])(([-a-z0-9._])*([a-z0-9]))*\@([a-z0-9])(([a-z0-9-])*([a-z0-9]))+(\.([a-z0-9])([-a-z0-9_-])?([a-z0-9])+)+$/i;
    
    if (!mail.attr('value').match(mailpreg)) {mail.css('border','1px solid red'); error++;} else {mail.css('border','1px solid #ccc');}    
    if(pass0.attr('value').length > 0 || pass1.attr('value').length > 0 || pass2.attr('value').length > 0 ) {
        if (pass0.attr('value').length < 1) {pass0.css('border','1px solid red'); error++;} else {pass0.css('border','1px solid #ccc');}
        if (pass1.attr('value').length < 4) {pass1.css('border','1px solid red'); error++;} else {pass1.css('border','1px solid #ccc');}
        if (pass1.attr('value') != pass2.attr('value')) {pass2.css('border','1px solid red'); error++;} else {pass2.css('border','1px solid #ccc');}
    }
    return (error > 0) ? false : true;      
}

/*FORGOT*/
function checkForgotForm() {
    error = 0;
    var login = $("form[name='forgotform'] input[name='forgotlogin']");    
    var mail = $("form[name='forgotform'] input[name='forgotmail']");
    var mailpreg = /^([a-z0-9])(([-a-z0-9._])*([a-z0-9]))*\@([a-z0-9])(([a-z0-9-])*([a-z0-9]))+(\.([a-z0-9])([-a-z0-9_-])?([a-z0-9])+)+$/i;
    
    if (!mail.attr('value').match(mailpreg)) {mail.css('border','1px solid red'); error++;} else {mail.css('border','1px solid #ccc');}    
    if (login.attr('value').length < 4) {login.css('border','1px solid red'); error++;} else {login.css('border','1px solid #ccc');}
    return (error > 0) ? false : true;
}


/*SUPPORT*/
function InArray(WordArray, Noun) {
    for (i=0; i<WordArray.length; i++) {
        if (WordArray[i] == Noun) {
            return i;
        }
    }
    return false;
}

function str_split(f_string, f_split_length, f_backwards ) {
    if (f_backwards == undefined) {
        f_backwards = false;
    }
 
    if(f_split_length > 0) {
        var result = new Array();
        if(f_backwards) {
            var r = (f_string.length % f_split_length); 
            if(r > 0) {
                result[result.length] = f_string.substring(0, r);
                f_string = f_string.substring(r);
            }
        }
        while(f_string.length > f_split_length) {
            result[result.length] = f_string.substring(0, f_split_length);
            f_string = f_string.substring(f_split_length);
        }
        result[result.length] = f_string;
        return result;
    } 
    return false;
}

function CheckEntry(noun, word) {
    var NounArray = str_split(noun, 1);
    var WordArray = str_split(word, 1);
    
    for (j=0; j<NounArray.length; j++) {
        if (typeof InArray(WordArray, NounArray[j]) == 'number') {
            n = InArray(WordArray, NounArray[j]);
            WordArray.splice(n,1);
        } else {
            return false;
        }
    }
    return true;
}