/***
 Funciones de javascript se utilizan donde se captan un host y un email
***/

function newXMLHttpRequest() {
    var xmlreq = false;

    if (window.XMLHttpRequest) {
        xmlreq = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        try {
            xmlreq = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e1) {
            try {
                xmlreq = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e2) { }
        }
    }
    return xmlreq;
}

function getReadyStateHandler(req, responseXmlHandler) {
    return function () {
        if (req.readyState == 4) {
            if (req.status == 200) {
                responseXmlHandler(req.responseXML);
            } else {
                //alert("HTTP error: " + req.status);
            }
        }
    }
}

function getReadyStateHandlerText(req, responseXmlHandler) {
    return function () {
        if (req.readyState == 4) {
            if (req.status == 200) {
                responseXmlHandler(req.responseText);
            } else {
                //alert("HTTP error: " + req.status);
            }
        }
    }
}

function getReadyStateHandler2(req, responseXmlHandler) {
    return function () {
        if (req.readyState == 4) {
            if (req.status == 200) {
                responseXmlHandler(req.responseText);
            } else {
                //alert("HTTP error: " + req.status);
            }
        }
    }
}




/*Funcion para mostrar los mensajes a usuario, una ves que se ejecuto la accion.*/
                        function showMessage( myHtmlRequest)
                        {
			     var myObject = eval('(' +  myHtmlRequest + ')');
                             var intMessageId= parseInt(myObject['RESULTADO']);
                             var strMessage='';
                             switch( intMessageId )
                             {
                                      case 1: 
                                              if( myObject['LANGUAGE'] == 'es'  ){  
	                                              strMessage='<span style=\'color:blue;\'>Tu correo y codigo postal se agregaron exitosamente.</span>';
					      }else{	
						      strMessage='<span style=\'color:blue;\'>Your email and zip code were successfully added.</span>';
					      }		
                                              SendWelcomeAlert();
					      setTimeout("document.getElementById('aemail').value=document.getElementById('aemail').defaultValue; VerifyEmailZipCodeToEnableForm();",8000);
                                              setTimeout("document.getElementById('azipcode').value=document.getElementById('azipcode').defaultValue; VerifyEmailZipCodeToEnableForm();",8000); 
                                              break;
                                      case 0: 
					      if( myObject['LANGUAGE'] == 'es'  ){
 	                                      	      strMessage='<span style=\'color:red;\'>Tu correo ya existe en nuestro datos.</span>';
					      }else{	
						      strMessage='<span style=\'color:red;\'>Your email is already in our database.</span>';
					      }
					      setTimeout("document.getElementById('aemail').value=document.getElementById('aemail').defaultValue; VerifyEmailZipCodeToEnableForm();",8000);
                                              setTimeout("document.getElementById('azipcode').value=document.getElementById('azipcode').defaultValue; VerifyEmailZipCodeToEnableForm();",8000);
                                              break;
                                      case -1:
					      if( myObject['LANGUAGE'] == 'es'  ){  
 	                                      		strMessage='<span style=\'color:red;\'>Verifica tu correo o zipcode,tienes datos incorrectos.</span>';
					      }else{	
						      strMessage='<span style=\'color:red;\'>Please verify your email or zip code.Some of the data you entered is incorrect.</span>';
					      }		
        
                                              break;
                                      default:;
                             }
                             document.getElementById('email_message').innerHTML='<b>'+strMessage+'</b>';
			     setTimeout("document.getElementById('email_message').innerHTML='';  ",5000);
                        }
/*
                        function showNewsLetterOptions(){
                             if(document.getElementById( 'divNewsLetter' ).style.display!='' )
                             {
                                 document.getElementById( 'header' ).style.height='200px';  
                                 document.getElementById('idSendButton').style.marginTop='5px';   
                                 document.getElementById( 'divNewsLetter' ).style.display='';    

                             }else{
                                 addEmailZipcode();
                             }
                        }  */
/**
 * Funcion hecha para las opciones de los newsletters que el
 * usuario queire recibir esta funcion cuando se selecciona
 * la primera opcion se deselecciona las demas y si se 
 * selecciona una de las demas opciones se deselecciona la 
 * primera
 *  
 * @param oObje input seleccionado, para poder checar los 
 * atributos
 *
 * @return void
 */
function checkNewsletterOptions(oObj)
{
    if(oObj)
    {
	var oContainer = document.getElementById('sb-content');
        var oMaxInput  = document.getElementById('max_bitValue');
	if(oContainer && oMaxInput)
	{
	    var arrOptions = oContainer.getElementsByTagName('input');
	    if(oObj.value == oMaxInput.value && oObj.checked == true)
	    {
		var numTotal = arrOptions.length; 
		for (x = 0; x < numTotal; x++)
		{
		    oInput = arrOptions[x];
                    if(oInput.value != oMaxInput.value)
                    {
		        oInput.checked = false;
                    }
		}
	    }else if(oObj.checked == true)
	    {
                arrOptions[0].checked = false;
	    }
	}
    }
}

/**
 * Funcion que obtiene el total de los bits de las secciones 
 * seleccionadas para recibir newsletters
 *
 * @return int total de los bits seleccionados
 */
function getNewslettersProgramBits()
{
    var oContainer = document.getElementById('sb-content');
    var numRetValue = 0;
    if(oContainer)
    {
	var arrOptions = oContainer.getElementsByTagName('input');
	var numTotal   = arrOptions.length; 
	for (x = 0; x < numTotal; x++)
	{
	    oInput = arrOptions[x];
	    if(oInput.checked )
	    {   
		if(isInteger(oInput.value))
		{
		    numRetValue = numRetValue + parseInt( oInput.value );
		}
	    }
	}
    }
    return numRetValue;
}

/**
 * Funcion para verificar que un valor sea entero
 * @param strValue valor a verificar
 *
 * @return <code>true</code> si el valor es entero, <code>false</code> en caso
 * contrario
 */
function isInteger(strValue)
{
    return (strValue.toString().search(/^-?[0-9]+$/)==0);
}


var m_blnIsOpenEmailRegister = false;
/**
 * Funcion que verifica si se cerro un shadowbox del registro para lanzar el registro
 *
 * @return void 
 */
function SaveEmailatClose(){
    if( m_blnIsOpenEmailRegister ){
        addEmailZipcode();
        m_blnIsOpenEmailRegister=false;
    }
}

/**
 * Funcion que cambia la bandera para el registro de add mail and zipcode
 *
 * @return void 
 */
function setFlagOpenEmailRegister(){
    m_blnIsOpenEmailRegister = true;
}

/**
 * Funcion que cambia la bandera para el registro de add mail and zipcode
 *
 * @return void 
 */
function setFlagCloseEmailRegister(){
    m_blnIsOpenEmailRegister = false;
}

/**
 * Funcion que Muestra el error si se le da click a Subscribirse y los datos no son validos
 * @param strLanguage string el lenguaje que se va a mostrar el mensaje
 *
 * @return void 
 */
function ShowMessageInvalidEmailRegister(strLanguage){
    if( strLanguage == 'es'  ){  
        strMessage='<span style=\'color:red;\'>Verifica tu correo o zipcode,tienes datos incorrectos.</span>';
    }else{	
        strMessage='<span style=\'color:red;\'>Please verify your email or zip code.Some of the data you entered is incorrect.</span>';
    }
    document.getElementById('email_message').innerHTML='<b>'+strMessage+'</b>';
    setTimeout("document.getElementById('email_message').innerHTML='';  ",5000);
}

/**
 * Funcion que verifica si los datos son correctos para mostrar la forma de los correos a seleccionar 
 *
 * @return void 
 */
function VerifyEmailZipCodeToEnableForm( ){
    if( document.getElementById('aemail') && document.getElementById('azipcode') ){
        var strEmail   = document.getElementById('aemail').value;
        var strZipCode = document.getElementById('azipcode').value;
        var expEmail = /^[a-z0-9]+[a-z0-9-_\.]*@[a-z0-9]+(\.[a-z]{2,3}){1,2}$/;
        if( strEmail != 'Email' && strZipCode != 'Zip code' && strZipCode != 'C&oacute;digo postal' && expEmail.test( strEmail ) && strEmail != ''){
            document.getElementById( 'idSendButton' ).style.display='';
            document.getElementById( 'idSendButton_verify' ).style.display='none';
        }else{
            document.getElementById( 'idSendButton' ).style.display='none';
            document.getElementById( 'idSendButton_verify' ).style.display='';
        }
    }
}

/**
 * Funcion que envia la alerta de correo en dado caso que se registre correctamente el usuario
 *
 * @return void
 */
function SendWelcomeAlert(){
    if( document.getElementById('aemail') &&  document.getElementById('language') ){
        try{
            var strEmail     = document.getElementById('aemail').value;
            var strLanguage  = document.getElementById('language').value;
            var req = newXMLHttpRequest();
            req.open("POST", "/actions/SendWelcomeAlert.php", true);
            req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
            var url = "email="+strEmail+"&language="+strLanguage;
            req.send( url );
        }catch(err){}
    }
}
                        function addEmailZipcode(  )
                        {
                            try{
                                  
				    if( document.getElementById('aemail') && document.getElementById('azipcode') )
				    {
					var strEmail     = document.getElementById('aemail').value;
					var strZipCode   = document.getElementById('azipcode').value;
					var strLanguage  = document.getElementById('language').value;
					var numTotalBits = getNewslettersProgramBits();
					var req = newXMLHttpRequest();
					var handlerFunction = getReadyStateHandlerText( req , showMessage );
					req.onreadystatechange = handlerFunction;
					req.open("POST", "/actions/addEmailZipCode.php", true);
					req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
					var url = "email="+strEmail+"&zipcode="+strZipCode+"&bit="+numTotalBits+"&language="+strLanguage;
					req.send( url );
				    }
				}catch(err){
                                } 
			} 
