/* Main javascript functions */
function setColor(which)
{
	document.getElementById('link-' + which).style.color = "orange";
}

function resetColor(which)
{
	document.getElementById('link-' + which).style.color = "white";
}

function searchNow()
{
	var zoek = document.getElementById('zoekvld').value;
	document.location.href='search/search.php?query='+zoek+'&search=1'
}

function clearSearch()
{
	document.getElementById('zoekvld').value = '';
}

function resetSearch()
{
	if(document.getElementById('zoekvld').value == '')
	{
		document.getElementById('zoekvld').value = 'Zoeken naar...';
	}
}

function handleKeyPress(e)
{
	var key=e.keyCode || e.which;
	if (key==13)//enter
	{
		searchNow();
	}
}

function setSkip(page)
{
	if(document.getElementById('skipintro').checked)
	{
		if(page == 'main')
		{
			document.location.href='main.php?skip=1';
		}
		else
		{
			document.location.href='main.php?p='+page+'&skip=1';
		}
	}
	else
	{
		if(page == 'main')
		{
			document.location.href='main.php';
		}
		else
		{
			document.location.href='main.php?p='+page;
		}
	}
}

//count function
String.prototype.count=function(s1) 
{
return (this.length - this.replace(new RegExp(s1,"g"), '').length) / s1.length;
}//count end
function charCount(needle, haystack, offset)
{
	if(offset == null)
	{
		offset = 0;
	}
	var count = 0;

	for (var i=offset;i<haystack.length;i++) {
	if (needle == haystack.substr(i,needle.length))
	count++;
	}
	return count;
}
function trim(sString) {
	return sString.replace(/^\s+|\s+$/g, "");
}
function validvalue(value, validchars, casesensitive){
	value = trim(value);
	
	if (casesensitive != 1) {
		value = value.toUpperCase();
		validchars = validchars.toUpperCase();
	}
	charpos = 0;
	while ((charpos < value.length) && (validchars.indexOf(value.charAt(charpos)) != -1))
		charpos++;

	return charpos == value.length;
}// needs trim function
function validemail(str) {
	
	str = trim(str);
	
	var at="@";
	var dot=".";
	var lat=str.indexOf(at);
	var lstr=str.length;
	var ldot=str.indexOf(dot);
	var lastdot = str.lastIndexOf(dot);
	var ddot=".."
	
	
	/* check: is there an @, is it on pos. 1, is it on last pos. -> error */
	if (lat==-1 || lat==0 || str.lastIndexOf(at)==lstr-1){
	    return false;
	}

	/* check: is there a ., is it on pos. 1, is it on last pos. -> error */
	if (ldot==-1 || ldot==0 || lastdot==lstr-1){
	    return false;
	}

	/* check: is there a second @ -> error */
	if (str.indexOf(at,(lat+1))!=-1){
	    return false;
	}

	/* check: is there a . right before or after @ -> error */
	if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
	    return false;
	}

	/* check: is there no . at all after @ -> error */
	if (str.indexOf(dot,(lat+2))==-1){
	    return false;
	}
	
	/* check: is there a .. -> error */
	if (str.indexOf(ddot)!=-1){
	    return false;
	}
	
	/* check: is the toplevel domain not between 2 and 4 chars -> error */
	if (lstr - lastdot<2 || lstr - lastdot>4){
		return false;
	}
	
	/* check: are there any other chars than those below -> error | (see http://en.wikipedia.org/wiki/Email_address for more info on valid chars)*/
	if (!validvalue(str,'0123456789abcdefghijklmnopqrstuvwxyz@.-$+_!#*^{}|~',0)){ //left out % & ' / = ? ` for probable faults when used in url
	 	return false;
	}
		return true;		
}//fend validemail(), needs validvalue
function validphone(phone)
{
	phone = trim(phone);
	
	var minus		= "-";
	var firstmin	= phone.indexOf(minus);

	//geen afwijkende tekens (cijfers en -)
	if (!validvalue(phone,'0123456789-',0)){
		return false;
	}
		
	//eerste getal 0
	if(phone.indexOf('0') > 0 || phone.indexOf('0') == -1)
	{
		return false;
	}
	
	//na strip 10 getallen
	var tmpphone = phone.replace("-", "");
	if(tmpphone.length != 10)
	{
		return false;
	}
	
	//indien 1 -
	if(firstmin != -1)
	{
		//niet meer dan 1 -
		if (phone.indexOf(minus,(firstmin+1))!=-1){
			return false;
		}
		//positie - plaats 2,3 of 4 (tel vanaf 0)
		if(firstmin < 2 || firstmin > 4)
		{
			return false;
		}
	}
	return true;
}//needs validvalue

function checknws()
{
	done = true;
	
	//herstel adres en email
	document.getElementById('straat').style.backgroundColor = 'white';
	document.getElementById('straat').style.cursor = '';
	document.getElementById('straat').title = '';
	document.getElementById('huisnr').style.backgroundColor = 'white';
	document.getElementById('huisnr').style.cursor = '';
	document.getElementById('huisnr').title = '';
	document.getElementById('woonplaats').style.backgroundColor = 'white';
	document.getElementById('woonplaats').style.cursor = '';
	document.getElementById('woonplaats').title = '';
	document.getElementById('email').style.backgroundColor = 'white';
	document.getElementById('email').style.cursor = '';
	document.getElementById('email').title = '';
	
	if(!document.getElementById('ges_m').checked && !document.getElementById('ges_v').checked)
	{
		document.getElementById('label_m').style.backgroundColor = 'pink';
		document.getElementById('label_m').style.cursor = 'help';
		document.getElementById('label_m').title = 'Het geslacht is verplicht';
		document.getElementById('label_v').style.backgroundColor = 'pink';
		document.getElementById('label_v').style.cursor = 'help';
		document.getElementById('label_v').title = 'Het geslacht is verplicht';
		done = false;	
	}
	if(trim(document.getElementById('voornaam').value) == '')
	{
		document.getElementById('voornaam').style.backgroundColor = 'pink';
		document.getElementById('voornaam').style.cursor = 'help';
		document.getElementById('voornaam').title = 'De voornaam is verplicht';
		done = false;	
	}
	if(trim(document.getElementById('achternaam').value) == '')
	{
		document.getElementById('achternaam').style.backgroundColor = 'pink';
		document.getElementById('achternaam').style.cursor = 'help';
		document.getElementById('achternaam').title = 'De achternaam is verplicht';
		done = false;	
	}
	if(trim(document.getElementById('straat').value) == '')
	{
		document.getElementById('straat').style.backgroundColor = 'pink';
		document.getElementById('straat').style.cursor = 'help';
		document.getElementById('straat').title = 'De straat is verplicht';
		done = false;	
	}
	if(trim(document.getElementById('huisnr').value) == '')
	{
		document.getElementById('huisnr').style.backgroundColor = 'pink';
		document.getElementById('huisnr').style.cursor = 'help';
		document.getElementById('huisnr').title = 'Het huisnummer is verplicht';
		done = false;	
	}
	if(trim(document.getElementById('postcode').value) == '')
	{
		document.getElementById('postcode').style.backgroundColor = 'pink';
		document.getElementById('postcode').style.cursor = 'help';
		document.getElementById('postcode').title = 'De postcode is verplicht';
		done = false;	
	}
	if(trim(document.getElementById('woonplaats').value) == '')
	{
		document.getElementById('woonplaats').style.backgroundColor = 'pink';
		document.getElementById('woonplaats').style.cursor = 'help';
		document.getElementById('woonplaats').title = 'De woonplaats is verplicht';
		done = false;	
	}
	if((trim(document.getElementById('straat').value) == '') && (document.getElementById('huisnr').value != '' || document.getElementById('woonplaats').value != '' || document.getElementById('postcode').value != ''))
	{
		document.getElementById('straat').style.backgroundColor = 'pink';
		document.getElementById('straat').style.cursor = 'help';
		document.getElementById('straat').title = 'Indien u uw adres opgeeft dient u ook uw straat op te geven';
		done = false;	
	}
	if((trim(document.getElementById('huisnr').value) == '') && (document.getElementById('straat').value != '' || document.getElementById('woonplaats').value != '' || document.getElementById('postcode').value != ''))
	{
		document.getElementById('huisnr').style.backgroundColor = 'pink';
		document.getElementById('huisnr').style.cursor = 'help';
		document.getElementById('huisnr').title = 'Indien u uw adres opgeeft dient u ook uw huisnummer op te geven';
		done = false;	
	}
	if((trim(document.getElementById('woonplaats').value) == '') && (document.getElementById('huisnr').value != '' || document.getElementById('straat').value != '' || document.getElementById('postcode').value != ''))
	{
		document.getElementById('woonplaats').style.backgroundColor = 'pink';
		document.getElementById('woonplaats').style.cursor = 'help';
		document.getElementById('woonplaats').title = 'Indien u uw adres opgeeft dient u ook uw woonplaats op te geven';
		done = false;	
	}
	if((trim(document.getElementById('postcode').value) == '') && (document.getElementById('huisnr').value != '' || document.getElementById('straat').value != '' || document.getElementById('woonplaats').value != ''))
	{
		document.getElementById('postcode').style.backgroundColor = 'pink';
		document.getElementById('postcode').style.cursor = 'help';
		document.getElementById('postcode').title = 'Indien u uw adres opgeeft dient u ook uw postcode op te geven';
		done = false;	
	}
	if (!validvalue(trim(document.getElementById('voornaam').value), "abcdefghijklmnopqrstuvwxyz.-'/ "))
	{
		document.getElementById('voornaam').style.backgroundColor = 'pink';
		document.getElementById('voornaam').style.cursor = 'help';
		document.getElementById('voornaam').title = 'De voornaam bevat ongeldige tekens';
		done = false;	
	}
	if (!validvalue(trim(document.getElementById('tussenvoegsel').value), "abcdefghijklmnopqrstuvwxyz.-'/ "))
	{
		document.getElementById('tussenvoegsel').style.backgroundColor = 'pink';
		document.getElementById('tussenvoegsel').style.cursor = 'help';
		document.getElementById('tussenvoegsel').title = 'Het tussenvoegsel bevat ongeldige tekens';
		done = false;	
	}	
	if (!validvalue(trim(document.getElementById('achternaam').value), "abcdefghijklmnopqrstuvwxyz.-'/ "))
	{
		document.getElementById('achternaam').style.backgroundColor = 'pink';
		document.getElementById('achternaam').style.cursor = 'help';
		document.getElementById('achternaam').title = 'De achternaam bevat ongeldige tekens';
		done = false;	
	}	
	if (!validvalue(trim(document.getElementById('straat').value), "1234567890abcdefghijklmnopqrstuvwxyz.-'/ "))
	{
		document.getElementById('straat').style.backgroundColor = 'pink';
		document.getElementById('straat').style.cursor = 'help';
		document.getElementById('straat').title = 'De straat bevat ongeldige tekens';
		done = false;	
	}	
	if (!validvalue(trim(document.getElementById('huisnr').value), "abcdefghijklmnopqrstuvwxyz1234567890"))
	{
		document.getElementById('huisnr').style.backgroundColor = 'pink';
		document.getElementById('huisnr').style.cursor = 'help';
		document.getElementById('huisnr').title = 'Het huisnummer bevat ongeldige tekens';
		done = false;	
	}	
	if (!validvalue(trim(document.getElementById('woonplaats').value), "abcdefghijklmnopqrstuvwxyz.-'/ "))
	{
		document.getElementById('woonplaats').style.backgroundColor = 'pink';
		document.getElementById('woonplaats').style.cursor = 'help';
		document.getElementById('woonplaats').title = 'De woonplaats bevat ongeldige tekens';
		done = false;	
	}	
	if (!validvalue(trim(document.getElementById('postcode').value), "abcdefghijklmnopqrstuvwxyz1234567890"))
	{
		document.getElementById('postcode').style.backgroundColor = 'pink';
		document.getElementById('postcode').style.cursor = 'help';
		document.getElementById('postcode').title = 'De postcode bevat ongeldige tekens';
		done = false;	
	}	
	if (!validvalue(trim(document.getElementById('telefoon').value), "0123456789-"))
	{
		document.getElementById('telefoon').style.backgroundColor = 'pink';
		document.getElementById('telefoon').style.cursor = 'help';
		document.getElementById('telefoon').title = 'Het telefoonnummer bevat ongeldige tekens';
		done = false;	
	}	
	if (!validvalue(trim(document.getElementById('mobiel').value), "0123456789-"))
	{
		document.getElementById('mobiel').style.backgroundColor = 'pink';
		document.getElementById('mobiel').style.cursor = 'help';
		document.getElementById('mobiel').title = 'Het mobiele telefoonnummer bevat ongeldige tekens';
		done = false;	
	}
	if ((validemail(trim(document.getElementById('email').value)) == false) && (trim(document.getElementById('email').value) != ''))
	{
		document.getElementById('email').style.backgroundColor = 'pink';
		document.getElementById('email').style.cursor = 'help';
		document.getElementById('email').title = 'Het opgegeven emailadres is niet geldig';
		done = false;	
	}	
	if (((trim(document.getElementById('telefoon').value).length > 11) || (trim(document.getElementById('telefoon').value).length < 11)) && (trim(document.getElementById('telefoon').value) != ''))
	{
		document.getElementById('telefoon').style.backgroundColor = 'pink';
		document.getElementById('telefoon').style.cursor = 'help';
		document.getElementById('telefoon').title = 'Het telefoonnummer bevat te veel of te weinig tekens';
		done = false;	
	}	
	if (((trim(document.getElementById('mobiel').value).length > 11) || (trim(document.getElementById('mobiel').value).length < 11)) && (trim(document.getElementById('mobiel').value) != ''))
	{
		document.getElementById('mobiel').style.backgroundColor = 'pink';
		document.getElementById('mobiel').style.cursor = 'help';
		document.getElementById('mobiel').title = 'Het mobiele telefoonnummer bevat te veel of te weinig tekens';
		done = false;	
	}
	if (((trim(document.getElementById('postcode').value).length > 6) || (trim(document.getElementById('postcode').value).length < 6)) && (trim(document.getElementById('postcode').value) != ''))
	{
		document.getElementById('postcode').style.backgroundColor = 'pink';
		document.getElementById('postcode').style.cursor = 'help';
		document.getElementById('postcode').title = 'De postcode bevat te veel of te weinig tekens';
		done = false;	
	}
	if (!document.getElementById('macht').checked)
	{
		document.getElementById('machtstyle').style.backgroundColor = 'pink';
		document.getElementById('macht').style.cursor = 'help';
		document.getElementById('macht').title = 'U moet accoord gaan met de machtiging';
		done = false;	
	}
	if (!document.getElementById('bank1').checked && !document.getElementById('bank2').checked)
	{
		document.getElementById('bank1').style.backgroundColor = 'pink';
		document.getElementById('bank1').style.cursor = 'help';
		document.getElementById('bank1').title = 'U moet het type bank opgeven';
		document.getElementById('bank2').style.backgroundColor = 'pink';
		document.getElementById('bank2').style.cursor = 'help';
		document.getElementById('bank2').title = 'U moet het type bank opgeven';
		done = false;	
	}
	if(trim(document.getElementById('reknr').value) == '')
	{
		document.getElementById('reknr').style.backgroundColor = 'pink';
		document.getElementById('reknr').style.cursor = 'help';
		document.getElementById('reknr').title = 'Het rekeningnummer is verplicht';
		done = false;	
	}
	if (!validvalue(trim(document.getElementById('reknr').value), "0123456789"))
	{
		document.getElementById('reknr').style.backgroundColor = 'pink';
		document.getElementById('reknr').style.cursor = 'help';
		document.getElementById('reknr').title = 'Het rekeningnummer bevat ongeldige tekens';
		done = false;	
	}
	if(trim(document.getElementById('tenaam').value) == '')
	{
		document.getElementById('tenaam').style.backgroundColor = 'pink';
		document.getElementById('tenaam').style.cursor = 'help';
		document.getElementById('tenaam').title = 'De tenaamstelling is verplicht';
		done = false;	
	}
	if (!validvalue(trim(document.getElementById('tenaam').value), "abcdefghijklmnopqrstuvwxyz.-'/ "))
	{
		document.getElementById('tenaam').style.backgroundColor = 'pink';
		document.getElementById('tenaam').style.cursor = 'help';
		document.getElementById('tenaam').title = 'De tenaamstelling bevat ongeldige tekens';
		done = false;	
	}
	if(trim(document.getElementById('bedrag').value) == '')
	{
		document.getElementById('bedrag').style.backgroundColor = 'pink';
		document.getElementById('bedrag').style.cursor = 'help';
		document.getElementById('bedrag').title = 'Het bedrag is verplicht';
		done = false;	
	}
	if (!validvalue(trim(document.getElementById('bedrag').value), "0123456789.,"))
	{
		document.getElementById('bedrag').style.backgroundColor = 'pink';
		document.getElementById('bedrag').style.cursor = 'help';
		document.getElementById('bedrag').title = 'Het bedrag bevat ongeldige tekens';
		done = false;	
	}
	if(done)
	{
		document.getElementById('nbform').submit();	
	}
	else
	{
		alert('Uw invoer is niet juist, controleer uw invoer');	
	}
}
function planVerwijder(nr)
{
	if(confirm('Weet u zeker dat u dit evenement wilt verwijderen ?'))
	{
		document.location.href='kalender_del.php?nr='+nr;
	}
}
function scroll(offset, direction)
{
	if(direction == 'up')
	{
		offset=offset-1;
	}
	else
	{
		offset=Number(offset)+1;	
	}
	document.getElementById('spon0').style.marginTop = offset + 'px';
	
	maxoffset = (0-document.getElementById('sponth').value+425);
	
	if(offset > maxoffset && direction == 'up')
	{
		timeoutId = setTimeout('scroll(\''+offset+'\',\'up\')', 25);
	}
	else
	{
		if(offset < 50)
		{
			timeoutId = setTimeout('scroll(\''+offset+'\',\'down\')', 25);
		}
		else
		{
			timeoutId = setTimeout('scroll(\''+offset+'\',\'up\')', 25);
		}
	}
}
function showLeeftijd()
{
	if(document.getElementById('leeflink').innerHTML == 'Leeftijdsindeling weergeven')
	{
		document.getElementById('leeflink').innerHTML = 'Leeftijdsindeling verbergen';
		document.getElementById('leeftijd').style.display = 'block';
	}
	else
	{
		document.getElementById('leeflink').innerHTML = 'Leeftijdsindeling weergeven';
		document.getElementById('leeftijd').style.display = 'none';
	}
}
