/*
 * Añade/Quita/Busca clases CSS - http://dean.edwards.name/IE7/caveats/
 */
function addClass(element, className) { // v2004-10-24
	if (!hasClass(element, className)) {
		if (element.className) element.className += " " + className;
		else element.className = className;
	}
};
function removeClass(element, className) { // v2004-10-24
	var regexp = new RegExp("(^|\\s)" + className + "(\\s|$)");
	element.className = element.className.replace(regexp, "$2");
};
function hasClass(element, className) { // v2004-10-24
	var regexp = new RegExp("(^|\\s)" + className + "(\\s|$)");
	return regexp.test(element.className);
};


/*
 * Inserta entidades HTML para mostar un texto como HTML
 */
String.prototype.encodeHTML=function(){ // v2005-09-18
	var salida=this;

	salida=salida.replace(/&/g, '&amp;');
	salida=salida.replace(/"/g, '&quot;');
	salida=salida.replace(/'/g, '&#039;');
	salida=salida.replace(/</g, '&lt;');
	salida=salida.replace(/>/g, '&gt;');

	return salida;
}


/*
 * Construye un enlace mailto a prueba (más o menos) de spammers
 */
function mailto_nospam(mande, /*op*/etiqueta, /*op*/asunto, /*op*/cuerpo){ // v2009-03-25
	var piezas = mande.split(/\|/);
	var largo = piezas.length/2;
	var parametros = [];

	if(asunto){
		parametros[parametros.length] = 'subject=' + asunto;
	}
	if(cuerpo){
		parametros[parametros.length] = 'body=' + cuerpo;
	}

	var total = Array(largo);
	for(var i=0; i<largo; i++){
		total[piezas[0+i+largo]] = String.fromCharCode(piezas[i]);
	}
	var email = total.join('');

	if(!etiqueta){
		var etiqueta = email;
	}

	var salida = '<a href="mailto:' + email;
	if(parametros.length>0){
		salida+='?' + parametros.join('&amp;');
	}
	salida+='">' + etiqueta.encodeHTML() + '</a>';

	document.write(salida);
}


/*
 * Mostramos u ocultamos el calendario; lo hacemos alternando la clase "abierto"
 */
function alternarCalendario(control){
	var dl = document.getElementById("calendario");
	var dt = dl.getElementsByTagName("dt");
	var dd = dl.getElementsByTagName("dd");

	var elementos = [];
	for(var i=0, len=dt.length; i<len; i++){
		elementos.push(dt[i]);
	}
	for(var i=0, len=dd.length; i<len; i++){
		elementos.push(dd[i]);
	}
	elementos.push(control);

	for(var i=0, len=elementos.length; i<len; i++){
		if( !hasClass(elementos[i], "fijo") ){
			if( hasClass(elementos[i], "abierto") ){
				removeClass(elementos[i], "abierto");
			}else{
				addClass(elementos[i], "abierto");
			}
		}
	}
}
