
function ta_check_extra(dis){

	return ta_check_extended(dis, "");
	
}

function ta_check_extended(dis, type){
	var err=0;
	var words_too_long=255;
	if (type=="title"){	
		words_too_long=20;	
	}	
	
	if (!dis)return false;
	dis=__$(dis);
	if (!dis)return false;
	val=dis.attr("value");
	if (!val)return false;
	val=strip_accents_off(val);
	
	if (ta_long_words(val,words_too_long)){
		if (type=="title"){	
			alert ("El Título de tu mensaje contiene una o varias palabras de más de 20 caracteres. Por favor, limita cada palabra a un máximo de 20 caracteres."); 
		}else{
			alert ("Tu mensaje contiene una o varias palabras de más de 255 caracteres. Por favor, limita cada palabra a un máximo de 255 caracteres."); 
		}
		err=1;
	}
	if (err!=1)if (ta_all_upper(val)){
		if (type=="title"){	
			alert ("Más de la mitad del Título de tu mensaje está escrito en mayúsculas.\n\nEn la web, las mayúsculas son como un GRITO, y a nadie le gusta que le griten.\n\nPor favor, usa las mayúsculas correctamente sólo para inicio de frases y nombres propios.\n\nGracias.\n\n");
		}else{
			alert ("Más de la mitad de tu mensaje está escrito en mayúsculas.\n\nEn la web, las mayúsculas son como un GRITO, y a nadie le gusta que le griten.\n\nPor favor, usa las mayúsculas correctamente sólo para inicio de frases y nombres propios.\n\nGracias.\n\n");
		}
		err=1;
	}
	if (err!=1 && type!="title"){
		pars=ta_no_paragraphs(val);
		if (pars){
				var txt="El mensaje que intentas enviar es extenso y, sin embargo, está distribuido en sólo ##js_cur_par## párrafo(s).\n\nEsto haría que fuera muy difícil y molesto leerlo en la pantalla del ordenador.\n\nPara evitarlo, por favor distribuye el texto en, al menos, ##js_total_par## párrafos separados entre ellos por una línea en blanco.\n\n(Pulsa la tecla Intro dos veces para añadir una línea en blanco)\n\nGracias.\n";
				txt=txt.replace("##js_req_par##",pars[0]);
				txt=txt.replace("##js_cur_par##",pars[1]);
				txt=txt.replace("##js_total_par##",pars[1]+pars[0]);
				alert (txt); 
				err=1 ; 
			}
	}	
	
	if (err==1)return false;
		else return true;
}

function ta_long_words(val,words_too_long){
	var myRegex = new RegExp("\\w{"+words_too_long+"}","ig");
	if (myRegex.exec(val))return true;
		else return false;

}

function ta_all_upper(val){
	if (val.length>0){
		lng=val.length/2;
	}else return false;
	val=val.replace(/(\[.*\])/g,"");
	sm_caps=val.replace(/([^a-z])/g,"");
	up_caps=val.replace(/([^A-Z])/g,"");

	
	if (up_caps.length>sm_caps.length)return true;
		else return false;

}

function ta_no_paragraphs(val){
	var res=0;
	val=val.replace(/(\[.*\])/g,"");
	val=val.replace(/(\\r)/g,"");
		
	tmp_pars=val.replace(/(\s{2}|[\n])/g,"");
	val+="\n\n";
	pars=Math.ceil(tmp_pars.length/700);
	var myRegex = /(\n\s*?\n+)/ig;
	var myArray;
	var cur_pars=0;

	while ((myArray = myRegex.exec(val)) != null)
	{
	  cur_pars++;
	  if (cur_pars>999){ return ; } //just in case
	}
	if (pars-cur_pars>0){

		res=new Array();
		res[0]=pars-cur_pars;
		res[1]=cur_pars;
		
	}

	return res;
}

function strip_accents_off(val){
	val=val.replace(/[ááâãä]/g,"a");
	val=val.replace(/[èéêë]/g,"e");
	val=val.replace(/[ìíîï]/g,"i");
	val=val.replace(/[òóôõö]/g,"o");
	val=val.replace(/[ùúûü]/g,"u");
	val=val.replace(/[ýÿ]/g,"y");
	val=val.replace(/[ñ]/g,"n");
	val=val.replace(/[ç]/g,"c");

	val=val.replace(/[ÀÁÂÃÄ]/g,"A");
	val=val.replace(/[ÈÉÊË]/g,"E");
	val=val.replace(/[ÌÍÎÏ]/g,"I");
	val=val.replace(/[ÒÓÔÕÖ]/g,"O");
	val=val.replace(/[ÙÚÛÜ]/g,"U");
	val=val.replace(/[ÝŸ]/g,"Y");
	val=val.replace(/[Ñ]/g,"N");
	val=val.replace(/[Ç]/g,"C");

	return val;
}


var disable_richtext=0;