/*
Box Overlay
Empresa: www.fluence.com.br
Programador: www.rafaeldouglas.com
Criado em: 2009/05/08
Última alteração: 2009/05/08
*/

//new function($) {
	// Definição do plugin
	jQuery.fn.overlayBox = function(options){
		
		// Valores padrões
		var fnDefaults = {
			ajax: false, // Funcionalidade Ajax
			ajax: true,
			motionSpeed: "normal"// Velocidade da animação ("slow","normal","fast")
		}
		
		// Atribuíção dos valores
		var options = jQuery.extend(fnDefaults, options);	
		
		// Implementação
		
		// objeto rastreado
		var obj = jQuery(this);

		obj.find('a').click(function(evt){
			evt.preventDefault();							  
			//variáveis
			motionSpeed = fnDefaults.motionSpeed;
			imageURL = $(this).attr('href');
			imageTitle = $(this).attr('title');
			
			// Oculta obejtos conflitantes
			$('embed, object, select').css({ 'visibility' : 'hidden' });
			
			// Cria div overlayBox
			var boxStucture  
			= '<div id="overlayBox"></div>'
			+ '<div id="containerBox">'
			+ '	<div id="containerHeader">'
			+ '		<p id="containerHeaderLabel"></p>'
			+ '		<a id="overlayBoxClose" title="Fechar"></a>'
			+ '	</div>'
			+ '	<div id="containerData"></div>'
			+ '</div>'
			$("body").append(boxStucture);
			
			//Carrega a imagen clicada imagem
			objImagePreloader = new Image();	
			objImagePreloader.onload = newImage;
			objImagePreloader.src = imageURL;
			
			function newImage(){		
				objImagePreloader.title = imageTitle;
				objImagePreloader.id = "overlay-image";	
				w=objImagePreloader.width;
				h=objImagePreloader.height;
				
				$("#containerData").append(objImagePreloader);	
				$('#containerHeaderLabel').html(objImagePreloader.title);
				$('#containerBox').animate({
					width:w,
					marginLeft:w/2*(-1),
					height:h,
					marginTop:h/2*(-1)},
					motionSpeed,
					function(){
						$('#containerHeader,#containerData').fadeIn(200);
				});			   
			};
			
						
			overlayAjust();
			 
			jQuery(window).resize(function(){
				 overlayAjust();							  
			});
			
			// Close overlaybox			
			$("#overlayBoxClose").click(overlayBoxClose);
			jQuery(document).bind("keypress", function(e) {
			  var code=e.charCode || e.keyCode;
			  if(code==27){
				  overlayBoxClose();
			  	jQuery(document).unbind();
			  }
			});
			
		});
	}
//}





function overlayAjust(){
	$('#overlayBox').css({
			opacity: 0.80,
			filter: "Alpha(Opacity=80)",
			width: $(document).width() - (jQuery.browser.msie?21:0),
			height: $(document).height()
		});
}


function overlayBoxClose() {
	$('#containerBox').remove();
	$('#overlayBox').fadeOut(150,function(){
		$('#overlayBox').remove();
		// Exibe obejtos conflitantes
		$('embed, object, select').css({ 'visibility' : 'visible' });	
	});	
}





/*

function overlayBoxInit(){
	$('a').each(function(i){
		if(this.rel.indexOf('overlayBox') != -1)
		{
			this.onclick=function()
			{
				overlayBox(this);	
				return false;				
			}
		}
	});	
}

// cria o box
function overlayBox(instance)
{	
	// Oculta obejtos conflitantes
	$('embed, object, select').css({ 'visibility' : 'hidden' });
	
	// Gera div overlayBox
	$("body").append('<div id="overlayBox"></div><div id="containerBox"><div id="containerHeader"><p id="containerHeaderLabel"></p> <a id="overlayBoxClose"></a></div><div id="containerData"></div></div>');
	
	// Exibe a base inicial
	//$("#containerBox").fadeIn();	
	var arrPageScroll = _getPageScroll();
	$('#containerBox').css({
		//left:arrPageScroll[0],
		//top:arrPageScroll[1]
		//marginTop:$(this).css('margin-top')+arrPageScroll[1]
	}).fadeIn('normal');
	
	//alert(substring($('#containerBox').css('margin-top')));
	
	//Carrega a imagen clicada imagem
	objImagePreloader = new Image();	
	objImagePreloader.onload = newImage;
	objImagePreloader.src = instance.href;
	
	function newImage(){		
		objImagePreloader.title = instance.title;
		objImagePreloader.id = 'newImg';	
		w=objImagePreloader.width;
		h=objImagePreloader.height+28;
		
		$("#containerData").append(objImagePreloader);		
		$('#containerHeaderLabel').html(objImagePreloader.title);
		$('#containerBox')
		.animate({width:w, marginLeft:w/2*(-1), height:h, marginTop:h/2*(-1)},250, function(){
			$('#containerHeader,#containerData').fadeIn('normal');																			
		});			   
	};

	//Confugura e exibe a Div overlayBox
	var arrPageSizes = _getPageSize();	
	
	$('#overlayBox').css({
		//backgroundColor:	'#000',
		opacity:			0.7,
		width:				arrPageSizes[0],
		height:				arrPageSizes[1],
		display:			'none'
		//cursor:				'pointer'
	}).fadeIn('normal');
	
	
	//Comportamento Clique
	$('#overlayBox, #overlayBoxClose').click(function() {
		_overlayBoxClose();								
	});
}

function _overlayBoxClose() {
	$('#containerBox').remove();
	$('#overlayBox').fadeOut('fast',function() { $('#overlayBox').remove(); });
	// Exibe obejtos conflitantes
	$('embed, object, select').css({ 'visibility' : 'visible' });
}



// Redimensionamento da Janela
$(window).resize(function()
{
	// Get page sizes
	var arrPageSizes = _getPageSize();
	// Style overlay and show it
	$('#overlayBox').css({
		width:		arrPageSizes[0],
		height:		arrPageSizes[1]
	});
	
	/*
	// Get page scroll
	var arrPageScroll = _getPageScroll();
	// Calculate top and left offset for the jquery-lightbox div object and show it
	$('#overlayBox').css({
		top:	arrPageScroll[1] + (arrPageSizes[3] / 10),
		left:	arrPageScroll[0]
	});
	*/
	/*
});
	
/*
getPageSize() by quirksmode.com
@return Array Return an array with page width, height and window width, height
*//*
function _getPageSize() {
	var xScroll, yScroll;
	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; 
		} 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;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}	
	// 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;
	}
	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight);
	return arrayPageSize;
};
/**
 / THIRD FUNCTION
 * getPageScroll() by quirksmode.com
 *
 * @return Array Return an array with x,y page scroll values.
 *//*
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;
};
*/
