window.iPhone = window.iPhone || {};

(function() {

	// Variável local
	var $i = this;

	// Variável compartilhada
	$i.vars = {};

	// Utilitário compartilhado
	$i.utils = {
		
		// Ocultar a barra de carga chato 
		hideURLBar : function() {
			setTimeout(function() {
				window.scrollTo(0, 1);
			}, 0);
		},
	};
	
	// Inicializa
	$i.init = function() {
		
		// Sniff para a propriedade orientação
		if (typeof window.orientation !== "undefined") {
			// Não pode impedir usuário de escutas barra de status
			//Então, ao invés, reajustar posições fixas
			window.addEventListener("scroll", function() {
				$i.utils.addClass(document.body, "scrolled");
			}, false);
			
			// Remover classe de rolagem na mudança de orientação 
			window.addEventListener("orientationchange", function() {
				$i.utils.removeClass(document.body, "scrolled");
			}, false);
			
			// Ocultar barra de URL 
			$i.utils.hideURLBar();
			window.addEventListener("orientationchange", $i.utils.hideURLBar, false);
			
			// Ponto para a função updateOrientation iPhone quando muda entre os modos retrato e paisagem. 
			$i.utils.updateOrientation();
			window.addEventListener("orientationchange", $i.utils.updateOrientation, false);
		}
	};
	
	$i.onload = {
		
		// Desativar eventos flick 
		disableScrollOnBody : function() {
			document.body.addEventListener("touchmove", function(e) {
				e.preventDefault();
			}, false);
		},
		
		// Criar uma área para tocar para voltar ao topo
		//(não pode usar barra de status por razões óbvias) 
		scrollToTop : function() {
			// Cabeçalho 
			var header = document.querySelector("#header");
			if (header) {
				
				// Cancelar evento se o usuário arrasta o dedo fora 
				header.addEventListener("touchmove", function() {
					this.cancel = true;
				}, false);
				
				// Vá para cima (se não for cancelada) 
				header.addEventListener("touchend", function() {
					if (!this.cancel) {
						$i.utils.scrollToY(0);
					}
					
					// Sinalizador Reset 
					this.cancel = false;
				}, false);
			}
		},
	};
	
	// Fire on load
	window.addEventListener("load", $i.init, false);
	
}).call(window.iPhone); // Inicializa
