function registerFormValidate(){
   $("#rigisterForm").validate({
        rules: {
            email: {
                required: true,
                email: true
            },
            pass1: {
                required: true,
                minlength: 5
            },
            pass2: {
                required: true,
                minlength: 5,
                equalTo: "#pass1"
            }
        },
        messages: {
            email: {
                required: "Please provide an email",
                email: "Please enter a valid email address"
            },
            pass1: {
                required: "Please provide a password",
                minlength: "Your password must be at least 5 characters long"
            },
            pass2: {
                required: "Please confirm a password",
                minlength: "Your password must be at least 5 characters long"
            }
        },
        errorPlacement: function(error, element) {
            var id = element.attr("id");
            $("#"+id+"_error").append(error);
        }
    });
    $("#pass1").blur(function() {
        $("#pass2").valid();
    });
}

function settingsFormValidate(){
   $("#settingsForm").validate({
        rules: {
            nameUser:{
                required: true
            },
            email: {
                required: true,
                email: true
            },
            pass1: {
                minlength: 5
            },
            pass2: {
                minlength: 5,
                equalTo: "#pass1"
            }
        },
        messages: {
            nameUser:{
                required: "Please provide a name"
            },
            email: {
                required: "Please provide an email",
                email: "Please enter a valid email address"
            },
            pass1: {
                minlength: "Your password must be at least 5 characters long"
            },
            pass2: {
                minlength: "Your password must be at least 5 characters long"
            }
        },
        errorPlacement: function(error, element) {
            var id = element.attr("id");
            $("#"+id+"_error").append(error);
        }
    });
    $("#pass1").blur(function() {
        $("#pass2").valid();
    });
}

function checkEmail(){
   $("#checkEmailForm").validate({
        rules: {
            email: {
                required: true,
                email: true
            }
        },
        messages: {
            email: {
                required: "Please provide an email",
                email: "Please enter a valid email address"
            }
        },
        errorPlacement: function(error, element) {
            var id = element.attr("id");
            $("#"+id+"_error").append(error);
        }
    });
}

function checkEmailNotRequired(){
   $("#feedbackForm").validate({
        rules: {
            name: {
                required: true
            },
            EmailSend: {
                required: true,
                email: true
            },
            textFeedback:{
                required: true
            },
            user_code:{
                required: true
            }
        },
        messages: {
            name: {
                required: "Please provide a name"
            },
            EmailSend: {
                required: "Please provide an email",
                email: "Please enter a valid email address"
            },
            textFeedback:{
                required: "Please provide a message"
            },
            user_code:{
                required: "Please enter text from the image"
            }
        },
        errorPlacement: function(error, element) {
            var id = element.attr("id");
            $("#"+id+"_error").append(error);
        }
    });
}

function checkFile(){
    $("#formCheckFile").validate({
        rules: {
            newFile: {
                required: true,
                accept: "xls|xlsx|xlsm|xlsb|xltx|xltm|xlv|csv|dbf|ods|doc|docx|txt|rtf|dotx|dot|html|htm|xps|mhtm|mhtml|xml|wps|odt|ppt|pptx|pot|potx|pps|ppsx|odp"
            }
        },
        messages: {
            newFile: {
                required: "Please choose a file",
                accept: "Bad file format..."
            }
        },
        errorPlacement: function(error, element) {
            var id = element.attr("id");
            $("#"+id+"_error").append(error);
        }
    });
}

function checkText(){
    $("#formCheckText").validate({
        rules: {
            insertText: {
                required: true,
                minlength: 80
            }
        },
        messages: {
            insertText: {
                required: "Please provide a text",
                minlength: "Your text so small"
            }
        },
        errorPlacement: function(error, element) {
            var id = element.attr("id");
            $("#"+id+"_error").append(error);
        }
    });
}

function openPopupFile(){
    $('.popup_bg').show(200);
    $('.form_popup_file').show(300);
}

function openPopupText(){
    $('.popup_bg').show(200);
    $('.form_popup_text').show(300);
}

function closePopupFile(){
    $('.popup_bg').hide(300);
    $('.form_popup_file').hide(200);
}

function closePopupText(){
    $('.popup_bg').hide(300);
    $('.form_popup_text').hide(200);
}

function checkOption(state){
    if (state == 'other')
        $('#input_hidden').toggle(300).focus();
}

function deleteFiles(){
    var get = window.location.toString();
    files_id = new Array();
    $('input:checkbox.file_action').each(function(index) {
        if ($(this).attr('checked'))
            files_id.push($(this).attr('id'));
    });

    if (files_id != ''){
       $.ajax({
            type: "POST"
            ,url: "/moduls/fileDel.php"
            ,data: {
                files_id: files_id,
                get: get
            }
            ,success: function(html) {
                $("#alldocs").html(html);
            }
        }).responseText;
    }
    else alert("Please select files");
    
    return false;
}

function detectText(){
    $.each("div[class*=plag_]", function(index, plag) {
        $('.plag_'+index).hover(
            function () {
                $(this).addClass('current');
                $('.plag_'+index+' > ul').addClass('current');
            },
            function () {
                $(this).removeClass('current');
                $('.plag_'+index+' > ul').removeClass('current');
            }
        )
        $('.plag_'+index+' > ul').hover(
            function () {
                $(this).addClass('current');
                $('.plag_'+index).addClass('current_2');
            },
            function () {
                $(this).removeClass('current');
                $('.plag_'+index).removeClass('current_2');
            }
        )
    });
}

function getTimeZone(){
    d = new Date();
    gmtHours = -d.getTimezoneOffset()/60;
    $.post("/moduls/setTZ.php", {offset: gmtHours} );
}

function refresh(){
    var get = window.location.toString();
    files_id = new Array();
    $('input:checkbox.file_action').each(function(index) {
        if ($(this).attr('checked'))
            files_id.push($(this).attr('id'));
    });

    $('#alldocs').load('/moduls/viewDocs.php', {get:get, files_id:files_id});
}

function runSources(){
    var top_marker = $('#ctatic_top').offset().top;
    var max_top = $(".view_original").offset().top;

    var bottom_left = $('.view_original').offset().top + $('.view_original').height();
    var bottom_right = $('.box_results').offset().top + $('.box_results').height();

    if(top_marker <= max_top){
        var pos_top = max_top - $(document).scrollTop();
        $('.box_results').css('top',pos_top+'px');
    }
    else if (bottom_right > bottom_left){
        var pos = bottom_left - bottom_right;
        $('.box_results').css('top',pos+'px');
    }
    else $('.box_results').css('top','5px');

}

function allcheckbox(){
    $(".box_results input:checkbox").each(function(index) {

        if ($("#main_checkbox").attr("checked") )
            $(this).attr("checked","checked");
        else
            $(this).removeAttr("checked");
        
        $(".div_hide input[id*=hide_]").each(function () {
            highlight(this);
        })
    });
}

function animate(thisel){
    var reg=/plag_(\d+)/;
    var thisElem=reg.exec($(thisel).attr("class"));
    if (thisElem != null){
        var text = $(".view_original ."+thisElem[0]).offset().top;
        var source = $(".box_results ."+thisElem[0]).offset().top;
        var pScroll = text - source;
        $("html").animate({scrollTop: "+=" + pScroll + "px"}, 800);
        $("html").offsetParent().animate({scrollTop: "+=" + pScroll + "px"}, 800);

        var regStep = /step_(\d+)/;
        var classStep=regStep.exec($(thisel).prev().attr("class"));
        $(thisel).prev().removeClass(classStep[0]);
        $(thisel).prev().addClass("step_0");
    }
}

function moveNextPart(action, thisel){
    if (action == 'down')
        var reg = /mbot_(\d+)/;
    else if (action == 'up')
        var reg = /mtop_(\d+)/;

    var thisElem=reg.exec($(thisel).attr("id"));
    var regCur = /step_(\d+)/;
    var cur = regCur.exec($(thisel).parent().parent().attr("class"));
    var current = parseInt(cur[1]);

    if ( (thisElem[1] != null) && (current != null) ){
        var text = $(".view_original .plag_"+thisElem[1]).eq(current).offset().top;
        var source = $(".box_results #plag_"+thisElem[1]).offset().top;
        var pScroll =  text - source ;
        $("html").animate({scrollTop: "+=" + pScroll + "px"}, 800);
        $("html").offsetParent().animate({scrollTop: "+=" + pScroll + "px"}, 800);

        var leng = parseInt($(".view_original .plag_"+thisElem[1]).length);
        if ( (action == 'down') && ( leng-1 > current ) )
            nextPos = current + 1;
        else if ( (action == 'up') && (current > 0) )
            nextPos = current - 1;

        regCur.exec($(thisel).parent().parent().removeClass("step_"+current));
        regCur.exec($(thisel).parent().parent().addClass("step_"+nextPos));

        if (pScroll == 0)
            moveNextPart(action, thisel);
    }
}

function highlight(thisel){
    var reg=/hide_(\d+)/;
    var thisElem=reg.exec($(thisel).attr("id"));
    num = thisElem[1];

    //add sources
    if ($(thisel).attr("checked")){
        //menu
        $(".box_results #plag_"+num).addClass("plag_"+num);

        //text
        $("span[class*=_"+num+"]").each(function(index) {
            var clH = $(this).attr("class");
            var arH = clH.split(" ");

            for (elemH in arH){
                if (arH[elemH] == "hide_"+num){
                    $(this).addClass("plag_"+num);
                    $(this).removeClass("hide_"+num);
                }
                if (arH[elemH] == "visSpan")
                    $(this).removeClass("visSpan");
            }
        });
    }
    //disabled sources
    else {
        //menu
        $(".box_results #plag_"+num).removeClass("plag_"+num);

        //text
        $("span[class*=_"+num+"]").each(function(index) {
            var classes = $(this).attr("class");
            var arr = classes.split(" ");
            var regEx=/plag_(\d+)/;

            flag = true;
            for (elem in arr){
                if ( (arr[elem]!="plag_"+num) && (regEx.test(arr[elem])))
                    flag = false;
                if (arr[elem]=="plag_"+num){
                    $(this).addClass("hide_"+num);
                    $(this).removeClass("plag_"+num);
                }
            }

            if (flag == true){
                $(this).addClass("visSpan");
            }
        });
    }
}

