var arrCanales = [];
var CFG_ORDENACION = "cfg.ordenacion";

var iOpcionOrden  = 0;
var bMoviendoCanal  = false;
var iMaxOpcionOrden  = 0;
var iPaginaOrden  = 0;
var iMaxPaginaOrden  = 0;
var cValoresOrden  = [];
var cPadding = "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
var OPC_Orden_MAX = 9;

function Pag_Orden_Show() {
	var iIndice;
	for (iIndice = arrCanales.length; iIndice < objTuner.services.length; iIndice++) {
		arrCanales[iIndice] = iIndice;
	}
	Page_Show("Pag_Orden",
		 '<table width="720px" cellpadding="0" cellspacing="0" style="position: absolute; table-layout: fixed; background-image: url(fondo_datos.png);">'
		+'<tr height="88px">'
		+'	<td width="75px"/>'
		+'	<td width="220px" valign="bottom" style="color:#ffffff; font-size:18pt;">Ordenar canales</td>'
		+'	<td width="280px" valign="bottom" align="right" class="font15">' + ObtenerHoraActual() + '</td>'
		+'	<td width="140px"/>'
		+'</tr>'
		+'<tr height="17px"/>'
		+'<tr height="34px"><td/><td class="font16">&nbsp;<u>Num.</u></td><td class="font16"><u>Nombre del canal</u></td></tr>'
		+'<tr height="315px">'
		+'	<td/>'
		+'	<td valign="top" colspan="3">'
		+'	<table id="Frm_Orden" width="580px" cellpadding="0" cellspacing="0" style="table-layout: fixed">'
		+'		<tr height="34px" id="Pag_Orden_Opcion1" style="background-repeat: no-repeat; background-image: url(cursor_grande.png)"><td id="Pag_Orden_NumCanal1" width="50px"  align="right" class="font16"></td><td width="30px"/><td id="Pag_Orden_Canal1" width="450px"  class="font16"></td><td width="50px"/></tr>'
		+'		<tr height="34px" id="Pag_Orden_Opcion2" style="background-repeat: no-repeat;"><td id="Pag_Orden_NumCanal2" width="50px" align="right" class="font16"></td><td width="30px"/><td id="Pag_Orden_Canal2" width="450px" class="font16"></td><td width="50px"/></tr>'
		+'		<tr height="34px" id="Pag_Orden_Opcion3" style="background-repeat: no-repeat;"><td id="Pag_Orden_NumCanal3" width="50px" align="right" class="font16"></td><td width="30px"/><td id="Pag_Orden_Canal3" width="450px" class="font16"></td><td width="50px"/></tr>'
		+'		<tr height="34px" id="Pag_Orden_Opcion4" style="background-repeat: no-repeat;"><td id="Pag_Orden_NumCanal4" width="50px" align="right" class="font16"></td><td width="30px"/><td id="Pag_Orden_Canal4" width="450px" class="font16"></td><td width="50px"/></tr>'
		+'		<tr height="34px" id="Pag_Orden_Opcion5" style="background-repeat: no-repeat;"><td id="Pag_Orden_NumCanal5" width="50px" align="right" class="font16"></td><td width="30px"/><td id="Pag_Orden_Canal5" width="450px" class="font16"></td><td width="50px"/></tr>'
		+'		<tr height="34px" id="Pag_Orden_Opcion6" style="background-repeat: no-repeat;"><td id="Pag_Orden_NumCanal6" width="50px" align="right" class="font16"></td><td width="30px"/><td id="Pag_Orden_Canal6" width="450px" class="font16"></td><td width="50px"/></tr>'
		+'		<tr height="34px" id="Pag_Orden_Opcion7" style="background-repeat: no-repeat;"><td id="Pag_Orden_NumCanal7" width="50px" align="right" class="font16"></td><td width="30px"/><td id="Pag_Orden_Canal7" width="450px" class="font16"></td><td width="50px"/></tr>'
		+'		<tr height="34px" id="Pag_Orden_Opcion8" style="background-repeat: no-repeat;"><td id="Pag_Orden_NumCanal8" width="50px" align="right" class="font16"></td><td width="30px"/><td id="Pag_Orden_Canal8" width="450px" class="font16"></td><td width="50px"/></tr>'
		+'		<tr height="34px" id="Pag_Orden_Opcion9" style="background-repeat: no-repeat;"><td id="Pag_Orden_NumCanal9" width="50px" align="right" class="font16"></td><td width="30px"/><td id="Pag_Orden_Canal9" width="450px" class="font16"></td><td width="50px"/></tr>'
		+'	</table>'
		+'	</td>'
		+'</tr>'
		+'<tr height="50px" valign="top"><td/><td class="font16" style="background-image: url(boton_rojo.png); background-repeat: no-repeat;"/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Guardar</td><td class="font16" style="background-image: url(boton_azul.png); background-repeat: no-repeat;"/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cancelar</td></tr>'
		+'<tr height="50px"/>'
		+'</table>');
	iOpcionOrden = 1;
	iPaginaOrden = 1;
	bMoviendoCanal = false;
	iMaxPaginaOrden = objTuner.services.length - (objTuner.services.length % OPC_Orden_MAX) + 1;
	RefreshCargarOrden();
}

function Pag_Orden_Close() {
	Pag_Config_Show(OPC_Config_Orden);
}

function Pag_Orden_KeyDown(keyChar) {
	var iTemp;
	var iPos1;
	var iPos2;
	try {
		switch (keyChar) {
		case KEY_UP:
			if (bMoviendoCanal) {
				iPos1 = iOpcionOrden + iPaginaOrden - 2;
				iPos2 =(iPos1 + arrCanales.length - 1) % arrCanales.length
				iTemp = arrCanales[iPos1];
				arrCanales[iPos1] = arrCanales[iPos2];
				arrCanales[iPos2] = iTemp;
			}
			ActualizarOrden(iOpcionOrden - 1);
			return 0;
		case KEY_DOWN:
			if (bMoviendoCanal) {
				iPos1 = iOpcionOrden + iPaginaOrden - 2;
				iPos2 =(iPos1 + arrCanales.length + 1) % arrCanales.length
				iTemp = arrCanales[iPos1];
				arrCanales[iPos1] = arrCanales[iPos2];
				arrCanales[iPos2] = iTemp;
			}
			ActualizarOrden(iOpcionOrden + 1);
			return 0;
		case KEY_OK:
		case KEY_RIGHT:
			bMoviendoCanal = !bMoviendoCanal;
			if (!bMoviendoCanal) {
				document.getElementById("Pag_Orden_Canal" + iOpcionOrden).innerHTML = ObtenerCanal(iOpcionOrden + iPaginaOrden - 1).name + cPadding;
			}
			ActualizarOrden(iOpcionOrden);
			return 0;
		case KEY_LEFT:
		case KEY_BACK:
		case KEY_BLUE:
			// Volver a obtener la última ordenación guardada
			arrCanales = getValue(CFG_ORDENACION, "0").split(",");
			if (arrCanales.length != objTuner.services.length) {
				for (var iTemp = 0; iTemp < objTuner.services.length; iTemp++) {
					arrCanales[iTemp] = iTemp;
				}
			}
			Pag_Orden_Close();
			return 0;
		case KEY_RED:
			setValue(CFG_ORDENACION, arrCanales);
			Pag_Canal_Show(iNumCanal, true);
			Pag_Orden_Close();
			return 0;
		}
	} catch(ex) {
		alert("Pag_Orden_KeyDown: " + ex);
	}
	return 1;
}

function CargarOrden(iPag) {
	try {
		iPaginaOrden  = iPag;
		if (iPaginaOrden < 1) iPaginaOrden  = iMaxPaginaOrden;
		if (iPaginaOrden > iMaxPaginaOrden) iPaginaOrden  = 1;
		iMaxOpcionOrden  = 0;
		for (var iNumLinea  = 1; iNumLinea <= OPC_Orden_MAX; iNumLinea++) {
			document.getElementById("Pag_Orden_Opcion" + iNumLinea).style.backgroundImage = "none";
			try {
				if ((iNumLinea + iPaginaOrden - 1) <= objTuner.services.length) {
					iMaxOpcionOrden  = iNumLinea;
				}
			} catch(ex) {
				//Ignorar errores de que el servicio no existe y poner la fila en blanco
			}
		}
		
		if (iMaxOpcionOrden > 0) {
			if (iOpcionOrden == 0) {
				ActualizarOrden(iMaxOpcionOrden);
			} else {
				iOpcionOrden = 0;
				ActualizarOrden(1);
			}
		}
		setTimeout("RefreshCargarOrden()",1);
	} catch(ex) {
		alert("CargarOrden: " + ex);
	}
}
		
function RefreshCargarOrden() {
	try {
		for (var iNumLinea  = 1; iNumLinea <= OPC_Orden_MAX; iNumLinea++) {
			if ((iNumLinea + iPaginaOrden - 1) <= objTuner.services.length) {
				document.getElementById("Pag_Orden_Canal" + iNumLinea).innerHTML = ObtenerCanal(iNumLinea + iPaginaOrden - 1).name + cPadding; //+ " " + ObtenerCanal(iNumLinea + iPaginaOrden - 1).serviceInfo.uri + cPadding;
				document.getElementById("Pag_Orden_NumCanal" + iNumLinea).innerHTML = (iNumLinea + iPaginaOrden - 1);
				iMaxOpcionOrden  = iNumLinea;
			} else {
				//Ignorar errores de que el servicio no existe y poner la fila en blanco
				document.getElementById("Pag_Orden_Canal" + iNumLinea).innerHTML =  cPadding;
				document.getElementById("Pag_Orden_NumCanal" + iNumLinea).innerHTML = cPadding;
			}
		}
		if (bMoviendoCanal) {
			RefreshActualizarOrden(0, iOpcionOrden);
		}
	} catch(ex) {
		alert("RefreshCargarOrden: " + ex);
	}
}

function ActualizarOrden(iOpc) {
	try {
		if (iOpcionOrden > 0) {
			document.getElementById("Pag_Orden_Opcion" + iOpcionOrden).style.backgroundImage = "none";
		}
		if (iOpc < 1) {
			iOpcionOrden = iOpc;
			CargarOrden(iPaginaOrden - OPC_Orden_MAX);
		} else if (iOpc > iMaxOpcionOrden) {
			iOpcionOrden = iOpc;
			CargarOrden(iPaginaOrden + OPC_Orden_MAX);
		} else {
			if (bMoviendoCanal) {
				setTimeout("RefreshActualizarOrden(" + iOpcionOrden + "," + iOpc + ")", 1);
			}
			iOpcionOrden = iOpc;
			document.getElementById("Pag_Orden_Opcion" + iOpcionOrden).style.backgroundImage = "url(cursor_grande.png)";
		}
	} catch(ex) {
		alert("ActualizarOrden: " + ex);
	}
}

function RefreshActualizarOrden(iOpcAnt, iOpcNueva) {
	if (iOpcAnt > 0) {
		document.getElementById("Pag_Orden_Canal" + iOpcAnt).innerHTML = ObtenerCanal(iOpcAnt + iPaginaOrden - 1).name + cPadding;
	}
	document.getElementById("Pag_Orden_Canal" + iOpcNueva).innerHTML = ">>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" + ObtenerCanal(iOpcNueva + iPaginaOrden - 1).name + cPadding
}

function ObtenerCanal(iCan) {
	try {
		if (arrCanales.length < iCan) {
			return objTuner.services.item(iCan - 1);
		}
		return objTuner.services.item(arrCanales[iCan - 1]);
	} catch(ex) {
		alert("ObtenerCanal: " + iCan + " " + ex + ex.code);
	}
	return null;
}

