var dom = document.getElementById ? true:false;
var nn4 = document.layers ? true:false;
var ie4 = document.all ? true:false;
var status = 1;
var toc = new Array();

function item(off, over)
{
	this.off = new Image(); this.off.src = off;
	this.over = new Image(); this.over.src = over;
}
function cache(id, off, over)
{
	item[id] = new item(off, over);
	toc[toc.length] = id;
}
function over(id)
{
	document.getElementById(id).src = item[id].over.src;
}
function out(id)
{
	document.getElementById(id).src = item[id].off.src;
}

function submit(formulario, accion)
{
	var form = document.forms[formulario];
	form['accion'].value = accion;
	form.submit();
}

Array.prototype.search = function (texto)
{
	var retorno = -1;
	var i=0;
	while(i<this.length && retorno==-1)
	{
		if(this[i] == texto) retorno = i;
		i++;
	}
	return retorno;
}

function ChangeColor(What, BackColor)
	{
	What.style.backgroundColor = BackColor;
	}

function DisplayActionMessage(PageActionMessage)
	{
	if (PageActionMessage != '')
		{
		alert(PageActionMessage);
		}
	}
	
function btnMultipleSelect(descripcion, nombreForm, nombreSelectOrigen, nombreSelectDestino)
{
	var strError = '';
	var form          = document.forms[nombreForm];
	var selectOrigen  = form[nombreSelectOrigen];
	var selectDestino = form[nombreSelectDestino];

	if(!strError && -1==selectOrigen.selectedIndex)
	{
		strError = 'Debe seleccionar al menos un elemento de ' + descripcion + '.';
	}

	if(strError)
	{
		alert(strError);
	}
	else
	{
		transferirOpciones(selectOrigen, selectDestino);
		//ordenarSelect(selectDestino);
	}
}

function SelectDesactivar(campo1,campo2,tipo, arrNoPermitidos){
	strError = '';
	formulario        = document.forms['form'];
	arrBrand          = formulario[campo1];
	arrBrandSelect    = formulario[campo2];

	if(!strError && -1== arrBrandSelect.selectedIndex) strError = 'Por favor, seleccione ' + tipo;
	if(strError){
		alert(strError);
	}else{
		transferirOpciones(arrBrandSelect, arrBrand, 1, arrNoPermitidos);
		//ordenarSelect(arrBrand);
	}
}

function transferirOpciones(selectOrigen, selectDestino){
	var i=0;
	var totalOpciones = selectOrigen.length
	while(i<totalOpciones)
	{
		var opcionOrigen  = selectOrigen.options[i];
		if(opcionOrigen.selected)
		{
			var opcionDestino = new Option(opcionOrigen.text, opcionOrigen.value);
			if(opcionOrigen.className) { opcionDestino.className = opcionOrigen.className; }
			if(opcionOrigen.getAttribute('order')) { opcionDestino.setAttribute('order', opcionOrigen.getAttribute('order')); }
			selectDestino.options[selectDestino.length] = opcionDestino;
			selectOrigen.options[i] = null;
			totalOpciones--;
		} else i++;
	}
}

function ordenarSelect(select){
	var arrOpciones = new Array();
	if(select) for(var i=0; i<select.length; i++)
	{
		var opcion = select.options[i];
		var nombreClass = opcion.className ? opcion.className : '';
		var order = opcion.getAttribute('order') ? opcion.getAttribute('order') : '';
		arrOpciones.push(order+'~'+opcion.text+'~'+opcion.value+'~'+nombreClass);
	}
	arrOpciones.sort();
	select.length = 0;
	for(i=0; i<arrOpciones.length; i++)
	{
		opcion = arrOpciones[i].split('~');
		select.options[select.length] = new Option(opcion[1], opcion[2]);
		if(opcion[0]) { select.options[select.length-1].setAttribute('order', opcion[0]); }
		if(opcion[3]) { select.options[select.length-1].className = opcion[3]; }
	}
}

// Inicia el foco en un control determinado
function setFocus(nameForm,field) {
		var form = document.forms[nameForm];
		var field  = form[field];
    field.focus();
} 

function btnMultipleSelect(descripcion, nombreForm, nombreSelectOrigen, nombreSelectDestino)
{
	var strError = '';
	var form          = document.forms[nombreForm];
	var selectOrigen  = form[nombreSelectOrigen];
	var selectDestino = form[nombreSelectDestino];

	if(!strError && -1==selectOrigen.selectedIndex)
	{
		strError = 'Debe seleccionar al menos un elemento de ' + descripcion + '.';
	}

	if(strError)
	{
		alert(strError);
	}
	else
	{
		transferirOpciones(selectOrigen, selectDestino);
		//ordenarSelect(selectDestino);
	}
}

function SelectDesactivar(campo1,campo2,tipo, arrNoPermitidos){
	strError = '';
	formulario        = document.forms['form'];
	arrBrand          = formulario[campo1];
	arrBrandSelect    = formulario[campo2];

	if(!strError && -1== arrBrandSelect.selectedIndex) strError = 'Por favor, seleccione ' + tipo;
	if(strError){
		alert(strError);
	}else{
		transferirOpciones(arrBrandSelect, arrBrand, 1, arrNoPermitidos);
		//ordenarSelect(arrBrand);
	}
}

function transferirOpciones(selectOrigen, selectDestino){
	var i=0;
	var totalOpciones = selectOrigen.length
	while(i<totalOpciones)
	{
		var opcionOrigen  = selectOrigen.options[i];
		if(opcionOrigen.selected)
		{
			var opcionDestino = new Option(opcionOrigen.text, opcionOrigen.value);
			if(opcionOrigen.className) { opcionDestino.className = opcionOrigen.className; }
		//	if(opcionOrigen.getAttribute('order')) { opcionDestino.setAttribute('order', opcionOrigen.getAttribute('order')); }
			selectDestino.options[selectDestino.length] = opcionDestino;
			selectOrigen.options[i] = null;
			totalOpciones--;
		} else i++;
	}
}

function ordenarSelect(select){}

function seleccionarTodos(select){
	if(select) for(i=0; i<select.length; i++){
		select.options[i].selected = true;
	}
}

/**
* Cache y MouseOver-MouseOut
*/
var _arrImageCache = new Object();

function over(imageId) { _arrImageCache[imageId].setOver(); }
function out(imageId) { _arrImageCache[imageId].setOut(); }
function cache(imageId, imageOut, imageOver) { _arrImageCache[imageId] = new ImageCache(imageId, imageOut, imageOver); }

function ImageCache(id, imageOut, imageOver)
{
	try
	{
		this.id        = id;
		this.imageOut  = new Image();
		this.imageOver = new Image();

		this.imageOut.src  = imageOut;
		this.imageOver.src = imageOver;

		this.setOver = function()   { this.setSrc(this.imageOver.src); }
		this.setOut = function()    { this.setSrc(this.imageOut.src);  }
		this.setSrc = function(src) { document.getElementById(this.id).src = src; }
	}
	catch(e)
	{
		alert('Ha ocurrido un error al generar un objeto ImageCache. (' + e.description + ')');
	}
}

// FUNCIONES DE POPUP

//window.childWindows = new Array();
function openPopUp(url, name, width, height, resizable, scrollbar)
{
	var screenW = Math.min(width, screen.width);
	var screenH = Math.min(height, screen.height - 80);
	var windowLeft = (screen.width - screenW)/2;
	var windowTop = (screen.height - screenH)/2;
	width     = ('undefined'==typeof width  || !width )?'':',width='+width;
	height    = ('undefined'==typeof height || !height)?'':',height='+height;
	resizable = ('undefined'==typeof resizable  || !resizable ) ? 'no' : resizable ;
	scrollbar = ('undefined'==typeof scrollbar  || !scrollbar ) ? 'no' : scrollbar ;
	var win = window.open(url, name	, 'top='+ windowTop +',left=' + windowLeft + ',toolbar=no, scrollbars='+scrollbar+', resizable='+resizable + ' ' + width + height);
}

function resizePopUp(tieneScroll, offsetUW, offsetUH)
{
	tieneScroll = 'undefined'==typeof tieneScroll || !tieneScroll ? false : true;
	offsetUW = 'undefined'==typeof offsetUW ? 0 : offsetUW;
	offsetUH = 'undefined'==typeof offsetUH ? 0 : offsetUH;
	var offsetW = 26 + (tieneScroll ? 19 : 0) + offsetUW;
	var offsetH = offsetUH;
	var screenW = Math.min(document.body.scrollWidth + offsetW, screen.width);
	var screenH = Math.min(document.body.scrollHeight + 29, screen.height - 80);
	var windowLeft = (screen.width - screenW)/2 ;
	var windowTop = (screen.height - screenH)/2;
	window.resizeTo(screenW, screenH);
	window.moveTo(windowLeft , windowTop - 20);
}

function resizePopUpNav(tieneScroll)
{
	var offsetUW = 0;
	var offsetUH = 0;

	if(isMSIE())
	{
		offsetUW = -16;
	}
	else
	{
		offsetUW = -73;
		offsetUH = -17;
	}
	resizePopUp(tieneScroll, offsetUW, offsetUH);
}


