var enlaceOn = "false";

var dir = "";

var identificadoEnElClub = false;

var expiradoAlIdentificar = false;

var codiusu = "";
var idioma = "";
var sesId = "";
var codRecinte = "";
var codTipusEvent = "";
var jsessionid = ""
var refSTC = "";
var isTourOperador = "";
var enrutador = "";
var url = "";

/*JT (7/5/2009) SCX-2009-133815-37505 fase 3 integracion con gestor de contenidos : Afegir nous parametres a la crida*/
var urlSortidaMS = "";
var urlRecinto = "";
var urlEvento = "";
var urlSesion = "";
/*FI JT (7/5/2009) SCX-2009-133815-37505 fase 3 integracion con gestor de contenidos : Afegir nous parametres a la crida*/

function consultarSesionRestringida(pCodiusu, pIdioma, pSesId, pCodRecinte, pCodTipusEvent, pJsessionid, pRefSTC, pIsTourOperador, pEnrutador,pUrlSortidaMS,pUrlRecinto,pUrlEvento,pUrlSesion)
{
	if(enlaceOn == "false")
	{
		enlaceOn = "true";
		var altura = document.body.scrollHeight;
		
		// Informamos las variables globales con los parámetros de entrada para poder utilizarlos durante todas las llamadas
		codiusu = pCodiusu;
		idioma = pIdioma;
		sesId = pSesId;
		codRecinte = pCodRecinte;
		codTipusEvent = pCodTipusEvent;
		jsessionid = pJsessionid;
		refSTC = pRefSTC;
		isTourOperador = pIsTourOperador;
		enrutador = pEnrutador;
		/*JT (7/5/2009) SCX-2009-133815-37505 fase 3 integracion con gestor de contenidos : Afegir nous parametres a la crida*/
		urlSortidaMS = pUrlSortidaMS;
		urlRecinto = pUrlRecinto;
		urlEvento = pUrlEvento;
		urlSesion = pUrlSesion;
		/*FI JT (7/5/2009) SCX-2009-133815-37505 fase 3 integracion con gestor de contenidos : Afegir nous parametres a la crida*/
		
		
		// Obtenemos la url
		//url = document.location.toString();
		// Para probar:
		if (document.getElementById('urlFormPrueba') != null && document.getElementById('urlFormPrueba').value != null && document.getElementById('urlFormPrueba').value != "")
			url = document.getElementById('urlFormPrueba').value;
		else
			url = document.location.toString();
		
		if (jsessionid != null && jsessionid != "")
			sessionInit = jsessionid;
			
		// cambiamos el puntero del mouse mientras ejecutamos el negocio
		crearCapaTransparente();
		
		llamadaAjax(new Array("IdentificacionVentaRestringida.iniciarVentaNuevaNavegacion", idioma, codTipusEvent, codiusu, codRecinte, sesId, refSTC, isTourOperador, enrutador, urlSortidaMS,urlRecinto, urlEvento, urlSesion, "atiendeRespuestaInicio"));
	}
}

function atiendeRespuestaInicio(respuesta)
{	
	if (respuesta.jsessionid != null)
	{
		// Obtenemos el jsessionid
		sessionInit = respuesta.jsessionid;
		jsessionid = respuesta.jsessionid;
	}

	// Comprobamos el blindaje
	if (respuesta.blindaje != null && respuesta.blindaje == "true")
	{
		// restauramos el puntero del mouse
		quitarCapa();
		
		insertarCodigoCapas(respuesta);
		
		abrirGlobo();
		tamCapa = document.getElementById("globo480").clientHeight;
		positionFixed();
	}
	// Si tenemos un jsession seguimos con el proceso para entrar a la venta
	else if (respuesta.contenido == "OK")
	{
		// Guardamos la variable identificadoEnElClub para utilizarla en la siguiente llamada
		identificadoEnElClub = respuesta.identificadoEnElClub;
		
		llamadaAjax(new Array("IdentificacionVentaRestringida.consultaFiltroNPC", "", codTipusEvent, codRecinte, "atiendeRespuestaFiltro"));
	}
	else if (respuesta.contenido == "ERROR") // error controlado
	{
		tratarErrorRespuestaAjax(respuesta);
	}
	else // respuesta no esperada
	{
		tratarErrorRespuestaAjax("ERROR");
	}
}

function atiendeRespuestaFiltro(respuesta)
{
	// Montamos la url
	dir = montarUrl(url, jsessionid, idioma, codiusu, sesId);
		
	if (respuesta.contenido == "true") // estamos en el NPC
	{
		llamadaAjax(new Array("IdentificacionVentaRestringida.esSesionRestringida", sesId, "", codTipusEvent, codRecinte, identificadoEnElClub, "atiendeRespuestaRestringidaAjax"));
	}
	else if (respuesta.contenido == "false") // no estamos en el NPC, vamos a la venta
	{
		irAVenta();
	}
	else if (respuesta.contenido == "tourOperador") // estamos en TourOperador, vamos a la venta con un 'codOperacio' específico
	{
		// en caso de TourOperadores no mostramos capa de identificación, llevaremos a una nueva pantalla (previamente calcularemos el negocio en el hSrvVenda)
		dir = dir + "&codOperacio=identificacioTourOperador";

		irAVenta();
	}
	else if (respuesta.contenido == "ERROR") // error controlado
	{
		tratarErrorRespuestaAjax(respuesta);
	}
	else // respuesta no esperada
	{
		tratarErrorRespuestaAjax("ERROR");
	}
}

function atiendeRespuestaRestringidaAjax(respuesta)
{
	if (respuesta.contenido.length>0 && respuesta.contenido != "ERROR") // abrimos capa de identificación
	{
		if (!expiradoAlIdentificar)
		{
			// restauramos el puntero del mouse
			quitarCapa();
			
			insertarCodigoCapas(respuesta);
			
			abrirGlobo();
			document.getElementById("contenidoCapa").innerHTML = respuesta.contenido;
			tamCapa = document.getElementById("globo480").clientHeight;
			positionFixed();
			
			/* RS - 11/02/2009 - Nou format prevenda*/
			if(respuesta.isLFP != 'undefined' && respuesta.isLFP && respuesta.colsIdent != 'undefined')
			{
				mostrarDescripcio("isLFP", respuesta.colsIdent, respuesta.urlEscutLFP);
				if(respuesta.colsIdent == "1"){
					obrirItemIndividual(respuesta.club);
				}
			}
			else if(respuesta.isLiceu != 'undefined' && respuesta.isLiceu && respuesta.colsIdent != 'undefined')
			{
				mostrarDescripcio("isLiceu", respuesta.colsIdent,respuesta.urlImageLiceu );
				if(respuesta.colsIdent == "1"){
					obrirItemIndividual("Liceu");
				}
			}
			else if(respuesta.colsIdent != 'undefined')
			{
				mostrarDescripcio("defecte", respuesta.colsIdent, "");
				if(respuesta.colsIdent == "1"){
					obrirItemIndividual("Altres");
				}
			}
			/* RS - 11/02/2009 - Nou format prevenda*/
		}
		else
		{
			activo = "false";
			
			if (document.getElementById("continua") != null)
				document.getElementById("continua").click();
		}
	}
	else if (respuesta.contenido == "") // vamos a la venta
	{
		irAVenta();
	}
	else if(respuesta.contenido == "ERROR") // error controlado
	{
		tratarErrorRespuestaAjax(respuesta);
	}
	else // respuesta no esperada
	{
		tratarErrorRespuestaAjax("ERROR");
	}
}

function tratarErrorRespuestaAjax(respuesta)
{
	// JJ - 11/06/09 - Creamos un nuevo error para las expiraciones de las ventas restringidas -->
	//if (respuesta.tipoError == "SESSION_EXPIRED")
	if (respuesta.tipoError == "SESSION_EXPIRED_IDENTIFICACION")
	// <-- JJ - 11/06/09 - Creamos un nuevo error para las expiraciones de las ventas restringidas
	{
		// El único caso en que puede expirar la sesión es en una venta restringida, si el usuario tarda
		// más de 5 min en introducir los datos de identificación. En este caso lo indicamos en la variable 
		// 'expiradoAlIdentificar', generamos una nueva sesión y entramos a la compra
		
		expiradoAlIdentificar = true;
		
		// JJ - 21/05/09 - SCX-2009-133815-37505 fase 3 integracion con gestor de contenidos : Afegir nous parametres a la crida -->
		//llamadaAjax(new Array("IdentificacionVentaRestringida.iniciarVentaNuevaNavegacion", idioma, codTipusEvent, codiusu, codRecinte, sesId, refSTC, isTourOperador, enrutador, "atiendeRespuestaInicio"));
		llamadaAjax(new Array("IdentificacionVentaRestringida.iniciarVentaNuevaNavegacion", idioma, codTipusEvent, codiusu, codRecinte, sesId, refSTC, isTourOperador, enrutador, urlSortidaMS, urlRecinto, urlEvento, urlSesion, "atiendeRespuestaInicio"));
		// <-- JJ - 21/05/09 - SCX-2009-133815-37505 fase 3 integracion con gestor de contenidos : Afegir nous parametres a la crida
	}
	else // respuesta.tipoError == "ERROR" || "ERROR"
	{
		// JJ - 26/05/09 - Incidencia: pasamos el idioma en la request -->
		//llamadaAjax(new Array("IdentificacionVentaRestringida.montarCapaError", "atiendeRespuestaMontarCapaError"));
		llamadaAjax(new Array("IdentificacionVentaRestringida.montarCapaError", idioma, "atiendeRespuestaMontarCapaError"));
		// <-- JJ - 26/05/09 - Incidencia: pasamos el idioma en la request
	}
}

function atiendeRespuestaMontarCapaError (respuesta)
{
	// restauramos el puntero del mouse
	quitarCapa();

	insertarCodigoCapas(respuesta);
	
	abrirGlobo();
	tamCapa = document.getElementById("globo480").clientHeight;
	positionFixed();
}

function irAVenta () 
{
	if (document.getElementById("vinculoVentaNPC").click) {
		document.getElementById("vinculoVentaNPC").href=dir;
		document.getElementById("vinculoVentaNPC").click();
	} else {
		window.location.href = dir;
	}
}

function montarUrl(pUrl, pJsessionid, pIdioma, pCodiusu, pSesId)
{
	var myURL = "";
	pUrl = pUrl.replace(/nav/, "nws");
	var pos1 = pUrl.indexOf('/nws');
	
	// JJ - 07/10/09 - Incidencia: no se monta la url correctamente en algunos casos -->
	var posHtml = pUrl.indexOf('?');
	if (posHtml>-1)
	{
		myURL = pUrl.substring(pos1, posHtml+1);
	}
	else
	{
		myURL = pUrl.substring(pos1);
	}
	
	var pos2 = myURL.lastIndexOf('/');
	myURL = myURL.substring(0, pos2+1);
	// <-- JJ - 07/10/09 - Incidencia: no se monta la url correctamente en algunos casos
	
	myURL = myURL + 'SeleccionEntradas;jsessionid=' + pJsessionid + '?sesId=' + pSesId + '&codSTK=' + pIdioma + '!' + pCodiusu;

    // RS - Correcció IOP 20090617: Es monta la url absoluta i amb el protocol a https
	urlOrige = document.location.href;
	partes = urlOrige.split('/');

	serverPort = partes[2].split(':');
	server = serverPort[0];
	
	//MV - Correcció IOP 20090617: Se fuerza el acceso siempre www.servicaixa.com porque desde www.servicaixa.es tenemos problemas con los certificados
	//rfh - 6/7/2009 - cambio a protocolo seguro del dominio ->
	if (server.indexOf(".servicaixa")>-1 || server.indexOf(".serviticket")>-1)
		myURL = "https://www.servicaixa.com" + myURL;
	else
		myURL = "https://" + server  + myURL;
	//<- rfh - 6/7/2009 - cambio a protocolo seguro del dominio 
		
	return myURL;	
}

// Funcion para crear una capa transparente para evitar que el usuario pinche sobre cualquier enlace	
function crearCapaTransparente() {
  var capa=document.getElementById("capaTransparente");
  if (capa == null){ 
	  capa = document.createElement("div");
	  capa.setAttribute("id", "capaTransparente");
	  capa.style.background = "#F7F7F7";
	  capa.style.position = "absolute";
	  capa.style.width = "100%";
	  capa.style.height = document.body.scrollHeight + "px";
	  capa.style.top = 0;
	  capa.style.left = 0;
	  capa.style.zIndex = 1;
	  capa.style.filter = "alpha(opacity=0)";
	  capa.style.opacity = 0;  
	  capa.style.cursor="wait";
	  document.getElementsByTagName("BODY")[0].appendChild(capa);
	  capa.style.visibility = 'visible';
  }else{  	  
      capa.style.cursor="wait";
  	  capa.style.visibility = 'visible';
  }
}

// Funcion para quitar la capa transparente
function quitarCapa() {
    var capa = document.getElementById("capaTransparente");    
    capa.style.visibility = 'hidden';
    capa.style.cursor="default";         
}

// Funcion para insertar el html, css y js necesario para mostrar las capas
function insertarCodigoCapas(respuesta)
{
	// Añadimos el código js
	var head = document.getElementsByTagName('head')[0];
	var script = document.createElement("script");
	script.text = respuesta.codigoJs;
	head.appendChild(script);
	
	// Añadimos el código css
	var css = document.createElement("style");
	css.type = "text/css";
	if (css.styleSheet) {
		css.styleSheet.cssText = respuesta.codigoCss;
	} else {
		css.appendChild(document.createTextNode(respuesta.codigoCss));
	}
	head.appendChild(css);
	
	// Añadimos el código html
	document.getElementById("capaInicioVenta").innerHTML = respuesta.codigoHtml;
}