var SELECT_ITEMS_DELETE = 'Por favor seleccione los ítem que desea borrar';
var SELECT_ITEM_MODIFY = 'Por favor seleccione el ítem que desea modificar';
var SELECT_ITEM = 'Por favor seleccione un ítem';
var SELECT_ITEMS = 'Por favor seleccione uno o más ítems';
var DELETE_ITEMS_CONFIRM = 'Está seguro que desea borrar los ítems seleccionados';
var DELETE_ITEM_CONFIRM = 'Está seguro que desea borrar el ítem seleccionado';
var GENERAL_CONFIRM = 'Está seguro que desea realizar la operación';

var ids = new Array();

function addEntity(entity, managerParams)
{
	var url = entity + 'Editor.php?managerAction=add';
	if(typeof(managerParams) != "undefined" && managerParams != null && managerParams != '')
		url += '&managerParams=' + managerParams;
	
	document.location.href = url;
}

function deleteEntity(entity, managerParams)
{
	if(isManagerChecked())
	{
		if(confirm(DELETE_ITEMS_CONFIRM))
		{
			var url = entity + 'FrontController.php';

			if(typeof(managerParams) != "undefined" && managerParams != null && managerParams != '')
				url += '?managerParams=' + managerParams;
			
			document.getElementById('frmManager').action = url;
			document.getElementById('frmManager').submit();
		}
	} 
	else 
	{
		alert(SELECT_ITEMS_DELETE);
	}	
}

function modifyEntity(entity, nameId, managerParams)
{
	if(isManagerChecked())
	{
		if(typeof(nameId) == "undefined" || nameId == null)
			nameId = 'id' + entity;

		var url = entity + 'Editor.php?managerAction=update&' + nameId + '=' + getFirstManagerId();

		if(typeof(managerParams) != "undefined" && managerParams != null && managerParams != '')
			url += '&managerParams=' + managerParams;
		
		document.location.href = url;
	} 
	else
	{
		alert(SELECT_ITEM_MODIFY);
	}	
	
}

function viewEntity(entity, nameId)
{
	if(isManagerChecked())
	{
		if(typeof(nameId) == "undefined" || nameId == null)
			nameId = 'id' + entity;
		var url = entity + 'View.php?' + nameId + '=' + getFirstManagerId();
		document.location.href = url;
	} 
	else
	{
		alert(SELECT_ITEM_MODIFY);
	}	
}

function isManagerChecked()
{
	var isChecked = false;
	var recordCount = getRecordCount();
	var elementName;
	for(i = 0; i < recordCount; i++)
	{
		elementName = 'chkId' + i;
		isChecked = isChecked || document.getElementById(elementName).checked;
	}
	return isChecked;
}


function getRecordCount()
{
	return document.getElementById('recordCount').value;
}


function getFirstManagerId()
{
	// [Precondicion] Hay al menos un elemento seleccionado
	var id = null;
	var recordCount = getRecordCount();
	var notFinded = true;
	var elementName;
	for(i = 0; i < recordCount && notFinded; i++)
	{
		elementName = 'chkId' + i;
		if(document.getElementById(elementName).checked)
		{
			id = document.getElementById(elementName).value;
			notFinded = false;
		}
	}
	return id;
}

function getFirstManagerObject()
{
	// [Precondicion] Hay al menos un elemento seleccionado
	var id = null;
	var recordCount = getRecordCount();
	var notFinded = true;
	var elementName;
	for(i = 0; i < recordCount && notFinded; i++)
	{
		elementName = 'chkId' + i;
		if(document.getElementById(elementName).checked)
		{
			obj = document.getElementById(elementName);
			notFinded = false;
		}
	}
	return obj;
}


//------------------------------------------------------------

function deleteWithConfirm(url)
{
	if(isManagerChecked())
	{
		if(confirm(DELETE_ITEMS_CONFIRM))
		{
			document.getElementById('frmManager').action = url;
			document.getElementById('frmManager').submit();
		}
	} 
	else 
	{
		alert(SELECT_ITEMS);
	}	
}

function gotoById(url, nameId, params)
{
	if(isManagerChecked())
	{
		url += '?' + nameId + '=' + getFirstManagerId();
		if(typeof(params) != "undefined" && params != null)
			url += '&' + params;
		document.location.href = url;
	} 
	else
	{
		alert(SELECT_ITEM);
	}	
	
}

function confirmDelete()
{
	return confirm(DELETE_ITEM_CONFIRM);
}

function confirmMultipleDelete()
{
	if(isManagerChecked())
	{
		return confirmDelete();
	} 
	else 
	{
		alert(SELECT_ITEMS_DELETE);
		return false;
	}
}

// ejecuta una accion desde un Managar, funciona tipo el gotoById o modify
function ejecutarAccionManager(accion, url, nameId, params)
{
	if(isManagerChecked())
	{
		url += '?' + nameId + '=' + getFirstManagerId() + '&managerAction=' + accion;
		if(typeof(params) != "undefined" && params != null)
			url += '&' + params;
		document.location.href = url;
	} 
	else 
	{
		alert(SELECT_ITEM);
	}
}

// igual que ejecutarAccionManager pero pide confirmacion
function ejecutarAccionManagerConfirmar(accion, url, nameId, params)
{
	if(isManagerChecked())
	{
		if(confirm(GENERAL_CONFIRM))
		{
			url += '?' + nameId + '=' + getFirstManagerId() + '&managerAction=' + accion;
			if(typeof(params) != "undefined" && params != null)
				url += '&' + params;
			document.location.href = url;
		}
	} 
	else 
	{
		alert(SELECT_ITEM);
	}
}
