/**
* Esta funci?n ha sido modificada por Bob, 24/05/2005.
* Ahora se puede pasar a la funci?n, dentro del array 'arrParam', otro Array. Se usa cuando quieres pasar,
* como ?ltimo elemento del array 'arrParam', otro Array de argumentos. Hasta ahora eso ha sido imposible --
* ten?as que pasar un n?mero fijo de elementos. Ahora es m?s din?mico, puedes pasar un Array y se a?aden
* todos los elementos de este Array.
*
* Eso es util si quieres llamar una funci?n propia en la p?gina jsp que a su vez llama a fOpenAction():
*
* <a href="javascript:myFunction('myAction', 'param1','1','param2','2','param3','3','param4','4');
*
* function myFunction(actionName) {
* 	fOpenAction(actionName, 'Info', 'resizable=yes,...', myFunction.arguments);
* }
*
* As? todos los argumentos de myFunction se pasan autom?ticamente a fOpenAction()
*
* OJO que si el elemento en el Array 'arrParam' es de tipo 'object' se supone que es un Array.
* Adem?s, tambi?n se supone que el primer elemento del Array 'argArr' es el nombre del Action. Por lo tanto
* la variable 'iniValue' est? asignado el valor '1' despues de asignar arrParam[iniValue] a 'argArr'.
* As? que cuando recorre los valores de 'argArr', empieza con 'argArr[1]', pasando de 'argArr[0], que es
* el nombre del Action.
*/

function setArguments(arrParam, iniValue)
{
 var strParam = "", i, pos;
 var size;
 var argArr = new Array();
 var paramIsArray = false;


 if (typeof arrParam[iniValue] == 'object') {
 	argArr = arrParam[iniValue];

 	iniValue = 3;
 	size = (argArr.length - iniValue) / 2;
 	paramIsArray = true;
 }
 else size = (arrParam.length - iniValue) / 2;

 for (i = 0; i < size; i++)
 {
  pos = iniValue + 2*i;

  if (paramIsArray) strParam += ('&' + argArr[pos] + '=' + argArr[pos + 1]);
  else strParam += ('&' + arrParam[pos] + '=' + arrParam[pos + 1]);
 }


 return (strParam);
}

// hace un submit mirando la funci?n fCheck()
function doSubmit(actionName)
{
 var f = document.getElementById('f');
 var check = true;

 if (window.fCheck) check = fCheck(f);

 if (check)
 {
  f.action = '/almareformas/actionServlet?accio=' + actionName;
  f.action += setArguments(doSubmit.arguments, 1);
  f.submit();
 }
}

// hace un submit sin mirar nunca la funci?n fCheck()
function doSubmitNoCheck(actionName)
{
 var f = document.getElementById('f');
 f.action = '/almareformas/actionServlet?accio=' + actionName;
 f.action += setArguments(doSubmitNoCheck.arguments, 1);
 f.submit();
}

function doLink(actionName, pTarget)
{
 var vchUrl = '/almareformas/actionServlet?accio=' + actionName;
 vchUrl += setArguments(doLink.arguments, 2);

 window.open(vchUrl, pTarget);
}


function fOpenAction (actionName, pTarget, pAtributos)
{
 var vchUrl = '/almareformas/actionServlet?accio=' + actionName;
 vchUrl += setArguments(fOpenAction.arguments, 3);

 var vWin = window.open(vchUrl, pTarget, pAtributos);
 vWin.focus();
}