function ajaxInit() {
	http_request = false;
    if (window.XMLHttpRequest) { // Mozilla, Safari,...
        http_request = new XMLHttpRequest();
        if (http_request.overrideMimeType) {
            http_request.overrideMimeType('text/xml');
            // See note below about this line
        }
    } else if (window.ActiveXObject) { // IE
        try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
        }
    }
	return http_request;
}

function ativaSelects(){
	if(document.getElementById("selectParceios"))document.getElementById("selectParceios").style.display = "";
	if(document.getElementById("selectCidades"))document.getElementById("selectCidades").style.display = "";
}

function desativaSelects(){
	if(document.getElementById("selectParceios"))document.getElementById("selectParceios").style.display = "none";
	if(document.getElementById("selectCidades"))document.getElementById("selectCidades").style.display = "none";
}

function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		do {
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		} while (obj = obj.offsetParent);
	}
	return [curleft,curtop];
}

function findWindowSize(){
	var winW = 630, winH = 460;
	if (parseInt(navigator.appVersion)>3) {
		if (navigator.appName=="Netscape") {
			winW = window.innerWidth-16;
			winH = window.innerHeight-16;
		}
		if (navigator.appName.indexOf("Microsoft")!=-1) {
			winW = document.body.offsetWidth-20;
			winH = document.body.offsetHeight-20;
		}
	}
	return [winW, winH];
}


function getScrollXY() {
	var scrOfX = 0, scrOfY = 0;
	if( typeof( window.pageYOffset ) == 'number' ) {
		//Netscape compliant
		scrOfY = window.pageYOffset;
		scrOfX = window.pageXOffset;
	} else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
		//DOM compliant
		scrOfY = document.body.scrollTop;
		scrOfX = document.body.scrollLeft;
	} else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
		//IE6 standards compliant mode
		scrOfY = document.documentElement.scrollTop;
		scrOfX = document.documentElement.scrollLeft;
	}
	return [ scrOfX, scrOfY ];
}

function beforeLoad(){
}

function carregaConteudo(){
	if (ajax.readyState == 4) {
			if(ajax.responseText){
				document.getElementById('conteudo').innerHTML = ajax.responseText;		
				var scr = getScrollXY();
				var scrOfX = scr[0];
				var scrOfY = scr[1];		
				var yOffset = scrOfY + 150;
			  	var xOffset = scrOfX + 150;
			  	document.getElementById('conteudo').style.top = yOffset + "px";
			  	document.getElementById('conteudo').style.left = xOffset + "px";
				document.getElementById('conteudo').style.display = "";
				desativaSelects();
			}

	}
}


function carregaComentariosVenda(){
	if (ajax.readyState == 4) {
			if(ajax.responseText){
				document.getElementById('comentarios').innerHTML = ajax.responseText;	
						
			}

	}
}


function abreConteudo(tipo, parametro){
	ajax = ajaxInit();
	if(!ajax){
		alert("Erro no Ajax");
		return false;
	}
	setTimeout("",100);
	if(ajax) {
		beforeLoad();
		if (tipo=='comentariosVenda'){
		ajax.onreadystatechange = carregaComentariosVenda;
		} else { 
		ajax.onreadystatechange = carregaConteudo;
		}
		if(tipo == 'mapa'){
			// new Ajax.Updater("loadedContents", "../googlemaps/mapaEmbutido.php", {parameters: {idParceiro: 249} } );
			ajax.open("GET", "../googlemaps/mapaEmbutido.php?idParceiro="+parametro, true);
		} else if(tipo == "flyer"){
			// new Ajax.Updater("loadedContents", "carregaFlyer.php", {parameters: {img: parametro} } );
			ajax.open("GET", "carregaFlyer.php?img="+parametro, true);
		} else if(tipo == "info"){
			// new Ajax.Updater("loadedContents", "carregaInfo.php", {parameters: {idParceiro: parametro} } );
			ajax.open("GET", "carregaInfo.php?idParceiro="+parametro, true);
		} else if(tipo == "comentariosVenda"){
			// new Ajax.Updater("loadedContents", "carregaInfo.php", {parameters: {idParceiro: parametro} } );
			ajax.open("GET", "carregaComentariosVenda.php?inicio="+parametro, true);
		} else if(tipo == "mapaCamaroteEvento"){
			// new Ajax.Updater("loadedContents", "carregaInfo.php", {parameters: {idParceiro: parametro} } );
			ajax.open("GET", "carregaMapaCamaroteEvento.php?img="+parametro, true);
		} else if(tipo == "mapaCamaroteParceiro"){
			// new Ajax.Updater("loadedContents", "carregaInfo.php", {parameters: {idParceiro: parametro} } );
			ajax.open("GET", "carregaMapaCamaroteParceiro.php?img="+parametro, true);	
		} else {
			// new Ajax.Updater("loadedContents", "carregaVideo.php", {parameters: {codYouTube: parametro} } );
			ajax.open("GET", "carregaVideo.php?codYouTube="+parametro, true);
		}	
		ajax.send(null);
	} else {
		alert("Erro no Ajax");
	}
}

function fechaConteudo(){
	ativaSelects();
	//document.getElementById('loadedContents').innerHTML = "";
	document.getElementById('conteudo').style.display = "none";

}

function getClosure(object, method) {
  return function() {
    return object[method]();
  }
}

function getEventHandlerClosure(object, method) {
	return function(event) {
		event = event || window.event; // Sem isso gera erro no IE 7.
        if (event.clientX) {
			event.x_ = event.clientX;
			event.y_ = event.clientY;
        } else if (event.pageX) {
			event.x_ = event.pageX;
			event.y_ = event.pageY;
        } else {
			//alert("don't know how to get position out of event");
			return;
        }
        return object[method](event);
	}
}

function addMouseMoveHandler(handler) {
  document.body.mouseMoveHandlers[handler] = handler;
}

function removeMouseMoveHandler(handler) {
  delete document.body.mouseMoveHandlers[handler];
}

function invokeMouseMoveHandlers(event) {
  for (var handler in document.body.mouseMoveHandlers) {
    document.body.mouseMoveHandlers[handler](event);
  }
}

var arrastar = true;
var defazeX = 0;
var defazeY = 0;
var alturaTela = 0;
var larguraTela = 0;
var larguraScroll = 0;
var alturaScroll = 0;
function initialize() {
	
	document.body.mouseMoveHandlers = new Object();
	document.body.onmousemove = invokeMouseMoveHandlers;
	
	var tela = findWindowSize();
	larguraTela = tela[0];
	alturaTela = tela[1];
	
	var scroll = getScrollXY();
	larguraScroll = scroll[0];
	alturaScroll = scroll[1];
			
	var div = document.getElementById('conteudo');
	
	div.beginDrag = function(event) {
		arrastar = true;
		var scroll = getScrollXY();
		larguraScroll = scroll[0];
		alturaScroll = scroll[1];
		var v = document.getElementById('videoYouTube');
		if(v){
			// Cancelamento do arrasto sobre o vídeo do YouTube
			var posicao = findPos(v);
			var xInicio = posicao[0] + larguraScroll;
			var xFinal = xInicio + 430;
			var yInicio = posicao[1] + alturaScroll;
			var yFinal = yInicio + 355;
			
			if(event.x_ + larguraScroll * 2 > xInicio && event.x_ + larguraScroll * 2 < xFinal
				&& event.y_ + alturaScroll * 2 > yInicio && event.y_ + alturaScroll * 2 < yFinal){
				arrastar = false;
				return true;
			}
		}
		if(arrastar){
			div.posX = parseInt(div.style.left.substring(0, div.style.left.length - 2));
			div.posY = parseInt(div.style.top.substring(0, div.style.top.length - 2));

			defazeX = event.x_ - div.posX;
			defazeY = event.y_ - div.posY;
			addMouseMoveHandler(this.mouseMoveHandler);
		}
		return false;
	}
	
	div.updateDrag = function(event) {
		if(arrastar){
			
			var posX = event.x_ - defazeX;
			var posY = event.y_ - defazeY;
			var scroll = getScrollXY();
			
			var parar = false;
			if(larguraScroll != scroll[0] || alturaScroll != scroll[1]){
				larguraScroll = scroll[0];
				alturaScroll = scroll[1];
				parar = true
			}

			if( !parar
				&& posX > 30 + larguraScroll
				&& posX < larguraTela + larguraScroll - 120
				&& event.x_ < larguraTela + larguraScroll - 30
				
				&& posY > 30 + alturaScroll
				&& posY < alturaTela + alturaScroll - 60
				&& event.y_ < alturaTela + alturaScroll - 30){
				
					document.getElementById('conteudo').style.left = posX;
					document.getElementById('conteudo').style.top = posY;
			} else {
				parar = true;
			}
			if (parar) {
				
				removeMouseMoveHandler(this.mouseMoveHandler);
				//alert(event.y_ + " || " +alturaTela + " || " + alturaScroll)
				return false;
			}
			
		}
	}
	
	div.endDrag = function(event) {
		removeMouseMoveHandler(this.mouseMoveHandler);
		return false;
	}
	
	div.onmousedown = getEventHandlerClosure(div, "beginDrag");
	div.mouseMoveHandler = getEventHandlerClosure(div, "updateDrag");
	div.onmouseup = getEventHandlerClosure(div, "endDrag");

}