String.prototype.trim = function (){
    return this.replace(/(^\s+)/g, "").replace(/(\s+$)/g, "");
}

function isValidEmail(email) {
    var re = /^ *([a-z0-9_-]+\.)*[a-z0-9_-]+@(([a-z0-9-]+\.)+(com|net|cat|org|mil|edu|gov|arpa|info|biz|inc|name|[a-z]{2})|[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}) *$/;
    return (re.test(email.toLowerCase()));
}

function isValidUsernamePassword(value) {
    re = /^\w+$/;
    return (re.test(value.toLowerCase()));
    //return value != "";
}


function isValidPostcode(value) {
    re = /\d{5}/;
    return (re.test(value.toLowerCase()));
    //return value != "";
}     
function isValidPostcodePt(value) {
    re = /\d{4}/;
    return (re.test(value.toLowerCase()));
    //return value != "";
}     


function isValidTelephone(campo) {
    str=campo.value;
    str=str.replace(/\./g,'');
    str=str.replace(/-/g,'');
    str=str.replace(/_/g,'');
    str=str.replace(/\+/g,'');
    str=str.replace(/ /g,'');
    campo.value=str;
        
    re = /^((\+[0-9]{0,3})*)([0-9]{9})$/;
    return (re.test(campo.value.toLowerCase()));
    //return value != "";
}  

function pressEnter(e,nameForm,nextField,validateBy)
{
    var keynum;
    var keychar;
    
    if(window.event) // IE
     {
     keynum = e.keyCode;
     }
    else if(e.which) // Netscape/Firefox/Opera
     {
     keynum = e.which;
     }
    //keychar = String.fromCharCode(keynum);
    if (keynum==13)
    {
        if (nextField!="")
        {
            eval('document.forms["' + nameForm + '"]["' + nextField + '"].focus();');
        }
        else
        {
            if (validateBy=="")
            {
                eval('document.forms["' + nameForm + '"].submit();');
            }
            else
            {
                eval(validateBy);
            }
        }
    }
}

function esNIF(campo){
	var er = /^[KLMX0-9]\d{7}[A-Z]$/i;
	campo.value = campo.value.trim();
	return er.test(campo.value);
}

function esCIF(campo){
	var er = /^[A-HPQS]\d{7}[A-J0-9]$/i;
	campo.value = campo.value.trim();
	return er.test(campo.value);
}

function vNIFCIF(campo, descripcion, requerido, idioma){
	if ((!requerido) && campo.value.trim() == "") return true;

	if (esCIF(campo)) return vCIF(campo, descripcion, requerido, idioma);
	else if (esNIF(campo)) return vNIF(campo, descripcion, requerido,idioma);
	else{
		return false;
	}
}

function vCIF(cif, descripcion, requerido, idioma){
	var letraIni, num, dig, res, i;
	var valido = true;

	if ((!requerido) && cif.value.trim() == "") return true;
	if (!esCIF(cif)) valido = false;
	else{
    	letraIni = cif.value.charAt(0).toUpperCase();
    	num = cif.value.substring(1,8);
    	dig = cif.value.charAt(8);

    	res = parseInt(num.charAt(1)) + parseInt(num.charAt(3)) + parseInt(num.charAt(5));

    	i = parseInt(num.charAt(0))*2;
    	res += Math.floor(i/10) + i%10;
    	i = parseInt(num.charAt(2))*2;
    	res += Math.floor(i/10) + i%10;
    	i = parseInt(num.charAt(4))*2;
    	res += Math.floor(i/10) + i%10;
    	i = parseInt(num.charAt(6))*2;
    	res += Math.floor(i/10) + i%10;

    	res = 10 - res%10;

    	if (letraIni=="P" || letraIni=="Q" || letraIni=="S"){
    		if (String.fromCharCode(res+64) == dig.toUpperCase())  valido = true;
    		else valido = false;
    	}
    	else{
    		if ((res%10) == parseInt(dig)) valido = true;
    		else valido = false;
    	}
	}

	return valido;
}

function vNIF(nif, descripcion, requerido, idioma){
	var control = "TRWAGMYFPDXBNJZSQVHLCKET";

  	if ((!requerido) && nif.value.trim() == "") return true;
	if (!esNIF(nif)){
		
		return false;
	}

	if (nif.value.charAt(0) > "9" || nif.value.charAt(0) < "0")
		num = parseInt(nif.value.substring(1,8),10)%23;
	else
		num = parseInt(nif.value.substring(0,8),10)%23;

	if (control.charAt(num) == nif.value.charAt(8).toUpperCase()) return true;
	else{
		
		return false;
	}
}

function vNumero (campo, mensajeError, min, max, mensajeMinError, mensajeMaxError)
{
    var errors;
    errors='';
    var con_comas;
	con_comas=campo.value.indexOf(',');
	var con_puntos;
	con_puntos=campo.value.indexOf('.');
	var continua;
	continua=true;
	
	var num_min;
	var num_min_val;
	num_min_val=new String(min);
    num_min_val=num_min_val.replace(/\,/g,'.');
	min_con_puntos=num_min_val.indexOf('.');
	var num_max;
	var num_max_val;
	num_max_val=new String(max);
    num_max_val=num_max_val.replace(/\,/g,'.');
    max_con_puntos=num_max_val.indexOf('.');
    
    if (min_con_puntos!=-1)
    {
        entero_min=num_min_val.substr(0,min_con_puntos);
        entero_min=entero_min.length;
    }
    else
    {
        entero_min=num_min_val.length;
    }
	
	if (max_con_puntos!=-1)
    {
        entero_max=num_max_val.substr(0,max_con_puntos);
        entero_max=entero_max.length;
    }
    else
    {
        entero_max=num_max_val.length;
    }
    
	if ((con_comas!=-1) && (con_puntos!=-1))
	{
	    //tiene puntos y comas
	    errors = mensajeError+"1\n";
	    continua=false;
	}
	else if ((con_comas==-1) && (con_puntos==-1))
	{
	   //entero
	   continua=false;
	   if (!isNaN(campo.value))
	   {
	       if (parseFloat(campo.value)<parseFloat(num_min_val))
	       {
	           errors = mensajeMinError+' '+campo.value+' < '+num_min_val+"\n";
	       }
	       else if (parseFloat(campo.value)>parseFloat(num_max_val))
	       {
	           errors = mensajeMaxError+' '+campo.value+' > '+num_max_val+"\n";
	       }
	   }
	   else
	   {
	       errors = mensajeError+"\n";
	   }
	   
	}
	
	if (con_puntos!=-1)
    {
        //tiene puntos
        //hacer remplaze
        str=campo.value;
        str=str.replace(/\./g,',');
        campo.value=str;
    }
	    
	if (continua)
	{
	    var re = new RegExp("^(\\d{"+entero_min+","+entero_max+"})(,\\d{0,2})?$");
	    if (!re.test(campo.value))
	    {
	        errors = mensajeError+"\n";
	        campo.value=campo.value.substr(0, campo.value.length-1)
	    }
	    else
	    {
	       str_field=campo.value;
	       str_field=str_field.replace(/\,/g,'.');
	       if (parseFloat(str_field)<parseFloat(num_min_val)) {errors = mensajeMinError+' '+str_field+' < '+num_min_val+"\n";}
	       if (parseFloat(str_field)>parseFloat(num_max_val)) {errors = mensajeMaxError+' '+str_field+' > '+num_max_val+"\n";}
	       
	    }
	} 
	
	return errors; 
}

function vSoloNumero (campo, mensajeError, min, max, mensajeMinError, mensajeMaxError)
{
    var errors;
    errors='';
    var con_comas;
    con_comas=campo.value.indexOf(',');
    var con_puntos;
    con_puntos=campo.value.indexOf('.');
    var continua;
    continua=true;
    
    var num_min;
    var num_min_val;
    num_min_val=new String(min);
    min_con_puntos=num_min_val.indexOf('.');
    var num_max;
    var num_max_val;
    num_max_val=new String(max);
    max_con_puntos=num_max_val.indexOf('.');
    
    if (min_con_puntos!=-1)
    {
        entero_min=num_min_val.substr(0,min_con_puntos);
        entero_min=entero_min.length;
    }
    else
    {
        entero_min=num_min_val.length;
    }
    
    if (max_con_puntos!=-1)
    {
        entero_max=num_max_val.substr(0,max_con_puntos);
        entero_max=entero_max.length;
    }
    else
    {
        entero_max=num_max_val.length;
    }
    
    if ((con_comas!=-1) && (con_puntos!=-1))
    {
        //tiene puntos y comas
        errors = mensajeError+"1\n";
        continua=false;
    }
    else if ((con_comas==-1) && (con_puntos==-1))
    {
       //entero
       continua=false;
       if (!isNaN(campo.value))
       {
           if (min!='')
           {
	           if (campo.value<min)
	           {
	               errors = mensajeMinError+"\n";
	           }
	           else if (campo.value>max)
	           {
	               errors = mensajeMaxError+"\n";
	           }
           }
       }
       else
       {
           errors = mensajeError+"\n";
       }
       
    }
    
    if (con_puntos!=-1)
    {
        //tiene puntos
        //hacer remplaze
        str=campo.value;
        str=str.replace(/\./g,',');
        campo.value=str;
    }
        
    if (continua)
    {
        var re = new RegExp("^(\\d{"+entero_min+","+entero_max+"})(,\\d{0,2})?$");
        if (!re.test(campo.value))
        {
            errors = mensajeError+"\n";
            campo.value=campo.value.substr(0, campo.value.length-1)
        }
        else
        {
           str_field=campo.value;
           str_field=str_field.replace(/\,/g,'.');
           if (min!='')
           {
                if (str_field<min) {errors = mensajeMinError+"\n";}
           }
           if (max!='')
           {
                if (str_field>max) {errors = mensajeMaxError+"\n";}
           }
        }
    } 
    
    return errors; 
}

function haymarcado(ele){
	var i;
	if (!ele){return false;}
	if (isNaN(ele.checked)==false){
		return(ele.checked==true);
	}
	for (i=0;i<ele.length;i++){
		if (ele[i].checked==true){
			return true;
		}
	}
	return false;
}

function esTexto(cadena){
	var Expresion_Regular;
	Expresion_Regular = /^[\s|\w|á|Á|é|É|í|Í|ó|Ó|ú|Ú|_|,|;|.|:|º|ª|\-|ñ|Ñ|\\|\/|\(|\)|\[|\]|\{|\}|\¿|\?|\!|\¡|\@]*$/ ;
	return (Expresion_Regular.test(cadena))
}


function valor_radio(r){
	var i;
	if (isNaN(r.checked)==false){
		if (r.checked==true){
			return r.value;
		}
		else{
			return null;
		}
	}
	for (i=0;i<r.length;i++){
		if (r[i].checked==true){
			return r[i].value;
		}
	}
	return null;
}

function writeLayer(name, txt)
{
    var layer = document.getElementById(name);
    if (layer) {layer.innerHTML = txt;}  
}

function busca_categoria(tag)
{
	if(tag != '')
	{
		$.ajax
		({
			  type: "POST",
			  url: "/_praj.html",
			  data: 'ajax_accion=busqueda&tag='+tag,
			  dataType: 'html',
			  error: function()
			  {
			  },
			  success: function(html)
			  {
				$("#tagMatches").html(html);
			  }
		});
	} else {
		$("#tagMatches").html('');	
	}
}

function ventanaImg(archivo, ancho, alto)
{
    if (ancho == null) ancho = 500;
    if (alto == null) alto = 400;
    ventana=window.open(archivo, "_blank", "toolbar=no,directories=no,location=no,status=no,scrollbars=yes,resizable=yes,copyhistory=no,width="+ ancho +",height="+ alto);
}

function mostrar(capa)
{ 
    document.getElementById(capa).style.visibility = 'visible';
}

function ocultar(capa)
{ 
    document.getElementById(capa).style.visibility = 'hidden';
}

function mostrar_display(capa)
{ 
    document.getElementById(capa).style.display = 'block';
    $('#'+capa).removeClass('hd');
}

function ocultar_display(capa)
{ 
    document.getElementById(capa).style.display = 'none';
    $('#'+capa).addClass(' hd');
}

function addslashesjs(str) 
{
	str=str.replace(/\'/g,'\\\'');
	str=str.replace(/\"/g,'``');
	
	//str=str.replace(/\\/g,'\\\\');
	//str=str.replace(/\0/g,'\\0');
	
	return str;
}

function stripslashesjs(str) 
{
	str=str.replace(/\\'/g,'\'');
	str=str.replace(/\\"/g,'"');
	//str=str.replace(/\\\\/g,'\\');
	//str=str.replace(/\\0/g,'\0');
	return str;
}

function CambiarImagen(idName,pathAndName)
{
    document.getElementById(idName).src=pathAndName;
}

function ventanaDetalleImg(archivo, ancho, alto)
{
    archivo=archivo.replace('thum','gran');
    archivo=archivo.replace('medi','gran');
    if (ancho == null) ancho = 500;
    if (alto == null) alto = 400;
    ventana=window.open(archivo, "_blank", "toolbar=no,directories=no,location=no,status=no,scrollbars=yes,resizable=yes,copyhistory=no,width="+ ancho +",height="+ alto);
}



// Estas dos funciones son para abrir los tutoriales flash
function showLightbox(flUrl) 
{
	$("body").append('<\div id="fadeboxFlash" onclick="hideLightbox()" style="height: ' + $(document).height() + 'px;"><\/div>'+
					  '<\a href="#" id="cerrarFlash" onclick="hideLightbox()"><\span>x<\/span>cerrar<\/a>'+
					  '<\div id="overboxFlash">'+
						'<\div id="tutorial"><\/div><\/div>');
		
	var so = new SWFObject(flUrl,'tutorial','844','900','8');	
	so.addParam("wmode","transparent");
	so.write('tutorial');
}

function hideLightbox() 
{
	$("#fadeboxFlash").remove();
	$("#overboxFlash").remove();
	$("#cerrarFlash").remove();
}

function flashVideo(ruta,file,formato,capa,autostart,hd)
{
	var so = new SWFObject(ruta + '_img/videos/skin/player.swf','video','610','363','9');
	so.addParam("allowfullscreen","true");
	so.addParam('allowscriptaccess','always');
	so.addParam('wmode','transparent');
	so.addParam("name",capa);
	so.addVariable('link',ruta);
	so.addVariable('autostart',autostart);
	so.addVariable('author','www.BidoBido.com');
	
	//so.addVariable('skin',ruta + '_img/videos/skin/bidobido');
	so.addVariable('controlbar','over');
	so.addVariable('image',ruta + '_img/videos/' + file + '.jpg');
	so.addVariable('title','bidobido.com');
	
	if(hd == 1 && formato != 'mp3')
	{
		
		if(FlashDetect.versionAtLeast(10))
		{
			so.addVariable('plugins', 'hd-1');
			so.addVariable('hd.state', 'true');
			so.addVariable('hd.file', ruta + '_img/videos/' + file + '.mp4');
		} 
		
	}
	so.addVariable('file',ruta + '_img/videos/' + file + '.' + formato);
	so.addVariable('logo',ruta + '_img/videos/skin/watermark.png');
	so.addVariable('stretching','exactfit');
	so.write(capa);	
}

function tabBuscar(panel)
{
   if(panel == 1)
   {
		$('#buscar-tab_01').removeClass('buscar-tab_01').addClass('buscar-activo-tab_01');
		$('#buscar-tab_02').removeClass('buscar-activo-tab_02').addClass('buscar-tab_02');
		$('#buscar-panel_01').show();
		$('#buscar-panel_02').hide();
   } else {
	   	$('#buscar-tab_02').removeClass('buscar-tab_02').addClass('buscar-activo-tab_02');
		$('#buscar-tab_01').removeClass('buscar-activo-tab_01').addClass('buscar-tab_01');
		$('#buscar-panel_02').show();
		$('#buscar-panel_01').hide();
   }
}

function ancla()
{
	var url = location.href;
	url = url.replace(/.*\?(.*?)/,"$1");
	ancla = url.split ("#");
	
	if(ancla.length > 1)
	{
		$('#' + ancla[1]).addClass("destaca");
	} 
}

function buscaAncla()
{
	var url = location.href;
	url = url.replace(/.*\?(.*?)/,"$1");
	ancla = url.split ("#");
	if(ancla.length > 1)
	{
		tabPrincipal = '';
		tabSecundario = ancla[1];
		
		teme=tabSecundario.substr(2,1);
		
		switch (teme)
		{
		   case '1' :
			  $('#imgTip').removeAttr('class').attr('class','tip-faq');
			  $('ul.faq-tabs li.faqs a').addClass('current');
			  $('div.faq-panes > div').hide();
			  $('div.faq-panes > div:eq(0)').show();
			  break;
		   
		   case '2' :
			  $('#imgTip').removeAttr('class').attr('class','tip-compras');
			  $('ul.faq-tabs li.compras a').addClass('current');
			  $('div.faq-panes > div').hide();
			  $('div.faq-panes > div:eq(1)').show();
			  break;
		   
		   case '3':
			  $('#imgTip').removeAttr('class').attr('class','tip-ventas');
			  $('ul.faq-tabs li.ventas a').addClass('current');
			  $('div.faq-panes > div').hide();
			  $('div.faq-panes > div:eq(2)').show();
			  break;
		   
		   case '4' :
			  $('#imgTip').removeAttr('class').attr('class','tip-envios');
			  $('ul.faq-tabs li.envios a').addClass('current');
			  $('div.faq-panes > div').hide();
			  $('div.faq-panes > div:eq(3)').show();
			  break;
		   
		   case '5' :
			  $('#imgTip').removeAttr('class').attr('class','tip-tpv');
			  $('ul.faq-tabs li.tpv a').addClass('current');
			  $('div.faq-panes > div').hide();
			  $('div.faq-panes > div:eq(4)').show();
			  break;
		   
		   case '6' :
			  $('#imgTip').removeAttr('class').attr('class','tip-monedero');
			  $('ul.faq-tabs li.monedero a').addClass('current');
			  $('div.faq-panes > div').hide();
			  $('div.faq-panes > div:eq(5)').show();
			  break;
		   
		   default :
			  $('#imgTip').removeAttr('class').attr('class','tip-faq');
			  $('ul.faq-tabs li.faqs a').addClass('current');
			  $('div.faq-panes > div').hide();
			  $('div.faq-panes > div:eq(0)').show();
			break;	  
		}
		/*document.location.href = '#' + tabPrincipal; */
		$('#' + tabSecundario).addClass('destaca');	
	}
}

function reduceImagen(elemento)
{
	if($(elemento).hasClass('btn-reducir'))
	{
		$(elemento).removeClass('btn-reducir');
		$(elemento).addClass('btn-ampliar');
		$(elemento).html('<span><em>Ampliar tama&ntilde;o de etiqueta</em></span>');
		$('div.etiquetas img').css({'width': '450px'})
	} else {
		$(elemento).removeClass('btn-ampliar');
		$(elemento).addClass('btn-reducir');
		$(elemento).html('<span><em>Reducir tama&ntilde;o de etiqueta</em></span>');
		$('div.etiquetas img').css({'width': '610px'})
	}
}

function scrollingDetector(combo)
{
	tamano = ($(document).height())-($(combo).offset().top);

	if(tamano < 100)
	{
		return 'combo-top';
	}else {
		return 'combo-bottom';
	}

}

function comboBoxOrg(eLement)
{
	if(eLement.parentNode.parentNode.className == 'combo-box')
	{
		newclass = scrollingDetector(eLement.parentNode.parentNode);
		eLement.parentNode.parentNode.className = 'combo-box-activo ' + newclass;
	} else {
		eLement.parentNode.parentNode.className = 'combo-box';	
	}
}

function _levenshtein($str1, $str2) {
    return 1-levenshtein($str1, $str2)/max(strlen($str1), strlen($str2));
}


function esperame()
{
scroll(0,0);
$('body').append('<div id=fader style=height: + $(document).height() + px;></div>');
}

var VER= navigator.appVersion
var DOM= document.getElementById?1:0
var IE5= (VER.indexOf("MSIE 5")>-1 && DOM)?1:0;
var IE6= (VER.indexOf("MSIE 6")>-1 && DOM)?1:0;
var IE7= (VER.indexOf("MSIE 7")>-1 && DOM)?1:0;
var IE8= (VER.indexOf("MSIE 8")>-1 && DOM)?1:0;
var IE4= (document.all && !DOM)?1:0;
var isOp=window.opera?1:0;
var IE = (IE4 || IE5 || IE6 || IE7 || IE8) && !isOp;
