// JavaScript Document
// Funciones Macromedia  para intercambiar imágenes
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
   var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
   if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

//Función Macromedia para validar formularios
function MM_validateForm() { //v4.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { nm=val.name; if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- '+nm+' debe contener una dirección de e-mail válida.\n';
      } else if (test!='R') { num = parseFloat(val);
        if (isNaN(val)) errors+='- '+nm+' debe contener un entero.\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
		  if (max==0 && num<min) errors+='- '+nm+' debe ser mayor a 0.\n';
          else {if (num<min || max<num && max!=0) errors+='- '+nm+' debe contener un número entre '+min+' y '+max+'.\n';}
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' es obligatorio.\n'; }
  } if (errors) alert('Ocurrieron los siguientes errores:\n'+errors);
  document.MM_returnValue = (errors == '');
}

//Función para desplegar las sublineas
function cambiaMenu(a){
  var sMenu=document.getElementById(a);
  if(!sMenu)return true;
  if(sMenu.style.display=="none"){
    sMenu.style.display="block"
  } else {
    sMenu.style.display="none"
  }
  return true;
}

	//Función Macromedia para abrir pop ups
	function MM_openBrWindow(theURL,winName,features) { //v2.0
	  window.open(theURL,winName,features);
	}

	//Función para imprimir
	function printWindow() {
		bV = parseInt(navigator.appVersion);
		if (bV >= 4) window.print();
			window.close();
	}

	// Función para convertir Letras primarias a mayúsculas
	function cambia(formObj) {	
		//Valido si no ha sido creada la extensión para los arreglos
		if(!window.Array.prototype.in_array){
			//Creo una extensión de los arreglos
			Array.prototype.in_array=function(elem){
				if( !this.convertido ) {
					this.convertido = new Array();
					for(var j in this)
						this.convertido[ this[j] ] = true;
				}
				return new Boolean(elem in this.convertido);
			}			
		}
		//Si no está vacio
		if (formObj.value!=""){						
			//Arreglo de palabras que no quiero que se conviertan a mayúsculas
			//por ejemplo, maría de los dolores convertido quedaría María de los Dolores
			var arrrayPrep = new Array ("de","los","la","las", "del","al");
			var tempChar; //temporal para guardar la primera letra en mayúsculas
			var cadConvertida=""; //Cadena final
			var arrayCadena = formObj.value.split(" "); //convierto la cadena en un arreglo
			var lenArray = arrayCadena.length; //longitu del arreglo
			//Recorro todas las palabras del arreglo
			for (i=0;i<lenArray;i++){	
				// ( Si no es una palabra de la lista y la palabras es mayor a un caracter ) ó es la primera palabra
				if ( (arrrayPrep.in_array(arrayCadena[i])==false && arrayCadena[i].length>1)|| i==0){
					//Convierte la primera letra en mayúsculas
					tempChar = arrayCadena[i].substring(0,1).toUpperCase();
					//Concatena la primera letra ya en mayúsculas 
					//Con el resto de la cadena.
					arrayCadena[i] = tempChar + arrayCadena[i].substring(1,arrayCadena[i].length);
				}
				//Si esta vacia la cadena, sólo agregro la palabra
				//si no esta vacia concateno
				if (cadConvertida=="")
					cadConvertida = arrayCadena[i];
				else
					cadConvertida = cadConvertida + " " + arrayCadena[i];				
			}
			//Actualizo el valor del form
			formObj.value = cadConvertida;
		}			
	}

// Script para Slide show delas imagenes del banner
// Set slideShowSpeed (milliseconds)
var slideShowSpeed = 5000;
// Duration of crossfade (seconds)
var crossFadeDuration = 3;
// Specify the image files
var Pic = new Array();
// to add more images, just continue
// the pattern, adding to the array below

Pic[0] = 'banner/01.jpg'
Pic[1] = 'banner/02.jpg'
Pic[2] = 'banner/03.jpg'
Pic[3] = 'banner/04.jpg'

// do not edit anything below this line
var t;
var j = 0;
var p = Pic.length;
var preLoad = new Array();
for (i = 0; i < p; i++) {
preLoad[i] = new Image();
preLoad[i].src = Pic[i];
}
function runSlideShow() {
if (document.all) {
document.images.SlideShow.style.filter="blendTrans(duration=2)";
document.images.SlideShow.style.filter="blendTrans(duration=crossFadeDuration)";
document.images.SlideShow.filters.blendTrans.Apply();
}
document.images.SlideShow.src = preLoad[j].src;
if (document.all) {
document.images.SlideShow.filters.blendTrans.Play();
}
j = j + 1;
if (j > (p - 1)) j = 0;
t = setTimeout('runSlideShow()', slideShowSpeed);
}

/*
	Función para poder trabajar con AJAX.
	Dependiendo del navegador regresa el valor
*/
function GetXmlHttpObject() {
    var xmlHttp=null;
    try {
        // Firefox, Opera 8.0+, Safari
        xmlHttp=new XMLHttpRequest();
    }
    catch (e) {
        // Internet Explorer
        try {
            xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e) {
            xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
    }
    return xmlHttp;
}

/*
	Función para actualizar el select de líneas y sublíneas
	en el formulario de productos.
*/
function actualizaValores(value,app) {
	var id = document.getElementById('estado');
	var idNedo = document.getElementById('nedo');
	var idPais = document.getElementById('pais');
	//Valido si seleccionó otro estado en los clientes vip
	if (app==2 && idPais.value=="-1"){ // Otro país vip
		idPais.parentNode.innerHTML="<input type='text' name='pais' id='pais' maxlength='50' onBlur='cambia(this)'>";
		id.parentNode.innerHTML = '<input name="estado" type="text" id="estado" maxlength="50" onBlur="cambia(this)">';
		idNedo.value = "0";	
	}
	else {
		var xml = GetXmlHttpObject();
		xml.onreadystatechange = function() {
			if(xml.readyState==4) {
				id.parentNode.innerHTML = xml.responseText;
			}
		}
		xml.open("GET","busEstado.php?paisid="+value+"&app="+app,true);
		xml.send(null);
		idNedo.value = "0"; //Variable para saber si necesito dar de alta el estado
	}
}

/*
	Función para actualizar el select de ladas de activación
	en el formulario de datos de entra.
*/
function actualizaValoresActivacion(value) {
	var id = document.getElementById('lada');
	var xml = GetXmlHttpObject();
	xml.onreadystatechange = function() {
		if(xml.readyState==4) {
			id.parentNode.innerHTML = xml.responseText;
		}
	}
	xml.open("GET","busLada.php?estado_activacion="+value,true);
	xml.send(null);
}

/*
	Función para actualizar el select de ladas de activación
	en el formulario de TAE.
*/
function actualizaValoresActivacionTAE(value,i) {
	var id = document.getElementById('lada_'+i);
	var xml = GetXmlHttpObject();
	xml.onreadystatechange = function() {
		if(xml.readyState==4) {
			id.parentNode.innerHTML = xml.responseText;
		}
	}
	xml.open("GET","busLadaTAE.php?estado_activacion="+value+"&i="+i,true);
	xml.send(null);
}

//Función para actualizar el select de estado a un text porque
//el usuario seleccionó "otro"
function actualizaEstado(form) {
	var id = document.getElementById('estado');
	if (form.estado.value==""){
		id.parentNode.innerHTML = '<input name="estado" type="text" id="estado" maxlength="50" onBlur="cambia(this)">';
		form.nedo.value="1";
	}
	else {
		form.nedo.value="0"; //Variable para saber si necesito dar de alta el estado
	}
}


//Función para mostrar estado
function muestraEstado(form,estado){
	if (form.value=="-1"){
		document.getElementById(estado).style.display='';
	}
	else {
		document.getElementById(estado).style.display='none';
	}
}

//Función para copiar la ciudad de activación en el formulario de datos de entrega
function actualizaCiudadAct(form) {
	var id = document.getElementById('ciudad_activacion');
	if (form.lada.value==""){
		id.parentNode.innerHTML = '<input name="ciudad_activacion" type="hidden" id="ciudad_activacion" size="22" maxlength="50"><input type="hidden" name="lada_activacion" id="lada_activacion" maxlength="3" value="">';
	}
	else {
		var xml = GetXmlHttpObject();
		xml.onreadystatechange = function() {
			if(xml.readyState==4) {
				id.parentNode.innerHTML = xml.responseText;
			}
		}
		xml.open("GET","busCiudadAct.php?id_lada="+form.lada.value,true);
		xml.send(null);		
	}	
}

//Función para modificar el action de un formulario	
	function modiaction(form){
	form.action="#";
	form.submit();
}

//Función para validar los clientes VIP
function validaClientesVIP(form){ //función para validar el formulario de clientes
	errores='';
	//nombre_envio
	if (form.nombre.value==''){
		errores+= ' - Nombre es obligatorio.\n';
	}
	//apellido_envio
	if (form.apellido.value==''){
		errores+= ' - Apellido es obligatorio.\n';
	}
	//Dirección de envio
	if (form.direccion.value==''){
		errores+= ' - Dirección es obligatorio.\n';
	}
	//ciudad de envio
	if (form.ciudad.value==''){
		errores+= ' - Ciudad es obligatorio.\n';
	}
	//país de envio
	if (form.id_pais.value==''){
			errores+= ' - País es obligatorio.\n';
	}		
	//estado envio
	if (form.id_estado.value==''){
			errores+= ' - Estado es obligatorio.\n';
	}		
	//Valido otro estado envio
	if (form.id_estado.value=="-1" && form.otro_estado.value==''){
		errores+= ' - Otro estado es obligatorio.\n';
	}
	//cp de envio
	if (form.cp.value==''){
		errores+= ' - Código Postal es obligatorio.\n';
	}
	//teléfono de envio
	if (form.telefono.value==''){
		errores+= ' - Teléfono es obligatorio.\n';
	}	
	//email
	if (form.email.value==''){
		errores+= ' - Email es obligatorio.\n';
	}
	//password
	if (form.rfc.value==''){
		errores+= ' - RFC es obligatorio.\n';
	}	
	//codigo
	if (form.codigo.value==''){
		errores+= ' - Código de seguridad es obligatorio.\n';
	}		
	if (errores!=''){
		alert('Ocurrieron los siguientes errores:\n\n'+errores);
		return false;
	}
	else {
		return true;
	}
}


// función para validar el password sean iguales
function passwd(psw,cnf){
	if (psw.value!=cnf.value){
		alert('Ocurrieron los siguientes errores:\n- La confirmación de la contraseña no coincide con la contraseña.');
		document.MM_returnValue = false;
	}
}

//Valida que el se haya dado clic sobre el check de confirmación
//de alguna confirmación
function validaConfirmacion(form,mensaje){
	if (form.checked==false){
		//Si hubo un error no mando mensajo
		if (document.MM_returnValue==true){
			alert(mensaje);
			document.MM_returnValue = false;
		}
	}
}


//Función para mostrado los <div> de conservar datos.
function muestra_conserva(pos){		
	//Obtengo la referencia para confirmación o no
	var confirma = document.getElementById("confirma_"+pos);	
	var div = document.getElementById("div_"+pos);

	//Valido si conserva o no
	//flChecked = valorNavegador();
	//alert(confirma.checked+" "+flChecked);
	//if (confirma.checked==flChecked){
	if (confirma.checked==true){
		div.style.display="block";
	}
	else{
		div.style.display="none";
	}
}

//Función para validar los datos de activación
function validaActivacion(){	
	var args=validaActivacion.arguments;
	var errores = '';
	for (i=0; i<(args.length); i++) {
		prod = i+1;
		//Obtengo el check de desea conservar los datos.
		var confirma = document.getElementById("confirma_"+args[i]);
		//Valido si va a conservar el producto con el número
		//flChecked = valorNavegador();
		if (confirma.checked == true){
			//Obtengo los campos a validar
			var chip = document.getElementById("chip_"+args[i]); //chip
			var chipConfirmacion = document.getElementById("confchip_"+args[i]); //confirmación de chip
			var serie = document.getElementById("serie_"+args[i]); //chip
			var serieConfirmacion = document.getElementById("confserie_"+args[i]); //confirmación de serie
			var celular = document.getElementById("celular_"+args[i]); //chip
			var celularConfirmacion = document.getElementById("confcelular_"+args[i]); //confirmación de celular


			//Valido si no están vacios
			if (chip.value=="" || chip.value.length!=18){
				errores += '- El número de chip para el producto '+prod+' es obligatorio y de 18 dígitos.\n';
			}
			if (serie.value==""){
				errores += '- El número de serie para el producto '+prod+' es obligatorio.\n';
			}
			if (celular.value=="" || celular.value.length!=10){
				errores += '- El número de celular para el producto '+prod+' es obligatorio y de 10 dígitos.\n';
			}									

			//Valido que los campos sean iguales
			if (chip.value!=chipConfirmacion.value){
				errores += '- El número de chip y la confirmación no son iguales para el producto '+prod+'.\n';
			}
			if (serie.value!=serieConfirmacion.value){
				errores += '- El número de serie y la confirmación no son iguales para el producto '+prod+'.\n';
			}
			if (celular.value!=celularConfirmacion.value){
				errores += '- El número de celular y la confirmación no son iguales para el producto '+prod+'.\n';
			}	
						
		}
	}
	
	if (errores==''){
		return true;
	}
	else{
		alert("Ocurrieron los siguientes errores:\n\n"+errores);
		return false;
	}
}

//Función para validar los datos de TAE
function validaTAE(){	
	var args=validaTAE.arguments;
	var errores = '';
	for (i=0; i<(args.length); i++) {
		prod = i+1;
		//Obtengo los campos a validar
		var lada = document.getElementById("lada_"+args[i]); //lada
		var celular = document.getElementById("celular_"+args[i]); //celular
		var celularConfirmacion = document.getElementById("confcelular_"+args[i]); //confirmación de celular
		//Obtengo la longitud de la lada, ya que puedo
		//tener ladas de 3 y 2 dígitos
		var longLada=lada.value.length

		//Valido si la lada no está vacia
		if (lada.value=="elegir"){
			errores += '- La lada para el producto '+prod+' es obligatoria.\n';
		}
		
		//Valido si no están vacios
		if (celular.value=="" || celular.value.length!=10){
			errores += '- El número de celular para el producto '+prod+' es obligatorio y de 10 dígitos.\n';
		}	
			
		//Valido que los campos sean iguales
		if (celular.value!=celularConfirmacion.value){
			errores += '- El número de celular y la confirmación no son iguales para el producto '+prod+'.\n';
		}
		
		//Valido si no es un número
		if (isNaN(celular.value))
			errores += '- El número de celular no es válido para el producto '+prod+'.\n';
		
		//Valido si capturó el teléfono
		if (celular.value!=""){
			var ladaNum = celular.value.substring(0,longLada)
			if (ladaNum!=lada.value){
				errores += '- La lada del número capturado no corresponde con la lada seleccionada para el producto '+prod+'.\n';
			}
		}		
	} //for
	
	if (errores==''){
		return true;
	}
	else{
		alert("Ocurrieron los siguientes errores:\n\n"+errores);
		return false;
	}
}

//Función que regresa True si es Firefox
//y false si es Explorer
function valorNavegador(){	
	if (document.all)
		return (false);
	else
		return (true);	
}

//Función para validar si tiene un plan contratado el cliente VIP
function muestraVencimiento(){
	var idRadio = MM_findObj("radPlan");
	var idTrPlan = MM_findObj("trPlan");
	//Valido si está seleccionada la opción "NO"
	if (idRadio[0].checked==true){
		idTrPlan.style.display="none";
		//limpio el campo
		var idVencimiento = MM_findObj("vencimiento");
		idVencimiento.value="";
	}
	else{
		idTrPlan.style.display="";
	}
}

