/* TEXTOS */
var arrTextos = new Array();

/***************************************************************
 * layout2.js
 * Cross-Browser.com & SitePoint.com - Equal Column Height Demo
 **************************************************************/

var ie5 = (document.getElementById && document.all);
var ns6 = (document.getElementById && !document.all);

if (document.getElementById || document.all) { // minimum dhtml support required
    window.onload = winOnLoad;
}

/* FUNCIONES A SOBREESCRIBIR EN LAS PÁGINAS */
/**
 * Se ejecuta en el "onload" de la página
 */
function pageOnLoad() {}

/**
 * Se ejecuta en el "onresize" de la ventana del explorador
 */
function pageOnResize() {}

/**
 * Ajustar layout y registrar evento de ajuste al redimensionar ventana
 */
function winOnLoad() {
    var ele = xGetElementById('leftColumn');
    if (ele && xDef(ele.style, ele.offsetHeight)) { // another compatibility check
        adjustLayout();
        xAddEventListener(window, 'resize', winOnResize, false);
    }
    pageOnLoad();
}

/**
 * Ajustar layout al redimensionar ventana
 */
function winOnResize() {
    adjustLayout();
    pageOnResize();
}

/**
 * Ajustar layout vertical según tamaño de los diferentes div
 */
function adjustLayout() {
    // Get content heights
    var cHeight = xHeight('centerColumnContent') - 4; //Corregimos borders verticales de .listtitle
    var lHeight = xHeight('leftColumnContent');
    
    // Find the maximum height
    var totalHeight = xClientHeight();
    var maxHeight = Math.max(cHeight, Math.max(lHeight, totalHeight));
    
    //alert(lHeight + " - " + cHeight + " - " + totalHeight);
  /* Correción cuando el div se redimensiona mal horizontalmente. En el momento
     de esta cálculo aparece el scroll horizontal y queda leftColumn con
     ese espacio en blanco al pie. */
    //alert(xClientWidth() +" < "+ xWidth('centerColumnContent') + " - " + xWidth("leftColumnContent"));
    if ((xClientWidth() - xWidth("leftColumnContent")) < xWidth('centerColumnContent')) {
        maxHeight = maxHeight + 16;
    }
    //alert(xClientHeight() + " - " + xWidth('centerColumnContent'));
    
    // Assign maximum height to all columns
    xHeight('leftColumn', maxHeight);
    xHeight('centerColumn', maxHeight);
    
  /*totalHeight = Math.max(xClientHeight(), maxHeight);
  xHeight('leftColumn', totalHeight);
  xHeight('centerColumn', totalHeight);*/
}







// JavaScript Document
/***********************************************
 * Switch Menu script- by Martial B of http://getElementById.com/
 * Modified by Dynamic Drive for format & NS4/IE4 compatibility
 * Visit http://www.dynamicdrive.com/ for full source code
 ***********************************************/

var baseurl = "";
function setBaseUrl(url) {
    //alert(url);
    baseurl = url;
}


function getAbsoluteUrl(relativeurl) {
    var resurl = baseurl;
    if (Trim(baseurl) != "") {
        if (!((baseurl.lastIndexOf("/") == baseurl.length) || (relativeurl.indexOf("/") == 0))) {
            resurl += "/";
        }
        resurl += relativeurl;
    } else {
        resurl = relativeurl;
    }
    return resurl;
}

/*function setMenuOpenStyle(el,opened) {	//indenova.com
        if (opened) {
                el.style.borderTopColor = "#FFCC66";
                el.style.borderTopStyle = "solid";
                el.style.borderTopWidth = "1";
        }
}*/

var ERR_FILE_ACCESS_DENIED = -2147024891;

var actualParent = "";

function SwitchMenu(obj){
    if(document.getElementById){            
        var el;
        el = document.getElementById(obj);
        if (el) {
            var ar = document.getElementById("masterdiv").getElementsByTagName("span"); //DynamicDrive.com change
            if(el.style.display != "block"){ //DynamicDrive.com change
                for (var i=0; i<ar.length; i++){
                    if (ar[i].className=="submenu") //DynamicDrive.com change
                        ar[i].style.display = "none";
                }
                //alert(el.getElementsByTagName("div").length);
                el.style.display = "block";
                /* Cambiar imagen para que el triangulito sea hacia abajo de abierto */
            }else{
                el.style.display = "none";
                /* Cambiar imagen para que el triangulito sea hacia la derecha de cerrado */
            }
        }
    }
}

/* Indenova */
var arrtitle;	//Array principal del menú
var arrentry;	//Secciones principales: 0->Texto; 1->URL; 2->Array submenu	
var arrsubmenu;
var menu;
var submenu;
var hassubmenu;
var activeblock = '';
var activeitem = '';
function addMenuTitle(name,url,id,target) {        
    if (addMenuTitle.arguments.length < 4) {
        target = '';
    }
    //alert(target);
    if (hassubmenu) {
        arrentry[2] = arrsubmenu;
        //arrtitle[menu] = arrentry;
        hassubmenu = false;
    } else if (menu > -1) {
        arrentry[2] = null;
    }
    if (menu > -1) {
        arrtitle[menu] = arrentry;
    }
    arrentry = new Array();
    menu++;
    arrentry[0] = name;
    //alert(menu);
    if (url != '') {
        arrentry[1] = url;
    }
    arrentry[3] = id;
    arrentry[4] = target;
    arrsubmenu = new Array();
    submenu = 0;
}
function addSubmenu(name, url, id) {    
    var paux = new Array();
    hassubmenu = true;
    paux[0] = name;
    paux[1] = url
    paux[2] = id;
    arrsubmenu[submenu] = paux;
    submenu++;
}
function initMenu() {        
    //arrentry = new Array();
    arrtitle = new Array();
    menu = -1;
    submenu = 0;
    hassubmenu = false;
}
function endMenu() {
    if (hassubmenu) {
        arrentry[2] = arrsubmenu;
    } else {
        arrentry[2] = null;
    }
    arrtitle[menu] = arrentry;
}
function createMenu() {
    var auxarr;
    var auxhtml
    document.writeln('<div id="masterdiv">');
    //alert(arrtitle.length);
    for (var i = 0; i < arrtitle.length; i++) {
        //alert(arrtitle[i]);
        auxarr = arrtitle[i][2];
        //auxarr2 = auxarr[2]
        //alert(auxarr);
        var atarget = "";
        var ahref = arrtitle[i][1];
        if (auxarr == null) {
            atarget = Trim(arrtitle[i][4]);
            if (atarget != "") {
                if (atarget.toLowerCase() == "fullscreen") {
                    atarget = ' onclick="javascript:window.open(\'' + arrtitle[i][1] + '\', \'fs\', \'status=yes,scollbars=yes,toolbar=yes,titlebar=yes,fullscreen=yes\')"';
                    ahref = "#";
                } else {
                    atarget = ' target="' + atarget + '"';
                }
            }
            document.write('<div class="menutitle" ');
            document.write('onmouseover="rollOverMenu(this)" ');
            document.write('onmouseout="undoRollOverMenu(this)" ');
            document.write('onclick="location.href=\'' + ahref +'\'">');
            document.writeln(arrtitle[i][0] + '</div>');
            //document.write('<a id="' + arrtitle[i][3] + '" href="' + ahref + '"');
            //document.writeln(' class="linkMenu"' + atarget + '>&nbsp;' + arrtitle[i][0] + ' </a></div>');
        } else {
            document.write('<div class="menutitle" ');
            document.write('onmouseover="rollOverMenu(this)" ');
            document.write('onmouseout="undoRollOverMenu(this)" ');
            document.write('onclick="SwitchMenu(\'' + arrtitle[i][3] + '\')">');
            document.writeln(arrtitle[i][0] + '</div>');
            document.writeln('<span class="submenu" id="' + arrtitle[i][3] + '">');
            for (var j = 0; j < auxarr.length; j++) {
                auxhtml = '<div id="dsm' + auxarr[j][2] + '" class="submenuopc" ';
                auxhtml += 'onmouseover="rollOverSubMenu(this)" onmouseout="undoRollOverSubMenu(this)">';
                auxhtml += '<a id="' + auxarr[j][2] + '" href="' + auxarr[j][1] + '" class="linkSubMenu maincolor">' + auxarr[j][0] + ' </a></div>';
                if (j == auxarr.length - 1) {
                    document.writeln(auxhtml + '</span>');
                } else {
                    //document.writeln(auxhtml + '<br/>');
                    document.writeln(auxhtml);
                }
            }
        }
    }
    document.writeln('</div>');
}
bgsb = "";
csb = "";
function rollOverMenu(dv) {
    csb = dv.className;
    dv.className = "menutitleover mainbgover";
}
function undoRollOverMenu(dv) {
    dv.className = csb;
}
function rollOverSubMenu(dv) {
    //bgsb = dv.className;
    //dv.className = "submenuopcover";
}
function undoRollOverSubMenu(dv) {
    //dv.className = bgsb;
}
var e;
function setActiveItem(service, view) {
    //alert(xGetElementById("mn" + service + view));
    SwitchMenu('mn' + service);
    /** Marcar opción activa de alguna forma **/
    //alert(xGetElementById("mn" + service + view));
    if (e = xGetElementById("dsmmn" + service + view)) {
        actitem = xGetElementById("mn" + service + view);
        actitem.className = "linkSubMenu maincolor linkSubMenuActive";
            /*xGetElementById("mn" + service + view).style.color = "#3B5978";
            e.style.borderBottom = "1px solid #FFDB71";
            e.style.borderTop = "1px solid #FFDB71";
            e.style.backgroundColor = "#FFF2A5";*/
        
    }
}

var token = false;

function onTokenInit() {};
function onTokenExit() {};

function initToken() {
    if (token) {
        return false;
    }
    token = true;
    onTokenInit();
    return true;
}

function exitToken(rtn) {
    token = false;
    onTokenExit();
    return rtn;
}

function disableFormButtons(ok) {
    if (xIE4Up) {
        buttons = xGetElementsByAttribute("input", "type", "button","");
        for (i = 0; i < buttons.length; i++) {
            buttons[i].disabled = ok;
        }
    }
}

function iShow(e) {
    if(!(e=xGetElementById(e))) return false;
    if(e.style && xDef(e.style.display)) e.style.display='block';
}
function iHide(e) {
    if(!(e=xGetElementById(e))) return false;
    if(e.style && xDef(e.style.display)) {
        e.style.display='none';
        return true;
    }
}

function setElementText(eleName, text) {
    var eleObj = xGetElementById(eleName);
    if (eleObj == null) {
        return false;
    } else {
        //var tag = eleObj.tagName;
        //alert(tag);
        //if (tag == "div") {
        eleObj.innerHTML = text;
        /*} else if (tag == "text") {
            eleObj.value = text;
        }*/
    }
    return true;
}

function setResultError(text) {
    setElementText("signResultText", text);
    //alert(xGetElementById("signResultText"));
    xGetElementById("signResultText").className = 'frmError1';
    iShow("signResultPanel");
}

function setResultMessage(text) {
    setElementText("signResultText", text);
    //alert(xGetElementById("signResultText"));
    xGetElementById("signResultText").className = 'frmNote1';
    iShow("signResultPanel");
}

function getElementText(eleName) {
    var eleObj = xGetElementById(eleName);
    if (eleObj == null) {
        return null;
    } else {
        return eleObj.innerHTML;
    }
}

function setCustomError(message) {
    var e = new Object();
    e.type = "CustomError";
    e.number = -1;
    e.message = message;
    return e;
}

function tryOpenLocalFile(fldPath) {
    imsg = "";
    if ((e = openFile(fldPath)) != null) {
        if (e.number == ERR_FILE_ACCESS_DENIED) {
            imsg = "Las restricciones de seguridad en su navegador no permiten visualizar ";
            imsg += ' el archivo.\n\nPara poder ver el documento debe configurar su navegador adecuadamente.';
            imsg += ' Consulte la ayuda de la página.';
            alert(imsg);
        }
    }
}

function openFile(fldPath) {
    
    if ((fldDoc = xGetElementById(fldPath)) != null) {
        return openPath(fldDoc.value);
    }
}

function openPath(filePath) {
    //alert(filePath);
    try {
        if (filePath != "") {
            win = openWindowCentered(filePath, 650, 400, "fileWin", "menubar=no,resizable=yes");
            return;
        } else {
            var e = setCustomError("No se ha especificado ningún archivo");
            throw(e);
        }
    } catch (e) {
        //alert("(" + e.number + "): " + e.message);
        return e;
    }
}

var ACTION_SUFIX = "Action";
function hideAction(eleName) {
    if ((eleObj = xGetElementById(eleName)) != null) {
        if (! iHide(eleName + ACTION_SUFIX)) {
            return false
        }
        //alert(eleObj.style.width);
        eleObj.style.width='100%';
    }
}

function Trim(s) {
    // Remove leading spaces and carriage returns
    
    while ((s.substring(0,1) == ' ') || (s.substring(0,1) == '\n') || (s.substring(0,1) == '\r')) {
        s = s.substring(1,s.length);
    }
    
    // Remove trailing spaces and carriage returns
    
    while ((s.substring(s.length-1,s.length) == ' ') || (s.substring(s.length-1,s.length) == '\n') || (s.substring(s.length-1,s.length) == '\r')) {
        s = s.substring(0,s.length-1);
    }
    return s;
}

function openLupa(lupa, id, desc) {
    win = openWindowCentered("lup/" + lupa + ".jsp?id=" + id + "&desc=" + desc, 300, 250, "lupaWin", "status=yes,menubar=no,resizable=no,width=300,height=250");
    //win = window.open("lup/" + lupa + ".jsp?id=" + id + "&desc=" + desc, "lupaWin", "menubar=no,resizable=no,width=300,height=250");
}

function openWindowCentered(url, wd, ht, winName, type) {
    l = (screen.availWidth - 10 - wd) / 2;
    t = (screen.availHeight - 20 - ht) / 2;
    //win = window.open(url, "winName", type + ",width=" + wd + ",height=" + ht + ",top=" + t + ",left=" + l);
    loadwindow(url, wd, ht);
    xMoveTo("dwindow", 0, 0);
    return win;
}

function addTab(tabtitle, id, noclick, aux) {
    var idatt1 = "";
    var idatt2 = "";
    var idatt3 = "";
    
    if (arguments.length < 3) {
        noclick = false;
    }
    else if (arguments.length < 4) {
        aux = "";
    }
    if (id != "") {
        idatt1 = 'id="pi_' + id + '"';
        idatt2 = 'id="pc_' + id + '"';
        idatt3 = 'id="pd_' + id + '"';
    }
    document.write('<div ' + idatt1 + ' class="pesIzq" ');
    //if (selected) {document.write('style="border-right-color:#d6d2c2;"');}
    document.write('></div>');
    document.write('<div ' + idatt2 + ' class="pesCen" ');
    //if (selected) {document.write('style="background-color:#d6d2c2;" ');}
    //document.write('onclick="javascript:iHide(\'divgen\');iHide(\'divfact\');iHide(\'divon\');">' + tabtitle + '</div>');
    
    //Permite pinchar porque noclick=false
    if (! noclick) {
        
        //Tiene una funcion que hacer
        if(aux != "") {
            //Y haz la funcion que tengas que hacer
            document.write('onclick="' + aux + '();" ');
        }
        else {
            document.write('onclick="javascript:selectTab(\'' + id + '\');" ');
        }
        
        document.write('onmouseover="javascript:mouseOverTab(this);"');
        
        
    }else if (id == "") {
        document.write(' style="color:#999999;"');
    }
    document.write('>' + tabtitle + '</div>');
    document.write('<div ' + idatt3 + ' class="pesDer" ');
    //if (selected) {document.write('style="border-left-color:#d6d2c2;"');}
    document.write('></div>');
}

var selectedColor = "#d6d2c2";
function isTabSelected(dv) {
    if (dv != null) {
        if (dv.style.backgroundColor == selectedColor) {
            return true;
        }
    } else {
        return true;
    }
    return false;
}

function resaltTab(id) {
    //var tabs = xGetElementsByClassName("tabcontent");
    //for (i = 0; i < tabs.length; i++) {
    //var tab = xGetElementById(id);
    //alert(tab.id);
    p1 = xGetElementById('pi_' + id);
    if (p1 != null) {
        p1.style.borderRightColor = selectedColor;
        p1 = xGetElementById('pc_' + id);
        p1.style.backgroundColor = selectedColor;
        p1 = xGetElementById('pd_' + id);
        p1.style.borderLeftColor = selectedColor;
    }
    
    //}
}

function selectTab(id) {
    var p1;
    if (! isTabSelected(xGetElementById('pc_' + id))) {
        var tabs = xGetElementsByClassName("tabcontent");
        for (i = 0; i < tabs.length; i++) {
            if (tabs[i].id == id) {
                iShow(id);
                color = selectedColor;
            } else {
                iHide(tabs[i].id);
                color = "#ebeadb";
            }
            p1 = xGetElementById('pi_' + tabs[i].id);
            p1.style.borderRightColor = color;
            p1 = xGetElementById('pc_' + tabs[i].id);
            p1.style.backgroundColor = color;
            p1 = xGetElementById('pd_' + tabs[i].id);
            p1.style.borderLeftColor = color;
        }
    }
}



function mouseOverTab(dv) {
    if (! isTabSelected(dv)) {
        dv.style.cursor = 'hand';
    }
}

function addButton(id, ico, texto, width, url, disabled) {
    
    var icoPath =baseurl + "/img/ico";
    document.write('<div id="' + id + '" class="barbutton" style="width:' + width + 'px;" onmouseover="mouseOverButton(this);" onmousedown="mouseDownButton(this);" onmouseup="mouseUpButton(this);" onmouseout="mouseOutButton(this);" onclick="clickButton(\'' + id + '\', \'' + url + '\')">');
    //alert("carga eventos");
    document.write('    <div class="barbuttonicon">');
    if (ico != "") {
        document.write('        <img name="ico' + id + '" src="' + icoPath + '/' + ico + '" border="0" width="16" height="16">');
    } else {
        document.write('        <img name="ico' + id + '" src="' + icoPath + '/spacer.gif" height="16" width="2" border="0">');
    }
    document.write('    </div>');
    document.write('    <div class="barbuttontext">');
    document.write(texto);
    document.write('    </div>');
    document.write('</div>');
    if (disabled) {
        enableButton(id, false);
    }
}

function clickButton(id, url) {
    //alert(id);
    //alert(url);
    var barbutton = xGetElementById(id);
    //alert(barbutton);
    var buttonText = xGetElementsByClassName("barbuttontext", barbutton);
    if(ie5){
        if ((buttonText[0].style.color == "#000000") || (buttonText[0].style.color == "")) {
            eval(url);
        }
    }else if(ns6){
        if ((buttonText[0].style.color == "rgb(0, 0, 0)") || (buttonText[0].style.color == "")) {
            eval(url);
        }
    }
}
function mouseOverButton(btn) {
    //alert(btn);
    var buttonText;
    buttonText = xGetElementsByClassName("barbuttontext", btn);
    if(ie5){
        if ((buttonText[0].style.color == "#000000") || (buttonText[0].style.color == "")) {                
            //btn.style.border = '1px groove #FFFFFF';
            //btn.style.border = '2px outset #FFFFFF';
            //alert("mano");
            //btn.style.cursor = 'pointer';
            //btn.style.backgroundColor = "#DEDEDE";
            btn.className = "barbuttonover";
        }
    }else if(ns6){
        if ((buttonText[0].style.color == "rgb(0, 0, 0)") || (buttonText[0].style.color == "")) {                                    
            //btn.style.border = '2px outset #FFFFFF';
            //btn.style.cursor = 'pointer';
            btn.className = "barbuttonover";
        }
    }
}
function mouseUpButton(btn) {
    var buttonText;
    buttonText = xGetElementsByClassName("barbuttontext", btn);
    if(ie5){
        if ((buttonText[0].style.color == "#000000") || (buttonText[0].style.color == "")) {
            //btn.style.border = '1px groove #FFFFFF';
            //btn.style.border = '2px outset #FFFFFF';
            //btn.style.cursor = 'hand';
            //btn.style.backgroundColor = "#dddddd";
            btn.className = "barbutton";
        }
    }else if(ns6){
        if ((buttonText[0].style.color == "rgb(0, 0, 0)") || (buttonText[0].style.color == "")) {
            //btn.style.border = '2px outset #FFFFFF';                    
            //btn.style.backgroundColor = "#dddddd";
            btn.className = "barbutton";
        }
    }
}
function mouseDownButton(btn) {
    var buttonText;
    buttonText = xGetElementsByClassName("barbuttontext", btn);
    if(ie5){
        if ((buttonText[0].style.color == "#000000") || (buttonText[0].style.color == "")) {
            //btn.style.border = '1px groove #FFFFFF';
            //btn.style.border = '2px inset #FFFFFF';
            //btn.style.cursor = 'hand';
            //btn.style.backgroundColor = "#ededed";
            btn.className = "barbuttondown";
        }
    }else if(ns6){
        if ((buttonText[0].style.color == "rgb(0, 0, 0)") || (buttonText[0].style.color == "")) {                   
            //btn.style.border = '2px inset #FFFFFF';
            //btn.style.backgroundColor = "#ededed";
            btn.className = "barbuttondown";
        }
    }
}
function mouseOutButton(btn) {
    //btn.style.border = '1px solid #d4d0c8';
    //btn.style.border = '2px solid #dddddd';
    //btn.style.backgroundColor = "#dddddd";
    btn.className = "barbutton";
}
function enableButton(id, enable) {        
    var barbutton = xGetElementById(id);
    if (barbutton != null) {
        var ico;
        ico = xGetElementsByTagName("img", barbutton);
        if (ico != null) {                        
            imgName = document["ico" + id].src;
            indx = imgName.lastIndexOf("dis.");
            newImg = "";                        
            if ((enable) && (indx > 0)) {
                newImg = imgName.substring(0, indx) + imgName.substring(indx + 3, imgName.length);
            } else if ((! enable) && (indx == -1)) {
                indx = imgName.lastIndexOf(".");
                newImg = imgName.substring(0, indx) + "dis" + imgName.substring(indx, imgName.length);
            }
            if (newImg != "") {
                document["ico" + id].src = newImg;
            }
        }
        var buttonText = xGetElementsByClassName("barbuttontext", barbutton);
        if (buttonText != null) {
            if (enable) {
                buttonText[0].style.color = "#000000";
            } else {
                buttonText[0].style.color = "#858585";
            }
        }
    }
}

function hideButton(id){
    var barbutton = xGetElementById(id);
    barbutton.style.display = 'none'
}

function getAlternativeFileName(ppath) {
    indxFile = ppath.lastIndexOf("\\");
    indxExt = ppath.lastIndexOf(".");
    
    if ((indxExt == -1) || (indxExt < indxFile)) {
        indxExt = ppath.length;
    }
    fileName = ppath.substring(indxFile + 1, indxExt) + "(1)" + ppath.substring(indxExt);
    return fileName;
}

function appletControl(applet) {
    if ((e = xGetElementById("dwindow")) != null) {
        if (e.style.display=='none') {
            applet.focus();
        }
    }
}

//Funciones para el tratamiento de listbox (setRol2User...)

var actions = new Array();

function buildActions(){
    hiddenValue = "";
    for(i = 0; i < actions.length; i++){
        if(actions[i] != null){
            hiddenValue += "#"+i+"*"+actions[i];
        }
    }
    xGetElementById('actions').value = hiddenValue;
}

function move(from, to, button){

    var s = xGetElementById(from);
    var d = xGetElementById(to);

    if (s.selectedIndex < 0) {
        return false;
    } else {
        for(var j = 0; j < d.length; j ++){
        }
        for (var i = 0; i < s.length; i++) {
            var item = s.options[i];
            if (item.value == "") { continue; }
            if (item.selected) {
                d.options[d.length] = new Option(item.text,item.value);
                s.options[item] = null;
                actions[item.value] = button;
            }
        }
        var list = xGetElementById(from);
        for (i = list.length - 1; i >= 0; i--) {
            if (list.options[i].selected) {
                list.options[i] = null;
            }
        }
        return true;
    }
}

function getSelectedFields(opchoosen,property){
 
    var choosen = xGetElementById(opchoosen);
    choosenString = ""; 
    for (var i = 0; i < choosen.options.length; i++) {
    
        choosenString += "#"+ choosen.options[i].value;    
            
        }  
    xGetElementById(property).value = choosenString;    
    
}
 
function deleteFields(){
    var fields=deleteFields.arguments;
    for(i=0; i<fields.length; i++){
        var campo=fields[i];
        xGetElementById(campo).value='';
    }
}
function getElementsByClassName(oElm, strTagName, strClassName){
    var arrElements = (strTagName == "*" && document.all)? document.all : oElm.getElementsByTagName(strTagName);
    var arrReturnElements = new Array();
    strClassName = strClassName.replace(/\-/g, "\\-");
    var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
    var oElement;
    for(var i=0; i<arrElements.length; i++){
        oElement = arrElements[i];      
        if(oRegExp.test(oElement.className)){
            arrReturnElements.push(oElement);
        }   
    }
    return (arrReturnElements)
}

function getElementsByClassName(clsName){
    var retVal = new Array();
    var elements = document.getElementsByTagName("*");
    for(var i = 0;i < elements.length;i++){
        if(elements[i].className.indexOf(" ") >= 0){
            var classes = elements[i].className.split(" ");
            for(var j = 0;j < classes.length;j++){
                if(classes[j] == clsName)
                    retVal.push(elements[i]);
            }
        }
        else if(elements[i].className == clsName)
            retVal.push(elements[i]);
    }
    return retVal;
}


function enableTab(idTab) {
    xGetElementById("tab_" + idTab).style.display='inline';
}
function disableTabs() {
    var tabs=getElementsByClassName("tab");
    for (i = 0;i < tabs.length;i++) {
        tabs[i].style.display='none';
    }
    //alert(tabs.length);
}


                               
/**************************   LIMITE TEXTAREA ***************************/
function restrictinput(maxlength,e,placeholder){
    if (window.event&&event.srcElement.value.length>=maxlength)
        return false
    else if (e.target&&e.target==eval(placeholder)&&e.target.value.length>=maxlength){
        var pressedkey=/[a-zA-Z0-9\.\,\/]/ //detect alphanumeric keys
        if (pressedkey.test(String.fromCharCode(e.which)))
        e.stopPropagation()
    }
}

function countlimit(maxlength,e,placeholder){
    var theform=eval(placeholder)
    var lengthleft=maxlength-theform.value.length
    var placeholderobj=document.all? document.all[placeholder] : document.getElementById(placeholder)
    if (window.event||e.target&&e.target==eval(placeholder)){
        if (lengthleft<0)
            theform.value=theform.value.substring(0,maxlength)
        placeholderobj.innerHTML=lengthleft
    }
}

function displaylimit(thename, theid, thelimit){
    var theform=theid!=""? document.getElementById(theid) : thename
    var limit_text='<b><span id="'+theform.toString()+'">'+thelimit+'</span></b> límite'

    if (document.all||ns6)
    document.write(limit_text)

    if (document.all){
        eval(theform).onkeypress=function(){ return restrictinput(thelimit,event,theform)}
        eval(theform).onkeyup=function(){ countlimit(thelimit,event,theform)}
    }
    else if (ns6){
        document.body.addEventListener('keypress', function(event) { restrictinput(thelimit,event,theform) }, true); 
        document.body.addEventListener('keyup', function(event) { countlimit(thelimit,event,theform) }, true); 
    }
}

function QuitaAcentos(texto) {
    var cadena = "";
    for (var i = 0; i < texto.length; i++) {
        var char = texto.charCodeAt(i);
        switch(char) {
            case 224: cadena += "a"; break;
            case 225: cadena += "a"; break;
            case 232: cadena += "e"; break;
            case 233: cadena += "e"; break;
            case 236: cadena += "i"; break;
            case 237: cadena += "i"; break;
            case 242: cadena += "o"; break;
            case 243: cadena += "o"; break;
            case 249: cadena += "u"; break;
            case 250: cadena += "u"; break;
            case 192: cadena += "A"; break;
            case 193: cadena += "A"; break;
            case 200: cadena += "E"; break;
            case 201: cadena += "E"; break;
            case 204: cadena += "I"; break;
            case 205: cadena += "I"; break;
            case 210: cadena += "O"; break;
            case 211: cadena += "O"; break;
            case 217: cadena += "U"; break;
            case 218: cadena += "U"; break;
            default: cadena += texto.charAt(i); break;
        }
    }
    return cadena;
}

function replaceAll( str, from, to ) {
    var idx = str.indexOf(from);
    while (idx > -1) {
        str = str.replace(from, to);
        idx = str.indexOf(from);
    }
    return str;
}
