if (navigator.platform == "Win32" && navigator.appName == "Microsoft Internet Explorer" && window.attachEvent) {
	window.attachEvent("onload", alphaBackgrounds);
	window.attachEvent("onload", antiFlickeringOn);
	window.attachEvent("onunload", antiFlickeringOut);
}

// XMLHTTP IMPLEMENTATION ---------------------------------------------------------------------------------------------------
// used to find the Automation server name
function getDomDocumentPrefix() {
	if (getDomDocumentPrefix.prefix)
		return getDomDocumentPrefix.prefix;
	
	var prefixes = ["MSXML2", "Microsoft", "MSXML", "MSXML3"];
	var o;
	for (var i = 0; i < prefixes.length; i++) {
		try {
			// try to create the objects
	
			o = new ActiveXObject(prefixes[i] + ".DomDocument");
			return getDomDocumentPrefix.prefix = prefixes[i];
		}
		catch (ex) {};
	}
	
	throw new Error("Could not find an installed XML parser");
}

function getXmlHttpPrefix() {
	if (getXmlHttpPrefix.prefix)
		return getXmlHttpPrefix.prefix;
	
	var prefixes = ["MSXML2", "Microsoft", "MSXML", "MSXML3"];
	var o;
	for (var i = 0; i < prefixes.length; i++) {
		try {
			// try to create the objects
			o = new ActiveXObject(prefixes[i] + ".XmlHttp");
			return getXmlHttpPrefix.prefix = prefixes[i];
		}
		catch (ex) {};
	}
	
	throw new Error("Could not find an installed XML parser");
}

//////////////////////////
// Start the Real stuff //
//////////////////////////

// XmlHttp factory
function XmlHttp() {}

XmlHttp.create = function () {
	try {
		if (window.XMLHttpRequest) {
			var req = new XMLHttpRequest();
			
			// some versions of Moz do not support the readyState property
			// and the onreadystate event so we patch it!
			if (req.readyState == null) {
				req.readyState = 1;
				req.addEventListener("load", function () {
					req.readyState = 4;
					if (typeof req.onreadystatechange == "function")
						req.onreadystatechange();
				}, false);
			}
			
			return req;
		}
		if (window.ActiveXObject) {
			return new ActiveXObject(getXmlHttpPrefix() + ".XmlHttp");
		}
	}
	catch (ex) {}
	// fell through
	throw new Error("Your browser does not support XmlHttp objects");
};

// XmlDocument factory
function XmlDocument() {}

XmlDocument.create = function () {
	try {
		// DOM2
		if (document.implementation && document.implementation.createDocument) {
			var doc = document.implementation.createDocument("", "", null);
			
			// some versions of Moz do not support the readyState property
			// and the onreadystate event so we patch it!
			if (doc.readyState == null) {
				doc.readyState = 1;
				doc.addEventListener("load", function () {
					doc.readyState = 4;
					if (typeof doc.onreadystatechange == "function")
						doc.onreadystatechange();
				}, false);
			}
			return doc;
		}
		if (window.ActiveXObject)
			return new ActiveXObject(getDomDocumentPrefix() + ".DomDocument");
	}
	catch (ex) {}
	throw new Error("Your browser does not support XmlDocument objects");
};

// Create the loadXML method and xml getter for Mozilla
if (window.DOMParser && window.XMLSerializer && window.Node && Node.prototype && Node.prototype.__defineGetter__) {

	// XMLDocument did not extend the Document interface in some versions
	// of Mozilla. Extend both!
	XMLDocument.prototype.loadXML = Document.prototype.loadXML = function (s) {
		
		// parse the string to a new doc	
		var doc2 = (new DOMParser()).parseFromString(s, "text/xml");
		
		// remove all initial children
		while (this.hasChildNodes()) {
			this.removeChild(this.lastChild);
		}
			
		// insert and import nodes
		for (var i = 0; i < doc2.childNodes.length; i++) {
			this.appendChild(this.importNode(doc2.childNodes[i], true));
		}
	};
	
	
	//
	// xml getter
	//
	// This serializes the DOM tree to an XML String
	//
	// Usage: var sXml = oNode.xml
	//
	// XMLDocument did not extend the Document interface in some versions
	// of Mozilla. Extend both!
	XMLDocument.prototype.__defineGetter__("xml", function () {
		return (new XMLSerializer()).serializeToString(this);
	});
	Document.prototype.__defineGetter__("xml", function () {
		return (new XMLSerializer()).serializeToString(this);
	});
}

// ^^^^^ XMLHTTP IMPLEMENTATION ---------------------------------------------------------------------------------------------------

// XMLHTTP REQUEST MANAGEMENT -----------------------------------------------------------------------------------------------------

var requestPool = Array();

function isArray(obj) {
	if (obj.constructor.toString().indexOf("Array") == -1)
		return false;
	else
		return true;
}

/**/
function addRequest(requestURL, callBack, postParams, callbackParams, name) {
	Aitia.Ajax.addRequest({
		requestURL: requestURL, 
		callBack: callBack, 
		postParams: postParams, 
		callbackParams:callbackParams, 
		name:name});
}
/**/

// xmlhttp kĂŠrĂŠst ad a sorba
// param: URL, ?a visszah?nd??ggv? neve, aminek egy argumentumja a visszat?si ??(string) legyen
function addRequest0(requestURL, callBack, postParams, callbackParams, name) {

//debugWriteLn(requestURL+' '+callBack);
	if (!postParams) {
		postParams = Array();
	}
	if (!callbackParams) {
		callbackParams = Array();
	}
	if (name) {
		for (var i = 0; i < requestPool.length; i++) {
			if(requestPool[i][4] == name) {
				requestPool[i][4] = "webra_deactivated";
			}
		}
	}
	else {
		name = '';
	}
	requestPool.push(Array(requestURL, callBack, postParams, callbackParams, name));
	if (requestPool.length == 1) {
		processRequest();
	}
}

/**
 * Elmenti a legutĂłbb hasznĂĄlt objetumok kĂśzĂŠ a megadott objektumot.
 * 
 * @author Kocsis RĂłbert
 * 
 * ChangeLog:
 * - 2007.09.10, SzabĂł Csaba
 * Ellenőrzi, hogy létezik e a callback függvény és csak akkor hívja meg.
 */
function processRequest() {
	var xmlHttp2 = XmlHttp.create();
	if (requestPool.length > 0 && requestPool[0][4] != "webra_deactivated") {
		if (!requestPool[0][0]) {
			requestPool.shift();
			processRequest();
			return;
		}
		xmlHttp2.open("POST", requestPool[0][0], true);
		xmlHttp2.onreadystatechange = function () {
			if (xmlHttp2.readyState == 4) {
				var request = requestPool[0];
				if (request[1] && request[1].length>0) {
					var callbackParams = request[3];
					
					//Ellenőrzi, hogy létezik e a callBack függvény
					var callbackExists = false;
					if (request[1] && request[1] != "" && request[4]!="webra_deactivated") {
						eval("callbackExists = (window." + request[1] + ");");
					}
					
					// Ha lĂŠtezik a callback fv
					if (callbackExists && request[4]!="webra_deactivated") {
						var s = request[1] + "('" + escape(xmlHttp2.responseText) + "', callbackParams);";
						eval(s);
					}
				}
				
				loadingIndicator(0);
				xmlHttp2.abort();
				requestPool.shift();
				processRequest();
			}
		}
		var postData = '&webraRequestType=xmlhttp';
		for (var i = 0; i < requestPool[0][2].length; i++) {
			if (requestPool[0][2][i][0]) {
				postData += '&' + requestPool[0][2][i][0] + '=' + encodeURIComponent(requestPool[0][2][i][1]);
			}
		}
		var contentlength = postData.length - 1;
		if (contentlength < 0) {
			contentlength = 0;
		}
		postData = postData.replace(/^&/, '?&');
		_postData = postData
		xmlHttp2.setRequestHeader("Accept", "text/html");
		xmlHttp2.setRequestHeader("Accept-charset", "utf-8");
		xmlHttp2.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
		xmlHttp2.setRequestHeader("Content-Length",contentlength);
		xmlHttp2.setRequestHeader("Content-Disposition","form-data; name=W3");
		xmlHttp2.setRequestHeader("Connection","close");
		//alert(requestPool[0][0] + " - " + postData + " - " + requestPool[0][1]);
		
		loadingIndicator(1);
		xmlHttp2.send(postData);
	}
	else if (requestPool.length > 0) {
		requestPool.shift();
		processRequest();
	}
} //processRequest


/**
 * Direkt xmlHttp kĂŠrĂŠs (a W3 kjĂşt megkerĂźlve)
 * 
 * @author SzabĂł Csaba
 * @date 2007.12.13
 */
function processXmlHttpRequest(requestUrl, callBack, postParams, callbackParams, async) {
	var xmlHttp2 = XmlHttp.create();
	xmlHttp2.open("POST", requestUrl, async == 1 ? true : false);
	
	xmlHttp2.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
	xmlHttp2.setRequestHeader("Accept", "text/html");
	xmlHttp2.setRequestHeader("Accept-charset", "utf-8");
	
	if (async == 1) {
		xmlHttp2.onreadystatechange = function () {
			if (xmlHttp2.readyState == 4) {
				//Ellenőrzi, hogy létezik e a callBack függvény
				var callbackExists = false;
				if (callBack && callBack != "") {
					eval("callbackExists = (window." + callBack + ");");
				}

				// Ha lĂŠtezik a callback fv
				if (callbackExists) {
					var s = request[1]+"('"+escape(xmlHttp2.responseText)+"', callbackParams);";
					eval(s);
				}
			}
			xmlHttp2.abort();
		}
	}
	
	var postData = '&webraRequestType=xmlhttp';
	for (var i = 0; i < postParams.length; i++) {
		if (postParams[i][0]) {
			postData += '&' + postParams[i][0] + '=' + encodeURIComponent(postParams[i][1]);
		}
	}
	xmlHttp2.send(postData);
	
	if (!async) {
		return xmlHttp2.responseText;
	}
} // end processXmlHttpRequest


// ^^^^^ XMLHTTP REQUEST MANAGEMENT -----------------------------------------------------------------------------------------------

var divTimer = null;
var divTimer2 = null;
var openDiv = '';
var openDiv2 = '';
var messageTimer = null;
var lastSearchString = '';
var lastSendSearchString = '';
var searchTimer = null;

function showDiv(divId, subdiv) {
	if (subdiv == 1) {
		clearDivCloseTimer();
		if (document.getElementById(divId)) {
			hideDiv(openDiv2,1)
			document.getElementById(divId).style.display = 'block';
			openDiv2 = divId;
		}
	}
	else {
		clearDivCloseTimer();
		hideDiv(openDiv);
		if (document.getElementById(divId)) {
			document.getElementById(divId).style.display = 'block';
			openDiv = divId;
		}
	}
}

function hideDiv(divId,subdiv) {
	if (!divId) {
		return null;
	}
	
	if (subdiv == 1) {
		if (document.getElementById(divId)) {
			document.getElementById(divId).style.display = 'none';
			openDiv2 = '';
		}
	}
	else {
		if (document.getElementById(divId)) {
			document.getElementById(divId).style.display = 'none';
			openDiv = '';
		}
	}
}

function setDivCloseTimer(divId, subdiv) {
	clearDivCloseTimer(subdiv);
	if (subdiv) {
		divTimer2 = setTimeout("hideDiv('" + divId + "')", 1000);
	}
	else {
		divTimer = setTimeout("hideDiv('" + divId + "')", 1000);
	}
}

function setDivCloseTimerLong(divId) {
	clearDivCloseTimer();
	divTimer = setTimeout("hideDiv('" + divId + "')", 3000);
}

function clearDivCloseTimer(subdiv) {
	if (subdiv == 1) {
		if (divTimer2) {
			clearTimeout(divTimer2);
		}
	}
	else {
		if (divTimer) {
			clearTimeout(divTimer);
		}
	}
}

// Elemelrejtő és láthatóvá tevő függvények --------------------------
// a fentiek globĂĄlis vĂĄltozĂłit hasznĂĄljĂĄk, de nincs subdiv, ĂŠs display helyett visibility-vel manipulĂĄl
function showElement(divId) {
	clearHideElementTimer();
	hideElement(openDiv);
	if (document.getElementById(divId)) {
		document.getElementById(divId).style.visibility = 'visible';
		openDiv = divId;
	}
}

function hideElement(divId) {
	var collapse = 0;
	var argv = hideElement.arguments;
	if (argv) {
		var argc = argv.length;
		if (1 <= argc) {
			collapse = argv[1];
		}
	}
	
	if (document.getElementById(divId)) {
		if (collapse) {
			document.getElementById(divId).style.display = 'none';
		}
		document.getElementById(divId).style.visibility = 'hidden';
		openDiv = '';
	}
}

function hideElementTimer(divId) {
	var delay = 1000;
	var collapse = 0;
	var argv = hideElementTimer.arguments;
	if (argv) {
		var argc = argv.length;
		if (1 <= argc) {
			delay = argv[1];
		}

		var argc = argv.length;
		if (2 <= argc) {
			collapse = argv[2];
		}
	}

	divTimer = setTimeout("hideElement('" + divId + "', '" + collapse + "')", delay);
}

function clearMakeHiddenTimer() {
	if (divTimer) {
		clearTimeout(divTimer);
	}
}

// Elemelrejtő és láthatóvá tevő függvények vége ---------------------

function refreshMessages(answerXML) {
	var answer = unescape(answerXML);
	if (document.getElementById('messageBoxContainer')) {
		document.getElementById('messageBoxContainer').innerHTML = answer;
		evalJS(answer);
	}
	initMessageTimer();
}

function evalGlobal(str) {
	if ( window.execScript ) {
		window.execScript(str);
	}
	else {
		window.eval( str );
		//eval.call( window, str );
	}
}

function evalJS(responsetext, global, encode) {
	if (!global) {
		global = false;
	}
	if (!encode) {
		encode = false;
	}
	var evalJSresult = false;
	
	// tartalomban levő js scriptek kivágása
	// 0. lépés: mivel js-ben nincs 's' modifier (amitől a '.' illeszkedik a newline-ra), ezért a sortöréseket elimináljuk temporálisan
	//responsetext=responsetext.replace(/[\r\n]/gi,'WeBrAnEwLiNeToKeN');
	// 1. lépés: textarea-ban levő scriptek (pl cikk attribpanel szerkerszthető módban) /g nem volt jó (mert először a legnagyobb előfordulást cserélte) úgyhogy 5x cserélünk
	responsetext = responsetext.replace(/<textarea[^>]*>[\s\S]*?<\/textarea>/ig, '');
	// 3. lĂŠpĂŠs: sortĂśrĂŠs vissza, hogy a js commentek ne ĂśljĂŠk meg a kĂłdokat
	//responsetext=responsetext.replace(/WeBrAnEwLiNeToKeN/g,'\n');

	//re = "/<script[^>]*>/i";
	//re = eval(re);
	var re = new RegExp("<script[^>]*>", "i")
	//rre = "/<.script>/i";
	//rre = eval(rre);
	var rre = new RegExp("<.script[^>]*>", "i")
	var a = responsetext.search(re);
	while (a > -1) {
		var b = responsetext.search(rre);
		var js = responsetext.substring(a, b + 9);
		var c = js.indexOf('>');
		js = js.substring(c + 1, js.length - 9);
		
		if (encode) {
			js = htmlSpecialCharsDecode(js);
		}
		
		if (global) {
			evalGlobal(js);
		}
		else {
			eval(js);
		}
		responsetext = responsetext.substring(0, a) + responsetext.substring(b + 9);
		a = responsetext.search(re);

		evalJSresult = true;
	}

	//ha futtatott JS-t, akkor true, egyĂŠbkĂŠnt false
	return evalJSresult;
}

function fastSearchManage() {
	if (window.event && window.event.keyCode == 13) {
		if (searchTimer) {
			clearTimeout(searchTimer);
			searchTimer = null;
		}
		if (document.getElementById('searchtext')) {
			lastSendSearchString = document.getElementById('searchtext').value;
		}
		sendSearchRequest();
	}
	else {
		if (document.getElementById('searchtext') && document.getElementById('searchtext').value.length > 1 && lastSearchString != document.getElementById('searchtext').value) {
			if (searchTimer) {
				clearTimeout(searchTimer);
			}
			searchTimer = setTimeout("fastSearchManageSend()", 1000);
		}
	}
	if (document.getElementById('searchtext')) {
		lastSearchString = document.getElementById('searchtext').value;
	}
}

function fastSearchManageSend() {
	if (document.getElementById('searchtext') && document.getElementById('searchtext').value.length > 1 && lastSearchString == document.getElementById('searchtext').value) {
		lastSendSearchString = document.getElementById('searchtext').value;
		sendSearchRequest();
		fastSearchManage();
	}
}

function refreshSearchResult(answerXML) {
	var answer = unescape(answerXML);
	if (document.getElementById('searchtext') && lastSendSearchString == document.getElementById('searchtext').value && document.getElementById('searchresult')) {
		document.getElementById('searchresult').innerHTML = answer;
		alphaBackgrounds();
	}
}

function antiFlickeringOn() {
	var rslt = navigator.appVersion.match(/MSIE (\d+\.\d+)/, '');
	var itsAllGood = (rslt != null && Number(rslt[1]) >= 4);
	
	if (navigator.appName == "Microsoft Internet Explorer" && itsAllGood) {
		//Csak akkor kell alkalmazni, ha IE4 vagy Ăşjabb
		try {
			document.execCommand('BackgroundImageCache', false, true);
		} catch(e) {}
	}
}

function antiFlickeringOut() {
	var rslt = navigator.appVersion.match(/MSIE (\d+\.\d+)/, '');
	var itsAllGood = (rslt != null && Number(rslt[1]) >= 4);
	
	if (navigator.appName == "Microsoft Internet Explorer" && itsAllGood ) {
		//Csak akkor kell alkalmazni, ha IE4 vagy Ăşjabb
		try {
			document.execCommand('BackgroundImageCache', false, false);
		} catch(e) {}
	}
}

function alphaBackgrounds() {
	/*
	var ie5 = (navigator.userAgent.indexOf('MSIE 5') > 0) ? true : false;
	var ie6 = (navigator.userAgent.indexOf('MSIE 6') > 0) ? true : false;
	
	if ( ie5 || ie6 ) {
	*/
	var rslt = navigator.appVersion.match(/MSIE (\d+\.\d+)/, '');
	var itsAllGood = (rslt != null && Number(rslt[1]) >= 5.5);
	
	if (navigator.platform == "Win32" && navigator.appName == "Microsoft Internet Explorer" && itsAllGood ) {
	//Csak akkor kell alkalmazni, ha IE5.5 vagy ujabb. MozillĂĄn nem kell, mert alapbol tudja.

		var argv = alphaBackgrounds.arguments;
		if (argv) {
			var argc = argv.length;
			var elements = new Array('td', 'div');
	
			var root;
			if (1<=argc && argv[0].nodeName ) {
				root = argv[0];
			}
			else {
				root = document;
			}
			
			for (var x in elements) {
				var tdList = root.getElementsByTagName(elements[x]);
				//var regE = /\.png/i;
				var regE = /img\/shadow\/[^\"\']*\.png/i;
				for (var i = 0; i < tdList.length && i < 5000; i++) {
					var bg = tdList[i].currentStyle.backgroundImage;
					if (bg) {
						//if ( bg.indexOf('.png') != -1 ) {
						if (bg.search(regE) != -1) {
							var pngbg = bg.substring(5, bg.length - 2);
							//if (tdList[i].hasChildNodes() == false || (tdList[i].childNodes.length == 1 && tdList[i].firstChild.nodeType == 3)) {
							if (tdList[i].className.indexOf("shadow") != -1) {
								tdList[i].style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+pngbg+"', sizingMethod='scale')";
								tdList[i].style.backgroundImage = "url('')";
							}
						}
					}
				}
			}
		}
	}
}

/**
 * Eseménykezelők
 */
var webra_eventlisteners = new Array();
 
var WebraEventListener = {};

WebraEventListener.add = function(eventType, handler) {
	webra_eventlisteners.push({'eventType':eventType, 'handler':handler});
}

/**
 * Üzenet kezelés a komponensek közt
 */

//komponensek nyilvĂĄntartĂĄsa
var webra_components = new Object();

function msg_addComponent(compName, callbackFunction, callbackParams) {
	if (compName) {
		webra_components[compName] = new Object();
		webra_components[compName]['compName'] = compName;
		webra_components[compName]['callbackFunction'] = callbackFunction;
		webra_components[compName]['callbackParams'] = callbackParams;
	}
}

function msg_removeComponent(compName) {
	webra_components[compName] = null;
}

function msg_send(msgSender, msgParams) {
	// a toolbart futtatjuk utoljĂĄra, ezĂŠrt kĂŠtszer fut a ciklus
	for (i in webra_components) {
		if (webra_components[i]['callbackParams'] && (webra_components[i]['callbackFunction'] != 'msgCallback_toolbar')) {
			var c = "var r = " + webra_components[i]['callbackFunction'] + "(msgSender, msgParams, webra_components['" + i + "']['callbackParams']);";
			eval(c);
		}
	}
	for (i in webra_components) {
		if (webra_components[i]['callbackParams'] && (webra_components[i]['callbackFunction'] == 'msgCallback_toolbar')) {
			var c = "var r = " + webra_components[i]['callbackFunction'] + "(msgSender, msgParams, webra_components['" + i + "']['callbackParams']);";
			eval(c);
		}
	}
}

//-----toolbar komponent--------
function msgCallback_toolbar(msgSender, msgParams, callbackParams) {
	if (typeof msgSender == "object") {
		// ST-ben elem kijelĂślĂŠs esemĂŠny tĂśrtĂŠnt
		if (msgSender.type == "sorttable" && (msgSender.event=="selectItem" || msgSender.event=="loadEmptyTable")) {
			// Üzenet paraméterek
			var i = callbackParams.length;
			for (var j=0; j<msgParams.length; j++) {
				callbackParams[i+j] = msgParams[j];
			}
			
			//@todo: Ez a kĂłdrĂŠsz tĂśbbes kijelĂślĂŠs esetĂŠn elkĂźldi a toolbarnak az Ăśsszes kijelĂślt elem adatait. AmĂ­g ezt a szerver oldalon nem hasznĂĄljuk, addig felesleges, ezĂŠrt kommenteztem.
			/*
			// Ha van tĂśbb kijelĂślt elem, akkor Ăśsszepakolva is ĂĄt kell kĂźldeni
			var postParams = Array();
			var stUniqueName = getParamValue(msgParams, "stParam_uniqueName");
			var stObject = SortableTable.ST_getSorttableByName(stUniqueName);
			if (stObject) {
				var selectedData = stObject.ST_getMultiSelectedData();
				if (selectedData && selectedData.length) {
					postParams = SortableTable._packMultiSelectedData(selectedData);
					postParams = setParamValue(postParams, "stParam_uniqueName", stUniqueName);
				}
			}

			// Ha van tĂśbbes kijelĂślĂŠs, akkor azokat az adatokat is ĂĄtkĂźldjĂźk
			var i = callbackParams.length;
			for (var j=0; j<postParams.length; j++) {
				callbackParams[i+j] = postParams[j];
			}
			*/

			// ElkĂźldi a kĂŠrĂŠst a szervernek
			addRequest(webraMainURL, "toolbar_callback", callbackParams, callbackParams, "toolbar_reload");
		}
	}
}

function toolbar_callback(xmlHttpResponse, callbackParams) {
	response = unescape(xmlHttpResponse);

	if (document.getElementById("header_secondrow_left")) {
		document.getElementById("header_secondrow_left").innerHTML = response;
		evalJS(response);
	}
}
//-----------------------------------


/**
 * Admin, attribĂştumpanel visszahĂ­vĂł fĂźggvĂŠnye
 */
function msgCallback_attributePanel(msgSender, msgParams, callbackParams) {
	if (typeof msgSender == "object") {
		// ST elem kijelĂślĂŠs
		if (msgSender.type == "sorttable" && (msgSender.event=="selectItem" || msgSender.event=="loadEmptyTable")) {
			// Üzenet paraméterek
			var i = callbackParams.length;
			for (var j = 0; j < msgParams.length; j++) {
				callbackParams[i+j] = msgParams[j];
			}
			// Ha van tĂśbb kijelĂślt elem, akkor Ăśsszepakolva is ĂĄt kell kĂźldeni
			var postParams = Array();
			var stUniqueName = getParamValue(msgParams, "stParam_uniqueName");
			var stObject = SortableTable.ST_getSorttableByName(stUniqueName);
			if (stObject) {
				var selectedData = stObject.ST_getMultiSelectedData();
				if (selectedData && selectedData.length) {
					postParams = SortableTable._packMultiSelectedData(selectedData);
					postParams = setParamValue(postParams, "stParam_uniqueName", stUniqueName);
				}
			}
			// Ha van tĂśbbes kijelĂślĂŠs, akkor azokat az adatokat is ĂĄtkĂźldjĂźk
			var i = callbackParams.length;
			for (var j = 0; j < postParams.length; j++) {
				callbackParams[i + j] = postParams[j];
			}
			var run = true;
			//ellenőrizzük a profilt, hogy kell-e újratölteni a panelt
			if(typeof Aitia != "undefined" && typeof Aitia.User != "undefined") {
				if(0 == Aitia.User.getPanel('right')) {
					run = false;
				}
			}
			
			if(run) {
				// ElkĂźldi a kĂŠrĂŠst a szervernek
				$$('#right_block form').each(function(f){
					f.getElements().each(function(s){
						s.disable();
					});
				});
				Aitia.Ajax.addRequest({
					requestURL:webraMainURL, 
					callBack:'attributePanel_callback', 
					postParams:callbackParams, 
					callbackParams:callbackParams,
					name: 'attributePanel_reload',
					cache:true
				});
			}
		}
	}
}

function attributePanel_callback(xmlHttpResponse, callbackParams) {
	response = unescape(xmlHttpResponse);
	if (document.getElementById("right_block")) {
		document.getElementById("right_block").innerHTML = response;
		
		// Kinyitja a jobb oldali panelt.
		// KR: ne nyissa ki a csak a helpet tartalmazĂł fĂźlet, elĂŠg nagy heggesztĂŠs...
		var openit = true;
		if (document.getElementById('helplinkid')) {
			openit = false;
		}
		if(openit) {
			toggle_w3('center_right');
		}
		
		//a mĂŠretet Ăşjra be kell ĂĄllĂ­tani
		resize_middle_div_heights();
		evalJS(response);
		Aitia.User.loadPanelBoxes();
	}
}

function getParamValue(paramsArray, paramName) {
	var paramValue = null;
	
	if (typeof paramsArray == "array" || typeof paramsArray == "object") {
		for (var i = 0; i < paramsArray.length; i++) {
			if (paramsArray[i][0] == paramName) {
				paramValue = paramsArray[i][1];
			}
		}
	}
	return paramValue;
}

function setParamValue(paramsArray, paramName, paramValue) {
	if (typeof paramsArray == "array" || typeof paramsArray == "object") {
		var isSet = 0;
		for (var i = 0; i < paramsArray.length; i++) {
			if (paramsArray[i][0] == paramName) {
				paramsArray[i][1] = paramValue;
				isSet = 1;
				break;
			}
		}
		if (isSet != 1) {
			paramsArray[paramsArray.length] = Array(paramName, paramValue);
		}
	}
	else {
		paramsArray	= new Array(Array(paramName, paramValue));
	}

	return paramsArray;
}

function removeParamValue(paramsArray, paramName) {
	var paramIndex = -1;
	
	if (typeof paramsArray == "array" || typeof paramsArray == "object") {
		for (var i = 0; i < paramsArray.length; i++) {
			if (paramsArray[i][0] == paramName) {
				paramIndex = i;
			}
		}
	}

	if ( paramIndex==-1 ) {
		return paramsArray;
	} else {
		paramsArray.splice(paramIndex,1)
		return paramsArray;
	}
}

function addURLParam(url, param, value) {
	var newurl = "";

	url2 = new String(url);
	arr = url2.split("#");

	newurl = arr[0];

	if (arr[0].indexOf("?") != -1) {
		newurl += "&";
	}
	else {
		newurl += "?";
	}

	newurl += encodeURIComponent(param) + "=" + encodeURIComponent(value);

	if(arr[1]) {
		newurl += "#" + arr[1];
	}

	return newurl;
}



/*
function getElementsByClassName(cl, node) {
	var retnode = [];
	var myclass = new RegExp('\\b'+cl+'\\b');
	var elem = node.getElementsByTagName('*');
	for (var i = 0; i < elem.length; i++) {
		var classes = elem[i].className;
		if (myclass.test(classes)) retnode.push(elem[i]);
	}
	return retnode;
}
*/

function createCookie(name, value, days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime() + (days*24*60*60*1000));
		var expires = "; expires=" + date.toGMTString();
	}
	else {
		expires = "";
	}
	document.cookie = name + "=" + value + expires + "; path=/";
}

function checkLoginUser() {
	u = Aitia.Cookie.getCookie('lastuser');
	if(u && '' != u) {
		document.s.vch_login_username.value = u;
		document.s.vch_login_password.focus();
	}
}

function adminhelp_search(webraInstance, adminhelp_term) {
	
	if (document.getElementById('adminhelp_term').value && (document.getElementById('adminhelp_term').value) != '')	{
		addRequest(webraMainURL + "?webraInstance="+webraInstance, 'adminhelp_callback', Array(Array("adminhelp_term", document.getElementById('adminhelp_term').value)));
	}
	else if ((adminhelp_term != 0) && adminhelp_term)	{
		addRequest(webraMainURL + "?webraInstance="+webraInstance, 'adminhelp_callback', Array(Array("adminhelp_term", adminhelp_term)));
	}
	return false;
}

function adminhelp_search_details(webraInstance,article_id, article_title, adminhelp_term) {
		addRequest(webraMainURL + "?webraInstance=" + webraInstance, 'adminhelp_callback', Array(Array("i_object_id", article_id), Array("title", article_title), Array("adminhelp_term", adminhelp_term)));
		return false;
}

function adminhelp_callback(xmlHttpResponse) {		
	response = unescape(xmlHttpResponse);
	if (document.getElementById("adminhelp_container")) {
		document.getElementById("adminhelp_container").innerHTML = response;
		evalJS(response);
	}		
}

function tidyFileName(fileName) {
	fileName = fileName.substring(fileName.lastIndexOf('\\')+1);
	
	fileName = fileName.replace(/ĂĄ/g, 'a');
	fileName = fileName.replace(/ĂŠ/g, 'e');
	fileName = fileName.replace(/Ă­/g, 'i');
	fileName = fileName.replace(/Ăł/g, 'o');
	fileName = fileName.replace(/Ăş/g, 'u');
	fileName = fileName.replace(/Ăź/g, 'u');
	fileName = fileName.replace(/Ĺą/g, 'u');
	fileName = fileName.replace(/Ăś/g, 'o');
	fileName = fileName.replace(/ő/g, 'o');
	fileName = fileName.replace(/Á/g, 'A');
	fileName = fileName.replace(/É/g, 'E');
	fileName = fileName.replace(/Í/g, 'I');
	fileName = fileName.replace(/Ó/g, 'O');
	fileName = fileName.replace(/Ú/g, 'U');
	fileName = fileName.replace(/Ü/g, 'U');
	fileName = fileName.replace(/Ĺ°/g, 'U');
	fileName = fileName.replace(/Ö/g, 'O');
	fileName = fileName.replace(/Ő/g, 'O');
	
	fileName = fileName.replace(/ /g,'_');
	
	fileName = fileName.replace(/[^0-9a-zA-Z_\-\.]/g,'');
	
	fileName = trim(fileName.substring(0, 250));
	
	return fileName;
}

function checkFileName(filename,targetControl,titleControl) {
	var newname = tidyFileName(filename);
	
	if (document.getElementById(targetControl)) {
		document.getElementById(targetControl).value = newname;
	}
	
	if (document.getElementById(titleControl) && document.getElementById(titleControl).value=='') {
		newname = filename.substring(filename.lastIndexOf('\\')+1);
		newname = newname.replace(/\.\w{1,6}$/gi,'');
		newname = newname.replace(/^[\/\\]+/gi,'');
		newname = newname.replace(/[\/\\]+$/gi,'');
		
		document.getElementById(titleControl).value = newname;
		document.getElementById(titleControl).onblur();
	}
}

function changeUploadFolder(param)
{
	var idx = param.id.replace("i_parentfolder_id", "").replace("_123456", "");

	generateSmartURL_base(document.getElementById('i_parentfolder_id' + idx).value, document.getElementById('document_title' + idx).value, 'insert_vch_smarturl' + idx);
}

SmartUrl_ReplaceCharsFrom = new Array('á', 'é', 'í', 'ó', 'ö', 'ő', 'ú', 'ü', 'ű', 'Á', 'É', 'Í', 'Ó', 'Ö', 'Ő', 'Ú', 'Ü', 'Ű');

SmartUrl_ReplaceCharsTo = new Array('a', 'e', 'i', 'o', 'o', 'o', 'u', 'u', 'u', 'a', 'e', 'i', 'o', 'o', 'o', 'u', 'u', 'u');

SmartUrl_DeniedWords = new Array('a', 'az', 'es', 'vagy', 'meg', 'tajekoztato', 'kozlemeny', 'palyazati', 'felhivas', 'eredmeny');

SmartUrl_ReplaceUnicodeToEmptyFrom = new Array('%u2010', '%u2011', '%u2012', '%u2013', '%u2014', '%u2015', '%u2016', '%u2017', '%u2018', '%u2019', '%u201A', '%u201B', '%u201C', '%u201D', '%u201E', '%u201F', '%u2032', '%u2033', '%u2034', '%u2035', '%u2036', '%u2037', '%uFE50', '%uFE51', '%uFE59', '%uFE5A', '%uFE5B', '%uFE5C', '%uFE5D', '%uFE5E');

SmartUrl_ReplaceUnicodeToEmptyTo = new Array('', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '');

SmartUrl_ReplaceASCIIToASCIIFrom = new Array('%C0', '%C1', '%C2', '%C3', '%C4', '%C5', '%E0', '%E1', '%E2', '%E3', '%E4', '%E5', '%C7', '%E7', '%D0', '%F0', '%C8', '%C9', '%CA', '%CB', '%E8', '%E9', '%EA', '%EB', '%CC', '%CD', '%CE', '%CF', '%EC', '%ED', '%EE', '%EF', '%D1', '%F1', '%D2', '%D3', '%D4', '%D5', '%D6', '%D8', '%F2', '%F3', '%F4', '%F5', '%F6', '%F8', '%DF', '%D9', '%DA', '%DB', '%DC', '%F9', '%FA', '%FB', '%FC', '%DD', '%FD', '%FF', '%C6', '%E6');

SmartUrl_ReplaceASCIIToASCIITo = new Array('a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'c', 'c', 'd', 'd', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'i', 'i', 'i', 'i', 'i', 'i', 'i', 'i', 'n', 'n', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 's', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'y', 'y', 'y', 'ae', 'ae');

SmartUrl_ReplaceUnicodeToASCIIFrom = new Array('%u00C0', '%u00C1', '%u00C2', '%u00C3', '%u00C4', '%u00C5', '%u00E0', '%u00E1', '%u00E2', '%u00E3', '%u00E4', '%u00E5', '%u0100', '%u0101', '%u0102', '%u0103', '%u0104', '%u0105', '%u01CD', '%u01CE', '%u01DE', '%u01DF', '%u01E0', '%u01E1', '%u01FA', '%u01FB', '%u0200', '%u0201', '%u0202', '%u0203', '%u0226', '%u0227', '%u023A', '%u0250', '%u04D0', '%u04D1', '%u1D2C', '%u1D43', '%u1D44', '%u1D8F', '%u1E00', '%u1E01', '%u1E9A', '%u1EA0', '%u1EA1', '%u1EA2', '%u1EA3', '%u1EA4', '%u1EA5', '%u1EA6', '%u1EA7', '%u1EA8', '%u1EA9', '%u1EAA', '%u1EAB', '%u1EAC', '%u1EAD', '%u1EAE', '%u1EAF', '%u1EB0', '%u1EB1', '%u1EB2', '%u1EB3', '%u1EB4', '%u1EB5', '%u1EB6', '%u1EB7', '%u2090', '%u2C65', '%u0180', '%u0181', '%u0182', '%u0183', '%u0243', '%u0253', '%u0299', '%u16D2', '%u1D03', '%u1D2E', '%u1D2F', '%u1D47', '%u1D6C', '%u1D80', '%u1E02', '%u1E03', '%u1E04', '%u1E05', '%u1E06', '%u1E07', '%u00C7', '%u00E7', '%u0106', '%u0107', '%u0108', '%u0109', '%u010A', '%u010B', '%u010C', '%u010D', '%u0187', '%u0188', '%u023B', '%u023C', '%u0255', '%u0297', '%u1D9C', '%u1D9D', '%u1E08', '%u1E09', '%u212D', '%u2184', '%u00D0', '%u00F0', '%u010E', '%u010F', '%u0110', '%u0111', '%u0189', '%u018A', '%u018B', '%u018C', '%u01C5', '%u01F2', '%u0221', '%u0256', '%u0257', '%u1D05', '%u1D30', '%u1D48', '%u1D6D', '%u1D81', '%u1D91', '%u1E0A', '%u1E0B', '%u1E0C', '%u1E0D', '%u1E0E', '%u1E0F', '%u1E10', '%u1E11', '%u1E12', '%u1E13', '%u00C8', '%u00C9', '%u00CA', '%u00CB', '%u00E8', '%u00E9', '%u00EA', '%u00EB', '%u0112', '%u0113', '%u0114', '%u0115', '%u0116', '%u0117', '%u0118', '%u0119', '%u011A', '%u011B', '%u018E', '%u0190', '%u01DD', '%u0204', '%u0205', '%u0206', '%u0207', '%u0228', '%u0229', '%u0246', '%u0247', '%u0258', '%u025B', '%u025C', '%u025D', '%u025E', '%u029A', '%u1D07', '%u1D08', '%u1D31', '%u1D32', '%u1D49', '%u1D4B', '%u1D4C', '%u1D92', '%u1D93', '%u1D94', '%u1D9F', '%u1E14', '%u1E15', '%u1E16', '%u1E17', '%u1E18', '%u1E19', '%u1E1A', '%u1E1B', '%u1E1C', '%u1E1D', '%u1EB8', '%u1EB9', '%u1EBA', '%u1EBB', '%u1EBC', '%u1EBD', '%u1EBE', '%u1EBF', '%u1EC0', '%u1EC1', '%u1EC2', '%u1EC3', '%u1EC4', '%u1EC5', '%u1EC6', '%u1EC7', '%u2091', '%u0191', '%u0192', '%u1D6E', '%u1D82', '%u1DA0', '%u1E1E', '%u1E1F', '%u011C', '%u011D', '%u011E', '%u011F', '%u0120', '%u0121', '%u0122', '%u0123', '%u0193', '%u01E4', '%u01E5', '%u01E6', '%u01E7', '%u01F4', '%u01F5', '%u0260', '%u0261', '%u0262', '%u029B', '%u1D33', '%u1D4D', '%u1D77', '%u1D79', '%u1D83', '%u1DA2', '%u1E20', '%u1E21', '%u0124', '%u0125', '%u0126', '%u0127', '%u021E', '%u021F', '%u0265', '%u0266', '%u029C', '%u02AE', '%u02AF', '%u02B0', '%u02B1', '%u1D34', '%u1DA3', '%u1E22', '%u1E23', '%u1E24', '%u1E25', '%u1E26', '%u1E27', '%u1E28', '%u1E29', '%u1E2A', '%u1E2B', '%u1E96', '%u210C', '%u2C67', '%u2C68', '%u2C75', '%u2C76', '%u00CC', '%u00CD', '%u00CE', '%u00CF', '%u00EC', '%u00ED', '%u00EE', '%u00EF', '%u0128', '%u0129', '%u012A', '%u012B', '%u012C', '%u012D', '%u012E', '%u012F', '%u0130', '%u0131', '%u0197', '%u01CF', '%u01D0', '%u0208', '%u0209', '%u020A', '%u020B', '%u0268', '%u026A', '%u040D', '%u0418', '%u0419', '%u0438', '%u0439', '%u0456', '%u1D09', '%u1D35', '%u1D4E', '%u1D62', '%u1D7B', '%u1D96', '%u1DA4', '%u1DA6', '%u1DA7', '%u1E2C', '%u1E2D', '%u1E2E', '%u1E2F', '%u1EC8', '%u1EC9', '%u1ECA', '%u1ECB', '%u2071', '%u2111', '%u0134', '%u0135', '%u01C8', '%u01CB', '%u01F0', '%u0237', '%u0248', '%u0249', '%u025F', '%u0284', '%u029D', '%u02B2', '%u1D0A', '%u1D36', '%u1DA1', '%u1DA8', '%u0136', '%u0137', '%u0198', '%u0199', '%u01E8', '%u01E9', '%u029E', '%u1D0B', '%u1D37', '%u1D4F', '%u1D84', '%u1E30', '%u1E31', '%u1E32', '%u1E33', '%u1E34', '%u1E35', '%u2C69', '%u2C6A', '%u0139', '%u013A', '%u013B', '%u013C', '%u013D', '%u013E', '%u013F', '%u0140', '%u0141', '%u0142', '%u019A', '%u01C8', '%u0234', '%u023D', '%u026B', '%u026C', '%u026D', '%u029F', '%u02E1', '%u1D0C', '%u1D38', '%u1D85', '%u1DA9', '%u1DAA', '%u1DAB', '%u1E36', '%u1E37', '%u1E38', '%u1E39', '%u1E3A', '%u1E3B', '%u1E3C', '%u1E3D', '%u2C60', '%u2C61', '%u2C62', '%u019C', '%u026F', '%u0270', '%u0271', '%u1D0D', '%u1D1F', '%u1D39', '%u1D50', '%u1D5A', '%u1D6F', '%u1D86', '%u1DAC', '%u1DAD', '%u1E3E', '%u1E3F', '%u1E40', '%u1E41', '%u1E42', '%u1E43', '%u00D1', '%u00F1', '%u0143', '%u0144', '%u0145', '%u0146', '%u0147', '%u0148', '%u0149', '%u019D', '%u019E', '%u01CB', '%u01F8', '%u01F9', '%u0220', '%u0235', '%u0272', '%u0273', '%u0274', '%u1D0E', '%u1D3A', '%u1D3B', '%u1D70', '%u1D87', '%u1DAE', '%u1DAF', '%u1DB0', '%u1E44', '%u1E45', '%u1E46', '%u1E47', '%u1E48', '%u1E49', '%u1E4A', '%u1E4B', '%u207F', '%u00D2', '%u00D3', '%u00D4', '%u00D5', '%u00D6', '%u00D8', '%u00F2', '%u00F3', '%u00F4', '%u00F5', '%u00F6', '%u00F8', '%u014C', '%u014D', '%u014E', '%u014F', '%u0150', '%u0151', '%u0186', '%u019F', '%u01A0', '%u01A1', '%u01D1', '%u01D2', '%u01EA', '%u01EB', '%u01EC', '%u01ED', '%u01FE', '%u01FF', '%u020C', '%u020D', '%u020E', '%u020F', '%u022A', '%u022B', '%u022C', '%u022D', '%u022E', '%u022F', '%u0230', '%u0231', '%u0254', '%u0275', '%u043E', '%u04E6', '%u04E7', '%u04E8', '%u04E9', '%u04EA', '%u04EB', '%u1D0F', '%u1D10', '%u1D11', '%u1D12', '%u1D13', '%u1D16', '%u1D17', '%u1D3C', '%u1D52', '%u1D53', '%u1D54', '%u1D55', '%u1D97', '%u1DB1', '%u1E4C', '%u1E4D', '%u1E4E', '%u1E4F', '%u1E50', '%u1E51', '%u1E52', '%u1E53', '%u1ECC', '%u1ECD', '%u1ECE', '%u1ECF', '%u1ED0', '%u1ED1', '%u1ED2', '%u1ED3', '%u1ED4', '%u1ED5', '%u1ED6', '%u1ED7', '%u1ED8', '%u1ED9', '%u1EDA', '%u1EDB', '%u1EDC', '%u1EDD', '%u1EDE', '%u1EDF', '%u1EE0', '%u1EE1', '%u1EE2', '%u1EE3', '%u2092', '%u2C9E', '%u2C9F', '%u01A4', '%u01A5', '%u1D18', '%u1D3E', '%u1D56', '%u1D71', '%u1D7D', '%u1D88', '%u1E54', '%u1E55', '%u1E56', '%u1E57', '%u2C63', '%u024A', '%u024B', '%u02A0', '%u0154', '%u0155', '%u0156', '%u0157', '%u0158', '%u0159', '%u0210', '%u0211', '%u0212', '%u0213', '%u024C', '%u024D', '%u0279', '%u027A', '%u027B', '%u027C', '%u027D', '%u027E', '%u027F', '%u0280', '%u0281', '%u02B3', '%u02B4', '%u02B5', '%u02B6', '%u1D19', '%u1D1A', '%u1D3F', '%u1D63', '%u1D72', '%u1D73', '%u1D89', '%u1DCA', '%u1E58', '%u1E59', '%u1E5A', '%u1E5B', '%u1E5C', '%u1E5D', '%u1E5E', '%u1E5F', '%u211C', '%u2C64', '%u00DF', '%u015A', '%u015B', '%u015C', '%u015D', '%u015E', '%u015F', '%u0160', '%u0161', '%u017F', '%u0218', '%u0219', '%u023F', '%u0282', '%u02E2', '%u1D74', '%u1D8A', '%u1DB3', '%u1E60', '%u1E61', '%u1E62', '%u1E63', '%u1E64', '%u1E65', '%u1E66', '%u1E67', '%u1E68', '%u1E69', '%u1E9B', '%u0162', '%u0163', '%u0164', '%u0165', '%u0166', '%u0167', '%u01AB', '%u01AC', '%u01AD', '%u01AE', '%u021A', '%u021B', '%u0236', '%u023E', '%u0287', '%u0288', '%u1D1B', '%u1D40', '%u1D57', '%u1D75', '%u1DB5', '%u1E6A', '%u1E6B', '%u1E6C', '%u1E6D', '%u1E6E', '%u1E6F', '%u1E70', '%u1E71', '%u1E97', '%u2C66', '%u00D9', '%u00DA', '%u00DB', '%u00DC', '%u00F9', '%u00FA', '%u00FB', '%u00FC', '%u0168', '%u0169', '%u016A', '%u016B', '%u016C', '%u016D', '%u016E', '%u016F', '%u0170', '%u0171', '%u0172', '%u0173', '%u01AF', '%u01B0', '%u01D3', '%u01D4', '%u01D5', '%u01D6', '%u01D7', '%u01D8', '%u01D9', '%u01DA', '%u01DB', '%u01DC', '%u0214', '%u0215', '%u0216', '%u0217', '%u0244', '%u0289', '%u1D1C', '%u1D1D', '%u1D1E', '%u1D41', '%u1D58', '%u1D59', '%u1D64', '%u1D7E', '%u1D99', '%u1DB6', '%u1DB8', '%u1E72', '%u1E73', '%u1E74', '%u1E75', '%u1E76', '%u1E77', '%u1E78', '%u1E79', '%u1E7A', '%u1E7B', '%u1EE4', '%u1EE5', '%u1EE6', '%u1EE7', '%u1EE8', '%u1EE9', '%u1EEA', '%u1EEB', '%u1EEC', '%u1EED', '%u1EEE', '%u1EEF', '%u1EF0', '%u1EF1', '%u01B2', '%u0245', '%u028B', '%u028C', '%u1D20', '%u1D5B', '%u1D65', '%u1D8C', '%u1DB9', '%u1DBA', '%u1E7C', '%u1E7D', '%u1E7E', '%u1E7F', '%u2C74', '%u0174', '%u0175', '%u028D', '%u02B7', '%u1D21', '%u1D42', '%u1E80', '%u1E81', '%u1E82', '%u1E83', '%u1E84', '%u1E85', '%u1E86', '%u1E87', '%u1E88', '%u1E89', '%u1E98', '%u02E3', '%u1D8D', '%u1E8A', '%u1E8B', '%u1E8C', '%u1E8D', '%u2093', '%u00DD', '%u00FD', '%u00FF', '%u0176', '%u0177', '%u0178', '%u01B3', '%u01B4', '%u0232', '%u0233', '%u024E', '%u024F', '%u028E', '%u028F', '%u02B8', '%u1E8E', '%u1E8F', '%u1E99', '%u1EF2', '%u1EF3', '%u1EF4', '%u1EF5', '%u1EF6', '%u1EF7', '%u1EF8', '%u1EF9', '%u0179', '%u017A', '%u017B', '%u017C', '%u017D', '%u017E', '%u01B5', '%u01B6', '%u0224', '%u0225', '%u0240', '%u0290', '%u0291', '%u1D22', '%u1D76', '%u1D8E', '%u1DBB', '%u1DBC', '%u1DBD', '%u1E90', '%u1E91', '%u1E92', '%u1E93', '%u1E94', '%u1E95', '%u2128', '%u2C6B', '%u2C6C', '%u00C6', '%u00E6', '%u0132', '%u0133', '%u0152', '%u0153', '%u0276', '%u1E9E', '%u1D6B');

SmartUrl_ReplaceUnicodeToASCIITo = new Array('a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'c', 'c', 'c', 'c', 'c', 'c', 'c', 'c', 'c', 'c', 'c', 'c', 'c', 'c', 'c', 'c', 'c', 'c', 'c', 'c', 'c', 'c', 'd', 'd', 'd', 'd', 'd', 'd', 'd', 'd', 'd', 'd', 'd', 'd', 'd', 'd', 'd', 'd', 'd', 'd', 'd', 'd', 'd', 'd', 'd', 'd', 'd', 'd', 'd', 'd', 'd', 'd', 'd', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'f', 'f', 'f', 'f', 'f', 'f', 'f', 'g', 'g', 'g', 'g', 'g', 'g', 'g', 'g', 'g', 'g', 'g', 'g', 'g', 'g', 'g', 'g', 'g', 'g', 'g', 'g', 'g', 'g', 'g', 'g', 'g', 'g', 'g', 'h', 'h', 'h', 'h', 'h', 'h', 'h', 'h', 'h', 'h', 'h', 'h', 'h', 'h', 'h', 'h', 'h', 'h', 'h', 'h', 'h', 'h', 'h', 'h', 'h', 'h', 'h', 'h', 'h', 'h', 'h', 'i', 'i', 'i', 'i', 'i', 'i', 'i', 'i', 'i', 'i', 'i', 'i', 'i', 'i', 'i', 'i', 'i', 'i', 'i', 'i', 'i', 'i', 'i', 'i', 'i', 'i', 'i', 'i', 'i', 'i', 'i', 'i', 'i', 'i', 'i', 'i', 'i', 'i', 'i', 'i', 'i', 'i', 'i', 'i', 'i', 'i', 'i', 'i', 'i', 'i', 'i', 'i', 'j', 'j', 'j', 'j', 'j', 'j', 'j', 'j', 'j', 'j', 'j', 'j', 'j', 'j', 'j', 'j', 'k', 'k', 'k', 'k', 'k', 'k', 'k', 'k', 'k', 'k', 'k', 'k', 'k', 'k', 'k', 'k', 'k', 'k', 'k', 'l', 'l', 'l', 'l', 'l', 'l', 'l', 'l', 'l', 'l', 'l', 'l', 'l', 'l', 'l', 'l', 'l', 'l', 'l', 'l', 'l', 'l', 'l', 'l', 'l', 'l', 'l', 'l', 'l', 'l', 'l', 'l', 'l', 'l', 'l', 'l', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'n', 'n', 'n', 'n', 'n', 'n', 'n', 'n', 'n', 'n', 'n', 'n', 'n', 'n', 'n', 'n', 'n', 'n', 'n', 'n', 'n', 'n', 'n', 'n', 'n', 'n', 'n', 'n', 'n', 'n', 'n', 'n', 'n', 'n', 'n', 'n', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'p', 'p', 'p', 'p', 'p', 'p', 'p', 'p', 'p', 'p', 'p', 'p', 'p', 'q', 'q', 'q', 'r', 'r', 'r', 'r', 'r', 'r', 'r', 'r', 'r', 'r', 'r', 'r', 'r', 'r', 'r', 'r', 'r', 'r', 'r', 'r', 'r', 'r', 'r', 'r', 'r', 'r', 'r', 'r', 'r', 'r', 'r', 'r', 'r', 'r', 'r', 'r', 'r', 'r', 'r', 'r', 'r', 'r', 'r', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 't', 't', 't', 't', 't', 't', 't', 't', 't', 't', 't', 't', 't', 't', 't', 't', 't', 't', 't', 't', 't', 't', 't', 't', 't', 't', 't', 't', 't', 't', 't', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'v', 'v', 'v', 'v', 'v', 'v', 'v', 'v', 'v', 'v', 'v', 'v', 'v', 'v', 'v', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'z', 'z', 'z', 'z', 'z', 'z', 'z', 'z', 'z', 'z', 'z', 'z', 'z', 'z', 'z', 'z', 'z', 'z', 'z', 'z', 'z', 'z', 'z', 'z', 'z', 'z', 'z', 'z', 'ae', 'ae', 'ij', 'ij', 'oe', 'oe', 'oe', 'ss', 'ue');

function SmartUrl_title_to_smarturl(str) {
	var i=0;

	str = str.replace(/&[^;\/];/gi, smarturl_space_char);
	str = escape(str);
	for (i = 0; i < SmartUrl_ReplaceUnicodeToEmptyFrom.length; i++) {
		re = new RegExp(SmartUrl_ReplaceUnicodeToEmptyFrom[i], 'gi');
		str = str.replace(re, SmartUrl_ReplaceUnicodeToEmptyTo[i]);
	}
	for (i = 0; i < SmartUrl_ReplaceASCIIToASCIIFrom.length; i++) {
		re = new RegExp(SmartUrl_ReplaceASCIIToASCIIFrom[i], 'gi');
		str = str.replace(re, SmartUrl_ReplaceASCIIToASCIITo[i]);
	}
	for (i = 0; i < SmartUrl_ReplaceUnicodeToASCIIFrom.length; i++) {
		re = new RegExp(SmartUrl_ReplaceUnicodeToASCIIFrom[i], 'gi');
		str = str.replace(re, SmartUrl_ReplaceUnicodeToASCIITo[i]);
	}
	str = unescape(str);
	for (i = 0; i < SmartUrl_ReplaceCharsFrom.length; i++) {
		re = new RegExp(SmartUrl_ReplaceCharsFrom[i], 'gi');
		str = str.replace(re, SmartUrl_ReplaceCharsTo[i]);
	}
	str = str.toLowerCase();
	str = str.replace(/[^a-z0-9]/gi, smarturl_space_char);
	re = new RegExp(preg_smarturl_space_char, 'gi');
	str = str.replace(re, smarturl_space_char + smarturl_space_char);
	for (i = 0; i < SmartUrl_DeniedWords.length; i++) {
		re = new RegExp('(^|' + preg_smarturl_space_char + ')' + SmartUrl_DeniedWords[i] + '(' + preg_smarturl_space_char + '|$)', 'gi');
		str = str.replace(re, '$1$2');
	}
	re = new RegExp(preg_smarturl_space_char, 'gi');
	str = str.replace(re, smarturl_space_char + smarturl_space_char);
	re = new RegExp('(^|' + preg_smarturl_space_char + ')[a-z](' + preg_smarturl_space_char + '|$)', 'gi');
	str = str.replace(re, '$1$2');
	re = new RegExp(preg_smarturl_space_char + '+', 'gi');
	str = str.replace(re, smarturl_space_char);
	var sstr = str + smarturl_space_char;
	var sindex = sstr.lastIndexOf(smarturl_space_char, 24);
	if (sindex < 5) {
		sindex = 10;
	}
	str = str.substr(0, sindex);
	re = new RegExp('^' + preg_smarturl_space_char + '+', 'gi');
	str = str.replace(re, '');
	re = new RegExp(preg_smarturl_space_char + '+$', 'gi');
	str = str.replace(re, '');

	return str;
}

function SmartUrl_filter_smarturl(html_object_id) {
	var i = 0;
	str = document.getElementById(html_object_id).value;

	str = str.replace(/&[^;\/];/gi, smarturl_space_char);
	str = escape(str);
	for (i=0; i<SmartUrl_ReplaceUnicodeToEmptyFrom.length; i++) {
		re = new RegExp(SmartUrl_ReplaceUnicodeToEmptyFrom[i], 'gi');
		str = str.replace(re, SmartUrl_ReplaceUnicodeToEmptyTo[i]);
	}
	for (i=0; i<SmartUrl_ReplaceASCIIToASCIIFrom.length; i++) {
		re = new RegExp(SmartUrl_ReplaceASCIIToASCIIFrom[i], 'gi');
		str = str.replace(re, SmartUrl_ReplaceASCIIToASCIITo[i]);
	}
	for (i=0; i<SmartUrl_ReplaceUnicodeToASCIIFrom.length; i++) {
		re = new RegExp(SmartUrl_ReplaceUnicodeToASCIIFrom[i], 'gi');
		str = str.replace(re, SmartUrl_ReplaceUnicodeToASCIITo[i]);
	}
	str = unescape(str);
	for (i=0; i<SmartUrl_ReplaceCharsFrom.length; i++) {
		re = new RegExp(SmartUrl_ReplaceCharsFrom[i], 'gi');
		str = str.replace(re, SmartUrl_ReplaceCharsTo[i]);
	}
	str = str.toLowerCase();
	str = str.replace(/[^a-z0-9\/]/gi, smarturl_space_char);
	if (document.getElementById(html_object_id).value != str) {
		document.getElementById(html_object_id).value = str;
	}
}

function generateSmartURL_base(sou_folderid_value, sou_objecttitle_value, dest_html_object_id) {
	if (document.getElementById('panel_smarturl_parentfolder_id')) {
		sou_folderid_value = document.getElementById('panel_smarturl_parentfolder_id').value;
	}
	if (document.getElementById(dest_html_object_id)) {
		addRequest(smarturlcallbackURL+'&xmleditor_action=getSmartURLfolderpath&nodoctype=1&parentid='+sou_folderid_value, 'getSmartURLfolderpath_base', '', Array(sou_objecttitle_value, dest_html_object_id, '##/##', '/'),'request_generateSmartURL_base');
	}
}

function getSmartURLfolderpath_base(result, params) {
	if (result=='undefined') {
		result = '';
	}
	result=unescape(result);
	result=result.replace(/([^\s])\s*$/gi,'$1');

	var str = '';
	if (result.indexOf('##nochange##') == -1) {
		var str_array = new Array();
		str_array = result.split(params[2]);
		for (i = 0; i < str_array.length; i++) {
			str += SmartUrl_title_to_smarturl(str_array[i],'')+params[3];
		}
	}
	else {
		str += result.replace(/##nochange##$/gi, '')+params[3];
	}
	str += SmartUrl_title_to_smarturl(params[0],'');
	str = str.replace(/^\/+/gi, '');
	str = str.replace(/\/+$/gi, '');

	document.getElementById(params[1]).value = str;
}

function changeObjectPosition(metadataId, changeType, stUniqueName) {
	// A pozicionĂĄlĂĄst az ST objektum lĂŠtrehozĂł modul fogja vĂŠgezni. // st_adminPositionObjectBrowserST_maintable
	if (webra_sorttables && webra_sorttables['st_' + stUniqueName + '_maintable']) {
		stObject = webra_sorttables['st_' + stUniqueName + '_maintable'];
		// URL ĂśsszeĂĄllĂ­tĂĄsa
		var url = this.addURLParam(stObject.homeURL, "ctag", "reload");
		
		// + paramĂŠterek a sĂşlyozĂĄshoz
		url = this.addURLParam(url, "metadataId", metadataId);
		url = this.addURLParam(url, "changeType", changeType);

		// PozicionĂĄlĂĄs ĂŠs ST ĂşjratĂśltĂŠs egyben
		stObject.ST_resubmit(url, "SortableTable.ST_callback_reload");
	}
} // end function changeObjectPosition

function changeHeadObjectPosition(headObjectID, changeType, sorttableName) {	
	// A pozicionĂĄlĂĄst az ST objektum lĂŠtrehozĂł modul fogja vĂŠgezni.
	if (webra_sorttables && webra_sorttables["st_"+sorttableName+"_maintable"]) {
		stObject = webra_sorttables["st_"+sorttableName+"_maintable"];

		// URL ĂśsszeĂĄllĂ­tĂĄsa
		var url = this.addURLParam(stObject.homeURL, "ctag", "reload");
		
		// + paramĂŠterek a sĂşlyozĂĄshoz
		url = this.addURLParam(url, "headObjectID", headObjectID);
		url = this.addURLParam(url, "changeType", changeType);

		// PozicionĂĄlĂĄs ĂŠs ST ĂşjratĂśltĂŠs egyben
		stObject.ST_resubmit(url, "SortableTable.ST_callback_reload");
	}
} // end function changeHeadObjectPosition

/**
 * FoglaltsĂĄg jelzĂŠs az adminon (vagy a cĂ­m hĂĄtterĂŠben, vagy a kis piros div-vel)
 *
 * @date 2007.08.29
 * @author SzabĂł Csaba
 *
 * @param boolean KikapcsolĂĄs (0) vagy bekapcsolĂĄs (1)
 */
function loadingIndicator(status) {
	if ( document.body ) {
		var iObject = document.getElementById("header_firstrow_label");
		if (iObject) {
			if (status) {
				iObject.className = 'header_firstrow_label_busy';
			}
			else {
				iObject.className = '';
			}
		}
		else {
			var divVisibilityValue = "hidden";
			if (status) {
				divVisibilityValue = "visible";
			}
			
			var iObject = document.getElementById("w3LoadingDiv");
			if (!iObject) {
				var loadingDiv = document.createElement("div");
				loadingDiv.id = "w3LoadingDiv";
				loadingDiv.innerHTML = LANG['LOADING'];
				loadingDiv.className = "loading_div";
				loadingDiv.style.visibility = divVisibilityValue;
				document.body.appendChild(loadingDiv);
			}
			else {
				iObject.style.visibility = divVisibilityValue;
			}
		}
		for (var i = 0; i<AjaxLoadingIndicator_array.length; i++) {
			if (status) {
				if ( typeof AjaxLoadingIndicator_array[i].fvonstr=='function' ) {
					AjaxLoadingIndicator_array[i].fvonstr();
				} else {
					window[AjaxLoadingIndicator_array[i].fvonstr]();
				}
			}
			else {
				if ( typeof AjaxLoadingIndicator_array[i].fvoffstr=='function' ) {
					AjaxLoadingIndicator_array[i].fvoffstr();
				} else {
					window[AjaxLoadingIndicator_array[i].fvoffstr]();
				}
			}
		}
	}
}

// tartalmazza, hogy ajax kĂŠrĂŠs indĂ­tĂĄsa/vĂŠgezte esetĂŠn milyen js fĂźggvĂŠnyeket kell meghĂ­vni
AjaxLoadingIndicator_array = new Array();

/**
 * AjaxLoadingIndicator elem/eset betĂśltĂŠsĂŠt vĂŠgzi
 *
 * @date 2010.07.30
 * @author Klausz ZoltĂĄn
 *
 * @param string name
 * @param string bekapcsolĂĄs fĂźggvĂŠnye
 * @param string kikapcsolĂĄs fĂźggvĂŠnye
 */
function addAjaxLoadingIndicatorElement(namestr, fvonstr, fvoffstr) {
	var newitem = true;
	for (var i = 0; i<AjaxLoadingIndicator_array.length; i++) {
		if (AjaxLoadingIndicator_array[i].name == namestr) {
			AjaxLoadingIndicator_array[i] = {name : namestr, fvonstr : fvonstr, fvoffstr : fvoffstr};
			newitem = false;
		}
	}
	if (newitem) {
		AjaxLoadingIndicator_array.push({name : namestr, fvonstr : fvonstr, fvoffstr : fvoffstr});
	}
}

/**
 * Elmenti a legutĂłbb hasznĂĄlt objektumok kĂśzĂŠ a megadott objektumot.
 *
 * @author SzabĂł Csaba <csszabo@webra.hu>
 * @date 2007.09.10
 *
 * @param integer Az objektum azonosĂ­tĂłja
 * @param integer Az objektum tĂ­pus azonosĂ­tĂłja
 *
 * @todo> Átgondolni: kliens oldalról nem kell módosítani, mert csak azok az objektumok kerßlhetnek be, melyeket a DB-ben módosított.
 */
function profilePushMostRecentObject(metadataID, objectID, objectTypeID) {
	// Vagy metadata azonosĂ­tĂł vagy objektum ĂŠs objektumtĂ­pus azonosĂ­tĂł szĂźksĂŠges
	if (parseInt(metadataID) > 0 || (parseInt(objectID) > 0 && parseInt(objectTypeID) > 0)) {
		addRequest(profileURL, "", Array(Array("webra_action", "profileSetMostRecentObject"), Array("objectID", objectID), Array("objectTypeID", objectTypeID)));
	}
}

/**
 * BeĂĄllĂ­tja az aktuĂĄlisan hasznĂĄlt rovatot (linuxos hasonlattal ĂŠlve pwd-t)
 * Ezt lehet hasznĂĄlni Ăşj objektum lĂŠtrehozĂĄskor default rovatnak.
 *
 * @author SzabĂł Csaba <csszabo@webra.hu>
 * @date 2007.09.10
 *
 * @param integer Az objektum azonosĂ­tĂłja
 * @param integer Az objektum tĂ­pus azonosĂ­tĂłja
 */
function profileSetActiveFolder(objectID) {
	// Rovat azonosĂ­tĂł szĂźksĂŠges
	if (parseInt(objectID) > 0) {
		addRequest(profileURL, "", Array(Array("webra_action", "profileSetActiveFolder"), Array("objectID", objectID)));
	}
}

/**
 * Visszaad vĂĄrost zip alapjĂĄn.
 *
 * @author Kocsis RĂłbert <rkocsis@webra.hu>
 * @date 2007.11.08.
 *
 * @param integer zip
 * @param string cĂŠlpont html control
 */
function getWebraCityByZip(zipcode,settlementControl) {
	if (zipcode.length == 4) {
		var params = setParamValue(params, "nodoctype", 1);
		params = setParamValue(params, "webra_action", 'getWebraCityByZip');
		params = setParamValue(params, "vch_zipcode", zipcode);
		params = setParamValue(params, "settlementControl", settlementControl);
		addRequest(profileURL, "getWebraCityByZip_callback", params);
	}
}

function getWebraCityByZip_callback(result, callbackParams) {
	var result=unescape(result);
	evalJS(result);
}

/**
 * Visszaad vĂĄrost zip alapjĂĄn.
 *
 * @author Kocsis RĂłbert <rkocsis@webra.hu>
 * @date 2007.11.08.
 *
 * @param integer zip
 * @param string cĂŠlpont html control
 */
function getWebraCityByZip_public(zipcode,settlementControl) {
	if (zipcode.length == 4) {
		var params = setParamValue(params, "nodoctype", 1);
		params = setParamValue(params, "webra_action", 'getWebraCityByZip');
		params = setParamValue(params, "vch_zipcode", zipcode);
		params = setParamValue(params, "settlementControl", settlementControl);
		addRequest(profilePublicURL, "getWebraCityByZip_callback", params);
	}
}

function getWebraCityByZip_public_callback(result, callbackParams) {
	var result=unescape(result);
	evalJS(result);
}

/**
 * Általånos ajax url check
 *
 * @author Kocsis RĂłbert <rkocsis@webra.hu>
 * @date 2007.11.26.
 *
 * @param string url
 */
function checkWebraURL(url) {
	if (url!='') {
		var params = setParamValue(params, "nodoctype", 1);
		params = setParamValue(params, "webra_action", 'checkURL');
		params = setParamValue(params, "url", url);
		addRequest(profileURL, "checkWebraURL_callback", params);
	}
}

function checkWebraURL_callback(result) {
	var result=unescape(result);
	if (result==1) {
		alert('Az URL létezik és elérhető.');
	} else {
		alert('Az URL nem létezik, vagy nem elérhető a szerverről.');
	}
}

var monthlengths = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
/* format: YYYY*MM*DD */
function checkDateSimple(dateobject) {
	if (dateobject.value.match(/^\d{4}[^0-9]\d{2}[^0-9]\d{2}$/)) {
		var thisyear = dateobject.value.substr(0,4);
		var thismonth = dateobject.value.substr(5,2);
		var thisday = dateobject.value.substr(8,2);
		if ((parseInt(thisyear) > 0) && (parseInt(thismonth) > 0) && (parseInt(thisday) > 0)) {
			monthlengths[1] = 28;
			if ((parseInt(thisyear/4) == (thisyear/4))) {
				monthlengths[1] = 29;
			}
			if ((parseInt(thismonth) <= 12) && (parseInt(thisday) <= monthlengths[parseInt(thismonth)-1])) {
				return true;
			}
		}
	}

	dateobject.focus();
	return false;
}

// --- Webra, Admin About Box ---
function webraAboutPopup(webraInstance) {
	newAdminPopup('admin_gui::webraAboutBoxPopup', Array(Array('webraInstance', webraInstance), Array('alma', 1)));
}

// --- begin - eventcalendar ---------------------------
function event_findPosX(obj) {
	var curleft = 0;
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curleft += obj.offsetLeft;
			obj = obj.offsetParent;
		}
	}	else if (obj.x) {
		curleft += obj.x;
	}
	return curleft;
}

function event_findPosY(obj) {
	var curtop = 0;
	if (obj.offsetParent) {
		while (obj.offsetParent) {
		curtop += obj.offsetTop;
		obj = obj.offsetParent;
		}
	} else if (obj.y) {
		curtop += obj.y;
	}
	return curtop;
}
function EventCalendarDay(i, type, node) {
	this.num = i;
	this.type = type;
	this.node = node;
}

function EventCalendar() {
	var _self = this;
	this.year = null;
	this.month = null;
	this.day = null;
	this.days = new Array();
	this.selectedDay = null;
	this.rootNode = null;
	this.yearSelect = null;
	this.monthSelect = null;
	this.timer = null;
	
	this.webraInstance = null;

	this.selectDay = function(d) {
		if (this.selectedDay != null) {
			this.days[this.selectedDay].node.className = this.days[this.selectedDay].node.className.replace('selectedDay', '');
		}
		this.selectedDay = d;
		if (this.selectedDay != null) {
			this.days[this.selectedDay].node.className = this.days[this.selectedDay].node.className+' selectedDay ';
		}
		var params=Array();
		setParamValue(params, 'webra_action', 'getDayInfo');
		setParamValue(params, 'nodoctype', '1');
		setParamValue(params, 'year', this.year);
		setParamValue(params, 'month', this.month);
		setParamValue(params, 'day', this.selectedDay);
		setParamValue(params, 'webraInstance', this.webraInstance);
		
		if (document.getElementById('naptar_kulso')) {
			this.setTimer(params);
		}
		else {
			addRequest(mainURL+'main.php', 'cal.selectDayResponse', params, params);
		}
	}

	this.selectDay_pointer = function(d) {
		if (this.selectedDay != null) {
			this.days[this.selectedDay].node.className = this.days[this.selectedDay].node.className.replace('selectedDay', '');
		}
		this.selectedDay = d;
		if (this.selectedDay != null) {
			this.days[this.selectedDay].node.className = this.days[this.selectedDay].node.className+' selectedDay ';
		}
	}

	this.setTimer = function(params) {
		this.clearTimer();
	
		var paramStr = "";
		if (typeof params == "array" || typeof params == "object") {
			for (var i=0; i<params.length; i++) {
				if (paramStr != "") paramStr += ", ";
				paramStr += "Array('"+params[i][0]+"', '"+params[i][1]+"')";
			}
		}
		paramStr = "Array("+paramStr+")";
	
		if (document.getElementById('naptar_kulso')) {
			if (document.getElementById('cal_day_'+getParamValue(params, 'day'))) {
				if (document.getElementById('ticket_calendar_today')) {
					document.getElementById('ticket_calendar_today').style.display = 'block';
					this.clearBlock();
					document.getElementById('ticket_calendar_today').className = 'ticket_calendar_today';
					document.getElementById('ticket_calendar_today').style.top = (event_findPosY(document.getElementById('cal_day_'+getParamValue(params, 'day'))) - event_findPosY(document.getElementById('naptar_kulso')) + document.getElementById('calendar_pointer').clientHeight + document.getElementById('cal_day_'+getParamValue(params, 'day')).clientHeight)+'px';
					if (document.getElementById('calendar_pointer')) {
						document.getElementById('calendar_pointer').style.left = (event_findPosX(document.getElementById('cal_day_'+getParamValue(params, 'day'))) - event_findPosX(document.getElementById('naptar_kulso')))+'px';
					}
				}
			}
		}
		var commandStr = "addRequest(mainURL+'main.php', 'cal.selectDayResponse', "+paramStr+", "+paramStr+");";
		this.timer = setTimeout(commandStr, 1000);
	}

	this.clearTimer = function() {
		if (this.timer) {
			clearTimeout(this.timer);
		}
	}

	this.clearBlock = function() {
		if (document.getElementById('ticket_calendar_today')) {
			document.getElementById('ticket_calendar_today').innerHTML = '<div id="calendar_pointer" class="calendar_pointer"></div><br></br>';
		}
	}

	this.clearselectedDay = function() {
		if (cal.selectedDay != null) {
			cal.days[cal.selectedDay].node.className = cal.days[cal.selectedDay].node.className.replace('selectedDay', '');
		}
	}

	this.hideBlock = function() {
		if (document.getElementById('ticket_calendar_today')) {
			document.getElementById('ticket_calendar_today').style.display = 'none';
		}
	}

	this.loadedBlock = function() {
		if (document.getElementById('ticket_calendar_today')) {
			document.getElementById('ticket_calendar_today').className = 'ticket_calendar_today_loaded';
		}
	}

	this.selectDayResponse = function(xmlHttpResponse, params) {
		response = unescape(xmlHttpResponse);
		evalJS(response);
		document.getElementById('ticket_calendar_today').innerHTML=response;
		if (document.getElementById('ticket_toright')) {
			document.getElementById('ticket_toright').innerHTML = document.getElementById('ticket_fromleft').innerHTML;
			document.getElementById('ticket_fromleft').innerHTML = '';
		}
		if (document.getElementById('ticket_time') && document.getElementById('ticket_time').innerHTML=='' && actualDate) {
			document.getElementById('ticket_time').innerHTML=actualDate.substring(8,10)+':'+actualDate.substring(10,12);
			if (document.getElementById('td'+actualDate.substring(8,10)+'_'+actualDate.substring(10,12))) {
				var td=document.getElementById('td'+actualDate.substring(8,10)+'_'+actualDate.substring(10,12));
				td.style.border='1px solid yellow';
				lastDailyTimeSelected=td;
			}
		}

		if (document.getElementById('naptar_kulso')) {
			if (document.getElementById('cal_day_'+getParamValue(params, 'day'))) {
				if (document.getElementById('ticket_calendar_today')) {
					document.getElementById('ticket_calendar_today').style.display = 'block';
					document.getElementById('ticket_calendar_today').className = 'ticket_calendar_today_loaded';
					document.getElementById('ticket_calendar_today').style.top = (event_findPosY(document.getElementById('cal_day_'+getParamValue(params, 'day'))) - event_findPosY(document.getElementById('naptar_kulso')) + document.getElementById('calendar_pointer').clientHeight + document.getElementById('cal_day_'+getParamValue(params, 'day')).clientHeight)+'px';
					if (document.getElementById('calendar_pointer')) {
						document.getElementById('calendar_pointer').style.left = (event_findPosX(document.getElementById('cal_day_'+getParamValue(params, 'day'))) - event_findPosX(document.getElementById('naptar_kulso')))+'px';
					}
				}
			}
			else {
				if (document.getElementById('ticket_calendar_today')) {
					document.getElementById('ticket_calendar_today').style.display = 'none';
				}
			}
		}
	}

	this.unselectDay = function() {
		if (document.getElementById('naptar_kulso')) {
			if (document.getElementById('ticket_calendar_today')) {
				this.clearTimer();
				this.timer = setTimeout("cal.hideBlock();cal.clearselectedDay();", 1000);
			}
		}
	}

	this.setDate = function(y, m, d) {
		if (y != null) this.year = parseInt(parseFloat(y)+0.1);
		if (m != null) this.month = parseInt(parseFloat(m)+0.1);
		if (d != null) this.day = parseInt(parseFloat(d)+0.1);
		this.setDayTypes();
	}

	this.setDate_pointer = function(y, m, d) {
		if (y != null) this.year = parseInt(parseFloat(y)+0.1);
		if (m != null) this.month = parseInt(parseFloat(m)+0.1);
		if (d != null) this.day = parseInt(parseFloat(d)+0.1);
		this.setDayTypes_pointer();
	}

	this.setDayType = function(d, type) {
		if (0<d && d<=31) {
			if (typeof(this.days[d]) == 'undefined') this.days[d] = new EventCalendarDay(d, type);
			if (type != null) this.days[d].type = type;
		}
	}

	this.setDayTypes = function() {
		var params=Array();
		setParamValue(params, 'webra_action', 'getMonthTypes');
		setParamValue(params, 'nodoctype', '1');
		setParamValue(params, 'year', this.year);
		setParamValue(params, 'month', this.month);
		setParamValue(params, 'webraInstance', this.webraInstance);
		addRequest(mainURL+'main.php', 'cal.setDayTypesResponse', params);
	}

	this.setDayTypes_pointer = function() {
		var params=Array();
		setParamValue(params, 'webra_action', 'getMonthTypes');
		setParamValue(params, 'nodoctype', '1');
		setParamValue(params, 'year', this.year);
		setParamValue(params, 'month', this.month);
		setParamValue(params, 'webraInstance', this.webraInstance);
		addRequest(mainURL+'main.php', 'cal.setDayTypesResponse_pointer', params);
	}

	this.setDayTypesResponse = function(xmlHttpResponse) {
		response = unescape(xmlHttpResponse);
		evalJS(response);
		for (var d=1; d<=31; d++) {
			try {
				_self.setDayType(d, days[d-1]);
			} catch (e) {
				_self.setDayType(d, '');
			}
		}
		_self.displayCalendar();
		try {
			for (var i=0; i<_self.yearSelect.options.length; i++) {
				if (_self.yearSelect.options[i].value == _self.year) {
					_self.yearSelect.selectedIndex = i;
				}
			}
		}
		catch (e) {}
		try {
			for (var i=0; i<_self.monthSelect.options.length; i++) {
				if (_self.monthSelect.options[i].value == _self.month) {
					_self.monthSelect.selectedIndex = i;
				}
			}
		}
		catch (e) {}
		_self.selectDay(parseInt(_self.day));
	}

	this.setDayTypesResponse_pointer = function(xmlHttpResponse) {
		response = unescape(xmlHttpResponse);
		evalJS(response);
		for (var d=1; d<=31; d++) {
			try {
				this.setDayType(d, days[d-1]);
			} catch (e) {
				this.setDayType(d, '');
			}
		}
		this.displayCalendar();
		try {
			for (var i=0; i<this.yearSelect.options.length; i++) {
				if (this.yearSelect.options[i].value == this.year) {
					this.yearSelect.selectedIndex = i;
				}
			}
		}
		catch (e) {}
		try {
			for (var i=0; i<this.monthSelect.options.length; i++) {
				if (this.monthSelect.options[i].value == this.month) {
					this.monthSelect.selectedIndex = i;
				}
			}
		}
		catch (e) {}
		this.selectDay_pointer(parseInt(this.day));
	}

	this.displayCalendar = function() {
		year = this.year;
		month = this.month;
		day = this.day;

		if (month[0] == "0") month = month.substring(1);
		month = parseInt(month);
		month--;
		year = parseInt(year);
		var days = this.getDaysInMonth(month, year);
		if (days < this.day) {
			this.day = days;
			day = this.day;
		}
		var firstOfMonth = new Date(year, month, 1);
		var startingPos = firstOfMonth.getDay() - 1;
		if (startingPos == -1) startingPos = 6;
		var str = "";
		days += startingPos;
	
		// bevezeto ures mezok
		var st;
		var border;
		var calendar = document.getElementById("naptar0_napok");

		calendar.innerHTML = '';
		var calTable = document.createElement('table');
		calTable.cellSpacing = "0";
		calTable.className = "caltable_days";
		calendar.appendChild(calTable);

		var calTBody = document.createElement('tbody');
		calTable.appendChild(calTBody);
		
		var row;
		
		for (var i=0; i<7; i++) {
			if (i%7 == 0) {
				row = document.createElement('tr');
				calTBody.appendChild(row);
			}
			var cell = document.createElement('td');
			row.appendChild(cell);
			
			cell.className = 'nap_cim';
			switch (i) {
				case 0: cell.innerHTML = LANG['CALENDAR_DAY_1_SHORT']; break;
				case 1: cell.innerHTML = LANG['CALENDAR_DAY_2_SHORT']; break;
				case 2: cell.innerHTML = LANG['CALENDAR_DAY_3_SHORT']; break;
				case 3: cell.innerHTML = LANG['CALENDAR_DAY_4_SHORT']; break;
				case 4: cell.innerHTML = LANG['CALENDAR_DAY_5_SHORT']; break;
				case 5: cell.innerHTML = LANG['CALENDAR_DAY_6_SHORT']; break;
				case 6: cell.innerHTML = LANG['CALENDAR_DAY_7_SHORT']; break;
			}
		}
		
		var calTable = document.createElement('table');
		calTable.cellSpacing = "1";
		calTable.className = "caltable_cal";
		calendar.appendChild(calTable);
		
		var calTBody = document.createElement('tbody');
		calTable.appendChild(calTBody);
	
		var dayType = '';
		for (var i=0; i<startingPos; i++) {
			if (i%7 == 0) {
				row = document.createElement('tr');
				calTBody.appendChild(row);
			}
			var cell = document.createElement('td');
			row.appendChild(cell);
			
			cell.className = 'nap empty';
			cell.innerHTML = "<div>&nbsp;</div>";
		}

		for (; i < days; i++) {
			if (i%7 == 0) {
				row = document.createElement('tr');
				calTBody.appendChild(row);
			}
			var day = i - startingPos + 1;
	
			var cell = document.createElement('td');
			row.appendChild(cell);
			
			this.days[i+1-startingPos].node = cell;
			try {
				cell.className = 'nap '+this.days[i+1-startingPos].type;
			}
			catch (e) {
				cell.className = 'nap';
			}
			cell.innerHTML = "<div id='cal_day_"+(i+1-startingPos)+"' onclick='cal.selectDay("+(i+1-startingPos)+");' style=\"cursor: pointer;\">"+day+"</div>";
		}

		var rest = 6 - (days-1) % 7;
		for (var i=0; i<rest; i++) {
			var cell = document.createElement('td');
			row.appendChild(cell);
			
			cell.className = 'nap empty';
			cell.innerHTML = "<div>&nbsp;</div>";
		}
	}
	
	this.changeYear = function(year) {
		this.year = year;
		this.setDate(null, null, null);
	}
	
	this.changeMonth = function(month) {
		this.month = month;
		this.setDate(null, null, null);
	}
	
	this.setCurrentDate = function() {
		var now = new Date();
		this.setDate(now.getFullYear(), now.getMonth()+1, now.getDate());
	}
	
	this.getDaysInMonth = function(month, year) {
		var days;
		if (month==0 || month==2 || month==4 || month==6 || month==7 || month==9 || month==11) {
			days=31;
		} else if (month==3 || month==5 || month==8 || month==10) {
			days=30;
		} else if (month==1) {
			if (this.isLeapYear(year)) {
				days=29;
			} else {
				days=28;
			}
		}
		return days;
	}
	
	this.isLeapYear = function(Year) {
		if (((Year % 4)==0) && ((Year % 100)!=0) || ((Year % 400)==0)) {
			return (true);
		} else {
			return (false);
		}
	}
}
// --- end - eventcalendar ---------------------------

function vote_stars(rate,inside) {
	for (i=1;6>i;i++) {
		if (inside==1) {
			if (i>rate) {
				document.getElementById('votestars'+i).src='/img/stars2.png';
			}
			else {
				document.getElementById('votestars'+i).src='/img/stars1.png';
			}					
		}
		else {
			if (i>document.getElementById('articlevotenr').value) {
				document.getElementById('votestars'+i).src='/img/stars2.png';
			}
			else {
				document.getElementById('votestars'+i).src='/img/stars1.png';
			}
		}
	}
}