eval(function(p,a,c,k,e,d){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--){d[e(c)]=k[c]||e(c)}k=[(function(e){return d[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(T 8=="1B"){d 8=k Q()}5(T 8.X=="1B"){8.X=k Q()}5(T 8.y=="1B"){8.y=k Q()}8.D=f(1y,p,w,h,1o,c,1p,1K,1h,1x){5(!m.13){g}4.1V=1x?1x:"2w";4.1R=8.X.1n(4.1V);4.1w=k Q();4.17=k Q();4.1D=k 29();5(1y){4.l("L",1y)}5(p){4.l("p",p)}5(w){4.l("S",w)}5(h){4.l("R",h)}5(1o){4.l("1e",k 8.v(1o.2B().V(".")))}4.P=8.y.1U();5(!12.2A&&m.1u&&4.P.E>7){8.D.1S=B}5(c){4.1J("2C",c)}d q=1p?1p:"2E";4.1J("2F",q);4.l("10",I);4.l("W",I);d 1Y=(1K)?1K:12.16;4.l("1Q",1Y);4.l("15","");5(1h){4.l("15",1h)}};8.D.1P={10:f(1q){4.1r=!1q?"2G.L":1q;4.l("10",B)},l:f(2e,1Z){4.1D[2e]=1Z},j:f(22){g 4.1D[22]},1J:f(23,2c){4.1w[23]=2c},1F:f(){g 4.1w},U:f(2a,26){4.17[2a]=26},2Z:f(2d){g 4.17[2d]},28:f(){g 4.17},1H:f(){d 18=k 29();d u;d 1t=4.28();H(u 1f 1t){18[18.G]=u+"="+1t[u]}g 18},1T:f(){d o="";5(C.1z&&C.1m&&C.1m.G){5(4.j("W")){4.U("27","2N");4.l("L",4.1r)}o="<2P 2Q=\\"2R/x-2S-2T\\" 2U=\\""+4.j("L")+"\\" S=\\""+4.j("S")+"\\" R=\\""+4.j("R")+"\\" O=\\""+4.j("O")+"\\"";o+=" p=\\""+4.j("p")+"\\" 11=\\""+4.j("p")+"\\" ";d 1v=4.1F();H(d u 1f 1v){o+=[u]+"=\\""+1v[u]+"\\" "}d 1A=4.1H().2g("&");5(1A.G>0){o+="2h=\\""+1A+"\\""}o+="/>"}1b{5(4.j("W")){4.U("27","2W");4.l("L",4.1r)}o="<1N p=\\""+4.j("p")+"\\" 2Y=\\"30:31-32-33-34-35\\" S=\\""+4.j("S")+"\\" R=\\""+4.j("R")+"\\" O=\\""+4.j("O")+"\\">";o+="<1I 11=\\"37\\" 1L=\\""+4.j("L")+"\\" />";d 1G=4.1F();H(d u 1f 1G){o+="<1I 11=\\""+u+"\\" 1L=\\""+1G[u]+"\\" />"}d 1M=4.1H().2g("&");5(1M.G>0){o+="<1I 11=\\"2h\\" 1L=\\""+1M+"\\" />"}o+="</1N>"}g o},2i:f(14){5(4.j("10")){d 1O=k 8.v([6,0,2j]);5(4.P.1d(1O)&&!4.P.1d(4.j("1e"))){4.l("W",B);4.U("2k",2l(4.j("1Q")));m.1k=m.1k.2m(0,2n)+" - 1W 2o 2p";4.U("2q",m.1k)}}5(4.1R||4.j("W")||4.P.1d(4.j("1e"))){d n=(T 14=="2r")?m.13(14):14;n.2s=4.1T();g B}1b{5(4.j("15")!=""){m.16.1E(4.j("15"))}}g I}};8.y.1U=f(){d A=k 8.v([0,0,0]);5(C.1z&&C.1m.G){d x=C.1z["2y 1W"];5(x&&x.20){A=k 8.v(x.20.1E(/([a-2D-Z]|\\s)+/,"").1E(/(\\s+r|\\s+b[0-9]+)/,".").V("."))}}1b{5(C.25&&C.25.1C("2H 2J")>=0){d t=1;d 1g=3;2M(t){19{1g++;t=k 1a("z.z."+1g);A=k 8.v([1g,0,0])}1c(e){t=J}}}1b{19{d t=k 1a("z.z.7")}1c(e){19{d t=k 1a("z.z.6");A=k 8.v([6,0,21]);t.2V="2X"}1c(e){5(A.E==6){g A}}19{t=k 1a("z.z")}1c(e){}}5(t!=J){A=k 8.v(t.3a("$1e").V(" ")[1].V(","))}}}g A};8.v=f(F){4.E=F[0]!=J?1i(F[0]):0;4.Y=F[1]!=J?1i(F[1]):0;4.1l=F[2]!=J?1i(F[2]):0};8.v.1P.1d=f(N){5(4.E<N.E){g I}5(4.E>N.E){g B}5(4.Y<N.Y){g I}5(4.Y>N.Y){g B}5(4.1l<N.1l){g I}g B};8.X={1n:f(1j){d q=m.16.2u||m.16.2x;5(1j==J){g q}5(q){d K=q.1s(1).V("&");H(d i=0;i<K.G;i++){5(K[i].1s(0,K[i].1C("="))==1j){g K[i].1s((K[i].1C("=")+1))}}}g""}};8.y.1X=f(){d M=m.2K("2O");H(d i=M.G-1;i>=0;i--){M[i].O.36="38";H(d x 1f M[i]){5(T M[i][x]=="f"){M[i][x]=f(){}}}}};5(8.D.1S){5(!8.2f){8.y.2b=f(){2t=f(){};2v=f(){};12.24("2z",8.y.1X)};12.24("2L",8.y.2b);8.2f=B}}5(!m.13&&m.1u){m.13=f(p){g m.1u[p]}}d 39=8.X.1n;d 2I=8.D;d D=8.D;',62,197,'||||this|if|||deconcept|||||var||function|return|||getAttribute|new|setAttribute|document||_19|id||||axo|key|PlayerVersion|||SWFObjectUtil|ShockwaveFlash|_23|true|navigator|SWFObject|major|_29|length|for|false|null|_2d|swf|_2f|fv|style|installedVer|Object|height|width|typeof|addVariable|split|doExpressInstall|util|minor||useExpressInstall|name|window|getElementById|_20|redirectUrl|location|variables|_16|try|ActiveXObject|else|catch|versionIsValid|version|in|_26|_9|parseInt|_2b|title|rev|mimeTypes|getRequestParameter|_5|_7|_d|xiSWFPath|substring|_18|all|_1a|params|_a|_1|plugins|_1c|undefined|indexOf|attributes|replace|getParams|_1d|getVariablePairs|param|addParam|_8|value|_1f|object|_21|prototype|xiRedirectUrl|skipDetect|doPrepUnload|getSWFHTML|getPlayerVersion|DETECT_KEY|Flash|cleanupSWFs|_c|_f|description||_10|_11|attachEvent|userAgent|_14|MMplayerType|getVariables|Array|_13|prepUnload|_12|_15|_e|unloadSet|join|flashvars|write|65|MMredirectURL|escape|slice|47|Player|Installation|MMdoctitle|string|innerHTML|__flash_unloadHandler|search|__flash_savedUnloadHandler|detectflash|hash|Shockwave|onunload|opera|toString|bgcolor|zA|high|quality|expressinstall|Windows|FlashObject|CE|getElementsByTagName|onbeforeunload|while|PlugIn|OBJECT|embed|type|application|shockwave|flash|src|AllowScriptAccess|ActiveX|always|classid|getVariable|clsid|D27CDB6E|AE6D|11cf|96B8|444553540000|display|movie|none|getQueryParamValue|GetVariable'.split('|'),0,{}))


var Videobox = {

	init: function (options) {
		// init default options
		this.options = Object.extend({
			resizeDuration: 400,	// Duration of height and width resizing (ms)
			initialWidth: 250,		// Initial width of the box (px)
			initialHeight: 250,		// Initial height of the box (px)
			defaultWidth: 425,		// Default width of the box (px)
			defaultHeight: 350,	// Default height of the box (px)
			animateCaption: true,	// Enable/Disable caption animation
			flvplayer: 'swf/flvplayer.swf'
		}, options || {});

		this.anchors = [];
		$A($$('a')).each(function(el){
			if(el.rel && el.href && el.rel.test('^vidbox', 'i')) {
				el.addEvent('click', function (e) {
          e = new Event(e);
          e.stop();
          this.click(el);
				}.bind(this));
				this.anchors.push(el);
			}
    }, this);

		this.overlay = new Element('div').setProperty('id', 'lbOverlay').injectInside(document.body);
		this.center = new Element('div').setProperty('id', 'lbCenter').setStyles({width: this.options.initialWidth+'px', height: this.options.initialHeight+'px', marginLeft: '-'+(this.options.initialWidth/2)+'px', display: 'none'}).injectInside(document.body);

		this.bottomContainer = new Element('div').setProperty('id', 'lbBottomContainer').setStyle('display', 'none').injectInside(document.body);
		this.bottom = new Element('div').setProperty('id', 'lbBottom').injectInside(this.bottomContainer);
		new Element('a').setProperties({id: 'lbCloseLink', href: '#'}).injectInside(this.bottom).onclick = this.overlay.onclick = this.close.bind(this);
		this.caption = new Element('div').setProperty('id', 'lbCaption').injectInside(this.bottom);
		this.number = new Element('div').setProperty('id', 'lbNumber').injectInside(this.bottom);
		new Element('div').setStyle('clear', 'both').injectInside(this.bottom);

		var nextEffect = this.nextEffect.bind(this);
		this.fx = {
			overlay: this.overlay.effect('opacity', {duration: 500}).hide(),
			center: this.center.effects({duration: 500, transition: Fx.Transitions.sineInOut, onComplete: nextEffect}),
			bottom: this.bottom.effect('margin-top', {duration: 400})
		};

	},

	click: function(link) {
	
     		return this.open (link.href, link.title, link.rel);

	},
	open: function(sLinkHref, sLinkTitle, sLinkRel) {
		this.href = sLinkHref;
		this.title = sLinkTitle;
		this.rel = sLinkRel;
		this.position();
		this.setup();
		this.video(this.href);
		this.top = Window.getScrollTop() + (Window.getHeight() / 15);
		this.center.setStyles({top: this.top+'px', display: ''});
		this.fx.overlay.start(0.8);
		this.step = 1;
		this.center.setStyle('background','#fff url(loading.gif) no-repeat center');
		this.caption.innerHTML = this.title;
		this.fx.center.start({'height': [this.options.contentsHeight]});
	},

	setup: function(){
		var aDim = this.rel.match(/[0-9]+/g);
		this.options.contentsWidth = (aDim && (aDim[0] > 0)) ? aDim[0] : this.options.defaultWidth;
		this.options.contentsHeight = (aDim && (aDim[1] > 0)) ? aDim[1] : this.options.defaultHeight;

	},

	position: function(){
    this.overlay.setStyles({'top': window.getScrollTop()+'px', 'height': window.getHeight()+'px'});
	},

	video: function(sLinkHref){
		if (sLinkHref.match(/youtube\.com\/watch/i)) {
      this.flash = true;
			var hRef = sLinkHref;
			var videoId = hRef.split('=');
			this.videoID = videoId[1];
			this.so = new SWFObject("http://www.youtube.com/v/"+this.videoID, "flvvideo", this.options.contentsWidth, this.options.contentsHeight, "0");
			this.so.addParam("wmode", "transparent");
		}
		else if (sLinkHref.match(/metacafe\.com\/watch/i)) {
      this.flash = true;
			var hRef = sLinkHref;
			var videoId = hRef.split('/');
			this.videoID = videoId[4];
			this.so = new SWFObject("http://www.metacafe.com/fplayer/"+this.videoID+"/.swf", "flvvideo", this.options.contentsWidth, this.options.contentsHeight, "0");
			this.so.addParam("wmode", "transparent");
		}
		else if (sLinkHref.match(/google\.com\/videoplay/i)) {
      this.flash = true;
			var hRef = sLinkHref;
			var videoId = hRef.split('=');
			this.videoID = videoId[1];
			this.so = new SWFObject("http://video.google.com/googleplayer.swf?docId="+this.videoID+"&hl=en", "flvvideo", this.options.contentsWidth, this.options.contentsHeight, "0");
			this.so.addParam("wmode", "transparent");
		}
		else if (sLinkHref.match(/ifilm\.com\/video/i)) {
		  this.flash = true;
			var hRef = sLinkHref;
			var videoId = hRef.split('video/');
			this.videoID = videoId[1];
			this.so = new SWFObject("http://www.ifilm.com/efp", "flvvideo", this.options.contentsWidth, this.options.contentsHeight, "0", "#000");
			this.so.addVariable("flvbaseclip", this.videoID+"&");
			this.so.addParam("wmode", "transparent");
		}
		else if (sLinkHref.match(/\.mov/i)) {
		  this.flash = false;
			if (navigator.plugins && navigator.plugins.length) {
          this.other ='<object id="qtboxMovie" type="video/quicktime" codebase="http://www.apple.com/qtactivex/qtplugin.cab" data="'+sLinkHref+'" width="'+this.options.contentsWidth+'" height="'+this.options.contentsHeight+'"><param name="src" value="'+sLinkHref+'" /><param name="scale" value="aspect" /><param name="controller" value="true" /><param name="autoplay" value="true" /><param name="bgcolor" value="#000000" /><param name="enablejavascript" value="true" /></object>';
      } else {
        this.other = '<object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="http://www.apple.com/qtactivex/qtplugin.cab" width="'+this.options.contentsWidth+'" height="'+this.options.contentsHeight+'" id="qtboxMovie"><param name="src" value="'+sLinkHref+'" /><param name="scale" value="aspect" /><param name="controller" value="true" /><param name="autoplay" value="true" /><param name="bgcolor" value="#000000" /><param name="enablejavascript" value="true" /></object>';
      }
		}
		else if (sLinkHref.match(/\.wmv/i) || sLinkHref.match(/\.asx/i)) {
		this.flash = false;
		 this.other = '<object NAME="Player" WIDTH="'+this.options.contentsWidth+'" HEIGHT="'+this.options.contentsHeight+'" align="left" hspace="0" type="application/x-oleobject" CLASSID="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6"><param NAME="URL" VALUE="'+sLinkHref+'"><param><param NAME="AUTOSTART" VALUE="false"></param><param name="showControls" value="true"></param><embed WIDTH="'+this.options.contentsWidth+'" HEIGHT="'+this.options.contentsHeight+'" align="left" hspace="0" SRC="'+sLinkHref+'" TYPE="application/x-oleobject" AUTOSTART="false"></embed></object>'
		}
		else if (sLinkHref.match(/\.flv/i)) {
		 this.flash = true;
		 this.so = new SWFObject(this.options.flvplayer+"?file="+sLinkHref, "flvvideo", this.options.contentsWidth, this.options.contentsHeight, "0", "#000");
		}
		else {
		  this.flash = true;
			this.videoID = sLinkHref;
			this.so = new SWFObject(this.videoID, "flvvideo", this.options.contentsWidth, this.options.contentsHeight, "0");
		}
	},

	nextEffect: function(){
		switch (this.step++){
		case 1:
			this.fx.center.start({'width': [this.options.contentsWidth], 'marginLeft': [this.options.contentsWidth/-2]});
			break;
			this.step++;
		case 2:
			this.center.setStyle('background','#fff');
			this.flash ? this.so.write(this.center) : this.center.setHTML(this.other) ;
			this.bottomContainer.setStyles({top: (this.top + this.center.clientHeight)+'px', height: '0px', marginLeft: this.center.style.marginLeft, width: this.options.contentsWidth+'px',display: ''});
			if (this.options.animateCaption){
				this.fx.bottom.set(-this.bottom.offsetHeight);
				this.bottomContainer.style.height = '';
				this.fx.bottom.start(0);
				break;
			}
			this.bottomContainer.style.height = '';
			this.step++;
		}
	},

	close: function(){
		this.fx.overlay.start(0);
		this.center.style.display = this.bottomContainer.style.display = 'none';
		this.center.innerHTML = '';
		return false;
	}

};


window.addEvent('domready', Videobox.init.bind(Videobox));
