//benda08 - common methods for product pages

function GetProductData(alphaCharacter, tabID)
{   
    presentAlpha = alphaCharacter;

    ClearProductArea();
    clearRows("tabledata");
    
    //document.getElementById("divLoading").style.display = "block";
    
    SelectTab(tabID);
    //SelectTabLocation(tabID);
    CreateAlphaTags();
    SelectAndRunQuery(alphaCharacter);

    //highlight the alpha
    if(alphaCharacter=="#")
        document.getElementById("divAlphaIdPound").className = "alphaon";
    else if(alphaCharacter=="ALL")
        document.getElementById("divAlphaIdALL").className = "alphaon";
    else
        document.getElementById("divAlphaId"+alphaCharacter).className = "alphaon";
        
    //show the alpha letter
    document.getElementById("alphaLetter").innerHTML = alphaCharacter.toUpperCase();
};


function SelectAndRunQuery(alphaC)
{
    switch(tabState)
    {
        case 1:
                products.ws.ws_product_browse.current_name_query( alphaC, solutionSearch, locale,  OnCompletePropagation );
            break;
        case 2:
                products.ws.ws_product_browse.current_and_former_name_query( alphaC, solutionSearch, locale, OnCompletePropagation );
            break;
        case 3:
                products.ws.ws_product_browse.former_and_current_name_query( alphaC, solutionSearch, locale, OnCompletePropagation );
            break;
    }            
};

function ClearProductArea()
{
    document.getElementById("productPlaceholder").innerHTML = "";
};

function AdjustVisibleTitle(tabSelected)
{
    switch(tabSelected)
    {
        case 1:
            document.getElementById("optionTable1").style.display = "none";
            document.getElementById("optionTable2").style.display = "none";
            document.getElementById("optionDiv").style.display = "block";        
            break;
            
        case 2:
            document.getElementById("optionTable1").style.display = "block";
            document.getElementById("optionTable2").style.display = "none";
            document.getElementById("optionDiv").style.display = "none";                
            break;
            
        case 3:
            document.getElementById("optionTable1").style.display = "none";
            document.getElementById("optionTable2").style.display = "block";
            document.getElementById("optionDiv").style.display = "none";                
            break;
    }
}

function AddIdAndNames(valueId, valueName, valueFormerName)
{
    arrayFieldId.push(valueId);
    arrayFieldName.push(valueName);
    arrayFieldFormerName.push(valueFormerName);
}

function BuildFormerNamesBullets(prd)
{
    var stringReturn = "";
    
    for(x=0; x<arrayFieldId.length; x++)
    {
        if(arrayFieldId[x]==prd)
            stringReturn += "<p>" + arrayFieldFormerName[x] + "</p>";
    }            
    
    return stringReturn;
}

var nontablenodestyle = "";
var previousproductname = "";
var target = "";

function CreateRow(rowProdid, rowProdUrl, rowProdNonLinkedPrefix, rowProdname, rowProdFormername)
{
    var productRowType0;
    
    AdjustVisibleTitle(tabState);
    
    if (tabState == 2 || tabState == 3)
    {
        nontablenodestyle="prodrow";
    }
    else
    {
        if(nontablenodestyle=="prodrow1")
            nontablenodestyle="prodrow";
        else
            nontablenodestyle="prodrow1";
    }

    if (tabState == 1)
    { 
        productRowType0 = "<div class='" + nontablenodestyle + "'>" + rowProdNonLinkedPrefix + "<a href='" + rowProdUrl + "'>" + rowProdname + "</a></div>";
        if(target.length>0)
            productRowType0 = "<div class='" + nontablenodestyle + "'>" + rowProdNonLinkedPrefix + "<a " + target + " href='" + rowProdUrl + "'>" + rowProdname + "</a>&nbsp;(" + englishLanguage + ")&nbsp;<img src='/images/icons/new_window.gif'/></div>";
        var existingHTML = document.getElementById("productPlaceholder").innerHTML;
        document.getElementById("productPlaceholder").innerHTML = existingHTML+"\r\n"+productRowType0;	        
    }
    else if (tabState == 2)
    {
            var frmernamebullets = BuildFormerNamesBullets(rowProdid);
            var displayTab3Field1 = rowProdNonLinkedPrefix + "<a class='bluelink' href='" + rowProdUrl + "'>"+rowProdname+"</a>";//"<div class='" + nontablenodestyle + "'>" + rowProdNonLinkedPrefix + "<a href='" + rowProdUrl + "'>"+rowProdname+"</a></div>";
            if(target.length>0)
                var displayTab3Field1 = rowProdNonLinkedPrefix + "<a class='bluelink' " + target + " href='" + rowProdUrl + "'>"+rowProdname+"</a>&nbsp;(" + englishLanguage + ")&nbsp;<img src='/images/icons/new_window.gif'/>";//"<div class='" + nontablenodestyle + "'>" + rowProdNonLinkedPrefix + "<a " + target + " href='" + rowProdUrl + "'>"+rowProdname+"</a>&nbsp;(" + englishLanguage + ")&nbsp;<img src='/images/icons/new_window.gif'/></div>";
            
            var displayTab3Field2 = frmernamebullets;
            if(rowProdname!=previousproductname)
                addRow("tabledata", displayTab3Field1, displayTab3Field2);
    }
    else
    {
        var displayTab3Field1 = rowProdFormername;
        var displayTab3Field2 = rowProdNonLinkedPrefix + "<a class='bluelink' href='" + rowProdUrl + "'>"+rowProdname+"</a>";//"<div class='" + nontablenodestyle + "'>" + rowProdNonLinkedPrefix + "<a href='" + rowProdUrl + "'>"+rowProdname+"</a>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;</div>";
        if(target.length>0)
            var displayTab3Field2 = rowProdNonLinkedPrefix + "<a class='bluelink' " + target + " href='" + rowProdUrl + "'>"+rowProdname+"</a>&nbsp;(" + englishLanguage + ")&nbsp;&nbsp;<img src='/images/icons/new_window.gif'/>";//"<div class='" + nontablenodestyle + "'>" + rowProdNonLinkedPrefix + "<a " + target + " href='" + rowProdUrl + "'>"+rowProdname+"</a>&nbsp;(" + englishLanguage + ")&nbsp;&nbsp;<img src='/images/icons/new_window.gif'/>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;</div>";
                
        addRow("tabledata", displayTab3Field1, displayTab3Field2);
    }
    previousproductname = rowProdname;
}

var nodestyle = "";

function addRow(tableID, field1, field2)
{
    var tableRef = document.getElementById(tableID);
    var existingrowcount = tableRef.rows.length;
    var newRow = tableRef.insertRow(existingrowcount);
    
    newRow.valign = "top";

    if(nodestyle == "prodtableon")
        newRow.className = "prodtable";
    else 
        newRow.className = "prodtableon";
        
    var newCell1 = newRow.insertCell(0);
        newCell1.width = "50%";
        newCell1.verticalalign = "top";
        newCell1.innerHTML = field1;
        
    var newCell2 = newRow.insertCell(1);
        newCell2.width = "50%";
        newCell2.verticalalign = "top";
        newCell2.innerHTML = field2;

        nodestyle = newRow.className;
        //nodestyle = "prodtableon";
};


function OnCompletePropagation(result)
{

   nontablenodestyle = "prodrow";
   nodestyle = "prodtable";
   
   var xmldoc;

    //IE
    if(isIE){   
        xmldoc = new ActiveXObject("Msxml2.DOMDocument.3.0");
        xmldoc.loadXML(result);
    //mozilla
    }else{
        var documentParser = new DOMParser();
        xmldoc = documentParser.parseFromString(result, "text/xml");
    }
    
    nodelist_prodid = xmldoc.getElementsByTagName("prod_id");
    nodelist_produrl = xmldoc.getElementsByTagName("prod_url");
    nodelist_prodname = xmldoc.getElementsByTagName("proddet_transname");
    nodelist_prodnameprefix = xmldoc.getElementsByTagName("unlinked_part");     
    
    nodelist_locale_returned = xmldoc.getElementsByTagName("locale");
        
    if(tabState>1)
        nodelist_prodformername = xmldoc.getElementsByTagName("former_name");

    for(var t=0;t<nodelist_prodid.length;t++)
    {
        var node_prodid = nodelist_prodid[t].firstChild.data;
        var node_produrl = nodelist_produrl[t].firstChild.data;
        var node_prodname = (nodelist_prodname[t]!=null) ? (nodelist_prodname[t].firstChild.data) : "";
        var node_prodnameprefix = (nodelist_prodnameprefix[c]!=null) ? (nodelist_prodnameprefix[c].firstChild.data) : "";
                      
        if(tabState>1)
            var node_prodformername = nodelist_prodformername[t].firstChild.data;
     
        AddIdAndNames(node_prodid, node_prodname, node_prodformername);        
    };

    for(var c=0;c<nodelist_prodid.length;c++)
    {
        var node_prodid = nodelist_prodid[c].firstChild.data;
        var node_produrl = nodelist_produrl[c].firstChild.data;
        var node_prodname = (nodelist_prodname[c]!=null) ? (nodelist_prodname[c].firstChild.data) : "";
        var node_prodnameprefix = (nodelist_prodnameprefix[c]!=null) ? (nodelist_prodnameprefix[c].firstChild.data) : "";
        
        if(tabState>1)
            var node_prodformername = nodelist_prodformername[c].firstChild.data;
            
        var node_locale_returned = (nodelist_locale_returned[c]!=null) ? (nodelist_locale_returned[c].firstChild.data) : "";
        
        if(node_locale_returned.toUpperCase()!=locale.toUpperCase())
            target = "target='_blank'";            
        
        CreateRow(node_prodid, node_produrl, node_prodnameprefix, node_prodname, node_prodformername );
    };
    
    previousproductname="";
    ClearArrays();
};        


function CreateAlphaTags()
{
    document.getElementById("alphaTags").innerHTML = "<span class='alpha' style='padding-left:3px' id='divAlphaIdPound'><a href='javascript:GetProductData(\"#\", tabState);'>#</a></span>";

    for(var c=0;c<26;c++)
    {
        var lastHTML = document.getElementById("alphaTags").innerHTML;
        var nextAlpha = GetNextAlpha(c);
        document.getElementById("alphaTags").innerHTML = lastHTML + "<span class='alpha' style='padding-left:3px' id=\"divAlphaId"+nextAlpha+"\"><a href='javascript:GetProductData(\""+ nextAlpha +"\", tabState);'>"+ nextAlpha.toUpperCase() +"</a></span>";
    };
    document.getElementById("alphaTags").innerHTML += "&nbsp;<span class='alpha' style='padding-left:3px' id=\"divAlphaIdALL\"><a href='javascript:GetProductData(\"ALL\", tabState);'>ALL</a></span>";
};
