/* 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': '', 'class' : 'flmenu2' });
			json2 = ( ["div", { 'style': 'position: absolute;', 'class' : 'flmenu' }, json ] );
			return json2;
		},
		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;
		}
	};
}

/* bookmark this page */
function bookmarkPage(title) {
  url = location.href;
  if (window.sidebar) { // firefox
    window.sidebar.addPanel(title, url, '');
  } else if (window.opera && window.print) { // opera
    var e = document.createElement('a');
    e.setAttribute('href', url);
    e.setAttribute('title', title);
    e.setAttribute('rel', 'sidebar');
    e.click();
  } else if (document.all) { // ie
    window.external.AddFavorite(url, title);
  }
  return false;
}

/* print this page */
function printPage() {
  window.print();
  return false;
}




/* admin funkciok START */

/* kapcsolodo-formok tartalmanak kiegeszito funkcioi, elemek cserelgetese */
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);
}
/* admin funkciok END */

