var ajaxURL="ajax.do";

/**
 * 
 */
function addColumnaYContenido(row, cont) {
	row.insertCell(-1).innerHTML = cont;
}

/**
 * 
 */
function getAjaxParams(func, params) {
  var result = 'func=' + func;
  var item=0;
  params.split(",").each(function(param){ 
    result += "&arg" + (++item) + "=" + param;
  });
  return result;
}

/**
 * 
 */
function getAjaxText(func, params, callback) {
  if (callback == null) {
    alert("No se ha definido función callback para getAjaxText.");
  }
  var options = {
     method: 'get',
     parameters: getAjaxParams(func, params),
     onComplete: function(transport) {
     	 callback(transport.responseText);
     },
     onFailure: function(transport) {
     	 callback(null);
     }
  }
  var myAjax = new Ajax.Request(ajaxURL, options);
}

/**
 * 
 */
function getAjaxXML(func, params, callback) {
  if (callback == null) {
    alert("No se ha definido funci—n callback para getAjaxXML.");
  }
  var options = {
     method: 'get',
     parameters: getAjaxParams(func, params),
     onComplete: function(transport) {
       var xml = transport.responseXML;
       if (xml == null) {
         try {
           xml = (new DOMParser()).parseFromString(transport.responseText, "text/xml");
         } catch (e) {
           alert('Error en getAjaxXML: "' + e.message + '"');
         }
       } 
       if (xml != null) {
         callback(xml);
       }
     },
     onFailure: function(transport) {
       alert(transport.responseText);
     }
  }
  var myAjax = new Ajax.Request(ajaxURL, options);
}

/**
 * 
 */
function getBrowser() {
  if (navigator.userAgent.indexOf("Firefox")!=-1) {
    var versionindex=navigator.userAgent.indexOf("Firefox")+8
    if (parseInt(navigator.userAgent.charAt(versionindex))>=1) {
      return "FIREFOX";
    }
  } else if (navigator.appName == "Netscape" && parseFloat(navigator.appVersion)>= 5) {
    return "NETSCAPE";
  } else if (navigator.appName == "Opera" && parseFloat(navigator.appVersion)>= 8) {
    return "OPERA";
  } else {
    var version=0;
    if (navigator.appVersion.indexOf("MSIE")!=-1) {
      var temp=navigator.appVersion.split("MSIE");
      version=parseFloat(temp[1]);
    }
    if (version >= 5.5) {
      return "MSIE";
    }
  }
  return "";
}

/**
 * 
 */
function habilitarControles(controles) {
  controles.each(function(obj, index) {
    if (typeof(obj) == 'string') {
      obj = $(obj);
    }
    obj.style.cursor = 'default';
    if (obj.tagName == 'FORM') {
      new Effect.Opacity(obj, { from: 0.3, to: 1.0, duration: 0.5 });
      var elements = obj.getElements(); 
      for (var i=0; i<elements.length; i++) {
        elements[i].style.cursor = 'default';
        if (elements[i].options != null) {
          if (elements[i].options.length > 0) {
            elements[i].disabled=false;
          }
        } else {
          elements[i].disabled=false;
        }
      }
    }
  });
}

/**
 * 
 */
function inhabilitarControles(controles) {
  controles.each(function(obj, index) {
    if (typeof(obj) == 'string') {
      obj = $(obj);
    }
    obj.style.cursor = 'wait';
    if (obj.tagName == 'FORM') {
      new Effect.Opacity(obj, { from: 1.0, to: 0.3, duration: 0.5 });
      var elements = obj.getElements(); 
      for (var i=0; i<elements.length; i++) {
        elements[i].style.cursor = 'wait';
        elements[i].disabled = true;
      }
    }
  });
}

/**
 * 
 */
function inicializarSelect(selectObj, valor, texto) {
  selectObj = $(selectObj); 
  while (selectObj.options.length > 0) {
    selectObj.remove(0);
  }
  if (valor != null || texto != null) {
    var option = document.createElement("OPTION");
    option.value = valor;
    option.text = texto
    selectObj.options.add(option);
  }
}

function getSelectText(selectObj) {
  var w = $(selectObj).selectedIndex;
  var selectedText = $(selectObj).options[w].text;
  return selectedText;
}


function mostrarAgencia(agencia) {
  var height = Math.round(screen.availHeight * 0.80);
  var attr = "top=20px,left=20,width=625,height=530,resizable=no,status=no,toolbar=no,menubar=no,location=no,scrollbars=no";
  var w = window.open("http://www.alfainmo.com/datosagencia.do?referencia=" + agencia, "fichaAgencia", attr);
  w.focus();
}

/**
 * Rellena un control 
 */
function rellenarSelect(selectObj, jsonObj, campoValue, campoText) {
  var nItems=0;
  if (typeof(selectObj) == 'string') {
    selectObj = $(selectObj);
  }
  if (typeof(jsonObj) == 'string') {
    jsonObj = jsonObj.evalJSON(true);
  }
  jsonObj.each(function(obj, index) {
    var option = document.createElement("OPTION");
    option.value = obj[campoValue];
    option.text = obj[campoText];
    selectObj.options.add(option);
    nItems++;
    });
  return nItems;
}

/**
 *  Rellena el control partiendo de una descarga en AJAX
 */
function rellenarSelectAjax(func, params, selectObj, campoValue, campoText, completeCallback) {
  var options = {
     method: 'get',
     parameters: getAjaxParams(func, params),
     onComplete: function(transport) {
       var nItems = rellenarSelect($(selectObj), transport.responseText, campoValue, campoText);
       if (completeCallback != null) {
         completeCallback(nItems);
       }
     },
     onFailure: function() {
       alert('Problemas al realizar la consulta.');
     }
  }
  var myAjax = new Ajax.Request(ajaxURL, options);
} 

/**
 * 
 */
function vaciarTabla(tabla) {
  if (typeof(tabla) == 'string') {
    tabla = $(tabla);
  }
  var rows = tabla.rows;
  while (rows.length > 0) {
    tabla.deleteRow(rows.length -1);
  }
}

function validarCadena(cadena, plantilla) {
  var allValid = true;
  var allNum = "";
  for (i = 0; i < cadena.length; i++) {
    ch = cadena.charAt(i);
    for (j = 0; j < plantilla.length; j++)
      if (ch == plantilla.charAt(j))
        break;
    if (j == plantilla.length) {
      allValid = false;
      break;
    }
    allNum += ch;
  }
  return allValid;
}

function validarEMail(email) {
  return (email.length == 0) || (email.indexOf("@") != -1 && email.indexOf(".") != -1);
}

function validarTelefono(telefono)  {
  var result=false;
  if (telefono != null && telefono.length >= 7) {
    result = validarCadena(telefono, "0123456789");
  }
  return result; 
}

