// JavaScript Document
var small_loader = "http://static.veavisos.com/loading_small.gif";
var large_loader = "http://static.veavisos.com/loading.gif";

 
/*
 * Precargador de imagenes extraido de macromedia dreamweaver
 */
function preloadImages() 
{ 
  var d = document; 
  if (d.images) { 
    if(!d.p) d.p=new Array();
    var i,j=d.p.length,a=preloadImages.arguments; 
    for(i=0; i<a.length; i++)
      if (a[i].indexOf("#")!=0){ d.p[j]=new Image; d.p[j++].src=a[i];
    }
  }
}

/*
 * Codigo extraido de: http://www.quirksmode.org/dom/getElementsByTagNames.html
 * Recupera todos los elementos con etiquetas dadas (list) de un contenedor (obj)  
*/
function getElementsByTagNames(list, obj) {
	if (!obj) var obj = document;
	var tagNames = list.split(',');
	var resultArray = new Array();
	for (var i=0;i<tagNames.length;i++) {
		var tags = obj.getElementsByTagName(tagNames[i]);
		for (var j=0;j<tags.length;j++) {
			resultArray.push(tags[j]);
		}
	}
	var testNode = resultArray[0];
	if (!testNode) return [];
	if (testNode.sourceIndex) {
		resultArray.sort(function (a,b) {
				return a.sourceIndex - b.sourceIndex;
		});
	}
	else if (testNode.compareDocumentPosition) {
		resultArray.sort(function (a,b) {
				return 3 - (a.compareDocumentPosition(b) & 6);
		});
	}
	return resultArray;
}

/*
 * Marca el primer checkbox de la lista y recorre
 * el resto para desmarcarlos
 *
 * @param child_id, id del checkbox que se seleccionar
 * @param parent_id, id del contenedor de la lista de checkboxes
*/
function clickAll(child_id, parent_id) {	
	var parent_obj = $(parent_id);
	var child_obj = $(child_id);
	if (!child_obj || !parent_obj) return;
	var elems = getElementsByTagNames('input', parent_obj);
	
	for (var i = 1; i < elems.length; i++) {
		elems[i].checked = false;
	}
	child_obj.checked = true;
	
}


/*
 * Desmarca el primer checkbox de la lista y recorre
 * el resto para marcarlos
 *
 * @param UL parent_id, id del contenedor de la lista de checkboxes
*/
function fixAll(parent_id) {
    var parent_obj = $(parent_id);
	if (!parent_obj) return;
	var elems = getElementsByTagNames('input', parent_obj);
	var on = 0;
	for (var i = 1; i < elems.length; i++) {
		if (elems[i].checked == true) {
			on++;
			break;
		}
	}
	elems[0].checked = !on;
}

/*
 * Simula un click sobre un elemento, es usado cuando se esta 
 * haciendo click un checkbox visible y se desea mantener el
 * mismo estado en su correspondiente checkox invisible, en nuestro caso
 * para no perder los elementos seleccionados al expandir o reducir la lista
 * de checkboxes
 *
 * @param child_id, id del checkbox oculto que se desea seleccionar
 * @param parent_id, id del contenedor del checkbox con child_id
*/
function clickAndFixAll(child_id, parent_id) {	
	var parent_obj = $(parent_id);
	var child_obj = $(child_id);
	if (!child_obj || !parent_obj) return;
	child_obj.checked = !child_obj.checked;
	fixAll(parent_obj);
}

/*
 * Muestra u oculta dos elementos dependientes uno del otro
 * si uno esta mostrandose entonces oculta el otro.
 *
 * @param element_id_1, Si este esta oculto el siguiente se muestra
 * @param element_id_2, Si este esta oculto entonces el anterior se muestra
*/
function dualToogle(element_id_1, id_element_2)
{
  if ($(element_id_1).style.display == 'none') {
    $(element_id_1).style.display = 'block';
    $(id_element_2).style.display = 'none';
  } else {
    $(element_id_1).style.display = 'none';
    $(id_element_2).style.display = 'block';
  }
}

function popup(url, name, width, height){
	var properties;
	properties="screenX=50,screenY=50,location=0,resizable=1,titlebar=1,directories=0,toolbar=0,menubar=0,scrollbars=1,status=0";
  
	if(width>0) caract_width=",WIDTH="+width;
	else  caract_width="WIDTH=300";
  
	if(height>0) caract_height=",HEIGHT="+height;
	else  caract_height= ",HEIGHT=350";
	  
	properties = properties + caract_width+caract_height;
  
	newWin=window.open(url, name, properties);
	var windowX = (screen.width/2)-(width/2);
	var windowY = (screen.height/2)-(height/2);
  
	newWin.moveTo(windowX,windowY)
	
	newWin.focus();
	onscreen=true;
}

function validateSearch() 
{
  if (this.q.value == '') {
	  alert('Debe ingresar al menos una palabra para poder realizar una búsqueda');
	  this.q.focus();
	  return false;
  } 
  return true;
}

function loadCaptcha()
{
	new Ajax.Updater('captcha_image', '/captcha-reload', {asynchronous:true, evalScripts:false, onLoading:function(request, json){$('captcha_image').update('<div width="100%" align="center" style="padding-top:10px>" <img src="' + small_loader + '" alt="Cargando" /></div>')}}); 
	return false;
}

function initGlobal()
{
	if ($('frm_search') != undefined) {
		$('frm_search').onsubmit = validateSearch;
	}
		
	if ($('captcha_link') != undefined) {
		$('captcha_link').onclick = loadCaptcha;
	}
	
	preloadImages(small_loader, large_loader);

}

function initSlideShow()
{
	if ($('myGallery1') != undefined) {
		var myGallery1 = new SlideShow($('myGallery1'));
	}
	
	if ($('myGallery2') != undefined) {
		var myGallery2 = new SlideShow($('myGallery2'));
	}
	
	if ($('myGallery3') != undefined) {
		var myGallery3 = new SlideShow($('myGallery3'));
	}
	
	if ($('myGallery4') != undefined) {
		var myGallery4 = new SlideShow($('myGallery4'));
	}
	

}

//document.observe("dom:loaded", initSlideShow);
Event.observe(window, 'load', initGlobal, false);