var xmlHttp;
function createXMLHttpRequest(){
	if (window.ActiveXObject){
		xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
	} else if(window.XMLHttpRequest){
		xmlHttp = new XMLHttpRequest();
	}
}
function confirmLink(theLink, theText){
    if (theText == '' || typeof(window.opera) != 'undefined') {return true;}
    var is_confirmed = confirm(theText);
    if (is_confirmed) {
        theLink.href += '&confirmado=1';
    }
    return is_confirmed;
}
//------------------------------------------------------------------------
function doPreview(wich, where){
	var objFile = document.getElementById(wich); //imagen
	var objImg = document.getElementById(where); //preview

	objImg.src = objFile.value;
}
//------------------------------------------------------------------------
var id_textarea;
function set_texto(id){
	id_textarea = id;
	var newWindow = openWin('../../cOmmOns/editor/editor_html.php',620,500,'HTMLEditor');	
	newWindow.focus();
}
function get_texto(){
	return document.getElementById(id_textarea).value;	
}
function rec_texto(html){
	document.getElementById(id_textarea).value = html;
}
//------------------------------------------------------------------------
function openWin(ventana,popW,popH,nombre_ventana){
	if (nombre_ventana == undefined){var nom = 'Window';} else {var nom = nombre_ventana;}
	var w = 0, h = 0;

   	w = screen.width;
   	h = screen.height;

	var leftPos = (w-popW)/2, topPos = (h-popH)/2;

    popupWindow=open(''+ventana+'',nom,'resizable=no,scrollbars=yes,width='+popW+',height='+popH+',top='+topPos+',left='+leftPos);
    if (popupWindow.opener == null){popupWindow.opener = self;}
}
//------------------------------------------------------------------------
function getOptions(padre){
	window.frames['iframeOculto'].location = '../../cOmmOns/carga_dinamica.php?padre='+padre;
}
function fillSelect(arrOptions){
	var cantidad = arrOptions.length;
	var mi_objeto = document.frmOrigen.hijo;

	mi_objeto.options.length = 0;

	for (i = 0; i < cantidad; i++){
		mi_objeto.options[i] = new Option(arrOptions[i].nombre);
		mi_objeto.options[i].value = arrOptions[i].id;
	}
	mi_objeto.options[0].selected = true;
}
//------------------------------------------------------------------------
function highlight_div(checkbox_node){
    label_node = checkbox_node.parentNode;

    if (checkbox_node.checked){
		label_node.style.backgroundColor='#5B646C';
		label_node.style.color='#ffffff';
	} else {
		label_node.style.backgroundColor='#ffffff';
		label_node.style.color='#000000';
	}
}
//------------------------------------------------------------------------
function nueva_opcion(objeto,nombre,codigo){
  	var obj = document.getElementById(objeto);
	var ind = obj.options.length;

	obj.options[ind] = new Option(nombre,codigo);
	obj.options[ind].selected = true;
}
//------------------------------------------------------------------------
function emailCheck(emailStr){
	var emailPat = /^(.+)@(.+)$/
	var specialChars = "\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
	var validChars = "\[^\\s" + specialChars + "\]"
	var quotedUser = "(\"[^\"]*\")"
	var ipDomainPat= /^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
	var atom = validChars + '+'
	var word = "(" + atom + "|" + quotedUser + ")"
	var userPat = new RegExp("^" + word + "(\\." + word + ")*$")
	var domainPat = new RegExp("^" + atom + "(\\." + atom +")*$")
	var matchArray=emailStr.match(emailPat)

	if (matchArray == null){
		alert("El email ingresado parece incorrecto (revise el @ y los puntos)");
		return false;
	}
	var user = matchArray[1]
	var domain = matchArray[2]
	if (user.match(userPat) == null){
	    alert("El nombre de usuario parece no ser válido."); return false;
	}
	var IPArray = domain.match(ipDomainPat)
	if (IPArray!=null){
		for (var i=1;i<=4;i++){
			if (IPArray[i]>255){
				alert("La dirección IP de destino no es válida."); return false;
			}
		}
    	return true;
	}
	var domainArray=domain.match(domainPat)
	if (domainArray==null){
		alert("El nombre de dominio parece no ser válido."); return false;
	}
	var atomPat = new RegExp(atom,"g")
	var domArr = domain.match(atomPat)
	var len = domArr.length
	if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3){
	   alert("La dirección debe terminar en un dominio de tres letras ó en un país de dos letras."); return false;
	}
	if (len<2){
	   alert("La dirección no tiene el nombre del host."); return false;
	}
	return true;
}
//------------------------------------------------------------------------
function checkAll(caja){
	var cantidad = caja.length;
	for (i=0; i<cantidad; i++){
		caja[i].checked = !(caja[i].checked);
	}
}
//------------------------------------------------------------------------
function pos_real(objeto,cual){
	var curleft = curtop = 0;
	if (objeto.offsetParent){
		curleft= objeto.offsetLeft;
		curtop = objeto.offsetTop;
		while (objeto = objeto.offsetParent){
			curleft += objeto.offsetLeft;
			curtop += objeto.offsetTop;
	}}
	if (cual=='x'){return curleft;} else {return curtop;}
}
//------------------------------------------------------------------------
function opacity(id, opacStart, opacEnd, millisec){
	var timer = 0;
    var speed = Math.round(millisec / 100);
    for(i = opacStart; i <= opacEnd; i++){
        setTimeout("changeOpac(" + i + ",'" + id + "')", timer * speed); timer++;
    }
}
function opacityParent(id, opacStart, opacEnd, millisec){
	var timer = 0;
    var speed = Math.round(millisec / 100);
    for(i = opacStart; i <= opacEnd; i++){
        setTimeout("changeOpacParent(" + i + ",'" + id + "')", timer * speed); timer++;
    }
}
function changeOpac(opacity, id){
    var object = document.getElementById(id).style;
    object.opacity = (opacity / 100);
    object.MozOpacity = (opacity / 100);
    object.KhtmlOpacity = (opacity / 100);
    object.filter = "alpha(opacity=" + opacity + ")";
}
function changeOpacParent(opacity, id){
    var object = parent.document.getElementById(id).style;
    object.opacity = (opacity / 100);
    object.MozOpacity = (opacity / 100);
    object.KhtmlOpacity = (opacity / 100);
    object.filter = "alpha(opacity=" + opacity + ")";
}
//------------------------------------------------------------------------
function open_preview(obj_imagen, grande, ancho, alto){
	var contenedor = document.getElementById('cont_preview');

	horzpos = (pos_real(obj_imagen,'x') + (obj_imagen.width/2)) - (ancho/2);
	vertpos = (pos_real(obj_imagen,'y') + (obj_imagen.height/2)) - (alto/2);

	if (horzpos < 0){horzpos = 0;}
	if (vertpos < 0){vertpos = 0;}

	contenedor.style.left= horzpos + 'px';
	contenedor.style.top = vertpos + 'px';

	contenedor.innerHTML ='<img onmouseout="close_preview();" src="'+grande+'" style="border:3px solid #EFEDED;">';
	contenedor.style.display = 'block';
	changeOpac(0,'cont_preview');
	opacity('cont_preview',0,100,500);
}
function close_preview(){document.getElementById('cont_preview').style.display='none';}
//------------------------------------------------------------------------
function preview1(id_chica, ruta_grande, ancho, alto){
	pausecomp(300);
	
	var contenedor = document.getElementById('div_naranja');
	var obj_imagen = document.getElementById(id_chica);

	horzpos = (pos_real(obj_imagen,'x') - ((ancho/2) - (obj_imagen.width/2))) - 30;
	vertpos = (pos_real(obj_imagen,'y') - ((alto/2) - (obj_imagen.height/2))) - 15;

	if (horzpos < 290){horzpos = 290;}
	if (vertpos < 0){vertpos = 0;}

	document.getElementById('cont1').innerHTML = '<img src="'+ruta_grande+'" onmouseout="close_preview1();">';

	contenedor.style.left= horzpos + 'px';
	contenedor.style.top = vertpos + 'px';
	contenedor.style.display = 'block';

	changeOpac(0,'div_naranja');
	opacity('div_naranja',20,100,900);
}
function close_preview1(){document.getElementById('div_naranja').style.display='none';}
//------------------------------------------------------------------------
function preview2(id, fecha){
	pausecomp(300);

	var margenLeft = 0;
	var aPantalla  = getPageSize();
	var contenedor = parent.document.getElementById('div_evento');
	var referencia = document.getElementById('celda_ref_'+id);

	margenLeft = parseInt(pos_real(referencia,'x'));
	if (margenLeft <= 0){
		margenLeft = 0;
	} else if (margenLeft >= aPantalla[2]){
		margenLeft = aPantalla[0] - 260;
	}
	contenedor.style.left = margenLeft + 'px';
	contenedor.style.top  = '155px';
	contenedor.style.display = 'block';

	changeOpacParent(0,'div_evento');
	opacityParent('div_evento',20,100,900);

	createXMLHttpRequest();
	xmlHttp.onreadystatechange = handle_cargar_eventos;
	xmlHttp.open('GET', 'ajax_eventos.php?fecha='+fecha, true);
	xmlHttp.send(null);
}
function handle_cargar_eventos(){
	if(xmlHttp.readyState == 4){
		if(xmlHttp.status == 200){
			accion_cargar_eventos();
		} else {
			alert("Error mientras se realizaba el proceso.");
		}
	}
}
function accion_cargar_eventos(){
	var response = xmlHttp.responseText;
	if (response){
		parent.document.getElementById('cont2').innerHTML = response;
	}
}
function close_preview2(){document.getElementById('div_evento').style.display='none';}
//------------------------------------------------------------------------
function preview3(id_chica, ruta_grande, ancho, alto){
	pausecomp(300);

	var auxi_title = new Array();
	auxi_title = id_chica.split('_');

	var contenedor = document.getElementById('div_gris');
	var obj_imagen = document.getElementById(id_chica);
	var titulo = document.getElementById('nom_'+auxi_title[1]);
	var votos  = document.getElementById('vot_'+auxi_title[1]);
	
	horzpos = (pos_real(obj_imagen,'x') - ((ancho/2) - (obj_imagen.width/2))) - 30;
	vertpos = (pos_real(obj_imagen,'y') - ((alto/2) - (obj_imagen.height/2))) - 15;

	if (horzpos < 290){horzpos = 290;}
	if (vertpos < 0){vertpos = 0;}

	document.getElementById('cont3').innerHTML = '<img src="'+ruta_grande+'" onmouseout="close_preview3();">'+
	'<table width="100%" height="36" border="0" cellpadding="0" cellspacing="2" class="punteado">'+
  	'<tr><td colspan="3" align="left"><h1>'+titulo.value+'&nbsp;['+votos.value+']</h1></td></tr></table>';

  	vertpos = vertpos + 32;
  	
	contenedor.style.left= horzpos + 'px';
	contenedor.style.top = vertpos + 'px';
	contenedor.style.display = 'block';

	changeOpac(0,'div_gris');
	opacity('div_gris',20,100,900);
}
function close_preview3(){document.getElementById('div_gris').style.display='none';}
//------------------------------------------------------------------------
function pausecomp(millis){
	var date = new Date();
	var curDate = null;
	
	do { curDate = new Date(); }
	while(curDate-date < millis);
}
//------------------------------------------------------------------------
function votarFoto(id,lugar){
	createXMLHttpRequest();
	xmlHttp.onreadystatechange = handle_votar_foto;
	xmlHttp.open('GET', 'votar_foto.php?Id='+id+'&lugar='+lugar, true);
	xmlHttp.send(null);
}
function handle_votar_foto(){
	if(xmlHttp.readyState == 4){
		if(xmlHttp.status == 200){
			accion_votar_foto();
		} else {
			alert("Error mientras se realizaba el proceso.");
		}
	}
}
function accion_votar_foto(){
	var response = xmlHttp.responseText;
	alert('Voto registrado.');
	
	if (response == 'index'){
		document.location = 'index.php';
	} else {
		document.location = 'galeria.php?cat='+response;
	}
}
//------------------------------------------------------------------------
function getPageSize(){	
	var xScroll, yScroll;

	if (window.innerHeight && window.scrollMaxY) {	
		xScroll = document.body.scrollWidth;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else {
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}
	var windowWidth, windowHeight;
	if (self.innerHeight) {
		windowWidth = self.innerWidth;
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) {
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) {
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else { 
		pageHeight = yScroll;
	}
	if(xScroll < windowWidth){	
		pageWidth = windowWidth;
	} else {
		pageWidth = xScroll;
	}
	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) 
	return arrayPageSize;
}