﻿var LightBackground = new Class({
    initialize : function() {
        
    },
    init : function(width,height,url) {
		if (!this.loaded) {
			window.addEvent('resize',this.refreshDisplay.bind(this));	
			document.addEvent('keydown',this.handleKeyDown.bind(this));
			
			this.loaded=true;
		}
		this.showOverlay=true;
		this.width =width;
		this.height=height;
		this.cssPrefix='lightbox-flash';
		this.createControls();
		
		return this.contentWindow;
	},
	showAjax : function(ajaxUrl) {
		this.ajaxRequest = new Ajax(ajaxUrl, { method: 'get' });
        this.ajaxRequest.addEvent('onComplete',this.ajaxCallback.bind(this));
        this.ajaxRequest.request();
	},
	ajaxCallback : function(html) {
        this.contentWindow.innerHTML = html;
        $$('.window-close').each(function(el){
            // perform create brick
            el.addEvent('click',function(ev) { ev.preventDefault(); this.hide(); }.bind(this) );
        });
        this.show();
    },
    handleKeyDown : function(evt) {
		if (this.isVisible) { 
			var ev = new Event(evt);
			if (ev.code == 27)
				this.hide();
        }
    },
    show : function() {
		this.isVisible = true;
        this.positionContentWindow();
        this.showContentWindow();
    },
    hide : function() {
		this.isVisible = false;
	    //new Fx.Style(this.contentWindow, 'opacity',{duration: 250, transition: Fx.Transitions.sineInOut }).start(1,0);
	    this.contentWindow.setStyle('display','none');
	    this.contentWindow.setHTML('');
	    if (this.showOverlay) {
			if (!this.detectMacXFF()) {
				new Fx.Style(this.overlay, 'opacity',{duration: 400, transition: Fx.Transitions.sineInOut }).start(0.6,0);
			} else {
				
				this.overlay.setStyle('background-image','none');
				this.overlay.setStyle('display','none');
			}
		} else {
			this.overlay.setStyle('display','none');
		}
	    window.removeEvents('resize');
    },
    showContentWindow : function() {
		if (this.showOverlay) {
			if (!this.detectMacXFF()) {
				this.overlay.setStyle('filter','alpha(opacity=0)');
				this.overlay.setStyle('-moz-opacity','0');
				this.overlay.setStyle('opacity','0');
				this.overlay.setStyle('background-color','#000000');
				new Fx.Style(this.overlay, 'opacity',{duration: 250, transition: Fx.Transitions.sineInOut}).start(0,0.6).chain(function() { this.contentWindow.setStyle('display','block'); }.bind(this));
			} else {
				this.overlay.setStyle('background',"url('black-70.png') repeat");
				this.overlay.setStyle('display','block');
				this.contentWindow.setStyle('display','block');
			}
		} else {
			this.overlay.setStyle('display','block');
			this.contentWindow.setStyle('opacity','1');
			this.contentWindow.setStyle('display','block');
		}
		//this.overlay.setStyle('display','block');
        //new Fx.Style(this.contentWindow, 'opacity',{duration: 250, transition: Fx.Transitions.sineInOut }).start(0,1);
    },
    positionContentWindow : function() {
		var scrollTop = 0;
		if (window.ie6)
			scrollTop = window.getScrollTop();
        this.contentWindow.setStyles({width: this.width+'px', height: this.height+'px',
				 left: (window.getScrollLeft() + (window.getWidth() - this.width)/2)+'px',
				 top: ( scrollTop + (window.getHeight() - this.height)/2)+'px'}); //window.getScrollTop() +
	},
	refreshDisplay : function() {
		if (this.overlay && this.contentWindow) {
			this.sizeOverlay();
			this.positionContentWindow();
		}
	},
    createControls : function() {
		if ( !this.overlay )
	    {
		    this.overlay = new Element('div',{ 'class' : 'lightbackground-overlay' }).injectInside(document.body);
		    this.overlay.addEvent('click',this.hide.bind(this));
	    }
	    this.sizeOverlay();
	    if ( !this.contentWindow ) {
	        this.contentWindow = new Element('div',{ 'class' : 'lightbackground-window' }).injectInside(document.body);
	        if (!window.ie6) {
				this.contentWindow.setStyle('position','fixed');
//				this.contentWindow.setStyle('background','transparent url(/assets/shared/transparency.png)');
		    }
	    } else {
			this.contentWindow.empty();
		}
	},
	detectMacXFF : function() {
	  var userAgent = navigator.userAgent.toLowerCase();
	  if (userAgent.indexOf('mac') != -1 && userAgent.indexOf('firefox')!=-1) {
		return true;
	  }
	  return false;
	},
	sizeOverlay : function() {
	    this.overlay.setStyles({"height": '0px', "width": '0px'});
	    this.overlay.setStyles({"height": window.getScrollHeight()+'px', "width": window.getScrollWidth()+'px'});
	}
});
var SiteClass = new Class({
	 initialize : function() {
	 	window.addEvent('load',this.windowLoad.bind(this));
	 },
	 windowLoad : function() {
	 	this.popupWindow = new LightBackground();
	 },
	 closeModel : function() {
	 	this.popupWindow.hide();
	 },
	 displayLastYearsEventVideo : function() {
		if (this.popupWindow ) {
			var control = this.popupWindow.init(520,305,'/'); //512x288
			this.popupWindow.showOverlay=true;
			var so = new SWFObject("/assets/flash/swoty_flv_player.swf", "flashscene1","500", "285", "7", "transparent");
			so.addParam('wmode','transparent');
			so.addParam('base','/assets/flash/');
			so.addVariable('whichFlv','video_comp/Specsavers_large.flv');
			control.setHTML('<a href="#" class="window-close" onclick="Site.closeModel()">Close</a><div class="content" id="lastyearsvideo-pop">You need to install <a href="http://www.adobe.com/go/getflashplayer">Adobe Flash Player</a> to use this tool.</div>');
			so.write("lastyearsvideo-pop");
			this.popupWindow.show();
		}
	},
	 display2008EventVideo : function() {
		if (this.popupWindow ) {
			var control = this.popupWindow.init(520,305,'/'); //512x288
			this.popupWindow.showOverlay=true;
			var so = new SWFObject("/assets/flash/swoty_flv_player.swf", "flashscene1","500", "281", "7", "transparent");
			so.addParam('wmode','transparent');
			so.addParam('base','/assets/flash/');
			so.addVariable('whichFlv','video_2008/Specsavers_2008.flv');
			control.setHTML('<a href="#" class="window-close" onclick="Site.closeModel()">Close</a><div class="content" id="lastyearsvideo-pop">You need to install <a href="http://www.adobe.com/go/getflashplayer">Adobe Flash Player</a> to use this tool.</div>');
			so.write("lastyearsvideo-pop");
			this.popupWindow.show();
		}
	},

	displayGoksVideo : function(locale) {
		if (this.popupWindow ) {
			var control = this.popupWindow.init(500,388,'/');
			this.popupWindow.showOverlay=true;
			var so = new SWFObject("/assets/flash/swoty_flv_player.swf", "flashscene1","480", "368", "7", "transparent");
			so.addParam('wmode','transparent');
			so.addParam('base','/assets/flash');
			so.addVariable('whichFlv','/assets/localized/' + locale + '/flash/gok_wan_vodcast_480x368_' + locale +'.flv');
			control.setHTML('<a href="#" class="window-close" onclick="Site.closeModel()">Close</a><div class="content" id="goks-pop">You need to install <a href="http://www.adobe.com/go/getflashplayer">Adobe Flash Player</a> to use this tool.</div>');
			so.write("goks-pop");
			this.popupWindow.show();
		}
	 },
	 displayImage : function(pathToImage, width, height) {
		if (this.popupWindow ) {
			padding = 20; //css adds 20px padding so make sure the width + height include this
			var control = this.popupWindow.init(parseInt(width+padding),parseInt(height+padding),'/');
			this.popupWindow.showOverlay=true;
			control.setHTML('<a href="#" class="window-close" onclick="Site.closeModel()">Close</a><div class="content" id="image-pop"><img src=' + pathToImage + ' alt="" /></div>');
			this.popupWindow.show();
		}
	 }
	 
});

var Site = new SiteClass();
