(function($){  
$.fn.tbox = function(optionx) { 
    
	var optionx = jQuery.extend({
		type: 'image',
		name_class:'tbox',
		mpu: false,
		group: false,
		fade_time:200,
		mpu:false,
		height:'',
		width:'',
		list:[],
		info:'',
		showCaption:true,
        url:'',
		playAdvert:false,
		autoPlay:false
	}, optionx);   
				
	var tbox = {
		initialize:function(obj){
			if(typeof importCSS == 'function') {
				importCSS('/css/tbox.jquery.css');
			} 
			if(optionx.type=='iframe') optionx.mpu = false;
			this.setupLayer();
			$(obj).hover(
		      function () {$(obj).css({cursor:'pointer'})},
		      function () {$(obj).css({cursor:'auto'})}
			);

		},
		
		
		// Insert differnt DIVs in the html
		setupLayer: function (){
			var name_class = optionx.name_class;
			if($('#'+name_class+'_window').length > 0) return false;						
			$('body').append('<div id="'+name_class+'_background"></div><div id="'+name_class+'_outbox"><div id="'+name_class+'_window"><div id="'+name_class+'_content" id="'+name_class+'_content" ></div><span id="'+name_class+'_info_group"></span><a href="#" id="'+name_class+'_close_btn"></a><div id="'+name_class+'_caption"></div><div style="clear:both;"></div></div></div><div id="'+name_class+'_buffer"></div>');				
			$('#'+name_class+'_background').css({opacity:0.8});			
			$('#'+name_class+'_outbox').hide();	
			
			// Fix for IE6
			if(jQuery.browser.version < 7 && jQuery.browser.msie === true){
				$('#'+name_class+'_background').css({position:'absolute',height:$(document).height()});
				$('#'+name_class+'_outbox').css({position:'absolute'});				
			}
			
			// close overlay
			$('#tbox_window').hover(function(){$('#'+name_class+'_outbox').unbind('click',tbox.closeBox);},function(){$('#'+name_class+'_outbox').bind('click',tbox.closeBox)});
			$('#'+name_class+'_background, #'+name_class+'_close_btn, #'+name_class+'_outbox').click(tbox.closeBox);		
		},
		
		closeBox: function(){
			$('#'+optionx.name_class+'_outbox').fadeOut(150,function(){
				$('#'+optionx.name_class+'_content').html('');
				$('#'+optionx.name_class+'_background').hide();	
	            $("select, embed, object").css('visibility','visible');            				
			});
			return false;
		},
		
		setSize:function(time,textHtml,caption){	
			var insertText = textHtml;
			var TB_WIDTH = $('#'+optionx.name_class+'_buffer').width();		
			var TB_HEIGHT = $('#'+optionx.name_class+'_buffer').height();
			if(optionx.height != '') TB_HEIGHT = optionx.height;
			if(optionx.width != '') TB_WIDTH = optionx.width;
			adTagBox = window.adTag || '';
			var iFrame = '';
			if(optionx.mpu == true && adTagBox!=''){
				randAdTag = Math.random()*10000000000000000;
				iFrame = '<div style="float:right;padding-left:10px;width:304px;overflow:hidden;"><iframe src="/scripts/iframeADV.html?rand='+randAdTag+'&adtag='+adTagBox+'" width="302" height="275" frameborder="0" allowtransparency="1" scrolling="no"></iframe></div>';
				TB_WIDTH = TB_WIDTH+316;
				insertText = insertText+iFrame;
			}
			if(optionx.info != '' && $(optionx.info)){				
				insertText += $(optionx.info).html();
			}
			insertText += '<div style="clear:both;"></div>';
			if(TB_WIDTH > 960) TB_WIDTH = 960;		
			var clientHeight = document.documentElement.clientHeight || $(window).height() || 800;
			clientHeight = parseInt(clientHeight)-120;
			TB_HEIGHT = (TB_HEIGHT > clientHeight)?clientHeight:TB_HEIGHT;
			$('#'+optionx.name_class+'_content').animate({width: TB_WIDTH + 'px', height:TB_HEIGHT + 'px'},optionx.fade_time);				
			$('#'+optionx.name_class+'_caption').hide();
			$('#'+optionx.name_class+'_caption').html(caption);
			$('#'+optionx.name_class+'_window').animate({width: TB_WIDTH + 'px'},optionx.fade_time,function(){																								
						$('#'+optionx.name_class+'_content').html(insertText);
						if (optionx.type == 'video') {
							tbox.setupVideo(optionx);
						} else {
							$('#'+optionx.name_class+'_content').css({height:'auto'});																																				
						}
						$('#'+optionx.name_class+'_content').hide();
						$('#'+optionx.name_class+'_content').css({background:'#ffffff'});						
						$('#'+optionx.name_class+'_content').fadeIn(optionx.fade_time);							
						$('#'+optionx.name_class+'_caption').fadeIn(optionx.fade_time);
						var scrollBars = false;
						var heightContent = $('#'+optionx.name_class+'_content').height();
						if(heightContent > clientHeight){
							heightContent = clientHeight;
							$('#'+optionx.name_class+'_content, #'+optionx.name_class+'_window').width(TB_WIDTH+20);
							scrollBars = true;
						}
						$('#'+optionx.name_class+'_content').height(heightContent);																																												
						if(optionx.groups != false && optionx.group != ''){
							$('#'+optionx.name_class+'_nav_next,#'+optionx.name_class+'_nav_prev').height(heightContent);
							tbox.setNavLinks();
						}
						$('#'+optionx.name_class+'_buffer').html('');
				});			
		},
		
		f_scrollTop: function() {
			
			return top;
		},
		
		doClick:function(obj){			
			if(optionx.type == 'iframe' && (optionx.height == '' || optionx.width == '')) return false;	
			// Fix for IE6
			if(jQuery.browser.version < 7 && jQuery.browser.msie === true){
				var offSet = window.pageYOffset ||	document.documentElement.scrollTop || document.body.scrollTop || 0;
				var topBox = parseInt(offSet)+50;
				$('#'+optionx.name_class+'_outbox').css({top:topBox});
			}
			$('#'+optionx.name_class+'_outbox').show();
			$('#'+optionx.name_class+'_background').show();
            $("select, embed, object").css('visibility','hidden');            
			tbox.getContents(obj);
		},
		
				
		getContents:function(obj,num){
			$('#'+optionx.name_class+'_content').html('');
			$('#'+optionx.name_class+'_content').css({background:'none'});			
			var caption = '';
			if(optionx.type == 'iframe'){
				var url = obj.href;
                if(optionx.url != '') url = optionx.url;
				caption = obj.title || obj.name || '';				
				textHtml = '<iframe src ="'+url+'" width="'+optionx.width+'" height="'+optionx.height+'" frameborder="0"></iframe>'
				tbox.showContent(textHtml,caption);
				return false;				
			} else if (optionx.type =='image'){
				var overLinks = '';				
				var overLinksEnd = '';	
				var infoImages = '';							
				if(optionx.groups != false && optionx.group != ''){
					$('#'+optionx.name_class+'_content').html('');
					if(num>-1) {obj = optionx.list[num];}
					var index = $(optionx.list).index(obj);
					overLinks = '<div id="'+optionx.name_class+'_navigator" class="'+optionx.name_class+'_index_'+index+'">';
					if(index != 0){						
						overLinks +='<a href="#" id="'+optionx.name_class+'_nav_prev"></a>';
					}
					if(index != (optionx.list.length-1)){
						overLinks +='<a href="#" id="'+optionx.name_class+'_nav_next"></a>';
					}
					overLinks +='</div>';
					infoImages = '<div id="'+optionx.name_class+'_info_group">Image '+parseInt(index+1)+' of '+optionx.list.length+'</div>';
				}
				var url = $(obj).attr('href') || obj.alt || $(obj).attr('longdesc') || null;
                if(optionx.url != '') url = optionx.url;                
				caption = obj.title || obj.name || '';
				if(caption===null){caption="";}
				caption +=infoImages;
				textHtml = '<div style="float:left;">'+overLinks+'<img src="'+url+'" /></div>';				
				Image1= new Image();
				Image1.onload = function(){
					tbox.showContent(textHtml,caption);										
				}
				Image1.src = url;				

			} else if (optionx.type =='ajax'){				
				var url = obj.href;
                if(optionx.url != '') url = optionx.url;                
				if(url.match(/\.(php|html)\?/)) url +='&ajax=1';
				else url +='?ajax=1';                
				caption = obj.title || obj.name || '';				
				$.get(url,function(data){
					tbox.showContent(data,caption);				
				});
				return false;
			} else if (optionx.type == 'video'){
				optionx.url = obj.rel || '';
				optionx.height = (optionx.height=='')?200:optionx.height;
				optionx.width = (optionx.width=='')?294:optionx.width;				
				caption = obj.title || obj.name || '';
				data = '<div id="'+optionx.name_class+'video-player"></div>';
				if(optionx.url == '') tbox.closeBox();
				tbox.showContent(data,caption);	
			}
			
		},
		
		setupVideo:function(){

			LbVideoPlace(optionx.name_class+'video-player', {
				id      : optionx.name_class+'video-player',
				width   : optionx.width,
				height  : optionx.height,
				autoplay: optionx.autoPlay,
				skin : 'http://www.tiscali.co.uk/video/tiscali-300x250.swf',
				hoverControls : 'false',
				xmlFile : optionx.url,
				initialPic: 'http://media.tiscali.co.uk/images/gfx/video-hub/click-to-play-300x200.gif',
				finalPic: 'http://media.tiscali.co.uk/images/gfx/video-hub/click-to-play-300x200.gif',
				playAdvert : optionx.playAdvert,
				clickableAd: true,
				channel: 'home',
				adLevel: "Tiscali:Homepage"
			});			
			$(optionx.name_class+'video-player').click( function() {
				$(this).blur();
			});
		},
		
		showContent:function(textHtml,caption){
			if(optionx.showCaption == false) caption = '';				
			if(optionx.type != 'iframe' && optionx.type != 'video'){
				var b_height = (optionx.height !='')?optionx.height:'auto';
				var b_width = (optionx.width != '')?optionx.width:'auto';
				$('#'+optionx.name_class+'_buffer').css({height:b_height,width:b_width}).html(textHtml);				
			}
			tbox.setSize(optionx.fade_time,textHtml,caption);
		},
		
		setNavLinks:function(){
			var index=$('#tbox_navigator').attr('class');
			index = parseInt(index.replace(/tbox_index_/gi,''));
			$('#tbox_nav_prev').click(function(){tbox.getContents('',(index-1)); return false;});
			$('#tbox_nav_next').click(function(){tbox.getContents('',(index+1)); return false;});			
		}
	}
	
	
	this.click(function(){
		tbox.doClick(this);
		return false;
	});			

	this.each(function(){
		if(optionx.group != false){
			optionx.list.push(this);
		}
		tbox.initialize(this);
	});

};})(jQuery);