dict.re = {
	
	text: function(s){
		s = trim(s)
		return s.length > 5 && s.match(/[а-яёЁ]/i)
	},
	
	addr: function(s){
		s = trim(s)
		return s.length > 5 && s.match(/\d/)
	},
	
	tel: function(s){
		s = s.replace(/\D+/, '')
		return s.match(/\d{5}/)
	}
};

function acceptPost(post) {
	var list = gt('div'), el, box, msg = ce('div');
	for (var i = 0, l = list.length; i < l; i ++) {
		el = list[i]
		cN = el.className
		if (hc(cN, 'messages')) {
			box = el;
			break;
		}
	}
	if (!post || !post.set) return;
	if (!box) return;
	name = post.set.name
	text = post.set.text
	time = post.set.time
	msg.innerHTML = '<span class="name">' 
	+ name + '</span><span class="mtime">' 
	+ time + '</span><p><p>' 
	+ text + '</p>'
	ac(msg, box)
	hide_frame()
}

function initComment() {
	var head = gi('add_form'), table = head && head.className, topic = location.pathname, 
		params = {src:'about:blank', name:'formframe', className:'formframe disnone'};
	if (!table) return;
	var formbox = head.parentNode.insertBefore(ce('div'), head.nextSibling);
		//frame = ac(buildEl2 ('iframe', params), formbox);
	formbox.className = 'formbox'
	formbox.innerHTML = '<iframe class="formframe disnone" name="formframe" src="about:blank"></iframe>'
	frame = formbox.firstChild
	
	topic = topic.split('/').pop()
	if (!topic) topic = 'main.html'
	params = {action:'write.com', method:'post', target:'formframe', onsubmit:validate, className:'add_message'}
	var frm = buildEl2 ('form', params), fields = {
		name: {ru:'Имя', tpl:'p', box:'', prop:{value:getCookie('name') || '', onblur:setCurrItem}, el:'input', need:1},
		email: {ru:'Электронный адрес', tpl:'p', box:'', prop:{value:getCookie('email') || '', onblur:setCurrItem}, el:'input'},
		text: {ru:'Текст сообщения', tpl:'p', box:'', prop:{value:getCookie('text') || '', onblur:setCurrItem}, el:'textarea', need:'text'},
		topic: {ru:'Страница сайта', tpl:'', box:'', prop:{type:'hidden', value:topic }, el:'input', need:1},
		table: {ru:'', tpl:'', box:'', prop:{type:'hidden', value:table }, el:'input', need:1},
		essence: {ru:'', tpl:'', box:'', prop:{type:'hidden', value:table }, el:'input', need:1},
		ajax: {ru:'', tpl:'', box:'', prop:{type:'hidden', value:1}, el:'input'},
		subm: {ru:'', tpl:'', box:'', prop:{type:'submit', value:'Отправить сообщение'}, el:'input'}
	},
	
	tpls = {
		p: function(name, el, need){
			var p = ce('p'), span = ce('span'), ast = buildEl2 ('acronym', {className:'need', title:'Заполнять обязательно!'}, '* '), text = ct(name + ': '); 
			if (need) ac(ast, p); 
			ac(text, span); ac(span, p); 
			ac(el, p); return p;
		},
		span: function(name, el, need){
			var span = buildEl2('span', {className:el.name}, el.title), ast = buildEl2 ('acronym', {className:'need', title:'Заполнять обязательно!'}, '* '), text = ct(name + ': '); 
			if (need) ac(ast, span); 
			span.insertBefore(el, span.firstChild)
			return span;
		}
	};
	
	ac(frm, formbox)
	frm.el_fields = {}
	
	for (id in fields) {
		addField(id)
	}

	function addField(id) {
		var o = fields[id], box = frm,
		prop = o.prop, el, tpl = o.tpl, el_add, need = o.need || false;
		
		fields[id].prop.name = (o.ru) ? ('set[' + id + ']') : id
		fields[id].prop.title = o.ru
		fields[id].prop.className = id + ' ' + (prop.className || '')
		prop = o.prop
		
		el = buildField(o.el, prop)
		el_add = (tpl) ? tpls[tpl](o.ru, el, need) : el
		ac(el_add, box)
		el.cname = id
		frm.el_fields[id] = el
	}
	
	prepFields()

	function prepFields() {
		var el, val, list = frm.elements, str = '', field, prop;
		for (var i = 0, l = list.length; i < l; i ++) {
			el = list[i]
			
			
			field = fields[el.name]
			prop = field && field.prop
			if (prop) {
				for (var p in prop) {
					if (p != 'type' && p != 'className' && p != 'onclick' && p != 'onblur') {
						//str += (el.name + ' / ' + p + ' / ' + prop[p] + '\n')
						el.setAttribute(p, prop[p])
					}
				}
				
			}
			//el.onblur = setCurrItem
		}
		//alert(str)
	}
	
	function setCurrItem(e, o) {
		e = e || window.event
		var obj = (e) ? (e.target || e.srcElement) : null;
		o = o || this
		setCookie(o.cname, o.value, location.pathname)
	}
	
		function validate(e, f) {
		f = f || this
		var el, name, o, ru, v, ok, list = f.elements, err = [];
		
		for (var i = 0, l = list.length; i < l; i ++) {
			ok = true
			el = list[i]
			if (el.type == 'file' && !el.value) el.disabled = true;
			v = el.value
			name = el.cname
			o = fields[name]
			if (!o) {err.push(name); continue}
			ru = o.ru || name
			//err.push(ru)
			need = o.need
			if (!need) continue
			func = dict.re[need]
			if (func) ok = func(v)
			else if (Number(need)) ok = (v.length >= need)
			if (!ok) err.push(ru)
		}
		
		if (err.length) {
			prevent(e)
			alert('Неверно заполнено:\n====================\n' + err.join('\n'))
			return false
		}
		else {
			cc(frame, null, 'disnone')
			return true
		}
	}
	
	window.hide_frame = function hide_frame () {
		cc(frame, 'disnone')
	}
		
}


addLoadEvent(initComment)
addLoadEvent(loadMap)

function loadMap() {
   
   if (!window.YMaps) return
   var div = ac(ce('div'), gi('karta'));
   div.className = 'ymap';
   map = new YMaps.Map(div);

   map.setCenter(new YMaps.GeoPoint(104.299029,52.290912), 16);
            
            /*
            var s = new YMaps.Style();
            s.iconStyle = new YMaps.IconStyle();
            s.iconStyle.href = "img/vhod2.jpg";
            s.iconStyle.size = new YMaps.Point(200, 168);
            s.iconStyle.offset = new YMaps.Point(-200, -168); //, {style: s}
            */
            
   var placemark = new YMaps.Placemark(map.getCenter());
   //placemark.setBalloonContent("<img src='img/vhod2.jpg' alt='vhod2.jpg'>");
   placemark.setIconContent('Дизайн-бюро «Модерн»');
   map.addOverlay(placemark);
   
   map.addControl(new YMaps.TypeControl());
   map.addControl(new YMaps.ToolBar());
   map.addControl(new YMaps.Zoom());
   //map.addControl(new YMaps.MiniMap());
   map.addControl(new YMaps.ScaleLine());
   //map.addControl(new YMaps.SearchControl());
}

function showSEWord() {
	var SE_word = dict && dict.SE_word, msg = dict.config.site['SE_msg'];
	if (!SE_word) return;
	var list = gt('div'), el, div = null,
		msg = ' ' + msg + ' «<strong>' + SE_word + '</strong>».';
	for (var i = 0, l = list.length; i < l; i ++) {
		el = list[i]
		if (hc(el.className, 'text')) {
			div = el
			break;
		}
	}
	if (!div) return;
	el = gt('p', div)[0];
	el.innerHTML += msg
}

/* это наша песня */
function LightBtn(Nr, BtnOff, BtnOn, BtnState)
{
 this.Nr = Nr;
 this.BtnName = "LightBtn"+Nr;
 this.OffImg = new Image();
 this.OffImg.src = 'img/' + BtnOff;
 this.OnImg = new Image();
 this.OnImg.src = 'img/' + BtnOn;
 this.BtnState = BtnState;
}

BtnCount = 9;

L_Btn1 = new LightBtn(1,
                      "p1.gif",
                      "p1.jpg",
                      1);

L_Btn2 = new LightBtn(2,
                      "p2.gif",
                      "p2.jpg",
                      1);       

L_Btn3 = new LightBtn(3,
                      "pfns.gif",
                      "pfns.jpg",
                     1);

L_Btn4 = new LightBtn(4,
                      "k1.gif",
                      "k1.jpg",
                     1);

L_Btn5 = new LightBtn(5,
                      "p3.gif",
                      "p3.jpg",
                     1);

L_Btn6 = new LightBtn(6,
                      "p4.gif",
                      "p4.jpg",
                     1);

L_Btn7 = new LightBtn(7,
                      "p5-1.gif",
                      "p5-1.jpg",
                     1);

L_Btn8 = new LightBtn(8,
                      "p5-2.gif",
                      "p5-2.jpg",
                     1);

L_Btn9 = new LightBtn(9,
                      "k2.gif",
                      "k2.jpg",
                     1);

function ShowLightBtn(BtnNr, BtnAction)
{
 A_LightBtn = eval("L_Btn"+BtnNr);
 BtnName = A_LightBtn.BtnName;
 switch (BtnAction)
 {
  case 1: {
            if (A_LightBtn.BtnState == 1)
             document [BtnName].src = A_LightBtn.OffImg.src;
            if (A_LightBtn.BtnState == 2)
             document [BtnName].src = A_LightBtn.OnImg.src;
          } break;
  case 2: {
            document [BtnName].src = A_LightBtn.OnImg.src;
          } break;
 }
}
/* конец песни */
