var global_xmlDoc=null;
var global_formname='formulary-lookup';

function loadXMLDoc(dname)
{
    if ((dname == null) || (dname == ''))
    {
        var dname = "/januvia/hcp/januvia/documents/merck_januvia_extended.xml";
    }

    if (global_xmlDoc == null)
    {
        if (window.XMLHttpRequest)
        {
            xhttp=new XMLHttpRequest();
        }
        else
        {
            xhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
        xhttp.open("GET",dname,false);
        xhttp.send();
        global_xmlDoc = xhttp.responseXML;
    }
    return global_xmlDoc;
}

// Load the list of Counties when the state changes
function StateListOnChange(selectedState)
{
    if (selectedState == null)
    {
        var state = document.getElementById("state");
        selectedState = state.options[state.selectedIndex].value;
    }

    if (selectedState != "")
    {
        var xmlDoc = loadXMLDoc();
        stateNode=xmlDoc.getElementsByTagName("state");

        // Find State Node
        for (var i=0;i < stateNode.length;i++)
        {
            var state = stateNode[i];
            if (state.getAttribute("name") == selectedState)
            {
                break;
            }
        }

        var countyList = document.getElementById("county");
        // clear the county list
        for (var count = countyList.options.length-1; count >-1; count--)
        {
            countyList.options[count] = null;
        }

        var idValue;
        var textValue;
        var optionItem;

        optionItem = new Option( "Choose a county", "",  false, false);
        countyList.options[countyList.length] = optionItem;

        for (countyLength=0;countyLength<state.getElementsByTagName("county").length;countyLength++)
        {
            countyNode=state.getElementsByTagName("county")[countyLength].attributes;
            textValue = countyNode.getNamedItem("name").nodeValue;
            idValue = countyLength;

            optionItem = new Option( textValue, idValue,  false, false);
            countyList.options[countyList.length] = optionItem;
        }

        // set hidden field contain the normal state abbreviation
        var stateAbbreviation = state.getAttribute("name");

        var ele = document.getElementById("stateAbbreviation");
        ele.value=stateAbbreviation;

    }
    CountyListOnChange(true);
}

// Load the graph
function CountyListOnChange(retrievePlans)
{
    var commercial=null;
    var medicare_partd=null;

    var ele = document.getElementById("productName");
	
    var productName = ele.options[ele.selectedIndex].value;
	
    if (productName == '')
    {
        commercial=0;
        medicare_partd=0;
    }

    ele = document.getElementById("state");
	if (ele.selectedIndex < 0){
		ele.selectedIndex = 0;	
	}
	if (ele.length >0){
		var stateValue = ele.options[ele.selectedIndex].value;
		
		if (stateValue == '')
		{
			commercial=0;
			medicare_partd=0;
		}
	}

    var ele = document.getElementById("county");
	if (ele.selectedIndex < 0){
	ele.selectedIndex = 0;	
	}
    var selectedCounty = ele.options[ele.selectedIndex].value;
    if (selectedCounty == '')
    {
        commercial=0;
        medicare_partd=0;
    }

    if ((null == commercial) && (null == medicare_partd))
    {
        var commercialProductName = productName.toLowerCase();
        var partDProductName = commercialProductName + '_partd';

        // Find State Node
        for (var i=0;i < stateNode.length;i++)
        {
            var state = stateNode[i];
            if (state.getAttribute("name") == stateValue)
            {
                break;
            }
        }


        //var valueNode = state.getElementsByTagName("county")[selectedCounty].childNodes;
		var valueNode = state.getElementsByTagName("county")[selectedCounty];

	// below code is commented to disable graphs display
	//var productNodes = valueNode.getElementsByTagName("product");


	//var productSpecificNode;
	//for (var j=0;j < productNodes.length;j++)
      //  {
        //    productSpecificNode = productNodes[j];

			
          //  if (productSpecificNode.getAttribute("name") == "Januvia_Janumet");
            //{
              //  break;
            //}
        //}
		
		//var productChildNodes = productSpecificNode.childNodes;

		
        //for (valueLength=0;valueLength<productChildNodes.length;valueLength++)
        //{
          //  if (productChildNodes[valueLength].nodeType==1)
            //{
              //  if (productChildNodes[valueLength].nodeName == commercialProductName)
                //{
                  //  value=productChildNodes[valueLength].childNodes[0];
                    //commercial = value.nodeValue;
                //}

                //if (productChildNodes[valueLength].nodeName == partDProductName)
                //{
                 //   value=productChildNodes[valueLength].childNodes[0];
                   // medicare_partd = value.nodeValue;
                //}
            //}

            //if ((commercial != null) && (medicare_partd != null))
            //{
              //  break;
            //}
        //}

        if (eval(commercial) > 80)
        {
            position1 = eval((commercial * 2)+10);
            color1 = "FFFFFF";
        }
        else
        {
            position1 = eval((commercial * 2) + 54);
            color1 = "0052A0";
        }

        if (eval(medicare_partd) > 80)
        {
            position2 = eval((medicare_partd * 2)+10);
            color2 = "FFFFFF";
        }
        else
        {
            position2 = eval((medicare_partd * 2) + 54);
            color2 = "0052A0";
        }
        var percent1 = "<div class='percent1' style='color:#"+color1+";bottom:"+position1+"px'>"+commercial+"%</div>";
        var percent2 = "<div class='percent2' style='color:#"+color2+";bottom:"+position2+"px'>"+medicare_partd+"%</div>";
    }
    else
    {
        var percent1 = "<div class='percent1' style='color:#0052A0;bottom:0px'></div>";
        var percent2 = "<div class='percent2' style='color:#0052A0;bottom:0px'></div>";
    }
// commented below code for disabling graph
    //var textContent = document.getElementById('formulary-chart');

    //textContent.innerHTML = percent1 + percent2 + "<img src='/januvia/hcp/resource_center/images/formulary_coverage/rec_formulary_bar.jpg' alt='' width='100' height='"+eval(commercial * 2)+"' border='0' class='bar1' /><img src='/januvia/hcp/resource_center/images/formulary_coverage/rec_formulary_bar.jpg' alt='' width='100' height='"+eval(medicare_partd * 2)+"' border='0' class='bar2' />";

    if ((retrievePlans) && (productName != '') && (stateValue != ''))
    {
        var ele = document.getElementById("state");
        if (ele.selectedIndex > 0)
        {
            PlanListOnChange();
        }
    }
}

function loadStateList(selectedState)
{
    var stateList = document.getElementById('state');
    if (stateList.length == 0)
    {
        var xmlDoc   = loadXMLDoc();
        var states   = xmlDoc.getElementsByTagName("state");
        var n_states = states.length;

        var optionItem = new Option( "Choose a state", "",  false, false);
        stateList.options[stateList.length] = optionItem;

        for (var i = 0; i < n_states; i++)
        {
            var state = states.item(i);
            optionItem = new Option(state.getAttribute("name"), state.getAttribute("name"),  false, false);
            stateList.options[stateList.length] = optionItem;
        }
    }

    if (selectedState != '')
    {
        for (var i=0; i < stateList.length;i++)
        {
            var optionItem = stateList.options[i];
            if (selectedState == optionItem.value)
            {
                optionItem.selected="true";
                break;
            }
        }
    }

    // Load the list of counties for the state
    StateListOnChange();
}

var runDateString='';
function loadRunDate(divName)
{
    try
    {
        if (runDateString == '')
        {
            var dtCh         = "/";
            var xmlDoc       = loadXMLDoc();
            var runDateNode  = xmlDoc.getElementsByTagName("runDate");
            var runDate      = runDateNode[0].childNodes[0].nodeValue;
            var pos1         = runDate.indexOf(dtCh)
            var pos2         = runDate.indexOf(dtCh,pos1+1)
            var strMonth     = runDate.substring(0,pos1)
            var strDay       = runDate.substring(pos1+1,pos2)
            var strYear      = runDate.substring(pos2+1)
            switch (strMonth)
            {
                case "1": case "01":
                    strMonth="January";
                    break;
                case "2": case "02":
                    strMonth="February";
                    break;
                case "3": case "03":
                    strMonth="March";
                    break;
                case "4": case "04":
                    strMonth="April";
                    break;
                case "5": case "05":
                    strMonth="May";
                    break;
                case "6": case "06":
                    strMonth="June";
                    break;
                case "7": case "07":
                    strMonth="July";
                    break;
                case "8": case "08":
                    strMonth="August";
                    break;
                case "9": case "09":
                    strMonth="September";
                    break;
                case "10":
                    strMonth="October";
                    break;
                case "11":
                    strMonth="November";
                    break;
                case "12":
                    strMonth="December";
                    break;

            }
            runDateString = strMonth+"&nbsp;"+strYear;
        }

        var runDateDiv = document.getElementById(divName);
        runDateDiv.innerHTML = runDateString;
    }
    catch (err)
    {
    }
    return;
}

// Call Server to get individual plan data
function PlanListOnChange()
{
    var commercial=null;
    var medicare_partd=null;

    var ele = document.getElementById("productName");
    var productName = ele.options[ele.selectedIndex].value;
    if (productName == '')
    {
        return false;
    }

    ele = document.getElementById("state");
    var stateIndex = ele.options[ele.selectedIndex].value;
    if (stateIndex == '')
    {
        return false;
    }

    var ele = document.getElementById("planIndicator");
    var selectedPlan = ele.options[ele.selectedIndex].value;
    if (selectedPlan == '')
    {
        return false;
    }

    // Reset letter
    var ele = document.getElementById("letter");
    ele.value='A';

    var ele = document.getElementById(global_formname);
    ele.submit();
}

function setParameters(productName, stateAbbreviation, countyIndex, planIndicator)
{
    var ele = document.getElementById("productName");
    for (var i=0; i < ele.length;i++)
    {
        if (ele.options[i].value.toUpperCase() == productName.toUpperCase())
        {
            ele.selectedIndex = i;
        }
    }
    if (ele.selectedIndex <= 0)
    {
        setListItem(ele,productName);
    }

    ele = document.getElementById("state");
    if (ele.selectedIndex <= 0)
    {
        setListItem(ele,stateAbbreviation);
    }

    var ele = document.getElementById("county");
    if (ele.selectedIndex <= 0)
    {
        var rc = setListItem(ele,countyIndex);
        if (rc)
        {
            CountyListOnChange(false);
        }
    }

    var ele = document.getElementById("planIndicator");
    if (ele.selectedIndex <= 0)
    {
        var rc = setListItem(ele,planIndicator);
        if (rc)
        {
            var ele = document.getElementById("plan-data");
            ele.style.display="inline";
        }
    }
}

function setListItem(listElement,value)
{
    var foundit=false;
    for(var i=0;i < listElement.length;i++)
    {
        if (listElement[i].value == value)
        {
            listElement.selectedIndex = i;
            foundit=true;
            break;
        }
    }
    return foundit
}

