function check_cookies() {
	var validado = (document.cookie != '');
	return validado;
}

function resaltar(control,flag) {
	if (control)
		control.className = (flag) ? 'opcion_a':'opcion';
}

//cierra la ventana de comandos
function v_cerrar() {
	var ventana    = document.getElementById('ventana');
	var ventana_fr = document.getElementById('ventana_fr');
	if (ventana) {
		ventana.style.display  = 'none';
		if (document.all && ventana_fr)
			ventana_fr.style.display = 'none';
		
		var opcion;
		var opciones = document.getElementsByTagName('span');
		for (var i=0; i < opciones.length; i++) {
			opcion = opciones[i].getAttribute('name');
			if (opcion == 'v_opcion') {
				opciones[i].setAttribute('estado',1);
				opciones[i].className = 'activa';
			}
		}
	}
}

//resalta las opciones de la ventana
function v_resaltar(control,flag) {
	if (control) {
		if (control.getAttribute('estado') == 1)
			control.className = (flag) ? 'marcada':'activa';
	}
}

//selecciona el menú de las opciones de la ventana madre
function v_menu(obj,val) {
	var pos_x = pos_x_obj(obj);
	var pos_y = pos_y_obj(obj);
	var orden, estado;
	var menu = document.getElementsByTagName('div');
	for (var i=0; i<menu.length; i++) {
		if (menu[i].id == 'v_menu') {
			orden = menu[i].getAttribute('orden');
			if (orden == val) {
				menu[i].style.left = pos_x;
				menu[i].style.top  = pos_y + 20;
				
				estado = menu[i].style.display;
				estado = (estado == '') ? 'none':'';
			} else {
				estado = 'none';
			}
			menu[i].style.display = estado;
		}
	}
}

function validar_texto(obj,ancho) {
	if (obj.value.length > ancho) {
		alert('Texto demasiado largo.');
		obj.select();
	}
	return false;
}

//elimina espacios en blanco al principio de una cadena
function ltrim(cadena) {
	while (cadena.substring(0,1) == ' ') {
		cadena = cadena.substring(1,cadena.length);
	}
	return cadena;
}

//elimina espacios en blanco al final de una cadena
function rtrim(cadena) {
	while (cadena.substring(cadena.length-1,cadena.length) == ' ') {
		cadena = cadena.substring(0,cadena.length-1);
	}
	return cadena;
}

//elimina espacios en blanco al principio y fin de una cadena
function trim(cadena) {
	cadena = rtrim(ltrim(cadena));
	return cadena;
}

//reemplaza un caracter por otro en una cadena
function reemplazar(cadena,val_inicial,val_nuevo) {
	str = '' + cadena;
	while (str.indexOf(val_inicial) > -1) {
		pos_at = str.indexOf(val_inicial);
		str    = (str.substring(0,pos_at) + val_nuevo + str.substring((pos_at + val_inicial.length),str.length));
	}
	return str;
}

//escribe la fecha y hora y se va actualizando
function startclock() {
	var thetime = new Date();
	var nhours  = thetime.getHours();
	var nmins   = thetime.getMinutes();
	var nsecn   = thetime.getSeconds();
	var nday    = thetime.getDay();
	var nmonth  = thetime.getMonth();
	var ntoday  = thetime.getDate();
	var nyear   = thetime.getFullYear();
	var AorP    = (nhours >= 12) ? 'pm' : 'am';
	if (nhours >= 13)
		nhours -= 12;
	if (nhours == 0)
		nhours = 12;
	nhours = (nhours < 10) ? '0'+ nhours : nhours + '';
	nsecn  = (nsecn < 10) ? '0'+ nsecn : nsecn + '';
	nmins  = (nmins < 10) ? '0'+ nmins : nmins + '';
	
	switch (nday) {
		case 0:
			nday = 'domingo';
			break;
		case 1:
			nday = 'lunes';
			break;
		case 2:
			nday = 'martes';
			break;
		case 3:
			nday = 'miércoles';
			break;
		case 4:
			nday = 'jueves';
			break;
		case 5:
			nday = 'viernes';
			break;
		case 6:
			nday = 'sábado';
			break;
	}
	
	switch (nmonth) {
		case 0:
			nmonth = 'enero';
			break;
		case 1:
			nmonth = 'febrero';
			break;
		case 2:
			nmonth = 'marzo';
			break;
		case 3:
			nmonth = 'abril';
			break;
		case 4:
			nmonth = 'mayo';
			break;
		case 5:
			nmonth = 'junio';
			break;
		case 6:
			nmonth = 'julio';
			break;
		case 7:
			nmonth = 'agosto';
			break;
		case 8:
			nmonth = 'septiembre';
			break;
		case 9:
			nmonth = 'octubre';
			break;
		case 10:
			nmonth = 'noviembre';
			break;
		case 11:
			nmonth = 'diciembre';
			break;
	}
	
	if (nyear > 99 && nyear < 2000)
		nyear += 1900;
	
	var fecha = nday + ' ' + ntoday + ' de ' + nmonth + ', ' + nyear;
	var hora  = nhours + ':' + nmins + ':' + nsecn + ' ' + AorP;
	var tiempo = fecha + ' ' + '<span class="clockspot">' + hora+ '</span>';
	
	var clockspot = document.getElementById('clockspot');
	if (clockspot) {
		clockspot.innerHTML = fecha;
		setTimeout('startclock()',1000);
	}
}

//efecto terremoto
function shake_xy(n) {
	if (self.moveBy) {
		for (var i = 10; i > 0; i--) {
			for (var j = n; j > 0; j--) {
				//movemos eje de coordenadas
				self.moveBy(0,i);
				self.moveBy(i,0);
				
				//movemos eje de ordenadas
				self.moveBy(0,-i);
				self.moveBy(-i,0);
			}
		}
	}
}

//convierte la fecha en formato español (dd/mm/yy) a americano (mm/dd/yy)
function date_convert(fecha) {
	var nueva_fecha = fecha.split('/');
	if (nueva_fecha.length == 3)
		nueva_fecha = nueva_fecha[1] + '/' + nueva_fecha[0] + '/' + nueva_fecha[2];
	else
		nueva_fecha = false;
	return nueva_fecha;
}

//suma los días señalados a una fecha
function dateadd(fecha,dias) {
	var fecha_aux, dia_fecha, mes_fecha, anno_fecha;
	fecha_aux = date_convert(fecha);
	if (fecha_aux) {
		fecha_aux = new Date(fecha_aux);
		fecha_aux.setTime(fecha_aux.getTime() + dias*24*60*60*1000);
		dia_fecha  = fecha_aux.getDate();
		dia_fecha  = (dia_fecha < 10) ? '0'+ dia_fecha : dia_fecha + '';
		mes_fecha  = fecha_aux.getMonth()+1;
		mes_fecha  = (mes_fecha < 10) ? '0'+ mes_fecha : mes_fecha + '';
		anno_fecha = fecha_aux.getFullYear();
		fecha_aux = dia_fecha + '/' + mes_fecha + '/' + anno_fecha;
	}
	return fecha_aux;
}

//calcula la diferencia entre dos fechas (en milisegundos por defecto)
function datediff(fecha1,fecha2) {
	var diff;
	var intervalo;
	if (arguments.length > 2)
		intervalo = arguments[2];
	
	//convertimos el string de fecha a formato fecha
	date_aux  = date_convert(fecha1);
	var date1 = new Date(date_aux);
	date_aux  = date_convert(fecha2);
	var date2 = new Date(date_aux);
	
	//calculamos la diferencia en milisegundos
	var diff_ms1 = date1.getTime();
	var diff_ms2 = date2.getTime();
	diff = diff_ms2 - diff_ms1;
	
	//calculamos la diferencia en el intervalo elegido
	switch (intervalo) {
		case 'w':					//semanas
			diff  = diff / (1000*60*60*24*7);
			break;
		case 'd':					//días
			diff = diff / (1000*60*60*24);
			break;
		case 'h':					//horas
			diff  = diff / (1000*60*60);
			break;
		case 'n':					//minutos
			diff = diff / (1000*60);
			break;
		case 's':					//segundos
			diff = diff / 1000;
			break;
	}
	diff = Math.round(diff*100)/100;
	return diff;
}

//reemplaza un caracter por otro en una cadena
function reemplazar(cadena,val_inicial,val_nuevo) {
	str = '' + cadena;
	while (str.indexOf(val_inicial) > -1) {
		pos_at = str.indexOf(val_inicial);
		str    = (str.substring(0,pos_at) + val_nuevo + str.substring((pos_at + val_inicial.length),str.length));
	}
	return str;
}

//calcula la posición de un objeto en pantalla
function pos_x_obj(obj) {
	var curleft = 0;
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curleft += obj.offsetLeft;
			obj = obj.offsetParent;
		}
	} else if (obj.x)
		curleft += obj.x;
	return curleft;
}

function pos_y_obj(obj) {
	var curtop = 0;
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curtop += obj.offsetTop;
			obj = obj.offsetParent;
		}
	} else if (obj.y)
		curtop += obj.y;
	return curtop;
}

//dirige la página hacia la posición de un objeto
function scroll_to(obj) {
	x = pos_x_obj(obj);
	y = pos_y_obj(obj);
	self.scrollTo(x,y);
}

//acota un número entre dos límites
function val_acotar(val,lim_inf,lim_sup) {
	if (val < lim_inf)
		val = lim_inf;
	if (val > lim_sup)
		val = lim_sup;
	return true;
}

//mueve el elemento seleccionado
function drag_obj(obj,ev) {
	var delta_x = ev.clientX - parseInt(obj.style.left);
	var delta_y = ev.clientY - parseInt(obj.style.top);
	
	if (window.event) {
		window.document.attachEvent('onmousemove',mover_obj);
		window.document.attachEvent('onmouseup',detener_obj);
		ev.cancelBubble = true;
		ev.returnValue  = false;
	} else {
		window.document.addEventListener('mousemove',mover_obj,true);
		window.document.addEventListener('mouseup',detener_obj,true);
		ev.stopPropagation();
		ev.preventDefault();
	}
	
	//mueve el elemento a la posición actual del ratón
	function mover_obj(ev) {
		ev = (window.event) ? window.event : ev;
		
		var pos_x = ev.clientX - delta_x;
		val_acotar(pos_x,0,document.body.offsetWidth);
		
		var pos_y = ev.clientY - delta_y;
		val_acotar(pos_y,0,document.body.offsetHeight);
		
		obj.style.left = pos_x + 'px';
		obj.style.top  = pos_y + 'px';
		
		if (window.event)
			ev.cancelBubble = true;
		else
			ev.stopPropagation();
	}
	
	//captura liberación del ratón
	function detener_obj(ev) {
		if (window.event) {
			window.document.detachEvent('onmouseup',detener_obj);
			window.document.detachEvent('onmousemove',mover_obj);
			ev.cancelBubble = true;
		} else {
			window.document.removeEventListener('mouseup',detener_obj,true);
			window.document.removeEventListener('mousemove',mover_obj,true);
			ev.stopPropagation();
		}
	}
}

//mueve el elemento seleccionado
/*function drag_obj(obj,ev) {
	var mover = true;
	var delta_x = ev.clientX - parseInt(obj.style.left,10);
	var delta_y = ev.clientY - parseInt(obj.style.top,10);
	if (window.event) {
		document.attachEvent('onmousemove',mover_obj);
		document.attachEvent('onmouseup',detener_obj);
		ev.cancelBubble = true;
		ev.returnValue  = false;
	} else {
		document.addEventListener('mousemove',mover_obj,true);
		document.addEventListener('mouseup',detener_obj,true);
		ev.stopPropagation();
		ev.preventDefault();
	}
	
	//mueve el elemento a la posición actual del ratón
	function mover_obj(ev) {
		if (mover) {
		ev = (window.event) ? window.event : ev;
		
		var pos_x = ev.clientX - delta_x;
		val_acotar(pos_x,0,document.body.offsetWidth);
		
		var pos_y = ev.clientY - delta_y;
		val_acotar(pos_y,0,document.body.offsetHeight);
		
		obj.style.left = pos_x + 'px';
		obj.style.top  = pos_y + 'px';
		
		if (window.event)
			ev.cancelBubble = true;
		else
			ev.stopPropagation();
		}
	}
	
	//captura liberación del ratón
	function detener_obj(ev) {
		mover = false;
		if (window.event) {
			document.detachEvent('onmouseup',detener_obj);
			document.detachEvent('onmousemove',mover_obj);
			ev.cancelBubble = true;
		} else {
			document.removeEventListener('mouseup',detener_obj,true);
			document.removeEventListener('mousemove',mover_obj,true);
			ev.stopPropagation();
		}
	}
}*/
