//*****************************************************************************
//
//	Nombre: cam__cmp.js
//
//	Tipo: JavaScript
//
//	Proyecto: Cámara
//
//	Comentarios:	Contiene las funciones para la nueva pagina (octubre 2008) de la compra.
//
//	Autor: Novisline
//
//  Fecha: 2008-10-17
//
//	Version: 1.0
//
//****************************************************************************

// constantes locales

// constantes locales: IDs de elementos del carrito

var kc_cam_cmp_i__ID_Pfj_CDC_Ctd = "cam__id_cdc_ctd__";
var kc_cam_cmp_i__ID_Pfj_CDC_Precio = "gen_cdc__tdid_prc_";
var kc_cam_cmp_i__ID_Pfj_CDC_Subtotal = "gen_cdc__tdid_stl_";
var kc_cam_cmp_i__ID_CDC_Total_Articulos = "gen_cdc__id_ttl_art";
var kc_cam_cmp_i__ID_CDC_Importe_Total = "gen_cdc__id_imp_ttl";
var kc_cam_cmp_i__ID_CDC_Descuento_Total = "cam__cfid_cmp_i__des_ttl";
var kc_cam_cmp_i__ID_CDC_Envio_Total = "cam__cfid_cmp_i__env_ttl";
var kc_cam_cmp_i__ID_Envio_Total_II_Valor = "cam_cmp_i__id_imp_ttl_ii_val";
var kc_cam_cmp_i__ID_Pfj_Formu_Ctd2x = "cam__cfid_cmp_i_ctd__";
var kc_cam_cmp_i__ID_Pfj_Formu_Ctd = "cam__cfid_cmp_i_ctd__";
var kc_cam_cmp_i__TipoPago__ContraReembolso = "CRE";
var kc_cam_cmp_i__TipoPago__PayPal_Tarjeta = "PP-TJA";

// constantes locales: IDs de controles de tipos de pago

var kc_cam_cmp_i__CFID_TipoPago_PayPal = "cam__cfid_cmp_i__tpo_4";				// Pagar con PayPal
var kc_cam_cmp_i__CFID_TipoPago_Tarjeta = "cam__cfid_cmp_i__tpo_3";				// Pagar con Tarjeta
var kc_cam_cmp_i__CFID_TipoPago_PET = "cam__cfid_cmp_i__tpo_1";					// Pagar en Tienda (control queda oculto)
var kc_cam_cmp_i__CFID_TipoPago_CRE = "cam__cfid_cmp_i__tpo_2";					// Contra Reembolso
var kc_cam_cmp_i__CFID_TipoPago_PD_Europa_Resto = "cam__cfid_cmp_i__tpo_3";		// ID de control de tipo de pago PD para Europa y resto del mundo

// constantes locales: valores de controles de tipo de envio

var kc_cam_cmp_i__TipoEnvio__RET = "1";
var kc_cam_cmp_i__TipoEnvio__Envio = "2";

// constantes locales: IDs y nombres de controles de campos del formulario

var kc_cam_cmp_i__CFID_Estado = "estado";
var kc_cam_cmp_i__CFID_Pais = "pais";
var kc_cam_cmp_i__CFID_TipoEnvio_EAD = "cam__cfid_cmp_i__env_2";
var kc_cam_cmp_i__CFID_TipoEnvio_RET = "cam__cfid_cmp_i__env_1";
var kc_cam_cmp_i__NFID_TipoPago = "c_tpo_cmp";
var kc_cam_cmp_i__NFID_TipoEnvio = "c_tpo_env";
var kc_cam_cmp_i__CFID_Enviar = "cam__cfid_cmp_1_env";							// boton "enviar"
var kc_cam_cmp_i__ID_Aviso_Pedidos_Int = "cam__id_cmp_avs_int";					// ID del contenedor del aviso de pedidos internacionales
var kc_cam_cmp_i__ID_Valor_Estado = "cam_cmp_i__id_vcf_estado";					// ID del control oculto que contiene valor del estado/pais del cliente seleccionado
var kc_cam_cmp_i__ID_Valor_Region = "cam_cmp_i__id_vcf_region";					// ID del control oculto que contiene valor de la region del pedido

// constantes locales: valores / indices de opciones por defecto de campos del formulario

var kc_cam_cmp_i__Valor_PD_CF_Region = "españa";
var kc_cam_cmp_i__Valor_CF_Region_Espanna = "españa";
var kc_cam_cmp_i__Valor_CF_Region_Europa = "europa";
var kc_cam_cmp_i__Valor_CF_Region_Int = "resto";
var kc_cam_cmp_i__Indice_PD_CF_Region = 0;


// variables locales

var pc_cam_cmp_i__Num_Productos = 1;

var pd_cam_cmp_i__Precio_Portes_CRE_Euros = 7.95;				// portes para pedidos de contra reembolso
var pd_cam_cmp_i__Portes_PP_o_TJA_Euros__Espanna = 5.95;		// portes para pedidos del estado español
var pd_cam_cmp_i__Portes_PP_o_TJA_Euros__Europa = 9.99;			// portes para pedidos europeos
var pd_cam_cmp_i__Portes_PP_o_TJA_Euros__Int = 14.99;			// portes para pedidos internacionales


var pao_cam_cmp_i__Descuentos = new Array();

var pc_cam_cmp_i__CFID_Pago__Ultimo = "cam__cfid_cmp_i__tpo_3";	// por defecto, tipo de pago para envios a domicilio = tarjeta


//*****************************************************************************
//
//	Nombre: cam_cmp_i__mod_ctd()
//
//	Tipo: Funcion JavaScript
//
//	Proyecto: Libreria Camara (cam)
//
//	Comentarios:	Modifica la cantidad del articulo del carrito de la compra,
//					sumando o restando la cantidad dada a!de la actual.
//
//
//	Acepta:		eID				ID local de control
//				eAnadido		el valor a anadir o restar
//
//	Devuelve:	-
//
//	Autor: Novisline
//
//  Fecha: 2008-10-17
//
//****************************************************************************

function cam_cmp_i__mod_ctd(eID, eAnadido)
{
	var oCantidad
	var cID
	var cValor
	var eValor
	var eValorNueva


	cID = kc_cam_cmp_i__ID_Pfj_Formu_Ctd + eID.toString();

	oCantidad = document.getElementById(cID);

//	alert("oCantidad: " + typeof(oCantidad));

	if (pb_cam_cmp_i__local_o_nvl)
	{
//		alert(": cID: " + cID);

//		alert(": oCantidad: " + oCantidad);
	}

	if (oCantidad != null)
	{
		// actualizar cantidad en control oculto de formulario

//		alert("oCantidad != null");
		
		cValor = oCantidad.value;

		eValor = eval(cValor);

		eValorNueva = eValor + eAnadido;

		if (pb_cam_cmp_i__local_o_nvl && false)
		{

			alert(": oCantidad.id: " + oCantidad.id);

			alert(": cValor: " + cValor);

			alert(": eValor: " + eValor);

			alert(": eValorNueva: " + eValorNueva);
		}

		if ((eValorNueva >= 0))
		{
			
			// actualizar control oculto del formulario que contiene cantidad

			oCantidad.value = eValorNueva.toString();

			
			// actualizar celda visible de la tabla del carrito que contiene cantidad

			cID = kc_cam_cmp_i__ID_Pfj_CDC_Ctd + eID.toString();

			oCantidad = document.getElementById(cID);

			oCantidad.innerHTML = eValorNueva.toString();

		}

//		alert(eValor);
	}
	else
	{
//		alert("oCantidad = null");
	}

//	alert("cam_cmp_i__mod_ctd() llamada...");
	
	cam_cmp_i__act()

}

function cam_cmp_i__mod_ctd2x(eID, eAnadido)
{
	var oCantidad
	var cID
	var cValor
	var eValor


	cID = kc_cam_cmp_i__ID_Pfj_CDC_Ctd + eID.toString();

	oCantidad = document.getElementById(cID);

//	alert("oCantidad: " + typeof(oCantidad));

	if (oCantidad != null)
	{
		cValor = oCantidad.innerHTML;

		eValor = eval(cValor);

		eValor = eValor + eAnadido;

		if ((eValor >= 0))
		{
//			oCantidad.value = eValor;

			oCantidad.innerHTML = eValor;
		}

//		alert(eValor);
	}

//	alert("cam_cmp_i__mod_ctd() llamada...");
	
	cam_cmp_i__act()

}


//*****************************************************************************
//
//	Nombre: cam_cmp_i__act()
//
//	Tipo: Funcion JavaScript
//
//	Proyecto: Libreria Camara (cam)
//
//	Comentarios:	Calcula los subtotales y total y actualiza los elementos HTML.
//
//
//	Acepta:		-
//
//	Devuelve:	-
//
//	Autor: Novisline
//
//  Fecha: 2008-10-17
//
//****************************************************************************

function cam_cmp_i__act()
{
	var aoTipoPago;
	var oSubtotalArticulos;
	var oTotalArticulos;
	var oImporteTotal;
	var oRET;
	var cID;
	var cRegion;
	var cTipoPago;
	var cValor;
	var eCantidad;
	var eNumArticulos = 0;
	var dDescuentoTotal = 0;
	var dEnvio = 0;
	var dPrecio;
	var dSubtotal;
	var dTotalArticulos = 0;
	var dTotal = 0;
	var i;


//	alert("cam_cmp_i__act() llamada...");

	for (i=1; i <= pc_cam_cmp_i__Num_Productos; i++)
	{

//		alert(":i: " + i);

		eCantidad = cam_cmp_i__obt_val_num(kc_cam_cmp_i__ID_Pfj_CDC_Ctd + i.toString());

		eNumArticulos = eNumArticulos + eCantidad;

//		alert("eCantidad: " + eCantidad);

		dPrecio = cam_cmp_i__obt_val_num(kc_cam_cmp_i__ID_Pfj_CDC_Precio + i.toString());

//		alert("dPrecio: " + dPrecio);

		dSubtotal = eCantidad * dPrecio;

		dTotalArticulos = dTotalArticulos + dSubtotal;

//		alert(": dSubtotal: " + dSubtotal);

//		alert(": dTotal: " + dTotal);

		
		// actualizar subtotal

		cID = kc_cam_cmp_i__ID_Pfj_CDC_Subtotal + i.toString();

		cValor = cam_cmp_i__frm_dec(dSubtotal, 2);

		cam_cmp_i__est_cnt_x_id(cID, cValor);

	}

	dTotalArticulos = Math.round(dTotalArticulos * 100) / 100;

	
	// calcular total envio y descuento

	oRET = document.getElementById(kc_cam_cmp_i__CFID_TipoPago_PET);

//	alert(": RET checked: " + oRET.checked);

	if ((oRET != null) && (! oRET.checked) && (eNumArticulos > 0))
	{
		// sacar ID del control de tipo de pago seleccionado
		
		aoTipoPago = document.getElementsByName("c_tpo_cmp")

		for (i=0; i<aoTipoPago.length; i++)
		{
			if (aoTipoPago[i].checked)
			{
				cID = aoTipoPago[i].id

				break;
			}
		}

//		alert(cID);


		// portes y tipo de descuento en funcion de la forma de pago y la region (España, Europa, Internacional)

		cRegion = cam_cmp_i__obt_region();

		switch (cID)
		{
			case kc_cam_cmp_i__CFID_TipoPago_PayPal:
			case kc_cam_cmp_i__CFID_TipoPago_Tarjeta:
				
				// establecer portes en funcion de la region y forma de pago

				cTipoPago = kc_cam_cmp_i__TipoPago__PayPal_Tarjeta;

				switch (cRegion)
				{
					case kc_cam_cmp_i__Valor_CF_Region_Europa:

						dEnvio = pd_cam_cmp_i__Portes_PP_o_TJA_Euros__Europa;
	
						break;

					case kc_cam_cmp_i__Valor_CF_Region_Int:

						dEnvio = pd_cam_cmp_i__Portes_PP_o_TJA_Euros__Int;
	
						break;

					default:

						// portes de pedidos para el estado español

						dEnvio = pd_cam_cmp_i__Portes_PP_o_TJA_Euros__Espanna;

						break;
				}

				break;


			default:

				// contra reembolso

				cTipoPago = kc_cam_cmp_i__TipoPago__ContraReembolso;

				dEnvio = pd_cam_cmp_i__Precio_Portes_CRE_Euros;

				break;

		}

		dEnvio = Math.round(dEnvio * 100) / 100;


		// descuento

		dDescuentoTotal = 0;

//		alert(cRegion + ": " + kc_cam_cmp_i__Valor_CF_Region_Espanna);

		if (cRegion == kc_cam_cmp_i__Valor_CF_Region_Espanna)
		{
			for (i=0; i<pao_cam_cmp_i__Descuentos.length; i++)
			{
//				alert(cTipoPago + ": " + pao_cam_cmp_i__Descuentos[i].cTipoDescuento + ": " + pao_cam_cmp_i__Descuentos[i].dValor);

				// descuento solo se aplica si tipo de pago es correcto y total de articulos se encuentra en franja del descuento

				if ((pao_cam_cmp_i__Descuentos[i].cTipoDescuento == cTipoPago) && (pao_cam_cmp_i__Descuentos[i].en_franja(dTotalArticulos)))
				{

					dDescuentoTotal = pao_cam_cmp_i__Descuentos[i].dValor;

					break;
				}
			}
		}

		dDescuentoTotal = Math.round(dDescuentoTotal * 100) / 100;
	
//		alert("dDescuentoTotal: " & dDescuentoTotal);
	
	}
	else
	{
		dEnvio = 0;

		dDescuentoTotal = 0;
	}

	
	// calcular importe total (= total articulos + envio)

	dTotal = dTotalArticulos + dEnvio - dDescuentoTotal;

	dTotal = Math.round(dTotal * 100) / 100;

	
	// actualizar total articulos

	cValor = cam_cmp_i__frm_dec(dTotalArticulos, 2);

	cam_cmp_i__est_cnt_x_id(kc_cam_cmp_i__ID_CDC_Total_Articulos, cValor);

	
	// actualizar total articulos

	cValor = cam_cmp_i__frm_dec(dDescuentoTotal, 2);

	cam_cmp_i__est_cnt_x_id(kc_cam_cmp_i__ID_CDC_Descuento_Total, cValor);

	
	// actualizar total envio en CDC y la copia resaltada

	cValor = cam_cmp_i__frm_dec(dEnvio, 2);

	cam_cmp_i__est_cnt_x_id(kc_cam_cmp_i__ID_CDC_Envio_Total, cValor);

	cValor = cam_cmp_i__frm_dec(dEnvio, 2);

	
	// actualizar importe total (= total articulos + envio)

	cValor = cam_cmp_i__frm_dec(dTotal, 2);

	cam_cmp_i__est_cnt_x_id(kc_cam_cmp_i__ID_CDC_Importe_Total, cValor);

	cam_cmp_i__est_cnt_x_id(kc_cam_cmp_i__ID_Envio_Total_II_Valor, cValor);
	
}


//*****************************************************************************
//
//	Nombre: cam_cmp_i__act_tpo_env()
//
//	Tipo: Funcion JavaScript
//
//	Proyecto: Libreria Camara (cam)
//
//	Comentarios:	Se llama despues de que el usuario haya seleccionado uno de 
//					los controles del campo "tipo de envio".
//
//					Selecciona el control radio del campo "forma de pago" en
//					base al valor del campo "tipo de envio".
//
//
//	Acepta:		cTipoEnvio			valor del control radio seleccionado
//
//	Devuelve:	-
//
//	Autor: Novisline
//
//  Fecha: 2009-07-09
//
//****************************************************************************

function cam_cmp_i__act_tpo_env()
{
	var aoControles;				// colecion de controles diversos
	var oControl;					// controles diversos
	var oControl_II;				// controles diversos
	var oControlRegion;				// control "region"
	var cID_Pago_Sel;				// IDs de controles
	var bMosAvisoInt = false;		// si ha de mostrar aviso internacionales
	var eNumero;					// numero de elementos en colecion
	var i;


	// obtener tipo de envio seleccionado

	aoControles = document.getElementsByName(kc_cam_cmp_i__NFID_TipoEnvio);
	
	for (i=0; i<aoControles.length; i++)
	{
		if (aoControles[i].checked)
		{
			cTipoEnvio = aoControles[i].value;

			break;
		}
	}
	
//	alert("cam_cmp_i__act_tpo_env() llamada: " + cTipoEnvio);


	// activar / desactivar controles del tipo de envio ya que quedan desactivados en HTML
	// porque la pagina solo debe funcionar con javascript activo

	oControl = document.getElementById(kc_cam_cmp_i__CFID_TipoEnvio_RET);

	if (oControl != null)
	{
		oControl.disabled = false;
	}

	oControl = document.getElementById(kc_cam_cmp_i__CFID_TipoEnvio_EAD);

	if (oControl != null)
	{
		oControl.disabled = false;
	}

	oControl = document.getElementById(kc_cam_cmp_i__CFID_Enviar);

	if (oControl != null)
	{
		oControl.disabled = false;
	}
		


	// activar / desactivar desplegable "pais" en funcion del tipo de envio

	oControlRegion = document.getElementById(kc_cam_cmp_i__CFID_Pais);

	aoControles = document.getElementsByName(kc_cam_cmp_i__NFID_TipoPago);

	if ((oControlRegion != null) && (aoControles != null))
	{

//		oControlRegion.disabled = false;

		cRegion = oControlRegion.options[oControlRegion.selectedIndex].value;

//		alert(cRegion);


		// seleccionar todos los controles de tipo de pago en funcion del tipo de envio y el pais
		// se recorren la matriz de los controles (botones de radio) del tipo de pago y se des/habilita cada
		// control

		eNumero = aoControles.length;

		for (i=0; i<eNumero; i++)
		{
			oControl_II = aoControles[i];

			oControl_II.checked = false;

			switch (cTipoEnvio)
			{
				case kc_cam_cmp_i__TipoEnvio__Envio:

					// activar las opciones de "forma de pago" en funcion a la region seleccionada
					//
					//		- España: todas menos "pagar en tienda"
					//		- Europa: solo Tarjeta de credito y PayPal
					//		- Resto del mundo: solo Tarjeta de credito y PayPal

					switch (cRegion)
					{

						case kc_cam_cmp_i__Valor_PD_CF_Region:

							oControl_II.disabled = (oControl_II.id == kc_cam_cmp_i__CFID_TipoPago_PET);

							break;

						default:

							// europa; resto del mundo

							oControl_II.disabled = (oControl_II.id == kc_cam_cmp_i__CFID_TipoPago_PET) || (oControl_II.id == kc_cam_cmp_i__CFID_TipoPago_CRE);

							break;

					}

					break;
			
				case kc_cam_cmp_i__TipoEnvio__RET:

					// desactivar todos los controles

					aoControles[i].disabled = (oControl_II.id != kc_cam_cmp_i__CFID_TipoPago_PET);

					cID_Pago_Sel = kc_cam_cmp_i__CFID_TipoPago_PET;

					break;

			}

		}

		
		// seleccionar control de tipo de pago adecuado

		switch (cTipoEnvio)
		{
			case kc_cam_cmp_i__TipoEnvio__Envio:

				bActivarRegion = true;

//				alert(oControlRegion.id + ": " + oControlRegion.disabled);

				switch (cRegion)
				{
					case kc_cam_cmp_i__Valor_PD_CF_Region:

						cID_Pago_Sel = pc_cam_cmp_i__CFID_Pago__Ultimo;

						break;
	
					default:

						cID_Pago_Sel = kc_cam_cmp_i__CFID_TipoPago_PD_Europa_Resto;

						break;
				}
	
				break;

			case kc_cam_cmp_i__TipoEnvio__RET:

				// desactivar y seleccionar pais por defecto (España)

				oControlRegion.selectedIndex = kc_cam_cmp_i__Indice_PD_CF_Region;

				bActivarRegion = false;

				cID_Pago_Sel = kc_cam_cmp_i__CFID_TipoPago_PET;

				break;
		}

		
		// seleccionar tipo de pago en base a tipo de envio

		if ((oControl = document.getElementById(cID_Pago_Sel)) != null)
		{
			oControl.checked = true;
		}


		// actualizar aviso de portes (hay que hacerlo antes de deshabilitar el menu desplegable)

		cam_cmp_i__act_avs_portes();
		
		
		// habilitar/deshabilitar control de region en funcion de valor

		oControlRegion.disabled = ! bActivarRegion;

	}

}


//*****************************************************************************
//
//	Nombre: cam_cmp_i__act_avs_portes()
//
//	Tipo: Funcion JavaScript
//
//	Proyecto: Libreria Camara (cam)
//
//	Comentarios:	Muestra o oculta el aviso de portes internacionales.
//
//
//	Acepta:		-
//
//	Devuelve:	-
//
//	Autor: Novisline
//
//  Fecha: 2009-11-30
//
//****************************************************************************

function cam_cmp_i__act_avs_portes()
{
	var oControl;				// control de aviso de portes
	var cRegion;
	var bMosAvisoInt = false;
	
	
	// mostrar/ocultar aviso de pedidos internacionales
	
	oControl = document.getElementById(kc_cam_cmp_i__ID_Aviso_Pedidos_Int);

	if (oControl != null)
	{
		cRegion = cam_cmp_i__obt_region();
		
		bMosAvisoInt = (cRegion != kc_cam_cmp_i__Valor_PD_CF_Region);

		oControl.style.display = (bMosAvisoInt ? 'block' : 'none');
	}

}


//*****************************************************************************
//
//	Nombre: cam_cmp_i__act_tpo_pgo()
//
//	Tipo: Funcion JavaScript
//
//	Proyecto: Libreria Camara (cam)
//
//	Comentarios:	Se llama despues de que el usuario haya seleccionado uno de
//					los controles del campo "tipo de pago".
//
//					Selecciona el control radio del campo "forma de pago" en
//					base al valor del campo "tipo de envio".
//
//
//	Acepta:		cID			ID del control seleccionado
//
//	Devuelve:	-
//
//	Autor: Novisline
//
//  Fecha: 2009-07-09
//
//****************************************************************************

function cam_cmp_i__act_tpo_pgo(cID)
{
	
	// alamacenar ID del control para que se pueda seleccionar
	// despues

	pc_cam_cmp_i__CFID_Pago__Ultimo = cID;

}


//*****************************************************************************
//
//	Nombre: cam_cmp_i__est_cnt_x_id()
//
//	Tipo: Funcion JavaScript
//
//	Proyecto: Libreria Camara (cam)
//
//	Comentarios:	Actualiza el menu de subcategorias a base del valor
//					seleccionado del menu de categorias principales.
//
//
//	Acepta:		cID				ID de elemento
//				cContenido		contenido textual y/o de HTML del elemento
//
//	Devuelve:	-
//
//	Autor: Novisline
//
//  Fecha: 2008-10-17
//
//****************************************************************************

function cam_cmp_i__est_cnt_x_id(cID, cContenido)
{
	var oElemento;


	if (cContenido != null)
	{
		oElemento = document.getElementById(cID);

		if (oElemento != null)
		{
			oElemento.innerHTML = cContenido;
		}
		else
		{
		}
	}

}


//*****************************************************************************
//
//	Nombre: cam_cmp_i__obt_cnt_x_id()
//
//	Tipo: Funcion JavaScript
//
//	Proyecto: Libreria Camara (cam)
//
//	Comentarios:	Actualiza el menu de subcategorias a base del valor
//					seleccionado del menu de categorias principales.
//
//
//	Acepta:		cID				ID de elemento
//
//	Devuelve:	-
//
//	Autor: Novisline
//
//  Fecha: 2008-10-17
//
//****************************************************************************

function cam_cmp_i__obt_cnt_x_id(cID)
{
	var oElemento
	var cID
	var vValor = null;


	oElemento = document.getElementById(cID);

	if (oElemento != null)
	{
		vValor = oElemento.innerHTML;
	}
	else
	{
	}
	
	return vValor;
}

//*****************************************************************************
//
//	Nombre: cam_cmp_i__obt_val_num()
//
//	Tipo: Funcion JavaScript
//
//	Proyecto: Libreria Camara (cam)
//
//	Comentarios:	Actualiza el menu de subcategorias a base del valor
//					seleccionado del menu de categorias principales.
//
//
//	Acepta:		cID				ID de elemento
//
//	Devuelve:	-
//
//	Autor: Novisline
//
//  Fecha: 2008-10-17
//
//****************************************************************************

function cam_cmp_i__obt_val_num(cID)
{
	var oCantidad
	var cID
	var vValor
	var eValor

	
	eValor = 0;

	vValor = cam_cmp_i__obt_cnt_x_id(cID);

	if (vValor != null)
	{
		vValor = vValor.replace(",", ".")

//		alert(":vValor: " + vValor);

		eValor = eval(vValor);
	}


	return eValor;
}

//alert("cam__cmp.js descargado...");


//*****************************************************************************
//
//	Nombre: cam_cmp_i__frm_dec()
//
//	Tipo: Funcion JavaScript
//
//	Proyecto: Libreria Camara (cam)
//
//	Comentarios:	Formatea el valor decimal dado, con el numero de numeros decimales requerido.
//
//
//	Acepta:		dValor	valor a tratar
//
//	Devuelve:	-
//
//	Autor: Novisline
//
//  Fecha: 2008-10-20
//
//****************************************************************************

function cam_cmp_i__frm_dec(dValor, eNumDec)
{
	var cDecimal;
	var cEntero;
	var cValor;
	var eSepPos;
	var eNumCar;
	var i;


	cValor = "";

	if (dValor != null)
	{
		cValor = dValor.toString();

		eNumCar = cValor.length;

		eSepPos = cValor.indexOf(".");

		if (eSepPos > -1)
		{
			cEntero = cValor.substr(0, eSepPos);
			
			cDecimal = cValor.substr((eSepPos + 1), eNumDec);
		}
		else
		{
			cEntero = cValor;

			cDecimal = "";
		}

		if (cDecimal.length < eNumDec)
		{
			for (i=cDecimal.length; i<eNumDec; i++)
			{
				cDecimal = cDecimal + "0";
			}
		}

		cValor = cEntero + "," + cDecimal;
	}
	
	return cValor;
}


//*****************************************************************************
//
//	Nombre: cam_cmp_i__enviar()
//
//	Tipo: Funcion JavaScript
//
//	Proyecto: Libreria Camara (cam)
//
//	Comentarios:	Llamada al selccionar el usuario el boton "enviar" del
//					formulario de comprar. El funcionamiento depende de la
//					forma de pago.
//
//
//	Acepta:		-
//
//	Devuelve:	-
//
//	Autor: Novisline
//
//  Fecha: 2009-10-20
//
//****************************************************************************

function cam_cmp_i__enviar()
{
	var oFormu = document.getElementById("cam__frm_cmp_1");
	var oTabla = document.getElementById("gen_cdc__tid_gen");
	var oNumProdus = document.getElementById("cam__cfid_cmp_i_num");
	var oCantidades;		// elemento en que se almacenan las cantidades de todos los articulos
	var oControl;
	var cCantidades = "";
	var eNumProdus = 0;
	var i;


	if (0)
	{
//		alert("cam_cmp_i__enviar() llamada...");


		// control en que se almacenan cantidades

		oCantidades = document.getElementById("cam__cfid_cmp_i_ctds");


		// almacenar (posiblemente nuevas) cantidades en control oculto

		if (oNumProdus != null)
		{
			eNumProdus = oNumProdus.value;
		}
			
//		alert(": eNumProdus: " + eNumProdus);

		for(i=1; i<=eNumProdus; i++)
		{
			cID = "cam__id_cdc_ctd__" + i.toString();
			
			oControl = document.getElementById(cID);
			
//			alert(": producto: " + i + ": " + oControl.innerHTML);

			if (oControl != null)
			{

				if (cCantidades.length > 0)
				{
					cCantidades += ","
				}
				
				cCantidades += i.toString() + "=" + oControl.innerHTML;
			}
		}

		oCantidades.value = cCantidades;


		if (true)
		{
	//		alert(": forma de pago: " + vValor);

	//		alert(oCantidades.value);

//			alert("cantidades: " + oCantidades.value);
		}

	}


	// habilitar campo "region" para que su valor se envie ya que si tipo de envio es "recoger en tienda" queda deshabilitado

	oControlRegion = document.getElementById(kc_cam_cmp_i__CFID_Pais);

	oControlRegion.disabled = false;


	return 1;
}


//*****************************************************************************
//
//	Nombre: gen_pgu__fdn_al_cargar()
//
//	Tipo: Funcion JavaScript
//
//	Proyecto: Libreria Camara (cam)
//
//	Comentarios:	Llamada por gen_pgu__AlCargar() de gen__pag_utl.js para que
//					paginas puedan ejecutar su codigo concreto.
//
//					Establece los valores del carrito en funcion de la forma de
//					pagar seleccionada.
//
//	Acepta:		-
//
//	Devuelve:	-
//
//	Autor: Novisline
//
//  Fecha: 2009-06-09
//
//****************************************************************************

function gen_pgu__fdn_al_cargar()
{
	var aoControles;
	var oControl;
	var oOpciones;
	var oOpcion;
	var cID;
	var cEstado;
	var cValor;
	var i;


	// sacar valor del tipo de envio seleccionado

	aoControles = document.getElementsByName(kc_cam_cmp_i__NFID_TipoEnvio);
	
	for (i=0; i<aoControles.length; i++)
	{
		
		if (aoControles[i].checked)
		{
			cValor = aoControles[i].value;

			break;
		}
	}


	// sacar id del tipo de pago seleccionado para establecer ultimo tipo de pagado (que no sea "pagar en tienda")

	aoControles = document.getElementsByName(kc_cam_cmp_i__NFID_TipoPago);
	
	for (i=0; i<aoControles.length; i++)
	{
		
		if ((aoControles[i].id != kc_cam_cmp_i__CFID_TipoPago_PET) && (aoControles[i].checked))
		{
			cID = aoControles[i].id;

			pc_cam_cmp_i__CFID_Pago__Ultimo = cID;

			break;
		}
	}


	// establecer pais/estado del cliente
	
	oControl = document.getElementById(kc_cam_cmp_i__ID_Valor_Estado);

	if (oControl != null)
	{
		cEstado = oControl.value;
	}
	
	cam_cmp_i__est_opn_menu(kc_cam_cmp_i__CFID_Estado, cEstado);


	// establecer region del pedido
	
	oControl = document.getElementById(kc_cam_cmp_i__ID_Valor_Region);

	if (oControl != null)
	{
		cRegion = oControl.value;
	}
	
	cam_cmp_i__est_opn_menu(kc_cam_cmp_i__CFID_Pais, cRegion);
	

	// establecer valor de opciones del desplegable "pais" al nombre mas el codigo
	
	oControl = document.getElementById(kc_cam_cmp_i__CFID_Estado);

	if (oControl != null)
	{
		oOpciones = oControl.options;

		for (i=0; i<oOpciones.length; i++)
		{
			oOpcion = oOpciones[i];

			cValor = oOpcion.text + " (" + oOpcion.value + ")";

			oOpcion.value = cValor;
		}
	}

	

	// actualizar datos de carrito al cargar la pagina

	cam_cmp_i__act_tpo_env(cValor);

	cam_cmp_i__act();

}


//*****************************************************************************
//
//	Nombre: cam_cmp_i__obt_region()
//
//	Tipo: Funcion JavaScript
//
//	Proyecto: Libreria Camara (cam)
//
//	Comentarios:	Devuelve el valor del control "region".
//
//
//	Acepta:		-
//
//	Devuelve:	-
//
//	Autor: Novisline
//
//  Fecha: 2009-11-30
//
//****************************************************************************

function cam_cmp_i__obt_region()
{
	var oControlRegion;				// control de aviso de portes
	var cRegion = null;				// region
	
	
	oControlRegion = document.getElementById(kc_cam_cmp_i__CFID_Pais);

	cRegion = oControlRegion.options[oControlRegion.selectedIndex].value;


	return cRegion;

}


//*****************************************************************************
//
//	Nombre: cam_cmp_i__est_opn_menu()
//
//	Tipo: Funcion JavaScript
//
//	Proyecto: Libreria Camara (cam)
//
//	Comentarios:	Selecciona la opcion con el valor dado del <select> dado.
//
//
//	Acepta:		-
//
//	Devuelve:	-
//
//	Autor: Novisline
//
//  Fecha: 2009-11-30
//
//****************************************************************************

function cam_cmp_i__est_opn_menu(cID, vValor)
{
	var oControl;				// control del menu
	var oOpcion = null;			// control de la opcion
	var eIndiceSel = -1;		// indice de la opcion que tiene el valor dado
	var i;	


	if (-1)
	{
//		alert(cID);
	}

	oControl = document.getElementById(cID);

	if (oControl)
	{
		for (i=0; i<oControl.options.length; i++)
		{
			if (oControl.options[i].value == vValor)
			{
				eIndiceSel = i;
			}
		}
		
		if (eIndiceSel >= 0)
		{
			oControl.selectedIndex = eIndiceSel;
		}

	}

}

