var requiredFields = new Array();
var cookieFields = new Array();
var formPosting = new Array();
var messageRequired = "De volgende velden zijn niet juist ingevuld:";

var regExpNull = "";
var regExpNonEmpty = "\\S+";
var regExp2Digit = "[0-9]{2}";
var regExp4Digit = "[0-9]{4}";
var regExpEmail = "^([a-zA-Z0-9_\\-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([a-zA-Z0-9\\-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$"
var regExpPostcode = "^[1-9][0-9]{3}\\s?[a-zA-Z]{2}$";

function GetCookie(sName) {
	var cookiePair;
	var cookieArray = unescape(document.cookie).split(";");
	//alert(document.cookie);
	for (var i = 0; i < cookieArray.length; i++) {
		cookiePair = cookieArray[i].split("=");
		iFound = cookiePair[0].indexOf(sName);
		if (iFound >= 0) {
			return (cookiePair[1]) ? cookiePair[1] : "";
		}
	}
	return "";
}

function SetCookie(sName, sValue, days) {
	var sExpires;
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		sExpires = "; expires="+date.toGMTString();
	}
	else {
		sExpires = "";
	}
	document.cookie = sName+"="+sValue+sExpires+"; path=/";

}

function checkForm(formName) {
	if (!formPosting[formName]) {
		formPosting[formName] = true;
		check = true;
		var message = "";
		for (var i = 0; i < requiredFields[formName].length; i += 3) {
			var teststring = document.forms[formName].elements[requiredFields[formName][i]].value;
			re = new RegExp(requiredFields[formName][i+1]);
			if (!re.test(teststring)) {
				check = false;
				document.forms[formName].elements[requiredFields[formName][i]].className = "fielderror";
				message = (message == "")? requiredFields[formName][i+2]:message + "\n " + requiredFields[formName][i+2];
			}
			else {
				document.forms[formName].elements[requiredFields[formName][i]].className = "field";
			}
		}
		if (message!="") alert(messageRequired + "\n "	+ message);
		if (!check) formPosting[formName] = false;
		return check;
	}
	else return false;

}

function upload(start, max) {
	this.fileSlots = start;
	this.values = new Array;
	this.maxAttachments = max;

	this.addFileSlot = function(index) {
		if (index == null) {
			index = this.fileSlots;
		}
		if (index < this.maxAttachments) {
			document.getElementById("fileDiv" + (index)).style.display = "block";
			if (index == this.fileSlots) { this.fileSlots++ };
		}
		else {
			alert("Maximaal " + this.maxAttachments + " bestanden toegestaan");
		}
	}

	this.updateAttachment = function(index) {
		var source = document.getElementById("file" + (index)).value;
		document.getElementById("image" + (index)).src = "file:///" + source;
		//document.getElementById("image" + (index)).src = document.forms["whaleBeaching"].elements["file" + (index)].value;
		document.getElementById("image" + (index)).style.display = "block";
	}

}

/* TOOLTIPS
-----------------------------------------------------*/
function formToolTips(){
	fields = document.getElementsByTagName("input");
	for (i = 0; i < fields.length; i++) {
		if (fields[i].className != "arrow" && fields[i].className != "zoombar_v") { 
		  makeTip(fields[i]);
		}
	}
}

function formToolTips2(){
	fields = document.getElementsByTagName("textarea");
	for (i = 0; i < fields.length; i++) {
		makeTip(fields[i]);
	}
}

function makeTip(field){
	var inputTitle = field.getAttribute("title");
	if (inputTitle && inputTitle != null){
		addEvent(field, "focus", showTooltip);
		addEvent(field, "blur", hideTooltip);
		//addEvent(field, "blur", checkField); // testje om 'on the fly' formulier te checken op basis van de class
	}
}

function showTooltip(e){
	if (!e) var e = window.event;
	var focusInput = (e.srcElement == null)? e.target : e.srcElement;
	//focusInput.className = "focus";
	var inputParent = focusInput.parentNode;
	var hasSpan = (focusInput.nextSibling)? (focusInput.nextSibling.tagName == "SPAN"): false;
	if (!hasSpan) {
		var titleSpan = document.createElement("span");
		inputParent.insertBefore(titleSpan, focusInput.nextSibling);
		titleSpan.appendChild(document.createTextNode(focusInput.getAttribute("title")));
		focusInput.removeAttribute("title");
		//bij form error tooltip error class!
		if (focusInput.className == 'fielderror'){
			focusInput.nextSibling.className = "error";
		}
	}
	else {
		//bij form error tooltip error class!
		if (focusInput.className == 'fielderror'){
			focusInput.nextSibling.className = "error";
		}
		else {
			focusInput.nextSibling.className = "";
			focusInput.nextSibling.style.display = "inline";
		}
	}
}

function hideTooltip(e) {
	if (!e) var e = window.event;
	var focusInput = (e.srcElement == null)? e.target : e.srcElement;
	//alert(focusInput.id + ": " + focusInput.nextSibling.tagName);
	//focusInput.className = "";
	var inputParent = focusInput.parentNode;
	var hasSpan = (focusInput.nextSibling)? (focusInput.nextSibling.tagName == "SPAN"): false;
	if (!hasSpan) {
		// no span available or field error
	}
	else {
		focusInput.nextSibling.className = "hidden";
		focusInput.nextSibling.style.display = "none";
	}
}


/* TOGGLE ONDERDELEN FORMULIER
-----------------------------------------------------*/

function initForm(){
	toggleFinder('melder-vinder-nee', 'finder');
}

function toggleFinder(radioId, fieldId){
	var radioButton = document.getElementById(radioId);
	if (radioButton) {
		if (radioButton.checked == true && radioButton.value == "nee"){
			document.getElementById(fieldId).className = "visible";
		}
		else {
			document.getElementById(fieldId).className = "hidden";
		}
	}
}

var upload = new upload(1, 5);

addEvent(window, 'load', initForm);
addEvent(window, 'load', formToolTips);
addEvent(window, 'load', formToolTips2);
