function addEvent(element, eventType, listenerFunction, useCapture) {
	if(element.addEventListener) {
		element.addEventListener(eventType, listenerFunction, useCapture);
		return true;
	}
	else if(element.attachEvent) {
		return element.attachEvent("on" + eventType, listenerFunction);
	}
	else {
		return false;
	}
}

 
function getElementsByClass(className, element, tagName) {
	var resultArray = new Array();
	if (element == null) element = document;
	if (tagName == null) tagName = '*';
	var objectArray = element.getElementsByTagName(tagName);
	var pattern = new RegExp("(^|\\s)" + className + "(\\s|$)");
	var i = 0;
	for(var j = 0; j < objectArray.length; j++) {
		if(pattern.test(objectArray[j].className)) {
			resultArray[i++] = objectArray[j];
		}
	}
	return resultArray;
}



/**
 * Form "input" mezőinek típus ellenőrzése
 *
 *  - strfix_int: egész szám
 *  - strfix_float: tizedes szám
 */
function inputValidator(node) {
	var strs = getElementsByClass("strfix[^ ]*", node, "input");

	for(var i = 0; i < strs.length; i++) {
		var r_int = /_int(\s|$)/;
		var r_float = /_float_[0-9](\s|$)/;

		//Egész szám
		if(r_int.test(strs[i].className)) {
			strs[i].onchange = strs[i].onkeyup = function() {
				this.value = this.value.replace(/[^0-9]/g, '');
			}
		}
		//Tizedes szám
		else if(r_float.test(strs[i].className)) {
			strs[i].onchange = strs[i].onkeyup = function() {
				var m = parseInt(this.className.replace(/.*float_([0-9]).*/,'$1'));		//tizedes jegyek száma
				var r_test = /\.[0-9]*/;

				this.value = this.value.replace(/,/, '\.');								//"." csere ","-re
				this.value = this.value.replace(/[^.0-9]/g, '');

				if(r_test.test(this.value)){
					this.value = this.value.replace(/^([0-9]*)\.+([0-9]*).*$/, '$1.$2');
					this.value= this.value.substr(0, this.value.indexOf('.') + m + 1);
				}
			}
		}
	}
}



addEvent(window, 'load', function() { inputValidator(document) });


function formValidator(form) {
	//Hibajelölés törlése a form összes elemén
	for(var i = 0; i < form.length; i++) {
	  form[i].className = form[i].className.replace(/\binputAlert\b/i, "");
	}


	//kötelezően kitöltendő mezők
	var required = getElementsByClass('required', form, null);
	if(required){
		for (i in required) {
			var value = '';
			switch (required[i].tagName) {
				case 'SELECT':
					value = required[i].options[required[i].selectedIndex].value;
					break;
				case 'INPUT':
				case 'TEXTAREA':
					value = required[i].value;
					break;
			}

			if ( value.replace(/^\s+|\s+$/g, "") == '' ) {
				required[i].className += ' inputAlert';
				required[i].focus();
				alert("Required field.");
				return false;
			}
		}
	}
	
	return true;
}


//e-mail cím ellenőrzése
function formValidatorEmail(element) {
	if ( element != null ) {
		var pattern = new RegExp("^([a-zA-Z0-9._%+-]+)@([a-zA-Z0-9.-]+)\.([a-zA-Z]{2,4})$");
		if(!pattern.test(element.value)) {
			element.className += ' inputAlert';
			element.focus();
			alert("Wrong format: e-mail address.");
			return false;
		}
	}
}

function changeSiteType() {
	siteType = document.getElementById('selectSiteType').value;

	//Greenfield
	if (siteType == "industrial park" || siteType == "logistics park" || siteType == "technology park" || siteType == "land") {
		document.getElementById('row_greenfield').style.display = "";
	}
	else {
		document.getElementById('row_greenfield').style.display = "none";
	}

	//Inner height
	if (siteType == "laboratory" || siteType == "office building" || siteType == "manufacturing hall" || siteType == "warehouse") {
		document.getElementById('row_inner_height').style.display = "";
	}
	else {
		document.getElementById('row_inner_height').style.display = "none";
	}

	//Category
	if (siteType == "laboratory" || siteType == "office building") {
		document.getElementById('row_office_category').style.display = "";
	}
	else {
		document.getElementById('row_office_category').style.display = "none";
	}
}


