/* floatmenu */
function SiteFloatMenuView(descriptor) {
	HTDefaultFloatMenuView.call(this, descriptor);
}

if (typeof(HTDefaultFloatMenuView) != 'undefined') {
	SiteFloatMenuView.prototype = {
		element: HTDefaultFloatMenuView.prototype.element,
		childElements: HTDefaultFloatMenuView.prototype.childElements,
		shdElement: HTDefaultFloatMenuView.prototype.shdElement,
		show: HTDefaultFloatMenuView.prototype.show,
		hide: HTDefaultFloatMenuView.prototype.hide,
		isVisible: HTDefaultFloatMenuView.prototype.isVisible,
		getMenuItem: HTDefaultFloatMenuView.prototype.getMenuItem,
		jsonMenuItemList: HTDefaultFloatMenuView.prototype.jsonMenuItemList,
		//jsonMenu: HTDefaultFloatMenuView.prototype.jsonMenu,
		jsonMenu: function() {
			var json = this.jsonMenuItemList();
			json.unshift("div", { 'style': 'position: absolute;', 'class' : 'flmenu' });
			return json;
		},
		jsonMenuItem: function(d) {
			var jd = null;
			if(typeof d.href != 'undefined') {
				if(typeof d.child != 'undefined') {
					jd = [ "A", { 'href': d.href, 'class': 'submenu' }, d.title ];
				} else {
					jd = [ "A", { 'href': d.href }, d.title ];
				}

				if(typeof d.target != 'undefined') jd[1].target = d.target;
			}

			return jd;
		}
	};
}




/* admin funkciók START */

/* kapcsolódó-formok tartalmának kiegészitő funkciói, elemek cserélgetése */
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);
	}
}

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

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




/* tagcloud típusú inputmezők kezelése */
function NormalizeTagCloud(tag) {
	return tag.replace(/^\s+/, "").replace(/\s+$/, "").replace(/ *, */g, ",").replace(/,,+/g, ",").replace(/(,$|^,)/g, "").replace(/,/g, ", ");
}

function UpdateTagCloud(id, tag) {
	var e = document.getElementById(id);
	e.value = NormalizeTagCloud(e.value);
	var tmp = e.value.replace(/^|$/g , ", ");
	if (tmp.search(", " + tag + ", ") != -1) {
		tmp = tmp.replace(", " + tag + ", ", ", ");
	} else {
		tmp = tmp + tag + ", ";
	}
	e.value = NormalizeTagCloud(tmp);
}

/* 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;
}

/* admin funkciók END */

