/*
 *	In dit bestand zitten devolgende jquery scripten
 *
 *	Ajax loader, site disable, showmessage, loadurl (eigen scripts)
 *	Json
 *	Metadata
 *	jquery dimensions
 *	jquery create
 *	autogrow textarea
 *  impromptu
 *  transparant rounded corners
 */


//metadata
(function($) {

$.extend({
	metadata : {
		defaults : {
			type: 'class',
			name: 'metadata',
			cre: /({.*})/,
			single: 'metadata'
		},
		setType: function( type, name ){
			this.defaults.type = type;
			this.defaults.name = name;
		},
		get: function( elem, opts ){
			var settings = $.extend({},this.defaults,opts);
			// check for empty string in single property
			if ( !settings.single.length ) settings.single = 'metadata';

			var data = $.data(elem, settings.single);
			// returned cached data if it already exists
			if ( data ) return data;

			data = "{}";

			if ( settings.type == "class" ) {
				var m = settings.cre.exec( elem.className );
				if ( m )
					data = m[1];
			} else if ( settings.type == "elem" ) {
				if( !elem.getElementsByTagName )
					return undefined;
				var e = elem.getElementsByTagName(settings.name);
				if ( e.length )
					data = $.trim(e[0].innerHTML);
			} else if ( elem.getAttribute != undefined ) {
				var attr = elem.getAttribute( settings.name );
				if ( attr )
					data = attr;
			}

			if ( data.indexOf( '{' ) <0 )
			data = "{" + data + "}";

			data = eval("(" + data + ")");

			$.data( elem, settings.single, data );
			return data;
		}
	}
});
$.fn.metadata = function( opts ){
	return $.metadata.get( this[0], opts );
};

})(jQuery);
//einde metadata

//json
(function($) {
    function toIntegersAtLease(n)
    // Format integers to have at least two digits.
    {
        return n < 10 ? '0' + n : n;
    }

    Date.prototype.toJSON = function(date)
    // Yes, it polutes the Date namespace, but we'll allow it here, as
    // it's damned usefull.
    {
        return this.getUTCFullYear()   + '-' +
             toIntegersAtLease(this.getUTCMonth()) + '-' +
             toIntegersAtLease(this.getUTCDate());
    };

    var escapeable = /["\\\x00-\x1f\x7f-\x9f]/g;
    var meta = {    // table of character substitutions
            '\b': '\\b',
            '\t': '\\t',
            '\n': '\\n',
            '\f': '\\f',
            '\r': '\\r',
            '"' : '\\"',
            '\\': '\\\\'
        };

    $.quoteString = function(string)
    // Places quotes around a string, inteligently.
    // If the string contains no control characters, no quote characters, and no
    // backslash characters, then we can safely slap some quotes around it.
    // Otherwise we must also replace the offending characters with safe escape
    // sequences.
    {
        if (escapeable.test(string))
        {
            return '"' + string.replace(escapeable, function (a)
            {
                var c = meta[a];
                if (typeof c === 'string') {
                    return c;
                }
                c = a.charCodeAt();
                return '\\u00' + Math.floor(c / 16).toString(16) + (c % 16).toString(16);
            }) + '"';
        }
        return '"' + string + '"';
    };

    $.toJSON = function(o, compact)
    {
        var type = typeof(o);

        if (type == "undefined")
            return "undefined";
        else if (type == "number" || type == "boolean")
            return o + "";
        else if (o === null)
            return "null";

        // Is it a string?
        if (type == "string")
        {
            return $.quoteString(o);
        }

        // Does it have a .toJSON function?
        if (type == "object" && typeof o.toJSON == "function")
            return o.toJSON(compact);

        // Is it an array?
        if (type != "function" && typeof(o.length) == "number")
        {
            var ret = [];
            for (var i = 0; i < o.length; i++) {
                ret.push( $.toJSON(o[i], compact) );
            }
            if (compact)
                return "[" + ret.join(",") + "]";
            else
                return "[" + ret.join(", ") + "]";
        }

        // If it's a function, we have to warn somebody!
        if (type == "function") {
            throw new TypeError("Unable to convert object of type 'function' to json.");
        }

        // It's probably an object, then.
        var ret = [];
        for (var k in o) {
            var name;
            type = typeof(k);

            if (type == "number")
                name = '"' + k + '"';
            else if (type == "string")
                name = $.quoteString(k);
            else
                continue;  //skip non-string or number keys

            var val = $.toJSON(o[k], compact);
            if (typeof(val) != "string") {
                // skip non-serializable values
                continue;
            }

            if (compact)
                ret.push(name + ":" + val);
            else
                ret.push(name + ": " + val);
        }
        return "{" + ret.join(", ") + "}";
    };

    $.compactJSON = function(o)
    {
        return $.toJSON(o, true);
    };

    $.evalJSON = function(src)
    // Evals JSON that we know to be safe.
    {
        return eval("(" + src + ")");
    };

    $.secureEvalJSON = function(src)
    // Evals JSON in a way that is *more* secure.
    {
        var filtered = src;
        filtered = filtered.replace(/\\["\\\/bfnrtu]/g, '@');
        filtered = filtered.replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']');
        filtered = filtered.replace(/(?:^|:|,)(?:\s*\[)+/g, '');

        if (/^[\],:{}\s]*$/.test(filtered))
            return eval("(" + src + ")");
        else
            throw new SyntaxError("Error parsing JSON, source is not valid.");
    };
})(jQuery);
//einde json

//Dimensions
eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(5($){$.19={P:\'1.2\'};$.u([\'j\',\'w\'],5(i,d){$.q[\'O\'+d]=5(){p(!3[0])6;g a=d==\'j\'?\'s\':\'m\',e=d==\'j\'?\'D\':\'C\';6 3.B(\':y\')?3[0][\'L\'+d]:4(3,d.x())+4(3,\'n\'+a)+4(3,\'n\'+e)};$.q[\'I\'+d]=5(b){p(!3[0])6;g c=d==\'j\'?\'s\':\'m\',e=d==\'j\'?\'D\':\'C\';b=$.F({t:Z},b||{});g a=3.B(\':y\')?3[0][\'8\'+d]:4(3,d.x())+4(3,\'E\'+c+\'w\')+4(3,\'E\'+e+\'w\')+4(3,\'n\'+c)+4(3,\'n\'+e);6 a+(b.t?(4(3,\'t\'+c)+4(3,\'t\'+e)):0)}});$.u([\'m\',\'s\'],5(i,b){$.q[\'l\'+b]=5(a){p(!3[0])6;6 a!=W?3.u(5(){3==h||3==r?h.V(b==\'m\'?a:$(h)[\'U\'](),b==\'s\'?a:$(h)[\'T\']()):3[\'l\'+b]=a}):3[0]==h||3[0]==r?S[(b==\'m\'?\'R\':\'Q\')]||$.N&&r.M[\'l\'+b]||r.A[\'l\'+b]:3[0][\'l\'+b]}});$.q.F({z:5(){g a=0,f=0,o=3[0],8,9,7,v;p(o){7=3.7();8=3.8();9=7.8();8.f-=4(o,\'K\');8.k-=4(o,\'J\');9.f+=4(7,\'H\');9.k+=4(7,\'Y\');v={f:8.f-9.f,k:8.k-9.k}}6 v},7:5(){g a=3[0].7;G(a&&(!/^A|10$/i.16(a.15)&&$.14(a,\'z\')==\'13\'))a=a.7;6 $(a)}});5 4(a,b){6 12($.11(a.17?a[0]:a,b,18))||0}})(X);',62,72,'|||this|num|function|return|offsetParent|offset|parentOffset|||||borr|top|var|window||Height|left|scroll|Left|padding|elem|if|fn|document|Top|margin|each|results|Width|toLowerCase|visible|position|body|is|Right|Bottom|border|extend|while|borderTopWidth|outer|marginLeft|marginTop|client|documentElement|boxModel|inner|version|pageYOffset|pageXOffset|self|scrollTop|scrollLeft|scrollTo|undefined|jQuery|borderLeftWidth|false|html|curCSS|parseInt|static|css|tagName|test|jquery|true|dimensions'.split('|'),0,{}))
//einde dimensions

//create
jQuery.create = function() {
    if (arguments.length == 0) return [];
    var args = arguments[0] || {}, elem = null, elements = null;
    var siblings = null;

    // In case someone passes in a null object,
    // assume that they want an empty string.
    if (args == null) args = "";
    if (args.constructor == String) {
        if (arguments.length > 1) {
            var attributes = arguments[1];
                if (attributes.constructor == String) {
                            elem = document.createTextNode(args);
                            elements = [];
                            elements.push(elem);
                            siblings =
        jQuery.create.apply(null, Array.prototype.slice.call(arguments, 1));
                            elements = elements.concat(siblings);
                            return elements;

                    } else {
                            elem = document.createElement(args);

                            // Set element attributes.
                            var attributes = arguments[1];
                            for (var attr in attributes)
                                jQuery(elem).attr(attr, attributes[attr]);

                            // Add children of this element.
                            var children = arguments[2];
                            children = jQuery.create.apply(null, children);
                            jQuery(elem).append(children);

                            // If there are more siblings, render those too.
                            if (arguments.length > 3) {
                                    siblings =
        jQuery.create.apply(null, Array.prototype.slice.call(arguments, 3));
                                    return [elem].concat(siblings);
                            }
                            return elem;
                    }
            } else return document.createTextNode(args);
      } else {
              elements = [];
              elements.push(args);
              siblings =
        jQuery.create.apply(null, (Array.prototype.slice.call(arguments, 1)));
              elements = elements.concat(siblings);
              return elements;
      }
};
// einde create


/*
 *	AJAX LOADER EN SITE DISABLE
 */
function AjaxLoader(disable){

	if(disable == true){ DisAble(false); }

	$('#ajaxloader').fadeIn('slow');
}

function CloseAjaxLoader(disable){
	$('#ajaxloader').fadeOut('fast');
	if(disable == true){
		RemoveDisable();
	}
}

function DisAble(click){

	var prefix = 'DisAble';
	var ie6 = (jQuery.browser.msie && jQuery.browser.version < 7);
	var b = jQuery(document.body);
	var w = jQuery(window);

	var msgbox = '<div class="'+ prefix +'box" id="'+ prefix +'box">';
	if(ie6) jQuery('select').css('visibility','hidden');
	msgbox +='<div class="'+ prefix +'fade" id="'+ prefix +'fade"></div>';
	msgbox += '</div>';

	var jqib =b.append(msgbox).children('#'+ prefix +'box');
	var jqif = jqib.children('#'+ prefix +'fade');
	var getWindowScrollOffset = function(){
		return (document.documentElement.scrollTop || document.body.scrollTop) + 'px';
	};
	var getWindowSize = function(){
		var size = {
			width: window.innerWidth || (window.document.documentElement.clientWidth || window.document.body.clientWidth),
			height: window.innerHeight || (window.document.documentElement.clientHeight || window.document.body.clientHeight)
		};
		return size;
	};
	var ie6scroll = function(){
		jqib.css({ top: getWindowScrollOffset() });
	};
	var fadeClicked = function(){
		removePrompt();
	};
	var escapeKeyClosePrompt = function(e){
		var key = (window.event) ? event.keyCode : e.keyCode; // MSIE or Firefox?
		if(key==27) removePrompt();
	};
	var positionPrompt = function(){
		var wsize = getWindowSize();
		jqib.css({ position: (ie6)? "absolute" : "fixed", height: wsize.height, width: "100%", top: (ie6)? getWindowScrollOffset():0, left: 0, right: 0, bottom: 0 });
		jqif.css({ position: "absolute", height: wsize.height, width: "100%", top: 0, left: 0, right: 0, bottom: 0 });
	};
	var stylePrompt = function(){
		jqif.css({ zIndex: 5000, display: "none", opacity: '0.6' });
		jqib.css({ zIndex: 5000 });
	}
	var removePrompt = function(callCallback, clicked, msg){
		if(ie6)b.unbind('scroll',ie6scroll);//ie6, remove the scroll event
		w.unbind('resize',positionPrompt);
		jqif.fadeOut('slow',function(){
			jqif.unbind('click',fadeClicked);
			jqif.remove();
			jqib.unbind('keypress',escapeKeyClosePrompt);
			jqib.remove();

		});
	}
	positionPrompt();
	stylePrompt();
	//Events
	jQuery('#'+ prefix +'buttons').children('button').click(function(){
		var msg = jqi.children('.'+ prefix +'container').children('.'+ prefix +'message');
		var clicked = o.buttons[jQuery(this).text()];
		if(o.submit(clicked,msg))
			removePrompt(true,clicked,msg);
	});
	if(ie6) w.scroll(ie6scroll);//ie6, add a scroll event to fix position:fixed
	if(click == true){
		jqif.click(fadeClicked);
	}
	//Show it
	jqif.fadeIn('fast');
	return jqib;
}


function RemoveDisable(){
	var prefix = 'DisAble';
	var ie6 = (jQuery.browser.msie && jQuery.browser.version < 7);
	var b = jQuery(document.body);
	var w = jQuery(window);
	var msgbox = '<div class="'+ prefix +'box" id="'+ prefix +'box">';
	if(ie6) jQuery('select').css('visibility','hidden');
	msgbox +='<div class="'+ prefix +'fade" id="'+ prefix +'fade"></div>';
	msgbox += '</div>';
	var jqib =b.append(msgbox).children('#'+ prefix +'box');
	var jqif = jqib.children('#'+ prefix +'fade');
	var getWindowScrollOffset = function(){
		return (document.documentElement.scrollTop || document.body.scrollTop) + 'px';
	};
	var getWindowSize = function(){
		var size = {
			width: window.innerWidth || (window.document.documentElement.clientWidth || window.document.body.clientWidth),
			height: window.innerHeight || (window.document.documentElement.clientHeight || window.document.body.clientHeight)
		};
		return size;
	};
	var escapeKeyClosePrompt = function(e){
		var key = (window.event) ? event.keyCode : e.keyCode; // MSIE or Firefox?
		if(key==27) removePrompt();
	};
	var ie6scroll = function(){
		jqib.css({ top: getWindowScrollOffset() });
	};
	var fadeClicked = function(){
		removePrompt();
	};
	var positionPrompt = function(){
		var wsize = getWindowSize();
		jqib.css({ position: (ie6)? "absolute" : "fixed", height: wsize.height, width: "100%", top: (ie6)? getWindowScrollOffset():0, left: 0, right: 0, bottom: 0 });
		jqif.css({ position: "absolute", height: wsize.height, width: "100%", top: 0, left: 0, right: 0, bottom: 0 });

	};
	var removePrompt = function(callCallback, clicked, msg){
		if(ie6)b.unbind('scroll',ie6scroll);//ie6, remove the scroll event
		w.unbind('resize',positionPrompt);
		jqif.fadeOut('slow',function(){
			jqif.unbind('click',fadeClicked);
			jqif.remove();
			jqib.unbind('keypress',escapeKeyClosePrompt);
			jqib.remove();

		});
	}
	fadeClicked();
}

function ShowMessage(message){
	var class1 = (message.success) ? 'messageok' : 'messagefout';
	var div = $.create('div', {
		id: 'message'
	}, Array(message.bericht));
	$('body').prepend(div);
	$('#message').addClass(class1);
	$('#message').fadeIn('slow', function(){
		setTimeout(function(){
			$('#message').fadeOut('slow', function(){
				$('#message').remove();
			});

		}, 3000);
	});
}



function LoadUrl(url){
	window.location.href = url;
}

function MousOverTip(){
	xOffset = -10;
	yOffset = 0;
	$(".tooltip").hover(function(e){
		this.t = this.title;
		this.title = "";
		var c = (this.t != "") ? this.t : "";
		//alert('test');
		$("body").append("<div id='tooltip1'></div>");
		$("#tooltip1")
			.css("top",(e.pageY - xOffset) + "px")
			.css("left",(e.pageX + yOffset) + "px");
		$("#tooltip1").append('<div id="tooltip"></div>');
		$("#tooltip").append('<div style="padding:0 8px 0 8px">' + c + '</div>');
		$('#tooltip').transparentCorners({cornerSize:10});
    },
	function(){
		this.title = this.t;
		$("#tooltip1").remove();
		$("#tooltip").remove();
    });
	
	$(".tooltip").mousemove(function(e){
		$("#tooltip1")
			.css("top",(e.pageY - xOffset) + "px")
			.css("left",(e.pageX + yOffset) + "px");
	});
	
}



/*
 * jQuery Impromptu
 * By: Trent Richardson [http://trentrichardson.com]
 * Version 2.5
 * Last Modified: 3/30/2009
 *
 * Copyright 2009 Trent Richardson
 * Dual licensed under the MIT and GPL licenses.
 * http://trentrichardson.com/Impromptu/GPL-LICENSE.txt
 * http://trentrichardson.com/Impromptu/MIT-LICENSE.txt
 *
 */

(function($) {
	$.prompt = function(message, options) {
		options = $.extend({},$.prompt.defaults,options);
		$.prompt.currentPrefix = options.prefix;

		var ie6		= ($.browser.msie && $.browser.version < 7);
		var $body	= $(document.body);
		var $window	= $(window);

		//build the box and fade
		var msgbox = '<div class="'+ options.prefix +'box" id="'+ options.prefix +'box">';
		if(options.useiframe && (($('object, applet').length > 0) || ie6)) {
			msgbox += '<iframe src="javascript:;" class="'+ options.prefix +'fade" id="'+ options.prefix +'fade"></iframe>';
		} else {
			if(ie6) {
				$('select').css('visibility','hidden');
			}
			msgbox +='<div class="'+ options.prefix +'fade" id="'+ options.prefix +'fade"></div>';
		}
		msgbox += '<div class="'+ options.prefix +'" id="'+ options.prefix +'"><div class="'+ options.prefix +'container"><div class="';
		msgbox += options.prefix +'close">X</div><div id="'+ options.prefix +'states"></div>';
		msgbox += '</div></div></div>';

		var $jqib	= $(msgbox).appendTo($body);
		var $jqi	= $jqib.children('#'+ options.prefix);
		var $jqif	= $jqib.children('#'+ options.prefix +'fade');

		//if a string was passed, convert to a single state
		if(message.constructor == String){
			message = {
				state0: {
					html: message,
				 	buttons: options.buttons,
				 	focus: options.focus,
				 	submit: options.submit
			 	}
		 	};
		}

		//build the states
		var states = "";

		$.each(message,function(statename,stateobj){
			stateobj = $.extend({},$.prompt.defaults.state,stateobj);
			message[statename] = stateobj;

			states += '<div id="'+ options.prefix +'_state_'+ statename +'" class="'+ options.prefix + '_state" style="display:none;"><div class="'+ options.prefix +'message">' + stateobj.html +'</div><div class="'+ options.prefix +'buttons">';
			$.each(stateobj.buttons, function(k, v){
				states += '<button name="' + options.prefix + '_' + statename + '_button' + k + '" id="' + options.prefix +	'_' + statename + '_button' + k + '" value="' + v + '">' + k + '</button>';
			});
			states += '</div></div>';
		});

		//insert the states...
		$jqi.find('#'+ options.prefix +'states').html(states).children('.'+ options.prefix +'_state:first').css('display','block');
		$jqi.find('.'+ options.prefix +'buttons:empty').css('display','none');

		//Events
		$.each(message,function(statename,stateobj){
			var $state = $jqi.find('#'+ options.prefix +'_state_'+ statename);

			$state.children('.'+ options.prefix +'buttons').children('button').click(function(){
				var msg = $state.children('.'+ options.prefix +'message');
				var clicked = stateobj.buttons[$(this).text()];
				var forminputs = {};

				//collect all form element values from all states
				$.each($jqi.find('#'+ options.prefix +'states :input').serializeArray(),function(i,obj){
					if (forminputs[obj.name] === undefined) {
						forminputs[obj.name] = obj.value;
					} else if (typeof forminputs[obj.name] == Array) {
						forminputs[obj.name].push(obj.value);
					} else {
						forminputs[obj.name] = [forminputs[obj.name],obj.value];
					}
				});

				var close = stateobj.submit(clicked,msg,forminputs);
				if(close === undefined || close) {
					removePrompt(true,clicked,msg,forminputs);
				}
			});
			$state.find('.'+ options.prefix +'buttons button:eq('+ stateobj.focus +')').addClass(options.prefix +'defaultbutton');

		});

		var ie6scroll = function(){
			$jqib.css({ top: $window.scrollTop() });
		};

		var fadeClicked = function(){
			if(options.persistent){
				var i = 0;
				$jqib.addClass(options.prefix +'warning');
				var intervalid = setInterval(function(){
					$jqib.toggleClass(options.prefix +'warning');
					if(i++ > 1){
						clearInterval(intervalid);
						$jqib.removeClass(options.prefix +'warning');
					}
				}, 100);
			}
			else {
				removePrompt();
			}
		};

		var escapeKeyClosePrompt = function(e){
			var key = (window.event) ? event.keyCode : e.keyCode; // MSIE or Firefox?
			if(key==27) {
				removePrompt();
			}
		};

		var positionPrompt = function(){
			$jqib.css({
				position: (ie6) ? "absolute" : "fixed",
				height: $window.height(),
				width: "100%",
				top: (ie6)? $window.scrollTop() : 0,
				left: 0,
				right: 0,
				bottom: 0
			});
			$jqif.css({
				position: "absolute",
				height: $window.height(),
				width: "100%",
				top: 0,
				left: 0,
				right: 0,
				bottom: 0
			});
			if(options.height == 'auto'){
				$jqi.css({
					position: "absolute",
					top: options.top,
					left: "50%",
					width: options.width,
					marginLeft: ((options.width/2)*-1)
				});
			} else {
				$jqi.css({
					position: "absolute",
					top: options.top,
					left: "50%",
					width: options.width,
					height: options.height,
					overflow: options.overflow,
					marginLeft: ((options.width/2)*-1)
				});
			}

		};

		var stylePrompt = function(){
			$jqif.css({
				zIndex: options.zIndex,
				display: "none",
				opacity: options.opacity
			});
			$jqi.css({
				zIndex: options.zIndex+1,
				display: "none"
			});
			$jqib.css({
				zIndex: options.zIndex
			});
		};

		var removePrompt = function(callCallback, clicked, msg, formvals){
			$jqi.remove();
			//ie6, remove the scroll event
			if(ie6) {
				$body.unbind('scroll',ie6scroll);
			}
			$window.unbind('resize',positionPrompt);
			$jqif.fadeOut(options.overlayspeed,function(){
				$jqif.unbind('click',fadeClicked);
				$jqif.remove();
				if(callCallback) {
					options.callback(clicked,msg,formvals);
				}
				$jqib.unbind('keypress',escapeKeyClosePrompt);
				$jqib.remove();
				if(ie6 && !options.useiframe) {
					$('select').css('visibility','visible');
				}
			});
		};

		positionPrompt();
		stylePrompt();

		//ie6, add a scroll event to fix position:fixed
		if(ie6) {
			$window.scroll(ie6scroll);
		}
		$jqif.click(fadeClicked);
		$window.resize(positionPrompt);
		$jqib.keypress(escapeKeyClosePrompt);
		$jqi.find('.'+ options.prefix +'close').click(removePrompt);

		//Show it
		$jqif.fadeIn(options.overlayspeed);
		$jqi[options.show](options.promptspeed,options.loaded);
		$jqi.find('#'+ options.prefix +'states .'+ options.prefix +'_state:first .'+ options.prefix +'defaultbutton').focus();


		//$('#jqi').transparentCorners();

		return $jqib;
	};

	$.prompt.defaults = {
		prefix:'jqi',
		buttons: {
			Ok: true
		},
	 	loaded: function(){

	 	},
	  	submit: function(){
	  		return true;
		},
	 	callback: function(){

	 	},
		opacity: 0.6,
	 	zIndex: 999,
	  	overlayspeed: 'slow',
	   	promptspeed: 'fast',
   		show: 'fadeIn',
	   	focus: false,
		width: 400,
	   	useiframe: false,
	 	top: "15%",
		overflow: 'hidden',
		height: 'auto',
	  	persistent: true,
	  	state: {
			html: '',
		 	buttons: {
		 		Ok: true
		 	},
		  	focus: 0,
		   	submit: function(){
		   		return true;
		   }
	  	}
	};

	$.prompt.currentPrefix = $.prompt.defaults.prefix;

	$.prompt.setDefaults = function(o) {
		$.prompt.defaults = $.extend({}, $.prompt.defaults, o);
	};

	$.prompt.setStateDefaults = function(o) {
		$.prompt.defaults.state = $.extend({}, $.prompt.defaults.state, o);
	};

	$.prompt.getStateContent = function(state) {
		return $('#'+ $.prompt.currentPrefix +'_state_'+ state);
	};

	$.prompt.goToState = function(state) {
		$('.'+ $.prompt.currentPrefix +'_state').slideUp('slow');
		$('#'+ $.prompt.currentPrefix +'_state_'+ state).slideDown('slow',function(){
			$(this).find('.'+ $.prompt.currentPrefix +'defaultbutton').focus();
		});
	};

	$.prompt.nextState = function() {
		var $next = $('.'+ $.prompt.currentPrefix +'_state:visible').next();

		$('.'+ $.prompt.currentPrefix +'_state').slideUp('slow');

		$next.slideDown('slow',function(){
			$next.find('.'+ $.prompt.currentPrefix +'defaultbutton').focus();
		});
	};

	$.prompt.prevState = function() {
		var $next = $('.'+ $.prompt.currentPrefix +'_state:visible').prev();

		$('.'+ $.prompt.currentPrefix +'_state').slideUp('slow');

		$next.slideDown('slow',function(){
			$next.find('.'+ $.prompt.currentPrefix +'defaultbutton').focus();
		});
	};

	$.prompt.close = function() {
		$('#'+ $.prompt.currentPrefix +'box').fadeOut('fast',function(){
        		$(this).remove();
		});
	};

})(jQuery);



(function($) {

    /*
     * Auto-growing textareas; technique ripped from Facebook
     */
    $.fn.autogrow = function(options) {

        this.filter('textarea').each(function() {

            var $this       = $(this),
                minHeight   = $this.height(),
                lineHeight  = $this.css('lineHeight');

            var shadow = $('<div></div>').css({
                position:   'absolute',
                top:        -10000,
                left:       -10000,
                width:      $(this).width() - parseInt($this.css('paddingLeft')) - parseInt($this.css('paddingRight')),
                fontSize:   $this.css('fontSize'),
                fontFamily: $this.css('fontFamily'),
                lineHeight: $this.css('lineHeight'),
                resize:     'none'
            }).appendTo(document.body);

            var update = function() {

                var times = function(string, number) {
                    var _res = '';
                    for(var i = 0; i < number; i ++) {
                        _res = _res + string;
                    }
                    return _res;
                };

                var val = this.value.replace(/</g, '&lt;')
                                    .replace(/>/g, '&gt;')
                                    .replace(/&/g, '&amp;')
                                    .replace(/\n$/, '<br/>&nbsp;')
                                    .replace(/\n/g, '<br/>')
                                    .replace(/ {2,}/g, function(space) { return times('&nbsp;', space.length -1) + ' ' });

                shadow.html(val);
                $(this).css('height', Math.max(shadow.height() + 20, minHeight));

            }

            $(this).change(update).keyup(update).keydown(update);

            update.apply(this);

        });

        return this;

    }

})(jQuery);

/*
 * jQuery transparent corner plugin
 *
 */
(function() {
var getCornerStripWidth = function( i, fx, cornerSize ) {
  var retval = 0;
  switch(fx.toLowerCase()) {
    case 'round':     retval = Math.round(cornerSize*(1-Math.cos(Math.asin(i/cornerSize)))); break;
    case 'cool':      retval = Math.round(cornerSize*(1+Math.cos(Math.asin(i/cornerSize)))); break;
    case 'sharp':     retval = cornerSize - i; break;
    case 'bite':      retval = Math.round(cornerSize*(Math.cos(Math.asin((cornerSize-i-1)/cornerSize)))); break;
    case 'slide':     retval = Math.round(cornerSize*(Math.atan2(i,cornerSize/i))); break;
    case 'jut':       retval = Math.round(cornerSize*(Math.atan2(cornerSize,(cornerSize-i-1)))); break;
    case 'curl':      retval = Math.round(cornerSize*(Math.atan(i))); break;
    case 'tear':      retval = Math.round(cornerSize*(Math.cos(i))); break;
    case 'tear2':     retval = Math.round(cornerSize*(Math.sin(i))); break;
    case 'wicked':    retval = Math.round(cornerSize*(Math.tan(i))); break;
    case 'long':      retval = Math.round(cornerSize*(Math.sqrt(i))); break;
    case 'sculpt':    retval = Math.round(cornerSize*(Math.log((cornerSize-i-1),cornerSize))); break;
    case 'dog':       retval = (i&1) ? (i+1) : cornerSize; break;
    case 'dog2':      retval = (i&2) ? (i+1) : cornerSize; break;
    case 'dog3':      retval = (i&3) ? (i+1) : cornerSize; break;
    case 'fray':      retval = (i%2)*cornerSize; break;
    case 'notch':     retval = cornerSize; break;
    case 'bevel':     retval = i+1; break;
    case 'roman':     retval = cornerSize - i * i; break;
    case 'longcurl':  retval = Math.round( cornerSize * Math.log(i) ); break;
    case 'plates':    retval = ( i - cornerSize / 2 ) * ( i - cornerSize / 2 ); break;
    case 'scrapbook': retval = (i&1) ? 0 : i; break;
  }
  return Math.max( retval, 0 );
};

jQuery.fn.transparentCorners = function( settings ) {

  settings = jQuery.extend( { corners: "round", cornerSize: 10, resetCorners: false }, settings );

  var cornerSize = settings.cornerSize;
  var resetCorners = settings.resetCorners;

  var topLeftFX = settings.topLeft || settings.top || settings.corners || "none";
  var topRightFX = settings.topRight || settings.top || settings.corners || "none";
  var hasTop = topLeftFX != "none" || topRightFX != "none";

  var bottomLeftFX = settings.bottomLeft || settings.bottom || settings.corners || "none";
  var bottomRightFX = settings.bottomRight || settings.bottom || settings.corners || "none";
  var hasBottom = bottomLeftFX != "none" || bottomRightFX != "none";

  return this.each( function( index ) {
    var addCorners = false;
    if( jQuery(this).parent(".transparentCornersContainer").size() == 0 ) {
      jQuery(this).wrap( "<div class=\"transparentCornersContainer\"></div>" );
      var getCss = new Array( "width", "float", "margin" );
      for( var css in getCss ) {
        jQuery(this).parent().css( getCss[css], jQuery(this).css(getCss[css]) );
      }
      jQuery(this).css("float", "none");
      jQuery(this).css("width", "auto");
      jQuery(this).css("margin", "0");
      addCorners = true;
    } else {
      if( resetCorners ) {
        jQuery(this).parent(".transparentCornersContainer").children(".transparentCornersStrip").remove();
        addCorners = true;
      }
    }
    if( addCorners ) {
      for( var i = 0; i < cornerSize; i++ ) {
        if( hasTop ) {
          jQuery(this).parent().prepend( "<div style=\""
                             + " margin-left: " + getCornerStripWidth( i, topLeftFX, cornerSize ) + "px;"
                             + " margin-right: " + getCornerStripWidth( i, topRightFX, cornerSize ) + "px;"
                             + " height: 1px; overflow: hidden;\" class=\"transparentCornersStrip\"></div>");
        }
        if( hasBottom ) {
          jQuery(this).parent().append( "<div style=\""
                             + " margin-left: " + getCornerStripWidth( i, bottomLeftFX, cornerSize ) + "px;"
                             + " margin-right: " + getCornerStripWidth( i, bottomRightFX, cornerSize ) + "px;"
                             + " height: 1px; overflow: hidden;\" class=\"transparentCornersStrip\"></div>");
        }
      }
    }
    jQuery(this).parent(".transparentCornersContainer").children(".transparentCornersStrip").css( "background-color", jQuery(this).css("background-color") );
   });
};
})();
// einde round corners

$(document).ready(function(){

	MousOverTip();
	$('#contactform').validate({
		rules: {
			email: {
				required: true,
				email: true
			}
		},
		submitHandler: function(){
			$('#contactform').ajaxSubmit({
				beforeSubmit: function(){
					AjaxLoader(true);
				},
				success: function(html){
					$('.line').html(html);
					CloseAjaxLoader(true);
				},
				error: function(XMLHttpRequest, textStatus, errorThrown){
					showError(XMLHttpRequest['responseText']);
				}
			});
		}
	});
});

function showError(msg){
	CloseAjaxLoader(true);
	$.prompt(msg, {width:1050, overflow: 'auto', height:500});
}

function ShowDebug(msg){
	$.prompt(msg, {width:700, overflow: 'auto', height:500});
}