rootImgUrl = '../gothic/admin/img';

function showImage(img, w, h) {
	if(w == null) w = 200;
	if(h == null) h = 200;
	var win = window.open("about:blank", "_blank", "width=" + w + ",height=" + h + ",status=0,resizable=0");
	var doc = win.document;

	doc.write('<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Kép</title></head>');
	doc.write('<body style="margin: 0px;">');
	doc.write('<img src="' + img + '" alt="" onclick="window.close();" style="cursor: pointer;">');
	doc.write('</body>');
	doc.close();

	return false;
}


// alapvetoen admin funkciok, de egyszerubb kezelni, ha egy kozos helyen van minden funkcio

function confirmDelete() {
	return window.confirm("Biztosan törölni akarod ezt az elemet?\nEzt a műveletet nem lehet visszavonni.");
}

function chkDel() {
  return window.confirm("Biztosan törölni akarod ezt az elemet?\nEzt a műveletet nem lehet visszavonni.");
}

function confDel() {
  return window.confirm("Biztosan törölni akarod ezt az elemet?\nEzt a műveletet nem lehet visszavonni.");
}

function confirmCopy() {
  return window.confirm("Biztosan másolni akarod ezt az elemet?");
}

function jformRead(form, prefix, excludes) {
	if(typeof form == 'string') form = document.forms[form];
	if(typeof excludes != 'object' || !(excludes instanceof Array)) excludes = new Array();

	var jform = null;
	for(var i = 0; i < form.elements.length; i++) {
		var input = form.elements.item(i);
		var id = input.id;

		if(id != null && id.indexOf(prefix) == 0) {
			id = id.substr(prefix.length);
			if(excludes.indexOf(id) != -1) continue;

			var v = null;
			if(input.tagName == 'INPUT') {
				if(input.type == 'text' || input.type == 'hidden') {
					v = input.value;
				} else if(input.type == 'checkbox' || input.type == 'radio') {
					v = input.checked;
				} else {
					alert("FIXME!");
				}
			} else if(input.tagName == 'TEXTAREA') {
				v = input.value;
			} else if(input.tagName == 'SELECT') {
				v = input.value;
			}

			if(jform == null) jform = new Object();
			jform[id] = v;
		}
	}

	return jform;
}

function jformWrite(form, prefix, jform, excludes) {
	if(typeof form == 'string') form = document.forms[form];
	if(typeof excludes != 'object' || !(excludes instanceof Array)) excludes = new Array();

	if(prefix == null) prefix = "";
	for(var i = 0; i < form.elements.length; i++) {
		var input = form.elements.item(i);
		var id = input.id;
		if(id != null && id.indexOf(prefix) == 0) {
			id = id.substr(prefix.length);
			if(excludes.indexOf(id) != -1) continue;

			var v = jform[id];
			if(typeof v == 'function' || typeof v == 'undefined') continue;

			if(input.tagName == 'INPUT') {
				if(input.type == 'text' || input.type == 'hidden') {
					input.value = v == null ? "" : v;
				} else if(input.type == 'checkbox' || input.type == 'radio') {
					input.checked = (new Boolean(v) == true);
				} else {
					alert("FIXME!");
				}
			} else if(input.tagName == 'TEXTAREA') {
				input.value = v;
			} else if(input.tagName == 'SELECT') {
				if(v != null) {
					input.value = v;
				} else {
					input.selectedIndex = -1;
				}
			}
		}
	}
}

function jformXchg(form0, prefix0, form1, prefix1, excludes) {
	var jform0 = jformRead(form0, prefix0, excludes);
	var jform1 = jformRead(form1, prefix1, excludes);

	console.log("jform: %s %s %s %s", form0, prefix0, form1, prefix1);
	console.dir(jform0);
	console.dir(jform1);

	if(jform0 != null && jform1 != null) {
		jformWrite(form1, prefix1, jform0);
		jformWrite(form0, prefix0, jform1);
	}
}

/*
 * Listaboxok
 */
function CS2Lista(element, initName, nameInputId, panel, imageId, readOnly, widgetname, onlyself) {
	function open() {
		//HTAfl.openWidget(widgetname, 'content_list_panel.php');
		HTAfl.openWidget(widgetname, panel);
		HTAfl.addMessageListener(widgetname, 'select', function(wname, msgName, msg) {
			console.dir(msg);
			element.value = msg.id;
			if (typeof name != "object") {
				xname.value = msg.name;
			} else {
				name.element.value = msg.name;
			}
			_img = document.getElementById(imageId);
			if (_img != null) {
				_img.src = "/img/up/tn_" + msg.id + "." + msg.tn_ext;
			}

			HTAfl.closeWidget(wname);
		});
		HTAfl.addMessageListener(widgetname, 'load', function(wname, msgName, msg) {
			console.log('Load: %s %s %s', wname, msgName, msg);
			console.trace();
			HTAfl.sendMessage(wname, 'updateTag', element.value);
		});
	}

	function clear() {
		element.value = '';
		if (typeof name != "object") {
			xname.value = '';
		} else {
			name.element.value = '';
		}
		_img = document.getElementById(imageId);
		if (_img != null) {
			_img.src = "/gothic/admin/img/spacer.gif";
		}
	}

	if (readOnly == null) {
		readOnly = true;
	}
	if (widgetname == null) {
		widgetname = 'link';
	}
	var js = [ "SPAN" ];
	if (onlyself != 1) {
		var name = new Object();
		if (readOnly != 'false') {
			js.push([ "INPUT", { 'type': "text", 'value': initName, 'id': nameInputId, 'readOnly': readOnly, 'class': "f_inp", 'style': "width: 260px;", 'element': name } ]);
		} else {
			js.push([ "INPUT", { 'type': "text", 'value': initName, 'id': nameInputId, 'class': "f_inp", 'style': "width: 200px;", 'element': name } ]);
		}
	}
	js.push(
		" ",
		[ "A", { 'onclick': open, 'style': "cursor: pointer;" }, "választ" ],
		" ",
		[ "A", { 'onclick': clear, 'style': "cursor: pointer;" }, "törlés" ]
	);

	// js.push(" ", [ "IMG"] ...);

	var e = jsonML(js);
	if (onlyself != 1) {
		element.parentNode.insertBefore(e, element);
		//var xname = document.getElementById(nameInputId);
	} else {
		element.parentNode.appendChild(e);
		//element = document.getElementById(nameInputId);
		var xname = element;
	}
}

CaptureEvent(window, "load", function() {
	var tags = document.getElementsByTagName("input");
	var terms = new Array();
	for(var i = 0; i < tags.length; i++) {
		var term = tags[i].getAttribute("cs2:page");
		if(term != null) {
			terms.push({
				'element': tags[i],
				'name': tags[i].getAttribute("cs2:pageName"),
				'name_id': tags[i].getAttribute("cs2:pageNameId"),
				'panel': tags[i].getAttribute("cs2:panel"),
				'image_id': tags[i].getAttribute("cs2:imageId"),
				'readOnly': tags[i].getAttribute("cs2:readOnly"),
				'widgetname': tags[i].getAttribute("cs2:widgetname"),
				'onlyself': tags[i].getAttribute("cs2:onlyself")
			});
		}
	}

	for(var i = 0; i < terms.length; i++) {
		with(terms[i]) {
			new CS2Lista(element, name, name_id, panel, image_id, readOnly, widgetname, onlyself);
		}
	}
}, true);

function xchgProperty(form, xchgpropPrefix, idx, delta) {
	var prefix0 = xchgpropPrefix + idx;
	var prefix1 = xchgpropPrefix + (idx + delta);

	jformXchg(form, prefix0, form, prefix1);
}


/* preview */
function openPopupO(htmname, winname) {
	var w = window.open(htmname, winname, "screenX=1,screenY=1,resizable=1,scrollbars=1");
	w.focus();
}

function setPreview(form, e) {
	if(typeof form == 'string') form = document.forms[form];
	form.elements[e].value = 1;
}
