function $(id)
{
	var e = document.getElementById(id);
	return (e != null ? e : document.createElement());
}

var PedidoGaleria =
{
	handleSuccess:function(o)
	{
		crearGaleria(o.responseXML);
	},

	handleFailure:function(o)
	{
	},

	startRequest:function()
	{
		YAHOO.util.Connect.asyncRequest('GET', 'GalleryHome.xml', callback, null);
	}
}

var callback =
{
	success: PedidoGaleria.handleSuccess,
	failure: PedidoGaleria.handleFailure,
	scope: PedidoGaleria
}

var globales = 
{
	galeriaActual: 0,
	idInterval: 0,
	cantidadGalerias: 0,
	pausa: false,
	mostrar: new Array()
}

var imagenesGaleria 	= new Array();

//crea la galeria a partir del xml levantado
function crearGaleria(XML)
{
	//busco la cantidad de noticias que hay
	galerias 						= XML.getElementsByTagName('imagen');
	cantidadGaleriasXML				= galerias.length;
	globales.cantidadGalerias	= cantidadGaleriasXML;
			
	//empiezoa armar los arrays para trabajar las galerias
	mostrar = new Array();
	min 	= 0;
	max 	= globales.cantidadGalerias - 1;
	var j = 0;
	for (i = (globales.cantidadGalerias - 1); i >= 0; i--)
	{
		mostrar[j] = i;
		j++;
	}
	
	globales.mostrar = mostrar;
	
	//armo un array con los datos de las galerias que se van a mostrar
	for (b = 0; b < globales.cantidadGalerias; b++)
	{
		img = getText(galerias.item(b));
		
        imagenesGaleria[b]	= img;
	}
	
	if (globales.cantidadGalerias > 0)
	{
		crearDivGaleria(galerias);
		poneGaleria();
		
		if (globales.cantidadGalerias > 1)
		{
			avanceAutomatico();
		}
	}
}

//crea el esqueleto para que luego se vayan cambiando las imagenes y los textos
function crearDivGaleria(galerias)
{
	divPrincipal 	= $('divContieneGalerias');
	divImgBotones	= document.createElement('div');
	for (var i=0;i<galerias.length;i++)
    {
        ImagenGaleria	= document.createElement('img');
        var text = getText(galerias.item(i));
	    ImagenGaleria.setAttribute('id', 'ImagenGaleria' + text);
	    ImagenGaleria.setAttribute('src', 'getfile.aspx?id=' + text);
	    ImagenGaleria.setAttribute('style', 'display:none;');
	    ImagenGaleria.className = 'ImagenGaleria';
	    divImgBotones.appendChild(ImagenGaleria);
    }
	
	divPrincipal.appendChild(divImgBotones);
}

function poneGaleria()
{
	imagen 		= imagenesGaleria[globales.galeriaActual];
	escribeDatosGaleria(imagen);
}

function escribeDatosGaleria(imagen)
{
    var imagenestot = getElementsByClassName('ImagenGaleria');
    for (var i=0;i<imagenestot.length;i++)
    {
        imagenestot[i].style.display = 'none';
    }
	$('ImagenGaleria' + imagen).style.display = 'block';
}

//hace el funcionamiento de avance automatico
function avanceAutomatico()
{
	globales.idInterval = setInterval('avanzaGaleria()', 2000);
	globales.pausa = false;
}

//hace que no avance mas automaticamente
function frenarAvanceAutomatico()
{
	clearInterval(globales.idInterval);
	globales.pausa = true;
}

//avanza uno en la galeria
function avanzaGaleria()
{
	clearInterval(globales.idInterval);
	
	galeriaActual = globales.galeriaActual;
	
	if (galeriaActual == globales.cantidadGalerias - 1)
	{
		proximaGaleria = 0;
	}
	else
	{
		proximaGaleria = galeriaActual + 1;
	}

	globales.galeriaActual = proximaGaleria;
	
	poneGaleria();
	
	if (globales.pausa == false)
	{
		avanceAutomatico();
	}
}

function cambiarImagen(imagen, id)
{
	img = $(id);
	img.setAttribute('src', imagen);
}

//agrega un css a la pagina
function loadCss(path)
{
	link 		= document.createElement('link');
	link.href 	= path;
	link.rel 	= "stylesheet";
	link.type 	= "text/css";
	
	document.body.appendChild(link);
}

//devuelve un numero random que no este repetido en arrayActual
function randNoRepetido(min, max, arrayActual)
{
	min = min * 1;
	max = max * 1;
	
	rand = darRandom(min, max);
	
	if (!enArray(rand, arrayActual))
	{
		return rand;
	}
	else
	{
		return randNoRepetido(min, max, arrayActual);
	}
}

//devuelve un numero randome entre min y max
function darRandom(min, max)
{
	numPosibilidades = max - min;
	rand = Math.random() * numPosibilidades;
    rand = Math.round(rand);
    return parseInt(min) + rand;
}

//se fija si valor existe en array
function enArray(valor, array)
{
	for (i = 0; i < array.length; i++)
	{
		if (valor === array[i])
		{
			return true;
		}
	}
	
	return false;
}

//segun explorer u otro navegador devuelve el texto del xml
function getText(texto)
{
	if (window.ActiveXObject)
	{
		return texto.text;
	}
	else
	{
		return texto.textContent;
	}
}

function eraseText(deDonde)
{
	if (window.ActiveXObject)
	{
		deDonde.text = '';
	}
	else
	{
		deDonde.textContent = '';
	}
}

//empiezo todo - ESTA COMENTADO PORQUE TENGO UN Construct() GNERAL DE MI SITIO!!!!!
/* window.onload = function ()
{
	PedidoGaleria.startRequest();
} */

function array_shuffle( array )
{
	for (var i = array.length - 1; i > 0; i--)
	{
	   var k = Math.floor( i * Math.random() );
	   var t = array[i];
	   array[i] = array[k], array[k] = t;
	}
	return array;
}

function jsdbg(arreglo)
{
	var text = "debbuger \n{\n"
	for(i in arreglo)
	{
		text += "\t["+i+"] => "+arreglo[i]+"\n";
	}
	text += "\r}";
	alert(text);
}


