/* <![CDATA[ */

(function(){
	window.WPM=window.WPM||{};
	WPM.init=function(){var cls;for(cls in WPM){if((cls!='init')&&WPM[cls].init){WPM[cls].init();}}};
	WPM.events={
		add:function(element,type,handler){
			if(WPM.util.isArray(type)){(function(types){var t;while((t=types.pop())){WPM.events.add(element,t,handler);}})(type);return true;}
			if(!element){return false;}
			if(element.addEventListener){element.addEventListener(type,handler,false);}
			else{
				if(!handler.$$guid){handler.$$guid=WPM.events.add.guid++;}
				if(!element.events){element.events={};}
				var handlers=element.events[type];if(!handlers){
					handlers=element.events[type]={};
					if(element['on'+type]){handlers[0]=element['on'+type];}
					element['on'+type]=WPM.events.run;
				}
				handlers[handler.$$guid]=handler;
			}
		},
		fix:function(event){event.target=event.target || event.srcElement;event.preventDefault=WPM.events.fix.preventDefault;event.stopPropagation=WPM.events.fix.stopPropagation;return event;},
		remove:function(element,type,handler){
			if(element.removeEventListener){element.removeEventListener(type,handler,false);}
			else if(element.events&&element.events[type] && handler.$$guid){delete element.events[type][handler.$$guid];}
		},
		run:function(event){
			event=event || WPM.events.fix(window.event);
			var returnValue=true,handlers=this.events[event.type],i;
			for(i in handlers){if(!Object.prototype[i]){this.$$handler=handlers[i];if(this.$$handler(event)===false){returnValue=false;}}}
			if(this.$$handler){this.$$handler=null;}
			return returnValue;
		},
		stop:function(event){event.preventDefault();event.stopPropagation();}
	};
	WPM.events.add.guid=1;
	WPM.events.fix.preventDefault=function(){this.returnValue=false;};WPM.events.fix.stopPropagation=function(){this.cancelBubble=true;};
	WPM.funcs=WPM.funcs||{};
	WPM.funcs.init=function(){
		WPM.funcs.fixRels();
	};
	WPM.funcs.fixRels=function(){
		var aa=document.getElementsByTagName('a'),a,l=aa.length;while(l){
			a=aa[--l];if(a.href.length && a.rel.length){
				var rA=a.rel.split(/\b/),rL=rA.length,r;while(rL){
					r=rA[--rL];switch(r){
						case 'external':a.setAttribute('target','_blank');break;
						case 'popup':
							var cA=a.className.split(' '),cL=cA.length,i;for(i=0;i<cL;++i){
								if(/^w\d+h\d+/i.test(cA[i])){
									var m=cA[i].substr(1).split(/\D/);
									if(!isNaN(m[1])){h=parseInt(m[1],10);}if(!isNaN(m[0])){w=parseInt(m[0],10);}break;
								}
							}
							WPM.events.add(a,'click',new Function('e','e.preventDefault();return WPM.funcs.popup(\''+a.getAttribute('href')+'\','+w+','+h+');'));break;
					}
				}
			}
		}
	};
	WPM.funcs.popup=function(url,w,h){h=h||200;w=w||300;var win=window.open(url,'popup','height='+h+',width='+w+',resizable=1,status=0');return false;};
	WPM.util={
		isAlien:function(value){return WPM.util.isObject(value) && typeof value.constructor!=='function';},
		isArray:function(value){return value && typeof value==='object' && typeof value.length==='number' && typeof value.splice==='function' && !value.propertyIsEnumerable('length');},
		isBoolean:function(value){return typeof value==='boolean';},
		isEmail:function(value){return /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]{2,}$/.test(value);},
		isEmpty:function(value){
			if(WPM.util.isObject(value)){var i,v;for(i in value){v=value[i];if(!!WPM.util.isUndefined(v) && !!WPM.util.isFunction(v)){return false;}}}
			return true;
		},
		isFunction:function(value){return typeof value==='function';},
		isNull:function(value){return typeof value==='object' && !value;},
		isNumber:function(value){return typeof value==='number' && isFinite(value);},
		isPostcode:function(value){return WPM.util.isPostcode.re.test(value);},
		isObject:function(value){return (typeof value==='object' && !!value) || WPM.util.isFunction(value);},
		isString:function(value){return typeof value==='string';},
		isUndefined:function(value){return typeof value==='undefined';},
		objectKeys:function(value,parent){
			if(parent && parent.__keys && WPM.util.isArray(parent.__keys)){return parent.__keys;}
			var a=[];if(!WPM.util.isArray(value) && typeof value!=='function'){var key;for(key in value){if(!Object.prototype[key]){a.push(key);}}}if(parent){parent.__keys=a;}return a;}
	};
	WPM.util.isPostcode.re=/^[A-PR-UWYZ]([A-HK-Y]?\d\d?|[A-HK-Y]\d[ABEHMNPRVWXY]|\d[A-HJKSTUW])\s*\d[ABD-HJLNP-UW-Z]{2}|GIR\s*0AA|BFPO\s*(\d{1,4}|C\/O\s*\d{1,3})$/i;
	WPM.events.add(window,'load',WPM.init);
	if(!window.addEventListener){document.onreadystatechange=function(){if(window.onload&&window.onload!=WPM.events.run){WPM.events.add(window,'load',window.onload);window.onload=WPM.events.run;}};}
})();

/* ]]> */