/**
 Gestolen email check functie..
 Hij is wel uber-uitgebreid :P
**/
function ExtendedEmailCheck (emailStr) {
	var checkTLD=1;
	var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
	var emailPat=/^(.+)@(.+)$/;
	var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
	var validChars="\[^\\s" + specialChars + "\]";
	var quotedUser="(\"[^\"]*\")";
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom=validChars + '+';
	var word="(" + atom + "|" + quotedUser + ")";
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
	var matchArray=emailStr.match(emailPat);
	if (matchArray==null) {
		return false;
	}
	var user=matchArray[1];
	var domain=matchArray[2];
	for (i=0; i<user.length; i++) {
		if (user.charCodeAt(i)>127) {
			return false;
	   }
	}
	for (i=0; i<domain.length; i++) {
		if (domain.charCodeAt(i)>127) {
			return false;
	   }
	}
	if (user.match(userPat)==null) {
		return false;
	}
	var IPArray=domain.match(ipDomainPat);
	if (IPArray!=null) {
		for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
				return false;
	   		}
		}
		return true;
	}
	var atomPat=new RegExp("^" + atom + "$");
	var domArr=domain.split(".");
	var len=domArr.length;
	for (i=0;i<len;i++) {
		if (domArr[i].search(atomPat)==-1) {
			return false;
	   }
	}
	if (checkTLD && domArr[domArr.length-1].length!=2 && domArr[domArr.length-1].search(knownDomsPat)==-1) {
		return false;
	}
	if (len<2) {
		return false;
	}
	return true;
}

// Alle submenus inklappe (aparte functie vanwegen document.onclick)
function HideSubmenus() {
	// Menus verbergen
	var HideEl = getElementsByClass('SubMenu', null, 'div');
	for(r = 0; r < HideEl.length; r++) {
		HideEl[r].style.display = 'none';
	}
	// Atieve knop wisselen
	if(MenuSave != '') {
		El('CurrentTab').id = MenuSave;
		MenuSave = '';
	}
}

// Weergeven submenu
function ShowSubMenu(MenuName) {
	// Submenus verbergen
	HideSubmenus();
	
	if(MenuName == 0) {
		// Alleen verbergen menu's verder niks
		return;
	}
	
	// En anders weergeven van submenu
	El(MenuName + 'Menu').style.display = '';
	
	// Atief menu instellen
	SetAtiveMenu(MenuName);
}

// Zodra ergens geklikt word moeten menu's ingeklapt worden
document.onclick = function() {
	HideSubmenus();
}

var MenuSave = '';
function SetAtiveMenu(MenuId) {
	MenuSave = El('Tab' + MenuId).id;
	El('Tab' + MenuId).id = 'CurrentTab';
}

window.onload = function() {
	// Menus verbergen
	var HideEls = getElementsByClass('bluebox', null, 'div');
	for(r = 0; r < HideEls.length; r++) {
		HideEls[r].onmouseover = function() {
			HideSubmenus();
		} 
	}
}

// Voor het laten verkleuren van de rijen in tabel
function ColorRowBlue(FuncId) {
	if ( FuncId.style.backgroundColor == '') {
		FuncId.style.backgroundColor = '#D9E3F4';
		FuncId.style.color = '#666';
	} else {
		FuncId.style.backgroundColor = '';
		FuncId.style.color = '';
	}
}

// Voor het inschrijven
function InschrijfForm(ActId, ActName) {
	El("ActId").value = ActId;
	El("FormActName").innerHTML = '"'+unescape(ActName).replace(/\+/gi, " ")+'"';
	El("InschrijfForm").style.display = '';
	document.location = '#';
}

// Inschrijf check
function CheckInschrijfForm() {
	if(trim(El('naam').value).length < 4) {
		alert("Naam te kort!\nEen volledige naam is langer dan 4 tekens..")
		return false;
	}
	if(!ExtendedEmailCheck(El('email').value)) {
		alert("Ongeldig emailadres!")
		return false;
	}
	if(trim(El('telefoon').value).length < 10) {
		alert("Telefoonnummer te kort!\nEen volledige telefoonnummer bestaat uit 10 cijfers")
		return false;
	}
	return true;
}

// Intresse check
function CheckIntresseForm() {
	if(trim(El('intnaam').value).length < 4) {
		alert("Naam te kort!\nEen volledige naam is langer dan 4 tekens..")
		return false;
	}
	if(!ExtendedEmailCheck(El('intemail').value)) {
		alert("Ongeldig emailadres!")
		return false;
	}
	return true;
}

// Voor het intresse tonen
function ToonIntresse(ActName) {
	El("ActName").value = unescape(ActName.replace(/\+/gi, " "));
	El("HerhalingActName").innerHTML = '"'+unescape(ActName.replace(/\+/gi, " "))+'"';
	El("IntresseForm").style.display = '';
	document.location = '#';
}

// Vervangt smilie code door plaatjes
function UBBSmilieReplace(text) {
	text = text.replace(/:cry:/gi, "<img alt='' src='/images/smilies/cry.gif'>");
	text = text.replace(/:devil:/gi, "<img alt='' src='/images/smilies/devil.gif'>");
	text = text.replace(/:@/gi, "<img alt='' src='/images/smilies/frown.gif'>");
	text = text.replace(/\|:\(/gi, "<img alt='' src='/images/smilies/frusty.gif'>");
	text = text.replace(/:P/gi, "<img alt='' src='/images/smilies/puh2.gif'>");
	text = text.replace(/:kots:/gi, "<img alt='' src='/images/smilies/pukey.gif'>");
	text = text.replace(/:O/gi, "<img alt='' src='/images/smilies/redface.gif'>");
	text = text.replace(/\*D/gi, "<img alt='' src='/images/smilies/shiny.gif'>");
	text = text.replace(/:Z/gi, "<img alt='' src='/images/smilies/sleephappy.gif'>");
	text = text.replace(/:\)/gi, "<img alt='' src='/images/smilies/smile.gif'>");
	text = text.replace(/;\)/gi, "<img alt='' src='/images/smilies/wink.gif'>");
	text = text.replace(/;-\)/gi, "<img alt='' src='/images/smilies/wink.gif'>");
	text = text.replace(/:$/gi, "<img alt='' src='/images/smilies/biggrin.gif'>");
	text = text.replace(/:\+/gi, "<img alt='' src='/images/smilies/clown.gif'>");
	text = text.replace(/:\?/gi, "<img alt='' src='/images/smilies/confused.gif'>");
	text = text.replace(/8-\)/gi, "<img alt='' src='/images/smilies/coool.gif'>");
	text = text.replace(/\(A\)/gi, "<img alt='' src='/images/smilies/smilie_innocent.gif'>");
	text = text.replace(/\(L\)/gi, "<img alt='' src='/images/smilies/smilie_heart_bounce.gif'>");
	text = text.replace(/:D/gi, "<img alt='' src='/images/smilies/shiny.gif'>");
	text = text.replace(/\[img\](.*?)\[\/img\]/gi, "<a href='$1' target='_blank'>$1</a>");
	text = text.replace(/\[quote\](.*?)\[\/quote\]/gi, "<blockquote><b>Quote:</b><br>$1</blockquote>");
	text = text.replace(/\[quote\](.*?)\[\/quote\]/gi, "<blockquote><b>Quote:</b><br>$1</blockquote>");
	text = text.replace(/\[quote\](.*?)\[\/quote\]/gi, "<blockquote><b>Quote:</b><br>$1</blockquote>");
	text = text.replace(/\[quote\](.*?)\[\/quote\]/gi, "<blockquote><b>Quote:</b><br>$1</blockquote>");
	return text;
}

// Toevoegen smilie
function emoticon(smilie) {
	var TextField = El("commentveld");
	TextField.value += " " + smilie + " ";
	TextField.focus();
}

// Bijwerken smilies in reacties algemeen
function CheckSmilies() {
	var Reacties = getElementsByClass('ReactieText', null, null);
	for(r = 0; r < Reacties.length; r++) {
		Reacties[r].innerHTML = UBBSmilieReplace(Reacties[r].innerHTML);
	}
}

// Edit menu Gastenboek
function OpenEditMenuGB (ID) { 
	ShowOrHide('EDIT' + ID);
	ShowOrHide('MSG' + ID);
}

// Functie om te verbergen
function Hide(ID) {
	El(ID).style.display='none';
}

// Bekijken meer informatie bij agenda
function ExtraInfo(ID) {
	ShowOrHide('ExtraInfo' + ID);
	ShowOrHide('ExtraInfoBox' + ID);
}

// Toevoegen link bij nieuwtjes
function addLink(selectBox, ID) {
	// Ophalen waarde
	Link = selectBox.value;
	// Plaatsen in goede input
	El('Link['+ID+']').value = Link;
}

// Leeg maken
function clearMsg(ID) {
	El('Link['+ID+']').value = '';
	El('Msg['+ID+']').value = '';
	El('LinkVal['+ID+']').value = '';
	El('LinkVal['+ID+']').form.submit()
}