﻿var dbug = 0;
var myarray;
var cookieName = 'favorieten';
var timeToKeep = 31536000000; // one year
var expires = new Date();

expires.setTime(expires.getTime() + timeToKeep);


function ToonFavorieten(){
	if(Favorieten.style.visibility == 'visible') {

		Favorieten.style.visibility='hidden';

	}else{
		if(Favorieten.style.visibility == 'hidden' || Favorieten.style.visibility == '') {
			Favorieten.style.visibility='visible';
		}
	}
}


function WijzigFavoriet(pos){
	//var pos = parseInt(document.all.favorieten.options(document.all.favorieten.selectedIndex).value);
	if (!isNaN( pos )){
		aEntry = get_entry(cookieName, myarray, pos, expires);
		var omschrijving = prompt('Wat wordt de nieuwe omschrijving voor deze link?', aEntry[0]);

		if(omschrijving != null){
			alert(omschrijving);
			del_entry(cookieName, myarray, pos, expires);
			get_array(cookieName, myarray);
			var num = next_entry(myarray);
			myarray[num] = omschrijving + '@@@' + aEntry[1];
			set_array(cookieName, myarray, expires);
		}
	}else{
		alert('Geen geldige optie geselecteerd.');
	}

	VulFavrietenLijst(false);
}

function WisFavoriet(pos){
	//var pos = parseInt(document.all.favorieten.options(document.all.favorieten.selectedIndex).value);
	
	if(confirm("Weet u zeker dat u deze favoriet wilt verwijderen?")){
		if (!isNaN( pos )){
			del_entry(cookieName, myarray, pos, expires);
		}else{
			alert('Geen geldige optie geselecteerd.');
		}
		VulFavrietenLijst(false);
	}
	
}


function getFavorieten(bBeheer){
	myarray = init_array();
	get_array(cookieName, myarray);
	size = next_entry(myarray);
	if(size==1){
		set_array(cookieName, myarray, expires);
	}

	VulFavrietenLijst(bBeheer);
}


function VulFavrietenLijst(bBeheer){

	var sHtml;
	var myFavo = new Array();

	sHtml = '<table cellpadding="2" cellspacing="0" width="100%">';
	sHtml = sHtml + '<tr class="favorietenheader"><td colspan="2">Mijn Favorieten</td>';
	sHtml = sHtml + '<td width="20"><img align="left" border="0" src="/images/basics/DELETE.GIF" onClick="ToonFavorieten();" onMouseOver="this.style.cursor=\'hand\';" hspace="0" alt="Venster sluiten"></tr></tr>';
	
	//Vul Lijst met favorieten
	get_array(cookieName, myarray);

	if(next_entry(myarray) == 1){
		sHtml = sHtml + '<tr><td>U heeft nog geen favorieten aangemaakt.</td></tr>';
	}else{
		for (var i=1; i<next_entry(myarray); i++) {
			myFavo[i] = myarray[i] + '@@@' + i;
		}
		
		myFavo.sort();
		
		for (var i=0; i<myFavo.length - 1; i++) {
			thisCookie = myFavo[i].split('@@@');

			if(thisCookie[1] != 'null'){

				sHtml = sHtml + '<tr onmouseover="this.className=\'ApplyHighlight\'" onmouseout="this.className=\'ResetHighlight\'"><td width="100%">';

				if(bBeheer==true){
					sHtml = sHtml + '<a href="' + i + '">' + thisCookie[0] + ' (' + thisCookie[1] + ')</a>';
					
				}else{
					sHtml = sHtml + '<a href="' + thisCookie[1] + '">' + thisCookie[0] + '</a>';
					sHtml = sHtml + '</td><td width="20"><a href="javascript:WijzigFavoriet(' + thisCookie[2] + ');"><img src="/images/icons/edit.gif" border="0" alt="Wijzig favoriet"></a>';
					sHtml = sHtml + '</td><td width="20"><a href="javascript:WisFavoriet(' + thisCookie[2] + ');"><img src="/images/icons/trash.gif" border="0" alt="Verwijder favoriet"></a>';
				}
				sHtml = sHtml + '</td></tr>';
			}
		}
	}	
	
	//sHtml = sHtml + '<tr><td colspan="3"><img src="/images/basics/favorieten-line.gif" border="0" width="100%" height="5"></td></tr>';
	//sHtml = sHtml + '<tr><td colspan="3"><a href="javascript:ToonFavorieten();">Venster Sluiten</a></td></tr>';
	sHtml = sHtml + '</table>';
	Favorieten.innerHTML = sHtml;
}


function VulFavrietenDropdown(bBeheer){
	//Leeg Combo
	var optCount;
	optCount = document.all.favorieten.options.length

	for (i=0; i<optCount; i++){
	  document.all.favorieten.options.remove(0);
	}

	//Vul Combo met Titel
	var oOption = document.createElement("OPTION");
	document.all.favorieten.options.add(oOption);
	oOption.innerText=("Favorieten");
	oOption.value="";

	//Vul Combo met favorieten
	get_array(cookieName, myarray);

	for (var i=1; i<next_entry(myarray); i++) {
		thisCookie = myarray[i].split('@@@');

		if(thisCookie[1] != 'null'){
			var oOption = document.createElement("OPTION");
			document.all.favorieten.options.add(oOption);
			
			if(bBeheer==true){
				oOption.value=(i);
				oOption.innerText=(thisCookie[0] + ' (' + thisCookie[1] + ')');
			}else{
				oOption.innerText=(thisCookie[0]);
				oOption.value=(thisCookie[1]);
			}
		}
	}
	SortD(document.all.favorieten);
}


function ToevoegenFavoriet(bUpdateLijst){
	
	if(myarray == null){
		myarray = init_array();
	}
	var omschrijving = document.title;
	get_array(cookieName, myarray);
	var num = next_entry(myarray);
	myarray[num] = omschrijving + '@@@' + document.location;
	set_array(cookieName, myarray, expires);
	

	if(bUpdateLijst){VulFavrietenLijst(false);}
	alert('Link toegevoegd aan uw favorieten.');
}


function getURL(){
	var sURL = document.all.favorieten.options(document.all.favorieten.selectedIndex).value;
	parent.location = sURL;
}

function d_a(ary) {
	var beg = next_entry(ary) - 1;
	for (var i = beg ; i > -1; i--) {
		ary[i] = null;
	}
}


function init_array() {
	if (dbug) alert('init_cookie');
	var ary = new Array(null);
	return ary;
}


function set_cookie(name,value,expires) {
	if (dbug) alert('set_cookie');
	if (!expires) expires = new Date();
	document.cookie = name + '=' + escape(value) + '; expires=' + expires.toGMTString() + ';path=/';
}


function get_cookie(name) {
	if (dbug) alert('get_cookie');
	var dcookie = document.cookie;
	var cname = name + "=";
	var clen = dcookie.length;
	var cbegin = 0;
	while (cbegin < clen) {
		var vbegin = cbegin + cname.length;
		if (dcookie.substring(cbegin, vbegin) == cname) {
			var vend = dcookie.indexOf (";", vbegin);
			if (vend == -1) vend = clen;
				return unescape(dcookie.substring(vbegin, vend));
		}
		cbegin = dcookie.indexOf(" ", cbegin) + 1;
		if (cbegin == 0) break;
	}
	return null;
}


function del_cookie(name) {
	if (dbug) alert('del_cookie');
	document.cookie = name + '=' + '; expires=Thu, 01-Jan-70 00:00:01 GMT; path=/';
}


function get_array(name, ary) {
	if (dbug) alert('get_array');
	d_a(ary);
	var ent = get_cookie(name);
	if (ent) {
		i = 1;
		while (ent.indexOf('^') != '-1') {
			ary[i] = ent.substring(0,ent.indexOf('^'));
			i++;
			ent = ent.substring(ent.indexOf('^')+1, ent.length);
		}
	}
}


function set_array(name, ary, expires) {
	if (dbug) alert('set_array');
	var value = '';
	for (var i = 1; ary[i]; i++) {
		value += ary[i] + '^';
	}
	set_cookie(name, value, expires);
}


function del_entry(name, ary, pos, expires) {
	if (dbug) alert('del_entry');
	var value = '';
	get_array(name, ary);
	for (var i = 1; i < pos; i++) {
		value += ary[i] + '^';
	}
	for (var j = pos + 1; ary[j]; j++) {
		value += ary[j] + '^';
	}
	set_cookie(name, value, expires);
}


function get_entry(name, ary, pos, expires) {
	if (dbug) alert('get_entry');
	get_array(name, ary);
	return ary[pos].split('@@@');

}


function next_entry(ary) {
	if (dbug) alert('next_entry');
	var j = 0;
	for (var i = 1; ary[i]; i++) {
		j = i
	}
	return j + 1;
}


function debug_on() {
	dbug = 1;
}


function debug_off() {
	dbug = 0;
}

function dump_cookies() {
	if (document.cookie == '') document.write('No Cookies Found');
	else {thisCookie = document.cookie.split('; ');
	for (i=0; i<thisCookie.length; i++) {
		document.write(thisCookie[i] + '<br \/>');}
	}
}
