// JavaScript Document
var g_objLightBox;
var g_numInterval;
var bolPlaying=false;
// ham auto play cho setTimeout goi
function autoplay_img(){
		g_objLightBox._auto_play_img();
	}
/*jQuery lightBox da duoc hieu chinh*/
(function($) {
		$.fn.lightBox = function(settings) 
		{
				settings = jQuery.extend({
				overlayBgColor: 		'#000',		
				overlayOpacity:			0.4,			
				containerBorderSize:	15,	
				containerResizeSpeed:	500,
				playSpeed:				4000,
				offsetDis:				0,
				numMaxWidth:			974,
				imageArray:				[],
				activeImage:			0
				},settings);
			var jQueryMatchedObj = this;
			function _initialize() {
				_start(this,jQueryMatchedObj);
				return false;
			}
			function _start(objClicked,jQueryMatchedObj) {
				$('embed, object, select').css({ 'visibility' : 'hidden' });
				_set_interface();
				settings.imageArray.length = 0;
				settings.activeImage = 0;
				var arrImgItem;
				if ( jQueryMatchedObj.length == 1 ) {
					arrImgItem=new Array(objClicked.getAttribute('href'));
					if(arrImgItem[0]!="" && arrImgItem[0]!="#") settings.imageArray.push(arrImgItem);
					//settings.imageArray.push(new Array(objClicked.getAttribute('href')));
				} else {	
					for ( var i = 0; i < jQueryMatchedObj.length; i++ ) {
						arrImgItem=new Array(jQueryMatchedObj[i].getAttribute('href'));
						if(arrImgItem[0]!="" && arrImgItem[0]!="#") settings.imageArray.push(arrImgItem);
						//settings.imageArray.push(new Array(jQueryMatchedObj[i].getAttribute('href')));
					}
				}
				while ( settings.imageArray[settings.activeImage][0] != objClicked.getAttribute('href')) {
					settings.activeImage++;
				}
				_set_image_to_view();
			}
			// ham sap dat giao dien xuat hien
			function _set_interface() {
				$('body').append('<div id="jquery-overlay"></div><div id="jquery-lightbox"><div id="lightbox-container-image-box"><div id="lb_top_border_cl"><div id="lb_top_border_cr"><div id="lb_top_border_m"></div></div></div><div id="lb_con_border_l"><div id="lb_con_border_r"><div id="lightbox-container-image"><img id="lightbox-image"/><div id="lightbox-loading"></div></div></div></div><div id="lb_bot_border_cl"><div id="lb_bot_border_cr"><div id="lb_bot_border_m"></div></div></div></div></div><div id="navbox"><a href="#" id="lightbox-nav-btnFirst" class="lightbox_nav_btn"></a><a href="#" id="lightbox-nav-btnPrev" class="lightbox_nav_btn"></a><a href="#" id="lightbox-nav-btnPlay" class="lightbox_nav_btn"></a><a href="#" id="lightbox-nav-btnNext" class="lightbox_nav_btn"></a><a href="#" id="lightbox-nav-btnLast" class="lightbox_nav_btn"></a><a href="#" id="lightbox-nav-btnClose" class="lightbox_nav_btn btn_close"></a></div>');	
				
				$('#navbox').show();
				_setNavBoxBottomContent();
				var arrPageSizes = ___getPageSize();
				$('#jquery-overlay').css({
					backgroundColor:	settings.overlayBgColor,
					opacity:			settings.overlayOpacity,
					width: 				$.browser.msie?arrPageSizes[0]:arrPageSizes[0]-2,
					height:				arrPageSizes[1]
				}).fadeIn();
				var arrPageScroll = ___getPageScroll();
				$('#jquery-lightbox').css({
					top:	arrPageScroll[1] + (arrPageSizes[3] / 10),
					left:	arrPageScroll[0]
				}).show();
				$('#jquery-overlay').click(function() {
					_finish();									
				});
				$('#lightbox-nav-btnClose').click(function() {
					_finish();
					return false;
				});
				$(window).resize(function() {
					var arrPageSizes = ___getPageSize();
					$('#jquery-overlay').css({
						width:		$.browser.msie?arrPageSizes[0]:arrPageSizes[0]-2,
						height:		arrPageSizes[1]
					});
					var arrPageScroll = ___getPageScroll();
					$('#jquery-lightbox').css({
						top:	arrPageScroll[1] + (arrPageSizes[3] / 10),
						left:	arrPageScroll[0]
					});
					_setNavBoxBottomContent();
				});
				$(window).scroll(function() {
					_setNavBoxBottomContent();				
				});
			};
			// ham cai dat thong so cho hinh xuat
			function _set_image_to_view() {
				$('#lightbox-loading').show();
				$('#lightbox-image').hide();
				var objImagePreloader = new Image();
				objImagePreloader.onload = function() {
					$('#lightbox-image').attr('src',settings.imageArray[settings.activeImage][0]);
					$('#lightbox-image').attr('width',objImagePreloader.width);
					if(objImagePreloader.width>settings.numMaxWidth){
						$('#lightbox-image').attr('width',(settings.numMaxWidth-settings.containerBorderSize * 2));
						objImagePreloader.width=(settings.numMaxWidth-settings.containerBorderSize * 2);
						objImagePreloader.height=$('#lightbox-image').height();
					}
					$('#lightbox-loading').animate({height:objImagePreloader.height},"fast");
					_resize_container_image_box(objImagePreloader.width,objImagePreloader.height);
					objImagePreloader.onload=function(){};
				};
				objImagePreloader.src = settings.imageArray[settings.activeImage][0];
			};
			// ham thay doi kick thuoc cho hinh
			function _resize_container_image_box(intImageWidth,intImageHeight) {
				var intCurrentWidth = $('#lightbox-container-image-box').width();
				var intCurrentHeight = $('#lightbox-container-image-box').height();
				var intWidth = (intImageWidth + (settings.containerBorderSize * 2)); 
				var intHeight = (intImageHeight + (settings.containerBorderSize * 2)); 
				var intDiffW = intCurrentWidth - intWidth;
				var intDiffH = intCurrentHeight - intHeight;
				$('#lightbox-container-image-box').animate({ width: intWidth, height: intHeight },settings.containerResizeSpeed,function() { _show_image(); });
				if ( ( intDiffW == 0 ) && ( intDiffH == 0 ) ) {
					if ( $.browser.msie ) {
						___pause(250);
					} else {
						___pause(100);	
					}
				} 
				//$('#lightbox-container-image-data-box').css({ width: intImageWidth });
				
			};
			// ham xuat hinh
			function _show_image() {
				$('#lightbox-loading').hide();
				$('#lightbox-image').fadeIn(function() {
					_set_navigation();
				});
				_preload_neighbor_images();
				var arrPageSizes=___getPageSize();
				_setNavBoxBottomContent();
			};
			// ham thiet lap thanh navigation bar
			function _set_navigation() {
				// su kien click nut First
				$('#lightbox-nav-btnFirst').unbind()
				.bind('click',function() {
					if(settings.imageArray.length){
						settings.activeImage = 0;
						_set_image_to_view();		
					}
					return false;
				});
				// su kien click nut Prev			
				$('#lightbox-nav-btnPrev').unbind()
				.bind('click',function() {
					if(settings.activeImage>0){
						settings.activeImage = settings.activeImage - 1;
						_set_image_to_view();		
					}
					else{
						if($(this).hasClass("lightbox-nav-btnPrev-over")) $(this).removeClass("lightbox-nav-btnPrev-over");
					}

					return false;
				});
				// su kien mouse over  nut prev
				$('#lightbox-nav-btnPrev').mouseover(function(){
					if(settings.activeImage>0)
					{
						$(this).addClass("lightbox-nav-btnPrev-over");
					}
				});
				// su kien mouse out  nut prev
				$('#lightbox-nav-btnPrev').mouseout(function(){
					if($(this).hasClass("lightbox-nav-btnPrev-over")) $(this).removeClass("lightbox-nav-btnPrev-over");
				});
				// su kien click nut play
				$('#lightbox-nav-btnPlay').unbind()
				.bind('click',function() {
					if(!bolPlaying){			   
						if(settings.imageArray.length>=2){
							bolPlaying=true;
							_auto_play_img();
							if(!($(this).hasClass("lightbox-nav-btnPlay-pause"))) $(this).addClass("lightbox-nav-btnPlay-pause");
						}
					}
					else{
						if(bolPlaying){
							clearInterval(g_numInterval);
							if($(this).hasClass("lightbox-nav-btnPlay-pause")) $(this).removeClass("lightbox-nav-btnPlay-pause");
							$(this).addClass("lightbox-nav-btnPlay-over");
							bolPlaying=false;
						}
					}
					return false;
				});
				// su kien mouse over  nut play
				$('#lightbox-nav-btnPlay').mouseover(function(){
					if(!bolPlaying)
					{
						$(this).addClass("lightbox-nav-btnPlay-over");
					}
				});
				// su kien mouse out  nut play
				$('#lightbox-nav-btnPlay').mouseout(function(){
					if($(this).hasClass("lightbox-nav-btnPlay-over")) $(this).removeClass("lightbox-nav-btnPlay-over");
				});

				// su kien click nut next
				$('#lightbox-nav-btnNext').unbind()
				.bind('click',function() {
					if(settings.activeImage<settings.imageArray.length -1){
						settings.activeImage = settings.activeImage + 1;
						_set_image_to_view();
					}
					else{
						if($(this).hasClass("lightbox-nav-btnNext-over")) $(this).removeClass("lightbox-nav-btnNext-over");
					}
					return false;
				});
				// su kien mouse over  nut next
				$('#lightbox-nav-btnNext').mouseover(function(){
					if(settings.activeImage<settings.imageArray.length -1)
					{
						$(this).addClass("lightbox-nav-btnNext-over");
					}
				});
				// su kien mouse out  nut next
				$('#lightbox-nav-btnNext').mouseout(function(){
					if($(this).hasClass("lightbox-nav-btnNext-over")) $(this).removeClass("lightbox-nav-btnNext-over");
				});
				
				$('#lightbox-nav-btnLast').unbind()
				.bind('click',function() {
					if(settings.imageArray.length){
						settings.activeImage = settings.imageArray.length-1;
						_set_image_to_view();		
					}
					return false;
				});
			};
			// ham tu dong thay doi hinh
			function _auto_play_img(){
					if(settings.activeImage<settings.imageArray.length -1) settings.activeImage = settings.activeImage + 1;
					else settings.activeImage = 0;
					_set_image_to_view();
					g_numInterval=setTimeout("autoplay_img()",settings.playSpeed);
			};
			
			this._auto_play_img=function(){
				_auto_play_img();
			};
			
			function _preload_neighbor_images() {
				if ( (settings.imageArray.length -1) > settings.activeImage ) {
					objNext = new Image();
					objNext.src = settings.imageArray[settings.activeImage + 1][0];
				}
				if ( settings.activeImage > 0 ) {
					objPrev = new Image();
					objPrev.src = settings.imageArray[settings.activeImage -1][0];
				}
			};
			//ham ket thuc 
			function _finish() {
				clearInterval(g_numInterval);
				bolPlaying=false;
				$('#jquery-lightbox').remove();
				$('#navbox').remove();
				$('#jquery-overlay').fadeOut(function() { $('#jquery-overlay').remove(); });
				// Show some elements to avoid conflict with overlay in IE. These elements appear above the overlay.
				$('embed, object, select').css({ 'visibility' : 'visible' });
			};
			// ham lay thong so kich thuoc
			function ___getPageSize() {
				var xScroll, yScroll, vScroll, hScroll;
				if (window.innerHeight && window.scrollMaxY) {	
					xScroll = window.innerWidth + window.scrollMaxX;
					yScroll = window.innerHeight + window.scrollMaxY;
				} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
					xScroll = document.body.scrollWidth;
					yScroll = document.body.scrollHeight;
				} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
					xScroll = document.body.offsetWidth;
					yScroll = document.body.offsetHeight;
				}
				var windowWidth, windowHeight;
				if (self.innerHeight) {	// all except Explorer
					if(document.documentElement.clientWidth){
						windowWidth = document.documentElement.clientWidth; 
						vScroll=document.documentElement.scrollTop;
					} else {
						windowWidth = self.innerWidth;
					}
					windowHeight = self.innerHeight;
				} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
					windowWidth = document.documentElement.clientWidth;
					windowHeight = document.documentElement.clientHeight;
					vScroll=document.documentElement.scrollTop;
				} else if (document.body) { // other Explorers
					windowWidth = document.body.clientWidth;
					windowHeight = document.body.clientHeight;
				}	
				var pageHeight, pageWidth;
				// for small pages with total height less then height of the viewport
				if(yScroll < windowHeight){
					pageHeight = windowHeight;
				} else { 
					pageHeight = yScroll;
				}
				// for small pages with total width less then width of the viewport
				if(xScroll < windowWidth){	
					pageWidth = xScroll;		
				} else {
					pageWidth = windowWidth;
				}
				hScroll=document.documentElement.scrollLeft*2;
				arrayPageSize=new Array(pageWidth,pageHeight,windowWidth,windowHeight,vScroll,hScroll);
				return arrayPageSize;
			};
			//ham lay thong so thanh cuon
			function ___getPageScroll() {
				var xScroll, yScroll;
				if (self.pageYOffset) {
					yScroll = self.pageYOffset;
					xScroll = self.pageXOffset;
				} else if (document.documentElement && document.documentElement.scrollTop) {	 // Explorer 6 Strict
					yScroll = document.documentElement.scrollTop;
					xScroll = document.documentElement.scrollLeft;
				} else if (document.body) {// all other Explorers
					yScroll = document.body.scrollTop;
					xScroll = document.body.scrollLeft;	
				}
				arrayPageScroll = new Array(xScroll,yScroll);
				return arrayPageScroll;
			};
			//ham tao thoi gian tre
			 function ___pause(ms) {
				var date = new Date(); 
				curDate = null;
				do { var curDate = new Date(); }
				while ( curDate - date < ms);
			 };
			 // ham di chuyen nav bar vao giua window
			function _setNavBoxCenterContent(){
				var arrPageSizes=___getPageSize();
				if (arrPageSizes[2]>$('#navbox').width()){
					$('#navbox').css('left',(Math.round((arrPageSizes[5]+arrPageSizes[2]- $('#navbox').width())/2)));
				}
				else if ((arrPageSizes[5]/2+$('#navbox').width()) < screen.availWidth){
						$('#navbox').css('left',(Math.round(arrPageSizes[5]/2)));
					}
			};	
			// ham cho navbar o bottom
			function _setNavBoxBottomContent(){
				var arrPageSizes=___getPageSize();
				var p_H=screen.availHeight>document.documentElement.scrollHeight?screen.availHeight:document.documentElement.scrollHeight;
				var w_H =arrPageSizes[3];
				var v_S=arrPageSizes[4];
				var obj_H=$('#navbox').height();
				if ((w_H+v_S)<p_H) $('#navbox').css('top',(w_H + v_S - obj_H*2 - settings.offsetDis));
				else $('#navbox').css('top',(p_H - obj_H*2 - settings.offsetDis));
				_setNavBoxCenterContent();
			};
	return this.unbind('click').click(_initialize);
	};
})(jQuery);


