var ro = null;
var selectCiudad = null;
var alertActivo=false;

function dom(id){
	return document.getElementById(id);
}

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("Surgio 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(dom('tipoPago').checked){
			val=validaDatosTC();
		}
	}
	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 tarjeta de credito" : "1.00 MXP a su tarjeta de credito para verificar los datos";
	var resp=confirm("Se realizara un cargo de $"+msg+", desea continuar?");	
	if(resp==true){
		var params="&idServicio="+dom('idServicio').value+"&tipoPago="+(dom('tipoPago').checked? '0' : '2')+"&tipoUser="+(dom('chkNuevoUsuario').checked?'existente':'nuevo')+"&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;			
		dom('respuestaAjax').innerHTML='<blink>Procesando, espere un momento por favor...</blink><img src="/img/icons/work.gif" />';
		dom('respuestas').style.display='inline';
		dom('divBotones').style.display='none';	
		getJson("/services/gatewayMax.php?op=crearUsuario&callback=onCrearUsuario"+params);
	}
}

function onCrearUsuario(obj){
	if(obj.msgError!="ok"){
		alert(obj.msgError);		
		dom('respuestas').style.display='none';
		dom('divBotones').style.display='inline';	
	}else{
		alert("Tu usuario fue creado exitosamente, por favor ingresa con tu cuenta.");
		window.location.href='/html/validaUser.php?action=movimientos.php';
	}	
}

//----
function setDatos(){
	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;			
	dom('respuestaAjax').innerHTML='<blink>Procesando, espere un momento por favor...</blink><img src="/img/icons/work.gif" />';
	dom('respuestas').style.display='inline';
	dom('divBotones').style.display='none';
	getJson("/services/gatewayMax.php?op=updateUser&callback=onDatos"+params);
}

function onDatos(obj){
	resp="";	
	if(obj.msg!="ok"){
		alert('Error: '+obj.msg);	
		//boton = '<input type="button" value="Ok" onclick="dom(\'respuestas\').style.display=\'none\'; dom(\'divBotones\').style.display=\'inline\';"/>';
		//dom('respuestaAjax').innerHTML='<table><tr><thead><th>' + resp + '</th></thead></tr><tr><td>' + boton + '</td></tr></table>';
	}else{
		window.location.href='/html/modreg.php';		
	}
}

function setTipoPago(){
	var params="&username="+dom('username').value+"&tipoPago="+(dom('tipoPago').checked? '0' : '2')+"&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;
	dom('respuestaAjax').innerHTML='Procesando';
	dom('respuestas').style.display='inline';
	dom('divBotones').style.display='none';	
	getJson("/services/gatewayMax.php?op=cambiarTipoPago&callback=onTipoPago"+params);
}

function onTipoPago(obj){
	resp="";	
	if(obj.msgError!="ok"){
		alert('Error: '+obj.msgError);
		/*resp='<b>Error:</b><br />'+obj.msgError;	
		boton = '<input type="button" value="Ok" onclick="dom(\'respuestas\').style.display=\'none\'; dom(\'divBotones\').style.display=\'inline\';"/>';
		dom('respuestaAjax').innerHTML='<table><tr><thead><th>' + resp + '</th></thead></tr><tr><td>' + boton + '</td></tr></table>';*/
	}else{
		alert(obj.msg);
		dom('respuestas').style.display='none';
		dom('divBotones').style.display='inline';
		window.location.href='/html/modreg.php';		
	}
}

function cambiarSuscripcion(){
	if(dom('idServicio').value==0){
		alert('Elija un servicio');
		return false;
	}
	val=1;
	if(dom('tipoPago').checked){
		val=validaDatosTC();
	}
	if(val==1){
		var idServicio=parseInt(dom('idServicio').value);
		var msg=idServicio>1? dom('costoServicio').value+".00 MXP a su tarjeta de credito" : "1.00 MXP a su tarjeta de credito 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="+(dom('tipoPago').checked? '0' : '2')+"&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;		
			dom('respuestaAjax').innerHTML='<blink>Procesando, espere un momento por favor...</blink><img src="/img/icons/work.gif" />';
			dom('respuestas').style.display='inline';
			dom('divBotones').style.display='none';		
			getJson("/services/gatewayMax.php?op=cambiarSuscripcion&callback=onCambiarSuscripcion"+params);
		}
	}
}

function onCambiarSuscripcion(obj){
	resp="";	
	if(obj.msgError!="ok"){
		alert('Error'+obj.msgError);
		//boton = '<input type="button" value="Ok" onclick="dom(\'respuestas\').style.display=\'none\'; dom(\'divBotones\').style.display=\'inline\';"/>';
		//dom('respuestaAjax').innerHTML='<table><tr><thead><th>' + resp + '</th></thead></tr><tr><td>' + boton + '</td></tr></table>';
	}else{
		alert("Cambio de suscripcion exitoso!");		
		dom('respuestas').style.display='none';
		dom('divBotones').style.display='inline';
		window.location.href='/html/movimientos.php';		
	}
}

//---[Funcionalidad]---------------------------------------------------------------------
function showFactura(chk){
	if(chk.checked){
		//dom('factura').style.height = '290px';		
		dom('factura').style.visibility = 'visible';
		dom('factura').style.display= 'inline';
		dom('bolFactura').value = "YES";
	}else{
		//dom('factura').style.height = '0px';
		dom('factura').style.visibility = 'hidden';
		dom('factura').style.display= 'none';
		dom('bolFactura').value = "NO";
	}
}

function showHideTarjeta(obj){ //mostrar u ocultar datos de tarjeta al cambiar forna de pago
	if(obj.value=="0"){
		dom('divTarjeta').style.height = '125px'; dom('divTarjeta').style.visibility = 'visible';		
	}else{
		dom('divTarjeta').style.height = '0px'; dom('divTarjeta').style.visibility = 'hidden';
	}
}

//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();
	}else{
		dom('tipoPago2').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;
}

//movimientos

function switchFacturas(){	
	if(dom('modo').value=='cons'){
		dom('movsBotones').style.visibility = 'hidden';
		dom('movsBotones').style.height='0px';
		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{
		dom('movsBotones').style.visibility = 'visible';
		dom('movsBotones').style.height='20px';
		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(){
	var val=0;
	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();
	}
}

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+"\n"+obj.msgError.substring(0, 3));		
		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;
	if(dom('tipoPago').checked){
		val=validaDatosTC();
	}
	if(val==1)setTipoPago();
}

function validaDatosUser(){
	if(dom('password').value == ""){
		alert("La contrasena no puede estar vacia");	
		dom('password').select();
		return false;
	}
	if(dom('password2').value == ""){
		alert("La contrasena de filtrado de contenido no puede estar vacia");
		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 vacio");	
		dom('titular').select();
		return false;
	}
	if(dom('tarjeta').value == ""){
		alert("El numero de tarjeta no puede estar vacio");
		dom('rfc').select();
		return false;
	}
	if(dom('digitoVerif').value == ""){
		alert("El digito verificador de la tarjeta no puede estar vacio");	
		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 vacio");	
		dom('emisor').select();
		return false;
	}
	if(dom('mes').value == 0){
		alert("Eliga el mes de fecha de expiracion de la tarjeta");
		dom('mes').focus();
		return false;
	}
	if(dom('anio').value == 0){
		alert("Eliga el anio de fecha de expiracion de la tarjeta");
		dom('anio').focus();
		return false;
	}
	
	if(dom('tarjeta').value.length < 15){
		alert("La tarjeta debe ser de 16 digitos para VISA o MASTERCARD y 15 digitos para AMERICAN EXPRESS.");
		return false;
	}	
    return 1;
}

function validaDatosFact(){
	if(dom('razonSocial').value == ""){
		alert("La razon social no puede estar vacia");	
		dom('razonSocial').select();
		return false;
	}
	if(dom('rfc').value == ""){
		alert("El RFC no puede estar vacio");
		dom('rfc').select();
		return false;
	}
	if(dom('calle').value == ""){
		alert("El campo 'calle' no puede estar vacio");	
		dom('calle').select();
		return false;
	}
	if(dom('numCalle').value == ""){
		alert("El campo 'numero' no puede estar vaio");	
		dom('calle').select();
		return false;
	}
	if(dom('colonia').value == ""){
		alert("El campo 'colonia' no puede estar vacio");	
		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 valido\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;
	}
}
