/*
	MUS - Multimedia Unieke Service
	Basis javascripts
	26-10-2009 - www.m-us.nl
	door: Bas Muskens
*/

/* willigkeurige backgounds */

$(document).ready(function(){
    var randomNum = Math.ceil(Math.random()*3);
    $('#header').css({'background-image' : 'url(img/header' + randomNum + '.jpg)' });
	$('#header').css({'background-repeat' : 'no-repeat' });
	$('#header').css({'background-position' : 'top center' });
	$('#header').css({'background-color' : '#014f15' });
});

/* aanmeld nieuwsbrief linkover */    
	$(function() {
      $('.callback').example(function() {
       return $(this).attr('title');
      });      
    });

/* Nieuwe pagina openen */

	$(function(){
		$('a.newWindow').click(function(){
			window.open(this.href);
			return false;
		});
	});

/* faden commentaar */

$(document).ready(function(){
	// Just to be sure, hide the forms.
	$(".expand").hide();
	$("#comments a").toggle(
		function () {
			$(this).next().slideDown("slow");
		},
		function () {
			$(this).next().slideUp("slow");
		}
	);
});
	
/* quirksmode.org form validation script *//* versie 1.1 *//* event adding */   function addEventSimple(obj,evt,fn) {		if (obj.addEventListener)			obj.addEventListener(evt,fn,false);		else if (obj.attachEvent)			obj.attachEvent('on'+evt,fn);	}/* form validating */   var validationErrorMessage = new Object();   validationErrorMessage['required'] = 'Dit is een verplicht veld';   validationErrorMessage['requiredsmall'] = 'Verplicht';   validationErrorMessage['numeric'] = 'Dit veld moet numeriek zijn';   validationErrorMessage['postcode'] = 'Dit veld moet een postcode zijn';   validationErrorMessage['pattern'] = 'Patroon onjuist';   validationErrorMessage['email'] = 'Onjuist email adres';   validationErrorMessage['emailsmall'] = 'Onjuist email adres';   var validationFunctions = new Object();   validationFunctions["required"] = isRequired;   validationFunctions["requiredsmall"] = isRequired;   validationFunctions["pattern"] = isPattern;   validationFunctions["postcode"] = isPostCode;   validationFunctions["numeric"] = isnumeric;   validationFunctions["emailsmall"] = isEmail;   validationFunctions["email"] = isEmail;   function isRequired(formField) {   	switch (formField.type) {   		case 'text':   		case 'textarea':   		case 'select-one':   			if (trim(formField.value))   				return true;   			return false;   		case 'radio':   			var radios = formField.form[formField.name];   			for (var i=0;i<radios.length;i++) {   				if (radios[i].checked) return true;   			}   			return false;   		case 'checkbox':   			return formField.checked;   	}   }   function isPattern(formField,pattern) {   	var pattern = pattern || formField.getAttribute('pattern');   	var regExp = new RegExp("^"+pattern+"$","");   	var correct = regExp.test(formField.value);   	if (!correct && formField.getAttribute('patternDesc'))   		correct = formField.getAttribute('patternDesc');   	return correct;   }   function isPostCode(formField) {      return isPattern(formField,"\\d{4}\\s*\\D{2}");   }   function isnumeric(formField) {   	return isPattern(formField,"\\d+");   }   // aangepast, oude functie voldeed niet   function isEmail(formField) {   	var reg1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/; // not valid   	var reg2 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/; // valid   	if (!reg1.test(formField.value) && reg2.test(formField.value))        return true;   	else   	   return false;   }   function emptyFunction() {   	return true;   }   function trim(value) {     value = value.replace(/^\s+/,'');     value = value.replace(/\s+$/,'');     return value;   }   /*********************************/   var W3CDOM = document.createElement && document.getElementsByTagName;   function validateForms() {   	if (!W3CDOM) return;   	var forms = document.forms;   	for (var i=0;i<forms.length;i++) {   		forms[i].onsubmit = validate;   	}   }   addEventSimple(window,'load',validateForms);   function validate() {   	var els = this.elements;   	var validForm = true;   	var firstError = null;   	for (var i=0;i<els.length;i++) {   		if (els[i].removeError)   			els[i].removeError();   		var req = els[i].getAttribute('validation');   		if (!req) continue;   		var reqs = req.split(' ');   		if (els[i].getAttribute('pattern'))   			reqs[reqs.length] = 'pattern';   		for (var j=0;j<reqs.length;j++) {   			if (!validationFunctions[reqs[j]])   				validationFunctions[reqs[j]] = emptyFunction;   			var OK = validationFunctions[reqs[j]](els[i]);   			if (OK != true) {   				var errorMessage = OK || validationErrorMessage[reqs[j]];   				writeError(els[i],errorMessage)   				validForm = false;   				if (!firstError)   					firstError = els[i];   				break;   			}   		}   	}   	if (!validForm) {   		//alert("Het formulier is niet juist ingevuld");   		/*location.hash = '#contactform';*/   		writeSingleError(this, 'Het formulier is niet juist ingevuld.');   	}   	return validForm;   }   function writeError(obj,message) {      // kijk of errorMessage al is gezet, zo nee, toevoegen      if(obj.className.indexOf('errorMessage')==-1)         obj.className += ' errorMessage';   	obj.onchange = removeError;   	if (obj.errorMessage || obj.parentNode.errorMessage) return;   	var errorMessage = document.createElement('label');   	errorMessage.className = 'errorMessage';   	errorMessage.setAttribute('for',obj.id);   	errorMessage.setAttribute('htmlFor',obj.id);   	errorMessage.appendChild(document.createTextNode(message));   	obj.parentNode.appendChild(errorMessage);   	obj.errorMessage = errorMessage;   	obj.parentNode.errorMessage = errorMessage;/*   Fixing Explorer   - Explorer wants no borders on a select box   If obj is selectbox, search for holding P tag and set class on P tag.*//*      holderTag = obj;      if(obj.nodeName=='SELECT'){         while(holderTag.nodeName!='P')            holderTag = holderTag.parentNode;         holderTag.className='errorMessage';      }*/   }   function removeError() {   	this.className = this.className.replace(/errorMessage/,'');   	if (this.errorMessage) {   		this.parentNode.removeChild(this.errorMessage);   		this.errorMessage = null;   		this.parentNode.errorMessage = null;   		removeSingleError();   	}   	this.onchange = null;   }   /* show error next to submit button */   function writeSingleError(formObject,message){      // search for button      var button = formObject.getElementsByTagName('button')[0];      // check if error message exists      if(!document.getElementById('singleErrorMessage')){         // create error message         var errorButtonMessage = document.createElement('span');         /*errorButtonMessage.className = 'errorMessage';*/         errorButtonMessage.appendChild(document.createTextNode(message));         errorButtonMessage.id = 'singleErrorMessage';         button.parentNode.appendChild(errorButtonMessage);      }   }   /* remove error next to submit button */   function removeSingleError(){      var errorObject = document.getElementById('singleErrorMessage');		if(errorObject) errorObject.parentNode.removeChild(errorObject);   }/* custom extended email validation */function validateEmail(email){   if(email.length <= 0){      return false;   }   var splitted = email.match("^(.+)@(.+)$");   if(splitted == null) return false;   if(splitted[1] != null ) {      var regexp_user=/^\"?[\w-_\.]*\"?$/;      if(splitted[1].match(regexp_user) == null) return false;   }   if(splitted[2] != null) {      var regexp_domain=/^[\w-\.]*\.[A-Za-z]{2,4}$/;      if(splitted[2].match(regexp_domain) == null) {         var regexp_ip =/^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;         if(splitted[2].match(regexp_ip) == null) return false;      }// if      return true;   }   return false;}

// Styleswitch stylesheet
(function($)
{
	$(document).ready(function() {
		$('.styleswitch').click(function()
		{
			switchStylestyle(this.getAttribute("title"));
			return false;
		});
		var c = readCookie('style');
		if (c) switchStylestyle(c);
	});

	function switchStylestyle(styleName)
	{
		$('link[@rel*=style][title]').each(function(i)
		{
			this.disabled = true;
			if (this.getAttribute('title') == styleName) this.disabled = false;
		});
		createCookie('style', styleName, 365);
	}
})(jQuery);
// cookie functions for css switcher
function createCookie(name,value,days)
{
	if (days)
	{
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name)
{
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++)
	{
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}
function eraseCookie(name)
{
	createCookie(name,"",-1);
}

// Font-size changer
var sitefunctions = {
	textresize : function(){
		// show text resizing links
		$(".FontSize").show();
		var $cookie_name = ".FontSize";
		var originalFontSize = $("html").css("font-size");
		// if exists load saved value, otherwise store it
		if($.cookie($cookie_name)) {
			var $getSize = $.cookie($cookie_name);
			$("html").css({fontSize : $getSize + ($getSize.indexOf("px")!=-1 ? "" : "px")}); // IE fix for double "pxpx" error
		} else {
			$.cookie($cookie_name, originalFontSize);
		}
		// reset link
		$(".resetFont").bind("click", function() {
			$("html").css("font-size", originalFontSize);
			$.cookie($cookie_name, originalFontSize);
		});
		// text "+" link
		$(".decreaseFont").bind("click", function() {
			var currentFontSize = $("html").css("font-size");
			var currentFontSizeNum = parseFloat(currentFontSize, 10);
			var newFontSize = currentFontSizeNum*1.1;
			if (newFontSize,  11) {
				$("html").css("font-size", newFontSize);
				$.cookie($cookie_name, newFontSize);
			}
			return false;	
		});
	}
}
$(document).ready(function(){
		sitefunctions.textresize();	
})

/* ie6 melding */

function badBrowser(){
	if($.browser.msie && parseInt($.browser.version) <= 6){ return true;}
	
	return false;
}

function getBadBrowser(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 "";
}	

function setBadBrowser(c_name,value,expiredays)
{
	var exdate=new Date();
	exdate.setDate(exdate.getDate()+expiredays);
	document.cookie=c_name+ "=" +escape(value) + ((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
}

if(badBrowser() && getBadBrowser('browserWarning') != 'seen' ){
	$(function(){
		$("<div id='browserWarning'>You are using an <strong>unsupported</strong> browser. Please switch to <strong><a href='http://getfirefox.com'>FireFox</a></strong>, <strong><a href='http://www.apple.com/safari/'>Safari</a></strong> or <strong><a href='http://www.microsoft.com/windows/downloads/ie/getitnow.mspx'>Internet Explorer 7 or 8</a></strong>. Thanks!&nbsp;&nbsp;&nbsp;[<a href='#' id='warningClose'>close</a>] </div> ")
			.css({
				backgroundColor: '#fcfdde',
				'width': '100%',
				'font-size': '13px',
				'border-top': 'solid 1px #000',
				'border-bottom': 'solid 1px #000',
				'text-align': 'center',
				padding:'5px 0px 5px 0px'
			})
			.prependTo("body");
		
		$('#warningClose').click(function(){
			setBadBrowser('browserWarning','seen');
			$('#browserWarning').slideUp('slow');
			return false;
		});
	});	
}
