
// rotina que abre a caixa
function abreCaixa(programa,parametros,w,h){
	var largura,altura,topo,esquerda,larguraTela,alturaTela;

	largura=parseInt(w);
	altura=parseInt(h);

	parametros['paramParaEvitarCache090827'] = Math.floor(Math.random() * 1000);

	var body = window.document.getElementsByTagName('body')[0];

	// desabilita todos os selects
	//var selectDoFormulario = window.document.getElementsByTagName('select');

	//var qtdSeltoClear=selectDoFormulario.length;
	//if (qtdSeltoClear > 0)
	if (window.document.getElementsByTagName('select').length > 0){
		var nn6=document.getElementById&&!document.all;

		for (var i in window.document.getElementsByTagName('select')){
		//for (var p=0; p < qtdSeltoClear; p++)
			//var noObjeto = .item(i)
			//if(window.document.getElementsByTagName('select')[i].style)
			if(nn6 && window.document.getElementsByTagName('select').item(i)){
                if(window.document.getElementsByTagName('select').item(i).style){
					window.document.getElementsByTagName('select').item(i).style.display = 'none';
                }
			} else if(window.document.getElementsByTagName('select')[i]) {
				if(window.document.getElementsByTagName('select')[i].style){
					window.document.getElementsByTagName('select')[i].style.display = 'none';
				}
			}
		}
	}

	// cria div cinza do fundo (que desabilita clicar na página)
	var tela = document.createElement("div");

	tela.id = 'telaCinza';
	var xWithScroll,yWithScroll,xWithScrollAux,yWithScrollAux;

//alert("window.innerHeight="+window.innerHeight+"\nwindow.innerWidth="+window.innerWidth+"\nwindow.scrollMaxY="+window.scrollMaxY+"\nwindow.scrollMaxX="+window.scrollMaxX+"\ndocument.body.scrollTop="+document.body.scrollTop+"\ndocument.body.offsetHeight="+document.body.offsetHeight+"\ndocument.body.offsetTop="+document.body.offsetTop+"\nwindow.pageXOffset="+window.pageXOffset+"\nwindow.pageYOffset="+window.pageYOffset+"\ndocument.documentElement.clientWidth="+document.documentElement.clientWidth+"\ndocument.documentElement.clientHeight="+document.documentElement.clientHeight+"\nscreen.width="+screen.width+"\nscreen.height"+screen.height+"\nscreen.availWidth="+screen.availWidth+"\nscreen.availHeight="+screen.availHeight+"\ndocument.documentElement.scrollTop="+document.documentElement.scrollTop+"\ndocument.documentElement.scrollLeft="+document.documentElement.scrollLeft);

	if (window.innerHeight && window.scrollMaxY) {// Firefox
		yWithScroll = window.innerHeight + window.scrollMaxY;
		xWithScroll = window.innerWidth + window.scrollMaxX;

		//topo = parseInt(document.body.scrollTop + (window.innerHeight / 2) - (altura / 2));
		topo=document.documentElement.scrollTop+50;
		yWithScrollAux = window.innerHeight + window.scrollMaxY;
		xWithScrollAux = window.innerWidth + window.scrollMaxX;

	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		yWithScroll = document.body.scrollHeight;
		xWithScroll = document.body.scrollWidth;

//		if (document.body.scrollTop > 0) {
//			topo=document.body.scrollTop + 50;
//		} else {
//			topo=document.documentElement.scrollTop+50;
//		}

		yWithScrollAux = document.body.scrollHeight;
		xWithScrollAux = document.body.scrollWidth;
	} else { // works in Explorer 6 Strict, Mozilla (not FF) and Safari
		yWithScroll = document.body.offsetHeight;
		xWithScroll = document.body.offsetWidth;

		topo=document.documentElement.scrollTop+50;
		yWithScrollAux = document.body.offsetHeight;
		xWithScrollAux = document.body.offsetWidth;
	}

	tela.style.width = xWithScroll + 'px';
	tela.style.height = yWithScroll + 'px';

	tela.style.background = '#E6E5E4';
	tela.style.opacity = '0.8';
	tela.style.filter = "alpha(opacity=80)";

	tela.style.position = 'absolute';
	tela.style.top = 0;
	tela.style.left = 0;
	tela.style.zIndex = 100000;
	tela.style.visibility = 'visible';
	body.appendChild(tela);

	// cria div interno
	var caixa = document.createElement("div");
	caixa.id = 'telaShowModal';

	caixa.style.position = 'absolute';
	if (xWithScrollAux <= largura){
		largura=parseInt(xWithScrollAux - 100);
		caixa.style.overflow='auto';
	}
	if (yWithScrollAux <= altura){
		altura=parseInt(yWithScrollAux - 100);
		caixa.style.overflow='auto';
	}

	caixa.style.width = largura;
	caixa.style.height = altura;


//alert("window.innerHeight="+window.innerHeight+"\nwindow.innerWidth="+window.innerWidth+"\nwindow.scrollMaxY="+window.scrollMaxY+"\nwindow.scrollMaxX="+window.scrollMaxX+"\ndocument.body.scrollTop="+document.body.scrollTop+"\ndocument.body.offsetHeight="+document.body.offsetHeight+"\ndocument.body.offsetTop="+document.body.offsetTop+"\nwindow.pageXOffset="+window.pageXOffset+"\nwindow.pageYOffset="+window.pageYOffset+"\ndocument.documentElement.clientWidth="+document.documentElement.clientWidth+"\ndocument.documentElement.clientHeight="+document.documentElement.clientHeight+"\nscreen.width="+screen.width+"\nscreen.height"+screen.height+"\nscreen.availWidth="+screen.availWidth+"\nscreen.availHeight="+screen.availHeight+"\ndocument.documentElement.scrollTop="+document.documentElement.scrollTop+"\ndocument.documentElement.scrollLeft="+document.documentElement.scrollLeft);


	if (window.innerHeight && window.scrollMaxY) {// Firefox
		if (!document.body.scrollTop || (document.body.scrollTop != window.pageYOffset)){
			topo = parseInt(document.body.scrollTop + ((window.innerHeight / 2) - (altura / 2)) + window.pageYOffset);
		} else {
			topo = parseInt(document.body.scrollTop + (window.innerHeight / 2) - (altura / 2));
		}

		xWithScroll = window.innerWidth + window.scrollMaxX;

	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		topo=document.body.scrollTop + 50;
		xWithScroll = document.body.scrollWidth;
	} else { // works in Explorer 6 Strict, Mozilla (not FF) and Safari
		topo=document.documentElement.scrollTop+50;
		xWithScroll = document.body.offsetWidth;
	}

//ccvv
//var str;
//str = "yWithScrollAux="+yWithScrollAux+" xWithScrollAux="+xWithScrollAux;

	//dif = xWithScrollAux - 300;
	dif = xWithScrollAux - largura;
	if (dif > 0){
		esquerda=dif/2;
		esquerda=Math.floor(esquerda);
	} else {
		esquerda=0;
	}

//str += "\nleft="+esquerda+" top="+topo;
//str += "\nlargura="+largura+" altura="+altura;
//alert(str);

	caixa.style.left=esquerda + 'px';
	caixa.style.top=topo + 'px';

	caixa.style.visibility='visible';
	caixa.style.zIndex=100002;

	body.appendChild(caixa);
	
	//alert('ajax');
	
	// Rotinas em arquivos JS distinto ./shop/js/ajax.js - É necessário que a chamada do arquivo seja colocada no programa que irá usar essas rotinas
	var http = criaHTTPObject();
	chamaProcedimentoRemoto(http,programa,parametros,'montaCaixa','');
}

function montaCaixa(retorno){
	if (retorno){
		if (document.getElementById('telaShowModal')){
			document.getElementById('telaShowModal').innerHTML = retorno;
		}
	}
}

//Apaga o div que é criado na rotina abreCaixa, porém está rotina é chamada de uma outra tela
function apagaDiv()
{
	var body = document.getElementsByTagName('body')[0];

	// reabilita os selects
	if (document.getElementsByTagName('select')){
		for (var i in window.document.getElementsByTagName('select')){
			if(window.document.getElementsByTagName('select')[i].style) window.document.getElementsByTagName('select')[i].style.display = 'inline';
		}
	}

	body.removeChild(document.getElementById('telaCinza'));
	body.removeChild(document.getElementById('telaShowModal'));
}


// caixa de mensagem personalizada
function showObjeto(obj, config){
	var janelaLargura = $(document).width();
	var janelaAltura = $(document).height();
	var setting = initShowObjeto(obj, config);
		
	$(obj).css({left: setting['leftObj'], 
				top: setting['topObj'],
				width : setting['widthObj'],
				height : setting['heightObj'],
				position: setting['positionObj'],
				zIndex: setting['zIndexObj']});
	
	
	$("body").append('<div id="fundoMask"></div>');
	$("#fundoMask").css({opacity: setting['opacityFundo'],
						position: setting['positionFundo'],
						zIndex: setting['zIndexFundo'],
						top: setting['topFundo'],
						left: setting['leftFundo'],
						width : setting['widthFundo'],
						height : setting['heightFundo'],
						backgroundColor: setting['corFundo']});
	
	$(obj).fadeIn("slow");
	
	if ((setting['widthObj'] < janelaLargura) && (setting['heightObj'] < janelaAltura)){
		if (setting['resize']){
			$(window).bind("resize", function(){
					var posX = ajustaPosicaoX(setting['widthObj']);
					var posY = ajustaPosicaoY(setting['heightObj']);
					$(obj).css({left: posX, top: posY});
					$("#fundoMask").css({width: $(document).width(), 
										height: $(document).height()});
			} );
		}
		
		if (setting['scroll']){
			$(window).bind("scroll", function(){
					var posX = ajustaPosicaoX(setting['widthObj']);
					var posY = ajustaPosicaoY(setting['heightObj']);
					$(obj).css({left: posX, top: posY});
			} );
		}
	} else {
		if (setting['widthObj'] >= janelaLargura){
			$(obj).css("left","0");
		}
		if (setting['heightObj'] >= janelaAltura){
			$(obj).css("top","0");
		}
	}
	
	$("#" + setting['idObjFechar']).live("click" , function(){
		$(obj).fadeOut();
		$(window).unbind("resize");
		$(window).unbind("scroll");
		$(this).die("click");
		$("#fundoMask").remove();
	} );
}

// passando a largura de um objeto, a função retorna a posição para centralizar na tela
function ajustaPosicaoX (largura){
	var winX = $(window).width();
	if (winX < largura){
		return 0;
	} else {
		return ((parseInt(winX - largura) /2) + $(window).scrollLeft());
	}
}

// passando a altura de um objeto, a função retorna a posição de um quarto na tela
function ajustaPosicaoY (altura){
	var winY = $(window).height();
	if (winY < altura){
		return 0;
	} else {
		return ((parseInt(winY - altura) / 4) + $(window).scrollTop());
	}
}

// retorna a largura de um objeto
function pegaLargura(obj){
	var largura;
	if($(obj).css("width")){
		largura = $(obj).css("width").replace("px","");
	} else if ($(obj).attr("width")){
		largura = $(obj).attr("width").replace("px","");
	} else {
		largura = 0;
	}
	return largura;
}

// retorna a altura de um objeto
function pegaAltura(obj){
	var altura;
	if ($(obj).attr("height")){
		altura = $(obj).attr("height").replace("px","");
	} else if ($(obj).css("height")){
		altura = $(obj).css("height").replace("px","");
	} else {
		altura = 0;
	}
	return altura;
}

// inicializar os parametros da função showObjeto()
function initShowObjeto(obj, config){
	var objAltura = pegaAltura($(obj));
	var objLargura = pegaLargura($(obj));
	var objPosX = ajustaPosicaoX(objLargura);
	var objPosY = ajustaPosicaoY(objAltura);
	
	// padrão do plano de fundo
	var configPadrao = {};
	var retorno = {};
	
	configPadrao['positionFundo'] = "absolute";
	configPadrao['corFundo'] = "white";
	configPadrao['opacityFundo'] = "0.8";
	configPadrao['zIndexFundo'] = "990";
	configPadrao['topFundo'] = "0";
	configPadrao['leftFundo'] = "0";
	configPadrao['widthFundo'] = $(document).width();
	configPadrao['heightFundo'] = $(document).height();
	configPadrao['idObjFechar'] = $(obj).attr("id");
	// padrão do objeto
	configPadrao['positionObj'] = "absolute";
	configPadrao['opacityObj'] = "1";
	configPadrao['zIndexObj'] = "995";
	configPadrao['topObj'] = objPosY;
	configPadrao['leftObj'] = objPosX;
	configPadrao['widthObj'] = objLargura;
	configPadrao['heightObj'] = objAltura;
	// padrão da função
	configPadrao['resize'] = true;
	configPadrao['scroll'] = true;
	
	if (!config['corFundo']){
		config['opacityFundo'] = "0";
	}
	
	$.extend(retorno, configPadrao, config);
	
	return retorno;
}



