/*PDATA
	compress = yes
PDATA*/

function new_window(url)
{
	window.open("https://" + location.host + url);
}

function in_array(mxd, arr, strict)
{
	if( strict )
	{
		for(var i=arr.length-1;i>=0;i--)
			if(arr[i] === mxd)
				return true;
	}
	else
	{
		for(var i=arr.length-1;i>=0;i--)
			if(arr[i] == mxd)
				return true;
	}

	return false;
}

function trim(str)
{
	return str.replace(/^\s+/,'').replace(/\s+$/,'');
}

function array_rtrim(arr)
{
	for(var i=arr.length-1;i>=0;i--)
		if( typeof(arr[i]) == "object" )
			array_rtrim(arr[i]);
		else
			arr[i] = trim(arr[i]);

	return true;	
}

function array_trim(arr)
{
	var res = [];
	for(var i=0;i<arr.length;i++)
		res[i] = trim(arr[i]);

	return res;
}

function array_noempty(arr)
{
	var res = [];
	for(var i=0;i<arr.length;i++)
		if( arr[i] != '' )
			res[i] = arr[i];

	return res;
}

function delFromList(item, list)
{
	var temp = [];
	var len = list.length;
	for(var i=0;i<len;i++)
		if( list[i] != item )
			temp.push(list[i]);

	return temp;
}

function object_merge(o1, o2)
{
	for(var i in o2)
		o1[i] = o2[i];

	return true;
}

// Visszadja egy objektum másolatát
function copyOf( obj )
{
	if( obj && typeof(obj) == "object" )
	{
		var copy = new obj.constructor();
		for(var i in obj)
			copy[i] = copyOf(obj[i]);
		return copy;
	}
	
	return obj;
}

function getLeft(node)
{
	if( node.offsetParent )
		return getLeft(node.offsetParent) + node.offsetLeft;

	return node.offsetLeft;
}

function getTop(node)
{
	if( node.offsetParent )
		return getTop(node.offsetParent) + node.offsetTop;

	return node.offsetTop;
}

function getRelLeft(node, rel)
{
	return (getLeft(node) - getLeft(rel.offsetParent));
}

function getRelTop(node, rel)
{
	return (getTop(node) - getTop(rel.offsetParent));
}

// Eseménykezelő létrehozása
// n : célobjektum
// e : esemény neve 'on' nélkül
// o : az eseménykezelő függvény vagy objektum (ha f adott)
// f : ha adott akkor o[f] lesz az esemény kezelője
function addEventHandler(n,e,o,f)
{
	if( o && f )
	{
		if( n.attachEvent )
			n.attachEvent("on"+e, function(e){return o[f](e)} );
		else
			n.addEventListener(e, function(e){return o[f](e)} ,false);
	}
	else
	{
		if( n.attachEvent )
			n.attachEvent("on"+e,o);
		else
			n.addEventListener(e,o,false);
	}
}

// Eseménykezelő megszüntetése
function delEventHandler(n,e,o,f)
{
	if( o && f )
	{
		if( n.detachEvent )
			n.detachEvent("on"+e, function(e){return o[f](e)} );
		else
			n.removeEventListener(e, function(e){return o[f](e)} ,false);
	}
	else
	{
		if( n.detachEvent )
			n.detachEvent("on"+e,o);
		else
			n.removeEventListener(e,o,false)
	}
}

function gId(id)
{
	return document.getElementById(id);
}

function gTags(id, node)
{
	return (arguments.length<2) ? document.getElementsByTagName(id) : node.getElementsByTagName(id);
}

function gTag(id, node, n)
{
	return gTags(id, node).item(n);
}

function cElement(name)
{
	return document.createElement(name);
}

function getTime()
{
	return new Date().getTime();
}

function pad_left(str, pad, n)
{
	var i=0;
	var res = str.toString();

	while(res.length < n )
	{
		res = pad.charAt(i%pad.length) + res;
		i++;
	}

	return res;
}

function parseDate(str)		// csak "Y-m-d H:i:s" formátumot fogad el!
{
	var temp	= str.split(" ");
	var ymd		= temp[0].split("-");
	var his		= temp[1].split(":");

	var date = new Date();
	date.setFullYear(ymd[0]);
	date.setMonth(parseFloat(ymd[1])-1);
	date.setDate(parseFloat(ymd[2]));
	date.setHours(parseFloat(his[0]));
	date.setMinutes(parseFloat(his[1]));
	date.setSeconds(parseFloat(his[2]));

	return date.getTime();
//	return Date.parse(months[parseFloat(ymd[1])-1]+" "+ymd[2]+", "+ymd[0]+" "+temp[1]);
}

function getDayOfWeek(time)  // time lehet timestamp és "Y-m-d H:i:s" formátumú string is!
{
	var date = new Date();

	if( time )
	{
		if( (typeof(time) == "string") && isNaN(time) )
			var time = parseDate(time);

		date.setTime(time);
	}

	return date.getDay();	// 0 - vasárnap, 1 - hétfő, ...
}

function getDate(format, time)	// time lehet timestamp és "Y-m-d H:i:s" formátumú string is!
{
	var date = new Date();

	if( time && (time != "undefined") && (time != 'NOW') )
	{
		if( (typeof(time) == "string") && isNaN(time) )
			var time = parseDate(time);

		date.setTime(time);
	}

	var res = format;

	res = res.replace(/Y/g, date.getFullYear());
	res = res.replace(/m/g, pad_left(date.getMonth()+1,"0",2));
	res = res.replace(/d/g, pad_left(date.getDate(),"0",2));
	res = res.replace(/H/g, pad_left(date.getHours(),"0",2));
	res = res.replace(/i/g, pad_left(date.getMinutes(),"0",2));
	res = res.replace(/s/g, pad_left(date.getSeconds(),"0",2));

	return res;
}

function isOpera()
{
	return (navigator.userAgent.toUpperCase().indexOf("OPERA")!=-1);
}

function isMSIE(ver)
{
	if( ver )
		return ((navigator.userAgent.indexOf("MSIE "+ver)!=-1) && !isOpera());

	return ((navigator.userAgent.indexOf("MSIE")!=-1) && !isOpera());
}

function getMouse()
{
	return {x:getMouse.prototype.x,y:getMouse.prototype.y};
}

getMouse.prototype =
{
	instance : null,
	x : 0, 
	y : 0,
	
	onMove : function(e)
	{
		this.x = e.clientX;
		this.y = e.clientY;
	}
}

addEventHandler(document, "mousemove", function(e){getMouse.prototype.onMove(e||event)});

Math.sgn = function(v)
{
	switch( true )
	{
		case (v > 0) : return +1;
		case (v < 0) : return -1;
		default		 : return 0;
	}
}

function execJS(id)
{
	var code = gId(id);
	if( code )
	{
		eval(code.innerHTML);
		removeNode(id);	
	}
}

// Eltávolítja a megadott node-t a hierarchiából
function removeNode( node )
{
	if( typeof(node) == "string" )
		var node = gId(node);

	try{node.parentNode.removeChild(node);}catch(e){};
}

// A megadott html forrást hozzáadja a megadott node tartalmához.
function addHTML( node, html )
{
	if( typeof(node) == "string" )
		var node = gId(node);

	var tempNode = document.createElement('div');
	tempNode.innerHTML = html;
	for(var n=tempNode.firstChild;n;n=n.nextSibling)
		node.appendChild(n.cloneNode(true));
}

// A megadott html forrásra cseréli a node tartalmát
function replaceHTML( node, html )
{
	if( typeof(node) == "string" )
		var node = gId(node);

	while(node.firstChild)
		node.removeChild(node.firstChild);

	var tempNode = document.createElement('div');
	tempNode.innerHTML = html;
	for(var n=tempNode.firstChild;n;n=n.nextSibling)
		node.appendChild(n.cloneNode(true));
}

// A source node tartalmát a target node tartalmához mozgatja
function moveContent( source, target )
{
	if( typeof(source) == "string" )
		var source = gId(source);

	if( typeof(target) == "string" )
		var target = gId(target);

	while(source.firstChild)
	{
		target.appendChild(source.firstChild.cloneNode(true));
		source.removeChild(source.firstChild);
	}
}

// A source node tartalmát a target node tartalmához adja
function copyContent( source, target )
{
	if( typeof(source) == "string" )
		var source = gId(source);

	if( typeof(target) == "string" )
		var target = gId(target);

	for(var n=source.firstChild;n;n=n.nextSibling)
		target.appendChild(n.cloneNode(true));
}

// Törli a node tartalmát
function clearNode( node )
{
	if( typeof(node) == "string" )
		var node = gId(node);

	while(node.firstChild)
		node.removeChild(node.firstChild);
}

// JS unserialize 
function jsu( sv )
{
  try
	{eval("var d=decodeURIComponent;var o=(" + sv + ");");return o;}
  catch (e)
	{return null}
}

function jss( v )
{
	var res = null;

	if( v == null )
		return 'null';

	if( v === false )
		return 'false';

	if( v === true )
		return 'true';

	switch( typeof(v) )
	{
		case 'string'	:	return 'd("'+encodeURIComponent(v)+'")';
		case 'object'	:	if( v.constructor == Array )
							{
								var sub = [];
								for(var i=0;i<v.length;i++)
									sub.push(jss(v[i]));
								return '['+sub.join(',')+']';
							}

							var sub = [];
							for(var i in v)
								sub.push('d("'+encodeURIComponent(i)+'"):'+jss(v[i]));
							return '{'+sub.join(',')+'}';

		default			:	return v;
	}
}

function canvasWidth()
{
	return (document.width) ? document.width : document.body.offsetWidth;
}

function canvasHeight()
{
	if( gId('canvas_bottom') )
		return gId('canvas_bottom').offsetTop+gId('canvas_bottom').offsetHeight;

	return (document.height) ? document.height : document.body.offsetHeight;
}

function hideNode( node )
{
	if( typeof(node) == "string" )
		var node = gId(node);

	node.style.visibility = 'hidden';
}

function showNode(node)
{
	if( typeof(node) == "string" )
		var node = gId(node);

	node.style.visibility = 'visible';
}

function setHTML(node, html)
{
	if( typeof(node) == "string" )
		var node = gId(node);

	node.innerHTML = html;
}

function setStyle(node, style)
{
	if( typeof(node) == "string" )
		var node = gId(node);

	for(var i in style)
		node.style[i] = style[i];
}

function alphaFixIE( css ) {
	var s, i, j;
	// IMG

	if( !isMSIE() )
		return false;

	var els = document.getElementsByTagName("IMG");
	for (i=0; i<els.length; i++) {
		s = els[i].src;
		if (s.toLowerCase().indexOf(".png") != -1) {
			els[i].src = "/images/blank.gif";
			els[i].style.filter += "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + s + "', sizingMethod=image);";
		}
	}

	if( css )
	{
		// CSS: background
		for (i=0; i<document.styleSheets.length; i++) {
			var pos = document.styleSheets[i].href.lastIndexOf("/");
			var cssDir = (pos != -1) ? document.styleSheets[i].href.substring(0, pos + 1) : "";
			for (j=0; j<document.styleSheets[i].rules.length; j++) {
				var style = document.styleSheets[i].rules[j].style;
				if (style.backgroundImage.toLowerCase().indexOf(".png") != -1) {
					var filename = style.backgroundImage.substring(4, style.backgroundImage.length - 1);
					if (filename.indexOf("http://") != 0 && filename.indexOf("/") != 0)
						filename = cssDir + filename;
					style.backgroundImage = "none";
					style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + filename + "', sizingMethod='crop');";
				}
			}
		}
	}
}

function encodeUTF8(str) {  // encode multi-byte string into utf-8 multiple single-byte characters 
  str = str.replace(
      /[\u0080-\u07ff]/g,  // U+0080 - U+07FF = 2-byte chars
      function(c) { 
        var cc = c.charCodeAt(0);
        return String.fromCharCode(0xc0 | cc>>6, 0x80 | cc&0x3f); }
    );
  str = str.replace(
      /[\u0800-\uffff]/g,  // U+0800 - U+FFFF = 3-byte chars
      function(c) { 
        var cc = c.charCodeAt(0); 
        return String.fromCharCode(0xe0 | cc>>12, 0x80 | cc>>6&0x3F, 0x80 | cc&0x3f); }
    );
  return str;
}

function decodeUTF8(str) {  // decode utf-8 encoded string back into multi-byte characters
  str = str.replace(
      /[\u00c0-\u00df][\u0080-\u00bf]/g,                 // 2-byte chars
      function(c) { 
        var cc = (c.charCodeAt(0)&0x1f)<<6 | c.charCodeAt(1)&0x3f;
        return String.fromCharCode(cc); }
    );
  str = str.replace(
      /[\u00e0-\u00ef][\u0080-\u00bf][\u0080-\u00bf]/g,  // 3-byte chars
      function(c) { 
        var cc = (c.charCodeAt(0)&0x0f)<<12 | (c.charCodeAt(1)&0x3f<<6) | c.charCodeAt(2)&0x3f; 
        return String.fromCharCode(cc); }
    );
  return str;
}

function formatPrice(input)
{
	try{
		var value = input.value.replace(/[^0-9]/g,'');

		var l = value.length;
		var res = [];
		for(var i=1;i<=l;i++)
			if( (i>1) && (i%3 == 1) )
				res.unshift(value.charAt(l-i)+" ");
			else
				res.unshift(value.charAt(l-i));

		input.value = res.join("");
	}
	catch(e){}
}

function watchEnter(node, e, fn)
{
	if( e.keyCode == 13 )
	{
		eval(fn);
		return false;
	}
}


function setSelectValue(node, value)
{
	if( typeof(node) == "string" )
		var node = gId(node);

	for(var i=0;i<node.options.length;i++)
		node.options[i].selected = ( node.options[i].value == value );

	return true;
}

function initClassInstance(proto, obj, list)
{
	var list = list.split(",");
	for(var i=list.length-1;i>=0;i--)
		obj[list[i]] = copyOf(proto[list[i]]);
}

function hasCSSClass(node, cls)
{
	if( node.className && in_array(cls, node.className.split(" ")) )
		return true;

	return false;
}

function setCSSClass(node, cls)
{
	if( delCSSClass(node, cls) )
	{
		var newClass = node.className+" "+cls;
		if( node.className != newClass )
			node.className = newClass;

		return true;
	}

	return false;
}

function delCSSClass(node, cls)
{
	if( node )
	{
		var newClass = node.className.replace(" "+cls,"").replace(cls,"");
		if( node.className != newClass )
			node.className = newClass;

		return true;
	}

	return false;
}

function setSafeFocus(id)
{
	try{
		var id = id.split("::");
		if( id.length > 1 )
			document.forms[id[0]][id[1]].focus();
		else
			gId(id[0]).focus();
	}catch(e){};
}

function rot38(str)
{
	var res = "";
	var l = str.length;
	for(var i=0;i<l;i++)
	{
		var c = str.charCodeAt(i)-47;
		if( (c>=0) && (c<=75) )
			c = (c+38)%76;

		res += String.fromCharCode(c+47);
	}

	return res;
}

function openPopupPage(url,wndName,width,height,paramStr, returnWithInstane)
{
	var res 	= [];
	var left	= 10;
	var top		= 10;
	var sb		= false;
	var mb		= false;
	var op = (navigator.userAgent.search("Opera")!=-1);
	var ms = (navigator.userAgent.search("MSIE")!=-1) && (!op);

	var	param = paramStr.split(";");
	for(var i in param)
	{
		var nam = param[i].split(":")[0].toLowerCase();
		var val = param[i].split(":")[1];

		switch( nam )
		{
			case "fullscreen" 	: res.push("fullscreen="+val);	break;
			case "location" 	: res.push("location="+val);	break;
			case "menubar" 		: res.push("menubar="+val);
								  mb=(val == 'yes');			break;
			case "resizable" 	: res.push("resizable="+val);	break;
			case "scrollbars" 	: res.push("scrollbars="+val);
								  sb=(val == 'yes');			break;
			case "status" 		: res.push("status="+val);		break;
			case "titlebar" 	: res.push("titlebar="+val);	break;
			case "toolbar" 		: res.push("toolbar="+val);		break;
			case "left"			: left	= val; break;
			case "top"			: top 	= val; break;
			case "center"		: if( val == 'yes' )
								  {
								  	left= Math.round((screen.width - width)/2);
									top	= Math.round((screen.height - height)/2);
								  }
								  break;
		}
	}

	if( ms )
	{
		width	+= (sb) ? 13 : -4;
		height	+= (sb) ? 0 : -4;
		if( mb ) height -= 20;
	}

	res.push("width="+width);
	res.push("height="+height);
	res.push("left="+left);
	res.push("top="+top);

	var win = window.open(url, wndName, res.join(","));
	win.focus();

	if( returnWithInstane )
		return win;
}

function setCookie(name, value, expiredays, path)
{
	var res = [];
	res.push(name+ "=" +escape(value));
	if( expiredays )
	{
		var exdate=new Date();
		exdate.setDate(exdate.getDate()+expiredays);
		res.push("expires="+exdate.toGMTString());
	}

	if( path )
		res.push("path="+path);

	document.cookie = res.join(";");
}

function getCookie(name)
{
	if( document.cookie.length>0 )
	{
		c_start=document.cookie.indexOf(name + "=");
		if( c_start!=-1 )
		{ 
			c_start=c_start + name.length+1; 
			c_end=document.cookie.indexOf(";",c_start);
			if( c_end==- 1) c_end=document.cookie.length;
			return unescape(document.cookie.substring(c_start,c_end));
		}
	}

	return "";
}

function setAlpha(node, a)
{
	if( typeof(node) == "string" )
		var node = gId(node);

	try{node.style.opacity = a;}catch(e){};
	try{node.style.MozOpacity = a;}catch(e){};
	try{node.style.filter = "alpha(opacity="+Math.round(100*a)+")";}catch(e){};
}

function startGA(uid)
{
	try{
		var pageTracker = _gat._getTracker(uid);
		pageTracker._initData();
		pageTracker._trackPageview();
	}catch(e){}
}

// isMSIE(6) - ot kiszedni a tiny-s részekből!
function __LOCKBAR(b)
{
	try
	{
		if(b)
		{
			var div = document.createElement('div');
			var html = document.getElementsByTagName('html').item(0);
			var w = document.body.clientWidth || html.scrollWidth;
			var h = html.scrollHeight;
			var oh = window.innerHeight || document.documentElement.offsetHeight;
			var ot = document.documentElement.scrollTop || html.scrollTop;
			var t = Math.floor(ot+oh/2-10);

			div.innerHTML = '<div id="lockbar" style="display:block;margin:0px;padding:0px;position:absolute;z-index:999999;top:0px;left:0px;width:'+w+'px;height:'+h+'px;background:#000000 url(\'/cms/images/lockbar.gif\') no-repeat 50% '+t+'px;opacity:0.8;filter:alpha(opacity=80);-moz-opacity:0.8">'+(isMSIE(6)?'<iframe style="width:'+w+'px;height:'+h+'px;position:absolute;top:0px;left:0px;margin:0px;padding:0px;filter=alpha(opacity=0);opacity:0;-moz-opacity:0" frameborder="0"></iframe>':'')+'</div>';
			document.body.insertBefore(div.firstChild, document.body.firstChild);
		}
		else
			{var n = document.getElementById('lockbar');n.parentNode.removeChild(n);}

	}catch(e){};
}

try {document.execCommand("BackgroundImageCache", false, true);} catch(err) {}

function fetch(str, _tpl_vars)
{
	var res = str.replace(/\{\$[a-zA-Z0-9\_\.]+\}/g, function(token,pos,str) {
		var token = token.substring(2,token.length-1).replace(/[\.]/g,"']['");
		try	{eval("var res = _tpl_vars['"+token+"'];");} catch(e) {var res = ""};
		return res;
	});

	var res = res.replace(/\{if ([^\}]+)\}(.*?)\{\/if\}/g, function(token,eq,content,pos,str) {

		eq = eq.replace(/\$[a-zA-Z0-9\_\.]+/g, function(token,pos,str) {
			var token = token.substring(1).replace(/[\.]/g,"']['");
			try	{eval("var res = _tpl_vars['"+token+"'];");} catch(e) {var res = null};
			if( typeof(res) == "string" )
				return '"'+res.replace(/([\"\\])/g,'\$1')+'"';

			return res;
		});

		var res = "";
		try{eval("if ("+eq+") var res = content;")} catch(e){};

		return res;
	});

	return res;
}

function dump(param)
{
	var res = [];for(var i in param)res.push(i+":"+param[i]);alert(res.join("\n"));
}