
	var MINUTE = 60 * 1000;
	var HOUR = MINUTE * 60;
	var DAY = HOUR * 24;

	function updateDays(form, input) {
		var day = form[input + '[day]'];	
		var month = form[input + '[year_month]'].value.substr(4, 2) - 1;
		var year = form[input + '[year_month]'].value.substr(0, 4);
		/* 28 a 31 días */
		var td = new Date();
		var from = (month == td.getMonth() && year == td.getFullYear()) ? td.getDate()  : 1;
		var value = 31; do {
			var date = new Date(year, month, value--);
		} while (month < date.getMonth());
		/* Actualiza el selector */
		var selectedValue = day.value;
		while (day.options.length) day.options[0] = null;
		for (i = from; i < value + 2; i++) {
			option = new Option(((i > 9) ? i : '0' + i), i, false, false);
			day.options[j = day.length] = option;
			if (i == selectedValue) day.selectedIndex = j;
		}
	}

	function updateDate(form, input, date) {
		var month = date.getMonth() > 8 ? String(date.getMonth() + 1) : '0' + String(date.getMonth() + 1);
		var selectedValue = String(date.getFullYear()) + month;
		var year_month = form[input + '[year_month]'];
		for (i = 0; i < year_month.length; i++) {
			if (year_month.options[i].value == selectedValue) {
				year_month.options[i].selected = true;
				break;
			}
		} updateDays(form, input);
		var day = form[input + '[day]'];
		for (var i = 0; i < day.length; i++) {
			if (day.options[i].value == date.getDate()) {
				day.options[i].selected = true;
				break;
			}
		}
	}

	function onDayChange(form, input) {
	}

	function onMonthChange(form, input) {
		updateDays(form, input);
		
	}


function openBrWindow(theURL,winName,features) {
  window.open(theURL,winName,features);
};

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_validateForm() { //v4.0
  var i,p,p1,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { nm=val.title; if ((val=val.value)!="") {
      if (test.indexOf('isIgual')!=-1) { 
	  	p=val;
		p1=document.forms[0].confirma.value;
       	if (p!=p1 ) errors+='- '+nm+' no coincide con la confirmación.\n';
	  }else if (test.indexOf('pIgual')!=-1) { 
	  	p=val;
		p1=document.forms[1].confirmap.value;
       	if (p!=p1 ) errors+='- '+nm+' no coincide con la confirmación\n';
		 }else if (test.indexOf('bIgual')!=-1) { 
	  	p=val;
		p1=document.forms[2].confirmab.value;
       	if (p!=p1 ) errors+='- '+nm+' no coincide con la confirmación\n';
		
	  }else if (test.indexOf('Rcheck')!=-1) { 
	  	p=(val=MM_findObj(args[i]).checked);
       	if (p==false ) errors+='- '+nm+' es obligatorio.\n';
	  	  
	  }else if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- '+nm+' debe ser una dirección de email válida.\n';
      } else if (test!='R') { num = parseFloat(val);
        if (isNaN(val)) errors+='- '+nm+' debe ser un número.\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' es obligatorio.\n'; }
  } if (errors){
	  alert('Han ocurrido los siguientes errores:\n'+errors);
  document.MM_returnValue = (errors == '');
  }else{

  //alert("Se ha enviado correctamente tu mensaje en breve recibiras una respuesta");
  document.MM_returnValue = (errors == '');
  }
}

function valida_caracteres_no_permitidos(texto){
	
	if (texto.value.indexOf('@')!=-1){
		alert('No esta permitido añadir emails.');
		texto.value="";
	}
	if (texto.value.indexOf('arroba')!=-1){
		alert('No esta permitido añadir emails.');
		texto.value="";
	}
	if (texto.value.indexOf('alroba')!=-1){
		alert('No esta permitido añadir emails.');
		texto.value="";
	}
	if (texto.value.indexOf('arroba')!=-1){
		alert('No esta permitido añadir emails.');
		texto.value="";
	}
	if (texto.value.indexOf('arova')!=-1){
		alert('No esta permitido añadir emails.');
		texto.value="";
	}
	if (texto.value.indexOf('arrova')!=-1){
		alert('No esta permitido añadir emails.');
		texto.value="";
	}

if (texto.value.indexOf('www')!=-1){
		alert('No esta permitido añadir direcciones web.');
		texto.value="";
	}
	if (texto.value.indexOf('1')!=-1){
		alert('No esta permitido añadir números.');
		texto.value="";
	}
	if (texto.value.indexOf('2')!=-1){
		alert('No esta permitido añadir números.');
		texto.value="";
	}
	if (texto.value.indexOf('3')!=-1){
		alert('No esta permitido añadir números.');
		texto.value="";
	}
	if (texto.value.indexOf('4')!=-1){
		alert('No esta permitido añadir números.');
		texto.value="";
	}
	if (texto.value.indexOf('5')!=-1){
		alert('No esta permitido añadir números.');
		texto.value="";
	}
	if (texto.value.indexOf('6')!=-1){
		alert('No esta permitido añadir números.');
		texto.value="";
	}
	if (texto.value.indexOf('7')!=-1){
		alert('No esta permitido añadir números.');
		texto.value="";
	}
	if (texto.value.indexOf('8')!=-1){
		alert('No esta permitido añadir números.');
		texto.value="";
	}
	if (texto.value.indexOf('9')!=-1){
		alert('No esta permitido añadir números.');
		texto.value="";
	}
}