var Site = {
	load: function() {
		Site.Iwindow.load({overlay:'myOverlay', wrap: 'myWrap', iframe:'myFrame'});
	},
	Iwindow: {
		overlay: null,
		frameWrap: null,
		myFrame: null,
		myFx: null,

		load: function(obj) {
			//add events to toggles
			var togs = $$('.fwindow');
			togs.each(function(el, i) {
				el.store('href', el.get('href'));
				el.setProperties({
					href: 'javascript:void(0);',
					target: ''				
				});
				el.removeEvents('click').addEvent('click', function() {
					this.openWin(el)
				}.bind(this))				
			}.bind(this))
						
			//build elements
			$('iwindowTarget').adopt($$([
				overlay 	= new Element('div',{id: obj.overlay}),
				frameWrap 	= new Element('div',{id: obj.wrap})
				]).setStyle('display','none'))
    		    						
			this.overlay 		= $(obj.overlay).setStyle('opacity', 0.5).addEvent('click',this.closeWin.bind(this));
			this.frameWrap 		= $(obj.wrap);
						
			
			//build the table to inject into the wrap
			var frag = document.createDocumentFragment();
		
			poptable 	= new Element('table',{id: 'pop_jstable'})
			row1 		= new Element('tr')
			r1c1 		= new Element('td',{'class': 'popNW'})
			r1c2 		= new Element('td',{'class': 'popN'})
			r1c3 		= new Element('td',{'class': 'popNE'})
				row1.appendChild(r1c1)
				row1.appendChild(r1c2)
				row1.appendChild(r1c3)			
				poptable.appendChild(row1)				
			
			row2 		= new Element('tr')
			r2c1 		= new Element('td',{'class': 'popW'})
			r2c2 		= new Element('td',{id: 'pop_content'})
				loader = new Element('div', {id: 'winLoader', html: 'Loading'})
			r2c3 		= new Element('td',{'class': 'popE'})
				row2.appendChild(r2c1)
				row2.appendChild(r2c2)
					r2c2.appendChild(loader)
				row2.appendChild(r2c3)
				poptable.appendChild(row2)
				
			row3 		= new Element('tr')
			r3c1 		= new Element('td',{'class': 'popSW'})
			r3c2 		= new Element('td',{'class': 'popS'})
			r3c3 		= new Element('td',{'class': 'popSE'})
				row3.appendChild(r3c1)
				row3.appendChild(r3c2)
				row3.appendChild(r3c3)
				poptable.appendChild(row3)
			
			frag.appendChild(poptable)
			
			this.frameWrap.appendChild(frag)
			
			_tmp = this.frameWrap.get('html')
			this.frameWrap.set('html', _tmp)
						
			this.myFrame		= $(obj.iframe).inject($('pop_content')).setStyles({'display':'none','height':1}).addEvent('load', function() {this.frameLoaded()}.bind(this));	
			/*
			this.myFx = {
				overlay: new Fx.Tween(this.overlay, {property:"opacity",duration:500, onComplete: function() {this._setDisplay}.bind(this)}).set(0),
				frameWrap: new Fx.Tween(this.frameWrap, {property:"opacity",duration:500}),				
				frameO: new Fx.Tween(this.myFrame, {property: "opacity",duration:500}).set(0),
				frameH: new Fx.Tween(this.myFrame, {property: "height",duration:500}).set(1),
				loader: new Fx.Tween($('winLoader'), {property: "opacity", duration: 500}).set(0)
			}
			*/
			this.myFx = {
				frameH: new Fx.Tween(this.myFrame, {property: "height",duration:500}).set(1),
				loader: new Fx.Tween($('winLoader'), {property: "opacity", duration: 500}).set(0)
			}
							
			this.loader = $('winLoader');
				
		},
		openWin: function(url) {							
			this._resizeOverlay();

			this.frameWrap.setStyles({
				top : 15,
				left: 45
			});
					
			//this.setFrame(url.retrieve('href'));
			this.showLoader(url.retrieve('href'));
			this._myTransition(1);																	
			
			window.addEvent("scroll",this._resizeOverlay).addEvent("resize", this._resizeOverlay);				
		},
		closeWin: function() {
			this._myTransition(0);

			window.removeEvents("scroll").removeEvents("resize");		
		},
		showLoader: function(url) {
			this.myFrame.setStyle('display', '')
			this.myFx.frameH.start(450).chain(function() {
				var dim = this.myFrame.getSize()
				this.loader.setStyles({
					'top': (dim.y / 2 - 50),
					'left': (dim.x / 2 - 32) 
				})
				this.myFx.loader.start(1).chain(function() {
					this.setFrame(url);
				}.bind(this))
			}.bind(this))			
		},
		scale: function(y) {
			this.myFx.frameH.start(y);
		},
		setFrame: function(a) {
			this.myFrame.set('src', a)
		},
		frameLoaded: function() {
			if ($chk(this.myFrame.get('src'))) {
				this.myFrame.setStyle('visibility', 'visible')
				this.myFx.loader.set(0)
				this.myFrame.contentWindow.scaleWindow()					
				//this.myFx.frameO.start(1)					
				
			}			
		},
		_myTransition: function(x) {
			//var self = this;
			switch (x) {
				case 0:
				this.frameWrap.setStyles({'display':'none'})
				this.myFrame.set('src','').setStyles({
					'height':1,
					'display': 'none',
					'visibility': 'hidden'					
				})
				this.overlay.setStyle('height', '')
				break;			
				case 1: 
				this.overlay.setStyle('display','');
				this.frameWrap.setStyle('display','');
				//this.myFx.overlay.start(0.5);
				//this.myFx.frameWrap.start(1);
				break;
				
				/*
				this.myFx.frameWrap.start(0).chain(function() { 
					self.myFrame.set('src','').setStyles({'height':1})
					self.myFx.frame.start('opacity', 0)
					self.overlay.setStyle('height', '')					
				});
				this.myFx.overlay.start(0);
				*/				
			}		
		},
		_resizeOverlay: function() {
			try{
				this.overlay.setStyles({top:window.getTop(), height:window.getScrollHeight()});		
			} catch (e) {}
		},	
		_setDisplay: function() {
			if (this.overlay.getStyle('visibility') == 'hidden') {
				$$([this.overlay, this.frameWrap]).setStyle('display','none')
			}
		}	
	}
}

/*
document.addEvent('domready', function() {
	Site.load()			
})
*/
