﻿/***** Vars start *****/
var feedbackArr = new Object();
		feedbackArr["VALID_REQUIRED"]             = "A mező kitöltése kötelező!";
		feedbackArr["VALID_REQUIRED_RADIOGROUP"]  = "A csoportból legalább egy rádiógomb kiválasztása kötelező!";
		feedbackArr["VALID_REQUIRED_CHECKBOX"]  		 = "Az opció kiválasztása kötelező!";
		feedbackArr["VALID_REQUIRED_CHBOXGROUP"]  = "Az opciók közül legalább egy kiválasztása kötelező!";
		feedbackArr["VALID_OPTREQUIRED"]          = "A mezők közül az egyik kitöltése kötelező!";
		feedbackArr["VALID_CUSTOM_REGEXP"]        = "regexpes üzenet";
		feedbackArr["VALID_EMAIL"]                = "Kérjük csak valós e-mail címet írjon a mezőbe!";
		feedbackArr["VALID_MIN"]                  = "Kisebb számot adott meg, mint a minimum!";
		feedbackArr["VALID_MAX"]                  = "Maximumnál nagyobb";
		feedbackArr["VALID_TELZONE"]              = "Hibás körzetszám";
		feedbackArr["VALID_TELNUM"]               = "Hibás telefonszám";
		feedbackArr["VALID_OVER_MAX"]             = "Maximumnál nagyobb";
		feedbackArr["VALID_UNDER_MIN"]            = "Kisebb számot adott meg, mint a minimum!";
		feedbackArr["VALID_DATE"]                 = "Kérjük valós dátumot adjon meg!";
		feedbackArr["VALID_DT_LESS"]              = "A dátum, amit megadott, korábbi mint ";
		feedbackArr["VALID_DT_MORE"]              = "A dátum, amit megadott, későbbi mint ";
		feedbackArr["VALID_NUMBER"]               = "Kérjük csak számokat írjon be!";
		feedbackArr["VALID_ALPHA"]                = "Kérjük csak betűket használjon a mező kitöltésére!";
		feedbackArr["VALID_NOT_EQUAL_PASS"]       = "A két jelszó nem egyezik!";
		feedbackArr["VALID_DELETE_CONFIRM"]       = "Biztosan kiveszi a kosárból?";
		feedbackArr["VALID_ADDRESS_ZIPCODE"] 	  = "A irányítószám-mezőt nem jól töltötte ki!";
		feedbackArr["VALID_ADDRESS_STREET"]	      = "Az utca-mezőt nem jól töltötte ki!";
		feedbackArr["VALID_ADDRESS_STREET_NUM"]   = "A házszám-mezőt nem jól töltötte ki!";
		feedbackArr["VALID_ADDRESS_BUILDING"]     = "Az épület-mezőt nem jól töltötte ki!";
		feedbackArr["VALID_ADDRESS_STAIRWAY"]     = "Az lépcsőház-mezőt nem jól töltötte ki!";
		feedbackArr["VALID_ADDRESS_FLOOR"]        = "Az emelet-mezőt nem jól töltötte ki!";
		feedbackArr["VALID_ADDRESS_DOOR"]         = "Az ajtó-mezőt nem jól töltötte ki!";

		//rövid üzenetek
		feedbackArr["VALID_REQUIRED_short"]       = "kötelező";

		feedbackArr["VALID_NOT_EQUAL_PASS1"]      = "A két jelszó nem egyezik!";
		feedbackArr["VALID_MT_PASS"]    		  = "A jelszó nem megfelelő! A helyes formátum 5 szám.";
		feedbackArr["VALID_BANKACCOUNT"]    	  = "Bankszámlaszám nem megfelelő. Csak számok lehetnek benne és az első két mező kitöltése kötelező."
		feedbackArr["VALID_EMAIL_PREFIX"]         = "Kérjük csak valós e-mail előtagot írjon a mezőbe!";


var validRulesArr = new Object();
		//finished
		validRulesArr["VALID_REQUIRED"]           = '( $(this.elem).value == \'\' ) ? false : true';
		validRulesArr["VALID_REQUIRED_RADIOGROUP"]= 'radioGroupTest($(this.elem).name)';
		validRulesArr["VALID_REQUIRED_CHECKBOX"]		 = '$(this.elem).checked';
		validRulesArr["VALID_REQUIRED_CHBOXGROUP"]= 'chBGroupTest($(this.elem).name)';
		validRulesArr["VALID_OPTREQUIRED"]        = '(  (( ($(this.elem).value == \'\' ? false : true) ) || ( ($(\'{optreq}\').value == \'\' ? false : true) )) ? true : false)';
		validRulesArr["VALID_CUSTOM_REGEXP"]      = '/.test($(this.elem).value)';
		validRulesArr["VALID_EMAIL"]              = '/^[a-z0-9,!#\$%&\'\*\+/=\?\^_`\{\|}~-]+(\.[a-z0-9,!#\$%&\'\*\+/=\?\^_`\{\|}~-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*\.([a-z]{2,})$/.test($(this.elem).value)';
		validRulesArr["VALID_MIN"]                = '( ( ($(this.elem).value < {min}) ? false : true) && (($(this.elem).value == \'\') ? false : true) ? true : false)';
		validRulesArr["VALID_MAX"]                = '( ( ($(this.elem).value > {max}) ? false : true) && (($(this.elem).value == \'\') ? false : true) ? true : false)';
		validRulesArr["VALID_TELZONE"]            = 'zoneTest($(this.elem).value)';
		validRulesArr["VALID_TELNUM"]             = 'telNumTest($(this.elem).value)';
		validRulesArr["VALID_OVER_MAX"]           = 'c > {maxC}';
		validRulesArr["VALID_UNDER_MIN"]          = 'c < minC';
		validRulesArr["VALID_DATE"]               = 'validDate( $(this.elem) )';
		validRulesArr["VALID_DT_LESS"]            = 'validDtLess( $(this.elem), \'';
		validRulesArr["VALID_DT_MORE"]            = 'validDtMore( $(this.elem), \'';
		validRulesArr["VALID_NUMBER"]             = 'validateNumber($(this.elem))';
		validRulesArr["VALID_ALPHA"]              = '/^[a-zA-Z]+$/.test($(this.elem).value)';
		validRulesArr["VALID_NOT_EQUAL_PASS"]     = 'passA != passB';
		validRulesArr["VALID_owntext"]            = 'valami(param)';
		validRulesArr["VALID_ADDRESS"]            = 'validAddress( $(this.elem) )';
		validRulesArr["VALID_ADDRESS_ZIPCODE"]    = 'validAddressZipCode( $(this.elem) )';
		validRulesArr["VALID_ADDRESS_STREET"]	  = 'validAddressStreet( $(this.elem) )';
		validRulesArr["VALID_ADDRESS_STREET_NUM"] = 'validAddressStreetNum( $(this.elem) )';
		validRulesArr["VALID_ADDRESS_BUILDING"]   = 'validAddressBuilding( $(this.elem) )';
		validRulesArr["VALID_ADDRESS_STAIRWAY"]   = 'validAddressStairway( $(this.elem) )';
		validRulesArr["VALID_ADDRESS_FLOOR"]      = 'validAddressFloor( $(this.elem) )';
		validRulesArr["VALID_ADDRESS_DOOR"]       = 'validAddressDoor( $(this.elem) )';
		validRulesArr["VALID_NOT_EQUAL_PASS1"]    = 'validatePassword($(this.elem).name)';
		validRulesArr["VALID_MT_PASS"]  		  = 'validateMTPassword($(this.elem).name)';
		validRulesArr["VALID_BANKACCOUNT"] 		  = 'validateBankAccount($(this.elem).name)';
		validRulesArr["VALID_EMAIL_PREFIX"]		  = '/^[a-zA-Z]{1}[a-zA-Z0-9\._-]{0,249}$/.test($(this.elem).value)'

/***** Vars end *****/

/***** általános üzenetek megjelenítése (info, warning, error) start *****/

var MessageContainer = Class.create({
	initialize: function() {
		this.msgs = new Array();
		this.msgs["info"] = new Array();
		this.msgs["warn"] = new Array();
		this.msgs["error"] = new Array();

		this.msgs["info"]["header"] = new Array();
		this.msgs["info"]["header"][0] = '';

		this.msgs["warn"]["header"] = new Array();
		this.msgs["warn"]["header"][0] = '';

		this.msgs["error"]["header"] = new Array();
		this.msgs["error"]["header"][0] = '';
	},

	addInfo: function(msg) {
		this.msgs["info"][this.msgs["info"].length] = msg;
	},

	addWarn: function(msg) {
		this.msgs["warn"][this.msgs["warn"].length] = msg;
	},

	addError: function(msg) {
		this.msgs["error"][this.msgs["error"].length] = msg;
	},

	getInfo: function() {
		return this.msgs["info"];
	},

	getWarn: function() {
		return this.msgs["warn"];
	},

	getError: function() {
		return this.msgs["error"];
	},

	hasInfo: function() {
		return this.msgs["info"].length > 0;
	},

	hasWarn: function() {
		return this.msgs["warn"].length > 0;
	},

	hasError: function() {
		return this.msgs["error"].length > 0;
	}
});

function closeAllInputMsg() {
		var allInputById = new Array();
		var allInput = document.getElementsByTagName("INPUT");
		var formErrorDiv = $("formErrorMessages");
	if (formErrorDiv) {
		formErrorDiv.style.display = "none";
	}
		for (i=0; i<allInput.length; i++ ) {
				var divId = allInput[i].id + "Error";
				var divObj = $(divId);
				if ( divObj != null ) {
						divObj.insert("");
						divObj.hide();
				}
		}
}

function showAllMessages() {
		showMessages( mc, 'simpleMsgs' );
		showFormMessages( fmc, 'simpleMsgs' );
		var infoDiv = $("infoMessages");
	infoDiv.style.display = "block";
		var warnDiv = $("warnMessages");
	warnDiv.style.display = "block";
	var errorDiv = $("errorMessages");
	errorDiv.style.display = "block";
		var formErrorDiv = $("formErrorMessages");
	formErrorDiv.style.display = "block";
		var errorsUl = $("errorsUl");
	errorsUl.style.display = "block";
}

function buildMessageContainer(commonMessageContainer, messageContainerType) {
	switch (messageContainerType) {
				case 'info':
			var messageClass = 'feedBackToUser correct';
			var messageId = 'infoMessages';
			var messageHeaderId = 'infoHeader';
			var messageParagraphId = 'infoP';
			break;
		case 'warn':
			var messageClass = 'info';
			var messageId = 'warnMessages';
			var messageHeaderId = 'warnHeader';
			var messageParagraphId = 'warnP';
			break;
		case 'error':
			var messageClass = 'error';
			var messageId = 'errorMessages';
			var messageHeaderId = 'errorHeader';
			var messageParagraphId = 'errorP';
			break;
		case 'formError':
			var messageClass = 'error';
			var messageId = 'formErrorMessages';
			var messageHeaderId = 'formErrorHeader';
			var messageParagraphId = 'formErrorP';
			break;
		default:
			break;
	}

	var insertedMessageContainer = $E({
		tag: 'div',
		className: 'feedbackToUser ' + messageClass,
		id: messageId,
		children:{
			tag: 'div',
			className: 'content',
			children:[{
				tag: 'h2',
				id: messageHeaderId
			},{
				tag: 'p',
				id: messageParagraphId
			}]
		}
	});

	insertedMessageContainer.style.display = 'none';
	var messageContainer = $(commonMessageContainer);
	messageContainer.insert(insertedMessageContainer);

	if ( messageContainerType == 'error' || messageContainerType == 'formError') {
		switch (messageContainerType) {
			case 'error':
				var listId = 'errorsUl';
				var errorHeaderElement = $('errorHeader');
				break;
			case 'formError':
				var listId = 'formErrorsUl';
				var errorHeaderElement = $('formErrorHeader');
				break;
			default:
				break;
		}

		var errorList = $E({
			tag: 'ul',
			id: listId
		});


		errorHeaderElement.up().insert(errorList);
	}

	return insertedMessageContainer;
}

function showMessages(mcObj,id, clearThis) {
		if ( clearThis ) {
				closeAllMsgDiv();
				closeAllInputMsg();
		}
		var infoResult = "";
		var warnResult = "";
		var errorResult = "";

		if ( mcObj.hasInfo() ) {
				if ($('infoMessages') != null) {
						var removed = $('infoMessages').remove();
				}
				var infoDiv = buildMessageContainer(id, 'info');

				for ( var i = 0; i < mcObj.getInfo().length; i++ )
				{
						infoResult += mcObj.getInfo()[i] + '<br />' ;
				}

				var infoHeader = $("infoHeader");
				infoHeader.insert(mcObj.msgs["info"]["header"][0]);

				var infoP = $("infoP");
				infoP.insert(infoResult);//.replace(',','<br />').replace(',','<br />');

				infoDiv.style.display = 'block';
		}

		if ( mcObj.hasWarn() ) {
				if ($('warnMessages') != null) {
						var removed = $('warnMessages').remove();
				}
				var warnDiv = buildMessageContainer(id, 'warn');

				for ( var i = 0; i < mcObj.getWarn().length; i++ ) {
						warnResult += mcObj.getWarn()[i] + '<br />' ;
				}

				var warnHeader = $("warnHeader");
				warnHeader.insert(mcObj.msgs["warn"]["header"][0]);

				$("warnP").insert('' + warnResult);
				warnDiv.style.display = "block";
		}

		if ( mcObj.hasError() ) {
				if ($('errorMessages') != null) {
						var removed = $('errorMessages').remove();
				}
				var errorDiv = buildMessageContainer(id, 'error');

				for ( var i = 0; i < mcObj.getError().length; i++ ) {
						errorResult += mcObj.getError()[i] + '<br />' ;
				}

				var errorHeader = $("errorHeader");
				errorHeader.insert(mcObj.msgs["error"]["header"][0]);

				var errorP = $("errorP");
				/*alert(errorP);
				alert(errorResult);*/
				errorP.insert(errorResult); //.replace(',','<br />');

				var errorsUl = $("errorsUl");
				errorsUl.insert("");

				errorDiv.style.display = "block";
		}

}

/***** általános üzenetek megjelenítése (info, warning, error) end *****/

/***** form üzenetek megjelenítése start *****/

var FormMessageContainer = Class.create({
	initialize: function() {
		this.header = "";
		this.msgs = new Array();

		this.inputmsgs = new Array();
	},

	setHeader: function(headerTxt) {
		this.headerTxt = headerTxt;
	},

	addMsg: function(msg) {
		this.msgs[this.msgs.length] = msg;
	},

	addMsgByInput: function(id, msg) {
				if( this.inputmsgs[id] == undefined ) {
						this.inputmsgs[id] = new Array();
				}
				a = this.inputmsgs[id].length
				this.inputmsgs[id][a] = msg;
	},

	getHeader: function() {
		return this.headerTxt;
	},

	getMsg: function() {
		return this.msgs;
	},

	getInputMsgs: function(id) {
		var result = new Array()
		for( id in this.inputmsgs ) {
						result = result.concat( this.inputmsgs[id] );
		}
		return result;
	},

	getInputMsgsById: function(id) {
				var returnArr = new Array;
				if( this.inputmsgs[id] == undefined )
						return new Array();
				else {
						for( i=0; i<this.inputmsgs[id].length; i++) {
								returnArr[returnArr.length] = this.inputmsgs[id][i]
						}
				}
				return returnArr;
		},

	getInputIds: function() {
		idsArr = new Array;
			if(this.formName) {
				Form.getElements(this.formName).each(function(element) {
						if (element.id) {
								idsArr[idsArr.length] = (element.id);
						}
				});
				return idsArr;
			}
	},

	hasHeader: function() {
		return this.getHeader();
	},

	hasMsg: function() {
		return this.getMsg();
	},

	hasError: function() {
		return this.getInputMsgs().length > 0;
	}
});

function closeAllMsgDiv() {
	if ($('formErrorMessages') != null) {
		var removed = $('formErrorMessages').remove();
	}
	if ($('infoMessages') != null) {
		var removed = $('infoMessages').remove();
	}
	if ($('warnMessages') != null) {
		var removed = $('warnMessages').remove();
	}
	if ($('errorMessages') != null) {
		var removed = $('errorMessages').remove();
	}
}

function showFormMessages(fmcObj, id, clear) {

	if (clear) {
		closeAllMsgDiv();
	}

	closeAllInputMsg();
	var errorDiv = buildMessageContainer(id, 'formError');

	var ids = new Array;
	ids = fmcObj.getInputIds();

	if ( fmcObj.hasHeader() ) {
		var headerTxt = fmcObj.headerTxt;
				var errorHeader = $("formErrorHeader");
		errorHeader.insert(headerTxt);
		if ( $(errorDiv) ) $(errorDiv).show;
	}

	if ( fmcObj.hasMsg() ) {
				var msgsTxt = fmcObj.msgs;
				MessageResource.messages = msgsTxt;
				if ( fmc.addParamsArr ) {
						if ( fmc.addParamsArr['nameTitle'] ) {
								paramsArr = fmc.addParamsArr['nameTitle'];
								formatedTxt = MessageResource.getMessage(0, paramsArr )
								var errorP = $("formErrorP");
								errorP.insert(formatedTxt);
								$(errorDiv).show;
						}
				}
		}

		if ( fmcObj.hasError() ) {
				var msgsByInputTxt = "";

				var errorsUl = $("formErrorsUl");
				var i = 0;
				var divTxts = new String();
				if(ids) {
				for (n=0; n<ids.length; n++) {
						var divId = ids[n] + "Error";
						var divObj = $(divId);

						if ( divObj != null ) {
								divTxts = fmcObj.getInputMsgsById( ids[n] );
								//alert(divTxts);
								MessageResource.initMessages( divTxts );

								// Szerver oldalról jövő validűciós üzenet javítása, kikimentezett részek nélkül működik :)
								for (z=0; z<divTxts.length; z++) {

										labelId = ids[n] + "Label";
										if ( $(labelId) ) {
												//if ( fmc.addParamsArr ) {

														//if ( fmc.addParamsArr[ids[n]] ) {

																//paramsArr = fmc.addParamsArr[ids[n]]
																//formatedTxt = MessageResource.getMessage( z, paramsArr )

																formatedTxt = formatMessage(divTxts, divTxts, 0);
																msgsByInputTxt += "<li><a href='#" + ids[n] + "'>" + $(labelId).insert + ": " + formatedTxt + "</a></li>";
																divObj.insert += $(labelId).insert + ": " + formatedTxt + "<br />";
														//}
												//}
												divObj.show();
										}
								}
						}

						if (divTxts.length != 0)
						{

							LabelId = ids[n] + 'Label';
							if ( $(LabelId) ) {
									for ( x=1; $(LabelId).up(x).className.indexOf('focusCont') == -1 || $(LabelId).up(x).className == 'logoNormal'; x++ ) {
											if ( $(LabelId).up(x+1).className.indexOf('focusCont') > -1 ) {
													$(LabelId).up(x+1).addClassName('error');
											}
									}
							}

						}
					}
				}

				if (msgsByInputTxt.length > 0)
				{
					errorsUl.insert(msgsByInputTxt);
					errorsUl.style.display = "";
					// IE alatt nem működik,a show helyette -> .style.display = "block";
					//errorDiv.show();
					errorDiv.style.display = "block";
				}

	}
}

/***** form üzenetek megjelenítése end *****/

/***** initialize start *****/

//feedbackArr[ 'NEW_RULE' + newRuleNo ] = formValidationArr[id]['rulemessage'][i]
//feedbackArr[ 'NEW_RULE' + newRuleNo + '_short' ] = formValidationArr[id]['rulemessage_short'][i]

function zoneTest(zoneElementValue) {
		if ((zoneElementValue == 1) || (zoneElementValue == 20) || (zoneElementValue == 30) || (zoneElementValue == 70)) {
				returnvar = ($('aNumber').value.length != 7) ? false : true;
		} else {
				returnvar = ($('aNumber').value.length != 6) ? false : true;
		}
		returnvar = true;
		return returnvar;
}

function telNumTest(telElementValue) {
        zoneElementValue = $('zone').value;
		if ((zoneElementValue == 1) || (zoneElementValue == 20) || (zoneElementValue == 30) || (zoneElementValue == 70)) {
				this.returnvar = (telElementValue.length != 7) ? false : true;
		} else {
				this.returnvar = (telElementValue.length != 6) ? false : true;
		}
		return this.returnvar;
}

function radioGroupTest(radioGrName) {
	this.returnvar = false;
	var radiosArr = new Array;
	radiosArr = document.getElementsByName(radioGrName);

	for(var i=0; i<radiosArr.length; i++) {
		if (radiosArr[i].type == 'radio') {
			if (radiosArr[i].checked) {
				this.returnvar = true;
			}
		}
	}
	return this.returnvar;
}

function chBGroupTest(chBGrName) {
	this.returnvar = false;
	var chBsArr = new Array;
	chBsArr = document.getElementsByName(chBGrName);

	for(var i=0; i<chBsArr.length; i++) {
		if (chBsArr[i].type == 'checkbox') {
			if (chBsArr[i].checked) {
				this.returnvar = true;
			}
		}
	}
	return this.returnvar;
}

function daysInFeb(year) {
		//szal: a feb. akkor 29 napos, ha 4-el oszt6ó az évszám,
		//kivéve HA: századforduló aza adott év. Viszont ha 400-al is oszt6ó, akkor mégis ... 29 napos, vagyis szökőév
		return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}


function DaysArray(n, y) {
		this.daysA = new Array;
		for (var i = 1; i <= n; i++) {
				this.daysA[i] = 31;
				if (i==4 || i==6 || i==9 || i==11) {this.daysA[i] = 30}
				if (i==2) {this.daysA[i] = ((y % 4 == 0) && ( (!(y % 100 == 0)) || (y % 400 == 0))) ? 29 : 28 }
		}
		return this.daysA;
}

function isDate(postfix) {
		var daysInMonth = DaysArray(12);
		var yearMax = 2100;
		var yearMin = 1900;

		var strYear = $('years_' + postfix).value;
		var strMonth = $('months_' + postfix).value;
		var strDay = $('days_' + postfix).value;
		if (strMonth.length > 1 && strMonth[0] == '0') {
		strMonth = strMonth[1];
	}
	if (strDay.length > 1 && strDay[0] == '0') {
		strDay = strDay[1];
	}
		if (strMonth.charAt(0) == '0') {
			var month = parseInt(strMonth.charAt(1));
		}
		else {
			var month = parseInt(strMonth);
		}

		if (strDay.charAt(0) == '0') {
			var day = parseInt(strDay.charAt(1));
		}
		else {
			var day = parseInt(strDay);
		}
		var year = parseInt(strYear);
		feedbackArr["VALID_DATE"+postfix] = new Array;

		if (strMonth.length<1 || month<1 || month>12) {
				feedbackArr["VALID_DATE"] = "Kérjük valós hónapot adjon meg!";
				return false;
		}
		if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFeb(year)) || day > daysInMonth[month]) {
				feedbackArr["VALID_DATE"] = "Kérjük valós napot adjon meg!";
				return false;
		}
		if (strYear.length != 4 || year==0 || year<yearMin || year>yearMax) {
				errorMsg = "Kérjük valós évszámot adjon meg " + yearMin + " és " + yearMax + " között";
				feedbackArr["VALID_DATE"] = errorMsg;
				return false;
		}
		return true;
}

function validDate(dateElement) {
		var dateY = dateElement.value;
		var postfix = dateElement.id.split('_')[1];
		var yearMax = 2100;
		var yearMin = 1900;

		isDate(postfix)
		if ( !isDate(postfix) ) {
				return false;
		}

		if ( (dateY < yearMin) || (dateY > yearMax) ) {
				return false;
		}
		return true;
}

function validDtLess(dateElement, dtLimit) {


	var dtLimitSplitArr = dtLimit.split('-')
	var postfix = dateElement.id.split('_')[1];
	var dateY = getIntegerFromString(dateElement.value);
	var dateM = getIntegerFromString(document.getElementById('months_' + postfix).value);
	var dateD = getIntegerFromString(document.getElementById('days_' + postfix).value);
			
	if ( !isDate(postfix) ) {
				return false;
	}

	var checkDateYear = (getIntegerFromString(dtLimitSplitArr[0]));
	var checkDateMonth = (getIntegerFromString(dtLimitSplitArr[1]));
	var checkDateDay = (getIntegerFromString(dtLimitSplitArr[2]));

	if (checkDateYear < dateY)
		return false;

	if (dateY == checkDateYear && checkDateMonth < dateM)
		return false;	
	
	if (dateY == checkDateYear && dateM == checkDateMonth && checkDateDay < dateD)
		return false;
	
	return true;
}

function getIntegerFromString(string) {
 
 var integer = new String(string);

 if (integer.lastIndexOf('0') == 0)
	integer = integer.replace('0',''); 
	
 return parseInt(integer);
 
}

function validDtMore(dateElement, dtLimit) {

	var dtLimitSplitArr = dtLimit.split('-')
	var postfix = dateElement.id.split('_')[1];
	var dateY = getIntegerFromString(dateElement.value);
	var dateM = getIntegerFromString($('months_' + postfix).value);
	var dateD = getIntegerFromString($('days_' + postfix).value);

	if ( !isDate(postfix) ) {
				return false;
	}

	var checkDateYear = (getIntegerFromString(dtLimitSplitArr[0]));
	var checkDateMonth = (getIntegerFromString(dtLimitSplitArr[1]));
	var checkDateDay = (getIntegerFromString(dtLimitSplitArr[2]));
		
	if (dateY > checkDateYear)
		return false;
	
	if (dateY == checkDateYear && dateM > checkDateMonth)
		return false;

	if (dateY == checkDateYear && dateM == checkDateMonth && dateD > checkDateDay)
		return false;
		
	return true;
}


function validAddressZipCode(numVal) {
		return /^\d{4}$/.test(numVal.value);
}

function validAddressStreet(numVal) {
		return  /^[a-zA-Z0-9,.\-\ áíűőüöúóé]{1,100}$/.test(numVal.value);
}

function validAddressStreetNum(numVal) {
		return  /^\d+(-?\d+)?(\/[a-zA-Z]{1,2})?$/.test(numVal.value);
}

function validAddressBuilding(numVal) {
		return /^[a-zA-Z0-9]{0,16}$/.test(numVal.value);
}

function validAddressStairway(numVal) {
		return /[a-zA-Z0-9]{0,2}/.test(numVal.value);
}

function validAddressFloor(numVal) {
		return /[a-z0-9]{0,2}/.test(numVal.value);
}

function validAddressDoor(numVal) {
		return /^[0-9(\/\w).]{0,4}$/.test(numVal.value);
}

/***/
function initial(formName) {
		var newRuleNo = 0;
		if ( $(formName) && (typeof(formValidationArr) != 'undefined' ) ) {
				for ( id in formValidationArr ) {
						for ( i=0; i<formValidationArr[id]['rule'].length; i++ ) {
								if ( validRulesArr[formValidationArr[id]['rule'][i]] ) {
										var currValidRule = formValidationArr[id]['rule'][i];
										$(id).addClassName( currValidRule );

										//VALID_MAX *********************
										if (currValidRule == 'VALID_MAX') {
												$(id).removeClassName( currValidRule );
												formatedTxt = formatRule(validRulesArr[currValidRule], formValidationArr[id]['ruleparams'][i], 0, paramNameArr = ['max']);
												validRulesArr[ 'VALID_MAX' + newRuleNo ] = formatedTxt;
												$(id).addClassName( 'VALID_MAX' + newRuleNo );
												if ( formValidationArr[id]['messageparams'] != undefined ) {
														feedbackArr[ 'VALID_MAX' + newRuleNo ] = formatMessage(formValidationArr[id]['custommessage'][i], formValidationArr[id]['messageparams'][i],0);
												} else {
														if (formValidationArr[id]['custommessage'] != undefined) {
																feedbackArr[ 'VALID_MAX' + newRuleNo ] = formValidationArr[id]['custommessage'][i];
														} else {
																feedbackArr[ 'VALID_MAX' + newRuleNo ] = feedbackArr['VALID_MAX'];
														}
												}
										}

										//VALID_MIN *********************
										if (currValidRule == 'VALID_MIN') {
												$(id).removeClassName( currValidRule );
												formatedTxt = formatRule(validRulesArr[currValidRule], formValidationArr[id]['ruleparams'][i], 0, paramNameArr = ['min']);
												validRulesArr[ 'VALID_MIN' + newRuleNo ] = formatedTxt;
												$(id).addClassName( 'VALID_MIN' + newRuleNo );
												if ( formValidationArr[id]['messageparams'] != undefined ) {
														feedbackArr[ 'VALID_MIN' + newRuleNo ] = formatMessage(formValidationArr[id]['custommessage'][i], formValidationArr[id]['messageparams'][i],0);
												} else {
														if (formValidationArr[id]['custommessage'] != undefined) {
																feedbackArr[ 'VALID_MIN' + newRuleNo ] = formValidationArr[id]['custommessage'][i];
														} else {
																feedbackArr[ 'VALID_MIN' + newRuleNo ] = feedbackArr['VALID_MIN'];
														}
												}
										}

										//VALID_CUSTOM_REGEXP *********************
										if (currValidRule == 'VALID_CUSTOM_REGEXP') {
												$(id).removeClassName( currValidRule );
												formatedTxt = formValidationArr[id]['ruleparams'][i] + validRulesArr[currValidRule];
												//alert(formatedTxt)
												validRulesArr[ 'VALID_CUSTOM_REGEXP' + newRuleNo ] = formatedTxt;
												$(id).addClassName( 'VALID_CUSTOM_REGEXP' + newRuleNo );
												if ( formValidationArr[id]['messageparams'] != undefined ) {
														feedbackArr[ 'VALID_CUSTOM_REGEXP' + newRuleNo ] = formatMessage(formValidationArr[id]['custommessage'][i], formValidationArr[id]['messageparams'][i],0);
												} else {
														if (formValidationArr[id]['custommessage'] != undefined) {
																feedbackArr[ 'VALID_CUSTOM_REGEXP' + newRuleNo ] = formValidationArr[id]['custommessage'][i];
														} else {
																feedbackArr[ 'VALID_CUSTOM_REGEXP' + newRuleNo ] = feedbackArr['VALID_CUSTOM_REGEXP'];
														}
												}
										}

										//VALID_OPTREQUIRED *********************
										if (currValidRule == 'VALID_OPTREQUIRED') {
												$(id).removeClassName( currValidRule );
												formatedTxt = formatRule(validRulesArr[currValidRule], formValidationArr[id]['ruleparams'], 0, paramNameArr = ['optreq']);
												validRulesArr[ 'VALID_OPTREQUIRED' + newRuleNo ] = formatedTxt;
												$(id).addClassName( 'VALID_OPTREQUIRED' + newRuleNo );
												if ( (formValidationArr[id]['messageparams'] != undefined) && (formValidationArr[id]['custommessage'] != undefined) ) {
														feedbackArr[ 'VALID_OPTREQUIRED' + newRuleNo ] = formatMessage(formValidationArr[id]['custommessage'][i], formValidationArr[id]['messageparams'][i],0);
												} else {
														if (formValidationArr[id]['custommessage'] != undefined) {
																feedbackArr[ 'VALID_OPTREQUIRED' + newRuleNo ] = formValidationArr[id]['custommessage'][i];
														} else {
																feedbackArr[ 'VALID_OPTREQUIRED' + newRuleNo ] = feedbackArr['VALID_OPTREQUIRED'];
														}
												}

												newRuleNo++;
												var paramsArr = new Array;
												paramsArr = [id];
												formatedTxt = formatRule(validRulesArr[currValidRule], paramsArr, 0, paramNameArr = ['optreq']);
												validRulesArr[ 'VALID_OPTREQUIRED' + newRuleNo ] = formatedTxt;
												//alert(id)
						$(formValidationArr[id]['ruleparams'][0]).addClassName( 'VALID_OPTREQUIRED' + newRuleNo );

												if ( (formValidationArr[id]['messageparams'] != undefined) && (formValidationArr[id]['custommessage'] != undefined) ) {
														feedbackArr[ 'VALID_OPTREQUIRED' + newRuleNo ] = formatMessage(formValidationArr[id]['custommessage'][i], formValidationArr[id]['messageparams'][i],0);
												} else {
														if (formValidationArr[id]['custommessage'] != undefined) {
																feedbackArr[ 'VALID_OPTREQUIRED' + newRuleNo ] = formValidationArr[id]['custommessage'][i];
														} else {
																feedbackArr[ 'VALID_OPTREQUIRED' + newRuleNo ] = feedbackArr['VALID_OPTREQUIRED'];
														}
												}
										}

										//VALID_TELZONE *********************
										if (currValidRule == 'VALID_TELZONE') {
												$(id).addClassName( 'VALID_REQUIRED' );
												$(id).addClassName( 'VALID_NUMBER' );
												//$(id).addClassName( currValidRule );
												$('aNumber').addClassName( 'VALID_REQUIRED' );
												$('aNumber').addClassName( 'VALID_NUMBER' );
												$('aNumber').addClassName( 'VALID_TELNUM' );
										}

										//VALID_DT_LESS *********************
										if (currValidRule == 'VALID_DT_LESS') {
												if (formValidationArr[id]['ruleparams'][i]) {
														dtHidden = document.createElement("input");
														dtHidden.type = 'hidden';
														dtHidden.id = 'dtH'+id;
														document.body.appendChild(dtHidden);
														dtHidden.value = formValidationArr[id]['ruleparams'][i];

							newRuleNo++;
							$(id).removeClassName( currValidRule );
													$(id).addClassName( 'VALID_DT_LESS' + newRuleNo );
													validRulesArr[ 'VALID_DT_LESS' + newRuleNo ] = validRulesArr[currValidRule] + formValidationArr[id]['ruleparams'][i] + '\')';
							formatedTxt = feedbackArr[currValidRule] + formValidationArr[id]['ruleparams'][i];
													feedbackArr[ 'VALID_DT_LESS' + newRuleNo ] = formatedTxt;
												} else {
														$(id).removeClassName( currValidRule );
												}
										}

										//VALID_ADDRESS *********************
										if (currValidRule == 'VALID_ADDRESS') {

												var adPrefixArr = id.split('_');
												var adPrefix = adPrefixArr[0];

												$(adPrefix+'_zipcode').removeClassName( 'VALID_ADDRESS' );
												$(adPrefix+'_zipcode').addClassName( 'VALID_ADDRESS_ZIPCODE' );
												//$(adPrefix+'_town').addClassName( 'VALID_REQUIRED' );
												$(adPrefix+'_street').addClassName( 'VALID_ADDRESS_STREET' );
												$(adPrefix+'_number').addClassName( 'VALID_ADDRESS_STREET_NUM' );
												$(adPrefix+'_building').addClassName( 'VALID_ADDRESS_BUILDING' );
												$(adPrefix+'_stairway').addClassName( 'VALID_ADDRESS_STAIRWAY' );
												$(adPrefix+'_floor').addClassName( 'VALID_ADDRESS_FLOOR' );
												$(adPrefix+'_door').addClassName( 'VALID_ADDRESS_DOOR' );

										}

					//VALID_REQUIRED_RADIOGROUP *********************

					if (currValidRule == 'VALID_REQUIRED_RADIOGROUP') {
						var radiosArr = new Array;
						var radioGrName = $(id).name;
						radiosArr = document.getElementsByName(radioGrName);

						for(var i=0; i<radiosArr.length; i++) {
							if (radiosArr[i].type == 'radio') {
								radiosArr[i].addClassName( currValidRule );
							}
						}
										}

					//VALID_DT_MORE *********************
					if (currValidRule == 'VALID_DT_MORE') {
												if (formValidationArr[id]['ruleparams'][i]) {
														dtHidden = document.createElement("input");
														dtHidden.type = 'hidden';
														dtHidden.id = 'dtH'+id;
														document.body.appendChild(dtHidden);
														dtHidden.value = formValidationArr[id]['ruleparams'][i];

							newRuleNo++;
							$(id).removeClassName( currValidRule );
													$(id).addClassName( 'VALID_DT_MORE' + newRuleNo );
													validRulesArr[ 'VALID_DT_MORE' + newRuleNo ] = validRulesArr[currValidRule] + formValidationArr[id]['ruleparams'][i] + '\')';
							formatedTxt = feedbackArr[currValidRule] + formValidationArr[id]['ruleparams'][i];
													feedbackArr[ 'VALID_DT_MORE' + newRuleNo ] = formatedTxt;
												} else {
														$(id).removeClassName( currValidRule );
												}
										}

				} else {
					validRulesArr[ 'NEW_RULE' + newRuleNo ] = currValidRule;
									if ( formValidationArr[id]['ruleparams'][i] ) {
											paramNameArr = new Array;
											formatedTxt = formatRule(currValidRule, formValidationArr[id]['ruleparams'][i], 0, paramNameArr = ['a','b','c']);
											validRulesArr[ 'NEW_RULE' + newRuleNo ] = formatedTxt;
									}
					$(id).addClassName( 'NEW_RULE' + newRuleNo );
									if ( formValidationArr[id]['ruleparams'][i] && typeof(formValidationArr[id]['custommessage']) != 'undefined' ) {
											feedbackArr[ 'NEW_RULE' + newRuleNo ] = formatMessage(formValidationArr[id]['custommessage'][i], formValidationArr[id]['ruleparams'][i],0);
									} else if(typeof(formValidationArr[id]['custommessage']) != 'undefined') {
											feedbackArr[ 'NEW_RULE' + newRuleNo ] = formValidationArr[id]['custommessage'][i];
									}
									//ez lenne a rovid uzenet, de megsem kell
									//feedbackArr[ 'NEW_RULE' + newRuleNo + '_short' ] = formValidationArr[id]['custom_short'][i];
									newRuleNo++;
							}
						}
				}
		}
}

/***** initialize end *****/


/***** msgs utilities start *****/
function formatMessage(paramMessage, params, paramNo) {
		message = new String(paramMessage);
		if( paramNo < params.length ) {
				var regexp = new RegExp("{" + paramNo + "[0-9]*}", "g");
				//alert(message);
				message = message.replace(regexp, params[paramNo]);
				message = formatMessage(message, params, ++paramNo);
		}
		return message;
}

function formatRule(message, params, paramNo, paramNameArr) {
		paramName = paramNameArr[paramNo]
		if( paramNo < params.length ) {
				var regexp = new RegExp("{" + paramName + "[,a-zA-Z]*}", "g");
				message = message.replace(regexp, params);
				message = formatRule(message, params, ++paramNo, paramNameArr);
		}
		return message;
}

function MessageResource() {}

MessageResource.initMessages = function ( msgs ) {
		this.messages = msgs;
}

MessageResource.getMessage = function ( messageId, params, resultTxt ) {
		var result = this.messages[messageId];
		if( typeof params != typeof undefined ) {
				if( typeof params == "string" ) {
						result = formatMessage(result, [ params ], 0);
		}
		else if ( params.length > 0 ) {
						result = formatMessage(result, params, 0);
		}
		}
	return result;
}
/***** msgs utilities end*****/

/***** validation start *****/
var returnvar = true;
var CheckField = Class.create();

CheckField.prototype = {
		initialize : function(elem) {
				this.elem = elem;
				this.clNames = this.elem.classNames();
				this.clNamesText = this.clNames.toString();
				this.clNamesText = this.clNamesText.replace(',', ' ');
				this.separator = ' ';
				this.cnArr = new Array;
				this.clNamesArr = this.clNamesText.split(this.separator);
				this.returnvarAkt = true;
				this.returnvar = true;
		},
		check : function(element,nElement) {
				var errorDivElement = element.id+'Error';
				var LabelId = element.id + 'Label';

				if ( $(LabelId) != null ) {
						var LabelTxt = $(LabelId).innerHTML;

			if (LabelTxt == 'év') {LabelTxt = 'dátum'}
			$(LabelId).removeClassName('redErrorLabel');

			if ( element.id.indexOf('days') > -1 ) {
						postfix = element.id.split('_')[1];
						if ( postfix != undefined ) {
								if ( $('years_'+postfix+'Label').className.indexOf('redErrorLabel') > -1 ) {
										$('months_'+postfix+'Label').addClassName('redErrorLabel');
										$('days_'+postfix+'Label').addClassName('redErrorLabel');
								}
						}


				for ( x=1; $(LabelId).up(x).className.indexOf('focusCont') == -1 || $(LabelId).up(x).className == 'logoNormal'; x++ ) {
								if ( $(LabelId).id.indexOf('month') == -1 && $(LabelId).id.indexOf('day') == -1 ) {
										if ( $(LabelId).up(x+1) != undefined ) {
											if ( $(LabelId).up(x+1).className.indexOf('error') > -1 ) {
												$(LabelId).up(x+1).removeClassName('error');
											}
										}
							}
						}
				}

}
				if ( $(errorDivElement) != null ) {
						$(errorDivElement).update('');
						$(errorDivElement).style.display = 'none';
				}

				for (var j=0; j<this.clNamesArr.length; j++) {
						if ( validRulesArr[this.clNamesArr[j]] ) {
								if (this.clNamesArr[j] == 'VALID_DT_LESS') {
										dtRule = '' + validRulesArr[this.clNamesArr[j]] + $('dtH'+element.id).value + '\')';
										this.returnvarAkt = eval( dtRule );
								} else {
										//alert(this.clNamesArr[j])
					this.returnvarAkt = eval( validRulesArr[this.clNamesArr[j]] );
								}
				if (element.up('div.tabContent')) {
										if (element.up('div.tabContent').style.display == "none" ) {
												this.returnvarAkt = true;
										}
								}

				if (element.up('div.fullAddressCont')) {
										if (element.up('div.fullAddressCont').style.display == "none" ) {
												this.returnvarAkt = true;
										}
								}

								if (element.up('div.focusCont')) {
										if (element.up('div.focusCont').style.display == "none" ) {
												this.returnvarAkt = true;
										}
								}


				if (this.clNamesArr[j] == 'VALID_REQUIRED_RADIOGROUP') {
					this.radioreturnvarAkt = eval( validRulesArr[this.clNamesArr[j]] );
					if (!this.radioreturnvarAkt) {
						/*$(LabelId).up("TABLE").addClassName('radioGrError');

						var radioGrLabels = new Array;
						var radioGrName = $(LabelId).name;
						radioGrLabels = document.getElementsByName(radioGrName);
						alert(radioGrLabels.lenght + ' - ' + radioGrName + ' - ' + $(LabelId).name)

						for(var i=0; i<radioGrLabels.length; i++) {
							//radioGrLabels[i].addClassName('error')
						}*/
					} else {
						//$(LabelId).up("TABLE").removeClassName('radioGrError');
					}
				}


				this.returnvar = (this.returnvarAkt && this.returnvar);
				errorTxt = this.clNamesArr[j] + '_short';


				if (!this.returnvarAkt && (this.clNamesArr[j] != 'VALID_REQUIRED_RADIOGROUP')) {
					$(LabelId).addClassName('redErrorLabel');

					errorsLiArr[errorsLiArr.length] = '' + LabelTxt + ': ' + feedbackArr[this.clNamesArr[j]];
					//$(errorDivElement).insert += LabelTxt + ': ' + feedbackArr[errorTxt];
					$(errorDivElement).insert(LabelTxt + ': ' + feedbackArr[this.clNamesArr[j]] + '<br />');
					$(errorDivElement).style.display = 'block';

					for ( x=1; $(LabelId).up(x).className.indexOf('focusCont') == -1 || $(LabelId).up(x).className == 'logoNormal'; x++ ) {
							if ( $(LabelId).up(x+1).className.indexOf('focusCont') > -1 ) {
									$(LabelId).up(x+1).addClassName('error');
							}
					}
				} else if (!this.returnvarAkt && (this.clNamesArr[j] == 'VALID_REQUIRED_RADIOGROUP')) {
					if($(LabelId)) {
						//$(LabelId).addClassName('redErrorLabelNofl');
					}


					//$(errorDivElement).insert += LabelTxt + ': ' + feedbackArr[errorTxt];
					if($(errorDivElement)) {
						$(errorDivElement).insert += feedbackArr[this.clNamesArr[j]] + '<br />';
					}

					if($(errorDivElement)) {
						$(errorDivElement).style.display = 'block';
						$(errorDivElement).style.padding = '0 0 5px 15px';
						errorsLiArr[errorsLiArr.length] = feedbackArr['VALID_REQUIRED_RADIOGROUP'];
					}

					if($(LabelId)) {
						for ( x=1; $(LabelId).up(x).className.indexOf('focusCont') == -1 || $(LabelId).up(x).className == 'logoNormal'; x++ ) {
								if ( $(LabelId).up(x+1).className.indexOf('focusCont') > -1 ) {
										$(LabelId).up(x+1).addClassName('error');
								}
						}
					}
				}
			}
			}

		return this.returnvar;
		}
}

function errorWrite(errorsArray) {
		MessageResource.initMessages( errorsArray );
		errorsLi = '';
		for (var i=0; i<errorsArray.length; i++) {
						formatedTxt = MessageResource.getMessage(i);
						errorsLi += '<li>' + formatedTxt + '</li>';
		}
		buildMessageContainer('simpleMsgs', 'formError')
		$('formErrorsUl').insert(errorsLi);
		$('formErrorMessages').show();
}



/* tovább gomb start */
function btnInactivate(btnLinkElement, formName) {
		if ($(btnLinkElement).tagName.toUpperCase() == 'A') {
        /* lemerjuk a linkben levo span szelesseget */
        var innerSpan = $(btnLinkElement).down('span');
		innerSpan.setStyle({ display : 'none' });
        var linkWidth = innerSpan.getWidth();
		innerSpan.setStyle({ display : 'block' });

		/* kicsereljuk a linket spanra, meg a szoveget is */
		var linkParent = $(btnLinkElement).up();
				if ( $(btnLinkElement).className == 'btnMagenta' ) {
						linkParent.update('<span class="btnInactiveSec"><span>Kérjük várjon...</span></span>');
				} else {
						linkParent.update('<span class="btnInactive"><span>Kérjük várjon...</span></span>');
						//linkParent.update('<img src="../wukap_common/img/btn-big_magenta-right.gif">');
				}

		/* kivesszuk az uj spant, beallitjuk neki az elozo szelesseget es levonjuk a paddingot */
		var newInnerSpan = linkParent.down('span', 1);
		var newRightPadding = newInnerSpan.getStyle('paddingRight');
		var newWidth = linkWidth - 5 - parseInt(newRightPadding);
		newInnerSpan.setStyle({ width : newWidth + 'px' });

		new PeriodicalExecuter(function(pe) {
						if (formName != undefined) {
								$(formName).submit();
						} else {
								return true;
						}
						pe.stop();
				}, 0);

		} else {
				return true;
		}

}
/* tovább gomb end */



function checks(formName) {
	var errorDivObj = "errorMessages";
    var errorUl = "errorsUl";
    var nElement = 0;
    var returnvar = true;
    errorsLiArr = [];
    Form.getElements(formName).each(function(element) {
        chf = new CheckField(element);
        if ( !chf.check(element,nElement) ) {
            returnvar = false;
        }
        nElement++;
    });

		closeAllMsgDiv();
		if( $(errorDivObj) ) $(errorDivObj).style.display = 'block';
		if ( !returnvar ) {
			errorWrite(errorsLiArr);
		} else {
		btnInactivate("btnTovabb", formName);
	}
		return returnvar;
}

/***** validation end *****/

/***** The modalDialogObject start *****/
//var ModalDialog = Class.create();
//
//ModalDialog.prototype = {
//    initialize : function(){
//
//	},
//}
//
//var tModalDialog = new ModalDialog();


var classModalDialog = Class.create();

classModalDialog.prototype = {
		initialize : function(){

		},
        
        /****   SETTOPBOX   *********************************************************/
        showModalToSTB : function( STBData, dialogBtns ) {
            var actBtnIndx = 0;
            var modalLayer = $('modalLayer').style;
            var modContent = $('modalDialogContentSTB').style;
            var sifrTitle = $('sifrTitle');
            var sifrTitleHeight = $('sifrTitle').getHeight() + "px";
            var htmlTag = document.getElementsByTagName("html")[0];
            var bodyTag = document.body;
            var wHeight = $('pContainer').getHeight();
            var originalScrollPos = document.documentElement.scrollTop;
            if (document.documentElement.clientWidth) {
                var wWidth = document.documentElement.clientWidth;
                if (Prototype.Browser.IE) {
                    wHeight = document.body.clientHeight;
                }
            } else {
                var wWidth = window.innerWidth;
            }

            modalLayer.height = wHeight + "px";
            modalLayer.display = (modalLayer.display == "none") ? "block" : "none";
            if ( modalLayer.display == "none" ) {
            } else {
                sifrTitle.addClassName("sIFR-flashInvisible");
                if (Prototype.Browser.Opera || Prototype.Browser.IE ) {
                    sifrTitle.style.height = sifrTitleHeight;
                    $(sifrTitle).down().style.display = "none";
                }
                if (Prototype.Browser.WebKit) {
                    sifrTitle.style.height = sifrTitleHeight;
                    $(sifrTitle).hide();
                }
                window.scrollbars = "true";
            }
            modContent.display = "block";
            document.getElementsByTagName("html")[0].className = 'jsModalChange';
            if(Prototype.Browser.IE) {
                document.body.className = 'jsModalChange'
            }
            
            /* részletek bezárása*/
            var detailsDivs = $$('.detailsDiv');
            for (i = 0; i < detailsDivs.length; i++) {
                detailsDivs[i].down('P').hide();
                if (detailsDivs[i].down('A').hasClassName('opened')) {
                    detailsDivs[i].down('A').removeClassName('opened');
                    detailsDivs[i].down('A').update('A havidíjas bérlés részletei');
                }
            }
            
            /* radiogombok kinullázása */
            var priceDivs = $$('.priceLabel');
            for (i = 0; i < priceDivs.length; i++) {
                if ( priceDivs[i].down('INPUT') ) {
                    priceDivs[i].down('INPUT').checked = '';
                    priceDivs[i].down('INPUT').up().up().removeClassName('active');
                }
            }
            
            /***** Tartalom betoltese *****/
            var modalCont = $('modalDialogContentSTB').down('DIV.cont');
            var modalBtnCont = $('modalDialogContentSTB').down('DIV.btnCont');
            modalCont.innerHTML = '';
            
            var newDialogHead = document.createElement('H1');
            newDialogHead.id = 'modalH1';
            modalCont.appendChild(newDialogHead);
            $('modalH1').insert(STBData['STBName']);
    
            if (STBData['STBImgUrl']) {
                var newSTBImg = document.createElement('IMG');
                newSTBImg.src = STBData['STBImgUrl'];
                newSTBImg.id = STBData['STBName'];
                modalCont.appendChild(newSTBImg);
            }
            if (STBData['STBList']) {
                var STBId = 0;
                var newSTBList = document.createElement('UL');
                
                STBData['STBList'].each(function(element) {
                    newSTBList.id = 'STBList';
                    modalCont.appendChild(newSTBList);
                    var newSTBListItem = document.createElement('LI');
                    newSTBListItem.id = 'STBList' + STBId;
                    $('STBList').appendChild(newSTBListItem);
                    $('STBList' + STBId).innerHTML = element;
                    STBId++;
                });
            }

            /*
            if( $$('.btnHolder').length == 0 ) {
                var newDialogBtnHolder = document.createElement('DIV');
                newDialogBtnHolder.className = 'btnHolder';
                modalBtnCont.appendChild(newDialogBtnHolder);
            } else {
                $($$('.btnHolder')[0]).innerHTML = '';
            }
            if (dialogBtns) {
                for (var buttIndex=0; buttIndex<dialogBtns.length; buttIndex++) {
                    var btnText = dialogBtns[buttIndex].btnText;
                    var btnOptions = {};
                    if(dialogBtns[buttIndex].href){
                        btnOptions.href = dialogBtns[buttIndex].href;
                    }
                    if(dialogBtns[buttIndex].onclick){
                        btnOptions.onclick = dialogBtns[buttIndex].onclick;
                    }
                    if(buttIndex == actBtnIndx) {
                        btnOptions.className = 'btnMagenta';
                    }
                    if(dialogBtns[buttIndex].buttonIndex){
                        btnOptions.buttonIndex = dialogBtns[buttIndex].buttonIndex;
                    }else{
                        btnOptions.buttonIndex = buttIndex;
                    }
                    this._createBtn(btnText, btnOptions);
                }
            } else {
                createBtn('Ok', 'btnMagenta', false);
            }*/
            if(Prototype.Browser.Gecko){
                window.scrollTo( 0, this.defaultPositionY);
            }

            if(navigator.appVersion.indexOf('MSIE 6') != -1) {
                window.scrollTo( 0, this.defaultPositionY);
            }
        },

        /*************************************************************/

		showModalDialog : function( dialogHead, dialogDesc, dialogList, dialogBtns, actBtnIndx ) {
				var modalLayer = $('modalLayer').style;
				var modContent = $('modalDialogContent').style;
				var sifrTitle = $('sifrTitle');
				var sifrTitleHeight = $('sifrTitle').getHeight() + "px";
				var htmlTag = document.getElementsByTagName("html")[0];
				var bodyTag = document.body;
				var wHeight = $('pContainer').getHeight();
				var originalScrollPos = document.documentElement.scrollTop;
				//szebb lenne az initialize()-ban erteket adni neki
				//de ott meg nem elerheto :(
				if( (!this.defaultPositionY) || (!this.defaultPositionY!=originalScrollPos)) {
						this.defaultPositionY = document.documentElement.scrollTop;
				}


				if (document.documentElement.clientWidth) {
						var wWidth = document.documentElement.clientWidth;
						if (Prototype.Browser.IE) {
								wHeight = document.body.clientHeight;
						}
				} else {
						var wWidth = window.innerWidth;
				}

				modalLayer.height = wHeight + "px";
				modalLayer.display = (modalLayer.display == "none") ? "block" : "none";
				if ( modalLayer.display == "none" ) {
						/* sifrTitle.removeClassName("sIFR-flashInvisible");
						if (Prototype.Browser.Opera || Prototype.Browser.IE || Prototype.Browser.WebKit ) {
										sifrTitle.style.height = "auto";
										sifrTitle.down().style.display = "block";
						}
						if (Prototype.Browser.WebKit) {
										sifrTitle.style.height = "auto";
										$(sifrTitle).show();
						}
						window.scrollbars = "false"; */
				} else {
						sifrTitle.addClassName("sIFR-flashInvisible");
						if (Prototype.Browser.Opera || Prototype.Browser.IE ) {
										sifrTitle.style.height = sifrTitleHeight;
										$(sifrTitle).down().style.display = "none";
						}
						if (Prototype.Browser.WebKit) {
										sifrTitle.style.height = sifrTitleHeight;
										$(sifrTitle).hide();
						}
						window.scrollbars = "true";
				}
                window.scrollbars = "true";

				modContent.display = "block";
				document.getElementsByTagName("html")[0].className = 'jsModalChange';
				if(Prototype.Browser.IE) {
						document.body.className = 'jsModalChange'
				}


				/***** Tartalom betoltese *****/
        $('modalDialogContent').insert('');

		var newDialogHead = document.createElement('H1');
		newDialogHead.id = 'modalH1';
		newDialogHead.insert(dialogHead);
		$('modalDialogContent').appendChild(newDialogHead);

		if (dialogDesc) {
			var newDialogDesc = document.createElement('P');
			newDialogDesc.id = 'modalP';
			newDialogDesc.insert(dialogDesc);
			$('modalDialogContent').appendChild(newDialogDesc);
		}

		if (dialogList) {
			var newDialogList = document.createElement('UL');
			newDialogList.id = 'modalList';
			$('modalDialogContent').appendChild(newDialogList);

			dialogList.each(function(element) {
				var newDialogListItem = document.createElement('LI');
				newDialogListItem.insert(element);
				$('modalList').appendChild(newDialogListItem);
			});
		}

		var newDialogBtnHolder = document.createElement('DIV');
		newDialogBtnHolder.className = 'btnHolder';
		$('modalDialogContent').appendChild(newDialogBtnHolder);
		if (dialogBtns) {
				/*

				{
						'btnText' : 'OK',
						'href' : '#'
				}

				*/
			for (var buttIndex=0; buttIndex<dialogBtns.length; buttIndex++) {
				var btnText = dialogBtns[buttIndex].btnText;
								var btnOptions = {};
								if(dialogBtns[buttIndex].href){
										btnOptions.href = dialogBtns[buttIndex].href;
								}
								if(dialogBtns[buttIndex].onclick){
										btnOptions.onclick = dialogBtns[buttIndex].onclick;
								}
								if(buttIndex == actBtnIndx) {
										btnOptions.className = 'btnMagenta';
								}
								if(dialogBtns[buttIndex].buttonIndex){
										btnOptions.buttonIndex = dialogBtns[buttIndex].buttonIndex;
								}else{
										btnOptions.buttonIndex = buttIndex;
								}
				//(buttIndex == actBtnIndx) ? createBtn(btnText, 'btnMagenta', buttIndex, dialogBtns[buttIndex][1]) : createBtn(btnText, 'btnGrey', buttIndex, dialogBtns[buttIndex][1]);
								this._createBtn(btnText, btnOptions);
			}
		} else {
			createBtn('Ok', 'btnMagenta', false);
		}

        if(Prototype.Browser.Gecko){
                window.scrollTo( 0, this.defaultPositionY);
        }

		if(navigator.appVersion.indexOf('MSIE 6') != -1) {
			window.scrollTo( 0, this.defaultPositionY);
            //$('modalDialogContent').style.top = (document.documentElement.scrollTop + this.defaultPositionY) +"px";
            //$('modalDialogContent').style.top = "255px";
		}

	},

    hideModalDialog : function() {
        document.getElementsByTagName("html")[0].className = '';
        if(Prototype.Browser.IE) {
                document.body.className = ''
        }
    
        $('modalLayer').hide();
        if( $('modalDialogContent') ) {
            $('modalDialogContent').hide();
        }
        if( $('modalDialogContentSTB') ) {
            $('modalDialogContentSTB').hide();
        }
        $('sifrTitle').removeClassName("sIFR-flashInvisible");
        if (Prototype.Browser.Opera || Prototype.Browser.IE || Prototype.Browser.WebKit ) {
                        $('sifrTitle').style.height = "auto";
                        $('sifrTitle').down().style.display = "block";
        }
        if (Prototype.Browser.WebKit) {
                        $('sifrTitle').style.height = "auto";
                        $('sifrTitle').show();
        }
        window.scrollbars = "false";
    },

		_createBtn : function(btnText, options) {
				var options = options ? options : {};
				if ( $('modalDialogContent') ) {
                    var btnHolderDiv = $$('div#modalDialogContent div.btnHolder')[0];                
                }
                if ( $('modalDialogContentSTB') ) {
                    var btnHolderDiv = $$('div#modalDialogContentSTB div.btnCont div.btnHolder')[0];                
                }
				var newBtn = document.createElement('SPAN');
				newBtn.id = 'newBtn';
				btnHolderDiv.appendChild(newBtn);
				$('newBtn').insert(btnText);
				var newBtnLink = document.createElement('A');
				newBtnLink.href = options.href ? options.href : '#';
				newBtnLink.className = options.className ? options.className : 'btnGrey';
				newBtnLink.id = options.buttonIndex ? 'dialogButton' + options.buttonIndex : 'dialogButton0';

				if(options.onclick){
						newBtnLink.onclick = options.onclick;
				}else{
						newBtnLink.onclick = function (){
								objModalDialog.hideModalDialog();
								//modalDialogClick(this.id.substring(12,this.id.length));
								return false;
						};
				}
				newBtnLink.appendChild(newBtn);
				btnHolderDiv.appendChild(newBtnLink);
		}
}
/***** The modalDialogObject end *****/

/***** create The modalDialogObject *****/
var objModalDialog = new classModalDialog();


/***** button creator script start *****/
function createBtn(btnText, btnColor, clickedBtnIndex, returnVar, options) {
		var options = options ? options : {};
		var btnDiv = document.getElementsByClassName('btnHolder')[0];
		var newBtn = document.createElement('SPAN');
	newBtn.insert(btnText);
	//document.body.appendChild(newBtn);

	var newBtnLink = document.createElement('A');
	newBtnLink.href = options.href ? options.href : '#';
	newBtnLink.className = btnColor;
	newBtnLink.onclick = function (){
				objModalDialog.showModalDialog();
				return returnVar;
		};
	newBtnLink.appendChild(newBtn);
	btnDiv.appendChild(newBtnLink);
}
/***** button creator script end *****/

function showAlert( dialogHead, dialogDesc, dialogList, buttonName ) {
		buttons = new Array();
		buttons = [buttonName,true];
		return showModalDialog( dialogHead, dialogDesc, dialogList, dialogBtns, 0 );
}


function showConfirm( dialogHead, dialogDesc, dialogList, buttonOk, buttonCancel ) {
		buttons = new Array(2);
		buttons = [
				[buttonOk,true],
				[buttonCancel,false]
		];
		return showModalDialog( dialogHead, dialogDesc, dialogList, dialogBtns, 1 );
}

function modalConfirm(linkElement, header, desc, list) {

		var okClickHandler = function() {
				objModalDialog.hideModalDialog();
				modalConfirmClick(this.id.substring(12,this.id.length));
				return true;
		};

		var cancelClickHandler = function() {
				objModalDialog.hideModalDialog();
				modalConfirmClick(this.id.substring(12,this.id.length));
				return false;
		};

		var dialogButtons = [
				{btnText: 'Ok', href: linkElement.href, onclick: okClickHandler, buttonIndex: 0},
				{btnText: 'Mégsem', onclick: cancelClickHandler, buttonIndex: 1}
		];
		objModalDialog.showModalDialog(header, desc, list, dialogButtons, 0);
		return false;
}


function validateNumber(number)
{

 if (number != null)
	if (number.value != "")
		return /^[0-9]+$/.test(number.value);

 return true;

}

function validatePassword(password)
{
	var passA = document.getElementById(password);
	var passB = document.getElementById(password + '_validate');

	if (passA != null && passB != null)
	{
		if( passA != "" )
			return passA.value == passB.value;
	} else {
		// ToDo nem található a mező hibaüzenet
	}

	return true;

}

function validateMTPassword(password)
{
	var passA = document.getElementById(password);
	if (passA != null )
	{
		if( passA != "" )
			return passA.value.length==5 && /^[0-9]+$/.test(passA.value);
	} else {
		// ToDo nem található a mező hibaüzenet
	}

	return true;
}

function validateBankAccount(bankAccount_firstEightName)
{

	bankAccount = (new String(bankAccount_firstEightName)).replace('_firstEight', '');
	bankAccount_firstEight = document.getElementById(bankAccount + '_firstEight');
	bankAccount_secEight = document.getElementById(bankAccount + '_secEight');
	bankAccount_thridEight = document.getElementById(bankAccount + '_thridEight');

	if (bankAccount_firstEight != null && bankAccount_secEight != null)
	{

		validate = bankAccount_firstEight.value.length == 8 && bankAccount_secEight.value.length == 8 && /^[0-9]+$/.test(bankAccount_firstEight.value) && /^[0-9]+$/.test(bankAccount_secEight.value);
		if (bankAccount_thridEight != null && bankAccount_thridEight.value != "")
			return validate && bankAccount_thridEight.value.length == 8 && /^[0-9]+$/.test(bankAccount_thridEight.value);
		else
			return validate
	} else {
		// ToDo nem található a mező hibaüzenet
	}

	return true;

}


