var text_html=new Array;
var tid_date=new Array();
var editid;
var typeid;
var type=new Array();
var click_delay=1200;

function show(url, w, h, s, n) {
	if(!n) n = '_blank';
	attr = 'width=' + w + ',height=' + h + ',location=0,menubar=0,resizable=0,scrollbars=' + s + ',status=0,titlebar=0,toolbar=0,hotkeys=0'
	if(parseInt(navigator.appVersion) >= 4) {
		x = (screen.width - w) / 2
		y = (screen.height - h) / 2
		if(x < 0) x = 0
		if(y < 0) y = 0
		attr += ',xposition=' + x + ',left=' + x + ',yposition=' + y + ',top=' + y
	}
	window.open(url, n, attr)
}

function global_cancel_bubble(obj,extra) {
if(!obj||is_ie) {
	if(extra) {window.event.returnValue=false;}
	window.event.cancelBubble=true;
	return window.event;
	} else {
	obj.stopPropagation();
	if(extra) {obj.preventDefault();}
	return obj;
	}
}

function init_text_links() {
var pagelinks=document.getElementsByTagName('span');
for(var i=0;i<=pagelinks.length;i++) {
	try {
		if(!pagelinks[i].id) {continue;}
		}
	catch(e) {continue;}
	var linkid=pagelinks[i].id;
	var linkname=linkid.replace(/^(.*)-(\d+)$/,"$1");
	switch(linkname) {
		case "adm-title":
		case "adm-anons":
		case "adm-body":
		pagelinks[i].onmousedown=text_event_mousedown;
		pagelinks[i].onmouseup=text_event_mouseup;
		break;
		}
	}
}

function text_event_mousedown(event) {
event=global_cancel_bubble(event,true);
var tid=_get_tid_from_id(this.id);
type[tid]=_get_type_from_id(this.id);
if(!editid) {
	tid_date[tid]=_get_time_now();
	setTimeout("text_event_timer("+tid+")",5);
	}
}

function text_event_mouseup(event) {
event=global_cancel_bubble(event,true);
var tid=_get_tid_from_id(this.id);
type[tid]=_get_type_from_id(this.id);
tid_date[tid]=0;
}

function text_event_timer(tid) {
var timenow=_get_time_now();
if(timenow>0&&tid_date[tid]>0&&((timenow-tid_date[tid])>click_delay)) {
	editid=tid;
	typeid=type[tid];
	tid_date[tid]=0;
	span_to_input(tid);
	return false;
	}
if(tid_date[tid]>0) {
	setTimeout("text_event_timer("+tid+")",5);
	} else {
	return false;
	}
}

function _get_time_now() {
var mydate=new Date();
return mydate.getTime();
}

function _get_tid_from_id(id) {
return id.replace(/.*\-(\d+)/,"$1");
}

function _get_type_from_id(id) {
return id.replace(/^(.*)-(\d+)$/,"$1");
}

function span_to_input(tid) {
text_html[tid]=document.getElementById(type[tid]+'-'+tid).innerHTML;
document.getElementById(type[tid]+'-'+tid).innerHTML='<center style=background-color:#f5f5f5;><img src=/i/admin/load.gif vspace=2></center>';
JsHttpRequest.query(
	'/ajax/public.php',
		{
		'act': "get_text",
		'id_doc': tid,
		'type': type[tid],
		'lang': lang
		},
	function(result, errors) {
		//document.getElementById("debug").innerHTML = errors; 
			
switch(type[tid]) {
case "adm-title":
document.getElementById('adm-title-'+tid).innerHTML='<input id="edit-'+type[tid]+tid+'" type="text" size="40" style="width=100%;" value="'+result["title"]+'">';
break;
case "adm-anons":
document.getElementById('adm-anons-'+tid).innerHTML=result["anons"];
//document.getElementById('adm-anons-'+tid).innerHTML='<textarea id="edit-'+type[tid]+tid+'" cols=30 rows=7 style="width=100%;">'+result["anons"]+'</textarea>';
break;
case "adm-body":
document.getElementById('adm-body-'+tid).innerHTML=result["body"];
//document.getElementById('adm-body-'+tid).innerHTML='<textarea id="edit-'+type[tid]+tid+'" cols=30 rows=24 style="width=100%;">'+result["body"]+'</textarea>';
break;
}

document.getElementById('edit-' + type[tid] + tid).onkeyup = function(event) { tid_keypress(event, tid) }
document.getElementById('edit-' + type[tid] + tid).onblur  = function(event) { tid_blur(tid) }
document.getElementById('edit-' + type[tid] + tid).focus();

return false;	

		},
	true
	);
}

function tid_blur(tid) {
//alert(typeid+' : '+type[tid]+'\n'+editid+' : '+tid);

if(typeid!=type[tid]) {
new_text = document.getElementById('edit-' + typeid + editid).value;
if(new_text != "") {
	tid_save(editid, new_text, typeid);
	} else {
	document.getElementById(typeid + '-' + editid).innerHTML = text_html[editid];
	}
} else {
new_text = document.getElementById('edit-' + type[tid] + tid).value;
if(new_text != "") {
	tid_save(tid, new_text, type[tid]);
	} else {
	document.getElementById(type[tid] + '-' + tid).innerHTML = text_html[tid];
	}
}

editid=0;
return false;
}

function tid_keypress(evt, tid) {
//if(is_safari) {return false;}
evt      = evt ? evt : window.event;
new_text = document.getElementById('edit-' + type[tid] + tid).value;
if(evt.keyCode == 27) {
	document.getElementById(type[tid] + '-' + tid).innerHTML = text_html[tid];
	editid=0;
	return false;
	}
}

function tid_save(tid, text, ttype) {
document.getElementById(ttype + '-' + tid).innerHTML='<center style=background-color:#f5f5f5;><img src=/i/admin/load.gif vspace=2></center>';
JsHttpRequest.query(
	'/ajax/public.php',
		{
		'act': "save_text",
		'id_doc': tid,
		'type': ttype,
		'lang': lang,
		'text': text
		},
	function(result, errors) {
		//document.getElementById("debug").innerHTML = errors; 
		document.getElementById(ttype + '-' + tid).innerHTML=result["text"];
		},
	true
	);
}


function TT(el, img) {
	if (scTM) clearTimeout(scTM);
	var x = getRelLeft(el) - 26,
		y = getRelTop(el) - 98;
	$('thumbnail').src = img;
	$('thumbwrapper').style.left = x + 'px';
	$('thumbwrapper').style.top = y + 'px';
	$('thumbwrapper').style.visibility = 'visible';
	$('shadow').style.width = 130 + 'px'
	$('shadow').style.height = 80 + 'px'
	$('shmiddle').style.height = 80 + 'px'
	$('shadow').style.left = x - 4 + 'px';
	$('shadow').style.top = y - 4 + 'px';
	$('shadow').style.visibility = 'visible';
}

function hideTT() {
	scTM = setTimeout('hideTT2()', 50)
}

function hideTT2() {
	$('shadow').style.visibility = 'hidden';
	$('thumbwrapper').style.visibility = 'hidden';
}

function getRelLeft(el) {
	var pos = el.offsetLeft;
	while (el.offsetParent != null) { el = el.offsetParent; pos += el.offsetLeft; if (el.tagName == 'BODY') break; }
	return pos;
}

function getRelTop(el) {
	var pos = el.offsetTop;
	while (el.offsetParent != null) { el = el.offsetParent; if (el.id == 'bodyi') continue; pos += el.offsetTop; if (el.tagName == 'BODY') break; }
	return pos;
}

var scTM, curH = null;
