//dom('tipoPago').checked --> _tipoPago
var ro = null;
var selectCiudad = null;
var alertActivo=false;
var strProcesando='<blink>Procesando, espere un momento por favor...</blink><img src="/img/icons/work.gif" />';
var _tipoPago=0;
function dom(id){
	return document.getElementById(id);
}

function show(obj){		
	dom(obj).style.visibility = 'visible';
	dom(obj).style.display= 'inline';
}

function hide(obj){
	dom(obj).style.visibility = 'hidden';
	dom(obj).style.display= 'none';
}

function getJson(url){
	if(window.XMLHttpRequest){				// code for Mozilla, etc.
		if(ro) ro.abort;		
		 ro= new XMLHttpRequest();
	}else{
		if(window.ActiveXObject){// code for IE
			try{
				ro = new ActiveXObject("Msxml2.XMLHTTP");
			}catch(e){
				try{ro = new ActiveXObject("Microsoft.XMLHTTP");}catch(e){alert("Error al tratar de crear objeto XMLHttpRequest");}
			}
		}
	}
	if(ro){
		ro.onreadystatechange = onResult; ro.open("POST", url, true); ro.send(null);
  	}else{
		alert("No se pudo crear objeto XMLHttpRequest");
		return false;
	}
	return true;
}

function onResult(){
	if(ro.readyState == 4){
		if(ro.status == 200)	eval('(' + ro.responseText + ')');			
		else	alert("Surgió un problema al tratar de recuperar los datos XML");		
	}
	return 0;
}

function onChangeEdo(idEstado){
	if(idEstado != ""){
        getJson('/services/gatewayMax.php?op=getCiudades&callback=onFillCiudades&idEstado=' + idEstado);
	}
}

function removeAll(sel){
	while(sel.options.length>0)sel.remove(0);
}

function onFillCiudades(obj){
	if(obj.msgError=="ok"){
		var ops=obj.ciudades;		
		var s=dom("idCiudad");
		removeAll(s);
		for(i=0; i<ops.length; i++) s.options[i] = new Option(ops[i].nombre, ops[i].id);		
	}
}

function onChangeEdoFact(idEstado){
	if(idEstado != ""){
        getJson('/services/gatewayMax.php?op=getCiudades&callback=onFillCiudadesFact&idEstado=' + idEstado);
	}
}

function onFillCiudadesFact(obj){
	if(obj.msgError=="ok"){
		var ops=obj.ciudades;	
		var s=dom("idCiudadFact");
		removeAll(s);		
		for(i=0; i<ops.length; i++) s.options[i] = new Option(ops[i].nombre, ops[i].id);		
	}
}
//numeros de acceso
function onChangeEdoAcceso(idEstado){
	if(idEstado != ""){
        getJson('/services/gatewayMax.php?op=getCiudadesAcceso&callback=fillCiudadesAcceso&idEstado=' + idEstado);
	}
}

function fillCiudadesAcceso(obj){
	if(obj.msgError=="ok"){
		var ops=obj.ciudades;		
		var s=dom("idCiudadAcceso");
		removeAll(s);
		for(i=0; i<ops.length; i++) s.options[i] = new Option(ops[i].nombre, ops[i].id);		
	}
}
function crearUsuario(){
        
	var val=0;
	if(dom('idServicio').value==0){
		alert('Seleccione un producto');
		return;
	}
	val=validaDatosUser();
	if(val==1){
		if(_tipoPago==0){ 
			val=validaDatosTC();			
			var tipomsg="tarjeta de credito";		
		}else{ 
			if(_tipoPago==3){ 
				val=validaDatosCartera(); 			
				var tipomsg="cuenta de cartera";				 
			}
		}		
	}
	if(val==1 && dom('bolFactura').value=="YES")val=validaDatosFact();
	if(val!=1)return;
	
	var idServicio=parseInt(dom('idServicio').value);
	var msg=idServicio>1? dom('costoServicio').value+".00 MXP a su "+tipomsg : "1.00 MXP a su "+tipomsg+" para verificar los datos";
	var resp=confirm("Se realizara un cargo de $"+msg+", desea continuar?");
	//return false;
	if(resp==true){
		var params="&idServicio="+dom('idServicio').value+"&tipoPago="+_tipoPago+"&tipoUser="+(dom('chkNuevoUsuario').checked?'existente':'nuevo')+"&operador="+dom('operador').value+"&username="+dom('username').value+"&password="+dom('password').value+"&password2="+dom('password2').value+"&nombre="+dom('nombre').value+
		"&email="+dom('email').value+"&idEstado="+dom('idEstado').value+"&idCiudad="+dom('idCiudad').value+"&telefono="+dom("telefono").value+
		"&titular="+dom('titular').value+"&tarjeta="+dom('tarjeta').value+"&mes="+dom('mes').value+"&anio="+dom('anio').value+"&emisor="+dom('emisor').value+
		"&banco="+dom('banco').value+"&digitoVerif="+dom('digitoVerif').value+"&bolFactura="+dom('bolFactura').value+"&razonSocial="+dom('razonSocial').value+
		"&rfc="+dom('rfc').value+"&calle="+dom('calle').value+"&numCalle="+dom('numCalle').value+"&colonia="+dom('colonia').value+"&cp="+dom('cp').value+
		"&idEstadoFact="+dom('idEstadoFact').value+"&idCiudadFact="+dom('idCiudadFact').value+"&telefonoFact="+dom('telefonoFact').value+"&emailFact="+dom('emailFact').value+"&credencial="+dom('credencial').value+"&passOper="+dom('passOper').value+"&code="+dom('code').value+"&keyMD5="+dom('keyMD5').value;			
		dom('respuestaAjax').innerHTML=strProcesando;
		show('respuestas'); hide('divBotones');		
		
		getJson("/services/gatewayMax.php?op=crearUsuario&callback=onCrearUsuario"+params);
	}
}

function onCrearUsuario(obj){
	if(obj.msgError!="ok"){
		alert(obj.msgError);		
		show('divBotones'); hide('respuestas');
	}else{
		alert("Tu usuario fue creado exitosamente, por favor ingresa con tu cuenta.");
		window.location.href='/html/validaUser.php?action=movimientos.php';
	}	
}

//----
function setDatos(tipoValidacion){
	 
	if(tipoValidacion==0){
	var params="&username="+dom('username').value+"&password="+dom('password').value+"&password2="+dom('password2').value+"&nombre="+dom('nombre').value+
		"&email="+dom('email').value+"&idEstado="+dom('idEstado').value+"&idCiudad="+dom('idCiudad').value+"&telefono="+dom("telefono").value+
		"&tipoPago="+dom('tipoPago').value+"&titular="+dom('titular').value+"&tarjeta="+dom('tarjeta').value+"&mes="+dom('mes').value+"&anio="+dom('anio').value+"&emisor="+dom('emisor').value+
		"&banco="+dom('banco').value+"&digitoVerif="+dom('digitoVerif').value+"&bolFactura="+dom('bolFactura').value+"&razonSocial="+dom('razonSocial').value+
		"&rfc="+dom('rfc').value+"&calle="+dom('calle').value+"&numCalle="+dom('numCalle').value+"&colonia="+dom('colonia').value+"&cp="+dom('cp').value+
		"&idEstadoFact="+dom('idEstadoFact').value+"&idCiudadFact="+dom('idCiudadFact').value+"&telefonoFact="+dom('telefonoFact').value+"&emailFact="+dom('emailFact').value;
	}else{
	var params="&username="+dom('username').value+"&password="+dom('password').value+"&password2="+dom('password2').value+"&nombre="+dom('nombre').value+
                 "&email="+dom('email').value+"&idEstado="+dom('idEstado').value+"&idCiudad="+dom('idCiudad').value+"&telefono="+dom("telefono").value+
                 "&tipoPago="+dom('tipoPago').value;	
	}
	//alert(params)
	dom('respuestaAjax').innerHTML=strProcesando;
	show('respuestas'); hide('divBotones');	
	getJson("/services/gatewayMax.php?op=updateUser&callback=onDatos"+params);
}

function onDatos(obj){
	resp="";	
	if(obj.msgError!="ok"){
		alert('Error: '+obj.msgError);	
		show('divBotones'); hide('respuestas');		
	}else{
		window.location.href='/html/modreg.php';		
	}
}

function setTipoPago(){
	var params="&username="+dom('username').value+"&tipoPago="+_tipoPago+"&titular="+dom('titular').value+"&tarjeta="+dom('tarjeta').value+
		"&mes="+dom('mes').value+"&anio="+dom('anio').value+"&emisor="+dom('emisor').value+"&banco="+dom('banco').value+"&digitoVerif="+dom('digitoVerif').value+
		"&credencial="+dom('credencial').value+"&passOper="+dom('passOper').value+"&code="+dom('code').value+"&keyMD5="+dom('keyMD5').value;
	dom('respuestaAjax').innerHTML=strProcesando;
	show('respuestas'); hide('divBotones');
	getJson("/services/gatewayMax.php?op=cambiarTipoPago&callback=onTipoPago"+params);
}

function onTipoPago(obj){
	resp="";	
	if(obj.msgError!="ok"){
		alert('Error: '+obj.msgError);
		show('divBotones'); hide('respuestas');		
	}else{
		alert(obj.msg);		
		window.location.href='/html/modreg.php';		
	}
}

function cambiarSuscripcion(){
	if(dom('idServicio').value==0){
		alert('Elija un servicio');
		return false;
	}
	val=1;
	if(_tipoPago==0){
	         val=validaDatosTC();
        	 var tipomsg="tarjeta de credito";
  	}else{
        	if(_tipoPago==3){
                	val=validaDatosCartera();
                        var tipomsg="cuenta de cartera";
                }
       	}

	if(val==1){
		var idServicio=parseInt(dom('idServicio').value);
		var msg=idServicio>1? dom('costoServicio').value+".00 MXP a su "+tipomsg : "1.00 MXP a su "+tipomsg+" para verificar los datos";
		var resp=confirm("Se realizara un cargo de $"+msg+", desea continuar?");
		if(resp==true){
			var params="&username="+dom('username').value+"&idServicio="+dom('idServicio').value+"&tipoPago="+_tipoPago+"&titular="+dom('titular').value+"&tarjeta="+dom('tarjeta').value+
			"&mes="+dom('mes').value+"&anio="+dom('anio').value+"&emisor="+dom('emisor').value+"&banco="+dom('banco').value+"&digitoVerif="+dom('digitoVerif').value+"&credencial="+dom('credencial').value+"&passOper="+dom('passOper').value+"&code="+dom('code').value+"&keyMD5="+dom('keyMD5').value;		
			dom('respuestaAjax').innerHTML=strProcesando;
			show('respuestas'); hide('divBotones');						
			getJson("/services/gatewayMax.php?op=cambiarSuscripcion&callback=onCambiarSuscripcion"+params);
		}
	}
}

function onCambiarSuscripcion(obj){
	resp="";	
	if(obj.msgError!="ok"){
		alert('Error'+obj.msgError);
		show('divBotones'); hide('respuestas');		
	}else{
		alert("Cambio de suscripcion exitoso!");		
		window.location.href='/html/movimientos.php';		
	}
}

//---[Funcionalidad]---------------------------------------------------------------------
function showFactura(chk){
	if(chk.checked&&_tipoPago!=3){
		show('factura'); dom('bolFactura').value = "YES";
	}else{
		hide('factura'); dom('bolFactura').value = "NO";
		dom('bolFactura').checked=false;
	}
}

function showHideTarjeta(obj){ //mostrar u ocultar datos de tarjeta al cambiar forna de pago
	_tipoPago=obj.value;
	 if(obj.value=="0"){ 
		show('divTarjeta'); 
		hide('divCartera');
		show('divCaptcha');
		//dom('bolFactura').disabled=false;
	}else{ 
		if(obj.value=="3"){ 
			show('divCartera'); 
			hide('divTarjeta');
			show('divCaptcha');
			//dom('bolFactura').disabled=true;
		}else{ 
			hide('divTarjeta'); 
			hide('divCartera'); 
		 	//hide('divCaptcha');
		}
	}
	show('divBotones');
}

//seleccion de productos
function cambiaTipo(objRow, idTipo){
	if(objRow.className == 'rowOut')objRow.className = 'rowOver';
	else if(objRow.className == 'rowOver') objRow.className = 'rowOut';	
}

function eligeTipo(objRow, idTipo, costo){
	dom(objRow).value = idTipo;
	dom('costoServicio').value=costo;
	if(idTipo==1){
		dom('tipoPago2').disabled=true;
		dom('tipoPago').click();
		dom('tipoPago3').disabled=true;
	}else{		
		dom('tipoPago2').disabled=false;
		dom('tipoPago3').disabled=false;
	}
	dom('rbProducto'+idTipo).click();
}

function updateMovs(mes){
	dom('frameMovs').src="http://www.maxacelerado.com/html/movs.php?username="+dom('username').value+"&mes="+mes;
}

function switchFacturas(){	
	if(dom('modo').value=='cons'){		
		hide('movsBotones');
		dom('frameMovs').src="http://200.23.37.95/cgi-bin2/FacturaTCB/efact/tcardfactMax.html?username="+dom('username').value;
		dom('movsTitulo').src="/img/title_factura.gif";
		dom('movsBoton').src="/img/bot_saldo.gif";
		dom('modo').value='fact';
	}else{
		show('movsBotones');
		dom('frameMovs').src="http://www.maxacelerado.com/html/movs.php?username="+dom('username').value+"&mes="+0;
		dom('movsTitulo').src="/img/title_cons.gif";
		dom('movsBoton').src="/img/bot_factura.gif";
		dom('modo').value='cons';
	}
}

//numerosAcceso

function updateFrame(idCiudad){
	document.getElementById('resultado').src = "/html/numAccesoFrame.php?idCiudad=" + idCiudad;
}

//---[validaciones]----------------------------------------------------------------------------------------------

function validaDatos(_tipoPago){
	var val=0;
	if(_tipoPago==3){		
		val=validaDatosUser();
		if(val==1){
                         setDatos(3);
                 }
	}else{
		val=validaDatosUser();	
		if(val==1){
			if(dom('tipoPago').value==0){
				val=validaDatosTC();
			}						
		}
		if(val==1 && dom('bolFactura').value=="YES")val=validaDatosFact();
		if(val==1){
			setDatos(0);
		}
	}
}

function agregarArroba(obj){
	var usuario = obj.value;
	if(usuario.indexOf('@') == -1) obj.value = usuario + '@maxacelerado.com';	
}
    
function validarUsername(){
	if(alertActivo)return;
	if(dom('username').value == ''){
		alert('Introduzca el nombre del usuario.');
		dom('username').focus();
		return false;
	}
	var params="&username="+dom('username').value+"&password="+dom('password').value+"&tipo="+(dom('chkNuevoUsuario').checked?'existente':'nuevo');
	getJson("/services/gatewayMax.php?op=validarUsuario&callback=onValidarUsername"+params);
}



function onValidarUsername(obj){
	if(obj.msgError!="ok"){
		dom('imgUsuario').src="/img/icons/cancelado.png";
		alertActivo=true;
		alert(obj.msgError);		
		if(obj.msgError.substring(0, 3)=='Con') dom('password').focus(); else dom('username').focus();
	}else{
		dom('imgUsuario').src="/img/icons/preactivo.png";
	}
	alertActivo=false;
}


function validarTipoPago(){
	val=1;	
	var tipomsg;
	if(_tipoPago==0){
		val=validaDatosTC();
		tipomsg="tarjeta de credito";	
	}else{ 
		val=validaDatosCartera();
		tipomsg="cuenta de cartera";
	}
	
	if(val==1){
		if(_tipoPago==0||_tipoPago==3){
			if(confirm("Se hara un cargo a su "+tipomsg+" por el costo del servicio..\n\nDesea continuar con el cambio de su forma de pago?")) setTipoPago();
		}else setTipoPago();
	}
}

function validaDatosUser(){
	if(dom('password').value == ""){
		alert("La contraseña no puede estar vacía");	
		dom('password').select();
		return false;
	}
	if(dom('password2').value == ""){
		alert("La contraseña de filtrado de contenido no puede estar vacía");
		dom('password2').select();
		return false;
	}
	if(dom('email').value == ""){
		alert("Introduzca su email");	
		dom('email').select();
		return false;
	}
	if(dom('idEstado').value == ""){
		alert("Elija un estado");
		dom('idEstado').select();
		return false;
	}
	if(dom('idCiudad').value == ""){
		alert("Elija una ciudad");	
		dom('idCiudad').select();
		return false;
	}	

	return 1;
}

function validaDatosTC(){
	if(dom('titular').value == ""){
		alert("El titular de la tarjeta no puede estar vacío");	
		dom('titular').select();
		return false;
	}
	if(dom('tarjeta').value == ""){
		alert("El número de tarjeta no puede estar vacío");
		dom('rfc').select();
		return false;
	}
	if(dom('digitoVerif').value == ""){
		alert("El dígito verificador de la tarjeta no puede estar vacío");	
		dom('digitoVerif').select();
		return false;
	}
	if(dom('banco').value == ""){
		alert("El banco no puede estar vacío");	
		dom('calle').select();
		return false;
	}
	if(dom('emisor').value == ""){
		alert("El emisor de la tarjeta no puede estar vacío");	
		dom('emisor').select();
		return false;
	}
	if(dom('mes').value == 0){
		alert("Eliga el mes de fecha de expiración de la tarjeta");
		dom('mes').focus();
		return false;
	}
	if(dom('anio').value == 0){
		alert("Eliga el año de fecha de expiración de la tarjeta");
		dom('anio').focus();
		return false;
	}
	
	if(dom('tarjeta').value.length < 15){
		alert("La tarjeta debe ser de 16 dígitos para VISA o MASTERCARD y 15 dígitos para AMERICAN EXPRESS.");
		return false;
	}
	if(dom('code').value == ""){
                alert("El código de la imagen no puede estar vacío");
                dom('code').select();
                return false;
        }
	
    return 1;
}

function validaDatosCartera(){

	if(dom('credencial').value == ""){
                alert("El usuario de cartera no puede estar vacío");
                dom('credencial').select();
                return false;
        }
	if(dom('passOper').value == ""){
                alert("El password de operación no puede estar vacío");
                dom('passOper').select();
                return false;
        }
	if(dom('code').value == ""){
                alert("El código de la imagen no puede estar vacío");
                dom('code').select();
                return false;
        }
	return 1;
}

function validaDatosFact(){
	if(dom('razonSocial').value == ""){
		alert("La razón social no puede estar vacía");	
		dom('razonSocial').select();
		return false;
	}
	if(dom('rfc').value == ""){
		alert("El RFC no puede estar vacío");
		dom('rfc').select();
		return false;
	}
	if(dom('calle').value == ""){
		alert("El campo 'calle' no puede estar vacío");	
		dom('calle').select();
		return false;
	}
	if(dom('numCalle').value == ""){
		alert("El campo 'número' no puede estar vacío");	
		dom('calle').select();
		return false;
	}
	if(dom('colonia').value == ""){
		alert("El campo 'colonia' no puede estar vacío");	
		dom('colonia').select();
		return false;
	}
	if(dom('idEstado').value == ""){
		alert("Elija un estado");
		dom('idEstado').select();
		return false;
	}
	if(dom('idCiudad').value == ""){
		alert("Elija una ciudad");	
		dom('idCiudad').select();
		return false;
	}
	if(!validaRFC(dom('rfc').value))	return false;	
	return 1;
}

function validaRFC(input){
	formato = /[A-Z]{3,4}\d{6}[0-9a-zA-Z]{1}[A-Z]{1}[0-9a-zA-Z]{1}/;
	if (!formato.exec(input) || input.length > 14){
		window.alert("El RFC no es válido\n");
		dom('rfc').focus();
		return false;
	}
	dom('rfc').value.toUpperCase();
	return true;
}

function cambiaEmisor(){
	if(dom('emisor').value == "AMEX"){
		dom('banco').value = "AMEX";
		dom('emisor').readOnly = true;
	}
	else{
		dom('banco').value = "";
		dom('banco').readOnly = false;
	}
}

