var ZoomIframe = new Class({
	Implements: Options,

	options: {
		id:'zoomIframePanel',
		className: 'zoomIframePanel',
		backgroundSrc: '/images/boxes/zoom-background-960-617.png',
		thumbId:  '',
		defaultThumbWidth: '75',
		defaultThumbHeight: '55',
		defaultWidth:  '880',
		defaultHeight: '605',
		state: false,
		activeItem: false,
		testsrc: '/video/Flash-Test.html',
		activeIndex: 0
	},
	
	initialize: function(options){		
		this.anchors = $$('a.zoom-iframe');
		
		this.divElement  = new Element('div', {'id': this.options.id, 'styles' : {'display' : 'block'} , 'class' : this.options.className });	
		this.divElement.setStyle('z-index', '26000');
		this.divElement.setStyle('left', this.getPopupLeftLocation());
		this.divElement.setStyle('width', this.options.defaultWidth + 'px');
		this.divElement.setStyle('height', this.options.defaultHeight + 'px');
		this.divElement.setStyle('top', this.getPopupTopLocation());	
		this.divElement.setStyle('display', 'none');
		this.divElement.injectInside(document.body);
		
		this.divCloseElement  = new Element('div', {'id': this.options.id + '-close', 'class' : this.options.className+'-close' });	
		this.divCloseElement.injectInside(this.divElement);
		
		this.anchorCloseElement  = new Element('a', {'id': this.options.id + '-close-anchor', 'class' : this.options.className+'-close-anchor' });	
		this.anchorCloseElement.href = "#close"
		this.anchorCloseElement.innerHTML = 'close'
		this.anchorCloseElement.onclick = this.closeOnClick.pass(this);
		this.anchorCloseElement.injectInside(this.divCloseElement);
		
		this.imgBackgroundElement  = new Element('img', {'id': this.options.id + '-background-img', 'class' : this.options.className+'-background' });	
		this.imgBackgroundElement.src = this.options.backgroundSrc;
		this.imgBackgroundElement.injectInside(this.divElement, 'bottom');
		
		this.divContent  = new Element('div', {'id': this.options.id + '-content', 'class' : this.options.className+'-content' });	
		this.divContent.injectInside(this.divElement, 'bottom');
		
		this.divFeature  = new Element('div', {'id': this.options.id + '-feature', 'class' : this.options.className+'-feature' });	
		this.divFeature.injectInside(this.divContent);

		var i = 0;
		
		$each(this.anchors, function(el){														 
			el.index = i;
			el.onclick = this.onclick.pass(el, this);
			i = i + 1;
			this.tempWidth  = this.getRevItem('width', el.rev);
			this.tempHeight = this.getRevItem('height', el.rev);
			
		}, this);	
		
	},
	
	onclick: function(link) {		
		this.state = true;
		this.divElement.setStyle('left', this.getPopupLeftLocation());
		this.divElement.setStyle('top', this.getPopupTopLocation());	
		this.featureFadeIn(link)
		this.divElement.setStyle('display', 'block');
		this.divElement.setStyle('visiblity', 'visible');
		return false;
	},
		
	closeOnClick: function(link) {
		link.iframeFeature.src = link.iframeFeature.src;
		link.divElement.setStyle('display', 'none');
		link.divElement.setStyle('visiblity', 'hidden');
		link.state = false;
		return false;
	},
	
	getRevItem: function(revItem, strRev) {
		if(strRev.indexOf(revItem) > -1) {
			var arrayRev = strRev.split(" ");
			var arrayRevLength = arrayRev.length;
			for (var i=0;i<arrayRevLength;i++) { 
				if(arrayRev[i].indexOf(revItem) > -1) {
					var strRevItem = arrayRev[i].split(":");
					return strRevItem[1];
				}
			}
		} else {
			return null
		}
	},
	
	featureFadeIn: function(link) {

		this.options.activeIndex = link.index;
		
		this.divFeature.innerHTML = "";
		
		this.iframeFeature = new Element('iframe', {'id': this.options.id + '-iframe', 'src' : link.href, 'class' : this.options.className+'-iframe-2' });	
		this.iframeFeature.setStyle('width', '800px');
		this.iframeFeature.setStyle('height', '98%');
		this.iframeFeature.setStyle('border', '0 none');
		this.iframeFeature.set('frameborder', '0');
		this.iframeFeature.injectInside(this.divFeature);		
	},
	
	featureFadeOut: function(link) {
		this.divFeature.innerHTML = "";
	},	
	
	getPopupLeftLocation: function() {
		var scrollX;
		if (document.all != null) {	scrollX = (document.documentElement.clientWidth / 2) - (this.options.defaultWidth / 2) + document.documentElement.scrollLeft;}	
		else	{	scrollX = (window.innerWidth / 2) - (this.options.defaultWidth / 2) + window.scrollX;	}
		if(scrollX < 0) {
			scrollX = 15;
		}
		return scrollX + "px";
	},
	
	getPopupTopLocation: function() {
    var scrollY;
    if (document.all != null) { scrollY = (document.documentElement.clientHeight / 2) - (this.options.defaultHeight / 2) + document.documentElement.scrollTop;  } 
		else { scrollY = Math.round((window.innerHeight / 2) - (this.options.defaultHeight / 2) + window.scrollY);}
    if(scrollY < 0) {
			scrollY = 15;
		}
		return scrollY + "px";
	}
	
});
	

window.addEvent('domready', function() {
	ZoomIframe = new ZoomIframe();		
});
