var close_regions_list = false, region_list_tm = null;

//Переключение формы заказа
function ToggleBuyForm(val) {
	$('buy_form').style.display=val;
	if($('captcha_sid').value=='') CaptchaRefresh();
	return false;
}

function MakeFirmMenu(menu) {
	var mcont = $('element_menu'), code = [];
	
	if(!mcont) return false;
	
	for(var i = menu.length, m; i--;) {
		m = menu[i];
		
		if($(m[0])) {
			code.push(
				"<a href='#" + m[2] + "' id='" + m[0] + "_menu'>"
				+ "<b>" + m[1] + "</b>"
				+ (m[3] ? " <i>(" + m[3] + ")</i>" : "")
				+ "</a>");
			
			/*
			if(m[0] != 'about_company') {
				$(m[0]).style.borderTop = 'none';
				$(m[0]).style.margin = '0';
			}
			*/
		}
	}
	
	var switch_menu = function(hash) {
		var hash = hash.replace('#', '');
		
		for(var i = 0, m; i < menu.length; i++) {
			m = menu[i];
			
			if($(m[0])) {
				$(m[0]).style.display = (m[2] == hash || hash == 'about') ? 'block' : 'none';
				doClass($(m[0] + '_menu'), 'element_menu_active', (m[2] == hash) ? 'add' : 'remove');
			}
		}
	} 
	
	if(code.length > 1) {
		mcont.innerHTML = code.join('');
		mcont.onclick = function(e) {
			var e = e || window.event, target = e.target || e.srcElement, hash;
			
			if(target.nodeName != 'A') target = target.parentNode;
			
			if(target.nodeName == 'A') {
				hash = target.href.replace(/^[^#]*#(.*)$/, '$1');
				switch_menu(hash);
				
				return false;
			}
		}
		
		switch_menu('#about');
	}
	else mcont.style.display = 'none';
}

//Добавление заказа
function AddOrder() {
	var slim_form=function(text) {
		var f_inner=$('buy_form').firstChild;
		f_inner.style.height='20px';
		f_inner.style.padding='10px';
		f_inner.innerHTML=text;
	}
	
	$('order_button').disabled = true;

	JsHttpRequest.query(
		'/lib/ajax_backend/order_backend.php',	{q: $n('buy_form')},
		function(res,errors) {
			$('order_button').disabled = false;
			
			if(parseInt(res['order_id'])>0) {
				slim_form(trans.order_accepted);
			}
			else {
				if(res['errors']['no_captcha']) CaptchaRefresh();
				
				if(res['errors']['no_fields'] || res['errors']['no_captcha']) alert(res['errors_text']);
				else slim_form(res['errors_text']);
			}
		},
		false
	);
}

//Рефреш каптчи
function CaptchaRefresh(prefix) {
	var d = new Date(), sid = parseInt(d.getMilliseconds() * Math.random() * 10000), prefix = prefix || '';

	$(prefix + 'captcha_sid').value=sid;
	$(prefix + 'captcha_word').value='';
	$(prefix + 'captcha_img').src='/lib/tools/captcha.php?captcha_sid='+sid;
}

//Отображение карты на странице компании
function ShowPageMap(link, address, firm_id) {
	var map_cont = $('map_cont');
	if(map_cont.style.display == 'none') {
		map_cont.style.display = 'block';
		link.firstChild.innerHTML = trans.hide_map;
	}
	else {
		map_cont.style.display = 'none';
		link.firstChild.innerHTML = trans.show_on_map;
	}

	if(map_cont.innerHTML == '') {
		map_cont.innerHTML = "<iframe src='/lib/tools/map/index.php?address="+address+"&fid=" + (firm_id || 0) + "' vspace=0 hspace=0 frameborder=0 width=100% height=350 scrolling='no'></iframe>";
	}
	return false;
}

function ShowWindowMap(address) {
	window.open('/lib/tools/map/index.php?address='+address, null, "height=350,width=600,status=yes,toolbar=no,menubar=no,location=no");
	return false;
}

//Отрисовка и отображение формы обратной связи
function DrawBacklinkForm(name,id, outer_id) {
	var mess_types=trans.mess_types;
	var code=["<form onsubmit='return false' id='backlink_form' style='display: none'>"];
	code.push("<div id='bl_title'>"+trans.report_error+"</div>");
	code.push("<input type='hidden' id='bl_id' value='"+id+"'><input type='hidden' id='bl_outer_id' value='"+outer_id+"'><input type='hidden' id='bl_name' value='"+name+"'>");
	code.push("<a href='#close' id='bl_close' onclick=\"return CloseForm('backlink_form')\">"+trans.close_window+"</a>");
	code.push("<textarea id='bl_text' name='bl_text' class='textinput'></textarea>");
	code.push("<div id='bl_note'>"+trans.if_your_company+" <a href='/add/' onclick=\"document.getElementById('firm_add').submit(); return false;\">"+trans.register+"</a> "+trans.correct_data_on_your_own+"</div>");
	code.push("<input type='submit' value='"+trans.send_message+"' id='bl_send' onclick='SendBacklink()'>");
	code.push("</form>");
	
	code.push("<div id='bl_alert' style='display: none;'>"+trans.thanks_for_message+"<br>"+trans.info_will_be_corrected+"<br><a href='#' onclick=\"$S('bl_alert').display='none'; return false;\">"+trans.close+"</a></div>");
	$('head_line').innerHTML+=code.join('');
}

//Отрисовка и отображение формы связи по e-mail
function DrawMailForm(id) {
	var code=["<form onsubmit='return false' id='maillink_form' style='display: none'>"];
	code.push("<div id='ml_title'>"+trans.write_message+"</div>");
	code.push("<input type='hidden' id='ml_id' value='"+id+"'>");
	code.push("<a href='#close' id='ml_close'>"+trans.close_window+"</a>");
	code.push("<div class='ml_addr_block'><label for='ml_addr'>"+trans.your_email+"</label>&nbsp;<input id='ml_addr' name='ml_addr' class='textinput' type='text'></div>");
	code.push("<textarea id='ml_text' name='ml_text' class='textinput'></textarea>");

	code.push("<input type='submit' value='"+trans.send+"' id='ml_send' onclick='SendMailLink()'>");
	
	//Captcha
	code.push("<div class='js_captcha'>");
	code.push("<label for='captcha_word'>" + trans.captcha_desc + "</label>");
	code.push("<input type='hidden' id='ml_captcha_sid' name='captcha_sid' value=''>");
	code.push("<div class='js_captcha_inner'>");
	code.push("<img src='' width='160' height='40' id='ml_captcha_img' alt='CAPTCHA' onclick=\"CaptchaRefresh('ml_')\" style='cursor: pointer'>");
	code.push("<input type='text' id='ml_captcha_word' name='captcha_word' autocomplete='off' maxlength='6' value='' class='textinput'>");
	code.push("</div>");
	code.push("<span>" + trans.captcha_help + "</span>");
	code.push("</div>");
	
	code.push("</form>");
	
	code.push("<div id='ml_alert' style='display: none;'>"+trans.message_sent+"<br><a href='#' onclick=\"$S('ml_alert').display='none'; return false;\">"+trans.close+"</a></div>");
	$('head_line').innerHTML+=code.join('');
	
	var close = $('ml_close');
	close.onclick = function() {return CloseForm('maillink_form');}
	close.onmousedown = close.onmouseup = cFalse;
}

//Отрисовка и отображение формы приглашения владельца
function DrawInviteForm(id) {
	var code=["<form onsubmit='return false' id='invite_form' style='display: none'>"];
	code.push("<div id='inv_title'>"+trans.invite.title+"</div>");
	code.push("<div id='inv_about'>"+trans.invite.about+"</div>");
	code.push("<input type='hidden' id='inv_id' value='"+id+"'>");
	code.push("<a href='#close' id='inv_close'>"+trans.close_window+"</a>");
	code.push("<div class='inv_adr_block'><label for='inv_addr'>"+trans.invite.email+"</label><br><input id='inv_addr' name='inv_addr' class='textinput' type='text'></div>");
	code.push("<label for='inv_text'>"+trans.invite.comment+"</label><textarea id='inv_text' name='inv_text' class='textinput'></textarea>");
	code.push("<input type='submit' value='"+trans.send+"' id='inv_send' onclick='SendInvite()'>");
	code.push("</form>");
	
	code.push("<div id='inv_alert' style='display: none;'>"+trans.message_sent+"<br><a href='#' onclick=\"$S('inv_alert').display='none'; return false;\">"+trans.close+"</a></div>");
	$('head_line').innerHTML+=code.join('');
	
	var close = $('inv_close');
	close.onclick = function() {return CloseForm('invite_form');}
	close.onmousedown = close.onmouseup = cFalse;
}

function ShowBacklinkForm(name,id, outer_id) {
	if(!$n('backlink_form')) {
		DrawBacklinkForm(name, id, outer_id);
		ColorizeForm('backlink_form');
		DD.add_node('backlink_form',{self_drag: true, strict_target: true});
	}
	
	ShowCenter($n('backlink_form'));
	$('bl_text').focus();

	return false;
}

function ShowMailForm(id) {
	if(!$n('maillink_form')) {
		DrawMailForm(id);
		ColorizeForm('maillink_form');
		DD.add_node('maillink_form',{self_drag: true, strict_target: true});
		
		CaptchaRefresh('ml_');
	}
	
	ShowCenter($n('maillink_form'));
	$('ml_addr').focus();

	return false;
}

function ShowInviteForm(id) {
	if(!$n('invite_form')) {
		DrawInviteForm(id);
		ColorizeForm('invite_form');
		DD.add_node('invite_form',{self_drag: true, strict_target: true});
	}
	
	ShowCenter($n('invite_form'));
	$('inv_addr').focus();

	return false;
}

function CloseForm(id) {
	$n(id).style.display='none';
	return false;
}

//Центровка элемента относительно экрана
function ShowCenter(cont) {
	var screen_size=GetScreenSize(), screen_start=GetScreenScroll();
	cont.style.display='block';
	var cur_pp={}
	
	var coords={
		y: parseInt((screen_size.height+screen_start.y-cont.offsetHeight)/2,10),
		x: parseInt((screen_size.width+screen_start.x-cont.offsetWidth)/2,10)
	}
	
	var bottom=screen_size.height+screen_start.y-5, cont_bottom=parseInt(coords.y)+parseInt(cont.offsetHeight);
	cur_pp.top=(cont_bottom<=bottom)?coords.y:coords.y-cont_bottom+bottom;
	
	var right=screen_size.width+screen_start.x-5, cont_right=parseInt(coords.x)+parseInt(cont.offsetWidth);
	cur_pp.left=(cont_right<=right)?coords.x:coords.x-cont_right+right;

	cont.style.top=cur_pp.top+'px';
	cont.style.left=cur_pp.left+'px';
}

//Отправка сообщения обратной связи
function SendBacklink() {
	if($n('bl_text').value=='') {alert(trans.message_text_required); return false;}
	
	$S('backlink_form').display='none';
	
	JsHttpRequest.query(
		'/lib/ajax_backend/bl_backend.php', {q: $n('bl_text').value, firm_id: $n('bl_id').value, outer_id: $n('bl_outer_id').value, name: $n('bl_name').value},
		function(res,errors) {
			$S('backlink_form').display='none';
			ShowCenter($('bl_alert'));
			//setTimeout("$S('bl_alert').display='none';",2000);
		},
		false
	);
}

function checkmail(mail) {
	return !(mail == '' || !mail.match(/^[A-Za-z0-9\.\_-]{1,32}\@[A-Za-z0-9\.\_-]{1,32}\.[a-zA-Z]{2,6}$/));
}

//Отправка сообщения связи с фирмой
function SendMailLink() {
	//Проверяем на ошибки
	var errs=[];
	var addr_value=$n('ml_addr').value;
	if(!checkmail(addr_value)) errs.push(trans.errors.invalid_email);
	if($n('ml_text').value=='') errs.push(trans.write_message_text);
	
	if(errs.length>0) {alert(errs.join('\n')); return false;}
	
	$('ml_send').disabled='disabled';
	
	JsHttpRequest.query(
		'/lib/ajax_backend/ml_backend.php',
		{
			m: $n('ml_addr').value, t: $n('ml_text').value, user_id: $n('ml_id').value,
			c_sid: $n('ml_captcha_sid').value, c_word: $n('ml_captcha_word').value
		},
		function(res,errors) {
			$('ml_send').disabled='';
		
			if(res && res.errors) {
				alert(res.errors);
				return false;
			}
		
			$S('maillink_form').display='none';
			ShowCenter($('ml_alert'));
			//setTimeout("$S('bl_alert').display='none';",2000);
		},
		false
	);
}

function SendInvite() {
	//Проверяем на ошибки
	var errs=[];
	var addr_value=$n('inv_addr').value;
	if(!checkmail(addr_value)) errs.push(trans.errors.invalid_email);
	
	if(errs.length>0) {alert(errs.join('\n')); return false;}
	
	$S('invite_form').display='none';
	
	JsHttpRequest.query(
		'/lib/ajax_backend/inv_backend.php', {m: $n('inv_addr').value, t: $n('inv_text').value, firm_id: $n('inv_id').value},
		function(res,errors) {
			$S('invite_form').display='none';
			ShowCenter($('inv_alert'));
			
			//window.ShowInviteForm = cFalse;
			//setTimeout("$S('bl_alert').display='none';",2000);
		},
		false
	);
}

//Открытие списка регионов
function ShowRegionList(cur_reg) {
	var list = $n('region_list');
	close_regions_list = false;
	if(region_list_tm) clearTimeout(region_list_tm);
	
	if(!list) {
		var is_usa = (regions_list.length < 60);
	
		var code=["<div class='reg_div'></div>"], r = 0, near = [];
		for(var i in regions_list) {
			if(regions_list[i].id == cur_reg) near = regions_list[i]['near_regs'];
		}		
		
		for(var i in regions_list) {
			r = regions_list[i];
			if(FindInArray(near, r.id) && r.id != 78 && r.id != 77 && r.id != cur_reg) code.push("<a href='http://www." + r.site + "'>" + r.city + (is_usa ? "": " <span>" + r.name.replace(r.city + ' и ', '') + "</span>") + "</a>");
		}
		
		if(!is_usa) {
			if(cur_reg != 77) code.push("<div class='reg_div'></div><a href='http://www.ds77.ru' class='reg_main'>Москва <span>Московская область</span></a>");
			if(cur_reg != 78) code.push("<a href='http://www.ds78.ru' class='reg_main'>Санкт-Петербург <span>Лениградская область</span></a>");
		}
		
		code.push("<a href='#all' class='all_regions_link' onclick='return ShowRegionFullList(" + cur_reg + ")'>"+trans.all_regions+"</a>");
		
		list = AddElement($('logoblock'), 'DIV', {id: 'region_list', style: {display: 'block'}, innerHTML: code.join(''), onmouseout: SetRLCloseTM});
		$('container').onmouseover = SetRLCloseTM;
	}
	else {
		list.style.display = 'block';
	}
	return false;	
}

function SetRLCloseTM(e) {
	if(region_list_tm) clearTimeout(region_list_tm);
	var ev = e || window.event, target = ev.target || ev.srcElement;
	
	do { if(target.id == 'region_list' || target.id == 'city_name') return false; }
	while(target = target.parentNode)

	close_regions_list = true;
	region_list_tm = setTimeout("CloseRegionList()", 300);
}

//Открытие полного списка регионов
function ShowRegionFullList(cur_reg) {
	if($n('region_list')) $n('region_list').style.display = 'none';
	var full_list = $n('region_full_list');
	
	if(!full_list) {
		var columns = 4, regions_count = 0, reg_links = [], r = null, code = [], link = '';
		
		code.push("<h2>"+trans.business_network+"</h2>");
		code.push("<a href='#close' id='reg_list_close' onclick='return CloseFullRegionList()'>"+trans.close_window+"</a>");
		
		for(var i in regions_list) {
			r = regions_list[i];

			link = "<a href='http://www." + r.site + "' " + ((r.fl == true) ? " class='reg_fl'" : "") + ">" + r.name + "</a>";

			if(r.id != cur_reg) reg_links.push(link);
			else reg_links.push("<strong>" + link + "</strong>");
			regions_count++;
		}
		
		var count_in_column = Math.ceil(regions_count/3);
		
		code.push("<div class='reg_list_column'>");
		for(i in reg_links) {
			if(i > 0 && i % count_in_column == 0) code.push("</div><div class='reg_list_column'>"); 		
			code.push(reg_links[i]);
		}
		code.push("</div>");
		
		full_list = AddElement(document.body, 'DIV', {id: 'region_full_list', style: {display: 'none'}});
		full_list_inner = AddElement(document.body, 'DIV', {id: 'region_full_list_inner', innerHTML: code.join(''), style: {display: 'block'}});
	}
	else {
		full_list.style.display = 'none';
		$n('region_full_list_inner').style.display = 'block';
	}
	return false;	
}

function CloseFullRegionList() {
	$n('region_full_list').style.display = 'none';
	$n('region_full_list_inner').style.display = 'none';
	return false;
}

function CloseRegionList(e) {
	if(!close_regions_list) return true;
	
	var list=$('region_list');
	if(list) list.style.display='none';
}

//Отображение большой картинки у товара
function ShowBigPicture(path) {
	if(!$n('public_big_photo')) {
		var pbp=AddElement(document.body, 'DIV', {id: 'public_big_photo', onclick: function(e) {
        	var ev=e || window.event, target = ev.target || ev.srcElement;
            if(target.id=='public_big_photo_closer') $S('public_big_photo').display='none';
            return false;
        }});
		DD.add_node($('public_big_photo'), {self_drag: true});
		
		$('public_big_photo').style.top = '100px';
		$('public_big_photo').style.left = '100px';
	}

	var p_cont=$('public_big_photo');
	p_cont.innerHTML="<div id='public_big_photo_closer'></div><img id='public_big_photo_img' src='"+path.replace('p/','')+"'>";	
	p_cont.style.display='block';
	
	$('public_big_photo_img').onload = function(){ShowCenter(p_cont);}
	
	return false;
}
