jQuery.noConflict();

var WS={version:'1.6.3',browser:{IE:/msie/i.test(navigator.userAgent),IE6:/msie 6/i.test(navigator.userAgent),IE7:/msie 7/i.test(navigator.userAgent),Gecko:/gecko/i.test(navigator.userAgent),Webkit:/webkit/i.test(navigator.userAgent)},$:function(el){return(typeof el=='string')?document.getElementById(el):el;},hide:function(el){el=$(el);el.style.display='none';return el;},show:function(el){el=$(el);el.style.display='';return el;},toggle:function(el){el=$(el);el.style.display==''?this.hide(el):this.show(el);},addClass:function(el,cls){el=$(el);if(!this.hasClass(el,cls)){el.className+=(' '+cls);}},removeClass:function(el,cls){el=$(el);if(this.hasClass(el,cls)){var regex=new RegExp('(\\s|^)'+cls+'(\\s|$)');el.className=el.className.replace(regex,' ');}},toggleClass:function(el,cls){if(this.hasClass(el,cls)){this.removeClass(el,cls);}else{this.addClass(el,cls);}},hasClass:function(el,cls,greedy){el=$(el);if(!el.className){return false;}else if(greedy){var regex=new RegExp(cls);return regex.test(el.className);}else{return el.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));}},getOpacity:function(el){el=$(el);if(WS.browser.IE){return el.style.filter?(parseFloat(el.style.filter.replace('alpha(opacity=',''))/100):1.0;}return el.style.opacity||1.0;},setOpacity:function(el,op){el=$(el);if(WS.browser.IE){var ieOp=(op*100);if(ieOp<100){el.style.filter='alpha(opacity='+ieOp+')';}else{el.style.filter='';}}else{el.style.opacity=op;}},setText:function(el,text){el=$(el);el.innerHTML=text;}};if(typeof $=='undefined'){var $=WS.$;}else{var get=WS.$;}if(!window.console){window.console={log:function(){}};}
WS.DOM={ready:function(fn){if(document.addEventListener){document.addEventListener('DOMContentLoaded',function(){fn.call();},false);}else if(document.all&&!window.opera){document.write("<s"+'cript id="dom-loaded" defer="defer" src="/'+'/:"></s'+"cript>");$('dom-loaded').onreadystatechange=function(){if(this.readyState=='complete'){fn.call();}};}},getElementsByClass:function(searchClass,node,tag){var classElements=[];if(node==null){node=document;}if(tag==null){tag='*';}var els=node.getElementsByTagName(tag);var elsLen=els.length;var pattern=new RegExp("(^|\\s)"+searchClass+"(\\s|$)");for(i=0,j=0;i<elsLen;i++){if(pattern.test(els[i].className)){classElements[j]=els[i];j++;}}return classElements;},getParent:function(el,offset){offset=offset||1;var parent=$(el).parentNode;for(var i=1;i<offset;i++){parent=parent.parentNode;}return parent;},getChild:function(el,depth){var child=$(el).childNodes[depth-1];while(child.nodeType!=1){child=child.nextSibling;}return child;},getChildren:function(el){var arr=[];var children=$(el).childNodes;for(var i=0;i<children.length;i++){if(children[i].nodeType==1){arr.push(children[i]);}}return arr;},next:function(el){var next=el.nextSibling;while(next.nodeType!=1){next=next.nextSibling;}return next;},insertAfter:function(node,referenceNode){referenceNode.parentNode.insertBefore(node,referenceNode.nextSibling);}};
WS.Util={createToggle:function(id){var t=$(id+'-toggle');var c=$(id+'-container');WS.hide(c);WS.Event.addEvent(t,'click',function(e){WS.Event.stopEvent(e);WS.toggle(c);});},fixPngBackground:function(img,sizingMethod){sizingMethod=sizingMethod||'scale';if(WS.browser.IE6){img=$(img);var src=img.currentStyle.backgroundImage.replace(/url\("(.*)"\)/,'$1');img.style.filter='progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\''+src+'\', sizingMethod=\''+sizingMethod+'\')';img.style.background='none';}},parseJSON:function(json){try{if(/^("(\\.|[^"\\\n\r])*?"|[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t])+?$/.test(json)){var j=eval('('+json+')');return j;}}catch(e){}throw new SyntaxError('Can\'t parse JSON string');},number_format:function(a,b,c,d){a=Math.round(a*Math.pow(10,b))/Math.pow(10,b);e=a+'';f=e.split('.');if(!f[0]){f[0]='0';}if(!f[1]){f[1]='';}if(f[1].length<b){g=f[1];for(i=f[1].length+1;i<=b;i++){g+='0';}f[1]=g;}if(d!=''&&f[0].length>3){h=f[0];f[0]='';for(j=3;j<h.length;j+=3){i=h.slice(h.length-j,h.length-j+3);f[0]=d+i+f[0]+'';}j=h.substr(0,(h.length%3===0)?3:(h.length%3));f[0]=j+f[0];}c=(b<=0)?'':c;return f[0]+c+f[1];},collectionToArray:function(c){var a=[];for(var i=0;i<c.length;i++){a.push(c.item(i));}return a;},secondsToMinutes:function(sec){var minutes=Math.floor(sec/60);var seconds=sec%60;if(seconds<10){seconds='0'+seconds;}return minutes+':'+seconds;}};
WS.Event={addEvent:function(el,type,listener,useCapture){el=$(el);useCapture=useCapture||false;if(WS.browser.Gecko){el.addEventListener(type,listener,useCapture);}else if(WS.browser.IE){var r=el.attachEvent('on'+type,function(){listener.call(el,window.event);});return r;}},removeEvent:function(el,type,listener,useCapture){useCapture=useCapture||false;if(WS.browser.Gecko){el.removeEventListener(type,listener,useCapture);}else if(WS.browser.IE){var r=el.detachEvent('on'+type,listener);}},stopEvent:function(e){e=e||window.event;if(WS.browser.Gecko){e.preventDefault();}else{e.returnValue=false;}},getTarget:function(e){if(e.target){return e.target;}else if(e.srcElement){return e.srcElement;}else{return false;}}};
WS.Ajax={getXMLHttpObject:function(){return window.ActiveXObject?new ActiveXObject('Microsoft.XMLHTTP'):new XMLHttpRequest();},stateChanged:function(xhr,fn){if(xhr.readyState==4){fn(xhr.responseText);}},request:function(url,fn){var self=this;var post=arguments[2]||'';var xhr=this.getXMLHttpObject();if(xhr){xhr.onreadystatechange=function(){self.stateChanged(xhr,fn);};if(post){xhr.open('POST',url,true);xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded');xhr.setRequestHeader('Content-length',post.length);xhr.setRequestHeader('Connection','close');}else{xhr.open('GET',url,true);}xhr.send(post);}}};
WS.Validation=function(form){var form=$(form),formElements=[],errorClass='wsv-error';var validations={required:{errorMessage:'Dit veld is verplicht',regex:/\S+/},email:{errorMessage:'U dient een geldig e-mailadres in te vullen',regex:/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/},zip:{errorMessage:'U dient een geldige postcode in te vullen (1234AB)',regex:/^[0-9]{4}[\ ]?[a-zA-Z]{2}$/},numeric:{errorMessage:'Dit veld mag alleen numerieke tekens bevatten',regex:/^[0-9]*$/},phone:{errorMessage:'U dient een geldig telefoonnummer in te vullen',regex:/^[0-9 +-]{10,16}$/}};return{initialize:function(){if(!form){return false;}for(var i=0;i<form.elements.length;i++){if(WS.hasClass(form.elements[i],'wsv-',true)){formElements.push(form.elements[i]);}}if(WS.browser.Webkit){var fieldsets=form.getElementsByTagName('fieldset');for(var i=0;i<fieldsets.length;i++){if(WS.hasClass(fieldsets[i],'wsv-',true)){formElements.push(fieldsets[i]);}}}this.initEvents();},initEvents:function(){var self=this;form.onsubmit=function(){return self.validateForm();};},enableElement:function(el){el=$(el);el.disabled=false;},disableElement:function(el){el=$(el);el.disabled=true;},addValidation:function(name,properties){if(!validations[name]){validations[name]=properties;}},validateElement:function(el){var valid=true;var vArr=el.className.match(/wsv-\w+/g);for(var i=0;i<vArr.length;i++){if(vArr[i]!=errorClass){if(el.nodeName=='INPUT'){if(el.type=='text'||el.type=='password'){if(vArr[i]=='wsv-required'||el.value!==''){valid=validations[vArr[i].split('wsv-')[1]].regex.test(el.value);}}else if(el.type=='checkbox'){valid=el.checked;}else if(el.type=='radio'){var nextElement=formElements[formElements.indexOf(el)+1];do{if(!el.checked){valid=false;}nextElement=formElements[formElements.indexOf(nextElement)+1];}while(nextElement.type=='radio'&&nextElement.name==el.name);}}else if(el.nodeName=='SELECT'){valid=el.value!=-1;}else if(el.nodeName=='TEXTAREA'){valid=el.value;}else if(el.nodeName=='FIELDSET'){valid=0;var inputs=el.getElementsByTagName('input');for(var i=0;i<inputs.length;i++){valid+=inputs[i].checked;}}}if(!valid){WS.addClass(el,errorClass);}else if(valid&&WS.hasClass(el,errorClass)){WS.removeClass(el,errorClass);}}return valid;},validateForm:function(){var submit=true;for(var i=0;i<formElements.length;i++){if(!this.validateElement(formElements[i])){submit=false;}}return submit;}};};
Function.prototype.bind=function(){var handler=this,args=[].slice.call(arguments,0),obj=args.shift();return function(){return handler.apply(obj,args.concat([].slice.call(arguments,0)));};};
if(!Array.forEach){Array.prototype.forEach=function(fun){var len=this.length>>>0;if(typeof fun!='function'){throw new TypeError();}var thisp=arguments[1];for(var i=0;i<len;i++){if(i in this){fun.call(thisp,this[i],i,this);}}};}
if(!Array.indexOf){Array.prototype.indexOf=function(obj){for(var i=0;i<this.length;i++){if(this[i]==obj){return i;}}return-1;};}
Array.prototype.first=function(){return this[0];};
Array.prototype.last=function(){return this[this.length-1];};
