Javascript dbLookup updated for Firefox

function dbLookup(server,path,view,key,column){

//This line as been fixed to avoid loading the MS ActiveX if not an IE browser

try{ xmlDoc = new ActiveXObject(“Microsoft.XMLDOM”); }

catch (e) { xmlDoc=document.implementation.createDocument(“”,“”,null); }

xmlDoc.async = false;

var pos=0;

currURL = (document.location.href).toLowerCase();

if (trim(server) == "") {

    pos = currURL.indexOf('://'); 

    if (pos < 0 ){server = "http//..."} // PUT YOUR SERVERNAME HERE

        else{

            pos += 3;

            pos = currURL.indexOf('/', pos);

            server = currURL.substring(0, pos)

        }

    }



    if( trim(path) == "" )

    {

        if( pos > 0 )

        {

            newPos = currURL.indexOf('.nsf',pos);

            if (newPos > 0)

                {

                path = currURL.substring(pos+1,newPos+4)

                }

            }

        }



    //Javascript index starts at 0, so need to decrement the column by -1

    if( !isNaN(column) )

    column -= 1; 

    vurl = trim(server)+"/"+trim(path)+"/"+view+"?readviewentries&count=1&preformat&startkey="+key;

    

    //This URL as been added to be understood by Firefox (No server)

    vurlFF = trim(path)+"/"+view+"?readviewentries&count=1&preformat&startkey="+key;

    try {xmlDoc.load(vurl);}

    catch(e) {xmlDoc.load(vurlFF);}

    if (xmlDoc.documentElement == undefined)

    {

        return("")

    }

    nodes = xmlDoc.documentElement.childNodes;

    temp = new Array(nodes.length);

    var j = 0;

    for (var i = 0; i < nodes.length; i++)

    {

        try{

            if(nodes.item(i).childNodes.item(0).text==key)

            {

                temp[j] = nodes.item(i).childNodes.item(column).text;

                j++;

            }

            else

            {

                break;

            }

        }

        //This catch will drill throught the XML node, the way Firefox understand. (I am not an

        //XML expert, so if someone have a "cleanest" way to do it, feel free to update!

        catch(e){

           var nVal = nodes.item(1).childNodes.item(1).childNodes.item(1).childNodes.item(0).nodeValue;

           if (nVal==key)

               {

               temp[0] = nodes.item(1).childNodes.item(1).childNodes.item(1).childNodes.item(0).nodeValue;

               }

           else {temp[0] = "";}

           i = 0;

           break;

        }

    }

    var results = ""

    if (i==0) { results = temp[0];}

    else{

        for (var i = 0; i <j; i++)

        {

            results = results + ", " + temp[i]; 

        }

    }



return results;

}