if($.browser.msie==true && $.browser.version<7)
	alert('Esta web está optimizada para versiones de Internet Explorer superiores a la 6. \nDeberá actualizar su navegador.');

// ===================================================================
// Funciones de utilidad general
// ===================================================================

// ===================================================================
// validaEmail. Comprueba el formato correcto de la cadena pasada como
//              parametro. Devuelve true si es una direccion de correo
//              valida.
// ===================================================================
function validaEmail( email) {
    if( email != "") 
    {
        if( email.indexOf('@',0) <= 0  || email.indexOf(';',0) != -1
          || email.indexOf(' ',0) != -1 || email.indexOf('/',0) != -1
          || email.indexOf(';',0) != -1 || email.indexOf('<',0) != -1
          || email.indexOf('>',0) != -1 || email.indexOf('*',0) != -1
          || email.indexOf('|',0) != -1 || email.indexOf('`',0) != -1
          || email.indexOf('&',0) != -1 || email.indexOf('$',0) != -1
          || email.indexOf('!',0) != -1 || email.indexOf('"',0) != -1
          || email.indexOf(':',0) != -1 )
          {
                //alert("Carateres no validos en la direccion de email");
                alert("Formato de email incorrecto");
                return false;
          }   
        posArroba = email. indexOf("@", 1); // debe haber una @
        if( posArroba == -1)
        {
            alert("Debe haber una arroba  en la direccion de email");
            return false;
        } 
        if( email. indexOf("@", posArroba+ 1) != -1)
        {
            alert("No puede haber mas de una arroba en la direccion de email");
            return false;
        } 

        posDosPuntos = email. indexOf("..", 1); // no puede haber 2 puntos seguidos
        if( posDosPuntos != -1)
        {
            alert("No puede haber dos puntos seguidos");
            return false;
        } 

        // y sólo una
        posPunto = email. indexOf(".", posArroba);
        if( posPunto == -1)
        {
            alert("Debe haber al menos un punto en la direccion de email");
            return false;
        } 
        // y al menos un . después de la @

        //cogo la parte 1 hasta la @ y la parte 2 el resto 
        parte1=email.split("@")[0];
        var len1=parte1.length;
        parte2=email.split("@")[1];
        var len2=parte2.length;
        // compruebo que cada parte tiene informacion
        if (len1 <= 0)
        {
            alert("El prefijo de la arroba no puede estar vacio");
            return false;
        } 
        if (len2 <= 0)
        {
            alert("El sufijo de la arroba no puede estar vacio");
            return false;
        } 
        // debe haber al menos 2 caracteres tras el .
        // compruebo que despues del ultimo punto, hay 2 o 3 o 4 caracteres
        var c1=parte2.charAt(len2-3);
        var c2=parte2.charAt(len2-4);
        var c3=parte2.charAt(len2-5);
        if (!(c1 =="." || c2 =="." || c3 =="."))
        {
            alert("Debe haber 2, 3 o 4 caracteres tras el punto");
            return false;
        } 
        //compruebo que cada parte no empieze ni termine en punto
        c1=parte1.charAt(0);
        c2=parte2.charAt(0);
        if (c1 =="." || c2 ==".")
        {
            alert("Formato de email incorrecto");
            return false;
        } 
        c1=parte1.charAt(len1-1);
        c2=parte2.charAt(len2-1);
        if (c1 =="." || c2 ==".")
        {
            alert("Formato de email incorrecto");
            return false;
        } 
    }
    return true;
}

// ===================================================================
// validaCodComercial. Comprueba el formato del codigo comercial
//              pasado como parametro.
// ===================================================================
function validaCodComercial( codComercial) {
    if (codComercial != "")
    {
    	if ( codComercial.length != 7 || !isAlpha(codComercial.charAt(0)) 
    	  || !isDigit(codComercial.charAt(1)) || !isDigit(codComercial.charAt(2))
    	  || !isDigit(codComercial.charAt(3)) || !isDigit(codComercial.charAt(4))
    	  || !isDigit(codComercial.charAt(5)) || !isDigit(codComercial.charAt(6)))
    	{
    		alert("Formato de codigo comercial incorrecto. El codigo comercial debe contener una letra seguida de seis digitos. Ej: M003568");
        return false;
    	}
    }
    return true;
}

// ===================================================================
// validaCodPostal. Comprueba el formato del codigo postal
//              pasado como parametro.
// ===================================================================
function validaCodPostal( codPostal) {
    if (codPostal != "")
    {
    	if ( codPostal.length != 5 || !isDigit(codPostal.charAt(0)) 
    	  || !isDigit(codPostal.charAt(1)) || !isDigit(codPostal.charAt(2))
    	  || !isDigit(codPostal.charAt(3)) || !isDigit(codPostal.charAt(4)))
    	{
    		alert("Formato de codigo postal incorrecto. El codigo postal debe contener un numero de 5 digitos, rellenando con 0 a la izquierda si es necesario. Ej: 02134");
        return false;
    	}
    }
    return true;
}

// ===================================================================
// isAlpha. Devuelve true si el caracter pasado es alfabetico
// ===================================================================
function isAlpha( c ) {
        return (c >= 'a' && c <= 'z\uffff') || (c >= 'A' && c <= 'Z\uffff');
}
// ===================================================================
// isDigit. Devuelve true si el caracter pasado es un numero
// ===================================================================
function isDigit( c ) {
        return (c >= '0' && c <= '9');
}

// ===================================================================
// validaAlfanumerico. Devuelve true si la cadena pasada es alfanumerica
// ===================================================================
function validaAlfanumerico(cadena) {
        var plant = /[^\w^@^\.^-^(^)^/^,^ ]+/gi;
        if (plant.test(cadena))
        {
          //alert("Por favor no utilizar los caracteres siguientes : acentos, \xf1 (poner n), ^, \xe7, \xB0, \xAA.")
            return false;  
         }
        else
        {        
            return true;
        }
    }

// ===================================================================
// pasarMayusculas. Transforma la cadena a mayusculas
// ===================================================================
function pasarMayusculas(cadena) {
    var result="";
    var str = cadena.split('');
    
    for(i=0; i<=str.length-1; i++) {
        if (isAlpha(str[i]))
          str[i] = str[i].toUpperCase();
        result+=str[i];
    }
    return(result);
}

function reemplazarPorEnlaces(str) { 
	var ahora = new Date().getTime();
	return str.replace(' carro', ' <a href="/cart.screen?ts='+ahora+'">carro</a>')
	.replace(' cuenta_guardados', ' <a href="/cuenta.screen?ts='+ahora+'#guardados">cuenta</a>')
	.replace(' favoritos', ' <a href="/cuenta.screen?ts='+ahora+'#favoritos">favoritos</a>');
}

//===================================================================
//callbackJSON. Maneja la respuesta JSON a peticiones Ajax
//===================================================================

function callbackJSON(datos) {
	if($.jGrowl) {
		$.jGrowl.defaults.position = 'bottom-right';
		$.jGrowl.defaults.life = 6000;
	}
	if(datos) {
		if(datos.error) {
			/*if($.jGrowl) {
				$.jGrowl(datos.error);
			}
			else */
			alert(datos.error);
			if(datos.sesion && datos.sesion=='0')
				window.location.href="main.screen";
			return false;
		}
		else if(datos.aviso || datos.msj) {
			if($.jGrowl) {
				var a = datos.aviso?'<span class="errorRefXprs" style="clear:both;margin-top:5px;display:block;">'+reemplazarPorEnlaces(datos.aviso)+'</span>':'';
				$.jGrowl(reemplazarPorEnlaces(datos.msj)+reemplazarPorEnlaces(a), {sticky: false, theme: 'gerror'});
			}
			else alert(datos.msj + (datos.aviso?'\n\nAviso: '+datos.aviso:''));
			return true;
		}
		return true;
	}
}
//===================================================================
//isNumeric. Comprueba si el valor introducido es numérico
//===================================================================
function isNumeric(form_value) { 
	if (form_value.match(/^\d+$/) == null) 
		return false; 
	else 
		return true; 
}
//===================================================================
//isFloat. Comprueba si el valor introducido es un float
//===================================================================
function isFloat(value) {
	if(isNaN(value) || value.indexOf(".")<0) {
		return false;
	} else {
		if(parseFloat(value)) {
			return true;
		} else {
			return false;
		}
	}
}

function isEmail(email) {
	return (/^[a-z0-9]([a-z0-9_\-\.]*)@([a-z0-9_\-\.]*)(\.[a-z]{2,6}(\.[a-z]{2}){0,2})$/i.test(email))
}