// All common functions
function hide_span(el){
    if(el){
        parent_node = el.parentNode;
        span_visible_html = parent_node.innerHTML;
        el.style.display='none';
        parent_node.innerHTML += '<img src="files/img/ajaxfb.gif" />';
    }
}
function show_span(el){
    if(el){
        parent_node.innerHTML = span_visible_html;
    }
}

function create_errormsg(title,body){
    var my_msg='<div class="popup_narrow AjaxError" id="popupAjaxError"><div class="shadow"><div class="content"><h3>'+title+'</h3><a class="clouse" href="javascript:removePopup(\'popupAjaxError\')">&#215; закрыть</a><p>'+body+'</p></div></div><!--[if lte IE 6]><iframe></iframe><![endif]--></div>';
    $('#popups_errors').html(my_msg);
    $('#popupAjaxError').show('fast');
    return my_msg;
}

function create_dialogbox(title,body){
    var my_msg='<div class="popup_narrow AjaxError" id="popupAjaxError"><div class="shadow"><div class="content"><h3>'+title+'</h3><a class="clouse" href="javascript:removePopup(\'popupAjaxError\')">&#215; закрыть</a><p>'+body+'</p></div></div><!--[if lte IE 6]><iframe></iframe><![endif]--></div>';
    $('#popups_errors').innerHTML=my_msg;
    $('#popupAjaxError').style.display='block';
    return my_msg;
}


function obtain_indexes(form, keyword){
    var themes_j=Array();
    var hiddens = form.getElementsByTagName('input');
    for(i=0;i<hiddens.length;i++){
        if(hiddens[i].name==keyword){
            themes_j[themes_j.length]=hiddens[i].value;
        }
    }
    return themes_j;
}

function get_p_type(form){
    var p_type='post';
    if(form.p_type[1].checked){
        p_type='comment';
    }
    return p_type;
}

function volumeTest(inp){
    var regex = /^\d+$/;
    if(! regex.test(inp)){
        return false;
    }
    if(inp<=0 || inp>=1000){
        return false;
    }
    return true;
}

function priceTest(inp){
    var regex = /^\d+(?:\.\d{1,2})?$/;
    if(!regex.test(inp)){
        return false;
    }
    if(inp<=0 || inp>=5000){
        return false;
    }
    return true;
}

function emailTest(inp){
    var regex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
    return regex.test(inp);
}


function renewCategoryCount(){
    $.post("ajax/ajax.renew_category_count.php", {
                                        current_page: c_page,
                                        key: userkey
                                      },
        function(json) {
            if(json.error == 'true'){
                $('#popups_info').html($('#popups_info').html()+json.html);
                $('#'+json.templ).show();
            }else{                if(c_page == 'advertiser_executors_general.php' || c_page == 'advertiser_executors_chosen.php' || c_page == 'advertiser_executors_neglected.php'){
                    $('#CategoryCountGeneral').html("("+json.general+")");
                    $('#CategoryCountChosen').html("("+json.chosen+")");
                    $('#CategoryCountNeglected').html("("+json.neglected+")");
                }else{                    $('#CategoryCountApply').html("("+json.apply+")");
                    $('#CategoryCountProcess').html("("+json.process+")");
                    $('#CategoryCountComplete').html("("+json.complete+")");
                }
            }
        }
    ,'json');
}


function showCampDetails(n, request_type, el){

    hide_span(el);

    if(!request_type){
        request_type='offer_id';
    }

    $.post("ajax/ajax.camp_offer_info.php", {
                                        id: n,
                                        current_page: c_page,
                                        request_type: request_type,
                                        key: userkey
                                      },
        function(json) {
            show_span(el);
            $('#popups_info').html($('#popups_info').html()+json.html);
            centerPopup(json.templ);
            $('#'+json.templ).show();
        }
    ,'json');
}

function inviteBlog(n, el){
    hide_span(el);
    $.post("ajax/ajax.blog_info_adv.php", {
                                        id: n,
                                        current_page: c_page,
                                        key: userkey
                                      },
        function(json) {
            show_span(el);
            if(json.error == 'disabled'){
                create_errormsg('Блог недоступен','К сожалению данный блогер отключил возможность размещать в этом блоге рекламу.');
            }else{
                $('#popups_info').html($('#popups_info').html()+json.html);
                centerPopup(json.templ);
                $('#'+json.templ).show();
            }
        }
    ,'json');

}

function change_pass(n, checked){    if(checked){        $('#Old_password').css('color', 'black');
        $('#New_password').css('color', 'black');
        $('#New_password2').css('color', 'black');

        $('#Property_OldPassword').attr('disabled', '');
        $('#Property_NewPassword').attr('disabled', '');
        $('#Property_NewPassword2').attr('disabled', '');
    }else{        $('#Old_password').css('color', 'gray');
        $('#New_password').css('color', 'gray');
        $('#New_password2').css('color', 'gray');

        $('#Property_OldPassword').attr('disabled', 'disabled');
        $('#Property_NewPassword').attr('disabled', 'disabled');
        $('#Property_NewPassword2').attr('disabled', 'disabled');
    }
}

function check_changesettings(el){    form = el.parentNode.parentNode.getElementsByTagName('input')[0].form;
    if(!common_registration_info(form)){        return false;
    }

    if(form.change_pass_boo.checked){
        if(form.old_pass.value.length<6 || form.old_pass.value.length>16){
            create_errormsg('Некорректные данные','Старый пароль не должен быть пустым, и может содержать не менее 6 и не более 16 символов.');
            return false;
        }
        var regex = /^[a-zA-Z0-9]+$/;
        if(! regex.test(form.old_pass.value)){
            create_errormsg('Некорректные данные','Старый пароль может содержать только латинские символы и цифры.');
            return false;
        }

        if(form.new_pass.value.length<6 || form.new_pass.value.length>16){
            create_errormsg('Некорректные данные','Новый пароль не должен быть пустым, и может содержать не менее 6 и не более 16 символов.');
            return false;
        }
        var regex = /^[a-zA-Z0-9]+$/;
        if(! regex.test(form.new_pass.value)){
            create_errormsg('Некорректные данные','Новый пароль может содержать только латинские символы и цифры.');
            return false;
        }
        if(form.new_pass.value != form.new_pass2.value){
            create_errormsg('Некорректные данные','Повтор нового пароля не совпадает.');
            return false;
        }

    }

    hide_span(el);

    $.post("ajax/ajax.change_settings.php", {
                                        firstname: form.firstname.value,
                                        surname: form.surname.value,
                                        email: form.email.value,
                                        change_pass_boo: form.change_pass_boo.checked,
                                        old_pass: form.old_pass.value,
                                        new_pass: form.new_pass.value,
                                        news: form.news.checked,
                                        dialogs: form.dialogs.checked,
                                        cat_1: form.cat_1.checked,
                                        cat_2: form.cat_2.checked,
                                        cat_3: form.cat_3.checked,
                                        cat_4: form.cat_4.checked,
                                        cat_5: form.cat_5.checked,
                                        key: userkey
                                      },
        function(json) {
            show_span(el);
            if(json.error == 'true'){
                $('#popupSettings').hide();
                $('#popups_info').html($('#popups_info').html()+json.html);
                $('#'+json.templ).show();
            }else if(json.error == 'wrong_pass'){
                create_errormsg('Некорректные данные','Неправильный пароль.');
            }else if(json.error == 'email_taken'){
                create_errormsg('Некорректные данные','Такой e-mail занят.');
                return false;
            }else{
                $('#popupSettings').hide();
                create_errormsg('Получилось','Настройки сохранены.');
            }
        }
    ,'json');

}

function common_registration_info(form){
    if(form.firstname.value.length<1 || form.firstname.value.length>25){
        create_errormsg('Некорректные данные','Имя не должно быть пустым, и может содержать не более 25 символов. ');
        return false;
    }

    if(form.surname.value.length<1 || form.surname.value.length>25){
        create_errormsg('Некорректные данные','Фамилия не должна быть пустой, и может содержать не более 25 символов ');
        return false;
    }

    if(form.email.value.length<1 || form.email.value.length>50){
        create_errormsg('Некорректные данные','E-mail не должен быть пустым, и может содержать не более 50 символов.');
        return false;
    }

    if(!emailTest(form.email.value)){        create_errormsg('Некорректные данные','Неправильно задан E-mail, пожалуйста введите еще раз. Должен быть формата example@domain.com.');
        return false;
    }
    return true;
}

function check_registration(el){    form = el.parentNode.parentNode.getElementsByTagName('input')[0].form;
    if(!common_registration_info(form)){
        return false;
    }

    if(form.pass.value.length<6 || form.pass.value.length>16){
        create_errormsg('Некорректные данные','Пароль не должен быть пустым, и может содержать не менее 6 и не более 16 символов.');
        return false;
    }
    var regex = /^[a-zA-Z0-9]+$/;
    if(! regex.test(form.pass.value)){
        create_errormsg('Некорректные данные','Пароль может содержать только латинские символы и цифры.');
        return false;
    }

    if(form.pass.value != form.pass2.value){
        create_errormsg('Некорректные данные','Введенные пароли не совпадают.');
        return false;
    }


    if(form.login.value.length<1 || form.login.value.length>16){
        create_errormsg('Некорректные данные','Логин не должен быть пустым, и может содержать не более 16 символов.');
        return false;
    }
    var regex = /^[a-zA-Z0-9]+$/;
    if(! regex.test(form.login.value)){
        create_errormsg('Некорректные данные','Логин может содержать только латинские символы и цифры.');
        return false;
    }

    if((form.blogger.checked && form.advertiser.checked) || (!form.blogger.checked && !form.advertiser.checked)){
        create_errormsg('Некорректные данные','Выберите либо Исполнителя, либо Рекламодателя для создания аккаунта.');
        return false;
    }
    hide_span(el);

    $.post("ajax/ajax.register_account.php", {
                                        firstname: form.firstname.value,
                                        surname: form.surname.value,
                                        email: form.email.value,
                                        pass: form.pass.value,
                                        login: form.login.value,
                                        blogger: form.blogger.checked,
                                        advertiser: form.advertiser.checked
                                      },
        function(json) {
            if(json.error == 'true'){
                $('#popups_info').html($('#popups_info').html()+json.html);
                $('#'+json.templ).show();
                show_span(el);
                return false;
            }else if(json.error == 'login_taken'){
                create_errormsg('Некорректные данные','Такой логин занят.');
                show_span(el);
                return false;
            }else if(json.error == 'email_taken'){
                create_errormsg('Некорректные данные','Такой e-mail уже используется.');
                show_span(el);
                return false;
            }else{
                window.location = json.url;
            }
        }
    ,'json');

}

function check_contact_us(el){
    form = el.parentNode.parentNode.getElementsByTagName('input')[0].form;
    if(form.message.value == ""){
        create_errormsg('Некорректные данные','Сообщение не должно быть пустым.');
        return false;
    }

    var email = '';
    var login = '';
    if(form.email){        email = form.email.value;
    }

    if(form.login){
        login = form.login.value;
    }
    hide_span(el);
    $.post("ajax/ajax.contact_us.php", {
                                        login: login,
                                        email: email,
                                        category: form.category.value,
                                        message: form.message.value
                                      },
        function(json) {
            show_span(el);
            if(json.error=='true'){
                $('#popups_info').html($('#popups_info').html()+json.html);
                $('#'+json.templ).show();
            }else{
                window.location = '';
            }
        }
    ,'json');

}

function switch_user_type(n, blogger){
    if((n.checked && blogger) || (!n.checked && !blogger)){
        $('#Register_Bloger').attr('checked', 'checked');
        $('#Register_Reclamer').attr('checked', '');
    }else{
        $('#Register_Bloger').attr('checked', '');
        $('#Register_Reclamer').attr('checked', 'checked');
    }
}


function resend_email(el){    form = el.parentNode.parentNode.getElementsByTagName('input')[0].form;
    if(form.email.value.length<1 || form.email.value.length>50){
        create_errormsg('Некорректные данные','E-mail не должен быть пустым, и может содержать не более 50 символов.');
        return false;
    }
    if(! emailTest(form.email.value)){
        create_errormsg('Некорректные данные','Неправильно задан E-mail, пожалуйста введите еще раз. Должен быть формата example@domain.com.');
        return false;
    }
    hide_span(el);
    $.post("ajax/ajax.resend_email.php", {
                                        id: form.id.value,
                                        key: form.key.value,
                                        email: form.email.value
                                      },
        function(json) {
            show_span(el);
            if(json.error == 'true'){
                $('#popups_info').html($('#popups_info').html()+json.html);
                $('#'+json.templ).show();
            }else if(json.error == 'email_taken'){
                create_errormsg('Некорректные данные','Такой e-mail уже используется.');
                return false;
            }else{
                create_errormsg('Получилось','Сообщение об активации было отправлено на новый адрес.');
                form.email.value="";
            }
        }
    ,'json');

}

function password_recovery(form){
    if(form.email.value.length<1 || form.email.value.length>50){
        create_errormsg('Некорректные данные','E-mail не должен быть пустым, и может содержать не более 50 символов.');
        return false;
    }
    if(! emailTest(form.email.value)){
        create_errormsg('Некорректные данные','Неправильно задан E-mail, пожалуйста введите еще раз. Должен быть формата example@domain.com.');
        return false;
    }

    $.post("ajax/ajax.password_recovery.php", {
                                         email: form.email.value
                                      },
        function(json) {
            if(json.error=='true'){
                $('#popups_info').html($('#popups_info').html()+json.html);
                $('#'+json.templ).show();
            }else{
                create_errormsg('Получилось','Сообщение о восстановлении пароля отправлено на ваш адрес.');
                form.email.value="";
            }
        }
    ,'json');

}

function check_new_pass(form){    if(form.new_pass.value.length<6 || form.new_pass.value.length>16){
        create_errormsg('Некорректные данные','Пароль не должен быть пустым, и может содержать не менее 6 и не более 16 символов.');
        return false;
    }
    var regex = /^[a-zA-Z0-9]+$/;
    if(! regex.test(form.new_pass.value)){
        create_errormsg('Некорректные данные','Пароль может содержать только латинские символы и цифры.');
        return false;
    }
    form.submit();
}


function change_category(n, el){
    if(current_category==n){
        return false;
    }
    var as = el.parentNode.getElementsByTagName('span');
    for(i=0;i<as.length;i++){
        as[i].setAttribute("class", "inside_button");
    }
    el.setAttribute("class", "inside_button selected");
    current_category=n;
    reload_graph("","");
}

function change_period(n ,el){
    if(current_period==n){
        return false;
    }
    var as = el.parentNode.getElementsByTagName('span');
    for(i=0;i<as.length;i++){
        as[i].setAttribute("class", "inside_button");
    }
    el.setAttribute("class", "inside_button selected");
    current_period=n;
    reload_graph("","");
}

function dialog_window(n, hh, el){
    hide_span(el);

    $.post("ajax/ajax.dialog_window.php", {
                                        user_id: n,
                                        hh: hh,
                                        key: userkey
                                      },
        function(json) {
            show_span(el);
            $('#popups_info').html($('#popups_info').html()+json.html);
            $('#'+json.templ).show();
            centerPopup(json.templ);
            dialog_window_update(n, hh);
        }
    ,'json');

}

function dialog_window_update(n, hh){

    $('#AjaxDialogAnim'+n).show();

    var objDiv = document.getElementById("div_dialog"+n);
    objDiv.innerHTML = "";

    $.post("ajax/ajax.dialog_window_update.php", {
                                        user_id: n,
                                        hh: hh,
                                        key: userkey
                                      },
        function(json) {
            $('#AjaxDialogAnim'+n).hide();

            objDiv.innerHTML = json.html;
            objDiv.parentNode.scrollTop = objDiv.scrollHeight;
            objDiv.parentNode.scrollTop = objDiv.scrollHeight;
        }
    ,'json');

}

function dialog_window_send(n, hh, el){

    message_object = el.parentNode.getElementsByTagName('input')[0].form.dialog_message;
    message = message_object.value;
    if(message == ""){
        create_errormsg('Сообщение не отправлено','Пустое сообщение.');
        return;

    }
    message_object.disabled = true;
    hide_span(el);
    $.post("ajax/ajax.dialog_window_send.php", {
                                        user_id: n,
                                        hh: hh,
                                        message: message,
                                        key: userkey
                                      },
        function(json) {
            show_span(el);
            if(json.error == 'true'){
                $('#popups_info').html($('#popups_info').html()+json.html);
                $('#'+json.templ).show();
            }

            dialog_window_update(n, hh);
            message_object.value="";
            message_object.disabled = false;
        }
    ,'json');

}


function all_platforms_box(el){    if(!el.checked){        $('#other_platforms').css('color', 'black');
        var boxes = document.getElementById('other_platforms').getElementsByTagName('input');
        for(i=0;i<boxes.length;i++){            boxes[i].disabled = false;
        }

    }else{        $('#other_platforms').css('color', 'gray');
        var boxes = document.getElementById('other_platforms').getElementsByTagName('input');
        for(i=0;i<boxes.length;i++){
            boxes[i].disabled = true;
            boxes[i].checked = true;
        }
    }
}

function platforms_ckeck_if_empty(el){
    var boxes = el.form.getElementsByTagName('input');
    for(i=0;i<boxes.length;i++){
        if(boxes[i].value == 'platform_index' && boxes[i].checked){            return false;
        }
    }
    el.checked = true;
}

function rota_switch(current_clicked){    if(rota_current == current_clicked){        return false;
    }

    $('#rota_td_'+rota_current).css('backgroundColor', "#C1C1C1");
    $('#rota_td_'+current_clicked).css('backgroundColor', "#F1F1F1");

    $('#rota_td_div_'+rota_current).hide();
    $('#rota_td_div_'+current_clicked).show();

    $('#rota_td_'+rota_current).attr('className',"rota_inactive");
    $('#rota_td_'+current_clicked).attr('className',"rota_active");

    $('#rota_main').css('background', "url(round_edge.php?num="+current_clicked+") no-repeat 0 0");

    $('#rota_text_'+rota_current).hide();
    $('#rota_text_'+current_clicked).show();
    rota_current = current_clicked;
}

function auto_switch(n){    if(interfere){        return false;
    }    if(n != 0){        rota_switch(rota_current+1);
    }
    if(rota_current<3){        setTimeout(function () {auto_switch(1);}, 10000);
    }
}

function invites_blog_enable(form, id){

    var a_type='not_participate';
    if(form['blog_radio'+id][1].checked){
        a_type='participate';
    }

    if(a_type == 'participate'){        var inputs = $('invite_table'+id).getElementsByTagName('input');
        for(j=0;j<inputs.length;j++){
            inputs[j].disabled=false;
        }
        var spans = $('invite_table'+id).getElementsByTagName('span');
        for(j=0;j<spans.length;j++){
            spans[j].style.color='black';
        }

    }else{
        var inputs = $('invite_table'+id).getElementsByTagName('input');
        for(j=0;j<inputs.length;j++){
            inputs[j].disabled=true;
        }

        var spans = $('invite_table'+id).getElementsByTagName('span');
        for(j=0;j<spans.length;j++){
            spans[j].style.color='gray';
        }
    }
}


function centerPopup(popupId){
    //request data for centering
    var windowWidth = document.documentElement.clientWidth;
    var windowHeight = document.documentElement.clientHeight;
    var popupHeight = $("#"+popupId).height();
    var popupWidth = $("#"+popupId).width();
    var scrolls = getScrollXY();
    var scrollHeight = scrolls[1];

    var top = scrollHeight+windowHeight/2-popupHeight/2;
    if(top < 0){        top=0;
    }

    var mleft = windowWidth/2-popupWidth/2;
    if(mleft < 0){
        mleft=0;
    }

    $("#"+popupId).css({
        "position": "absolute",
        "margin-left": mleft,
        "top": top,
        "left": 0
    });
}

function getScrollXY() {
  var scrOfX = 0, scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }
  return [ scrOfX, scrOfY ];
}




