//	--- GETASTUDENT.NL JAVASCRIPT/FUNCTIONS.JS ---	//
//	Hier worden alle algemene javascript-functions 	//
//	aangemaakt

function swapDiv(new_div, old_div)
{	// functie voor het zichtbaar maken van de ene, en onzichtbaar maken van de andere div
	new_div = document.getElementById(new_div);
	new_div.style.display = 'block';
	
	if(old_div != '')
	{
		old_div = document.getElementById(old_div);
		old_div.style.display = 'none';
	}
}

function showhidediv(div, getFocus, overlay)
{	// functie voor het zichtbaar en onzichtbaar maken van een div
	div = document.getElementById(div);
	
	if( (!div.style.display) || (div.style.display == 'none') )
	{
		div.style.display = 'block';
	}
	else
	{
		div.style.display = 'none';
	}
	
	if( overlay )
	{
		document.getElementById('overlay').style.display = div.style.display;
	}
	
	if( getFocus )
	{
		document.getElementById(getFocus).focus();
	}
}

function check_all(mainCheckBox, checkBox)
{	// functie voor 'selecteer alles'
	i = 1;
	while( curCheckBox = document.getElementById(checkBox + i) )
	{
		curCheckBox.checked = mainCheckBox.checked;
		if(i > 100)
		{	// voor de zekerheid, mochten we onverhoopt
			// in een eindeloze lus raken
			break;
		}
		i++;
	}
}

function goto_url(str_url)
{
	document.location.href = str_url;
}

function zoek(base_url)
{
	var q = document.getElementById('zoek_q').value;	
	var soort = document.getElementById('zoek_soort').value;
	var type = document.getElementById('zoek_type').value;
	var niveau = document.getElementById('zoek_niveau').value;
	var regio = document.getElementById('zoek_regio').value;
	var leeftijd = document.getElementById('leeftijd').value;
	
	// achterhaal welke brances geselecteerd zijn
	branches = '';
	i = 1;
	i2 = 1;
	while( curCheckBox = document.getElementById('sector_' + i) )
	{
		if( curCheckBox.checked )
		{
			if( i2 > 1 )
			{
				branches += ',';
			}
			branches += curCheckBox.value;
			i2++;
		}
		if(i > 100)
		{	// voor de zekerheid, mochten we onverhoopt
			// in een eindeloze lus raken
			break;
		}
		i++;
	}
	
	q = q == 'Trefwoorden' ? '' : q;
	
	url = base_url + 'zoek/';
	
	if( soort > '' )
	{
		url += soort + '/';
	}
	
	if( type > '' )
	{
		url += type + '/';
	}
	
	if( niveau > '' )
	{
		url += niveau + '/';
	}
	
	if( regio > '' )
	{
		url += regio + '/';
	}
	
	if( q > '' )
	{
		url += '?q=' + URLEncode(q);
	}
	
	if( ( (leeftijd > '') || (branches > '') ) && (q > '') )
	{
		url += '&';
	}
	else if( (leeftijd > '') || (branches > '') )
	{
		url += '?';
	}
	
	if( leeftijd > '' )
	{
		url += 'leeftijd=' + leeftijd;
	}
	
	if( (leeftijd > '') && (branches > '') )
	{
		url += '&';
	}
	
	if( branches > '' )
	{
		url += 'branches=' + branches;
	}
	
	goto_url(url);
	
}

// URL encoderen en decoderen

function URLEncode(value)
{
	var SAFECHARS = "0123456789" +
					"ABCDEFGHIJKLMNOPQRSTUVWXYZ" +
					"abcdefghijklmnopqrstuvwxyz" +
					"-_.!~*'()";
	var HEX = "0123456789ABCDEF";

	var plaintext = value
	var encoded = "";
	
	for (var i = 0; i < plaintext.length; i++ )
	{
		var ch = plaintext.charAt(i);
	    if (ch == " ")
		{
		    encoded += "+";
		}
		else if (SAFECHARS.indexOf(ch) != -1)
		{
		    encoded += ch;
		}
		else
		{
		    var charCode = ch.charCodeAt(0);
			
			encoded += "%";
			encoded += HEX.charAt((charCode >> 4) & 0xF);
			encoded += HEX.charAt(charCode & 0xF);
		}
	}
	
	return encoded;
}

function URLDecode(value)
{
   var HEXCHARS = "0123456789ABCDEFabcdef"; 
   var encoded = value;
   
   var plaintext = "";
   var i = 0;
   
   while (i < encoded.length)
   {
       var ch = encoded.charAt(i);
	   
	   if (ch == "+")
	   {
	       plaintext += " ";
		   i++;
	   }
	   else if (ch == "%")
	   {
			if (i < (encoded.length-2) 
					&& HEXCHARS.indexOf(encoded.charAt(i+1)) != -1 
					&& HEXCHARS.indexOf(encoded.charAt(i+2)) != -1 ) {
				plaintext += unescape( encoded.substr(i,3) );
				i += 3;
			}
			else
			{
				alert( 'Bad escape combination near ...' + encoded.substr(i) );
				plaintext += "%[ERROR]";
				i++;
			}
		}
		else
		{
		   plaintext += ch;
		   i++;
		}
	}
	
   return plainttext;
}

function tellafriend(formDiv)
{
	var form = document.getElementById(formDiv);
	var values = form.getElementsByTagName('input');
	
	var validation = true;
	
	for(i=0;i<(values.length-2);i++)
	{
		if( values[i].value == '' )
		{
			validation = false;
		}			
	}
	
	if( !validation )
	{
		document.getElementById('taf_error').innerHTML = 'Niet alle verplichte velden ingevuld.';
	}
	else
	{
		document.getElementById('taf_error').innerHTML = '';
		new Ajax.Updater( 'taf_form', 'ajax/tellafriend.php',
		{
			parameters:
			{
				bestemming_student: values[0].checked,
				bestemming_bedrijf: values[1].checked,
				naam: values[2].value,
				email: values[3].value,
				naam1: values[4].value,
				email1: values[5].value,
				naam2: values[6].value,
				email2: values[7].value
			},
			evalScripts: true,
			method: 'get'
		});
	}
}