			// AUTOR: VASS
			// FECHA CREACIÓN: 11/05/2010
			// FECHA ÚLTIMA ACTUALIZACIÓN: 06/09/2011
			// DESCRIPCION: Funciones JavaScript utilizadas para la gestión de cookies y película Flash, llamadas desde:
			//		* WC_ACOM_ViewSelector
			//		* WC_ACOM_TemplateF
			
			/*
			 * Función llamada desde la película 'FSOWriter_Reader.swf', que: 
			 * 1. elimina la cookie web de cliente, si ésta existía
			 * 2. crea una nueva cookie web de cliente con el valor calculado en la película y 
			 * con una fecha de expiración igual al campo 'vigencia' que contiene
			 * VARIABLES:
			 * * * nombreCookieCliente: definida en WC_ACOM_TemplateF y en WC_ACOM_ViewSelector, según el fichero xml de configuración
			 * * * nombreCookieSesion: definida en WC_ACOM_TemplateF y en WC_ACOM_ViewSelector, según el fichero xml de configuración
			 * * * campanyaDefecto: definida en WC_ACOM_TemplateF y en WC_ACOM_ViewSelector, según el fichero xml de configuración
			 * * * rootFlash: definida en WC_ACOM_TemplateF. Según el fichero xml de configuración
			 * * * nombreFSO: definida en WC_ACOM_TemplateF. Según el fichero xml de configuración
			 */		
		
			//Variables globales para javascript
			var SKU_DEFECTO = '0';
			var REFERER_DEFECTO = 'SANUK';
			var CLIENTE_DEFECTO = 'NO';
			//Variables obtenidas desde la url de ViewSelector
			var refererUrl = getUrlParam('referer');
			var skuUrl = getUrlParam('sku');
			var validity = getUrlParam('validity');
			var campanyaUrl = getUrlParam('campanya');
			//Valores globales que por defecto van a estar en las cookies de sesion y persistente
			var valorPC;
			var valorAB;
			var valorCliente = CLIENTE_DEFECTO;
			var valorReferer = REFERER_DEFECTO;
			var valorCampanya = campanyaDefecto;
			var valorSKU = SKU_DEFECTO;
			var valorRefSesion = REFERER_DEFECTO;
			var valorCamSesion = campanyaDefecto;
			var valorSKUSesion = SKU_DEFECTO;
			//Valores para variables globales utilizadas por WC_ACOM_ViewSelector y WC_ACOM_TemplateF
			var encontradaCookieSesion = false;
			var accesoDesdeCampanya = false;
			var sobrescribir = false;
			var valorFecha;
			var valorVigencia; 
			var fechaActual;
			
				function actualizarCookieCliente(valor)
				{
					var i = valor.indexOf('vigencia') + 'vigencia'.length + 1;
					var j = valor.indexOf('#', i);
					var vector = valor.substring(i,j).split('/');
					// Se incrementa en 99 años la fecha actual
					var anyo = parseInt(vector[2])+99;
					var fechaExpiracion = new Date (anyo, vector[1], vector[0]);
					var fechaExpirada = new Date (anyo, vector[1], vector[0]);
					if (document.cookie.length > 0)
					{
						document.cookie = nombreCookieCliente + '=' +'; domain= ; path=/ ' + ';expires=' + fechaExpirada.toUTCString();
					}
					document.cookie = nombreCookieCliente + '=' + valor +'; domain= ; path=/ ' + ';expires=' + fechaExpiracion.toUTCString();
				}
				
				/*
				 * Función llamada desde la película 'FSOWriter_Reader.swf', que: 
				 * 1. elimina la cookie web de sesion, si ésta existía
				 * 2. crea una nueva cookie web de sesion con el valor calculado en la película
				 * VARIABLES:
				 * * * nombreCookieSesion: definida en WC_ACOM_TemplateF y en WC_ACOM_ViewSelector, según el fichero xml de configuración
				 */
				function actualizarCookieSesion(valor)
				{
					if (document.cookie.length > 0) {
						var fechaExpirada = new Date (1970, 01, 01);
						document.cookie = nombreCookieSesion + '=' +'; domain= ; path=/ ' + ';expires=' + fechaExpirada.toUTCString();
					}
					document.cookie = nombreCookieSesion + '=' + valor +'; path=/ ';
					
					// Redireccionamos a la url calculada en WC_ACOM_PageLauncher, según el valor de la variable
					// 'redireccionar' también definida en WC_ACOM_PageLauncher
					if (redireccionar == 'true')
					{
						//redireccionar = 'false';
						doRedirect(urlRedireccion);
					}
				}
				
						
				function actualizarCookies(valorCliente, valorSesion, cargarSol)
				{
					var i = valorCliente.indexOf('vigencia') + 'vigencia'.length + 1;
					var j = valorCliente.indexOf('#', i);
					var vector = valorCliente.substring(i,j).split('/');
					// Se incrementa en 99 años la fecha actual
					var anyo = parseInt(vector[2])+99;	
					var fechaExpiracion = new Date (anyo, vector[1]-1, vector[0]+1);
							
					if (document.cookie.length > 0) {
						var fechaExpirada = new Date (1970, 01, 01);
						document.cookie = nombreCookieSesion + '=' +'; domain= ; path=/ ' + ';expires=' + fechaExpirada.toUTCString();
						document.cookie = nombreCookieCliente + '=' +'; domain= ; path=/ ' + ';expires=' + fechaExpirada.toUTCString();		
					}
					document.cookie = nombreCookieSesion + '=' + valorSesion +'; path=/ ';
					document.cookie = nombreCookieCliente + '=' + valorCliente +'; path=/ ' + ';expires=' + fechaExpiracion.toUTCString();
					
					// Redireccionamos a la url calculada en WC_ACOM_PageLauncher, según el valor de la variable
					// 'redireccionar' también definida en WC_ACOM_PageLauncher
					if (redireccionar == 'true' && cargarSol)
					{
						redireccionar = 'false';
						doRedirect(urlRedireccion);
					}
				
				}
						
				/*
				 * Función, invocada desde 'WC_ACOM_PageLauncher', que llama a la película 'FSOWriter_Reader.swf',
				 * la cual se encarga de leer o escribir en el FSO.
				 * Todas las variables que le se pasan por parámetro están definidas en 'ViewSelector'.
				 * La película llama a las funciones JavaScript 'ActualizarCookieCliente'
				 * y 'ActualizarCookieSesion', para que se actualicen según el nuevo valor del FSO.
				 * VARIABLES:
				 * * * rootFlash: definida en WC_ACOM_PageLauncher, según el fichero xml de configuración
				 * * * nombreFSO: definida en WC_ACOM_PageLauncher, según el fichero xml de configuración
				 * * * resto de parámetros: definidos en WC_ACOM_ViewSelector
				 */
				function writeFlashMovie()
				{
					var valorCookieCliente = "idPC=" + valorPC + "#AB=" + valorAB + "#cliente=" + valorCliente + "#idReferer=" + valorReferer + "#idCampanya=" + valorCampanya + "#fecha=" + valorFecha + "#vigencia=" + valorVigencia + "#SKU=" + valorSKU + "#idRefererSesion=" + valorRefSesion + "#idCampanyaSesion=" + valorCamSesion + "#SKUSesion=" + valorSKUSesion;
					var valorCookieSesion = "idCampanya=" + valorCamSesion + "#idGrupo=" + valorAB + "." + valorCliente;
					
					actualizarCookies(valorCookieCliente, valorCookieSesion);
						
					var movieName = rootFlash + 'FSOWriter_Reader.swf';
				
					var classID = 'clsid:D27CDB6E-AE6D-11cf-96B8-444553540000';
					var codebase = 'https://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0';    
				 	var movieWidth = '1';
				  	var movieHeight = '1';
					var pluginspage = 'https://www.macromedia.com/go/getflashplayer';
					var typeApplication = 'application/x-shockwave-flash';
											
					var flashMovie = '<object classid="' + classID + '" ';
					flashMovie = flashMovie + 'codebase="' + codebase + '" '; 
					flashMovie = flashMovie + 'width="' + movieWidth + '" height="' + movieHeight + '" >';
					flashMovie = flashMovie + '<param name="movie" value="' + movieName + '" />';
					flashMovie = flashMovie + '<param name="FlashVars" value="valorPC=';
					flashMovie = flashMovie + valorPC;
					flashMovie = flashMovie + '&valorAB=';
					flashMovie = flashMovie + valorAB;
					flashMovie = flashMovie + '&valorCliente=';
					flashMovie = flashMovie + valorCliente;
					flashMovie = flashMovie + '&valorReferer=';
					flashMovie = flashMovie + valorReferer;
					flashMovie = flashMovie + '&valorCampanya=';
					flashMovie = flashMovie + valorCampanya;
					flashMovie = flashMovie + '&valorFecha=';
					flashMovie = flashMovie + valorFecha;
					flashMovie = flashMovie + '&valorVigencia=';
					flashMovie = flashMovie + valorVigencia;
					flashMovie = flashMovie + '&valorSKU=';
					flashMovie = flashMovie + valorSKU;
					flashMovie = flashMovie + '&valorRefSesion=';
					flashMovie = flashMovie + valorRefSesion;
					flashMovie = flashMovie + '&valorCamSesion=';
					flashMovie = flashMovie + valorCamSesion;
					flashMovie = flashMovie + '&valorSKUSesion=';
					flashMovie = flashMovie + valorSKUSesion;
					flashMovie = flashMovie + '&nombreFSO=';
					flashMovie = flashMovie + nombreFSO;
					flashMovie = flashMovie + '&sobrescribir=';
					flashMovie = flashMovie + sobrescribir;    
					flashMovie = flashMovie + '" />';
					flashMovie = flashMovie + '<param name="quality" value="high" />';
					flashMovie = flashMovie + '<embed src="' + movieName + '" FlashVars="valorPC=';
					flashMovie = flashMovie + valorPC;
					flashMovie = flashMovie + '&valorAB=';
					flashMovie = flashMovie + valorAB;
					flashMovie = flashMovie + '&valorCliente=';
					flashMovie = flashMovie + valorCliente;
					flashMovie = flashMovie + '&valorReferer=';
					flashMovie = flashMovie + valorReferer;
					flashMovie = flashMovie + '&valorCampanya=';
					flashMovie = flashMovie + valorCampanya;
					flashMovie = flashMovie + '&valorFecha=';
					flashMovie = flashMovie + valorFecha;
					flashMovie = flashMovie + '&valorVigencia=';
					flashMovie = flashMovie + valorVigencia;
					flashMovie = flashMovie + '&valorSKU=';
					flashMovie = flashMovie + valorSKU;
					flashMovie = flashMovie + '&valorRefSesion=';
					flashMovie = flashMovie + valorRefSesion;
					flashMovie = flashMovie + '&valorCamSesion=';
					flashMovie = flashMovie + valorCamSesion;
					flashMovie = flashMovie + '&valorSKUSesion=';
					flashMovie = flashMovie + valorSKUSesion;
					flashMovie = flashMovie + '&nombreFSO=';
					flashMovie = flashMovie + nombreFSO;
					flashMovie = flashMovie + '&sobrescribir=';
					flashMovie = flashMovie + sobrescribir;
					flashMovie = flashMovie + '" quality="high" pluginspage="' + pluginspage + '" ';
					flashMovie = flashMovie + 'type="' + typeApplication + '" width="' + movieWidth + '" height="' + movieHeight + '" ></embed>';
					flashMovie = flashMovie + '</object>';
					document.getElementById('miFlash').innerHTML=flashMovie;		
				}
						
				/*
				 * Función que llama a la película 'FSOWriter_Reader.swf' con el parámetro "valorCliente".
				 * La película modifica el FSO poniendo 'cliente=SI' y llama a las funciones 'ActualizarCookieCliente'
				 * y 'ActualizarCookieSesion', para que se actualicen según el nuevo valor del FSO.
				 * VARIABLES:
				 * * * rootFlash: definida en WC_ACOM_TemplateF, según el fichero xml de configuración
				 * * * clienteSi: definida en WC_ACOM_TemplateF
				 * * * nombreFSO: definida en WC_ACOM_TemplateF, según el fichero xml de configuración
				 */
				function actualizarClienteFlashMovie()
				{
							
					var movieName = rootFlash + 'FSOWriter_Reader.swf';	
					var valorCookieCliente = "idPC=" + valorPC + "#AB=" + valorAB + "#cliente=" + valorCliente + "#idReferer=" + valorReferer + "#idCampanya=" + valorCampanya + "#fecha=" + valorFecha + "#vigencia=" + valorVigencia + "#SKU=" + valorSKU + "#idRefererSesion=" + valorRefSesion + "#idCampanyaSesion=" + valorCamSesion + "#SKUSesion=" + valorSKUSesion;
					var valorCookieSesion = "idCampanya=" + valorCamSesion + "#idGrupo=" + valorAB + "." + valorCliente;
						
					actualizarCookies(valorCookieCliente, valorCookieSesion);
						    
					var classID = 'clsid:D27CDB6E-AE6D-11cf-96B8-444553540000';
					var codebase = 'https://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0';    
					var movieWidth = '1';
					var movieHeight = '1';
					var pluginspage = 'https://www.macromedia.com/go/getflashplayer';
					var typeApplication = 'application/x-shockwave-flash';
						    
					var flashMovie = '<object classid="' + classID + '" ';
					flashMovie = flashMovie + 'codebase="' + codebase + '" ';    
					flashMovie = flashMovie + 'width="' + movieWidth + '" height="' + movieHeight + '" >';
					flashMovie = flashMovie + '<param name="movie" value="' + movieName + '" />';
					flashMovie = flashMovie + '<param name="FlashVars" value="clienteSi=';
					flashMovie = flashMovie + clienteSi;
					flashMovie = flashMovie + '&valorPC=';
					flashMovie = flashMovie + valorPC;
					flashMovie = flashMovie + '&valorAB=';
					flashMovie = flashMovie + valorAB;
					flashMovie = flashMovie + '&valorCliente=';
					flashMovie = flashMovie + valorCliente;
					flashMovie = flashMovie + '&valorReferer=';
					flashMovie = flashMovie + valorReferer;
					flashMovie = flashMovie + '&valorCampanya=';
					flashMovie = flashMovie + valorCampanya;
					flashMovie = flashMovie + '&valorFecha=';
					flashMovie = flashMovie + valorFecha;
					flashMovie = flashMovie + '&valorVigencia=';
					flashMovie = flashMovie + valorVigencia;
					flashMovie = flashMovie + '&valorSKU=';
					flashMovie = flashMovie + valorSKU;
					flashMovie = flashMovie + '&valorRefSesion=';
					flashMovie = flashMovie + valorRefSesion;
					flashMovie = flashMovie + '&valorCamSesion=';
					flashMovie = flashMovie + valorCamSesion;
					flashMovie = flashMovie + '&valorSKUSesion=';
					flashMovie = flashMovie + valorSKUSesion;
					flashMovie = flashMovie + '&nombreFSO=';
					flashMovie = flashMovie + nombreFSO;
					flashMovie = flashMovie + '&sobrescribir=';
					flashMovie = flashMovie + sobrescribir;
					flashMovie = flashMovie + '" />';
					flashMovie = flashMovie + '<param name="quality" value="high" />';
					flashMovie = flashMovie + '<embed src="' + movieName + '" FlashVars="clienteSi=';
					flashMovie = flashMovie + clienteSi;
					flashMovie = flashMovie + '&valorPC=';
					flashMovie = flashMovie + valorPC;
					flashMovie = flashMovie + '&valorAB=';
					flashMovie = flashMovie + valorAB;
					flashMovie = flashMovie + '&valorCliente=';
					flashMovie = flashMovie + valorCliente;
					flashMovie = flashMovie + '&valorReferer=';
					flashMovie = flashMovie + valorReferer;
					flashMovie = flashMovie + '&valorCampanya=';
					flashMovie = flashMovie + valorCampanya;
					flashMovie = flashMovie + '&valorFecha=';
					flashMovie = flashMovie + valorFecha;
					flashMovie = flashMovie + '&valorVigencia=';
					flashMovie = flashMovie + valorVigencia;
					flashMovie = flashMovie + '&valorSKU=';
					flashMovie = flashMovie + valorSKU;
					flashMovie = flashMovie + '&valorRefSesion=';
					flashMovie = flashMovie + valorRefSesion;
					flashMovie = flashMovie + '&valorCamSesion=';
					flashMovie = flashMovie + valorCamSesion;
					flashMovie = flashMovie + '&valorSKUSesion=';
					flashMovie = flashMovie + valorSKUSesion;
					flashMovie = flashMovie + '&nombreFSO=';
					flashMovie = flashMovie + nombreFSO;
					flashMovie = flashMovie + '&sobrescribir=';
					flashMovie = flashMovie + sobrescribir;
					flashMovie = flashMovie + '&nombreFSO=';
					flashMovie = flashMovie + nombreFSO;        
					flashMovie = flashMovie + '" quality="high" pluginspage="' + pluginspage + '" ';
					flashMovie = flashMovie + 'type="' + typeApplication + '" width="' + movieWidth + '" height="' + movieHeight + '" ></embed>';
					flashMovie = flashMovie + '</object>';	
					document.getElementById('miFlash').innerHTML=flashMovie;		    
				}
			
							
				
				/**
				 * funcion que preparara un formulario para submit por get hacia una url de destino, parsea cada uno de los parametros para 
				 * incluirlos en inputs de tipo hidden y poder generar la url de redireccion correctamente.
				 */
				function doRedirect(urlRedireccion)
				{
					var place = document.getElementsByTagName('body')[0];
					var newform = document.createElement('form');
					newform.setAttribute('action',urlRedireccion);
					newform.setAttribute('method','get');

					// Para poder redireccionar con el method='get', parseamos la url para obtener cada atributo e incluirlo en el formulario como
					// un elemento input hidden
					if (urlRedireccion) {
						urlRedireccion = unescape(urlRedireccion);
						var vectorUrl = urlRedireccion.split('?');
						var vectorMap = new Array(2);
						if (vectorUrl[1]) {
							
							var vectorParametros = vectorUrl[1].split('&');
							for (i=0;i<vectorParametros.length;i++) {
								vectorMap = vectorParametros[i].split('=');
								if (vectorMap[0] && vectorMap[1]) {
									var tagInput = document.createElement('input');
									tagInput.setAttribute('type','hidden');
									tagInput.setAttribute('id',vectorMap[0]);
									tagInput.setAttribute('name',vectorMap[0]);
									tagInput.setAttribute('value',vectorMap[1]);
									newform.appendChild(tagInput);
								}
							}
						}
					}
					place.appendChild(newform);					
					newform.submit();
				}
			
			
				/**
				 * funcion que completa la longitud de un numero hasta llegar a dos cifras
				 */
				function validaLongitud(numero) {
				    if (numero.length==1)
				    	{return ('0'+numero);}
				    else
				        {return numero;}
				}
			
				/*
				 * Función llamada desde la template WC_ACOM_TemplateF y WC_ACOM_ViewSelector. 
				 * 1. Extrae el valor de la cookie de sesión para comprobar sus valores de campaña,
				 * 	  y almacenarlos temporalmente en las variables globales e indicar al objeto flash
				 *    mediante el parametro 'encontradaCookieSesion' si es necesario o no reiniciar la
				 *    parte de sesión de la cookie persistente.
				 * 
				 */
				function leeCookieSesion() 
				{
					var cookies=document.cookie; if(!cookies) return false;
					if (cookies.indexOf(nombreCookieSesion)!= -1) {
						var parClaveValor = new Array(3);
						var valorGrupo = new Array(2);
				   		var cadena = document.cookie.substring(document.cookie.indexOf(nombreCookieSesion + '=') + nombreCookieSesion.length + 1,document.cookie.length);
				   		if(cadena.indexOf(';') != -1) cadena = cadena.substring(0,cadena.indexOf(';'));
				   		cadena = unescape(cadena);
				 		parClaveValor = cadena.split('#');
				 		// Obtenemos los valores de campaña y grupo (par A-B, cliente)
						if (parClaveValor && parClaveValor.length==2) {
								// Recogemos cada campo obtenido de la cookie de sesion, primero parseamos por = y 
								// el resultado, lo parseamos por . para obtener el valor del clave par-valor
								if (parClaveValor[0]) valorCampanya = parClaveValor[0].split('=')[1];
								if (parClaveValor[1]) valorGrupo = parClaveValor[1].split('=');
								if (valorGrupo[1]) valorAB = valorGrupo[1].split('.')[0];
								if (valorGrupo[1]) valorCliente = valorGrupo[1].split('.')[1];
								
								if ((valorCampanya) && (valorAB) && (valorCliente)) {
									if ((!accesoDesdeCampanya) || (accesoDesdeCampanya && (valorCampanya==campanyaUrl))) {
										encontradaCookieSesion = true;
									}
								}
							}
						}
					}
					
					/*
					 * Función llamada desde la template WC_ACOM_TemplateF y WC_ACOM_ViewSelector. 
					 * 1. Extrae el valor de la cookie de cliente para comprobar sus valores de campaña,
					 * 	  comprobar la fecha de vigencia de la cookie y cargar en las variables globales
					 *    los valores correctos de sku, referer y campaña en el caso de que sea necesario 
					 *    invocar al objeto flash para volver a generar la cookie persistente.
					 * 
					 */
					function leeCookieCliente() 
					{ 
						var cookies=document.cookie;
						var fechaInicioCookie;
						var fechaFinCookie;
						var parClaveValor = new Array(11);
						
						if (cookies.indexOf(nombreCookieCliente) != -1) {
								
						 	var cadena = document.cookie.substring(document.cookie.indexOf(nombreCookieCliente + '=') + nombreCookieCliente.length + 1,document.cookie.length);
						  	if(cadena.indexOf(';') != -1) cadena = cadena.substring(0,cadena.indexOf(';'))
						 	cadena = unescape(cadena);
							parClaveValor = cadena.split('#'); 
							if (parClaveValor && parClaveValor.length==11) {
								// Recogemos cada campo obtenido de la cookie de cliente primero parseamos por # y 
								// el resltado, lo parseamos por = para obtener el valor del clave par-valor
								if (parClaveValor[0]) valorPC = parClaveValor[0].split('=')[1];
								if (parClaveValor[1]) valorAB = parClaveValor[1].split('=')[1];
								if (parClaveValor[2]) valorCliente = parClaveValor[2].split('=')[1];
								if (parClaveValor[3]) valorReferer = parClaveValor[3].split('=')[1];
								if (parClaveValor[4]) valorCampanya = parClaveValor[4].split('=')[1];
								if (parClaveValor[5]) fechaInicioCookie = parClaveValor[5].split('=')[1];
								if (parClaveValor[6]) fechaFinCookie = parClaveValor[6].split('=')[1];
								if (parClaveValor[7]) valorSKU = parClaveValor[7].split('=')[1];
								if (parClaveValor[8]) valorRefSesion = parClaveValor[8].split('=')[1];
								if (parClaveValor[9]) valorCamSesion = parClaveValor[9].split('=')[1];
								if (parClaveValor[10]) valorSKUSesion = parClaveValor[10].split('=')[1];
								// Si la cookie persistente está bien formada, verificamos si la fecha ha expirado
								// Si la cookie ha expirado, sera necesario regenerala entera. Si no es asi, solo 
								// se actualizaran los atributos de sesion de la cookie persistente.
								if ((valorPC) && (valorAB) && (valorCliente) && (valorReferer) && (valorCampanya) && (fechaInicioCookie) && (fechaFinCookie) &&
								(valorSKU) && (valorRefSesion) && (valorCamSesion) && (valorSKUSesion)) {
									
									// Compruebo si la cookie persistente ha expirado, comparando la fecha de fin almacenada en la cookie
									// con la fecha actual
									var vectorFechaCookie = fechaFinCookie.split('/');
									var vectorFechaActual = fechaActual.split('/');
									var fechaExpiracion = new Date(vectorFechaCookie[2], vectorFechaCookie[1]-1, vectorFechaCookie[0]);
									var fechaActualComp = new Date(vectorFechaActual[2], vectorFechaActual[1]-1, vectorFechaActual[0]);
									
									// Si la cookie persistente HA EXPIRADO, sobrescribo los valores de la primera campaña y de la actual
									// para que se actualice el FSO y se creen las dos cookies webs con los valores correctos
									if (fechaActualComp > fechaExpiracion) {
										if (accesoDesdeCampanya) {
											valorReferer = refererUrl;
											valorCampanya = campanyaUrl;
											valorSKU = skuUrl;
											valorRefSesion = refererUrl;
											valorCamSesion = campanyaUrl;
											valorSKUSesion = skuUrl;
										} else {
											valorReferer = REFERER_DEFECTO;
											valorCampanya = campanyaDefecto;
											valorSKU = SKU_DEFECTO;
											valorRefSesion = REFERER_DEFECTO;
											valorCamSesion = campanyaDefecto;
											valorSKUSesion = SKU_DEFECTO;					
										}
										// Actualizar el FSO y webCookies con estos nuevos valores y con las fechas que se definieron por defecto
										sobrescribir = true;
										// Si la cookie persistente NO HA EXPIRADO...	
									} else {
										if (accesoDesdeCampanya) {
										
											// Si la persistente no ha expirado y se accede desde una campanya y los parámetros de sesion no coinciden
											// con ella, sobrescribo los tres atributos de sesion para que se actualice el FSO y se creen las dos 
											// cookies webs con los valores correctos.					
											if ((valorRefSesion!=refererUrl) || (valorCamSesion!=campanyaUrl) || (valorSKUSesion!=skuUrl)) {
												
												//Debemos de tener en cuenta que si entramos con algun parametro en la URL
												//y algun parametro está ausente, se deben rellenar estos parametros con valores por defecto
												if (refererUrl){
													valorRefSesion = refererUrl;
												} else {
													valorRefSesion = REFERER_DEFECTO;
												}
												if (campanyaUrl){
													valorCamSesion = campanyaUrl;
												} else {
													valorCamSesion = campanyaDefecto;
												}
												if (skuUrl){
													valorSKUSesion = skuUrl;
												} else {
													valorSKUSesion = SKU_DEFECTO;
												}
												
												// Modificar sólo los 3 campos de sesion del FSO y crear las cookies web a partir de todos
												// los campos que tenía el FSO y de los 3 actualizados ahora
												sobrescribir = true;
											}																				
											// Si la persistente no ha expirado y no se accede desde una campanya, hay que actualizar las 2 cookies web
											// y el FSO siempre y cuando la cookie de sesion no contenga valores de campanya correctos o no exista.
											} else {
												// Si los valores de sesion de la cookie persistente no coinciden con los valores por defecto
												// y ademas NO tenemos cookie de sesión, será necesario resetear las cookies.
												if 	(((valorRefSesion!=REFERER_DEFECTO) || 
													(valorCamSesion!=campanyaDefecto) || 
													(valorSKUSesion!=SKU_DEFECTO)) && !encontradaCookieSesion) {
													
													valorRefSesion = REFERER_DEFECTO;
													valorCamSesion = campanyaDefecto;
													valorSKUSesion = SKU_DEFECTO;
													sobrescribir = true;
												}
											}
										//Como la cookie NO ha expirado, utilizamos los valores originales de fecha de inicio
										//y fecha de fin para que estos NO sean reiniciados por el parametro Validity
										valorFecha = fechaInicioCookie;
										valorVigencia = fechaFinCookie;
									}
								}
							}
						}			
					}
							
					/*
				 	 * Función llamada desde la template WC_ACOM_TemplateF y WC_ACOM_ViewSelector. 
					 * 1. Genera valores de PC, A-B y Cliente, asi como fechas de inicio y fin de cookie
					 * 2. Comprueba si existen valores de referer, sku, validity y campanya desde la url
					 * 	  para tenerlos en cuenta en caso de tener que escribir en las cookies de sesión y cliente
					 * 
					*/
					function inicializarValoresCookie() 
					{
						// Generamos el identificador de PC y de valor aleatorio AB.
						var campoPC = new Date().getTime();
						valorPC = String(campoPC) + String(Math.floor(Math.random()*2147483648));
						valorAB = ['A','B'];
						valorAB = valorAB[Math.floor(Math.random()*2)];
						// Obtenemos la fecha actual y le damos el formato correcto para que pueda ser almacenado en la nueva cookie
						fechaActual = new Date();
						fechaActual = validaLongitud(String(fechaActual.getDate())) + '/' + validaLongitud((String(fechaActual.getMonth()+1))) + '/' + fechaActual.getFullYear();
						valorFecha = fechaActual;
						
						// Obtenemos la fecha actual, le sumamos el contenido del parametro validity
						// y le damos el formato correcto para que pueda ser almacenado en la nueva cookie
						if (validity) {
							validity = parseInt(validity);
							accesoDesdeCampanya = true;
						}
						if ((!validity) || (validity<1) || (validity>30)) {
							validity = 1;
						}
						var fechaFinVigencia = new Date();
						fechaFinVigencia.setDate(fechaFinVigencia.getDate()+validity);
						fechaFinVigencia = validaLongitud(String(fechaFinVigencia.getDate())) + '/' + validaLongitud((String(fechaFinVigencia.getMonth()+1))) + '/' + fechaFinVigencia.getFullYear();
						valorVigencia = fechaFinVigencia;
		
						// Cargamos por defecto en los parametros de referer, sku y campaña los valores obtenidos desde la url siempre y cuando existan				
						if (refererUrl) {
							valorReferer = refererUrl;
							valorRefSesion = refererUrl;
							accesoDesdeCampanya = true;
						}
						if (skuUrl) {
							valorSKU = skuUrl;
							valorSKUSesion = skuUrl;
							accesoDesdeCampanya = true;
						}
						if (campanyaUrl) {
							valorCampanya = campanyaUrl;
							valorCamSesion = campanyaUrl;
							accesoDesdeCampanya = true;
						}
					}
					
					/*
				 	 * Función llamada desde la template WC_ACOM_TemplateF. 
					 * 1. Genera valores de PC, A-B y Cliente, asi como fechas de inicio y fin de cookie
					 * 2. Extrae el valor de la cookie de sesión para comprobar sus valores de campaña e indicar al objeto flash si es
					 *    necesario o no reiniciar las cookies.
					 * 3. Toma los valores existentes en la cookie para cargarlos en las variables globales.
					 * 4. Se invoca a la funcion actualizarClienteFlashMovie() con los valores de las variables globales
					*/
					function actualizarCookiesTemplateF() 
					{
						// Invocamos a la funcion inicializar eliminando los parametros de url validity, campaña, sku y referer
						// en el caso de que estos existan.
						skuUrl = '';
						refererUrl = '';
						campanyaUrl = '';
						validity = 1;
						inicializarValoresCookie();
						// Comprobamos si existe o no cookie de sesión para obtener sus valores.
						leeCookieSesion();
						// Extraemos los valores de la cookie persistente siempre y cuando existan
						var cookies=document.cookie;
						if (cookies) {
							var parClaveValor = new Array(11); 
							if (cookies.indexOf(nombreCookieCliente) != -1) {
								
						   		var cadena = document.cookie.substring(document.cookie.indexOf(nombreCookieCliente + '=') + nombreCookieCliente.length + 1,document.cookie.length);
						   		cadena = unescape(cadena);
						   		if(cadena.indexOf(';') != -1) cadena = cadena.substring(0,cadena.indexOf(';'))
						   		cadena = unescape(cadena);
								parClaveValor = cadena.split('#');
								if (parClaveValor && parClaveValor.length==11) {
									// Recogemos cada campo obtenido de la cookie de cliente primero parseamos por # y 
									// el resltado, lo parseamos por = para obtener el valor del clave par-valor
									if (parClaveValor[0]) valorPC = parClaveValor[0].split('=')[1];
									if (parClaveValor[1]) valorAB = parClaveValor[1].split('=')[1];
									if (parClaveValor[3]) valorReferer = parClaveValor[3].split('=')[1];
									if (parClaveValor[4]) valorCampanya = parClaveValor[4].split('=')[1];
									if (parClaveValor[5]) valorFecha = parClaveValor[5].split('=')[1];
									if (parClaveValor[6]) valorVigencia = parClaveValor[6].split('=')[1];
									if (parClaveValor[7]) valorSKU = parClaveValor[7].split('=')[1];
									if (parClaveValor[8]) valorRefSesion = parClaveValor[8].split('=')[1];
									if (parClaveValor[9]) valorCamSesion = parClaveValor[9].split('=')[1];
									if (parClaveValor[10]) valorSKUSesion = parClaveValor[10].split('=')[1];
								}
							}
						}
						// Preparamos los parametros de entrada para invocar a la funcion actualizarClienteFlashMovie();
						sobrescribir = true;
						valorCliente = 'SI';
						clienteSi = 'SI';
						redireccionar = 'false';
						actualizarClienteFlashMovie();
					}
						
					/*
					 * Función llamada desde la template WC_ACOM_ViewSelector. 
					 * 1. Genera valores de PC, A-B y Cliente, asi como fechas de inicio y fin de cookie
					 * 2. Extrae el valor de la cookie de sesión para comprobar sus valores de campaña e indicar al objeto flash si es
					 *    necesario o no reiniciar las cookies.
					 * 3. Comprueba la validez de la cookie de cliente, verificando fecha de validación y valores de campaña correctos.
					 */
					function comprobarCookiesViewSelector() 
					{
						inicializarValoresCookie();
						leeCookieSesion();
						leeCookieCliente();
					}
					
					/**
					 * Funcion que obtiene el valor de los parametros existentes en la url
					 */
					function getUrlParam(name)
					{
						var regexS = "[\\?&]"+name+"=([^&#]*)";
						var regex = new RegExp ( regexS );
						var tmpURL = window.location.href;
						var results = regex.exec( tmpURL );
						if (results == null) return '';
						else return results[1];
					}
		
