$(document).ready(function(){
    
    $('a.counter').click(function(){
        $.get('/adv/clickcounter/id-'+$(this).attr('i')+'/');alert('/adv/clickcounter/id-'+$(this).attr('i')+'/');
    });
    
});

function query(url, div, data) {
    
    JsHttpRequest.query(url, data, function(result, content) {document.getElementById(div).innerHTML = content;}, true);
    
}

function signup_adv_submit() {
    
    var update = document.getElementById('form_signup').newpass ? true : false;
    var email = /^[a-z0-9\._-]+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
    var login = /^[a-zA-Z0-9_-]+$/;
    var message = '';
    
    if (!update && !login.test(document.getElementById('form_signup').login.value)) message += '\n - Логин (латинские символы, цифры, _, -)';
    if (update) { // Изменение данных
        if (document.getElementById('form_signup').newpass.value || document.getElementById('form_signup').newpass.value!=document.getElementById('form_signup').newpass2.value) message += '\n - Пароль';
    }
    else { // Регистрация
        if (!document.getElementById('form_signup').pass.value || document.getElementById('form_signup').pass.value!=document.getElementById('form_signup').pass2.value) message += '\n - Пароль';
    }
    if (!email.test(document.getElementById('form_signup').email.value)) message += '\n - Е-mail';
    if (!document.getElementById('form_signup').contactface_1.value) message += '\n - Фамилия';
    if (!document.getElementById('form_signup').contactface_2.value) message += '\n - Имя';
    if (!document.getElementById('form_signup').contactface_3.value) message += '\n - Отчество';
    if (!document.getElementById('form_signup').contactphone.value) message += '\n - Телефон';
    if (document.getElementById('form_signup').usertype.value == 0) {
        if (!document.getElementById('form_signup').orgname.value) message += '\n - Наименование организации';
        if (!document.getElementById('form_signup').orgfield.value) message += '\n - Вид деятельности предприятия';
        if (!document.getElementById('form_signup').orgpost.value) message += '\n - Должность';
    }
    if (!document.getElementById('form_signup').postadress.value) message += '\n - Почтовый адрес';
    if (!update) {
        if (!document.getElementById('form_signup').checkcode.value) message += '\n - Защитный код';
    }
    
    if (message) {
        alert('Не указаны или указаны неверно:'+message);
        return false;
    }
    
    return true;
    
}

function signup_adv_switchuser() {
    
    if (parseInt(document.getElementById('usertype').value)) {
        document.getElementById('tr_orgname').style.display = 'none';
        document.getElementById('tr_orgfield').style.display = 'none';
        document.getElementById('tr_orgpost').style.display = 'none';
        document.getElementById('tr_orginn').style.display = 'none';
        document.getElementById('tr_orgkpp').style.display = 'none';
    }
    else {
        document.getElementById('tr_orgname').style.display = '';
        document.getElementById('tr_orgfield').style.display = '';
        document.getElementById('tr_orgpost').style.display = '';
        document.getElementById('tr_orginn').style.display = '';
        document.getElementById('tr_orgkpp').style.display = '';
    }
    
}

function signup_press_submit() {
    
    var update = document.getElementById('form_signup').newpass ? true : false;
    var email = /^[a-z0-9\._-]+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
    var login = /^[a-zA-Z0-9_-]+$/;
    var digits = /^[0-9]+$/;
    var checkweek = false;
    var message = '';
    
    for (i=0; i<=6; i++) {
        if (document.getElementById('week['+i+']').checked) {
            checkweek = true;
        }
    }
    
    if (!update && !login.test(document.getElementById('form_signup').login.value)) message += '\n - Логин';
    if (!email.test(document.getElementById('form_signup').email.value)) message += '\n - E-mail';
    if (update) { // Изменение данных
        if (document.getElementById('form_signup').newpass.value || document.getElementById('form_signup').newpass.value!=document.getElementById('form_signup').newpass2.value) message += '\n - Пароль';
    }
    else { // Регистрация
        if (!document.getElementById('form_signup').pass.value || document.getElementById('form_signup').pass.value!=document.getElementById('form_signup').pass2.value) message += '\n - Пароль';
    }
    if (!document.getElementById('form_signup').jurname.value) message += '\n - Полное наименование юр. лица';
    if (!digits.test(document.getElementById('form_signup').inn.value)) message += '\n - ИНН';
    if (!document.getElementById('form_signup').juradress.value) message += '\n - Юридический адрес';
    if (!document.getElementById('form_signup').address.value) message += '\n - Физический адрес';
    if (!document.getElementById('form_signup').generalface_1.value) message += '\n - Фамилия ген. директора или гл. редактора';
    if (!document.getElementById('form_signup').generalface_2.value) message += '\n - Имя ген. директора или гл. редактора';
    if (!document.getElementById('form_signup').generalface_3.value) message += '\n - Отчество ген. директора или гл. редактора';
    if (!document.getElementById('form_signup').phone.value) message += '\n - Телефон';
    if (!document.getElementById('form_signup').bankname.value) message += '\n - Название банка';
    if (!document.getElementById('form_signup').banktown.value) message += '\n - Город банка';
    if (!digits.test(document.getElementById('form_signup').account.value)) message += '\n - Расчетный счет';
    if (!digits.test(document.getElementById('form_signup').account2.value)) message += '\n - Корр. счет';
    if (!digits.test(document.getElementById('form_signup').bik.value)) message += '\n - БИК';
    if (!document.getElementById('form_signup').name.value) message += '\n - Название издания';
    if (!document.getElementById('form_signup').contactface_1.value) message += '\n - Фамилия контактного лица';
    if (!document.getElementById('form_signup').contactface_2.value) message += '\n - Имя контактного лица';
    if (!document.getElementById('form_signup').contactface_3.value) message += '\n - Отчество контактного лица';
    if (!document.getElementById('form_signup').contactphone.value) message += '\n - Телефон контактного лица';
    if (!digits.test(document.getElementById('form_signup').drawing.value)) message += '\n - Тираж';
    if (!digits.test(document.getElementById('form_signup').periodicity.value)) message += '\n - Периодичность выхода';
    if (document.getElementById('form_signup').periodicity_type.value=='0' && !checkweek) message += '\n - Дни выхода';
    if (document.getElementById('form_signup').format.value=='other' && !document.getElementById('form_signup').otherformat.value) message += '\n - Формат издания';
    if (!document.getElementById('form_signup').daysbeforeprint.value) message += '\n - Количество дней от числа заказа до выхода';
    if (!document.getElementById('form_signup').discount.value) message += '\n - Скидка для рекламного агентства (%)';
    if (!towns_check()) message += '\n - Минимум один город выхода';
    if (!themes_check()) message += '\n - Минимум одна тематика';
    if (!update) {
        if (!document.getElementById('form_signup').checkcode.value) message += '\n - Защитный код';
    }

    if(message) {
        alert('Не указаны или указаны неверно:'+message);
        return false;
    }
    
    return true;
    
}

function signup_media_submit() {
    
    var email = /^[a-z0-9\._-]+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
    var login = /^[a-zA-Z0-9_-]+$/;
    var digits = /^[0-9]+$/;
    var checkweek = false;
    var message = '';
    
    if (!email.test(document.getElementById('form_signup').email.value)) message += '\n - E-mail';
    if (!document.getElementById('form_signup').jurname.value) message += '\n - Полное наименование юр. лица';
    if (!digits.test(document.getElementById('form_signup').inn.value)) message += '\n - ИНН';
    if (!document.getElementById('form_signup').juradress.value) message += '\n - Юридический адрес';
    if (!document.getElementById('form_signup').address.value) message += '\n - Физический адрес';
    if (!document.getElementById('form_signup').generalface_1.value) message += '\n - Фамилия ген. директора или гл. редактора';
    if (!document.getElementById('form_signup').generalface_2.value) message += '\n - Имя ген. директора или гл. редактора';
    if (!document.getElementById('form_signup').generalface_3.value) message += '\n - Отчество ген. директора или гл. редактора';
    if (!document.getElementById('form_signup').phone.value) message += '\n - Телефон';
    if (!document.getElementById('form_signup').bankname.value) message += '\n - Название банка';
    if (!document.getElementById('form_signup').banktown.value) message += '\n - Город банка';
    if (!digits.test(document.getElementById('form_signup').account.value)) message += '\n - Расчетный счет';
    if (!digits.test(document.getElementById('form_signup').account2.value)) message += '\n - Корр. счет';
    if (!digits.test(document.getElementById('form_signup').bik.value)) message += '\n - БИК';
    if (!document.getElementById('form_signup').name.value) message += '\n - Бренд';
    if (!document.getElementById('form_signup').contactface_1.value) message += '\n - Фамилия контактного лица';
    if (!document.getElementById('form_signup').contactface_2.value) message += '\n - Имя контактного лица';
    if (!document.getElementById('form_signup').contactface_3.value) message += '\n - Отчество контактного лица';
    if (!document.getElementById('form_signup').contactphone.value) message += '\n - Телефон контактного лица';
    if (!towns_check()) message += '\n - Минимум один город охвата';
    if (!mt_check()) message += '\n - Минимум один вид рекламы';
    
    if(message) {
        alert('Не указаны или указаны неверно:'+message);
        return false;
    }
    
    return true;
    
}

function search_submit() {
    
    var message = '';
    
    if (!towns_check() && !document.getElementById('towns_all').checked) message += '\nНеобходим минимум один город выхода';
    if (!is_catalogue) {
        if (!themes_check() && !document.getElementById('themes_all').checked) message += '\nНеобходима минимум одна тематика';
    }

    if(message) {
        alert(message);
        return false;
    }
    
    return true;
    
}

function towns_click(id, level) {
    
    switch (level) {
        
        case 1: // Тыкнули по чекбоксу региона
        
        if (document.getElementById('towns1['+id+']').checked) { // Ставим галочку
            document.getElementById('div_towns_'+id).style.display = '';
            if (document.getElementById('div_towns_'+id).innerHTML) { // Все уже подгружено
                for(i in towns[id]['childs']) {
                    child = towns[id]['childs'][i];
                    if (child) {
                        document.getElementById('towns['+child+']').checked = true;
                        towns[id]['childs_selected'][i] = true;
                    }
                }
            }
            else { // Надо подгружать
                document.getElementById('div_towns_'+id).innerHTML = 'Загрузка...';
                JsHttpRequest.query('/towns/id-'+id+'/', null, function(result, content) {
                    count = 0;
                    document.getElementById('div_towns_'+id).innerHTML = '';
                    for (i in result) {
                        if (count) {
                            document.getElementById('div_towns_'+id).innerHTML += '<br />';
                        }
                        count++;
                        towns[id]['childs'][result[i]['id']] = result[i]['id'];
                        document.getElementById('div_towns_'+id).innerHTML += is_catalogue
                        ? '<label><input name="towns['+result[i]['id']+']" id="towns['+result[i]['id']+']" type="checkbox" value="'+result[i]['id']+'" onclick="towns_click('+result[i]['id']+', 2);" checked /> <a href="/search/result/?towns[]='+result[i]['id']+'">'+result[i]['name_count']+'</a></label>'
                        : '<label><input name="towns['+result[i]['id']+']" id="towns['+result[i]['id']+']" type="checkbox" value="'+result[i]['id']+'" onclick="towns_click('+result[i]['id']+', 2);" checked /> '+result[i]['name']+'</label>';
                        towns[id]['childs_selected'][result[i]['id']] = true;
                    }
                }, true);
            }
        }
        else { // Убираем галочку
            document.getElementById('div_towns_'+id).style.display = 'none';
            for(i in towns[id]['childs']) {
                child = towns[id]['childs'][i];
                if (child) {
                    document.getElementById('towns['+child+']').checked = false;
                }
            }
            towns[id]['childs_selected'] = new Array();
        }
        
        break;
        
        case 2: // Тыкнули по городу
        for (i in towns) {
            for (j in towns[i]['childs']) {
                if (towns[i]['childs'][j] && id==j) {
                    parent = i;
                }
            }
        }
        if (document.getElementById('towns['+id+']').checked) { // Ставим галочку
            towns[parent]['childs_selected'][id] = true;
            document.getElementById('towns1['+parent+']').checked = true;
        }
        else { // Убираем галочку
            towns[parent]['childs_selected'][id] = false;
            childs_selected_count = 0;
            for (i in towns[parent]['childs_selected']) {
                if (towns[parent]['childs_selected'][i]) {
                    childs_selected_count++;
                }
            }
            if (!childs_selected_count) {
                document.getElementById('towns1['+parent+']').checked = false;
            }
        }    
        break;
        
        default: // Тыкнули по ссылке региона
        if (document.getElementById('div_towns_'+id).style.display == 'none') { // Раскрываем
            document.getElementById('div_towns_'+id).style.display = '';
            if (document.getElementById('div_towns_'+id).innerHTML) { // Все уже подгружено
                for (i in towns[id]['childs_selected']) {
                    if (towns[id]['childs_selected'][i]) {
                        document.getElementById('towns['+i+']').checked = true;
                    }
                }
            }
            else { // Надо подгружать
                document.getElementById('div_towns_'+id).innerHTML = 'Загрузка...';
                JsHttpRequest.query('/towns/id-'+id+'/', null, function(result, content) {
                    count = 0;
                    document.getElementById('div_towns_'+id).innerHTML = '';
                    for (i in result) {
                        if (count) {
                            document.getElementById('div_towns_'+id).innerHTML += '<br />';
                        }
                        count++;
                        towns[id]['childs'][result[i]['id']] = result[i]['id'];
                        document.getElementById('div_towns_'+id).innerHTML += is_catalogue
                        ? '<label><input name="towns['+result[i]['id']+']" id="towns['+result[i]['id']+']" type="checkbox" value="'+result[i]['id']+'" onclick="towns_click('+result[i]['id']+', 2);" /> <a href="/search/result/?towns[]='+result[i]['id']+'">'+result[i]['name_count']+'</a></label>'
                        : '<label><input name="towns['+result[i]['id']+']" id="towns['+result[i]['id']+']" type="checkbox" value="'+result[i]['id']+'" onclick="towns_click('+result[i]['id']+', 2);" /> '+result[i]['name']+'</label>';
                    }
                    towns[id]['childs_selected'] = new Array();
                }, true);
            }
        }
        else { // Закрываем
            document.getElementById('div_towns_'+id).style.display = 'none';
            for(i in towns[id]['childs']) {
                child = towns[id]['childs'][i];
                if (child) {
                    document.getElementById('towns['+child+']').checked = false;
                }
            }
        }
                
        break;
        
    }
    
}

function towns_check() {
    
    var count = 0;
    for (i in towns) {
        count += towns[i]['childs_selected'];
    }
    return count;

}

function themes_check() {
    
    var count = 0;
    for (i in themes) {
        if (themes[i] && document.getElementById('themes['+themes[i]+']').checked) {
            count++;
        }
    }
    return count;
    
}

function mt_check() {
    
    var count = 0;
    for (i in mt) {
        if (mt[i] && document.getElementById('mt['+mt[i]+']').checked) {
            count++;
        }
    }
    return count;
    
}

function search_fast(str) {
    
    JsHttpRequest.query('/search/fast/', {'str':str}, function(result, content) {
        document.getElementById('div_search').innerHTML = content;
        for(i in result) {
            document.getElementById('div_search').innerHTML += '<br /><a href="/adv/view/id-'+result[i]['id']+'/">'+result[i]['name']+'</a>';
        }
    }, true);
    
}

function checknum(e) {
    
    return (e.keyCode >= 48 && e.keyCode <= 57)
    
}

function switchtab(tab) {
    
    var re = new RegExp("<script language=\"javascript\">(.*)<\/script>", "i");
    
    if (tab != current_tab) {
        tabs[current_tab] = document.getElementById('div_tab_content').innerHTML;
        if (!tabs[tab]) {
            document.getElementById('div_tab_content').innerHTML = 'Загрузка...';
            JsHttpRequest.query('/adv/view/tab-'+tab+'/id-'+uid+'/', {'ajax':true}, function(result, content) {
                document.getElementById('div_tab_content').innerHTML = content;
                tabs[result['id']] = content;
                matches = re.exec(content);
                setTimeout(matches[1], 1);
            }, true);
        }
        else {
            document.getElementById('div_tab_content').innerHTML = tabs[tab];
        }
        document.getElementById('tab_'+current_tab).className = 'nonhlted';
        document.getElementById('tab_'+tab).className = 'hlted';
        current_tab = tab;
    }
    
}

function change_stripe(n) {
    
    var ptr = 0;
    
    document.getElementById('td_stripe_extra').innerHTML = stripes_extra[n] ? stripes_extra[n] : '';
    document.getElementById('maket').options.length = 0;
    for(i in stripes[n]) {
        if (!ptr) {
            maket_cost = makets[i];
        }
        if (stripes[n][i]) {
            document.getElementById('maket').options[ptr++] = new Option(stripes[n][i], i);
        }
    }
    
    calc_maket_cost();
    
}

function change_maket(n) {
    
    var ptr = 0;
    
    maket_cost = makets[n];
    calc_maket_cost();
    
}

function calc_maket_cost() {
    
    document.getElementById('pricevalue_stripe').innerHTML = (maket_cost*document.getElementById('issues_count').value + (document.getElementById('admodel').checked ? makemaketprice : 0));
        
}

function change_ad(n) {
    
    document.getElementById('id_cost').innerHTML = ads_cost[n];
    document.getElementById('id_adtype').innerHTML = ads_adtype[n] ? 'объявления' : 'слова';
    document.getElementById('td_ad_extra').innerHTML = ads_extra[n];
    document.getElementById('id_wordsmax').innerHTML = ads_wordmax[n];
    document.getElementById('id_phoneasword').innerHTML = ads_phoneasword[n];
    document.getElementById('div_options').innerHTML = '';
    
    for (i in ads_options[n]) {
        if (ads_options[n][i]) {
            document.getElementById('div_options').innerHTML += '<label><input onclick="calc_ad_cost();" type="checkbox" name="option['+i+']" id="option['+i+']" /> <b>'+ads_options[n][i][1]+'</b> (+'+ads_options[n][i][0]+(ads_options[n][i][2]?' руб.':'%')+')</label>';
            if (i<ads_options[n].length) {
                document.getElementById('div_options').innerHTML += '<br />';
            }
        }
    }
    
    ad = n;
    calc_ad_cost();
    
}

function calc_ad_cost() {
    
    var words_count = 0;
    var phones_count = 0;
    var cost = 0;
    var re = new RegExp("[а-яА-Яa-zA-Z0-9,\-]{"+(ads_lettersinword[ad]?ads_lettersinword[ad]:1)+",}", "ig");
    var phone = new RegExp("[0-9\-\(\)\ ]+", "ig");
    
    var words = document.getElementById('adtext').value.match(re);
    var phones = document.getElementById('phone').value.match(phone);
    
	if (phones) {
	    phones_count = phones.length;
	}
    if (phones_count) {
	   words_count += Number(ads_phoneasword[ad])*phones_count;
	}
	if (words) {
		words_count += words.length;
		
		if (ads_wordmax[ad] && words_count) {
		    
		    while (document.getElementById('adtext').value.length && words_count>ads_wordmax[ad]) {
		        document.getElementById('adtext').value = document.getElementById('adtext').value.substring(0, document.getElementById('adtext').value.length-1);
		        words = document.getElementById('adtext').value.match(re);
		        words_count = words.length + (phones_count ? Number(ads_phoneasword[ad])*phones_count : 0);
		    }
		    
		}
		
	}
	document.getElementById('id_wordtotal').innerHTML = words_count;
    
	cost += ads_adtype[ad] ? ads_cost[ad] : ads_cost[ad]*words_count;
	for (i in ads_options[ad]) {
	    if (document.getElementById('option['+i+']')) {
	        if (document.getElementById('option['+i+']').checked) {
	           cost += ads_options[ad][i][2] ? ads_options[ad][i][0] : cost*ads_options[ad][i][0]/100;
	        }
	    }
	}
	cost *= document.getElementById('issues_count').value;
        cost = cost+'';
	document.getElementById('div_cost').innerHTML = cost.replace(/(\d+)\.(\d\d).*/, "$1.$2");
    
}

function issues_selects() {
    
    var new_html = '';
    var select_values = new Array();
    var ttt = false;
    
    for (i=0; document.getElementsByName('issue['+i+']').length && i<document.getElementById('issues_count').value; i++) {
        select_values[i] = document.getElementsByName('issue['+i+']')[0].value;
    }
    for (i=0; i<document.getElementById('issues_count').value; i++) {
        new_html += sss.replace(/issue\[###\]/, 'issue['+i+']');
        if (i<document.getElementById('issues_count').value-1) {
            new_html += '<br />';
        }
    }
    
    document.getElementById('div_issues').innerHTML = new_html;
    
    for (i=0; i<document.getElementById('issues_count').value; i++) {
        if (i<select_values.length) {
            document.getElementsByName('issue['+i+']')[0].value = select_values[i];
        }
        else {
            for (j in document.getElementsByName('issue['+i+']')[0].options) {
                if (ttt) {
                    document.getElementsByName('issue['+i+']')[0].options[j].selected = true;
                    break;
                }
                else if (document.getElementsByName('issue['+(i-1)+']').length && document.getElementsByName('issue['+(i-1)+']')[0].selectedIndex==j) {
                    ttt = true;
                }
            }
            if (!ttt) {
                document.getElementsByName('issue['+i+']')[0].value = select_values[select_values.length-1];
            }
        }
    }
    
}

function adv_vote(press, vote) {
    
    JsHttpRequest.query('/adv/vote/press-'+press+'/vote-'+vote+'/', null, function(result, content) {
        switch (content) {
            
            case 'revote':
            if (confirm('Вы уже голосовали за это издание с оценкой '+result['vote_old']+'. Заменить Ваш голос?')) {
                JsHttpRequest.query('/adv/vote/press-'+result['press']+'/vote-'+result['vote']+'/revote-1/', null, function(result, content) {
                    if (content=='ok') {
                        document.getElementById('td_vote').innerHTML = 'Ваш голос принят! Спасибо.';
                    }
                }, true);
            }
            break;
            
            case 'ok':
            document.getElementById('td_vote').innerHTML = 'Ваш голос принят! Спасибо.';
            break;
            
            case 'needlogin':
            document.getElementById('td_vote').innerHTML = 'Для голосования необходимо <a href="/login/">авторизоваться</a> или <a href="/signup/">зарегистрироваться</a>';
            break;
            
            default:
            break;
            
        }
    }, true);
    
}
