// Begin Script
// vinomio control functions
//
// Author :	Jayme Jeffman Filho
// Created :	Apr, 05 2007
// Updated :  Apr, 05 2007
// Comment : Contains vinomio.com.br functions
// httpreq.js e evtbasics.js devem ser carregados antes
//----------------------------------------------------------------------
//     GLOBALS
//----------------------------------------------------------------------
var qString = new String(document.location);
var vmSession = null;
var selImages = new Array();
var psgrImgOver = new Image();
var psgrImgOut = new Image();
var vinhoImgOver = new Image();
var vinhoImgOut = new Image();
var imgVinho = document.images["vinho"];
var rotuloImgOver = new Image();
var rotuloImgOut = new Image();
var imgRotulo = document.images["rotulo"];
var pedidoImgOver = new Image();
var pedidoImgOut = new Image();
var imgPedido = document.images["pedido"];
//----------------------------------------------------------------------
function loadGlobalsVM()
{
	var imges = document.getElementsByTagName('IMG');
	selImages[0] = new Image();
	selImages[0].src = "imagens/selecionar.gif" ;
	selImages[1] = new Image();
	selImages[1].src = "imagens/selecionado.gif" ;
	// prosseguir
	/*
	psgrImgOver.src = "imagens/prosseguirvermelho.gif";
	psgrImgOut.src = "imagens/prosseguirrosa.gif" ;
	// Imagens "Prosseguir"
	for(var i in imges)
	{
		if(imges[i].className == "prosseguir"){
			addEventJJ(imges[i], "mouseover", prosseguirOver, false);
			addEventJJ(imges[i], "mouseout", prosseguirOut, false);
			//addEventJJ(imges[i], "click", prosseguirClick, false);
		}
	}
	*/
	// vinho
	vinhoImgOver.src = "imagens/etapa2on.gif";
	vinhoImgOut.src = "imagens/etapa2off.gif" ;
	imgVinho = document.images["vinho"];
	if(imgVinho && document.URL.indexOf("vinho") < 0){
		addEventJJ(imgVinho, "mouseover", vinhoOver, false);
		addEventJJ(imgVinho, "mouseout", vinhoOut, false);
	}
	// rotulo
	rotuloImgOver.src = "imagens/etapa1on.gif";
	rotuloImgOut.src = "imagens/etapa1off.gif" ;
	imgRotulo = document.images["rotulo"];
	if( imgRotulo && document.URL.indexOf("rotulo") < 0){
		addEventJJ(imgRotulo, "mouseover", rotuloOver, false);
		addEventJJ(imgRotulo, "mouseout", rotuloOut, false);
	}
	// pedido		
	pedidoImgOver.src = "imagens/etapa3on.gif";
	pedidoImgOut.src = "imagens/etapa3off.gif" ;
	imgPedido = document.images["pedido"];
	if( imgPedido && document.URL.indexOf("pedido") < 0){
		addEventJJ(imgPedido, "mouseover", pedidoOver, false);
		addEventJJ(imgPedido, "mouseout", pedidoOut, false);
	}
}
//----------------------------------------------------------------------
/*
function prosseguirOver(evt)
{
	//alert("over");
	var imgObj = null;
	if(evt.target) imgObj = evt.target;
	else if(evt.srcElement) imgObj = evt.srcElement;
	if( imgObj ) imgObj.src = psgrImgOver.src ;
}
//-----------------------------------------------
function prosseguirClick(evt)
{
	// rótulo foi selecionado, redirecionar usuário
	if(user_choices[0] == "")
	{ // Não há vinho escolhido redirecionar para vinhos
		document.location = "vinho.html?option=0&session="+vmSession;
	}
	else if(user_choices[1] == "") 
	{
		document.location = "rotulo.html?session="+vmSession;
	}
	else
	{
	  document.location = "pedido.html?session="+vmSession;
	}
}
//-----------------------------------------------
function prosseguirOut(evt)
{
	//alert("out");
	var imgObj = null;
	if(evt.target) imgObj = evt.target;
	else if(evt.srcElement) imgObj = evt.srcElement;
	if( imgObj ) imgObj.src = psgrImgOut.src ;
}
*/
//-----------------------------------------------
function pedidoOver(evt)
{
	//alert("over");
	var imgObj = null;
	if(evt.target) imgObj = evt.target;
	else if(evt.srcElement) imgObj = evt.srcElement;
	if( imgObj ) imgObj.src = pedidoImgOver.src ;
}
//-----------------------------------------------
function pedidoOut(evt)
{
//	alert("out");
	var imgObj = null;
	if(evt.target) imgObj = evt.target;
	else if(evt.srcElement) imgObj = evt.srcElement;
	if( imgObj ) imgObj.src = pedidoImgOut.src ;
}
//-----------------------------------------------
function vinhoOver(evt)
{
//	alert("over");
	var imgObj = null;
	if(evt.target) imgObj = evt.target;
	else if(evt.srcElement) imgObj = evt.srcElement;
	if( imgObj ) imgObj.src = vinhoImgOver.src ;
}
//-----------------------------------------------
function vinhoOut(evt)
{
//	alert("out");
	var imgObj = null;
	if(evt.target) imgObj = evt.target;
	else if(evt.srcElement) imgObj = evt.srcElement;
	if( imgObj ) imgObj.src = vinhoImgOut.src ;
}
//-----------------------------------------------
function rotuloOver(evt)
{
//	alert("over");
	var imgObj = null;
	if(evt.target) imgObj = evt.target;
	else if(evt.srcElement) imgObj = evt.srcElement;
	if( imgObj ) imgObj.src = rotuloImgOver.src ;
}
//-----------------------------------------------
function rotuloOut(evt)
{
//	alert("out");
	var imgObj = null;
	if(evt.target) imgObj = evt.target;
	else if(evt.srcElement) imgObj = evt.srcElement;
	if( imgObj ) imgObj.src = rotuloImgOut.src ;
}
//-----------------------------------------------
// global choices array
var user_choices = new Array();
var userChicesRetrieved = false;
var choiceFuncDest = null;
//-----------------------------------------------
function choiceHandle()
{
	var resposta = new String();
	var retorno = false;
	 
	if(http.httpreq.readyState == 4){
		switch(http.httpreq.status)
		{ 
			case 200 :
			case 201 :
			case 202 :
  		case 203 :
	  	case 205 :
	  	case 304 :
	  		resposta = http.httpreq.responseText;
	  		//alert( resposta );
	  		//print($row["wine_brand"].",".$row["label_name"].",".$row["label_file"]);
	  		user_choices = resposta.split(",");	
	  		userChicesRetrieved = true;
	  		if( choiceFuncDest != null && choiceFuncDest != "" )
	  			setTimeout(choiceFuncDest ,2000);
//	  	showArrayElements(user_choices);
		}	
	}
	allowNewCall = true;
	return retorno;
}
//-----------------------------------------------
function getUserChoices(vmSession, funcDest)
{
	if(vmSession == null || vmSession == "")
	{
		alert("Sua sessão é inválida ou expirou.\n\nVocê deverá refazer suas escolhas anteriores!");
	}
	//alert("entrei "+ vmSession);
	if( funcDest != null && funcDest != "" )
	 choiceFuncDest = funcDest;
	userChicesRetrieved = false;
	try{ // funciona, mas não no dominio local
		// gravar escolha no bd
		http = new JJHttpRequest();
		if(http)
		{
			http.setURL("scripts/php/getchoice.php");
 			http.setQueryString("sesid="+vmSession);
			http.setCharset("charset=iso-8859-1");
			http.setReadyHandle(choiceHandle);
		
			http.send();
		}
		else alert("AJAX object was not created!");
	}
	catch(e){ alert(e.message);}
}
//-----------------------------------------------
function addSessionToLinks(sId) {
	var argv = addSessionToLinks.arguments;
  var argc = argv.length ;
  var stringHref = null;
  var posSession = null;
  if (argc==1){ alert("Nenhuma classe passada!"); return false ; }
  var links = document.getElementsByTagName('A');
	for(var i in links)
	{
		for( var j = 1; j < argc; j++ )
		{
			if(links[i].className != null && links[i].href != null && links[i].className == argv[j]){
				if( links[i].href.match(new RegExp("javascript\\b")) ) continue;
				if( links[i].href.match(new RegExp("blogspot\\b")) ) continue;

				stringHref = new String(links[i].href); 
				//alert(stringHref);
				if(links[i].href.indexOf("?") > -1 )
				{
					//alert(stringHref+" tem '?'");
					posSession = stringHref.indexOf("session");
					if( posSession > -1 )
					{
						if(stringHref.indexOf("&session") > -1) posSession = stringHref.indexOf("&session");
						stringHref = stringHref.substring(0, posSession-1);
					}
					//alert(stringHref);
					if(stringHref.match(new RegExp("vinho\\b"))) 
						stringHref = stringHref + "&session="+sId;
					else
						stringHref = stringHref + "?session="+sId;
					
					links[i].href = stringHref;
				}
				else{
					if(links[i].href.match(new RegExp("vinho\\b")))
						links[i].href = links[i].href + "?option=0&session="+sId;
					else
						links[i].href = links[i].href + "?session="+sId;
				}
			}
		}
	}
	return true;
}
//-----------------------------------------------
var loaded = false;
function pageResize()
{
	var argv = pageResize.arguments;
  var argc = argv.length ;
  var brw  = new browser();
  /*
  var intLeft = null;
  var srcLen = 0;
  var  srcStyle = "";
  */
  if (argc==0){ alert("Nenhum identificador passado!"); return false ; }

	var leftMargin = ( document.body.clientWidth - 760 ) /2 ;
	if( leftMargin < 0 ) leftMargin = 0;
	//alert(leftMargin);
  var divObj = null;
  if( brw.ie && !loaded ) return;
  
	// acertar posicoes
	for( var j = 0; j < argc; j++ )
	{
		if(!document.getElementById(argv[j])) continue;
	 	divObj = document.getElementById(argv[j]).style;
  	//alert ();
  	/**/
  	if( argv[j] == 'jah' || argv[j] == 'confirm')
  	{
	 	 	srcStyle = getStyleAttribute(document.getElementById(argv[j]), "left") ;
  		srcLen = srcStyle.length ;
  		intLeft = parseInt(srcStyle.substring(0, srcLen - 2));
  		//alert (intLeft);
			divObj.left = (intLeft + leftMargin) + 'px'; 
			//alert(divObj.left) ;
		}
		else
   	/**/
			divObj.left = (leftMargin) + 'px'; 
	}
}
//-----------------------------------------------
function fixIEMenu()
{
	/* the block bellow is needed just for IE */
	var sfEls = document.getElementById("menubar").getElementsByTagName("LI");
	for (var i=0; i<sfEls.length; i++) {
		sfEls[i].onmouseover=function() {
			this.className+=" over";
		}
		sfEls[i].onmouseout=function() {
			this.className=this.className.replace(new RegExp(" over\\b"), "");
		}
	}
	/* End of IE Block */
}
//-----------------------------------------------
function getStyleAttribute(oElm, strCssRule){
	var strValue = "";
	if(document.defaultView && document.defaultView.getComputedStyle){
		strValue = document.defaultView.getComputedStyle(oElm, "").getPropertyValue(strCssRule);
	}
	else if(oElm.currentStyle){
		strCssRule = strCssRule.replace(/-(w)/g, function (strMatch, p1){
			return p1.toUpperCase();
		});
		strValue = oElm.currentStyle[strCssRule];
	}
	return strValue;
}
//-----------------------------------------------
function timeWait(millis)
{
	var date = new Date();
	var curDate = null;

	do { curDate = new Date(); }while(curDate-date < millis);
} 
//-----------------------------------------------
function sessionHandle()
{
	var retorno = false;
	var sessionIsNull = (vmSession == null);
	//alert("entrei");
	//  		alert(htmlBlock);
	if(http.httpreq.readyState == 4){
		switch(http.httpreq.status)
		{ 
			case 200 :
			case 201 :
			case 202 :
  		case 203 :
	  	case 205 :
	  	case 304 :
	  		//alert(http.httpreq.responseText);
	  		var nError = 0;
	  		try
	  		{
	  			if(! isNaN( http.httpreq.responseText ))
	  				nError = parseInt(http.httpreq.responseText); 
	  		}
	  		catch(e){alert(e);}
	  		if( nError > 0 )
	  		{
	  			alert("Por favor recarregue a página.\n\nNão foi possível estabelecer uma sessão válida!");
	  			//alert(http.httpreq.responseText + "\n Erro = "+ nError);
	  			return true;
	  		}
	  		vmSession = http.httpreq.responseText; //alert(vmSession);
				if(sessionIsNull) addSessionToLinks(vmSession,'mbar','iniciar', 'footer');
	  		retorno = true ;
	  		//alert(vmSession);
	  		break;
	  	default:
	  		alert("Ocorreu um erro na chamada Ajax " + http.httpreq.status);
		}	
	}
	//alert(retorno);
	return retorno;
}
//-----------------------------------------------
function setSession(vmSession)
{
	//alert(vmSession);
	if(vmSession == null)
	{	
		//alert("Sessão nula");
 		http = new JJHttpRequest();
		//alert(http);
		if(http)
		{
			http.setURL("scripts/php/set_session.php");
  		http.setReadyHandle(sessionHandle);
			http.setCharset("charset=iso-8859-1");
			http.setHeader("Content-type: text/plain");
		
			http.send();
			//timeWait(1000);
		}
	}
}
//-----------------------------------------------
function formatMoney(currency,value)
{
	var sValue = new String(value);
	var posComma = sValue.indexOf(".");
	if(posComma < 0 )
		sValue += ",00";
	else if(posComma == (sValue.length - 2))
		sValue += "0";
	sValue = currency + " " + sValue ;
	return sValue;
}
//-----------------------------------------------
function showArrayElements(anArray)
{
	for(var i in anArray)
		alert("val[ "+i+" ] = "+anArray[i]);
}
//-----------------------------------------------
//Browser Identification and Properties
function browser() { //Objeto com as características do Navegador
	var navAgent = navigator.userAgent.toLowerCase();
	this.major = parseInt( navigator.appVersion );
	this.minor = parseFloat(navigator.appVersion);
	this.ns  = ((navAgent.indexOf('mozilla')!=-1) &&
	 ((navAgent.indexOf('spoofer')==-1) && 
	 (navAgent.indexOf('compatible') == -1)));
	this.ie = ( navAgent.indexOf( 'msie' ) != -1 ) ;
	this.op3 = ( navAgent.indexOf( 'opera' ) != -1 ) ;
	this.ffox = ( navAgent.indexOf( 'firefox' ) != -1 ) ;
	// New browser version
	this.dom = document.getElementById?1:0 ;
	return this;
}
//-----------------------------------------------
function setCurrentHeader( cabNormal, cabFestas )
{
	// Codigo sem trocas de cabeçalho
	cabNormal.style.display = "block";
	return;
	// codigo para trocar cabeçalho por data
	var today = new Date();
	var dtIni = new Date(today.getFullYear(),10,10); // 10/11/ do ano corrente
	var dtFim = new Date(today.getFullYear()+1,0,10); // 10/01 do ano seguinte
	//alert(today);
	//alert( dtIni );
	//alert( dtFim );
	
	if( (today.getFullYear()*10000 +(today.getMonth()+1)*100 + today.getDate()) > (dtIni.getFullYear()*10000 +(dtIni.getMonth()+1)*100 + dtIni.getDate()) &&
	    (today.getFullYear()*10000 +(today.getMonth()+1)*100 + today.getDate()) < (dtFim.getFullYear()*10000 +(dtFim.getMonth()+1)*100 + dtFim.getDate()) 
	  )
	{
		//alert("é natal ...?");
		cabNormal.style.display = "none";
		cabFestas.style.display = "block";
	}
	else
	{
		cabNormal.style.display = "block";
		cabFestas.style.display = "none";
	}
}
//-----------------------------------------------

