// All common functions
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').innerHTML=my_msg;
    $('popupAjaxError').style.display='block';
    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(){
    $('AjaxLoaderAnim').style.display = 'inline';
    $('AjaxLoaderAnim2').style.display = 'inline';

    JsHttpRequest.query(
        'ajax/ajax.renew_category_count.php',
        {
            current_page: c_page,
            key: userkey
        },
        function(result, errors) {
            if(result['error']=='true'){
                $('popups_info').innerHTML=$('popups_info').innerHTML+result['html'];
                $(result['templ']).style.display='block';
            }else{
                $('CategoryCountApply').innerHTML = "("+result['apply']+")";
                $('CategoryCountProcess').innerHTML = "("+result['process']+")";
                $('CategoryCountComplete').innerHTML = "("+result['complete']+")";
            }
        },
        true
    );
}


function showCampDetails(n, phase, el){
    if(el){
        $('ajaxfbc'+n).style.display='inline';
        el.style.display='none';
    }

    if(!phase){
        phase=0;
    }
    JsHttpRequest.query(
        'ajax/ajax.camp_offer_info.php',
        {
            id: n,
            current_page: c_page,
            phase: phase,
            key: userkey
        },
        function(result, errors) {
        	if(el){
                $('ajaxfbc'+n).style.display='none';
                el.style.display='inline';
            }
            $('popups_info').innerHTML=$('popups_info').innerHTML+result['html'];
        	$(result['templ']).style.display='block';
        },
        true
    );

}

function inviteBlog(n, el){
    if(el){    	el.parentNode.getElementsByTagName('img')[0].style.display='inline';    	el.style.display='none';
    }
    JsHttpRequest.query(
        'ajax/ajax.blog_info_adv.php',
        {
            id: n,
            current_page: c_page,
            key: userkey
        },
        function(result, errors) {
        	if(el){
                el.parentNode.getElementsByTagName('img')[0].style.display='none';
                el.style.display='inline';
            }
            if(result['error'] == 'disabled'){                create_errormsg('Блог недоступен','К сожалению данный блогер отключил возможность размещать в этом блоге рекламу.');
            }else{
                $('popups_info').innerHTML=$('popups_info').innerHTML+result['html'];
            	$(result['templ']).style.display='block';
            }
        },
        true
    );

}

function change_pass(n, checked){	if(checked){        $('Old_password').style.color='black';
        $('New_password').style.color='black';
        $('New_password2').style.color='black';

        $('Property_OldPassword').disabled=false;
        $('Property_NewPassword').disabled=false;
        $('Property_NewPassword2').disabled=false;
	}else{		$('Old_password').style.color='gray';
		$('New_password').style.color='gray';
		$('New_password2').style.color='gray';

		$('Property_OldPassword').disabled=true;
		$('Property_NewPassword').disabled=true; 
		$('Property_NewPassword2').disabled=true;
	}
}

function check_changesettings(form, el){    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;
        }

    }

    if(el){
        $('ajaxfbv').style.display='inline';
        el.style.display='none';
    }

    JsHttpRequest.query(
        '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(result, errors) {
            if(el){
                $('ajaxfbv').style.display='none';
                el.style.display='inline';
            }
            if(result['error']=='true'){
                hidePopup('popupSettings');
                $('popups_errors').innerHTML=$('popups_errors').innerHTML+result['html'];
                $(result['templ']).style.display='block';
            }else if(result['error']=='wrong_pass'){
                create_errormsg('Некорректные данные','Неправильный пароль.');
            }else{            	hidePopup('popupSettings');
                create_errormsg('Получилось','Настройки сохранены.');
            }
        },
        true
    );
}

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 lock_register_button(el){    if(el){
        $('ajaxfb').style.display='inline';
        el.style.display='none';
    }
}

function unlock_register_button(el){
    if(el){
        $('ajaxfb').style.display='none';
        el.style.display='inline';
    }
}

function check_registration(form, el){	lock_register_button(el);

	if(!common_registration_info(form)){
	    unlock_register_button(el);
	    return false;
	}

	if(form.pass.value.length<6 || form.pass.value.length>16){
		create_errormsg('Некорректные данные','Пароль не должен быть пустым, и может содержать не менее 6 и не более 16 символов.');
        unlock_register_button(el);
        return false;
	}
	var regex = /^[a-zA-Z0-9]+$/;
    if(! regex.test(form.pass.value)){
    	create_errormsg('Некорректные данные','Пароль может содержать только латинские символы и цифры.');
        unlock_register_button(el);
        return false;
    }
    
    if(form.pass.value != form.pass2.value){
    	create_errormsg('Некорректные данные','Введенные пароли не совпадают.');
        unlock_register_button(el);
        return false;
    }


    if(form.login.value.length<1 || form.login.value.length>16){
		create_errormsg('Некорректные данные','Логин не должен быть пустым, и может содержать не более 16 символов.');
        unlock_register_button(el);
        return false;
	}
	var regex = /^[a-zA-Z0-9]+$/;
    if(! regex.test(form.login.value)){
    	create_errormsg('Некорректные данные','Логин может содержать только латинские символы и цифры.');
        unlock_register_button(el);
        return false;
    }

    if((form.blogger.checked && form.advertiser.checked) || (!form.blogger.checked && !form.advertiser.checked)){
		create_errormsg('Некорректные данные','Выберите либо Исполнителя, либо Рекламодателя для создания аккаунта.');
        unlock_register_button(el);
        return false;
	}

    JsHttpRequest.query(
        '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(result, errors) {
            if(result['error']=='true'){
                $('popups_errors').innerHTML=$('popups_errors').innerHTML+result['html'];
                $(result['templ']).style.display='block';
                unlock_register_button(el);
                return false;
            }else if(result['error']=='login_taken'){            	create_errormsg('Некорректные данные','Такой логин занят.');
                unlock_register_button(el);
                return false;            }else if(result['error']=='email_taken'){            	create_errormsg('Некорректные данные','Такой e-mail уже используется.');
                unlock_register_button(el);
                return false;            }else{
                window.location = result['url'];
            }
        },
        true
    );


}

function check_contact_us(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;
	}

	JsHttpRequest.query(
        'ajax/ajax.contact_us.php',
        {
            login: login,
            email: email,
            category: form.category.value,
            message: form.message.value
        },
        function(result, errors) {
            if(result['error']=='true'){
                $('popups_errors').innerHTML=$('popups_errors').innerHTML+result['html'];
                $(result['templ']).style.display='block';
            }else{
                create_errormsg('Получилось','Ваше сообщение успешно отправлено. Спасибо.');
                form.message.value = '';
            }
        },
        true
    );
}

function switch_user_type(n, blogger){
	if((n.checked && blogger) || (!n.checked && !blogger)){
        $('Register_Bloger').checked=true;
        $('Register_Reclamer').checked=false;
	}else{
		$('Register_Bloger').checked=false;
        $('Register_Reclamer').checked=true;
	}
}


function resend_email(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;
    }

    JsHttpRequest.query(
        'ajax/ajax.resend_email.php',
        {
            id: form.id.value,
            key: form.key.value,
            email: form.email.value
        },
        function(result, errors) {
            if(result['error']=='true'){
                $('popups_errors').innerHTML=$('popups_errors').innerHTML+result['html'];
                $(result['templ']).style.display='block';
            }else{
                create_errormsg('Получилось','Сообщение об активации было отправлено на новый адрес.');
                form.email.value="";
            }
        },
        true
    );
}

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;
    }

    JsHttpRequest.query(
        'ajax/ajax.password_recovery.php',
        {
            email: form.email.value
        },
        function(result, errors) {
            if(result['error']=='true'){
                $('popups_errors').innerHTML=$('popups_errors').innerHTML+result['html'];
                $(result['templ']).style.display='block';
            }else{
                create_errormsg('Получилось','Сообщение о восстановлении пароля отправлено на ваш адрес.');
                form.email.value="";
            }
        },
        true
    );
}

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 get_screenshot(screen_id){
    JsHttpRequest.query(
        'ajax/ajax.screenshot.php',
        {
            id: screen_id
        },
        function(result, errors) {
            if(result['error']=='true'){
                $('popups_errors').innerHTML=$('popups_errors').innerHTML+result['html'];
                $(result['templ']).style.display='block';
            }else{
                $('popups_info').innerHTML=$('popups_info').innerHTML+result['html'];
            	$(result['templ']).style.display='block';
            }
        },
        true
    );

}



function dialog_window(n, hh, el){
	if(el){
        $('ajaxfba'+n).style.display='inline';
        el.style.display='none';
    }

    JsHttpRequest.query(
        'ajax/ajax.dialog_window.php',
        {
            user_id: n,
            hh: hh,
            key: userkey
        },
        function(result, errors) {
        	if(el){
                $('ajaxfba'+n).style.display='none';
                el.style.display='inline';
            }
            $('popups_info').innerHTML=$('popups_info').innerHTML+result['html'];
        	$(result['templ']).style.display='block';

        	dialog_window_update(n, hh);

        },
        true
    );

}

function dialog_window_update(n, hh){

    $('AjaxDialogAnim'+n).style.display='inline';

    var objDiv = document.getElementById("div_dialog"+n);
    objDiv.innerHTML = "";

    JsHttpRequest.query(
        'ajax/ajax.dialog_window_update.php',
        {
            user_id: n,
            hh: hh,
            key: userkey
        },
        function(result, errors) {
        	$('AjaxDialogAnim'+n).style.display='none';

            objDiv.innerHTML = result['html'];
            objDiv.parentNode.scrollTop = objDiv.scrollHeight;
            objDiv.parentNode.scrollTop = objDiv.scrollHeight;

        },
        true
    );

}

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;
    if(el){
        $('ajaxfbb'+n).style.display='inline';
        el.style.display='none';
    }

    JsHttpRequest.query(
        'ajax/ajax.dialog_window_send.php',
        {
            user_id: n,
            hh: hh,
            message: message,
            key: userkey
        },
        function(result, errors) {
        	if(el){
                $('ajaxfbb'+n).style.display='none';
                el.style.display='inline';
            }
            if(result['error'] == 'true'){
                $('popups_info').innerHTML=$('popups_info').innerHTML+result['html'];
            	$(result['templ']).style.display='block';
        	}

        	dialog_window_update(n, hh);
        	message_object.value="";
            message_object.disabled = false;

        },
        true
    );

}


function all_platforms_box(el){	if(!el.checked){	    $('other_platforms').style.color = 'black';
	    var boxes = $('other_platforms').getElementsByTagName('input');
        for(i=0;i<boxes.length;i++){        	boxes[i].disabled = false;
        }

	}else{		$('other_platforms').style.color = 'gray';
		var boxes = $('other_platforms').getElementsByTagName('input');
        for(i=0;i<boxes.length;i++){
        	boxes[i].disabled = true;
        	boxes[i].checked = true;
        }
	}
}



