/* debug */
function trace() {
	var debug = document.getElementById('debug');
	if (!debug) {
		var debug = document.createElement('div');
		debug.setAttribute('id', 'debug');
		document.body.appendChild(debug);
		/*
		debug.onclick = function() {
			if (this.closed) {
				this.style.height = '200px';
				this.closed = false;
			} else {
				this.style.height = '2px';
				this.closed = true;
			}
		}
		*/
	}
	if (debug) {
		var o = '';
		o = 'arguments.length = ' + arguments.length + '<br />';
//		o += arguments;
		for (var i=0; i<arguments.length; i++) {
			o += '<div style="margin-left: 16px;">';
			o += arguments[i];
			for (j in arguments[i]) {
				o += '<div style="margin-left: 16px;">';
				o += '<b>' + j +'</b>&nbsp;=&nbsp;' + String(arguments[i][j]).split('<').join('&lt;').split('>').join('&gt;').split('\"').join('&raquo;');
				o += '</div>';
			}				
			o += '</div>';
		}
		debug.innerHTML = o;
	}
}
/* /debug */



/* preset */
var oID = document.getElementById;
var IE = /*@cc_on!@*/false;
var IE6 = (IE && (navigator['appVersion'].indexOf('MSIE 6') > 0)) ? true : false;
/* /preset */



/* event handlers */
function addEvent(o, sEvent, fFunc) {
	if (window.attachEvent) {
		o.attachEvent('on' + sEvent, fFunc);
	} else if (window.addEventListener) {
		o.addEventListener(sEvent, fFunc, false);
	}
}

function addLoadEvent(fFunc) {
	addEvent(window, 'load', fFunc);
}

function addDOMLoadEvent(func) {
	if (!window.__load_events) {

		var init = function () {
			if (arguments.callee.done) return; // quit if this function has already been called
			arguments.callee.done = true; // flag this function so we don't do the same thing twice
			if (window.__load_timer) { // kill the timer
				clearInterval(window.__load_timer);
				window.__load_timer = null;
			}
			for (var i=0; i<window.__load_events.length; i++) { // execute each function in the stack in the order they were added
				window.__load_events[i]();
			}
			window.__load_events = null;
		};

		// for Mozilla/Opera9
		if (document.addEventListener) {
			document.addEventListener('DOMContentLoaded', init, false);
		}

		// for Internet Explorer
		/*@cc_on @*/
		/*@if (@_win32)
			document.write('<scr'+'ipt id=__ie_onload defer src=//0><\/scr'+'ipt>');
			var script = document.getElementById('__ie_onload');
			script.onreadystatechange = function() {
				if (this.readyState == 'complete') {
					init(); // call the onload handler
				}
			};
		/*@end @*/

		// for Safari
		if (/WebKit/i.test(navigator.userAgent)) { // sniff
			window.__load_timer = setInterval(function() {
				if (/loaded|complete/.test(document.readyState)) {
					init(); // call the onload handler
				}
			}, 10);
		}

		// for other browsers
		window.onload = init;

		// create event function stack
		window.__load_events = [];
	}

	// add function to event stack
	window.__load_events.push(func);
}
/* /event handlers */



/* QWEswfobj */
// disable the blinking when set outerHTML, may need to load external css file, where only flash objects have display: none property
if (IE) document.writeln('<style type="text/css">object {display: none;}</style>');
// rewrite satay swf objects
function QWEswfobj() {
	var swf = '';
	var obj = document.getElementsByTagName('object');
	for (var i=0; i<obj.length; i++) {
		if ((obj[i].getAttribute('type') == 'application/x-shockwave-flash') || (obj[i].getAttribute('classid') == 'clsid:D27CDB6E-AE6D-11cf-96B8-444553540000')) {
			swf = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'
			swf += (obj[i].getAttribute('id')) ? ' id="' + obj[i].getAttribute('id') + '"' : '';
			swf += (obj[i].getAttribute('width')) ? ' width="' + obj[i].getAttribute('width') + '"' : '';
			swf += (obj[i].getAttribute('height')) ? ' height="' + obj[i].getAttribute('height') + '"' : '';
			swf += '>' + "\n";
			for (var j=0; j<obj[i].childNodes.length; j++) {
				if ((obj[i].childNodes[j].nodeName) && (obj[i].childNodes[j].nodeName.toLowerCase() == 'param')) {
					swf += '<param name="'+obj[i].childNodes[j].getAttribute('name')+'" value="'+obj[i].childNodes[j].getAttribute('value')+'" />'+"\n";
				} else if ((obj[i].childNodes[j].nodeName) && (obj[i].childNodes[j].nodeName.toLowerCase() == 'div')) {
					swf += '<div>' + obj[i].childNodes[j].innerHTML + '</div>' + "\n";				
				}
			}
			swf += '</object>'+"\n";
			obj[i].outerHTML = swf;
		}
		obj[i].style.display = 'block';
	}
}
/* /QWEswfobj */



/* get elements by className */
function getElementsByClassName(parentNode, className) {
	var result = [];
	if (!className) {
		if (typeof(parentNode) == 'string') {
			var className = parentNode;
			parentNode = document;
		} else {
			return result;
		}
	}
	var obj = parentNode.getElementsByTagName('*');
	for (var i=0; i<obj.length; i++) {
		if (obj[i].className.match(new RegExp('\\b' + className + '\\b'))) {
			result.push(obj[i]);
		}
	}
	return result;
}
/* /get elements by className */



/* get style */
function getStyle(obj, styleProp) {
	var result = (window.getComputedStyle) ? document.defaultView.getComputedStyle(obj, null).getPropertyValue(styleProp) : ((obj.currentStyle) ? obj.currentStyle[styleProp] : '');
	if (String(result).indexOf('rgb') >= 0) {
		var h = '0123456789abcdef';
		var d = result.split('rgb(')[1].split(')')[0].split(' ').join('').split(',');
		result = '#' + h[d[0] >> 4] + h[d[0] % 16] + h[d[1] >> 4] + h[d[1] % 16] + h[d[2] >> 4] + h[d[2] % 16];
	}
	return result;
}
/* /get style */


/* get dimension */
function getDimension(obj) {
	var pobj = obj;
	obj.x = 0;
	obj.y = 0;
	obj._x = obj.offsetLeft;
	obj._y = obj.offsetTop;
	obj._width = obj.offsetWidth;
	obj._height = obj.offsetHeight;
	while (pobj.nodeName != 'BODY') {
		obj.x += pobj.offsetLeft;
		obj.y += pobj.offsetTop;
		pobj = pobj.parentNode;
	}
	return {x: obj.x, y: obj.y, _x: obj._x, _y: obj._y, _width: obj._width, _height: obj._height};
}
/* /get dimension */



/* get mouse */
function getMouse(e) {
	e = e || window.event;
	return {x: (e.pageX || e.clientX + document.documentElement.scrollLeft), y: (e.pageY || e.clientY + document.documentElement.scrollTop)};
}
/* /get mouse */



/* :hover */
function hover(obj) {
	obj.onmouseover = function() {
		this.className += ' hover';
	}
	obj.onmouseout = function() {
		this.className = this.className.split('hover').join('');
	}
}
/* /:hover */



/* printable version */
function printToggle() {
	var head = document.getElementsByTagName('head')[0];
	if (!head['ps']) {
		var ps = document.createElement('link');
		head['ps'] = ps;
		ps.setAttribute('type', 'text/css');
		ps.setAttribute('href', '/css/printscreen.css');
		ps.setAttribute('rel', 'stylesheet');
		ps.setAttribute('media', 'screen');
		head.appendChild(ps);
		var pb = document.createElement('div');
		pb.className = 'printscreen';
		pb.innerHTML = '<input type="button" value="&laquo; vissza" onclick="printToggle(); return false;" /> <input type="button" value="nyomtatás" onclick="window.print(); return false;" />';
		document.body.insertBefore(pb, document.getElementsByTagName('form')[0]);
	} else {
		if (head['ps'].getAttribute('rel').indexOf('alt') < 0) {
			head['ps'].setAttribute('rel', 'alternate stylesheet');
			head['ps'].disabled = true;
		} else {
			head['ps'].setAttribute('rel', 'stylesheet');
			head['ps'].disabled = false;
		}
	}
}
/* /printable version */



/* */
function scrollobjDirect(obj, x, y) {
	obj.style.left = String(Math.round(x)) + 'px';
	obj.style.top = String(Math.round(y)) + 'px';
}

function scrollobj(obj, hspace, vspace) {
	var outer = obj.parentNode;
	outer.inner = obj;
	outer.hspace = hspace;
	outer.vspace = vspace;
	outer.onmousemove = function(e) {
		getDimension(this.inner);
		getDimension(this);
		scrollobjDirect(this.inner, Math.min(0, Math.max(this._width-this.inner._width, (this._width-this.inner._width)*(getMouse(e).x-this.x-this.hspace)/(this._width-2*this.hspace))), Math.min(0, Math.max(this._height-this.inner._height, (this._height-this.inner._height)*(getMouse(e).y-this.y-this.vspace)/(this._height-2*this.vspace))));
	}
}
/* / */



/* initialization */
function DOMLoadInit() {

	var tmp = null;

	/* execute QWEswfobj in IE */
	if (IE) QWEswfobj();
	/* /execute QWEswfobj in IE */

	/* IE6 bugfix */
	if (IE6) {
		var cite = document.getElementsByTagName('cite');
		for (var i=0; i<cite.length; i++) {
			hover(cite[i]);
		}
	}
	/* /IE6 bugfix */

	/* input init */
	var input = document.getElementsByTagName('input');
	for (var i=0; i<input.length; i++) {
		if (IE6 && (input[i].parentNode.className.indexOf('submit') >= 0)) {hover(input[i]);}
		if (input[i].type.indexOf('hidden') >= 0) {input[i].className += ' hidden';}
	}
	/* /input init */

	/* modify links */
	var a = document.getElementsByTagName('a');
	for (var i=0; i<a.length; i++) {
		if (a[i].className.indexOf('_blank') >= 0) {
			a[i].onclick = function() {
				this.blur();
				window.open(this.href);
				return false;
			}
		}
	}
	/* /modify links */

	/* gallery */
	var div = getElementsByClassName('gallery');
	for (var i=0; i<div.length; i++) {
		div[i].inner = getElementsByClassName(div[i], 'inner')[0];
		div[i].inner._w = 0;
		div[i].img = div[i].getElementsByTagName('img');
		for (var j=1; j<div[i].img.length; j++) {
			div[i].inner._w += div[i].img[j].parentNode.parentNode.offsetWidth;
			div[i].img[j].parentNode.gallery = div[i];
			div[i].img[j].parentNode.index = j;
			div[i].img[j].parentNode.onclick = function() {
				this.gallery.img[0].src = this.href;
				this.gallery.img[0].alt = this.gallery.img[this.index].alt;
				this.blur();
				return false;
			}
		}
		div[i].inner.style.width = String(div[i].inner._w) + 'px';
		scrollobj(div[i].inner, 40, 0);
	}
	/* /gallery */

	/* label in input */
	var field = getElementsByClassName('labelin');
	for (var i=0; i<field.length; i++) {
		if ((String(' input textarea ').indexOf(field[i].nodeName.toLowerCase()) >= 0) && (String(' text password textarea ').indexOf(field[i].type || 'textarea') >= 0) )  {
			getDimension(field[i]);
			field[i].labelin = document.createElement('label');
			field[i].labelin.className = 'labelin';
			field[i].labelin.style.left = String(field[i]._x) + 'px';
			field[i].labelin.style.top = String(field[i]._y) + 'px';
			field[i].labelin.innerHTML = field[i].title || '';
			field[i].labelin.field = field[i];
			field[i].labelin.onclick = field[i].labelin.onfocus = function() {
				this.style.display = 'none';
				this.field.focus();
			}
			field[i].onfocus = function() {
				this.labelin.style.display = 'none';
			}
			field[i].onblur = function() {
				this.labelin.style.display = (this.value.length == 0) ? 'block' : 'none';
			}
			if(field[i].value!=null)
			{
			    field[i].labelin.style.display = (field[i].value.length == 0) ? 'block' : 'none';
			    
    			field[i].parentNode.appendChild(field[i].labelin);
			}
		}
	}
	/* /label in input */

	/* selection */	
	var fieldset = document.getElementsByTagName('fieldset');
	for (var i=0; i<fieldset.length; i++) {
		if (fieldset[i].className.indexOf('selection') >= 0) {
			// checkbox, radiobuttons
			tmp = fieldset[i].getElementsByTagName('input');
			fieldset[i].cbrb = new Array();
			for (var j=0; j<tmp.length; j++) {
				if ((String(' checkbox radio ').indexOf(tmp[j].type) >= 0) && (tmp[j].parentNode.parentNode.className.indexOf('field') >= 0)) {
					if (IE6) {hover(tmp[j].parentNode.parentNode);}
					fieldset[i].cbrb.push(tmp[j]);
					tmp[j].parentNode.className = (tmp[j].type == 'radio') ? 'radio' : '';					
					tmp[j].parentNode.parentNode.cbrb = tmp[j];
					tmp[j].parentNode.parentNode.fieldset = fieldset[i];
					tmp[j].parentNode.parentNode.className += (tmp[j].checked) ? ' checked' : '';
					tmp[j].parentNode.parentNode.onclick = function() {
						if (this.cbrb.type == 'radio') {
							for (var i=0; i<this.fieldset.cbrb.length; i++) {
								if ((this.fieldset.cbrb[i].type == 'radio') && (this.fieldset.cbrb[i].name == this.cbrb.name)) {
									this.fieldset.cbrb[i].checked = false;
									this.fieldset.cbrb[i].parentNode.parentNode.className = this.fieldset.cbrb[i].parentNode.parentNode.className.split('checked').join('')
								}
							}
						}
						this.cbrb.checked = !this.cbrb.checked;
						this.className = this.className.split('checked').join('') + ((this.cbrb.checked) ? ' checked' : '');
						// ide jon meg a fieldset-label kiegeszites
					}
					tmp[j].parentNode.parentNode.onmousedown = tmp[j].parentNode.parentNode.onselectstart = function() {
						return false;
					}
				}
			}
			// open-close, scroll
			tmp = fieldset[i].getElementsByTagName('div');
			for (var j=0; j<tmp.length; j++) {
				if (String(' header footer ').indexOf(tmp[j].className) >=0) {
					tmp[j].onclick = function() {
						this.parentNode.className = (this.parentNode.className.indexOf('closed') >= 0) ? this.parentNode.className.split('closed').join('opened') : this.parentNode.className.split('opened').join('closed');
					}
					tmp[j].onmousedown = tmp[j].onselectstart = function() {
						return false;
					}
				}
				if (String(' inner ').indexOf(tmp[j].className) >=0) {
					tmp[j].parentNode.style.display = 'block';
					tmp[j].parentNode.style.height = String(Math.min(Math.max(Math.round(tmp[j].offsetHeight/2), 81), 393)) + 'px';
					tmp[j].parentNode.style.display = '';
					scrollobj(tmp[j], 16, 16);
				}
			}
		}
	}
	/* /selection */
}

function onLoadInit() {
}

addDOMLoadEvent(DOMLoadInit);

addLoadEvent(onLoadInit);
/* /initialization */



