var isIE=(navigator.appName=='Microsoft Internet Explorer');
imageWindow=false;
imageWindowObj=window;
imageWindowImage='';
imageWindowTitle='';
var userAgent=navigator.userAgent.toLowerCase();
var tableRowDisplayType=((userAgent.indexOf('msie')+1)?'block':'table-row');
var tableDisplayType=((userAgent.indexOf('msie')+1)?'block':'table');

String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g, ""); };
String.prototype.ltrim = function() { return this.replace(/\s*((\S+\s*)*)/, "$1"); };
String.prototype.rtrim = function() { return this.replace(/((\s*\S+)*)\s*/, "$1"); };

Array.prototype.inArray = function(searchTerm)
{
	var i = this.length;

	if (i > 0)
	{
		do
		{
			if (this[i] === searchTerm)
			{
				return true;
			}
		} while (i--);
	}
	return false;
}

Array.prototype.inArrayAssoc = function(searchTerm)
{
	var i = this.length;
	var item;
	var key;

	if (i > 0)
	{
		for (key in this)
		{
			item=this[key];
			if (typeof(item)!='function' && item===searchTerm)
			{
				return true;
			}
		}
	}
	return false;
}

function viewImage(imageSrc,title)
{
	if (typeof(title)=='undefined')
	{
		title='';
	}

	newImageSrc=imageSrc.substr(0,imageSrc.lastIndexOf('.'))+'_large'+imageSrc.substr(imageSrc.lastIndexOf('.'),imageSrc.length-imageSrc.lastIndexOf('.'));
	imageWindowTitle=title;
	imageWindowObj=window;
	imageWindowImage=new Image;
	imageWindowImage.onload=function () { openImage(); }
	imageWindowImage.src=newImageSrc;
}

function viewGalleryImage(imageSrc,title)
{
	if (typeof(title)=='undefined')
	{
		title='';
	}

	imageWindowTitle=title;
	imageWindowObj=window;
	imageWindowImage=new Image;
	imageWindowImage.onload=function () { openImage(); }
	imageWindowImage.src=imageSrc;
}

function openImage()
{
	windowScroll='no';
	imageWindowImage.onload=function () { }
	if (imageWindowImage.width>screen.width)
	{
		windowWidth=screen.width-20;
		windowScroll='yes';
	}
	else
	{
		windowWidth=imageWindowImage.width;
	}

	if (imageWindowImage.height>screen.height)
	{
		windowHeight=screen.height-20;
		windowScroll='yes';
	}
	else
	{
		windowHeight=imageWindowImage.height;
	}

	if (imageWindow)
	{
		imageWindow.close();
	}
	windowX=(screen.width-windowWidth)/2;
	windowY=(screen.height-windowHeight)/2;

	imageWindow=window.open("","imageWindow","width="+windowWidth+",height="+windowHeight+",top="+windowY+",left="+windowX+",toolbar=no,location=no,resizable="+windowScroll+",status=no,menubar=no,scrollbars="+windowScroll+",fullscreen=no");
//	imageWindow=imageWindowObj.open("","imageWindow","width=100,height=100,top=2,left=2,toolbar=no,location=no,resizable=no,status=no,menubar=no,scrollbars=no,fullscreen=no");
	if (imageWindow==null)
	{
		alert('Sajnos nem tudom megjeleníteni a kívánt képet mert a böngészőprogramja blokkolja az ablak létrehozást! Kérem engedélyezze jelen oldal számára a felugró ablakokat.');
		return;
	}
	imageWindow.document.open();
	imageWindow.document.write('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">');
	imageWindow.document.write('<html><head><title>'+imageWindowTitle+'</title></head>');
	imageWindow.document.write('<body style="margin:0px;">');
	imageWindow.document.write('<a href="javascript:window.close();"><img src="'+imageWindowImage.src+'" border="0" alt="'+imageWindowTitle+'" title="'+imageWindowTitle+'"></a>');
	imageWindow.document.write('</body></html>');
	imageWindow.document.close();
}


function initIndicator(imageSrc)
{
	imageWindowImage=new Image;
	imageWindowImage.onload=function () { showIndicator(); }
	imageWindowImage.src=imageSrc;
}


function showIndicator()
{
	imageWindowImage.onload=function () { }
	addMask();

	var pageInfo=getPageInfo();
	var middleX=Math.floor((pageInfo.windowWidth-imageWindowImage.offsetWidth)/2);
	var middleY=Math.floor((pageInfo.windowHeight-imageWindowImage.offsetHeight)/2);

	var indicator=document.createElement("img");
	indicator.src=imageWindowImage.src;
	indicator.style.position='absolute';
	indicator.style.left=middleX+'px';
	indicator.style.top=middleY+'px';
	indicator.style.zIndex=103;
	indicator.id='ppeIndicator';
	document.body.appendChild(indicator);
}


function getStyleAttributeValue(obj,attributeName)
{
	var attributeValue;

	if (isIE)
	{
		attributeValue=obj.currentStyle[attributeName];
	}
	else
	{
		attributeValue=eval('obj.style.'+attributeName);
	}
	return attributeValue;
}


function getObjXY(Obj)
{
	var Cord,leftpos,toppos,aTag,IE;

	if (typeof(Obj)!='object')
	{
		Obj=document.getElementById(Obj);
	}

	var IE=(typeof(Obj.currentStyle)!='undefined');
	var Cord=new Array();
	var leftpos=Obj.offsetLeft;
	var toppos=Obj.offsetTop;
	
	if ((IE?Obj.currentStyle['position']:Obj.style.position)!='absolute')
	{
		aTag=Obj;
		do
		{
			aTag=aTag.offsetParent;
			leftpos += aTag.offsetLeft;
			toppos += aTag.offsetTop;
			if (aTag.style.position=='absolute')
			{
				leftpos -= aTag.offsetLeft;
				toppos -= aTag.offsetTop;
				break;
			}
		} while(aTag.tagName!="BODY" && aTag.tagName!="HTML" && (IE?aTag.currentStyle['position']:aTag.style.position) == 'static');
	}
	Cord[0]=leftpos;
	Cord[1]=toppos;
	return Cord;
}


function getDocHeight()
{
	return (typeof(window.innerHeight)!='undefined'?window.innerHeight:document.body.clientHeight);
}


function getPageInfo(w)
{
	var xScroll, yScroll;
	var windowWidth, windowHeight;
	var pageHeight, pageWidth;

	if (typeof(w)=='undefined')
	{
		w=window;
	}

	if (w.innerHeight && w.scrollMaxY)
	{
		xScroll = w.document.body.scrollWidth;
		yScroll = w.innerHeight + w.scrollMaxY;
	}
	else if (w.document.body.scrollHeight > w.document.body.offsetHeight)	 // all but Explorer Mac
	{
		xScroll = w.document.body.scrollWidth;
		yScroll = w.document.body.scrollHeight;
	}
	else
	{ // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = w.document.body.offsetWidth;
		yScroll = w.document.body.offsetHeight;
	}

	if (self.innerHeight)
	{	// all except Explorer
		windowWidth = self.innerWidth;
		windowHeight = self.innerHeight;
	}
	else if (w.document.documentElement && w.document.documentElement.clientHeight)
	{ // Explorer 6 Strict Mode
		windowWidth = w.document.documentElement.clientWidth;
		windowHeight = w.document.documentElement.clientHeight;
	}
	else if (w.document.body)
	{ // other Explorers
		windowWidth = w.document.body.clientWidth;
		windowHeight = w.document.body.clientHeight;
	}

	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight)
	{
		pageHeight = windowHeight;
	}
	else
	{
		pageHeight = yScroll;
	}

	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth)
	{
		pageWidth = windowWidth;
	}
	else
	{
		pageWidth = xScroll;
	}

	return {pageWidth:pageWidth, pageHeight:pageHeight, windowWidth:windowWidth, windowHeight:windowHeight, scrollX:xScroll, scrollY:yScroll};
}


function setScrollToMiddle(obj)
{
	if (typeof(obj)!='object')
	{
		obj=document.getElementById(obj);
	}

	switch(obj.tagName.toLowerCase())
	{
		case 'select':
		if (obj.selectedIndex==-1 || isIE)
			{
				return true;
			}

			var itemHeight=obj.scrollHeight/obj.options.length;
			var scrollMiddle=Math.floor(obj.selectedIndex*itemHeight-(obj.clientHeight/2)+(itemHeight/2));

			if (scrollMiddle<1)
			{
				scrollMiddle=0;
			}

			if (scrollMiddle>obj.scrollHeight-obj.clientHeight)
			{
				scrollMiddle=obj.scrollHeight-obj.clientHeight;
			}
			obj.scrollTop=scrollMiddle;
			break;
	}

	return true;
}

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


function attachToEvent(obj,eventName,func)
{
	if(obj.addEventListener)
	{
		obj.addEventListener(eventName,func,false);
	}
	else
	{
		if(obj.attachEvent)
		{
			obj.attachEvent('on'+eventName,func);
		}
	}
}


function addFlash(contentId,content)
{
	var index;

	if (typeof(__objectContent)=='undefined')
	{
		__objectContent=new Array();
	}
	index=__objectContent.length;
	__objectContent[index]=new Array();
	__objectContent[index]['id']=contentId;
	__objectContent[index]['content']='type="application/x-shockwave-flash" '+content;
}

function addObject(contentId,content)
{
	var index;

	if (typeof(__objectContent)=='undefined')
	{
		__objectContent=new Array();
	}
	index=__objectContent.length;
	__objectContent[index]=new Array();
	__objectContent[index]['id']=contentId;
	__objectContent[index]['content']=content;
}


function putObject()
{
	var i;

	if (typeof(__objectContent)=='undefined' || __objectContent.length<1)
	{
		return;
	}
	for (i=0;i<__objectContent.length;i++)
	{
		document.getElementById(__objectContent[i]['id']).innerHTML='<object " '+__objectContent[i]['content']+'</object>';
	}
}

attachToEvent(window,'load',putObject);


function getElementsByClassName(oElm, strTagName, oClassNames)
{
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	var arrRegExpClassNames = new Array();
	if(typeof oClassNames == "object")
	{
		for(var i=0; i<oClassNames.length; i++)
		{
			arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames[i].replace(/\-/g, "\\-") + "(\\s|$)"));
		}
	}
	else
	{
		arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames.replace(/\-/g, "\\-") + "(\\s|$)"));
	}
	var oElement;
	var bMatchesAll;
	for(var j=0; j<arrElements.length; j++)
	{
		oElement = arrElements[j];
		bMatchesAll = true;
		for(var k=0; k<arrRegExpClassNames.length; k++){
			if(!arrRegExpClassNames[k].test(oElement.className))
			{
				bMatchesAll = false;
				break;
			}
		}
		if(bMatchesAll)
		{
			arrReturnElements.push(oElement);
		}
	}
	return (arrReturnElements)
}


function resetFileInput(formObj)
{
	var origValue= new Array();
	var index;

	for (index=0;index<formObj.elements.length;index++)
	{
		origValue[index]=new Array();
		origValue[index][0]=formObj.elements[index].type;
		origValue[index][1]=formObj.elements[index].value;
		if (origValue[index][0]!='file' && origValue[index][0]!='submit' && origValue[index][0]!='reset')
		{
			origValue[index][2]=formObj.elements[index].disabled;
		}
		if (origValue[index][0]=='radio')
		{
			origValue[index][3]=formObj.elements[index].checked;
		}
	}
	formObj.reset();
	for (index=0;index<formObj.elements.length;index++)
	{
		if (origValue[index][0]!='file' && origValue[index][0]!='submit' && origValue[index][0]!='reset')
		{
			formObj.elements[index].value=origValue[index][1];
			formObj.elements[index].disabled=origValue[index][2];
			if (origValue[index][0]=='radio')
			{
				formObj.elements[index].checked=origValue[index][3];
			}
		}
	}
}


function collectInputIds(obj)
{
	var ids=new Array();
	var inputs;
	var index;

	inputs=obj.getElementsByTagName('input');
	for (index in inputs)
	{
		if (typeof(inputs[index])!='undefined' && inputs[index].id!=null && inputs[index].id!='')
		{
			ids.push(inputs[index].id);
		}
	}

	inputs=obj.getElementsByTagName('select');
	for (index in inputs)
	{
		if (typeof(inputs[index])!='undefined' && inputs[index].id!=null && inputs[index].id!='')
		{
			ids.push(inputs[index].id);
		}
	}

	inputs=obj.getElementsByTagName('button');
	for (index in inputs)
	{
		if (typeof(inputs[index])!='undefined' && inputs[index].id!=null && inputs[index].id!='')
		{
			ids.push(inputs[index].id);
		}
	}

	return ids;
}


function dissableInputs(formObj,except)
{
	var index;

	if (typeof(except)!='undefined' && except.length>0)
	{
		for (index=0;index<formObj.elements.length;index++)
		{
			if (typeof(formObj.elements[index].originalDisabled)=='boolean' || typeof(formObj.elements[index].id)!='undefined' && except.inArray(formObj.elements[index].id))
			{
				continue;
			}
			formObj.elements[index].originalDisabled=formObj.elements[index].disabled;
			formObj.elements[index].disabled=true;
		}
	}
	else
	{
		for (index=0;index<formObj.elements.length;index++)
		{
			if (typeof(formObj.elements[index].originalDisabled)=='boolean')
			{
				continue;
			}
			formObj.elements[index].originalDisabled=formObj.elements[index].disabled;
			formObj.elements[index].disabled=true;
		}
	}
}


function enableInputs(formObj,except)
{
	var index;

	if (typeof(except)!='undefined' && except.length>0)
	{
		for (index=0;index<formObj.elements.length;index++)
		{
			if (typeof(formObj.elements[index].id)=='undefined' && except.inArray(formObj.elements[index].id) || typeof(formObj.elements[index].originalDisabled)!='boolean')
			{
				continue;
			}
			formObj.elements[index].disabled=formObj.elements[index].originalDisabled;
			formObj.elements[index].originalDisabled=null;
		}
	}
	else
	{
		for (index=0;index<formObj.elements.length;index++)
		{
			if (typeof(formObj.elements[index].originalDisabled)!='boolean')
			{
				continue;
			}
			formObj.elements[index].disabled=formObj.elements[index].originalDisabled;
			formObj.elements[index].originalDisabled=null;
		}
	}
}


function getCheckedRadioValue(radioObj)
{
	if (typeof(radioObj)!='object')
	{
		return false;
	}

	var radioLength=radioObj.length;

	if(radioLength==undefined)
	{
		if(radioObj.checked)
		{
			return radioObj.value;
		}
		else
		{
			return null;
		}
	}

	for(var i=0;i<radioLength;i++)
	{
		if(radioObj[i].checked)
		{
			return radioObj[i].value;
		}
	}
	return null;
}

function setRadioValue(radioObj,newValue)
{
	if (typeof(radioObj)!='object')
	{
		return false;
	}

	var radioLength=radioObj.length;
	newValue=newValue.toString();

	if(radioLength==undefined)
	{
		radioObj.checked=(radioObj.value==newValue);
		return;
	}

	for(var i=0; i<radioLength;i++)
	{
		radioObj[i].checked=false;
		if(radioObj[i].value==newValue)
		{
			radioObj[i].checked=true;
		}
	}
}


function objInDocument(obj)
{
	var testObj;
	var id;
	var setId;
	var result;

	obj.objInDocument='objInDocument';
	setId=(typeof(obj.id)!='string');

	if (setId)
	{
		id='objInDocument';
		obj.id=id;
		setId=true;
	}
	else
	{
		id=obj.id;
		setId=false;
	}

	testObj=document.getElementById(obj.id);
	if(!(typeof(testObj)!='undefined' && testObj!=null && typeof(testObj.objInDocument)!='undefined' && typeof(testObj.objInDocument)!='null' && testObj.objInDocument=='objInDocument'))
	{
		result=false;
	}
	else
	{
		result=true;
	}

	if (setId)
	{
		obj.id=null;
	}
	obj.objInDocument=null;
	return result;
}


function cleanOptions(obj)
{
	var index;

	if (typeof(obj)!='object')
	{
		obj=$(obj);
	}

	obj.selectedIndex=-1;
	if (obj.options.length>0)
	{
		for (index=(obj.options.length-1);index>=0;index--)
		{
			obj.options[index]=null;
		}
	}
}


function removeOption(obj,index)
{
	if (typeof(obj)!='object')
	{
		obj=$(obj);
	}

	if (typeof(obj.options[index])!='undefined')
	{
		if (objInDocument(obj))
		{
			obj.options[index]=null;
		}
		else
		{
			opener.document.getElementById(obj.id).remove(index);
		}
	}
}


function removeSelectedOptions(obj)
{
	var index=0;
	if (typeof(obj)!='object')
	{
		obj=$(obj);
	}

	for (index=(obj.options.length-1);index>=0;index--)
	{
		if (obj.options[index].selected==true)
		{
			removeOption(obj,index);
		}
	}
}

function removeOptionByValue(obj,value)
{
	var index=0;
	if (typeof(obj)!='object')
	{
		obj=$(obj);
	}

	for (index=(obj.options.length-1);index>=0;index--)
	{
		if (obj.options[index].value==value)
		{
			removeOption(obj,index);
		}
	}
}


function addOptionItems(obj,items)
{
	var index=0;
	if (typeof(obj)!='object')
	{
		obj=$(obj);
	}

	foreach(items,
		function(item,index)
		{
			obj.options[obj.options.length]=new Option(item,index,false,false);
		}
	);
}


function addOptionItem(obj,text,value,defaultSelected,selected)
{
	if (typeof(obj)!='object')
	{
		obj=$(obj);
	}
	if (typeof(defaultSelected)!='undefined')
	{
		defaultSelected=false;
	}
	if (typeof(selected)!='undefined')
	{
		selected=false;
	}

	if (objInDocument(obj))
	{
		obj.options[obj.options.length]=new Option(text,value,defaultSelected,selected);
	}
	else
	{
		if (typeof(document.all)!='undefined')
		{
			var newOption=opener.document.createElement("option");
			newOption.value=value;
			newOption.text=text;
			newOption.defaultSelected=defaultSelected;
			newOption.selected=selected;
			obj.add(newOption);
		}
		else
		{
			obj.options[obj.options.length]=new Option(text,value,defaultSelected,selected);
		}
	}
}


function addUniqueOptionItem(obj,text,value,defaultSelected,selected)
{
	var index=0;
	var unique=true;

	if (typeof(obj)!='object')
	{
		obj=$(obj);
	}

	for (index=(obj.options.length-1);index>=0;index--)
	{
		if (obj.options[index].value==value)
		{
			unique=false;
			break;
		}
	}

	if(unique)
	{
		addOptionItem(obj,text,value,defaultSelected,selected);
		return true;
	}
	return false;
}


function copySelectedOptionItems(sourceObj,targetObj,_unique)
{
	var unique=false;
	var index=0;

	if (typeof(sourceObj)!='object')
	{
		sourceObj=$(sourceObj);
	}
	if (typeof(targetObj)!='object')
	{
		targetObj=$(targetObj);
	}
	if (typeof(_unique)!='undefined')
	{
		unique=_unique;
	}

	if (sourceObj.options.length>0)
	{
		for (index=0;index<sourceObj.options.length;index++)
		{
			if (unique)
			{
				addUniqueOptionItem(targetObj,sourceObj.options[index].text,sourceObj.options[index].value,false,sourceObj.options[index].selected);
			}
			else
			{
				addOptionItem(targetObj,sourceObj.options[index].text,sourceObj.options[index].value,false,sourceObj.options[index].selected);
			}
		}
	}
}


function moveSelectedOptionItems(sourceObj,targetObj,_unique)
{
	var unique=false;
	var index=0;

	if (typeof(sourceObj)!='object')
	{
		sourceObj=$(sourceObj);
	}
	if (typeof(targetObj)!='object')
	{
		targetObj=$(targetObj);
	}
	if (typeof(_unique)!='undefined')
	{
		unique=_unique;
	}
	copySelectedOptionItems(sourceObj,targetObj,unique);
	removeSelectedOptions(sourceObj);
}


function getSelectedOptionValue(obj)
{
	var result='';
	var index=0;

	if (typeof(obj)!='object')
	{
		obj=$(obj);
	}

	if (obj.options.length>0)
	{
		for (index=(obj.options.length-1);index>=0;index--)
		{
			if (obj.options[index].selected==true)
			{
				result+=obj.options[index].value+',';
			}
		}
	}

	if (result!='')
	{
		result=result.substr(0,result.length-1);
	}
	return result;
}


function getSelectedOptionTitle(obj)
{
	var result='';
	var index=0;

	if (typeof(obj)!='object')
	{
		obj=$(obj);
	}

	if (obj.options.length>0)
	{
		for (index=(obj.options.length-1);index>=0;index--)
		{
			if (obj.options[index].selected==true)
			{
				result+=obj.options[index].text+',';
			}
		}
	}

	if (result!='')
	{
		result=result.substr(0,result.length-1);
	}
	return result;
}


function selectAllOptions(obj)
{
	var index=0;

	if (typeof(obj)!='object')
	{
		obj=$(obj);
	}

	if (obj.options.length>0)
	{
		for (index=(obj.options.length-1);index>=0;index--)
		{
			obj.options[index].selected=true;
		}
	}
}


function selectOptionsByValue(obj,values)
{
	var index=0;

	if (typeof(obj)!='object')
	{
		obj=$(obj);
	}

	if (obj.options.length>0)
	{
		for (index=(obj.options.length-1);index>=0;index--)
		{
			if (values.inArray(obj.options[index].value)==true)
			{
				obj.options[index].selected=true;
			}
		}
	}
}


function selectOptionItemByValue(obj,selectedValue)
{
	var optionIndex=0;
	if (typeof(obj)!='object')
	{
		obj=$(obj);
	}
	if (obj.options.length==0)
	{
		return;
	}

	for (optionIndex=0;optionIndex<obj.options.length;optionIndex++)
	{
		if (obj.options[optionIndex].value==selectedValue)
		{
			obj.options[optionIndex].selected=true;
		}
	}
}

function selectOptionItemByText(obj,text)
{
	var optionIndex=0;
	if (typeof(obj)!='object')
	{
		obj=$(obj);
	}
	if (obj.options.length==0)
	{
		return;
	}

	for (optionIndex=0;optionIndex<obj.options.length;optionIndex++)
	{
		if (obj.options[optionIndex].text==text)
		{
			obj.options[optionIndex].selected=true;
		}
	}
}

function foreach(variable,_function)
{
	var key;
	var item;

	for (key in variable)
	{
		item=variable[key];
		if (typeof(item)!='function')
		{
			_function(item,key);
		}
	}
}

function isValidDate(year,month,day)
{
	var dt=new Date(parseFloat(year),parseFloat(month)-1,parseFloat(day),0,0,0,0);

	if (parseFloat(day)!=dt.getDate())
	{
		return false;
	}
	if (parseFloat(month)-1!=dt.getMonth())
	{
		return false;
	}
	return true;
}

function formatNumber(number)
{
	var decimalSeparator=',';
	var thousandSeparator='.';
	var i,piece,offset,result;

	if (number=='' || number=='0')
	{
		return 0;
	}

	number=number+'';
	number=number.replace(new RegExp('[\\'+thousandSeparator+']*', "g"),'').split(decimalSeparator);
	number[0]=number[0].replace(/^0[0]*/,'');

	piece=Math.floor(number[0].length/3);
	offset=number[0].length%3;
	result=number[0].substr(0,offset)+(offset>0 && number[0].length>3?thousandSeparator:'');
	for (i=0; i<piece; i++)
	{
		result=result+number[0].substr(offset+i*3,3)+(i!=(piece-1)?thousandSeparator:'');
	}
	number=result+(typeof(number[1])!='undefined' && number[1]!=''?decimalSeparator+number[1]:'');
	return number;
}

function onEvent_formatNumber()
{
	var decimalSeparator=',';
	var thousandSeparator='.';
	var number,i,piece,offset,result;

	if (this.value=='' || this.value=='0')
	{
		return;
	}

	number=this.value.replace(new RegExp('[\\'+thousandSeparator+']*', "g"),'').split(decimalSeparator);
	number[0]=number[0].replace(/^0[0]*/,'');

	if (typeof(this.originalMaxLenght)!='undefined' && this.originalMaxLenght<number[0].length)
	{
		number[0]=number[0].substr(0,this.originalMaxLenght);
	}

	piece=Math.floor(number[0].length/3);
	offset=number[0].length%3;
	result=number[0].substr(0,offset)+(offset>0 && number[0].length>3?thousandSeparator:'');
	for (i=0; i<piece; i++)
	{
		result=result+number[0].substr(offset+i*3,3)+(i!=(piece-1)?thousandSeparator:'');
	}
	this.value=result+(typeof(number[1])!='undefined' && number[1]!=''?decimalSeparator+number[1]:'');
}

function initFormatedFields(fields)
{
	var key,field;

	if (fields.length<1)
	{
		return true;
	}
	for (key=0;key<fields.length;key++)
	{
		field=document.getElementById(fields[key]);
		if (field.maxLength>3)
		{
			field.originalMaxLenght=field.maxLength;
			if (field.size==field.maxLength)
			{
				field.size=field.maxLength+(Math.floor(field.maxLength/3));
			}
			field.maxLength=field.maxLength+(Math.floor(field.maxLength/3));
			field.onkeyup=onEvent_formatNumber;
			field.onblur=onEvent_formatNumber;
			field.onblur();
		}
	}
}

function removeFormat(fields)
{
	var thousandSeparator='.';
	var key,field;

	if (fields.length<1)
	{
		return true;
	}
	for (key=0;key<fields.length;key++)
	{
		field=document.getElementById(fields[key]);
		field.value=field.value.replace(new RegExp('[\\'+thousandSeparator+']*', "g"),'');
	}
}


function initTRHover()
{
	if (isIE)
	{
		var rows=document.getElementsByTagName('tr');
		var i;
		var rowType;

		for (i=0;i<rows.length;i++)
		{
			if (rows[i].className.substr(0,3)=='Odd')
			{
				rows[i].onmouseover=function() { this.className+=' OddHover'; }
				rows[i].onmouseout=function() { this.className=this.className.replace(' OddHover',''); }
			}
			else
			{
				if (rows[i].className.substr(0,4)=='Even')
				{
					rows[i].onmouseover=function() { this.className+=' EvenHover'; }
					rows[i].onmouseout=function() { this.className=this.className.replace(' EvenHover',''); }
				}
			}
		}
	}
}


function delayedEnable(obj,delay,disabledClass,enabledClass)
{
	if (typeof(obj)!='object')
	{
		obj=$(obj);
	}

	var oldDelayText=' ['+delay+']';
	var originalLength=obj.textContent.length-oldDelayText.length;

	delay--;

	if (delay>0)
	{
		obj.textContent=obj.textContent.substr(0,originalLength)+' ['+delay+']';
		setTimeout('delayedEnable("'+obj.id+'",'+delay+',"'+disabledClass+'","'+enabledClass+'")',1000);
	}
	else
	{
		obj.textContent=obj.textContent.substr(0,originalLength);
		originalLength=obj.className.length-(disabledClass.length+1);
		obj.className=obj.className.substr(0,originalLength)+(enabledClass!=''?' '+enabledClass:'');
		obj.disabled=false;
	}
}

function initDelayedEnable(obj,delay,disabledClass,enabledClass)
{
	if (typeof(obj)!='object')
	{
		obj=$(obj);
	}

	obj.disabled=true;
	obj.className=obj.className+' '+disabledClass;
	obj.textContent=obj.textContent+' ['+delay+']'
	setTimeout('delayedEnable("'+obj.id+'",'+delay+',"'+disabledClass+'","'+enabledClass+'")',1000);
}


function classExist(obj,_className)
{
	var i
	var classList;

	if (typeof(obj)!='object')
	{
		obj=$(obj);
	}

	classList=obj.className.split(" ");

	for (i=0;i<classList.length;i++)
	{
		if (classList[i]==_className)
		{
			return true;
		}
	}

	return false;
}


function removeClass(obj,_className)
{
	var i;
	var newClassList;
	var currentClassList;

	if (obj.className==null)
	{
		return;
	}

	newClassList=new Array();
	currentClassList=obj.className.split(" ");

	for (i=0;i<currentClassList.length;i++)
	{
		if (currentClassList[i]!=_className)
		{
			newClassList.push(currentClassList[i]);
		}
	}
	obj.className=newClassList.join(" ");
}


function Ajax()
{
	this.xmlHttp=null;
	this.url='';			// Küldés helye
	this.params='';			// Küldendő paraméterek
	this.mode='POST';		// Adatküldés módja POST / GET

	this.create=function ()
	{
		try
		{
			if (window.XMLHttpRequest)
			{
				this.xmlHttp=new XMLHttpRequest();

				if (this.xmlHttp.readyState==null)	// Bizonyos Mozzila verzióknál nincs readyState tulajdonság ezért bevezetünk ekkor.
				{
					this.xmlHttp.readyState=1;
					this.xmlHttp.addEventListener("load",function () 
						{
							this.xmlHttp.readyState=4;
							if (typeof(this.xmlHttp.onreadystatechange)=="function")
							{
								this.xmlHttp.onreadystatechange();
							}
						},false);
				}

				return true;
			}
			if (window.ActiveXObject)
			{
				var prefix=false;

				if (getXmlHttpPrefix.prefix)
				{
					prefix=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");
							prefix=prefixes[i];
						}
						catch (ex) {};

						if (prefix!=false)
						{
							break;
						}
					}

				if (prefix==false)
				{
					throw new Error("Could not find an installed XML parser");
					return false;
				}

				this.xmlHttp=new ActiveXObject(prefix+".XmlHttp");
				return true;
			}
		}
		catch (ex) {}
		return false;		// A böngésző nem támogatja az XML HTTP Request-et
	};

	this.query=function (url,params)
	{
		this.url=url;
		this.params=params;

		if (this.xmlHttp==null)
		{
			if (!this.create())
			{
				response={'error':true,'result':"Sajnálom, de az Ön böngészője nem támogatja az XML HTTP Request-et, ezért az oldal valószínűleg nem fog teljes funkcionalitással működni! Kérem szerezzen be egy modernebb böngészőprogramot, erre a célra a www.getfirefox.com -ot tudom Önnek ajánlani.",'command':'xmlHttp.create'};
			}
		}

		this.xmlHttp.open(this.mode,this.url,false);
		this.xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
		this.xmlHttp.send(this.params);

		var response;
		try
		{
			response=eval('(' + this.xmlHttp.responseText + ')')
		}
		catch (e)
		{
			response={'error':true,'result':'Hiba történt a válasz feldolgozása közben!','command':''};
		}
		return response;
	};
}


var maskCounter=-1;

function addMask(rootObj)
{
	var iframe;
	var div=document.createElement("div");

	maskCounter++;

	if (isIE)
	{
		iframe=document.createElement("iframe");
		iframe.id='mask'+maskCounter+'IFrame';
		iframe.style.zIndex=100+(maskCounter*3);
		iframe.className='MaskIFrame';
	}

	div.id='mask'+maskCounter+'Div';
	div.style.zIndex=100+(maskCounter*3)+1;
	div.className='MaskDiv';
	switch (maskCounter%3)
	{
		case 0:
			div.style.backgroundColor='rgb('+(maskCounter*10)+',0,0)';
			break;
		case 1:
			div.style.backgroundColor='rgb(0,'+(maskCounter*10)+',0)';
			break;
		case 2:
			div.style.backgroundColor='rgb(0,0,'+(maskCounter*10)+')';
			break;
	}

	var pageInfo=getPageInfo();
	div.style.width=pageInfo.pageWidth+'px';
	div.style.height=pageInfo.pageHeight+'px';

	if (typeof(rootObj)=='undefined')
	{
		if (isIE)
		{
			document.body.appendChild(iframe);
		}
		document.body.appendChild(div);
	}
	else
	{
		if (typeof(rootObj)!='object')
		{
			rootObj=document.getElementById(rootObj);
		}

		if (isIE)
		{
			rootObj.parentNode.insertBefore(iframe,rootObj); 
		}
		rootObj.parentNode.insertBefore(div,rootObj);
		rootObj.style.zIndex=100+(maskCounter*3)+2;
	}
	return true;
}


function removeMask()
{
	if (maskCounter<0)
	{
		return false;
	}

	var maskDiv=document.getElementById('mask'+maskCounter+'Div');

	if (isIE)
	{
		var maskIFrame=document.getElementById('mask'+maskCounter+'IFrame');
		maskIFrame.parentNode.removeChild(maskIFrame);
	}

	maskDiv.parentNode.removeChild(maskDiv);
	maskCounter--;
	return true;
}


var msgBoxCounter=0;

function msgBox(message,callBack,buttons)
{
	var div=document.createElement("div");
	var p=document.createElement("p");
	var button=document.createElement("button");
	
	msgBoxCounter++;

	div.id='msgBox'+msgBoxCounter
	div.className='MsgBox';
	div.style.zIndex=100+(maskCounter*3)+2;

	p.textContent=message;

	button.type='button';
	button.textContent='Ok';

	div.appendChild(p);
	div.appendChild(button);
	document.body.appendChild(div);

	if (typeof(callBack)!='undefined' && callBack!=null)
	{
		callBack();
	}
	document.body.removeChild(document.getElementById('mask'+maskCounter+'Div'));
}


function escapeString(value)
{
	if (/["\\\x00-\x1f]/.test(value))
	{
		value.replace(/[\x00-\x1f\\"]/g, function (a)
					{
						var c=m[a];
						if (c)
						{
							return c;
						}
						c=a.charCodeAt();
						return '\\u00'+Math.floor(c/16).toString(16)+(c%16).toString(16);
					})
	}
	return value;
}

function convertToJSON(value)
{
	var index;
	var length;

	switch (typeof(value))
	{
		case 'string':
		return '"'+escapeString(value)+'"';

	case 'number':
		return isFinite(value)?String(value):'null';

	case 'boolean':
		return String(value);

	case 'null':
		return 'null';

	case 'object':
		if (!value)
		{
			return 'null';
		}

		var a=[];
		var newValue;

		if (typeof(value.length)==='number' && !(value.propertyIsEnumerable('length')))
		{
			length=value.length;
			for (index=0;index<length;index++)
			{
				a.push(convertToJSON(value[index]) || 'null');
			}
			return '['+a.join(',')+']';
		}

		for (index in value)
		{
			if (typeof(index==='string'))
			{
				newValue=convertToJSON(value[index]);
				if (newValue)
				{
					a.push(convertToJSON(index)+':'+newValue);
				}
			}
		}

		return '{'+a.join(',')+'}';
	}
}


function arrayToQueryParams(_array)
{
	var a=[];
	var index;
	var value;

	for (index in _array)
	{
		if (typeof(index==='string'))
		{
			value=_array[index];
			switch (typeof(value))
			{
				case 'string':
				a.push(index+'='+escapeString(value));
				break;
			case 'number':
				a.push(index+'='+isFinite(value)?String(value):'null');
				break;
			case 'boolean':
				a.push(index+'='+String(value));
				break;
			case 'null':
				a.push(index+'=null');
				break;
			case 'object':
				break;
			}
		}
	}
		return a.join('&');
}

