/**
 * SqueezeBox - Expandable Lightbox
 *
 * Allows to open various content as modal,
 * centered and animated box.
 *
 * Dependencies: MooTools 1.2
 *
 * Inspired by
 *  ... Lokesh Dhakar	- The original Lightbox v2
 *
 * @version		1.1 rc4
 *
 * @license		MIT-style license
 * @author		Harald Kirschner <mail [at] digitarald.de>
 * @copyright	Author
 */

var SqueezeBox = {

	presets: {
		onOpen: $empty,
		onClose: $empty,
		onUpdate: $empty,
		onResize: $empty,
		onMove: $empty,
		onShow: $empty,
		onHide: $empty,
		size: {x: 600, y: 450},
		sizeLoading: {x: 200, y: 150},
		marginInner: {x: 20, y: 20},
		marginImage: {x: 50, y: 75},
		handler: false,
		target: null,
		closable: true,
		closeBtn: true,
		zIndex: 65555,
		overlayOpacity: 0.7,
		classWindow: '',
		classOverlay: '',
		overlayFx: {},
		resizeFx: {},
		contentFx: {},
		parse: false, // 'rel'
		parseSecure: false,
		shadow: true,
		document: null,
		ajaxOptions: {}
	},

	initialize: function(presets) {
		if (this.options) return this;

		this.presets = $merge(this.presets, presets);
		this.doc = this.presets.document || document;
		this.options = {};
		this.setOptions(this.presets).build();
		this.bound = {
			window: this.reposition.bind(this, [null]),
			scroll: this.checkTarget.bind(this),
			close: this.close.bind(this),
			key: this.onKey.bind(this)
		};
		this.isOpen = this.isLoading = false;
		return this;
	},

	build: function() {
		this.overlay = new Element('div', {
			id: 'sbox-overlay',
			styles: {display: 'none', zIndex: this.options.zIndex}
		});
		this.win = new Element('div', {
			id: 'sbox-window',
			styles: {display: 'none', zIndex: this.options.zIndex + 2}
		});
		if (this.options.shadow) {
			if (Browser.Engine.webkit420) {
				this.win.setStyle('-webkit-box-shadow', '0 0 10px rgba(0, 0, 0, 0.7)');
			} else if (!Browser.Engine.trident4) {
				var shadow = new Element('div', {'class': 'sbox-bg-wrap'}).inject(this.win);
				var relay = function(e) {
					this.overlay.fireEvent('click', [e]);
				}.bind(this);
				['n', 'ne', 'e', 'se', 's', 'sw', 'w', 'nw'].each(function(dir) {
					new Element('div', {'class': 'sbox-bg sbox-bg-' + dir}).inject(shadow).addEvent('click', relay);
				});
			}
		}
		this.content = new Element('div', {id: 'sbox-content'}).inject(this.win);
		this.closeBtn = new Element('a', {id: 'sbox-btn-close', href: '#'}).inject(this.win);
		this.fx = {
			overlay: new Fx.Tween(this.overlay, $merge({
				property: 'opacity',
				onStart: Events.prototype.clearChain,
				duration: 250,
				link: 'cancel'
			}, this.options.overlayFx)).set(0),
			win: new Fx.Morph(this.win, $merge({
				onStart: Events.prototype.clearChain,
				unit: 'px',
				duration: 750,
				transition: Fx.Transitions.Quint.easeOut,
				link: 'cancel',
				unit: 'px'
			}, this.options.resizeFx)),
			content: new Fx.Tween(this.content, $merge({
				property: 'opacity',
				duration: 250,
				link: 'cancel'
			}, this.options.contentFx)).set(0)
		};
		$(this.doc.body).adopt(this.overlay, this.win);
	},

	assign: function(to, options) {
		return ($(to) || $$(to)).addEvent('click', function() {
			return !SqueezeBox.fromElement(this, options);
		});
	},
	
	open: function(subject, options) {
		this.initialize();

		if (this.element != null) this.trash();
		this.element = $(subject) || false;
		
		this.setOptions($merge(this.presets, options || {}));
		
		if (this.element && this.options.parse) {
			var obj = this.element.getProperty(this.options.parse);
			if (obj && (obj = JSON.decode(obj, this.options.parseSecure))) this.setOptions(obj);
		}
		this.url = ((this.element) ? (this.element.get('href')) : subject) || this.options.url || '';

		this.assignOptions();
		
		var handler = handler || this.options.handler;
		if (handler) return this.setContent(handler, this.parsers[handler].call(this, true));
		var ret = false;
		return this.parsers.some(function(parser, key) {
			var content = parser.call(this);
			if (content) {
				ret = this.setContent(key, content);
				return true;
			}
			return false;
		}, this);
	},
	
	fromElement: function(from, options) {
		return this.open(from, options);
	},

	assignOptions: function() {
		this.overlay.set('class', this.options.classOverlay);
		this.win.set('class', this.options.classWindow);
		if (Browser.Engine.trident4) this.win.addClass('sbox-window-ie6');
	},

	close: function(e) {
		var stoppable = ($type(e) == 'event');
		if (stoppable) e.stop();
		if (!this.isOpen || (stoppable && !$lambda(this.options.closable).call(this, e))) return this;
		this.fx.overlay.start(0).chain(this.toggleOverlay.bind(this));
		this.win.setStyle('display', 'none');
		this.fireEvent('onClose', [this.content]);
		this.trash();
		this.toggleListeners();
		this.isOpen = false;
		return this;
	},

	trash: function() {
		this.element = this.asset = null;
		this.content.empty();
		this.options = {};
		this.removeEvents().setOptions(this.presets).callChain();
	},

	onError: function() {
		this.asset = null;
		this.setContent('string', this.options.errorMsg || 'An error occurred');
	},

	setContent: function(handler, content) {
		if (!this.handlers[handler]) return false;
		this.content.className = 'sbox-content-' + handler;
		this.applyTimer = this.applyContent.delay(this.fx.overlay.options.duration, this, this.handlers[handler].call(this, content));
		if (this.overlay.retrieve('opacity')) return this;
		this.toggleOverlay(true);
		this.fx.overlay.start(this.options.overlayOpacity);
		return this.reposition();
	},

	applyContent: function(content, size) {
		if (!this.isOpen && !this.applyTimer) return;
		this.applyTimer = $clear(this.applyTimer);
		this.hideContent();
		if (!content) {
			this.toggleLoading(true);
		} else {
			if (this.isLoading) this.toggleLoading(false);
			this.fireEvent('onUpdate', [this.content], 20);
		}
		if (content) {
			if (['string', 'array'].contains($type(content))) this.content.set('html', content);
			else if (!this.content.hasChild(content)) this.content.adopt(content);
		}
		this.callChain();
		if (!this.isOpen) {
			this.toggleListeners(true);
			this.resize(size, true);
			this.isOpen = true;
			this.fireEvent('onOpen', [this.content]);
		} else {
			this.resize(size);
		}
	},

	resize: function(size, instantly) {
		this.showTimer = $clear(this.showTimer || null);
		var box = this.doc.getSize(), scroll = this.doc.getScroll();
		this.size = $merge((this.isLoading) ? this.options.sizeLoading : this.options.size, size);
		var to = {
			width: this.size.x,
			height: this.size.y,
			left: (scroll.x + (box.x - this.size.x - this.options.marginInner.x) / 2).toInt(),
			top: (scroll.y + (box.y - this.size.y - this.options.marginInner.y) / 2).toInt()
		};
		this.hideContent();
		if (!instantly) {
			this.fx.win.start(to).chain(this.showContent.bind(this));
		} else {
			this.win.setStyles(to).setStyle('display', '');
			this.showTimer = this.showContent.delay(50, this);
		}
		return this.reposition();
	},

	toggleListeners: function(state) {
		var fn = (state) ? 'addEvent' : 'removeEvent';
		this.closeBtn[fn]('click', this.bound.close);
		this.overlay[fn]('click', this.bound.close);
		this.doc[fn]('keydown', this.bound.key)[fn]('mousewheel', this.bound.scroll);
		this.doc.getWindow()[fn]('resize', this.bound.window)[fn]('scroll', this.bound.window);
	},

	toggleLoading: function(state) {
		this.isLoading = state;
		this.win[(state) ? 'addClass' : 'removeClass']('sbox-loading');
		if (state) this.fireEvent('onLoading', [this.win]);
	},

	toggleOverlay: function(state) {
		var full = this.doc.getSize().x;
		this.overlay.setStyle('display', (state) ? '' : 'none');
		this.doc.body[(state) ? 'addClass' : 'removeClass']('body-overlayed');
		if (state) {
			this.scrollOffset = this.doc.getWindow().getSize().x - full;
			this.doc.body.setStyle('margin-right', this.scrollOffset);
		} else {
			this.doc.body.setStyle('margin-right', '');
		}
	},

	showContent: function() {
		if (this.content.get('opacity')) this.fireEvent('onShow', [this.win]);
		this.fx.content.start(1);
	},

	hideContent: function() {
		if (!this.content.get('opacity')) this.fireEvent('onHide', [this.win]);
		this.fx.content.cancel().set(0);
	},

	onKey: function(e) {
		switch (e.key) {
			case 'esc': this.close(e);
			case 'up': case 'down': return false;
		}
	},

	checkTarget: function(e) {
		return this.content.hasChild(e.target);
	},

	reposition: function() {
		var size = this.doc.getSize(), scroll = this.doc.getScroll(), ssize = this.doc.getScrollSize();
		this.overlay.setStyles({
			width: ssize.x + 'px',
			height: ssize.y + 'px'
		});
		this.win.setStyles({
			left: (scroll.x + (size.x - this.win.offsetWidth) / 2 - this.scrollOffset).toInt() + 'px',
			top: (scroll.y + (size.y - this.win.offsetHeight) / 2).toInt() + 'px'
		});
		return this.fireEvent('onMove', [this.overlay, this.win]);
	},

	removeEvents: function(type){
		if (!this.$events) return this;
		if (!type) this.$events = null;
		else if (this.$events[type]) this.$events[type] = null;
		return this;
	},

	extend: function(properties) {
		return $extend(this, properties);
	},

	handlers: new Hash(),

	parsers: new Hash()

};

SqueezeBox.extend(new Events($empty)).extend(new Options($empty)).extend(new Chain($empty));

SqueezeBox.parsers.extend({

	image: function(preset) {
		return (preset || (/\.(?:jpg|png|gif)$/i).test(this.url)) ? this.url : false;
	},

	clone: function(preset) {
		if ($(this.options.target)) return $(this.options.target);
		if (this.element && !this.element.parentNode) return this.element;
		var bits = this.url.match(/#([\w-]+)$/);
		return (bits) ? $(bits[1]) : (preset ? this.element : false);
	},

	ajax: function(preset) {
		return (preset || (this.url && !(/^(?:javascript|#)/i).test(this.url))) ? this.url : false;
	},

	iframe: function(preset) {
		return (preset || this.url) ? this.url : false;
	},

	string: function(preset) {
		return true;
	}
});

SqueezeBox.handlers.extend({

	image: function(url) {
		var size, tmp = new Image();
		this.asset = null;
		tmp.onload = tmp.onabort = tmp.onerror = (function() {
			tmp.onload = tmp.onabort = tmp.onerror = null;
			if (!tmp.width) {
				this.onError.delay(10, this);
				return;
			}
			var box = this.doc.getSize();
			box.x -= this.options.marginImage.x;
			box.y -= this.options.marginImage.y;
			size = {x: tmp.width, y: tmp.height};
			for (var i = 2; i--;) {
				if (size.x > box.x) {
					size.y *= box.x / size.x;
					size.x = box.x;
				} else if (size.y > box.y) {
					size.x *= box.y / size.y;
					size.y = box.y;
				}
			}
			size.x = size.x.toInt();
			size.y = size.y.toInt();
			this.asset = $(tmp);
			tmp = null;
			this.asset.width = size.x;
			this.asset.height = size.y;
			this.applyContent(this.asset, size);
		}).bind(this);
		tmp.src = url;
		if (tmp && tmp.onload && tmp.complete) tmp.onload();
		return (this.asset) ? [this.asset, size] : null;
	},

	clone: function(el) {
		if (el) return el.clone();
		return this.onError();
	},

	adopt: function(el) {
		if (el) return el;
		return this.onError();
	},

	ajax: function(url) {
		var options = this.options.ajaxOptions || {};
		this.asset = new Request.HTML($merge({
			method: 'get',
			evalScripts: false
		}, this.options.ajaxOptions)).addEvents({
			onSuccess: function(resp) {
				this.applyContent(resp);
				if (options.evalScripts !== null && !options.evalScripts) $exec(this.asset.response.javascript);
				this.fireEvent('onAjax', [resp, this.asset]);
				this.asset = null;
			}.bind(this),
			onFailure: this.onError.bind(this)
		});
		this.asset.send.delay(10, this.asset, [{url: url}]);
	},

	iframe: function(url) {
		this.asset = new Element('iframe', $merge({
			src: url,
			frameBorder: 0,
			width: this.options.size.x,
			height: this.options.size.y
		}, this.options.iframeOptions));
		if (this.options.iframePreload) {
			this.asset.addEvent('load', function() {
				this.applyContent(this.asset.setStyle('display', ''));
			}.bind(this));
			this.asset.setStyle('display', 'none').inject(this.content);
			return false;
		}
		return this.asset;
	},

	string: function(str) {
		return str;
	}

});

SqueezeBox.handlers.url = SqueezeBox.handlers.ajax;
SqueezeBox.parsers.url = SqueezeBox.parsers.ajax;
SqueezeBox.parsers.adopt = SqueezeBox.parsers.clone;/**
 * Roar - Notifications
 *
 * Inspired by Growl
 *
 * @version		1.0.1
 *
 * @license		MIT-style license
 * @author		Harald Kirschner <mail [at] digitarald.de>
 * @copyright	Author
 */

var Roar = new Class({

	Implements: [Options, Events, Chain],

	options: {
		duration: 3000,
		position: 'upperLeft',
		container: null,
		bodyFx: null,
		itemFx: null,
		margin: {x: 10, y: 10},
		offset: 10,
		className: 'roar',
		onShow: $empty,
		onHide: $empty,
		onRender: $empty
	},

	initialize: function(options) {
		this.setOptions(options);
		this.items = [];
		this.container = $(this.options.container) || document;
	},

	alert: function(title, message, options) {
		var params = Array.link(arguments, {title: String.type, message: String.type, options: Object.type});
		var items = [new Element('h3', {'html': $pick(params.title, '')})];
		if (params.message) items.push(new Element('p', {'html': params.message}));
		return this.inject(items, params.options);
	},

	inject: function(elements, options) {
		if (!this.body) this.render();
		options = options || {};

		var offset = [-this.options.offset, 0];
		var last = this.items.getLast();
		if (last) {
			offset[0] = last.retrieve('roar:offset');
			offset[1] = offset[0] + last.offsetHeight + this.options.offset;
		}
		var to = {'opacity': 1};
		to[this.align.y] = offset;

		var item = new Element('div', {
			'class': this.options.className,
			'opacity': 0
		}).adopt(
			new Element('div', {
				'class': 'roar-bg',
				'opacity': 0.7
			}),
			elements
		);

		item.setStyle(this.align.x, 0).store('roar:offset', offset[1]).set('morph', $merge({
			unit: 'px',
			link: 'cancel',
			onStart: Chain.prototype.clearChain,
			transition: Fx.Transitions.Back.easeOut
		}, this.options.itemFx));

		var remove = this.remove.create({
			bind: this,
			arguments: [item],
			delay: 10
		});
		this.items.push(item.addEvent('click', remove));

		if (this.options.duration) {
			var over = false;
			var trigger = (function() {
				trigger = null;
				if (!over) remove();
			}).delay(this.options.duration);
			item.addEvents({
				mouseover: function() {
					over = true;
				},
				mouseout: function() {
					over = false;
					if (!trigger) remove();
				}
			});
		}
		item.inject(this.body).morph(to);
		return this.fireEvent('onShow', [item, this.items.length]);
	},

	remove: function(item) {
		var index = this.items.indexOf(item);
		if (index == -1) return this;
		this.items.splice(index, 1);
		item.removeEvents();
		var to = {opacity: 0};
		to[this.align.y] = item.getStyle(this.align.y).toInt() - item.offsetHeight - this.options.offset;
		item.morph(to).get('morph').chain(item.destroy.bind(item));
		return this.fireEvent('onHide', [item, this.items.length]).callChain(item);
	},

	empty: function() {
		while (this.items.length) this.remove(this.items[0]);
		return this;
	},

	render: function() {
		this.position = this.options.position;
		if ($type(this.position) == 'string') {
			var position = {x: 'center', y: 'center'};
			this.align = {x: 'left', y: 'top'};
			if ((/left|west/i).test(this.position)) position.x = 'left';
			else if ((/right|east/i).test(this.position)) this.align.x = position.x = 'right';
			if ((/upper|top|north/i).test(this.position)) position.y = 'top';
			else if ((/bottom|lower|south/i).test(this.position)) this.align.y = position.y = 'bottom';
			this.position = position;
		}
		this.body = new Element('div', {'class': 'roar-body'}).inject(document.body);
		if (Browser.Engine.trident4) this.body.addClass('roar-body-ugly');
		this.moveTo = this.body.setStyles.bind(this.body);
		this.reposition();
		if (this.options.bodyFx) {
			var morph = new Fx.Morph(this.body, $merge({
				unit: 'px',
				chain: 'cancel',
				transition: Fx.Transitions.Circ.easeOut
			}, this.options.bodyFx));
			this.moveTo = morph.start.bind(morph);
		}
		var repos = this.reposition.bind(this);
		window.addEvents({
			scroll: repos,
			resize: repos
		});
		this.fireEvent('onRender', this.body);
	},

	reposition: function() {
		var max = document.getCoordinates(), scroll = document.getScroll(), margin = this.options.margin;
		max.left += scroll.x;
		max.right += scroll.x;
		max.top += scroll.y;
		max.bottom += scroll.y;
		var rel = ($type(this.container) == 'element') ? this.container.getCoordinates() : max;
		this.moveTo({
			left: (this.position.x == 'right')
				? (Math.min(rel.right, max.right) - margin.x)
				: (Math.max(rel.left, max.left) + margin.x),
			top: (this.position.y == 'bottom')
				? (Math.min(rel.bottom, max.bottom) - margin.y)
				: (Math.max(rel.top, max.top) + margin.y)
		});
	}

});var FLIR={version:"2.0b3",options:{path:"",defaultStyle:null,ignoredEls:"BR,HR,IMG,INPUT,SELECT",bkgCheckForBlock:false,onreplacing:null,onreplaced:null,onreplacingchild:null,onreplacedchild:null},findEmbededFonts:false,dpi:96,flirElements:{},flirPlugins:[],isIE6:true,isIE:true,hoverEnabled:false,debug:false,init:function(a){if(typeof a!="undefined"){for(var b in a){this.options[b]=a[b]}}if(this.options.defaultStyle==null){this.options.defaultStyle=new FLIRStyle()}this.detectBrowser();this.calcDPI();if((this.findEmbededFonts=(typeof FLIR.discoverEmbededFonts=="function"))){this.discoverEmbededFonts()}this.hoverEnabled=(typeof this.addHover=="function");FLIR.pcall("init",arguments)},install:function(a){this.flirPlugins.push(a)},pcall:function(d,c){var a=c;for(var b=0;b<this.flirPlugins.length;b++){if(typeof this.flirPlugins[b][d]=="function"){var e=this.flirPlugins[b][d](a);if(typeof e=="undefined"){continue}if(typeof e=="boolean"&&e==false){return false}if(typeof e!="boolean"){a=c}}}var a=typeof a!="object"?[a]:a;if(a.length&&a[0]&&a[0].callee){return a[0]}else{return a}},prepare:function(f,b){if(!(args=FLIR.pcall("prepare",arguments))){return}f=args[0];if(f&&f.hasChildNodes()&&f.childNodes.length>1){for(var c=0;c<f.childNodes.length;c++){var e=f.childNodes[c];if(e&&e.nodeType==3){if(b){trimreg=c==0?/^\s+/g:/\s+$/g;e.innerHTML=e.innerHTML.replace(trimreg,"")}var d=document.createElement("SPAN");d.style.margin=d.style.padding=d.style.border="0";d.className="flir-span";d.flirSpan=true;if(e.nodeValue.match(/^[\n\r]+$/)){continue}var a=e.nodeValue.replace(/[\t\n\r]/g," ").replace(/\s\s+/g," ");d.innerHTML=!FLIR.isIE?a:e.nodeValue.replace(/^\s+|\s+$/g,"&nbsp;");f.replaceChild(d,e)}}}},replace:function(c,b){if(!(args=FLIR.pcall("replace",arguments))){return}c=args[0];b=args[1];if(!c||c.flirReplaced){return}if(!this.isFStyle(b)&&typeof b=="object"){b=new FLIRStyle(b)}else{if(!this.isFStyle(b)){b=this.options.defaultStyle}}if(typeof c=="string"){c=this.getElements(c)}if(typeof c.length!="undefined"){if(c.length==0){return}for(var a=0;a<c.length;a++){this.replace(c[a],b)}return}c.flirStyle=b;if(typeof FLIR.options.onreplacing=="function"){c=FLIR.options.onreplacing(c,b)}c.flirMainObj=true;this.saveObject(c);if(this.findEmbededFonts&&typeof this.embededFonts[b.getFont(c,FLIR.getStyle(c,"font-family"))]!="undefined"){return}FLIR.prepare(c);this._replace_tree(c,b);if(typeof FLIR.options.onreplaced=="function"){FLIR.options.onreplaced(c,b)}},_replace_tree:function(e,c){var d=!e.hasChildNodes()||(e.hasChildNodes()&&e.childNodes.length==1&&e.childNodes[0].nodeType==3)?[e]:e.childNodes;var a;for(var b=0;b<d.length;b++){a=d[b];if(typeof FLIR.options.onreplacingchild=="function"){a=FLIR.options.onreplacingchild(a,c)}if(!a.innerHTML||a.nodeType!=1){continue}if(FLIR.isIgnoredEl(a)){continue}if(a.flirReplaced){continue}if(FLIR.hoverEnabled&&a.nodeName=="A"&&!a.flirHasHover){FLIR.addHover(a)}if(a.hasChildNodes()&&(a.childNodes.length>1||a.childNodes[0].nodeType!=3)){FLIR.prepare(a);FLIR._replace_tree(a,c);continue}if(a.innerHTML==""){continue}var f=c.options.output;if(FLIR.isIE6&&(a.flirIE6PNG=(f=="png"||(f=="auto"&&FLIR.getStyle(a,"background-color")=="transparent")))){FLIR._Rimg(a,c,true)}else{if(c.replaceBackground){FLIR._Rbkg(a,c)}else{FLIR._Rimg(a,c)}}a.className+=" flir-replaced";a.flirReplaced=true;if(typeof FLIR.options.onreplacedchild=="function"){FLIR.options.onreplacedchild(e,c)}}},_Rbkg:function(e,d){if(!(args=FLIR.pcall("replaceBackground",arguments))){return}e=args[0];d=args[1];var c=this.saveObject(e);var a=d.URL(e);if(FLIR.options.bkgCheckForBlock){if(FLIR.getStyle(e,"display")!="block"){e.style.display="block"}}var b=new Image();b.onload=function(){FLIR.flirElements[c].style.width=this.width+"px";FLIR.flirElements[c].style.height=this.height+"px";if(FLIR.hoverEnabled&&d!=d.hoverStyle){var f=new Image();e.flirHoverURL=f.src=d.hoverStyle.URL(e)}};b.src=a;e.style.background='url("'+a.replace(/ /g,"%20")+'") no-repeat';e.flirOrig=a;e.oldTextIndent=e.style.textIndent;e.style.textIndent="-9999px"},_Rimg:function(f,e,d){if(!(args=FLIR.pcall("replaceMethodOverlay",arguments))){return}f=args[0];e=args[1];var c=this.saveObject(f);var a=document.createElement("IMG");var b=e.URL(f);a.alt=f.innerHTML;if(FLIR.hoverEnabled&&e!=e.hoverStyle){a.onload=function(){var g=new Image();f.flirHoverURL=g.src=e.hoverStyle.URL(f,a.alt)}}if(a.onerror){a.onerror=function(){var g=document.createElement("SPAN");g.innerHTML=a.alt;try{f.replaceChild(g,a)}catch(h){}}}a.flirImage=true;a.className="flir-image";a.style.border="none";if(d){a.src=this.options.path+"spacer.png";if(f.offsetWidth){a.style.width=f.offsetWidth+"px";a.style.height=f.offsetHeight+"px"}a.style.filter='progid:DXImageTransform.Microsoft.AlphaImageLoader(src="'+b+'", sizingMethod="image")';f.flirOrig=b}else{a.src=b;f.flirOrig=a.src}f.innerHTML="";f.appendChild(a)},saveObject:function(a){if(typeof a.flirId=="undefined"){a.flirId=this.generateUID();this.flirElements[a.flirId]=a}return a.flirId},generateUID:function(){var a="flir-";if(typeof __flir_uid_count=="undefined"){__flir_uid_count=0}else{__flir_uid_count++}return a+__flir_uid_count},calcDPI:function(){if(screen.logicalXDPI){var b=parseInt(screen.logicalXDPI)}else{var d=document.cookie.match(/<dpi>(\d+)<\/dpi>/);if(d){this.dpi=d[1];return}var c=document.createElement("DIV");c.style.position="absolute";c.style.visibility="hidden";c.style.border=c.style.padding=c.style.margin="0";c.style.height=c.style.width="1in";document.body.appendChild(c);var b=parseInt(c.offsetHeight);document.body.removeChild(c);var a=new Date();a.setDate(new Date().getDate()+365);document.cookie="dpi=<dpi>"+this.dpi+"</dpi>;expires="+a.toGMTString()+";path=/"}if(b>0){this.dpi=b}},isIgnoredEl:function(a){return((","+this.options.ignoredEls+",").indexOf(","+a.nodeName+",")>-1)},sanitizeHTML:function(a){return a.replace(/<[^>]+>/g,"")},isFStyle:function(a){if(!a){return false}return(typeof a.cssMap!="undefined")}};__flirstyle_instances=0;function FLIRStyle(a,c){__flirstyle_instances++;this.uid=__flirstyle_instances;this.replaceBackground=false;this.hoverStyle=c&&FLIR.isFStyle(c)?c:this;this.options={};this.defaults={mode:"static",output:"auto",fixBaseline:false,hq:false,css:{}};this.cssMap={"background-color":"Background",color:"Color","font-family":"Font","font-size":"FontSize","letter-spacing":"Measurement","line-height":"LineHeight","text-align":"Default","font-stretch":"Default","font-style":"FontStyle","font-variant":"Default","font-weight":"Weight",opacity:"Default","text-decoration":"Default"};for(var b in this.defaults){this.options[b]=this.defaults[b]}if(a&&typeof a.css=="string"){a.css=this.parse_css_string(a.css)}this.loadopts(a)}FLIRStyle.prototype.loadopts=function(b){for(var c in this.cssMap){this.options.css[c]=null}if(typeof this.loadopts_compat=="function"){b=this.loadopts_compat(b)}if(typeof b!="undefined"){for(var c in b){if(b[c]==null){continue}if(typeof this[c]!="undefined"){this[c]=b[c]}else{if(c=="css"){for(var a in b[c]){prop=a.replace(/[A-Z]/g,function(d){return"-"+d.toLowerCase()});this.options[c][prop]=b[c][a]}}else{this.options[c]=b[c]}}}}};FLIRStyle.prototype.parse_css_string=function(c){var d=c.split(";");var a={};var e;for(var b=0;b<d.length;b++){if(d[b].indexOf(":")<0){continue}e=d[b].split(":");a[e[0].replace(/^\s+|\s+$/,"")]=e[1].replace(/^\s+|\s+$/,"")}return a};FLIRStyle.prototype.URL=function(d){var c=(arguments[1]?arguments[1]:d.innerHTML);var b=this.options.css["text-transform"];if(b==null){b=FLIR.getStyle(d,"text-transform")}switch(b){case"capitalize":c=c.replace(/\w+/g,function(e){return e.charAt(0).toUpperCase()+e.substr(1).toLowerCase()});break;case"lowercase":c=c.toLowerCase();break;case"uppercase":c=c.toUpperCase().replace(/&[a-z0-9]+;/gi,function(e){return e.toLowerCase()});break}c=this.encodeText(c,d.flirIE6PNG);var a=FLIR.options.path+"generate.php?t="+c+"&h="+d.offsetHeight+"&w="+d.offsetWidth+"&c="+this.flattenCSS(d)+"&d="+FLIR.dpi+"&f="+this.serialize();if(FLIR.debug){a+="&rand="+(Math.random()*Math.random())}return a};FLIRStyle.prototype.encodeText=function(b,a){b=encodeURIComponent(b.replace(/&/g,"{*A}").replace(/\+/g,"{*P}").replace(/\(/g,"{*LP}").replace(/\)/g,"{*RP}"));if(a){b=escape(b)}return b};FLIRStyle.prototype.serialize=function(){var b="";for(var a in this.options){if(a=="css"){continue}b+=',"'+a+'":"'+this.options[a].toString().replace(/"/g,"'")+'"'}return encodeURIComponent("{"+b.substr(1)+"}")};FLIRStyle.prototype.flattenCSS=function(d){var a=this.copyObject(this.options.css);for(var c in this.cssMap){this.options.css[c]=this.get(d,c,this.cssMap[c])}var b="";for(var c in this.options.css){if(this.options.css[c]==null||typeof this.options.css[c]=="undefined"){this.options.css[c]=""}b+="|"+encodeURIComponent(this.options.css[c].toString().replace(/|/g,""))}b=b.substr(1);this.options.css=a;return b};FLIRStyle.prototype.get=function(g,a,d){var c="get"+d;while(g.flirSpan&&g!=document.body){g=FLIR.getParentNode(g)}var e=this.options.css[a];var f=!e||e==null?FLIR.getStyle(g,a):this.options.css[a];var b=typeof this[c]=="function"?this[c](g,f):f;return b=="normal"||b=="none"||b=="start"?"":b};FLIRStyle.prototype.getFontStyle=function(b,a){return(b.nodeName=="EM"||FLIR.getParentNode(b).nodeName=="EM"?"italic":a)=="italic"?"1":""};FLIRStyle.prototype.getBackground=function(d,c){if(this.options.output=="gif"&&c.search(/^(transparent|none)$/i)>-1){var b=FLIR.getParentNode(d);var a=FLIR.getStyle(b,"background-color");if(typeof __flirstyle_root_obj=="undefined"){__flirstyle_root_obj=FLIR.getParentNode(document.body)}while(a.search(/^(transparent|none)$/i)>-1&&b!=__flirstyle_root_obj){b=FLIR.getParentNode(b);a=FLIR.getStyle(b,"background-color")}return this.getColor(d,a)}else{return this.getColor(d,c)}};FLIRStyle.prototype.getWeight=function(c,b){var a=c.nodeName=="STRONG"||FLIR.getParentNode(c).nodeName=="STRONG"?"bold":b;switch(a.toString()){case"100":case"200":case"300":case"lighter":return"-1";case"400":case"normal":return"";case"500":case"600":case"700":case"bold":return"1";case"800":case"900":case"bolder":return"2"}};FLIRStyle.prototype.getLineHeight=function(c,b){var a=this.getMeasurement(c,b)/c.flirFontSize;return Math.round((a*100000))/100000};FLIRStyle.prototype.getFont=function(b,a){if(a.indexOf(",")){a=a.split(",")[0]}return a.replace(/['"]/g,"").toLowerCase()};FLIRStyle.prototype.getColor=function(b,a){switch(a){case"transparent":case"none":return"";default:if(a.substr(0,1)=="#"){a=a.substr(1)}return a.replace(/['"\(\) ]|rgba?/g,"").toLowerCase()}};FLIRStyle.prototype.getFontSize=function(o,val){var px=this.getMeasurement(o,val,true);var prepx=px;if("*/+-".indexOf(val[0])>-1){try{px=Math.round((parseFloat(eval(px.toString().concat(val))))*10000)/10000}catch(err){px=16}}o.flirFontSize=px;return px};FLIRStyle.prototype.getMeasurement=function(g,f,d){var c,b,a;if(f=="normal"||f=="none"){return""}if(f.indexOf("px")>-1){c=Math.round(parseFloat(f))}else{if(f.indexOf("pt")>-1){var e=parseFloat(f);c=e/(72/FLIR.dpi)}else{if((b=(f.indexOf("em")>-1))||(a=(f.indexOf("%")>-1))){if(!g.flirFontSize){var h=document.createElement("DIV");h.style.padding=h.style.border="0";h.style.position="absolute";h.style.visibility="hidden";if(d){h.style.lineHeight="100%"}h.innerHTML="FlirTest";g.appendChild(h);c=h.offsetHeight;g.removeChild(h)}else{c=g.flirFontSize}}}}return c};FLIRStyle.prototype.copyObject=function(b){var c={};for(var a in b){c[a]=b[a]}return c};FLIRStyle.prototype.toString=function(){return this.uid};FLIR.detectBrowser=function(){FLIR.isIE=(navigator.userAgent.toLowerCase().indexOf("msie")>-1&&!window.opera);FLIR.isIE6=(typeof document.body.style.maxHeight=="undefined")};FLIR.getElements=function(r){var q=[];if(document.querySelectorAll){var e=false;try{q=document.querySelectorAll(r);e=true}catch(f){e=false}if(e){return q}}var i,n,l,j,r,d,h,o,k;d=r;o=false;if(d.indexOf(" ")>-1){var g=d.split(" ");d=g[0];o=g[1]}else{if(d.substr(0,1)=="#"){return document.getElementById(d.substr(1))}}var c=false;if(d.indexOf("#")>-1){c=d.split("#")[1];r=d.split("#")[0]}var m=false;if(d.indexOf(".")>-1){m=d.split(".")[1];r=d.split(".")[0]}i=document.getElementsByTagName(r);for(var a=0;a<i.length;a++){if(i[a].nodeType!=1){continue}h=false;l=i[a].className?i[a].className:"";if(c&&i[a].id&&i[a].id==c){h=true}if(m&&FLIR.hasClass(i[a],m)){h=true}if(!c&&!m){h=true}if(!h){continue}n=false!=o?i[a].getElementsByTagName(o):[i[a]];for(var b=0;b<n.length;b++){k=n[b];q.push(k)}}return q};FLIR.getStyle=function(a,c){if(a.currentStyle){if(c.indexOf("-")>-1){c=c.split("-")[0]+c.split("-")[1].substr(0,1).toUpperCase()+c.split("-")[1].substr(1)}var b=a.currentStyle[c]}else{if(window.getComputedStyle){var b=document.defaultView.getComputedStyle(a,"").getPropertyValue(c)}}return b};FLIR.getChildren=function(c){var b=[];if(c&&c.hasChildNodes()){for(var a in c.childNodes){if(c.childNodes[a]&&c.childNodes[a].nodeType==1){b[b.length]=c.childNodes[a]}}}return b};FLIR.getParentNode=function(b){var a=b.parentNode;while(a!=document&&a.nodeType!=1){a=a.parentNode}return a};FLIR.hasClass=function(a,b){return(a&&a.className&&a.className.indexOf(b)>-1)};FLIR.evsrc=function(a){var b;if(a.target){b=a.target}else{if(a.srcElement){b=a.srcElement}}if(b.nodeType==3){b=b.parentNode}return b};FLIR.addHover=function(a){if(!(args=FLIR.pcall("addHover",arguments))){return}a=args[0];a.flirHasHover=true;if(a.addEventListener){a.addEventListener("mouseover",FLIR.hover,false);a.addEventListener("mouseout",FLIR.hover,false)}else{if(a.attachEvent){a.attachEvent("onmouseover",function(){FLIR.hover(window.event)});a.attachEvent("onmouseout",function(){FLIR.hover(window.event)})}}};FLIR.flirIERepObj=[];FLIR.flirIEHovEls=[];FLIR.flirIEHovStyles=[];FLIR.hover=function(m){console.log("hover");var b=FLIR.evsrc(m);var p=b;var s=b.flirHasHover;var j=b;var n=(m.type=="mouseover");while(b!=document.body&&!b.flirMainObj){b=FLIR.getParentNode(b);if(!s){s=b.flirHasHover;j=b}}if(b==document.body){return}var c=b.flirStyle;if(n&&c!=c.hoverStyle){c=c.hoverStyle}if(!(args=FLIR.pcall("hover",[n,p,b,j]))){return}n=args[0];p=args[1];b=args[2];j=args[3];var k=FLIR.getChildren(j);if(k.length==0||(k.length==1&&(k[0].flirImage||k[0].flirHasHover))){k=[j]}else{if(k.length==1&&!FLIR.isIgnoredEl(k[0])){var f=FLIR.getChildren(k[0]);if(f.length>0){if((f.length==1&&!f[0].flirImage)||f.length>1){k=f}}}}var q;for(var h=0;h<k.length;h++){q=k[h];if(q.nodeName=="IMG"){continue}if(!q.innerHTML){continue}if(FLIR.isIE){var r=FLIR.flirIEHovEls.length;FLIR.flirIERepObj[r]=q;FLIR.flirIEHovStyles[r]=c;var l=c.options.output;if(FLIR.isIE6&&(q.flirIE6PNG=(l=="png"||(l=="auto"&&FLIR.getStyle(q,"background-color")=="transparent")))){FLIR.flirIEHovEls[r]=q.flirImage?q:FLIR.getChildren(q)[0];setTimeout("FLIR.flirIEHovEls["+r+"].style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\"'+FLIR.flirIEHovStyles["+r+"].URL(FLIR.flirIERepObj["+r+"], FLIR.flirIEHovEls["+r+'].alt)+\'", sizingMethod="image")\';  ',0)}else{if(c.replaceBackground&&FLIR.getStyle(q,"display")=="block"){FLIR.flirIEHovEls[r]=q;setTimeout("FLIR.flirIERepObj["+r+'].style.background = "url("+('+n+" ? FLIR.flirIEHovStyles["+r+"].URL(FLIR.flirIERepObj["+r+"]) : FLIR.flirIERepObj["+r+'].flirOrig)+") no-repeat";',0)}else{FLIR.flirIEHovEls[r]=q.flirImage?q:FLIR.getChildren(q)[0];if(!FLIR.flirIEHovEls[r].flirOrigWidth){FLIR.flirIEHovEls[r].flirOrigWidth=FLIR.flirIEHovEls[r].width;FLIR.flirIEHovEls[r].flirOrigHeight=FLIR.flirIEHovEls[r].height}var d="FLIR.flirIEHovEls["+r+"].src = "+n+" ? FLIR.flirIEHovStyles["+r+"].URL(FLIR.flirIERepObj["+r+"], FLIR.flirIEHovEls["+r+"].alt) : FLIR.flirIERepObj["+r+"].flirOrig;";d+="FLIR.flirIEHovEls["+r+"].onload = function() { ";if(n&&!FLIR.flirIEHovEls[r].flirHoverWidth){d+="		FLIR.flirIEHovEls["+r+"].flirHoverWidth = this.width; ";d+="		FLIR.flirIEHovEls["+r+"].flirHoverHeight = this.height; "}d+="	this.style.width = FLIR.flirIEHovEls["+r+"]."+(n?"flirHoverWidth":"flirOrigWidth")+'+"px"; ';d+="	this.style.height = FLIR.flirIEHovEls["+r+"]."+(n?"flirHoverHeight":"flirOrigHeight")+'+"px"; ';d+="}; ";setTimeout(d,0)}}}else{if(c.replaceBackground){var a=q.flirHoverURL?q.flirHoverURL:c.URL(q);q.style.background="url("+(n?a:q.flirOrig)+") no-repeat"}else{var g=q.flirImage?q:FLIR.getChildren(q)[0];var a=q.flirHoverURL?q.flirHoverURL:c.URL(q,g.alt);g.src=n?a:q.flirOrig}}}};FLIRStyle.prototype.loadopts_compat=function(b){if(!b){return}if(!b.css){b.css={}}if(typeof b.realFontHeight!="undefined"){b.fixBaseline=b.realFontHeight?true:false}var a={cBackground:"background-color",cColor:"color",cFont:"font-family",cSize:"font-size",cSpacing:"letter-spacing",cLine:"line-height",cAlign:"text-align",cTransform:"text-transform",cStretch:"font-stretch",cFontStyle:"font-style",cVariant:"font-variant",cWeight:"font-weight",cOpacity:"opacity",cDecoration:"text-decoration"};var d;for(var c in a){if(typeof b[c]!="undefined"){switch(c){default:d=b[c];break;case"cSize":d=b[c]+"px";break;case"cColor":case"cBackground":d="#"+b[c];break}b.css[a[c]]=d;b[c]=null}}return b};FLIR.auto=function(a){FLIR.replace((!a?["h1","h2","h3","h4","h5"]:(a.indexOf&&a.indexOf(",")>-1?a.split(","):a)))};/* SWFObject v2.1 <http://code.google.com/p/swfobject/>
	Copyright (c) 2007-2008 Geoff Stearns, Michael Williams, and Bobby van der Sluis
	This software is released under the MIT License <http://www.opensource.org/licenses/mit-license.php>
*/
var swfobject=function(){var b="undefined",Q="object",n="Shockwave Flash",p="ShockwaveFlash.ShockwaveFlash",P="application/x-shockwave-flash",m="SWFObjectExprInst",j=window,K=document,T=navigator,o=[],N=[],i=[],d=[],J,Z=null,M=null,l=null,e=false,A=false;var h=function(){var v=typeof K.getElementById!=b&&typeof K.getElementsByTagName!=b&&typeof K.createElement!=b,AC=[0,0,0],x=null;if(typeof T.plugins!=b&&typeof T.plugins[n]==Q){x=T.plugins[n].description;if(x&&!(typeof T.mimeTypes!=b&&T.mimeTypes[P]&&!T.mimeTypes[P].enabledPlugin)){x=x.replace(/^.*\s+(\S+\s+\S+$)/,"$1");AC[0]=parseInt(x.replace(/^(.*)\..*$/,"$1"),10);AC[1]=parseInt(x.replace(/^.*\.(.*)\s.*$/,"$1"),10);AC[2]=/r/.test(x)?parseInt(x.replace(/^.*r(.*)$/,"$1"),10):0}}else{if(typeof j.ActiveXObject!=b){var y=null,AB=false;try{y=new ActiveXObject(p+".7")}catch(t){try{y=new ActiveXObject(p+".6");AC=[6,0,21];y.AllowScriptAccess="always"}catch(t){if(AC[0]==6){AB=true}}if(!AB){try{y=new ActiveXObject(p)}catch(t){}}}if(!AB&&y){try{x=y.GetVariable("$version");if(x){x=x.split(" ")[1].split(",");AC=[parseInt(x[0],10),parseInt(x[1],10),parseInt(x[2],10)]}}catch(t){}}}}var AD=T.userAgent.toLowerCase(),r=T.platform.toLowerCase(),AA=/webkit/.test(AD)?parseFloat(AD.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,q=false,z=r?/win/.test(r):/win/.test(AD),w=r?/mac/.test(r):/mac/.test(AD);/*@cc_on q=true;@if(@_win32)z=true;@elif(@_mac)w=true;@end@*/return{w3cdom:v,pv:AC,webkit:AA,ie:q,win:z,mac:w}}();var L=function(){if(!h.w3cdom){return }f(H);if(h.ie&&h.win){try{K.write("<script id=__ie_ondomload defer=true src=//:><\/script>");J=C("__ie_ondomload");if(J){I(J,"onreadystatechange",S)}}catch(q){}}if(h.webkit&&typeof K.readyState!=b){Z=setInterval(function(){if(/loaded|complete/.test(K.readyState)){E()}},10)}if(typeof K.addEventListener!=b){K.addEventListener("DOMContentLoaded",E,null)}R(E)}();function S(){if(J.readyState=="complete"){J.parentNode.removeChild(J);E()}}function E(){if(e){return }if(h.ie&&h.win){var v=a("span");try{var u=K.getElementsByTagName("body")[0].appendChild(v);u.parentNode.removeChild(u)}catch(w){return }}e=true;if(Z){clearInterval(Z);Z=null}var q=o.length;for(var r=0;r<q;r++){o[r]()}}function f(q){if(e){q()}else{o[o.length]=q}}function R(r){if(typeof j.addEventListener!=b){j.addEventListener("load",r,false)}else{if(typeof K.addEventListener!=b){K.addEventListener("load",r,false)}else{if(typeof j.attachEvent!=b){I(j,"onload",r)}else{if(typeof j.onload=="function"){var q=j.onload;j.onload=function(){q();r()}}else{j.onload=r}}}}}function H(){var t=N.length;for(var q=0;q<t;q++){var u=N[q].id;if(h.pv[0]>0){var r=C(u);if(r){N[q].width=r.getAttribute("width")?r.getAttribute("width"):"0";N[q].height=r.getAttribute("height")?r.getAttribute("height"):"0";if(c(N[q].swfVersion)){if(h.webkit&&h.webkit<312){Y(r)}W(u,true)}else{if(N[q].expressInstall&&!A&&c("6.0.65")&&(h.win||h.mac)){k(N[q])}else{O(r)}}}}else{W(u,true)}}}function Y(t){var q=t.getElementsByTagName(Q)[0];if(q){var w=a("embed"),y=q.attributes;if(y){var v=y.length;for(var u=0;u<v;u++){if(y[u].nodeName=="DATA"){w.setAttribute("src",y[u].nodeValue)}else{w.setAttribute(y[u].nodeName,y[u].nodeValue)}}}var x=q.childNodes;if(x){var z=x.length;for(var r=0;r<z;r++){if(x[r].nodeType==1&&x[r].nodeName=="PARAM"){w.setAttribute(x[r].getAttribute("name"),x[r].getAttribute("value"))}}}t.parentNode.replaceChild(w,t)}}function k(w){A=true;var u=C(w.id);if(u){if(w.altContentId){var y=C(w.altContentId);if(y){M=y;l=w.altContentId}}else{M=G(u)}if(!(/%$/.test(w.width))&&parseInt(w.width,10)<310){w.width="310"}if(!(/%$/.test(w.height))&&parseInt(w.height,10)<137){w.height="137"}K.title=K.title.slice(0,47)+" - Flash Player Installation";var z=h.ie&&h.win?"ActiveX":"PlugIn",q=K.title,r="MMredirectURL="+j.location+"&MMplayerType="+z+"&MMdoctitle="+q,x=w.id;if(h.ie&&h.win&&u.readyState!=4){var t=a("div");x+="SWFObjectNew";t.setAttribute("id",x);u.parentNode.insertBefore(t,u);u.style.display="none";var v=function(){u.parentNode.removeChild(u)};I(j,"onload",v)}U({data:w.expressInstall,id:m,width:w.width,height:w.height},{flashvars:r},x)}}function O(t){if(h.ie&&h.win&&t.readyState!=4){var r=a("div");t.parentNode.insertBefore(r,t);r.parentNode.replaceChild(G(t),r);t.style.display="none";var q=function(){t.parentNode.removeChild(t)};I(j,"onload",q)}else{t.parentNode.replaceChild(G(t),t)}}function G(v){var u=a("div");if(h.win&&h.ie){u.innerHTML=v.innerHTML}else{var r=v.getElementsByTagName(Q)[0];if(r){var w=r.childNodes;if(w){var q=w.length;for(var t=0;t<q;t++){if(!(w[t].nodeType==1&&w[t].nodeName=="PARAM")&&!(w[t].nodeType==8)){u.appendChild(w[t].cloneNode(true))}}}}}return u}function U(AG,AE,t){var q,v=C(t);if(v){if(typeof AG.id==b){AG.id=t}if(h.ie&&h.win){var AF="";for(var AB in AG){if(AG[AB]!=Object.prototype[AB]){if(AB.toLowerCase()=="data"){AE.movie=AG[AB]}else{if(AB.toLowerCase()=="styleclass"){AF+=' class="'+AG[AB]+'"'}else{if(AB.toLowerCase()!="classid"){AF+=" "+AB+'="'+AG[AB]+'"'}}}}}var AD="";for(var AA in AE){if(AE[AA]!=Object.prototype[AA]){AD+='<param name="'+AA+'" value="'+AE[AA]+'" />'}}v.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+AF+">"+AD+"</object>";i[i.length]=AG.id;q=C(AG.id)}else{if(h.webkit&&h.webkit<312){var AC=a("embed");AC.setAttribute("type",P);for(var z in AG){if(AG[z]!=Object.prototype[z]){if(z.toLowerCase()=="data"){AC.setAttribute("src",AG[z])}else{if(z.toLowerCase()=="styleclass"){AC.setAttribute("class",AG[z])}else{if(z.toLowerCase()!="classid"){AC.setAttribute(z,AG[z])}}}}}for(var y in AE){if(AE[y]!=Object.prototype[y]){if(y.toLowerCase()!="movie"){AC.setAttribute(y,AE[y])}}}v.parentNode.replaceChild(AC,v);q=AC}else{var u=a(Q);u.setAttribute("type",P);for(var x in AG){if(AG[x]!=Object.prototype[x]){if(x.toLowerCase()=="styleclass"){u.setAttribute("class",AG[x])}else{if(x.toLowerCase()!="classid"){u.setAttribute(x,AG[x])}}}}for(var w in AE){if(AE[w]!=Object.prototype[w]&&w.toLowerCase()!="movie"){F(u,w,AE[w])}}v.parentNode.replaceChild(u,v);q=u}}}return q}function F(t,q,r){var u=a("param");u.setAttribute("name",q);u.setAttribute("value",r);t.appendChild(u)}function X(r){var q=C(r);if(q&&(q.nodeName=="OBJECT"||q.nodeName=="EMBED")){if(h.ie&&h.win){if(q.readyState==4){B(r)}else{j.attachEvent("onload",function(){B(r)})}}else{q.parentNode.removeChild(q)}}}function B(t){var r=C(t);if(r){for(var q in r){if(typeof r[q]=="function"){r[q]=null}}r.parentNode.removeChild(r)}}function C(t){var q=null;try{q=K.getElementById(t)}catch(r){}return q}function a(q){return K.createElement(q)}function I(t,q,r){t.attachEvent(q,r);d[d.length]=[t,q,r]}function c(t){var r=h.pv,q=t.split(".");q[0]=parseInt(q[0],10);q[1]=parseInt(q[1],10)||0;q[2]=parseInt(q[2],10)||0;return(r[0]>q[0]||(r[0]==q[0]&&r[1]>q[1])||(r[0]==q[0]&&r[1]==q[1]&&r[2]>=q[2]))?true:false}function V(v,r){if(h.ie&&h.mac){return }var u=K.getElementsByTagName("head")[0],t=a("style");t.setAttribute("type","text/css");t.setAttribute("media","screen");if(!(h.ie&&h.win)&&typeof K.createTextNode!=b){t.appendChild(K.createTextNode(v+" {"+r+"}"))}u.appendChild(t);if(h.ie&&h.win&&typeof K.styleSheets!=b&&K.styleSheets.length>0){var q=K.styleSheets[K.styleSheets.length-1];if(typeof q.addRule==Q){q.addRule(v,r)}}}function W(t,q){var r=q?"visible":"hidden";if(e&&C(t)){C(t).style.visibility=r}else{V("#"+t,"visibility:"+r)}}function g(s){var r=/[\\\"<>\.;]/;var q=r.exec(s)!=null;return q?encodeURIComponent(s):s}var D=function(){if(h.ie&&h.win){window.attachEvent("onunload",function(){var w=d.length;for(var v=0;v<w;v++){d[v][0].detachEvent(d[v][1],d[v][2])}var t=i.length;for(var u=0;u<t;u++){X(i[u])}for(var r in h){h[r]=null}h=null;for(var q in swfobject){swfobject[q]=null}swfobject=null})}}();return{registerObject:function(u,q,t){if(!h.w3cdom||!u||!q){return }var r={};r.id=u;r.swfVersion=q;r.expressInstall=t?t:false;N[N.length]=r;W(u,false)},getObjectById:function(v){var q=null;if(h.w3cdom){var t=C(v);if(t){var u=t.getElementsByTagName(Q)[0];if(!u||(u&&typeof t.SetVariable!=b)){q=t}else{if(typeof u.SetVariable!=b){q=u}}}}return q},embedSWF:function(x,AE,AB,AD,q,w,r,z,AC){if(!h.w3cdom||!x||!AE||!AB||!AD||!q){return }AB+="";AD+="";if(c(q)){W(AE,false);var AA={};if(AC&&typeof AC===Q){for(var v in AC){if(AC[v]!=Object.prototype[v]){AA[v]=AC[v]}}}AA.data=x;AA.width=AB;AA.height=AD;var y={};if(z&&typeof z===Q){for(var u in z){if(z[u]!=Object.prototype[u]){y[u]=z[u]}}}if(r&&typeof r===Q){for(var t in r){if(r[t]!=Object.prototype[t]){if(typeof y.flashvars!=b){y.flashvars+="&"+t+"="+r[t]}else{y.flashvars=t+"="+r[t]}}}}f(function(){U(AA,y,AE);if(AA.id==AE){W(AE,true)}})}else{if(w&&!A&&c("6.0.65")&&(h.win||h.mac)){A=true;W(AE,false);f(function(){var AF={};AF.id=AF.altContentId=AE;AF.width=AB;AF.height=AD;AF.expressInstall=w;k(AF)})}}},getFlashPlayerVersion:function(){return{major:h.pv[0],minor:h.pv[1],release:h.pv[2]}},hasFlashPlayerVersion:c,createSWF:function(t,r,q){if(h.w3cdom){return U(t,r,q)}else{return undefined}},removeSWF:function(q){if(h.w3cdom){X(q)}},createCSS:function(r,q){if(h.w3cdom){V(r,q)}},addDomLoadEvent:f,addLoadEvent:R,getQueryParamValue:function(v){var u=K.location.search||K.location.hash;if(v==null){return g(u)}if(u){var t=u.substring(1).split("&");for(var r=0;r<t.length;r++){if(t[r].substring(0,t[r].indexOf("="))==v){return g(t[r].substring((t[r].indexOf("=")+1)))}}}return""},expressInstallCallback:function(){if(A&&M){var q=C(m);if(q){q.parentNode.replaceChild(M,q);if(l){W(l,true);if(h.ie&&h.win){M.style.display="block"}}M=null;l=null;A=false}}}}}();
