var add_points_num = 0;
var sel_rubrics = [];
var sub_r_id = 'default';

var wrog_firm = false;

//Отображение варнинга
function SetWarning(id, text, type) {
	$(id).className = type + '_warning';
	$(id).innerHTML = text;
}

function isValidEmail(email, strict) {
	if(!strict) email = email.replace(/^\s+|\s+$/g, '');
	return (/^([a-z0-9_\-]+\.)*[a-z0-9_\-]+@([a-z0-9][a-z0-9\-]*[a-z0-9]\.)+[a-z]{2,4}$/i).test(email);
}

function GlueFirm(e) {
	var e = e || window.event, target = e.target || e.srcElement;
	while(target.nodeName != 'A' && target.parentNode) target = target.parentNode;
	
	if(target.href) {
		$('up_id').value = target.href.replace(/^[^#]*#/, '').replace(/%20/g, ' ');
		$('sof_help').innerHTML = "<div class='sof_selected_firm " + target.className + "'>" + target.innerHTML + "</div>";
		
		$('sof_edit').style.display = 'block';
		
		if(target.className == 'add_form_firm_free') {
			wrog_firm = false;
		}
		else {
			wrog_firm = true;
			$('sof_help').innerHTML += trans.firm_already_exists + "<br><br>" + trans.firm_add_if_you + "<br><br>" + trans.firm_add_if_other + "<br><br>";
		}
	}
	return false;
}

function SofEdit() {
	if(wrog_firm) window.location = '/my/';
	else SubmitForm();
	return false;
}

function SummaryCounter(area) {
	var val = 150 - area.value.length, el = $('act_summary_counter');
	el.innerHTML = val;
	el.style.color = (val >= 0) ? '#6CC900' : '#CC0000';
}

//Check email and send pin code
function SendPinCode() {
	var mail = $('nlogin').value, pin_war_id = 'pin_war', mail_war_id = 'mail_war';

	if(!isValidEmail(mail)) SetWarning(mail_war_id, trans.add.index.wrong_email, "bad");
	else {
		$('SendPinButton').disabled = true;
		SetWarning(mail_war_id, "<img src='/img/micro-loader.gif'>&nbsp;" + trans.please_wait, 'grey');
		
		// Create new JsHttpRequest object.
		var req = new JsHttpRequest();
		req.caching = true;
		
		req.open('POST', '/lib/ajax_backend/send_pin.php', true);
		
		// Code automatically called on load finishing.
		req.onreadystatechange = function() {
			if (req.readyState == 4) {
				$('SendPinButton').disabled = false;
				SetWarning(mail_war_id, '', 'grey');

				switch(req.responseJS.status) {
					case 'normal': SetWarning(pin_war_id, trans.add.index.pin_success, "good");	break;
					
					case 'invalid_email': SetWarning(mail_war_id, trans.add.index.wrong_email, "bad"); break;
					
					default: SetWarning(mail_war_id, req.responseJS.status, "bad");
				}
			}
		}

		// Send data to backend.
		req.send( { q: mail } );
	}
}

//Password generating
function GeneratePasswd(id, len) {
	var i, pass = [], symbols = 'abcdefghjkmnprstxyzwvuq0123456789';
	for(i = 0; i < len; i++) pass[pass.length] = symbols[Math.floor(Math.random() * (symbols.length - 1))];

	$(id).value = pass.join('');
	$(id).focus();
}

//Ролл селектов подрубрик
function ChangeSubRub(id) {
	if(!id) id='default';
	
	if(sub_r_id != 0) $n('k_sub_rub_'+sub_r_id).style.display = 'none';
    $n('k_sub_rub_'+id).style.display = '';
    sub_r_id = id;
}

//Добавление рубрики
function AddRubric() {
	SetWarning('rub_war', '', 'good');
	var input_subr = $n('k_sub_rub_'+sub_r_id), rubs_max = 7,
		opt = input_subr.options[input_subr.selectedIndex], currend_subr = {id: opt.value, name: opt.text};

	if(!currend_subr.id) {
		SetWarning('rub_war', trans.choose_rubric, 'bad');
		return true;
	}
	
	if(sel_rubrics.length >= rubs_max) {
		SetWarning('rub_war', trans.sections_less_than + ' ' + rubs_max, 'bad');
		return true;
	}
	
	for(var i = 0; i < sel_rubrics.length; i++) {
		if(sel_rubrics[i]['id'] == currend_subr['id']) {
			SetWarning('rub_war', trans.section_already_selected, 'bad');
			return true;
		}
	}
	
	sel_rubrics.push(currend_subr);
    RedrawRubrics();
}

//Перерисовка списка рубрик
function RedrawRubrics() {
	var input = '', text = "<b>" + trans.chosen_sections + "</b><br>";
	text += "<table cellpadding=5 cellspacing=1 class='add_form_rubrics_table tpad5'><tbody>";
	
	for(var i = 0; i < sel_rubrics.length; i++) {
    	text += '<tr><td width=402>' + sel_rubrics[i]['name'] + "</td><td><div class='delete_button' onClick='DelRubric("+i+")'></div></td></tr>";
		input += "<input type='hidden' name='add_rubrics[" + i + "]' value='" + sel_rubrics[i]['id'] + "'>";
    }
    text += '</tbody></table>';
	
	$n('sel_rubs_block').innerHTML = (sel_rubrics.length > 0) ? (text + input) : '';
}

//Удаление рубрики из списка выбранных
function DelRubric(id) {
    sel_rubrics.splice(id, 1);
    RedrawRubrics();
}

//Добавление дополнительного офиса
function AddAddress(data) {
	var text = '', id = add_points_num, data = data || ['','',''];
	text += "<div class='delete_button add_form_delete' onClick='DeleteAdress("+id+")'></div>";
	text += "<table class='form_fields_table'>";
	
	text += "<tr><td width='120'><label for='add_points_name_"+id+"'>"+trans.title+"</label></td><td><input class='textinput' id='add_points_name_"+id+"' type='text' name='add_points["+id+"][]' value='"+data[0]+"'></td></tr>";
	text += "<tr><td><label for='add_points_adr_"+id+"'>"+trans.address+"</label></td><td><input class='textinput' type='text' id='add_points_adr_"+id+"' name='add_points["+id+"][]' value='"+data[1]+"'></td></tr>";
	text += "<tr><td><label for='add_points_phone_"+id+"'>"+trans.phone+"</label></td><td><input class='textinput' type='text' id='add_points_phone_"+id+"' name='add_points["+id+"][]' value='"+data[2]+"'></td></tr>";

	text += "</table>";
	AddElement($('add_points_cont'),'DIV',{innerHTML: text, className: 'add_form_block', id: 'addr_block_'+id});
	add_points_num++;
	
	ColorizeForm('add_comp');
	return false;
}

function DeleteAdress(id) {
	$('add_points_cont').removeChild($n('addr_block_'+id));
	add_points_num--;
}

function SubmitForm(clear_up_id) {
	if(clear_up_id && $('up_id')) $('up_id').value = '';
	
	$('add_comp').submit();
	return false;
}

function SubmitRegionForm(select) {
	$('add_comp').action = 'http://' + select.options[select.selectedIndex].value + '/add/';
	SubmitForm();
}

function InitEditor(lang, elements, mode) {
	if(mode == 'full') {
		tinyMCE.init({
			mode : "exact",
			elements : elements,
			theme : "advanced",
			plugins : "contextmenu,inlinepopups,paste,searchreplace,table,fullscreen",
			language : lang,
			theme_advanced_toolbar_location: "top",
			theme_advanced_toolbar_align : "left",
			theme_advanced_statusbar_location : "bottom",
			theme_advanced_resizing : false,
			theme_advanced_blockformats : "p,h2,h3,h4",
			file_browser_callback : "myCustomFileBrowser",
			convert_urls : false,
			relative_urls : false,
			strict_loading_mode : true,
			remove_script_host : false,
			height: '500',
			width: '500',

			table_default_cellpadding: "5",
			table_default_cellspacing: "1",

			theme_advanced_buttons1 : "fullscreen,|,pastetext,pasteword,|,cut,copy,paste,removeformat,|,undo,redo,|,link,table,image,charmap,|,search,code",
			theme_advanced_buttons2 : "formatselect,fontselect,fontsizeselect,|,bold,italic,underline,strikethrough",
			theme_advanced_buttons3 : "justifyleft,justifycenter,justifyright,justifyfull,|,backcolor,forecolor,|,numlist,bullist,|,outdent,indent"
		});
	}
	else {
		tinyMCE.init({
			mode : "exact",
			elements : elements,
			theme : "advanced",
			plugins : "fullscreen,paste,inlinepopups",
			language : lang,
			theme_advanced_toolbar_location: "top",
			theme_advanced_toolbar_align : "left",
			theme_advanced_statusbar_location : "none",
			theme_advanced_resizing : false,
			theme_advanced_blockformats : "p,h2,h3,h4",
			convert_urls : true,
			relative_urls : false,
			strict_loading_mode : true,
			height: '250',
			width: '500',
			force_p_newlines : false,
			force_br_newlines : true,
			forced_root_block : '',
			valid_elements : "strong/b,em/i,strike,u,br,p,ul,ol,li",

			theme_advanced_buttons1 : "fullscreen,|,pastetext,pasteword,|,bold,italic,underline,strikethrough,|,numlist,bullist,|,undo,redo,|,removeformat",
			theme_advanced_buttons2 : "",
			theme_advanced_buttons3 : ""
		});
	}
}
