// StartParade Functions
var SP = {
	domain: '',
	set_domain: function(domain) {
		this.domain = domain;
	},
	init: function(daughter,crons) {
		var textsize = this.getCookie('textsize');
		if (textsize) {
			this.set_textsize(textsize);
		}

		if (crons.length>0) {
			this.init_crons(crons);
		}
	},
	logclick: function(link) {
		if (link && this.domain) {
			var _cvars = []; 
			_cvars.push(['l', link]);
			(function(link) {
			var spcl = document.createElement('script'); spcl.type = 'text/javascript'; spcl.async = true; 
			spcl.src = 'http://clicklog.'+SP.domain+'/cl.js?l='+link;
			var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(spcl, s); 
			})(link);
		}
	},
	init_crons: function(crons) {
		for (i=0; i<crons.length; i++) {
			(function(cron) {
			var spcl = document.createElement('script'); spcl.type = 'text/javascript'; spcl.async = true; spcl.src = cron;
			var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(spcl, s);
			})(crons[i]);
		}
	},
	state: function(obj,state,state_class) {
		if (state == 1) {
			var default_class = obj.className;
			obj.className = (default_class) ? default_class + ' ' + state_class : state_class;
		} else {
			if (obj.className != state_class) {
				var re = new RegExp(" "+state_class+"$");
				var default_class = obj.className.replace(re,'');
			} else {
				var default_class = '';
			}
			obj.className = default_class;
		}
	},
	init_message_container: function() {
		if (!$('message_container')) {
			var message_container = document.createElement('div');
			message_container.id = 'message_container';
			message_container.style.display = 'none';
			document.appendChild(message_container);
		}
	},
	set_homepage: function(link) {
		if (!this.domain) {
			alert('Domain not initiated');
			return;
		}
		if (document.all) { // internet explorer
			link.style.behavior='url(#default#homepage)';
			link.setHomePage('http://www.'+this.domain);
		} else if (window.sidebar) {
			if (window.netscape) { 
				try {
					netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); 
				}
				catch(e) { 
					alert("Het automatisch configureren van de startpagina is uitgeschakeld in uw browser.\n\nIndien u StartParade als startpagina wilt instellen, ga dan naar http://www."+this.domain+"/ en kies in het menu van uw browser de optie \"instellen als startpagina\"."); 
				}
			}
			var prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components. interfaces.nsIPrefBranch); 
			prefs.setCharPref('browser.startup.homepage','http://www.'+this.domain); 
		} else {
			alert("Het automatisch configureren van de startpagina is uitgeschakeld in uw browser.\n\nIndien u StartParade als startpagina wilt instellen, ga dan naar http://www."+this.domain+"/ en kies in het menu van uw browser de optie \"instellen als startpagina\"."); 
		}
	},
	contact: function() {
		if (!recaptcha_public_key) {
			alert('Error: recaptcha public key not defined');
			return;
		}
		Lightview.show({
		  href: 'contact.php',
		  rel: 'ajax',
		  title: 'Contact formulier',
		  caption: 'Gebruik het onderstaande formulier om contact met ons op te nemen.',
		  options: {
			autosize: true,
			topclose: false,
			ajax: {
				method: 'get',
				parameters: 'ajax_get=1'
			}
		  }
		});
		
		document.observe('lightview:opened', function(event) {
			Recaptcha.create(recaptcha_public_key, "recaptcha_image", {
			   theme: "custom",
			   callback: Recaptcha.focus_response_field
			});
			document.stopObserving('lightview:opened');
		});
	},
	process_contact: function() {
	
		$('spc_loading').show();

		var name = $('spc_name').value;
		var email = $('spc_email').value;
		var message = $('spc_message').value;
		var recaptcha_response = Recaptcha.get_response();
		var recaptcha_challenge = Recaptcha.get_challenge();

		$('spc_submit').disabled = true;
		new Ajax.Request('contact.php', {
				method: 'post',
				parameters: { ajax_process: 1, name: name, email: email, message: message, recaptcha_response: recaptcha_response, recaptcha_challenge: recaptcha_challenge },
				evalJS: true,
				onSuccess: function(response) {
					$('spc_loading').hide();
					$('spc_submit').disabled = false;
					var data = response.responseJSON;
					if (data) {
						if (data[0] == 'error') {
							Recaptcha.reload();
							alert(data[1]);
						} else {
							Recaptcha.destroy();
							SP.init_message_container();
							$('message_container').innerHTML = 'Uw e-mail is verzonden en zal spoedig in behandeling worden genomen door een van onze medewerkers.';
							Lightview.show({
							  href: '#message_container',
							  rel: 'inline',
							  title: 'Bericht verzonden',
							  options: {
								autosize: false,
								width:400,
								height:50,
								topclose: true
							  }
							});
							setTimeout("Lightview.hide();",5000);
						}
					}
				}
			});
	},
	suggest_link: function(daughter) {
		if (!recaptcha_public_key) {
			alert('Error: recaptcha public key not defined');
			return;
		}
		Lightview.show({
		  href: 'suggest.php',
		  rel: 'ajax',
		  title: 'Link aanmelden',
		  caption: 'Registreer je link voor een vermelding op deze website.',
		  options: {
			autosize: true,
			topclose: false,
			width:750,
			ajax: {
				method: 'get',
				parameters: 'ajax_get=1'
			}
		  }
		});
		
		document.observe('lightview:opened', function(event) {
			Recaptcha.create(recaptcha_public_key, "recaptcha_image", {
			   theme: "custom"
			   //,
			   //callback: Recaptcha.focus_response_field
			});
			if (daughter) {
				SP.load_categories(daughter,'sps_category');
				//$('sps_category_suggest_daughter').innerHTML = $('sps_daughter').options[$('sps_daughter').selectedIndex].text;
				$('sps_category_suggest_info').show();
				$('sps_category_select_container').show();
				$('sps_category_suggestion').value = '';
				$('sps_category_suggest_container').hide();
			} else {
				$('sps_category_suggest_info').show();
				$('sps_category_select_container').show();
				$('sps_category_suggestion').value = '';
				$('sps_category_suggest_container').hide();
			}
			
			document.stopObserving('lightview:opened');
		});
	},
	process_suggest_link: function() {
	
		$('sps_loading').show();

		var daughter = $('sps_daughter').value;
		var category = $('sps_category').value;
		var category_suggestion = $('sps_category_suggestion').value;
		var title = $('sps_title').value;
		var url = $('sps_url').value;
		var description = $('sps_description').value;
		if ($('sps_return_link').checked == false) {
			var return_link = 'no';
			var return_url = '';
		} else {
			if ($('sps_return_link_type_root').checked == true) {
				var return_link = 'root';
				var return_url = '';
			} else {
				var return_link = 'custom';
				var return_url = $('sps_return_url').value;
			}
		}
		
		var wm_name = $('sps_wm_name').value;
		var wm_email = $('sps_wm_email').value;
		var wm_message = $('sps_wm_message').value;
		var wm_advertise = ($('sps_wm_advertise').checked == true) ? 1 : 0;
		
		var recaptcha_response = Recaptcha.get_response();
		var recaptcha_challenge = Recaptcha.get_challenge();

		$('sps_submit').disabled = true;
		new Ajax.Request('suggest.php', {
				method: 'post',
				parameters: { ajax_process: 1, daughter: daughter, category: category, category_suggestion: category_suggestion, title: title, url: url, description: description, return_link: return_link, return_url: return_url, wm_name: wm_name, wm_email: wm_email, wm_message: wm_message, wm_advertise: wm_advertise, recaptcha_response: recaptcha_response, recaptcha_challenge: recaptcha_challenge },
				evalJS: true,
				onSuccess: function(response) {
					$('sps_loading').hide();
					$('sps_submit').disabled = false;
					var data = response.responseJSON;
					if (data) {
						if (data[0] == 'error') {
							Recaptcha.reload();
							alert(data[1]);
						} else {
							Recaptcha.destroy();
							SP.init_message_container();
							$('message_container').innerHTML = 'Uw link aanmelding is ontvangen en zal spoedig in behandeling worden genomen door een van onze medewerkers.';
							Lightview.show({
							  href: '#message_container',
							  rel: 'inline',
							  title: 'Link aanmelding voltooid',
							  options: {
								width:400,
								height:50,
								topclose: true
							  }
							});
							setTimeout("Lightview.hide();",5000);
						}
					} else {
						alert('Invalid response received from JSON handler');
						//alert(response.responseText);
					}
				}
			});
	},
	load_categories: function(daughter,select_obj) {
		// reset categorylist
		while ($(select_obj).hasChildNodes()) {
			$(select_obj).removeChild($(select_obj).firstChild);
		}
		var option = document.createElement("option");
		option.value="0";
		option.innerHTML = '&hellip;';
		$(select_obj).appendChild(option);
		$(select_obj).disabled = true;
		
		if (daughter == 0) {
			return;
		}
		
		new Ajax.Request('json_data.php', {
			method: 'post',
			parameters: { action: 'daughter_link_categories', daughter: daughter },
			evalJS: true,
			onSuccess: function(response) {
				var data = response.responseJSON;
				if (data) {
					if (data[0] == 'error') {
						alert(data[1]);
					} else {
						var categories = data[1];
						var option,optgroup;
						while ($(select_obj).hasChildNodes()) {
							$(select_obj).removeChild($(select_obj).firstChild);
						}
						option = document.createElement("option");
						option.value = "0";
						option.innerHTML = 'Selecteer een rubriek&hellip;';
						$(select_obj).appendChild(option);
						for (col = 1; col <= 3; col++) {
							optgroup = document.createElement("optgroup");
							optgroup.label = 'Kolom '+col;
							for (i=0; i < categories.length; i++) {
								if (categories[i].position_column != col) { continue; }
								option = document.createElement("option");
								option.value = categories[i].id;
								option.appendChild(document.createTextNode(categories[i].title));
								$(optgroup).appendChild(option);
							}
							$(select_obj).appendChild(optgroup);
						}
						$(select_obj).disabled = false;
					}
				}
			}
		});
	},
	set_textsize: function(size) {
		if (!document.getElementById) return
		var tgs = new Array('div','td','tr','ul','ol');
		var d = document,cEl = null,i,j,cTags;
		if ( !( cEl = d.getElementById( 'body' ) ) ) cEl = d.getElementsByTagName( 'body' )[ 0 ];

		cEl.style.fontSize = size;
		this.setCookie('textsize',size,1);
		
		for ( i = 0 ; i < tgs.length ; i++ ) {
			cTags = cEl.getElementsByTagName( tgs[ i ] );
			for ( j = 0 ; j < cTags.length ; j++ ) cTags[ j ].style.fontSize = size;
		}
	},
	setCookie: function(c_name,value,expiredays) {
		var exdate=new Date();
		exdate.setDate(exdate.getDate()+expiredays);
		document.cookie=c_name+ "=" +this.escape(value)+
		((expiredays==null) ? "" : ";expires="+exdate.toGMTString())+
		((this.domain==null) ? "" : ";domain="+this.domain+"");
	},
	getCookie: function(c_name) {
		if (document.cookie.length>0) {
			c_start=document.cookie.indexOf(c_name + "=");
			if (c_start!=-1) {
				c_start=c_start + c_name.length+1;
				c_end=document.cookie.indexOf(";",c_start);
				if (c_end==-1) c_end=document.cookie.length;
				return unescape(document.cookie.substring(c_start,c_end));
			}
		}
		return "";
	},
	escape: function(txt) {
		return escape(txt).replace( 
			new RegExp( "\\+", "g" ), 
			"%2B" 
		);
	}
};
