var lc = new Array();
var lcz = new Array();

function wp(i,im)
{
lc[i]=dbi(i);
lc[i].style.display = "block";
lcz[lcz.length]=lc[i];
document.write("<TR><TD><A href='javascript:toggle_id(\""+i+"\")'><IMG BORDER=0 STYLE='display:inline' ID="+i+"_v SRC='common/eye.gif'><IMG BORDER=0 STYLE='display:none' ID="+i+"_h SRC='common/eye_closed.gif'></A>");
document.write("<TD><span style='width:0px'></span>");
document.write("<TD ALIGN=center><A href='javascript:sel_id(\""+i+"\")'><IMG ID=wpimg_"+i+" HEIGHT=20 BORDER=0 SRC="+im+"></A>");
}

function set_lcz(a)
{
	lcz = a;
	for(var e = lcz.length; e > 0; --e)
		lcz[e-1].style.zIndex = (lcz.length-e+1);
}

function sel_elem(e)
{
	if(e.id==lcz[0].id)
		return;
	var res = [];
	for(var i = 0; i < lcz.length; ++i)
	{
		if(lcz[i].id==e.id)
			break;
		res[i+1] = lcz[i];
	}
	res[0] = e;
	for(++i;i < lcz.length; ++i)
		res[i] = lcz[i];
	set_lcz(res);
	save_state()
}

function mark_eye(i) {
	if(isHide(dbi(i)))
	{
		dbi(i+"_v").style.display="none";
		dbi(i+"_h").style.display="inline";
	}
	else
	{
		dbi(i+"_v").style.display="inline";
		dbi(i+"_h").style.display="none";
	}
}

function toggle_id(i)
{
	var e = dbi(i)
	if(isHide(e))
		showE(e);
	else
		hideE(e);
	mark_eye(i)
	save_state()
}

function sel_id(i)
{
	showE(dbi(i));
	mark_eye(i)
	sel_elem(dbi(i));
}

function hasCircle(e) { return hasAttr(e,"pt_circle") }
function hasSolid(e) { return hasAttr(e,"pt_solid") }

function find_elem(event, inGmapMD)
{
	var ec = get_event_coords( event ); 
	for(var e = 0; e < lcz.length; ++e)
		if(lcz[e].style.display=="block") {
			if(lcz[e].id =="gmap_layer")	{
				if(inGmapMD)
					return lcz[e];
			}
			else {
				var a = pt_in_elem_rec(lcz[e],ec.x,ec.y, hasCircle , hasSolid);
				if(a) 
					return a;
			}
		}
	return null;
}

function has_active_in_path(elem) {
	do {
		if( elem.tagName == "A" && elem.href ||
			hasAttr(elem,"pt_active") )
			return true;
	} while(elem = elem.parentNode);
	return false;
}

function transl_click(event, inGmapMD) {
	var e = find_elem(event, inGmapMD)
	if(e)
		send_mouse(e, event)
}
function transl_mousedown(event, inGmapMD) {
	close_menu(true)
	var e = find_elem(event, inGmapMD)
	if(e) {
		for(var i in lc) {
			if(is_subnode_of(e,lc[i])) {
				sel_id(i)
				if(!has_active_in_path(e))
					return DnDProcessor({root:lcz[0], 
									v:{min:0}, h: {min:0}, 
									onmoved: function() {
										if(lcz[0].id=="gmap_layer") {
											var a = dbi("gmapmask_layer")
											a.style.left = lcz[0].offsetLeft + "px";
											a.style.top = lcz[0].offsetTop + "px";
										}
									},
									ondrop: function() {
										save_state()
									}
						})(event)
					
			}
		}
		send_mouse(e,event)
	}		
}

function find_cursor(event, inGmapMD) {
	var e = find_elem(event, inGmapMD)
	if(e && has_active_in_path(e)) 
		return "pointer"
	return "default"
}

function transl_mousedown_im(event) {
	var tg = event.target || event.srcElement;
	transl_mousedown(event, tg.tagName == "AREA")
}
function transl_click_im(event) {
	var tg = event.target || event.srcElement;
	transl_click(event, tg.tagName == "AREA")
}
function find_cursor_im(event) {
	var tg = event.target || event.srcElement;
	return find_cursor(event, tg.tagName == "AREA")
}

//Left, Top, Width, Height
function save_offset(arr,obj_s,prp) {
	var v = eval(obj_s+".offset"+prp)
	arr.push("OFFSET:"+escape(obj_s)+":"+prp+":"+v)
}
function save_prop(arr,obj_s,prp) {
	var obj = eval(obj_s)
	var v = obj[prp]
	arr.push("PROP:"+escape(obj_s)+":"+escape(prp)+":"+escape(v))
}

function uni_restore(lst) {
	for(var i=0;i<lst.length;++i) 
		if(lst[i].match(/\s*OFFSET:(.*):(.*):(.*)/)) {
			var obj_s = unescape(RegExp.$1)
			var prp = RegExp.$2
			var v = RegExp.$3
			eval(obj_s+".style."+prp.toLowerCase()+"="+v)
		}
	for(var i=0;i<lst.length;++i) 
		if(lst[i].match(/\s*PROP:(.*):(.*):(.*)/)) {
			var obj_s = unescape(RegExp.$1)
			var prp = unescape(RegExp.$2)
			var v = unescape(RegExp.$3)
			var obj = eval(obj_s)
			if(obj && (prp in obj)) obj[prp] = v
		}
}

function save_state() {
	var res = []
	for(var i=0;i<lcz.length;++i) {
		var id = lcz[i].id
		res.push("Z:"+id)
		save_prop(res, "dbi('"+id+"').style", "left")
		save_prop(res, "dbi('"+id+"').style", "top")
		save_prop(res, "dbi('"+id+"').style","display")
	}
	save_offset(res, "dbi('control_layer')", "Left")
	save_offset(res, "dbi('control_layer')", "Top")
	save_offset(res, "dbi('allitems')", "Left")
	save_offset(res, "dbi('allitems')", "Top")
	save_prop(res,"dbi('allitems_body').parentNode.style","display")
	save_prop(res,"dbi('control_body').parentNode.style","display")
	write_cookie("items_state",res.join(";"))
}


function restore_layers(str) {
	if(str) {
		var lst = str.split(";")
		var elems = []
		for(var i=0;i<lst.length;++i) 
			if(lst[i].match(/\s*Z:(.*)/)) {
				var id = RegExp.$1
				var elem = dbi(id)
				if(elem) elems.push(elem)
			}
		if(elems.length>0) {
			for(var i=0;i<lcz.length;++i)
				lcz[i] = elems[i]
			set_lcz(elems)
		}
		uni_restore(lst)
		for(var i=0;i<lcz.length;++i)
			mark_eye(elems[i].id)
	}
}

function restore_state() {
	var v = read_cookie("items_state")
	restore_layers(v)
	var s = dbi("gmap_layer")
	var a = dbi("gmapmask_layer")
	a.style.left = s.offsetLeft + "px";
	a.style.top = s.offsetTop + "px";
}

var wnd_p = { onshow:save_state, onhide:save_state, onmoved:save_state }

function init_cur() {
	dbi('a_imgclean').src = "data/"+cur_item.name+".clean.small.gif"
	dbi('a_af').src = "data/"+cur_item.name+".face.big.gif"
	dbi('a_af2').src = "data/"+cur_item.name+".face.big.gif"
	dbi('a_big').src = "data/"+cur_item.name+".big.jpg"

	addText(dbi('a_autor_head'),cur_item.title)
	addText(dbi('a_autor_name'),cur_item.autor)
	addText(dbi('a_autor_name2'),cur_item.autor)

	addText(dbi('m_map1'),cur_item.map1)
	addText(dbi('m_map2'),cur_item.map2)
	addText(dbi('m_map3'),cur_item.map3)
	addText(dbi('m_date'),cur_item.date)
}
function spec_layout() {
	if(ext_teller) {
		hideE(dbi('a_autor_name'))
		dbi('a_autor_name2').style.display="inline"
	}
	else {
		hideE(dbi('a_autor_name2'))
		dbi('a_autor_name').style.display="inline"
	}
	if(!ext_photo && ext_teller) {
		hideE(dbi('a_af'))
		dbi('a_af2').style.display="inline"
	}
	else {
		hideE(dbi('a_af2'))
		dbi('a_af').style.display="inline"
	}
}

function in_events(ae) {
	var s = ""
	for(var i = 0; i < ae.length; ++i) {
		lng = mlang in ae[i].c ? mlang : ".en."
		s += "<LI class=ev_idx_c><a href=events/pevent"+lng+"html?"+ae[i].h+" onclick='openhref(this)' pt_solid>"+ae[i].c[lng]+"</a></LI>"
	}
	dbi('item_events_lst').innerHTML = s
}

var cursnddig = 0
var timid = null
var firstSnd = true
function opensnd() { 
	if(!dbi("snddigit")) return
	cursnddig = 3
	if(firstSnd) {
		dbi("snddigit").style.visibility = ""
		dbi("snddigit").innerHTML = cursnddig
		timid = setInterval(function(){
			--cursnddig
			var dd = document.createTextNode(cursnddig)
			dbi("snddigit").removeChild(dbi("snddigit").firstChild)
			dbi("snddigit").appendChild(dd);
			if(cursnddig==0)
			{
				dbi("snddigit").style.visibility = "hidden"
				clearInterval(timid)
			}
		}, 1000)
	} else {
				dbi("snddigit").style.visibility = "hidden"
				clearInterval(timid)
	}
	firstSnd = !firstSnd
	if(dbi('sndbg').src === undefined) {
		if(/embed/.test(dbi('sndbgalt').innerHTML)) dbi('sndbgalt').innerHTML = ""
		else dbi('sndbgalt').innerHTML =  "<embed  type='audio/mpeg' src='data/"+cur_item.name+".mp3' width=0 height=0 autostart=true hidden=true></embed>"
	}
	else
		if(dbi('sndbg').src) dbi('sndbg').src = ""
		else dbi('sndbg').src = "data/"+cur_item.name+".mp3"
}
function openclean() { 
	open("items/fs"+mlang+"html?"+cur_item.name,"_blank",
	"width="+(screen.availWidth-10)+","+"height="+(screen.availHeight-10)+","+"top=0,left=0,"+
	"channelmode=no,directories=no,fullscreen=no,location=no,menubar=no,"+
	"resizable=yes,scrollbars=yes,status=no,toolbar=no")
}
function openhref(e) { 
	open(e.href,"_blank")
}

function writeTitle() {
	document.write("<title>"+mainDict[dict_file+"//title"]+"</title>");
}

function writeTr(x) {
	return document.write(mainDict[dict_file+"//"+x]) + "";
}

function tr(x) {
	return mainDict[dict_file+"//"+x];
}

function tr_all(x) {
	return mainDict["all//"+x];
}

regAttach(["SPAN",{loc:/[a-z]*/}], 
function (mapper, elem) {
	var v = elem.getAttribute("loc")
	var a = mainDict[dict_file+"//"+v]
	return a
} )
regAttach(["DIV",{loc:/[a-z]*/}], 
function (mapper, elem) {
	var v = elem.getAttribute("loc")
	var a = mainDict[dict_file+"//"+v]
	return a
} )
regAttach(["SPAN",{locH:/[a-z]*/}], 
function (mapper, elem) {
	var v = elem.getAttribute("locH")
	var a = mainDict[dict_file+"//"+v]
	elem.innerHTML = a
} )
regAttach(["DIV",{locH:/[a-z]*/}], 
function (mapper, elem) {
	var v = elem.getAttribute("locH")
	var a = mainDict[dict_file+"//"+v]
	elem.innerHTML = a
} )

