/*
*	Nícolas Vieira Rossett
*	iseeGravity - Script de sensação gravitacional ao mover o mouse desenvolvido para a iSee Interactive
*	29/10/2011
*/
  
  
(function($){
	
	$.fn.iseeGravity = function( options ){
		
		var padrao = {			
			sentido: '<>',	
			sensitive_x: '200',
			sensitive_y: '0',
			intensidade: 3
		};
		
		var configuracoes = $.extend(padrao,options);
		  
		// Definição de Elemento
		var elemento = $(this);  
		
		cenario (elemento,configuracoes); 	 
		movimentos (elemento,configuracoes); 	 
		
	}
	  
	  
	function cenario (elemento,configuracoes){
		
			 
			$('.iseeItem',elemento).each(function(){ 
				var div = {}; 				
				div.sensitive_x = $(this).attr('sensitive_x');
				div.sensitive_y = $(this).attr('sensitive_y');  				
				div.left = int($(this).css('marginLeft'))-int(div.sensitive_x);				
				$(this).attr('left',div.left); 
				
			});
			
		 
	}
	
	 
	/*
	Faz interação de movimento
	*/	
	function movimentos(elemento,configuracoes){	
		
		$(elemento).hover(function(){  
			// $(elemento).attr('animate','true');	 
			$(this).bind('mousemove',{e:elemento,c:configuracoes},calculaPosicao); 
		});  
			   
		 
	}
	
	
	
	function calculaPosicao( evento ){ 
			   
		var elemento = evento.data.e;
		var configuracoes = evento.data.c; 
		
		var offset = elemento.offset();  
		
		// Coordenadas
		var x = evento.pageX - offset.left;
		var y = evento.pageY - offset.top;
		
			
		if ( (x  % 5) == '0' || (y  % 7) == '0' ){ 
			
			// Calcula posicao do item - Largura
			larguraDocumento = $(document).width();
			 
			 /*
			 * Percentual Animação
			 */
				
			p_1 =  (	int( x )* int( 100 )	); 
			p_2 =  (	int( larguraDocumento ) / int(2) );  
			var p_x =  Math.abs( (	int( p_1 ) / int( p_2 ) 	) - int( 100 ) );
			
			
			 /*
				Anima personagem
			 */
			 var personagemBalanco = $('#personagem-balanco');
			 
			 if (  personagemBalanco.size() == '1'  ){ 
				  
				  posicao_troca = parseInt(p_x);   
					  
				  if ( (posicao_troca <= 100) && (posicao_troca > 90) )	{		 personagemBalanco.css('backgroundPosition','-2380px 0px');			}
				  if ( (posicao_troca <= 90) && (posicao_troca > 78) )	{		 personagemBalanco.css('backgroundPosition','-2040px 0px');			}
				  if ( (posicao_troca <= 78) && (posicao_troca > 66) )	{		 personagemBalanco.css('backgroundPosition','-1700px 0px');			}
				  if ( (posicao_troca <= 66) && (posicao_troca > 54) )	{		 personagemBalanco.css('backgroundPosition','-1360px 0px');			}
				  if ( (posicao_troca <= 54) && (posicao_troca > 42) )	{		 personagemBalanco.css('backgroundPosition','-1020px 0px');			}
				  if ( (posicao_troca <= 42) && (posicao_troca > 30) )	{		 personagemBalanco.css('backgroundPosition','-680px 0px');			}
				  if ( (posicao_troca <= 30) && (posicao_troca > 18) )	{		 personagemBalanco.css('backgroundPosition','-340px 0px');			}
				  if ( (posicao_troca <= 18) && (posicao_troca > 0) )	{		 personagemBalanco.css('backgroundPosition','0px 0px');				}
				    
			 }
				 
			 
			
			parte_1 =  (	int( x )* int( 50 )	); 
			parte_2 =  (	int( larguraDocumento ) / int( 2 )	);  
			var percentual_x =  (	int( parte_1 ) / int( parte_2 ) 	) - int( 50 );
			 
			  
			// Calcula posicao do item - Altura
			alturaElemento = $(elemento).height();  
			
			parte_1 =  (	int( y ) * int( 100 )	); 
			parte_2 =  (	int( alturaElemento )	);  
			var percentual_y =  (	int( parte_1 ) / int( parte_2 ) 	) - int( 100 ); 
			 
			 
			var indice = 0;
			
			$('.iseeItem',elemento).each(function(){  
				
				// Contagem
				indice++;
								
				// Definições da Imagem
				var img = {}; 
				img.largura = $(this).children('img').width();			
				img.altura = $(this).children('img').height();
				
				// Definições da DIV
				var div = {}; 				
				div.sensitive_x = ( $(this).hasAttr('sensitive_x') ) ? $(this).attr('sensitive_x') : configuracoes.sensitive_x ;
				div.sensitive_y = ( $(this).hasAttr('sensitive_y') ) ? $(this).attr('sensitive_y') : configuracoes.sensitive_y ;
				
				div.girar = ( $(this).hasAttr('girar') ) ? $(this).attr('girar') : configuracoes.girar ;
				div.intensidade = ( $(this).hasAttr('intensidade') ) ? $(this).attr('intensidade') : configuracoes.intensidade ;
				
				div.sentido = ( $(this).hasAttr('sentido') ) ? $(this).attr('sentido') : configuracoes.sentido ; 
				 
				
				div.left = $(this).attr('left'); 
				div.top = $(this).attr('top'); 
				
				div.largura = $(this).width( int( img.largura )+ int( div.sensitive_x ) + int( div.sensitive_x ) );				
				div.altura = $(this).attr('altura');
				 
				 
				// Alinha DIV com compensações laterais 
				$(this).css('marginLeft', div.left+'px');
				
				
				// Converte percentual do posicionamento do mouse em px relativo ao elemento
				posicao_x = (	int( div.sensitive_x ) * int( percentual_x ) 	)	/	int( 50 ) ;
				posicao_y = (	(	int( div.sensitive_y ) * int( percentual_y ) 	)	/	int(50) ) 	+	int( div.sensitive_y ); 
				
				
				// Verifica se é uma animação com movimentos invertidos, se sim converte positivo em negativo e negativo em positivo
				posicao_x = (div.sentido == '><') ?  int( posicao_x )-int( posicao_x )-int( posicao_x ) : posicao_x ;
				posicao_y = (div.sentido == '<>') ?  int( posicao_y )-int( posicao_y )-int( posicao_y ) : posicao_y ;
				
				// Intensidade do giro
				intensidade = int( percentual_x )	*	int( div.intensidade );
				
				if ( ($.browser.msie == true) && (Math.abs($.browser.version) > 8) || ($.browser.msie != true) ){
				
	  				switch ( div.girar ){
	  					case '>':		$(this).children('img').rotate(	intensidade );												break;
	  					case '<':		$(this).children('img').rotate(	int( intensidade )-int( intensidade )-int( intensidade ) );		break;					
	  					default: 		break;
	  				}
				
				}
			 
			  
				// Posiciona o elemento verticalmente				  
				$(this).children('img').css('marginLeft', posicao_x+'px');
				$(this).children('img').css('marginTop', posicao_y+'px');  
				 
				 
				  
			});
			
		}
		
	}
	
		
		
		
	
	 
	
	
	function int( valor ){
		return parseFloat( valor );
	}
	 
	$.fn.hasAttr = function(name) {  
	   return this.attr(name) !== undefined;
	};
	
	
	 
	  
})(jQuery);




/*
	Plugin Rotate
*/

// VERSION: 1.8 LAST UPDATE: 9.03.2011
/* 
 * Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php
 * 
 * Made by Wilq32, wilq32@gmail.com, Wroclaw, Poland, 01.2009
 * Website: http://code.google.com/p/jqueryrotate/ 
 */
 (function(g){for(var d,j=document.getElementsByTagName("head")[0].style,h="transformProperty WebkitTransform OTransform msTransform MozTransform".split(" "),e=0;e<h.length;e++)j[h[e]]!==void 0&&(d=h[e]);var i="v"=="\v";jQuery.fn.extend({ImageRotate:function(a){if(!this.Wilq32||!this.Wilq32.PhotoEffect)return a=g.extend(!0,{},a),(new Wilq32.PhotoEffect(this.get(0),a))._rootObj},rotate:function(a){if(!(this.length===0||typeof a=="undefined")){typeof a=="number"&&(a={angle:a});for(var c=
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                [],b=0,d=this.length;b<d;b++){var f=this.get(b);typeof f.Wilq32=="undefined"?c.push(g(g(f).ImageRotate(a))):f.Wilq32.PhotoEffect._handleRotation(a)}return c}}});Wilq32=window.Wilq32||{};Wilq32.PhotoEffect=function(){return d?function(a,c){a.Wilq32={PhotoEffect:this};this._img=this._rootObj=this._eventObj=a;this._handleRotation(c)}:function(a,c){this._img=a;this._rootObj=document.createElement("span");this._rootObj.style.display="inline-block";this._rootObj.Wilq32={PhotoEffect:this};a.parentNode.insertBefore(this._rootObj,
     a);if(a.complete)this._Loader(c);else{var b=this;jQuery(this._img).bind("load",function(){b._Loader(c)})}}}();Wilq32.PhotoEffect.prototype={_setupParameters:function(a){this._parameters=this._parameters||{};if(typeof this._angle!=="number")this._angle=0;if(typeof a.angle==="number")this._angle=a.angle;this._parameters.animateTo=typeof a.animateTo==="number"?a.animateTo:this._angle;this._parameters.easing=a.easing||this._parameters.easing||function(a,b,d,f,e){return-f*((b=b/e-1)*b*b*b-1)+d};this._parameters.duration=
     a.duration||this._parameters.duration||1E3;this._parameters.callback=a.callback||this._parameters.callback||function(){};a.bind&&a.bind!=this._parameters.bind&&this._BindEvents(a.bind)},_handleRotation:function(a){this._setupParameters(a);this._angle==this._parameters.animateTo?this._rotate(this._angle):this._animateStart()},_BindEvents:function(a){if(a&&this._eventObj){if(this._parameters.bind){var c=this._parameters.bind,b;for(b in c)c.hasOwnProperty(b)&&jQuery(this._eventObj).unbind(b,c[b])}this._parameters.bind=
         a;for(b in a)a.hasOwnProperty(b)&&jQuery(this._eventObj).bind(b,a[b])}},_Loader:function(){return i?function(a){var c=this._img.width,b=this._img.height;this._img.parentNode.removeChild(this._img);this._vimage=this.createVMLNode("image");this._vimage.src=this._img.src;this._vimage.style.height=b+"px";this._vimage.style.width=c+"px";this._vimage.style.position="absolute";this._vimage.style.top="0px";this._vimage.style.left="0px";this._container=this.createVMLNode("group");this._container.style.width=
         c;this._container.style.height=b;this._container.style.position="absolute";this._container.setAttribute("coordsize",c-1+","+(b-1));this._container.appendChild(this._vimage);this._rootObj.appendChild(this._container);this._rootObj.style.position="relative";this._rootObj.style.width=c+"px";this._rootObj.style.height=b+"px";this._rootObj.setAttribute("id",this._img.getAttribute("id"));this._rootObj.className=this._img.className;this._eventObj=this._rootObj;this._handleRotation(a)}:function(a){this._rootObj.setAttribute("id",
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   this._img.getAttribute("id"));this._rootObj.className=this._img.className;this._width=this._img.width;this._height=this._img.height;this._widthHalf=this._width/2;this._heightHalf=this._height/2;var c=Math.sqrt(this._height*this._height+this._width*this._width);this._widthAdd=c-this._width;this._heightAdd=c-this._height;this._widthAddHalf=this._widthAdd/2;this._heightAddHalf=this._heightAdd/2;this._img.parentNode.removeChild(this._img);this._aspectW=(parseInt(this._img.style.width,10)||this._width)/
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       this._img.width;this._aspectH=(parseInt(this._img.style.height,10)||this._height)/this._img.height;this._canvas=document.createElement("canvas");this._canvas.setAttribute("width",this._width);this._canvas.style.position="relative";this._canvas.style.left=-this._widthAddHalf+"px";this._canvas.style.top=-this._heightAddHalf+"px";this._canvas.Wilq32=this._rootObj.Wilq32;this._rootObj.appendChild(this._canvas);this._rootObj.style.width=this._width+"px";this._rootObj.style.height=this._height+"px";this._eventObj=
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           this._canvas;this._cnv=this._canvas.getContext("2d");this._handleRotation(a)}}(),_animateStart:function(){this._timer&&clearTimeout(this._timer);this._animateStartTime=+new Date;this._animateStartAngle=this._angle;this._animate()},_animate:function(){var a=+new Date,c=a-this._animateStartTime>this._parameters.duration;if(c&&!this._parameters.animatedGif)clearTimeout(this._timer);else{(this._canvas||this._vimage||this._img)&&this._rotate(~~(this._parameters.easing(0,a-this._animateStartTime,this._animateStartAngle,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               this._parameters.animateTo-this._animateStartAngle,this._parameters.duration)*10)/10);var b=this;this._timer=setTimeout(function(){b._animate.call(b)},10)}if(this._parameters.callback&&c)this._angle=this._parameters.animateTo,this._rotate(this._angle),this._parameters.callback.call(this._rootObj)},_rotate:function(){var a=Math.PI/180;return i?function(a){this._angle=a;this._container.style.rotation=a%360+"deg"}:d?function(a){this._angle=a;this._img.style[d]="rotate("+a%360+"deg)"}:function(c){this._angle=
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   c;c=c%360*a;this._canvas.width=this._width+this._widthAdd;this._canvas.height=this._height+this._heightAdd;this._cnv.translate(this._widthAddHalf,this._heightAddHalf);this._cnv.translate(this._widthHalf,this._heightHalf);this._cnv.rotate(c);this._cnv.translate(-this._widthHalf,-this._heightHalf);this._cnv.scale(this._aspectW,this._aspectH);this._cnv.drawImage(this._img,0,0)}}()};if(i)Wilq32.PhotoEffect.prototype.createVMLNode=function(){document.createStyleSheet().addRule(".rvml","behavior:url(#default#VML)");
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               try{return!document.namespaces.rvml&&document.namespaces.add("rvml","urn:schemas-microsoft-com:vml"),function(a){return document.createElement("<rvml:"+a+' class="rvml">')}}catch(a){return function(a){return document.createElement("<"+a+' xmlns="urn:schemas-microsoft.com:vml" class="rvml">')}}}()})(jQuery);


