var element;
var bNoClickEvent = false;

var SMSF_ID = "67";
var HEDGE_IDS = "96, 97";
var HEDGE = "96";
var HEDGE_WHOLESALE = "97";
var MIF_ID = "90";
var MIF_NIL_ENTRY_ID = "89";
var MORT_ID = "81";
var MORT_NIL_ENTRY_ID = "87";
var PREMIER_CMT = "83";

var exception = false;
var sOptions = "";

var objExceptionMIFMenu;

var allowFundSelection = true;
var productArray = new Array();
var fundArray = new Array()

function PopulateCombo(investGroup, noneSelected)
{
    if (!this.IsFindAFund)
        var objCombo = document.getElementById(ctlID + "_cb" + investGroup);
    else
        var objCombo;

    var objSearchFor = document.getElementById(ctlID + "_lstSearchFor");
    var objMenu = document.getElementById(ctlID + "_lstMenus");
    var divMenu = document.getElementById("divMenu");
    var menuOuterHTML = divMenu.innerHTML;
    var sFundNames = ""

    if (!exception)
        sOptions = "";

    if (!exception)
        fundArray = new Array()

    menuOuterHTML = menuOuterHTML.substr(0, menuOuterHTML.toLowerCase().indexOf("</select>"));

    if (menuOuterHTML.toLowerCase().indexOf("<option") != -1)
        menuOuterHTML = menuOuterHTML.substr(0, menuOuterHTML.toLowerCase().indexOf("<option"));

    if (!this.IsFindAFund)
    {
        if (objCombo != null)
        {
            for (y = 0; y < objCombo.length; y++)
            {
                //sOptions += "<option value='" + objCombo[y].value + "'>" + objCombo[y].text + "</option>"
                fundArray[fundArray.length++] = new fund(objCombo[y].value, objCombo[y].text);
            }
        }
    }
    else
    {
        var items = element.getElementsByTagName("input");

        for (v = 0; v <= items.length - 1; v++)
        {
            if (noneSelected)
            {
                if (items[v].type == "checkbox")
                {
                    objCombo = document.getElementById(ctlID + "_cb" + items[v].id.substring(items[v].id.indexOf("_opt") + 4))

                    if (objCombo != null)
                    {
                        for (y = 0; y < objCombo.length; y++)
                        {
                            if (v == 0)
                            {
                                sFundNames += objCombo[y].text + ", ";
                                fundArray[fundArray.length++] = new fund(objCombo[y].value, objCombo[y].text);
                            }
                            else
                            {
                                if (sFundNames.indexOf(objCombo[y].text) == -1)
                                {
                                    sFundNames += objCombo[y].text + ", ";
                                    fundArray[fundArray.length++] = new fund(objCombo[y].value, objCombo[y].text);
                                }
                            }
                        }
                    }

                    //MIF exception...
                    if (items[v].id.substring(items[v].id.indexOf("_opt") + 4) == MIF_ID)
                    {
                        objCombo = document.getElementById(ctlID + "_cb" + MORT_ID)

                        if (objCombo != null)
                        {
                            for (y = 0; y < objCombo.length; y++)
                            {
                                if (v == 0)
                                {
                                    sFundNames += objCombo[y].text + ", ";
                                    fundArray[fundArray.length++] = new fund(objCombo[y].value, objCombo[y].text);
                                }
                                else
                                {
                                    if (sFundNames.indexOf(objCombo[y].text) == -1)
                                    {
                                        sFundNames += objCombo[y].text + ", ";
                                        fundArray[fundArray.length++] = new fund(objCombo[y].value, objCombo[y].text);
                                    }
                                }
                            }
                        }
                    }
                }
            }
            else
            {
                if (items[v].type == "checkbox" && items[v].checked)
                {
                    objCombo = document.getElementById(ctlID + "_cb" + items[v].id.substring(items[v].id.indexOf("_opt") + 4))

                    if (objCombo != null)
                    {
                        for (y = 0; y < objCombo.length; y++)
                        {
                            if (v == 0)
                            {
                                sFundNames += objCombo[y].text + ", ";
                                fundArray[fundArray.length++] = new fund(objCombo[y].value, objCombo[y].text);
                            }
                            else
                            {
                                //don't want to display duplicate names e.g Firstchoice and FirstChoice Wholesale
                                if (sFundNames.indexOf(objCombo[y].text) == -1)
                                {
                                    sFundNames += objCombo[y].text + ", ";
                                    fundArray[fundArray.length++] = new fund(objCombo[y].value, objCombo[y].text);
                                }
                            }
                        }
                    }

                    //MIF exception...
                    if (items[v].id.substring(items[v].id.indexOf("_opt") + 4) == MIF_ID)
                    {
                        objCombo = document.getElementById(ctlID + "_cb" + MORT_ID)

                        if (objCombo != null)
                        {
                            for (y = 0; y < objCombo.length; y++)
                            {
                                if (v == 0)
                                {
                                    sFundNames += objCombo[y].text + ", ";
                                    fundArray[fundArray.length++] = new fund(objCombo[y].value, objCombo[y].text);
                                }
                                else
                                {
                                    //don't want to display duplicate names e.g Firstchoice and FirstChoice Wholesale
                                    if (sFundNames.indexOf(objCombo[y].text) == -1)
                                    {
                                        sFundNames += objCombo[y].text + ", ";
                                        fundArray[fundArray.length++] = new fund(objCombo[y].value, objCombo[y].text);
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }

    //sort fund names alphabetically
    /*if (this.IsFindAFund)
    {*/
    fundArray.sort(sortByFundName);
    sOptions = ""

    for (i = 0; i < fundArray.length; i++)
    {
        sOptions += "<option value='" + fundArray[i].WebID + "'>" + fundArray[i].FundName + "</option>"
    }
    //}

    /*for (v=objSearchFor.length;v>=0;v--)
    {
    objSearchFor.remove(v)
    }*/

    divMenu.innerHTML = menuOuterHTML + sOptions + "</SELECT>";
    objMenu = document.getElementById(ctlID + "_lstMenus")

    if (noneSelected)
    {
        for (v = objSearchFor.length; v >= 0; v--)
        {
            objSearchFor.remove(v)
        }
    }
    else
    {
        if (objSearchFor.length > 0)
        {
            for (v = objSearchFor.length - 1; v >= 0; v--)
            {
                if (objMenu.length > 0)
                {
                    var bFound = false;
                    var searchForVal = objSearchFor[v].value;

                    for (i = objMenu.length - 1; i >= 0; i--)
                    {
                        if (objMenu[i].value == searchForVal)
                        {
                            bFound = true;
                            objMenu.remove(i);

                            if (objMenu.length == 0)
                            {
                                for (x = objSearchFor.length - 1; x >= 0; x--)
                                {
                                    if (objSearchFor[x].value != searchForVal)
                                        objSearchFor.remove(x)
                                }
                            }
                            break;
                        }
                    }

                    if (!bFound)
                        objSearchFor.remove(v)
                }
            }
        }
    }
}

function fund(webID, fundName)
{
    this.WebID = webID;
    this.FundName = fundName;
}

function sortByFundName(a, b)
{
    var x = a.FundName.toLowerCase();
    var y = b.FundName.toLowerCase();
    return ((x < y) ? -1 : ((x > y) ? 1 : 0));
}

function GetFundOptions()
{
    var objSearchFor = document.getElementById(ctlID + "_lstSearchFor");
    var hidFundIDs = document.getElementById(ctlID + "_hidFundIDs");
    var hidFundNames = document.getElementById(ctlID + "_hidFundNames");
    var objCombo;

    //clear down in case user refines search
    hidFundIDs.value = "";
    hidFundNames.value = "";

    //PaP does not allow multiple product selection
    if (!this.IsFindAFund)
    {
        for (y = 0; y < objSearchFor.options.length; y++)
        {
            if (hidFundIDs.value == "")
                hidFundIDs.value = objSearchFor.options[y].value;
            else
                hidFundIDs.value += ", " + objSearchFor.options[y].value;

            if (objSearchFor.options.length > 3)
            {
                hidFundNames.value = "Multiple funds";
            }
            else
            {
                if (hidFundNames.value == "")
                    hidFundNames.value = objSearchFor.options[y].text;
                else
                    hidFundNames.value += ", " + objSearchFor.options[y].text;
            }
        }
    }
    else
    {
        var bFound = false, bDuplicate = false;
        var duplicateProductArray = new Array();
        var dupArrayCount = 0;

        //caters for user hitting back button
        if (productArray.length == 0)
        {
            var productCount = 0;

            if (document.getElementById(ctlChildID + "_optInvestment").checked)
                items = document.getElementById(ctlChildID + '_divInvestment').getElementsByTagName("input");
            else if (document.getElementById(ctlChildID + "_optSuperannuation").checked)
                items = document.getElementById(ctlChildID + '_divSuper').getElementsByTagName("input");
            else if (document.getElementById(ctlChildID + "_optRetirement").checked)
                items = document.getElementById(ctlChildID + '_divRetirement').getElementsByTagName("input");
            else if (document.getElementById(ctlChildID + "_optInstitutional").checked)
                items = document.getElementById(ctlChildID + '_divInstitutional').getElementsByTagName("input");

            for (x = 0; x < items.length; x++)
            {
                if (items[x].type == "checkbox");
                {
                    if (items[x].checked == true)
                    {
                        productArray[productCount] = items[x].parentNode.parentNode.getAttribute("optionvalue");

                        productCount++;
                    }
                }
            }
        }

        for (y = 0; y < objSearchFor.options.length; y++)
        {
            duplicateProductArray = new Array();

            if (productArray.length > 0)
            {
                for (z = 0; z < productArray.length; z++)
                {
                    objCombo = document.getElementById(ctlID + "_cb" + productArray[z])

                    if (objCombo != null)
                    {
                        if (objCombo.innerHTML.indexOf(objSearchFor.options[y].text) != -1)
                        {
                            if (!bFound)
                            {
                                bFound = true;
                                duplicateProductArray[dupArrayCount] = productArray[z];
                            }
                            else
                            {
                                bDuplicate = true;
                                duplicateProductArray[dupArrayCount] = productArray[z];
                            }

                            dupArrayCount++;

                        }
                    }
                }
            }

            if (!bDuplicate)
            {
                if (hidFundIDs.value == "")
                    hidFundIDs.value = objSearchFor.options[y].value;
                else
                    hidFundIDs.value += ", " + objSearchFor.options[y].value;

                if (objSearchFor.options.length > 3)
                {
                    hidFundNames.value = "Multiple funds";
                }
                else
                {
                    if (hidFundNames.value == "")
                        hidFundNames.value = objSearchFor.options[y].text;
                    else
                        hidFundNames.value += ", " + objSearchFor.options[y].text;
                }
            }
            else
            {
                if (duplicateProductArray.length > 0)
                {
                    for (z = 0; z < duplicateProductArray.length; z++)
                    {
                        objCombo = document.getElementById(ctlID + "_cb" + duplicateProductArray[z])

                        if (objCombo != null)
                        {
                            for (i = 0; i < objCombo.options.length; i++)
                            {
                                if (objCombo.options[i].text == objSearchFor.options[y].text)
                                {
                                    if (objCombo.options[i].value == objSearchFor.options[y].value)
                                    {
                                        if (hidFundIDs.value == "")
                                            hidFundIDs.value = objSearchFor.options[y].value;
                                        else
                                            hidFundIDs.value += ", " + objSearchFor.options[y].value;
                                    }
                                    else
                                    {
                                        if (hidFundIDs.value == "")
                                            hidFundIDs.value = objCombo.options[i].value;
                                        else
                                            hidFundIDs.value += ", " + objCombo.options[i].value;
                                    }

                                    break;
                                }
                            }
                        }
                    }
                }

                if (objSearchFor.options.length > 3)
                {
                    hidFundNames.value = "Multiple funds";
                }
                else
                {
                    if (hidFundNames.value == "")
                        hidFundNames.value = objSearchFor.options[y].text;
                    else
                        hidFundNames.value += ", " + objSearchFor.options[y].text;
                }
            }
        }
    }
}

function AddOption()
{
    if (!allowFundSelection)
        return;

    var objMenu = document.getElementById(ctlID + "_lstMenus");
    var objSearchFor = document.getElementById(ctlID + "_lstSearchFor");

    for (i = 0; i < objMenu.options.length; i++)
    {
        if (bBackHistory || !ckResults)
        {
            if (ckFundIDs != "")
            {
                var FundArray = ckFundIDs.split(",");

                for (var y = 0; y < FundArray.length; y++)
                {
                    if (objMenu.options[i].value == FundArray[y].replace(" ", ""))
                    {
                        var optn = document.createElement("OPTION");

                        optn.text = objMenu.options[i].text;
                        optn.value = objMenu.options[i].value;

                        objSearchFor.options.add(optn);

                        objMenu.remove(i);

                        if (objMenu.options.length > 0)
                        {
                            if (i == objMenu.options.length)
                                objMenu.options[i - 1].selected = true;
                            else
                                objMenu.options[i].selected = true;
                        }

                        i = -1;
                        ckFundIDs = ckFundIDs.replace(FundArray[y] + ", ", "");

                        break;
                    }
                }
            }
            else
            {
                if (objMenu.options[i].selected)
                {
                    var optn = document.createElement("OPTION");

                    optn.text = objMenu.options[i].text;
                    optn.value = objMenu.options[i].value;

                    objSearchFor.options.add(optn);

                    objMenu.remove(i);

                    if (objMenu.options.length > 0)
                    {
                        if (i == objMenu.options.length)
                            objMenu.options[i - 1].selected = true;
                        else
                            objMenu.options[i].selected = true;
                    }

                    break;
                }
            }
        }
        else
        {
            if (objMenu.options[i].selected)
            {
                var optn = document.createElement("OPTION");

                optn.text = objMenu.options[i].text;
                optn.value = objMenu.options[i].value;

                objSearchFor.options.add(optn);

                objMenu.remove(i);

                if (objMenu.options.length > 0)
                {
                    if (i == objMenu.options.length)
                        objMenu.options[i - 1].selected = true;
                    else
                        objMenu.options[i].selected = true;
                }

                break;
            }
        }
    }

    ckFundIDs = "";
}

function RemoveOption()
{
    if (!allowFundSelection)
        return;

    var objMenu = document.getElementById(ctlID + "_lstMenus");
    var objSearchFor = document.getElementById(ctlID + "_lstSearchFor");
    var objCombo = document.getElementById(ctlID + "_cbFunds");
    var sOptions = "";
    var items = element.getElementsByTagName("input");
    var sFundNames = "";

    fundArray = new Array();

    if (objSearchFor.options.length == 0)
        return;

    var val = objSearchFor.value
    var bFound = false;
    var iRemove = 0;

    var divMenu = document.getElementById("divMenu");
    var menuOuterHTML = divMenu.innerHTML;

    menuOuterHTML = menuOuterHTML.substr(0, menuOuterHTML.toLowerCase().indexOf("</select>"));

    if (menuOuterHTML.toLowerCase().indexOf("<option") != -1)
        menuOuterHTML = menuOuterHTML.substr(0, menuOuterHTML.toLowerCase().indexOf("<option"));

    if (items.length > 0)
    {
        for (i = 0; i <= items.length - 1; i++)
        {
            if (((this.IsFindAFund && items[i].type == "checkbox") || (!this.IsFindAFund && items[i].type == "radio")) && items[i].checked)
            {
                //exception for MIF products
                if (items[i].id.substring(items[i].id.indexOf("_opt") + 4) == MIF_NIL_ENTRY_ID)
                    objCombo = document.getElementById(ctlID + "_cb" + MORT_NIL_ENTRY_ID);
                else if (items[i].id.substring(items[i].id.indexOf("_opt") + 4) == MIF_ID)
                {
                    var fArray = new Array()

                    objCombo = document.getElementById(ctlID + "_cb" + MIF_ID);

                    for (a = 0; a < objCombo.length; a++)
                    {
                        //sOptions += "<option value='" + objCombo[y].value + "'>" + objCombo[y].text + "</option>"
                        fArray[fArray.length++] = new fund(objCombo[a].value, objCombo[a].text);
                    }

                    objCombo = document.getElementById(ctlID + "_cb" + MORT_NIL_ENTRY_ID);

                    for (b = 0; b < objCombo.length; b++)
                    {
                        //sOptions += "<option value='" + objCombo[y].value + "'>" + objCombo[y].text + "</option>"
                        fArray[fArray.length++] = new fund(objCombo[b].value, objCombo[b].text);
                    }

                    fArray.sort(sortByFundName);
                    sOptions = ""

                    for (c = 0; c < fArray.length; c++)
                    {
                        sOptions += "<option value='" + fArray[c].WebID + "'>" + fArray[c].FundName + "</option>"
                    }

                    divExceptMenu.innerHTML = "<SELECT ID='selCopy'>" + sOptions + "</SELECT>";
                    sOptions = "";
                    objCombo = document.getElementById("selCopy")
                }
                else
                    objCombo = document.getElementById(ctlID + "_cb" + items[i].id.substring(items[i].id.indexOf("_opt") + 4))

                if (objCombo != null)
                {
                    for (x = 0; x < objCombo.length; x++)
                    {
                        bFound = false;

                        for (y = 0; y < objSearchFor.options.length; y++)
                        {
                            if (objSearchFor.options[y].text == objCombo[x].text)
                            {
                                bFound = true;

                                if (objSearchFor.options[y].selected)
                                {
                                    if (this.IsFindAFund)
                                    {
                                        //don't want to display duplicate names e.g Firstchoice and FirstChoice Wholesale
                                        if (sFundNames.indexOf(objCombo[x].text) == -1)
                                        {
                                            sFundNames += objCombo[x].text + ", ";
                                            fundArray[fundArray.length++] = new fund(objCombo[x].value, objCombo[x].text);
                                        }
                                    }
                                    else
                                        sOptions += "<option value='" + objCombo[x].value + "'>" + objCombo[x].text + "</option>"

                                    objSearchFor.remove(y)
                                    iRemove = y

                                    break;
                                }
                                else
                                    break;
                            }
                        }

                        if (!bFound)
                        {
                            if (this.IsFindAFund)
                            {
                                //don't want to display duplicate names e.g Firstchoice and FirstChoice Wholesale
                                if (sFundNames.indexOf(objCombo[x].text) == -1)
                                {
                                    sFundNames += objCombo[x].text + ", ";
                                    fundArray[fundArray.length++] = new fund(objCombo[x].value, objCombo[x].text);
                                }
                            }
                            else
                                sOptions += "<option value='" + objCombo[x].value + "'>" + objCombo[x].text + "</option>"
                        }
                    }
                }
            }
        }
    }

    //sort fund names alphabetically
    if (this.IsFindAFund)
    {
        fundArray.sort(sortByFundName);
        sOptions = "";

        for (i = 0; i < fundArray.length; i++)
        {
            sOptions += "<option value='" + fundArray[i].WebID + "'>" + fundArray[i].FundName + "</option>"
        }
    }

    if (objSearchFor.options.length != 0)
    {
        if (iRemove == 0)
            objSearchFor.options[iRemove].selected = true;
        else
            objSearchFor.options[iRemove - 1].selected = true;
    }

    divMenu.innerHTML = menuOuterHTML + sOptions + "</SELECT>";
}

function doSearch()
{
    var productCount = 0, hedgeOnly = true;

    if (Validate())
    {
        if (this.IsFindAFund)
        {
            //if no product selected, then search for all products
            if (document.getElementById(ctlID + "_hidProductID").value == "")
            {
                productArray = new Array();

                //selected option
                var items = element.getElementsByTagName("input");

                if (document.getElementById(ctlID + "_chkHedge").checked)
                {
                    document.getElementById(ctlID + "_hidProductID").value = HEDGE_IDS;
                    productArray[0] = HEDGE;
                    productArray[1] = HEDGE_WHOLESALE;
                }
                else
                {
                    for (i = 0; i < items.length; i++)
                    {
                        if (items[i].type == "checkbox")
                        {
                            productArray[productCount] = items[i].parentNode.parentNode.getAttribute("optionvalue")

                            productCount++;

                            if (document.getElementById(ctlID + "_hidProductID").value == "")
                                document.getElementById(ctlID + "_hidProductID").value = items[i].parentNode.parentNode.getAttribute("optionvalue");
                            else
                                document.getElementById(ctlID + "_hidProductID").value += ", " + items[i].parentNode.parentNode.getAttribute("optionvalue");
                        }
                    }

                    document.getElementById(ctlID + "_hidProductText").value = "All";
                }
            }
            else
            {
                if (document.getElementById(ctlID + "_chkCash").checked
				|| document.getElementById(ctlID + "_chkProperty").checked
				|| document.getElementById(ctlID + "_chkGlobalShares").checked
				|| document.getElementById(ctlID + "_chkAustralianShares").checked
				|| document.getElementById(ctlID + "_chkAusFixedInterest").checked
				|| document.getElementById(ctlID + "_chkGlobFixedInterest").checked
				|| document.getElementById(ctlID + "_chkMultiSector").checked)
                    hedgeOnly = false;

                //because of back button and possibility of hedge option, need to check all options
                //that have been selected again when user hit back button
                /*if (back)
                {
                var items = element.getElementsByTagName("input");
					
					document.getElementById(ctlID + "_hidProductID").value = "";
					
					if (document.getElementById(ctlID + "_chkHedge").checked && hedgeOnly)
                {
                for (i=0; i<items.length; i++)
                {
                if (items[i].type == "checkbox" && items[i].checked)
                {
                if (items[i].parentNode.parentNode.getAttribute("optionvalue") == HEDGE)
                {
                if (document.getElementById(ctlID + "_hidProductID").value == "")
                document.getElementById(ctlID + "_hidProductID").value = HEDGE;
                else
                document.getElementById(ctlID + "_hidProductID").value += ", " + HEDGE;			
                }
								
								if (items[i].parentNode.parentNode.getAttribute("optionvalue") == HEDGE_WHOLESALE)
                {
                if (document.getElementById(ctlID + "_hidProductID").value == "")
                document.getElementById(ctlID + "_hidProductID").value = HEDGE_WHOLESALE;
                else
                document.getElementById(ctlID + "_hidProductID").value += ", " + HEDGE_WHOLESALE;			
                }
                }
                }
                }
                else
                {
                for (x=0; x<items.length; x++)
                {
                if (items[x].type == "checkbox");
                {
                if (items[x].checked == true)
                {			
                if (document.getElementById(ctlID + "_hidProductID").value == "")
                document.getElementById(ctlID + "_hidProductID").value = items[x].parentNode.parentNode.getAttribute("optionvalue");
                else
                document.getElementById(ctlID + "_hidProductID").value += ", " + items[x].parentNode.parentNode.getAttribute("optionvalue");		
                }
                }
                }
                }
                }
                else
                {*/
                if (document.getElementById(ctlID + "_chkHedge").checked && hedgeOnly)
                {
                    var items = element.getElementsByTagName("input");

                    document.getElementById(ctlID + "_hidProductID").value = "";

                    for (i = 0; i < items.length; i++)
                    {
                        if (items[i].type == "checkbox" && items[i].checked)
                        {
                            if (items[i].parentNode.parentNode.getAttribute("optionvalue") == HEDGE)
                            {
                                if (document.getElementById(ctlID + "_hidProductID").value == "")
                                    document.getElementById(ctlID + "_hidProductID").value = HEDGE;
                                else
                                    document.getElementById(ctlID + "_hidProductID").value += ", " + HEDGE;
                            }

                            if (items[i].parentNode.parentNode.getAttribute("optionvalue") == HEDGE_WHOLESALE)
                            {
                                if (document.getElementById(ctlID + "_hidProductID").value == "")
                                    document.getElementById(ctlID + "_hidProductID").value = HEDGE_WHOLESALE;
                                else
                                    document.getElementById(ctlID + "_hidProductID").value += ", " + HEDGE_WHOLESALE;
                            }
                        }
                    }
                }
                //}

                document.getElementById(ctlID + "_hidSearchProductIDs").value = document.getElementById(ctlID + "_hidProductID").value;

                if (!document.getElementById(ctlID + "_chkHedge").checked && !hedgeOnly)
                {
                    //remove hedge ids
                    if (document.getElementById(ctlID + "_hidProductID").value != "")
                    {
                        document.getElementById(ctlID + "_hidProductID").value = document.getElementById(ctlID + "_hidProductID").value.replace("96, ", "");
                        document.getElementById(ctlID + "_hidProductID").value = document.getElementById(ctlID + "_hidProductID").value.replace("97, ", "");
                        document.getElementById(ctlID + "_hidProductID").value = document.getElementById(ctlID + "_hidProductID").value.replace(", 96", "");
                        document.getElementById(ctlID + "_hidProductID").value = document.getElementById(ctlID + "_hidProductID").value.replace(", 97", "");
                    }
                }
            }
        }

        GetFundOptions()
        //SetDownloadOptions()

        document.getElementById("hidSearch").value = "true";

        if (document.getElementById(ctlID + "_chkHedge").disabled)
            document.getElementById("hidHedge").value = "true";
        else
            document.getElementById("hidHedge").value = "false";

        if (document.getElementById(ctlID + "_chkHedge").checked)
            document.getElementById("hidHedgeCheck").value = "true";
        else
            document.getElementById("hidHedgeCheck").value = "false";

        document.getElementById("hidMenuInnerHTML").value = document.getElementById("divMenu").innerHTML;
        document.getElementById("hidSearchForInnerHTML").value = document.getElementById("divSearchFor").innerHTML;

        document.getElementById("frmPage").submit();
    }
}

function ToggleOptions(elm)
{
    //used for reference in other functions
    element = elm;

    if (bNoClickEvent)
    {
        bNoClickEvent = false;

        if (document.getElementById(ctlChildID + "_optInstitutional").checked)
            SetOptionSelected('', 'Institutional and Master Trusts', 'WF', 'CFSI')

        return;
    }

    var uncheckedElm = "";

    if (elm.style.display == "block")
    {
        if (document.getElementById(ctlChildID + "_optInstitutional").checked)
            SetOptionSelected('', 'Institutional and Master Trusts', 'WF', 'CFSI')
        return;
    }
    else
    {
        var items;

        if (document.getElementById(ctlChildID + "_divInvestment").style.display == "block")
            uncheckedElm = document.getElementById(ctlChildID + "_divInvestment");
        else if (document.getElementById(ctlChildID + "_divSuper").style.display == "block")
            uncheckedElm = document.getElementById(ctlChildID + "_divSuper");
        else if (document.getElementById(ctlChildID + "_divRetirement").style.display == "block")
            uncheckedElm = document.getElementById(ctlChildID + "_divRetirement");
        else if (document.getElementById(ctlChildID + "_divInstitutional").style.display == "block")
            uncheckedElm = document.getElementById(ctlChildID + "_divInstitutional");

        document.getElementById(ctlChildID + "_divInvestment").style.display = "none"
        document.getElementById(ctlChildID + "_divSuper").style.display = "none";
        document.getElementById(ctlChildID + "_divRetirement").style.display = "none";
        document.getElementById(ctlChildID + "_divInstitutional").style.display = "none";
        items = document.getElementById("outerTable").getElementsByTagName("input");

        for (i = 0; i < items.length - 1; i++)
        {
            if (items[i].type == "radio");
            {
                switch (items[i].id)
                {
                    case ctlChildID + "_optInvestment":
                    case ctlChildID + "_optSuperannuation":
                    case ctlChildID + "_optRetirement":
                    case ctlChildID + "_optInstitutional":
                        continue;
                }

                items[i].checked = false;
            }

            if (!document.getElementById(ctlChildID + "_optInstitutional").checked)
            {
                if (uncheckedElm != "")
                {
                    items = uncheckedElm.getElementsByTagName("input");

                    for (z = 0; z < items.length; z++)
                    {
                        if (items[z].type == "checkbox" || items[z].type == "radio");
                        {
                            items[z].checked = false;
                        }
                    }
                }

                items = elm.getElementsByTagName("input");

                for (z = 0; z < items.length; z++)
                {
                    if (items[z].type == "checkbox" || items[z].type == "radio");
                    {
                        //items[i].checked = true;
                        elm.style.display = "block"

                        if (!this.IsFindAFund)
                        {
                            items[z].click();
                            return;
                        }
                        else
                        {
                            //check every item except the first. Script runs quicker.
                            if (z != 0)
                                items[z].checked = true;
                        }
                    }
                }

                //for find a fund, quicker to check all options expcept the first and
                //call click event for first item when all other are checked...all product IDs
                //will still be obtained from SetoptionSelected function as it loops through all
                //controls and checked for their checked property. Click only needs to be called once
                //for this to happen.
                items[0].click();
                return;
            }
            else
                SetOptionSelected('', 'Institutional and Master Trusts', 'WF', 'CFSI')
        }
    }
}

function SetOptionSelected(productID, productText, mainGroup, brandName)
{
    if (!this.IsFindAFund)
    {
        if (!exception)
        {
            //PAP - can only select one product at a time
            document.getElementById(ctlID + "_hidProductID").value = productID;
            document.getElementById(ctlID + "_hidProductText").value = productText;
        }
        else
        {
            document.getElementById(ctlID + "_hidProductID").value += ", " + productID;
        }
    }
    else
    {
        //FAF - multiple product selection allowed

        var elm, items;
        var allSelected = true, noneSelected = true;
        var productCount = 0;

        productArray = new Array();

        document.getElementById(ctlID + "_hidProductID").value = "";
        document.getElementById(ctlID + "_hidProductText").value = "";

        if (document.getElementById(ctlChildID + "_optInvestment").checked)
            items = document.getElementById(ctlChildID + '_divInvestment').getElementsByTagName("input");
        else if (document.getElementById(ctlChildID + "_optSuperannuation").checked)
            items = document.getElementById(ctlChildID + '_divSuper').getElementsByTagName("input");
        else if (document.getElementById(ctlChildID + "_optRetirement").checked)
            items = document.getElementById(ctlChildID + '_divRetirement').getElementsByTagName("input");
        else if (document.getElementById(ctlChildID + "_optInstitutional").checked)
            items = document.getElementById(ctlChildID + '_divInstitutional').getElementsByTagName("input");

        for (x = 0; x < items.length; x++)
        {
            if (items[x].type == "checkbox");
            {
                if (items[x].checked == true)
                {
                    noneSelected = false;

                    productArray[productCount] = items[x].parentNode.parentNode.getAttribute("optionvalue");

                    productCount++;

                    if (document.getElementById(ctlID + "_hidProductID").value == "")
                        document.getElementById(ctlID + "_hidProductID").value = items[x].parentNode.parentNode.getAttribute("optionvalue");
                    else
                        document.getElementById(ctlID + "_hidProductID").value += ", " + items[x].parentNode.parentNode.getAttribute("optionvalue");

                    if (document.getElementById(ctlID + "_hidProductText").value == "")
                        document.getElementById(ctlID + "_hidProductText").value = items[x].parentNode.parentNode.getAttribute("optiontext");
                    else
                        document.getElementById(ctlID + "_hidProductText").value += ", " + items[x].parentNode.parentNode.getAttribute("optiontext");

                    //PopulateCombo(items[x].parentNode.getAttribute("optionvalue"));	
                }
                else
                    allSelected = false;
            }
        }
    }

    if (allSelected)
        document.getElementById(ctlID + "_hidProductText").value = "All";

    if (mainGroup != "WF")
    {
        if (!this.IsFindAFund)
        {
            if (productID == HEDGE || productID == HEDGE_WHOLESALE)
            {
                document.getElementById(ctlID + "_chkHedge").disabled = false;
                document.getElementById(ctlID + "_chkHedge").checked = false;
            }
            else
            {
                document.getElementById(ctlID + "_chkHedge").checked = false;
                document.getElementById(ctlID + "_chkHedge").disabled = true;
            }
        }
        else
        {
            if (!noneSelected)
            {
                var hedgeSelected = false;

                for (i = 0; i < productArray.length; i++)
                {
                    if (productArray[i] == HEDGE || productArray[i] == HEDGE_WHOLESALE)
                    {
                        document.getElementById(ctlID + "_chkHedge").disabled = false;
                        hedgeSelected = true;
                        break;
                    }
                }

                if (!hedgeSelected)
                {
                    document.getElementById(ctlID + "_chkHedge").checked = false;
                    document.getElementById(ctlID + "_chkHedge").disabled = true;
                }
            }
            else
            {
                if (mainGroup == "IF")
                {
                    document.getElementById(ctlID + "_chkHedge").checked = false;
                    document.getElementById(ctlID + "_chkHedge").disabled = false;
                }
                else
                {
                    var hedgeSelected = false;

                    for (i = 0; i < productArray.length; i++)
                    {
                        if (productArray[i] == HEDGE || productArray[i] == HEDGE_WHOLESALE)
                        {
                            document.getElementById(ctlID + "_chkHedge").disabled = false;
                            hedgeSelected = true;
                            break;
                        }
                    }

                    if (!hedgeSelected)
                    {
                        document.getElementById(ctlID + "_chkHedge").checked = false;
                        document.getElementById(ctlID + "_chkHedge").disabled = true;
                    }
                }
            }
        }
    }
    else
    {
        document.getElementById(ctlID + "_chkHedge").checked = false;
        document.getElementById(ctlID + "_chkHedge").disabled = true;
    }

    document.getElementById(ctlID + "_hidMainGroup").value = mainGroup;
    document.getElementById(ctlID + "_hidBrandName").value = brandName;

    if (!this.IsFindAFund)
    {
        if (productID != "")
            PopulateCombo(productID, false);
    }
    else
    {
        if (productID != "")
            PopulateCombo(productID, noneSelected);
    }

    if (!this.IsFindAFund)
    {
        if (productID == MIF_ID)
        {
            exception = true;
            SetOptionSelected(MORT_ID, productText, mainGroup, brandName)

            objExceptionMIFMenu = document.getElementById(ctlID + "_lstMenus");
            exception = false;
        }
        else if (productID == MIF_NIL_ENTRY_ID)
        {
            exception = true;
            SetOptionSelected(MORT_NIL_ENTRY_ID, productText, mainGroup, brandName)

            exception = false;
        }
    }
}

function SetControls(bEnable)
{
    document.getElementById(ctlID + "_txtFundName").readOnly = false;

    allowFundSelection = bEnable;

    if (bEnable)
    {
        if (!this.IsFindAFund)
            document.getElementById(ctlID + "_txtAPIRCode").readOnly = false;

        document.getElementById(ctlID + "_chkGlobalShares").disabled = false;
        document.getElementById(ctlID + "_chkAustralianShares").disabled = false;
        document.getElementById(ctlID + "_chkProperty").disabled = false;
        document.getElementById(ctlID + "_chkCash").disabled = false;
        document.getElementById(ctlID + "_chkGlobFixedInterest").disabled = false;

        /*if (this.IsFindAFund)
        document.getElementById(ctlID + "_chkHedge").disabled = false;*/

        document.getElementById(ctlID + "_chkMultiSector").disabled = false;
        document.getElementById(ctlID + "_chkAusFixedInterest").disabled = false;
        document.getElementById(ctlID + "_lstMenus").disabled = false;
        document.getElementById(ctlID + "_lstSearchFor").disabled = false;
    }
    else
    {
        document.getElementById(ctlID + "_txtFundName").value = "";
        document.getElementById(ctlID + "_txtFundName").readOnly = true;

        if (!this.IsFindAFund)
        {
            document.getElementById(ctlID + "_txtAPIRCode").value = "";
            document.getElementById(ctlID + "_txtAPIRCode").readOnly = true;
        }

        document.getElementById(ctlID + "_chkGlobalShares").checked = false;
        document.getElementById(ctlID + "_chkGlobalShares").disabled = true;
        document.getElementById(ctlID + "_chkAustralianShares").checked = false;
        document.getElementById(ctlID + "_chkAustralianShares").disabled = true;
        document.getElementById(ctlID + "_chkProperty").checked = false;
        document.getElementById(ctlID + "_chkProperty").disabled = true;
        document.getElementById(ctlID + "_chkCash").checked = false;
        document.getElementById(ctlID + "_chkCash").disabled = true;
        document.getElementById(ctlID + "_chkGlobFixedInterest").checked = false;
        document.getElementById(ctlID + "_chkGlobFixedInterest").disabled = true;

        /*if (this.IsFindAFund)
        {
        document.getElementById(ctlID + "_chkHedge").checked = false;
        document.getElementById(ctlID + "_chkHedge").disabled = true;
        }*/

        document.getElementById(ctlID + "_chkMultiSector").checked = false;
        document.getElementById(ctlID + "_chkMultiSector").disabled = true;
        document.getElementById(ctlID + "_chkAusFixedInterest").checked = false;
        document.getElementById(ctlID + "_chkAusFixedInterest").disabled = true;

        var objSearchFor = document.getElementById(ctlID + "_lstSearchFor");

        for (v = objSearchFor.length; v >= 0; v--)
        {
            objSearchFor.remove(v)
        }

        document.getElementById(ctlID + "_lstMenus").selectedIndex = -1;
        document.getElementById(ctlID + "_lstMenus").disabled = true;
        document.getElementById(ctlID + "_lstSearchFor").disabled = true;
        //document.getElementById("divList").style.display = "none";
    }
}


function MarginLoanSelected()
{
    var marginLoanRadioButton = document.getElementById(ctlID + "_optMarginLoanInterestRates");
    if (marginLoanRadioButton == null)
        return false;

    return (marginLoanRadioButton.checked);
}

function SaverSelected()
{
    var button = document.getElementById(ctlID + "_optSaverInterestRates");
    if (button == null)
        return false;

    return (button.checked);
}


function Validate()
{
    if (MarginLoanSelected() || SaverSelected())
        return true;

    if (!document.getElementById(ctlChildID + "_optInvestment").checked
	&& !document.getElementById(ctlChildID + "_optSuperannuation").checked
	&& !document.getElementById(ctlChildID + "_optRetirement").checked
	&& !document.getElementById(ctlChildID + "_optInstitutional").checked)
    {
        alert("Please select the investment type and product you are interested in.")
        return false;
    }
    else
    {
        return true;
    }
}

function ShowList(elm, img)
{
    if (!document.getElementById(ctlChildID + "_optInvestment").checked
	&& !document.getElementById(ctlChildID + "_optSuperannuation").checked
	&& !document.getElementById(ctlChildID + "_optRetirement").checked
	&& !document.getElementById(ctlChildID + "_optInstitutional").checked)
    {
        alert("Please select the investment type and product you are interested in.")
    }
    else
    {
        if (!document.getElementById(ctlChildID + "_optInstitutional").checked)
        {
            try
            {
                //fixes bug in Firefox when browser back button is used and select from list link is selected
                if (navigator.userAgent.toUpperCase().indexOf("FIREFOX") != -1
					&& location.protocol.indexOf("https") == -1)
                {
                    if (document.getElementById(ctlID + "_lstMenus").options.length == 0)
                    {
                        var items;

                        if (document.getElementById(ctlChildID + "_optInvestment").checked)
                            items = document.getElementById(ctlChildID + "_divInvestment").getElementsByTagName("input");
                        else if (document.getElementById(ctlChildID + "_optSuperannuation").checked)
                            items = document.getElementById(ctlChildID + "_divSuper").getElementsByTagName("input");
                        else if (document.getElementById(ctlChildID + "_optSuperannuation").checked)
                            items = document.getElementById(ctlChildID + "_divRetirement").getElementsByTagName("input");

                        for (i = 0; i < items.length; i++)
                        {
                            if (items[i].type == "radio");
                            {
                                if (items[i].checked)
                                    items[i].click();
                            }
                        }
                    }
                }
            }
            catch (e)
            {
            }

            if (document.getElementById(ctlID + "_lstMenus").options.length > 0)
                document.getElementById(ctlID + "_lstMenus").options[0].selected = true;

            document.getElementById("hidShowFunds").value = "true";

            elm.style.display = "block";

            img.style.visibility = "hidden";

            ResizeFrame();
        }
    }
}

function ClearFilters()
{
    document.getElementById(ctlID + "_txtFundName").value = "";
    document.getElementById(ctlID + "_chkGlobalShares").checked = false;
    document.getElementById(ctlID + "_chkAustralianShares").checked = false;
    document.getElementById(ctlID + "_chkProperty").checked = false;
    document.getElementById(ctlID + "_chkCash").checked = false;
    document.getElementById(ctlID + "_chkGlobFixedInterest").checked = false;
    document.getElementById(ctlID + "_chkHedge").checked = false;
    document.getElementById(ctlID + "_chkMultiSector").checked = false;
    document.getElementById(ctlID + "_chkAusFixedInterest").checked = false;

    var objSearchFor = document.getElementById(ctlID + "_lstSearchFor");

    for (v = objSearchFor.length; v >= 0; v--)
    {
        objSearchFor.remove(v)
    }
    document.getElementById(ctlID + "_lstMenus").selectedIndex = -1;
}

function CompareAll(elm)
{
    var items = elm.getElementsByTagName("input");

    ClearFilters()

    for (i = 0; i < items.length; i++)
    {
        if (items[i].type == "checkbox");
        {
            if (!items[i].checked)
                items[i].checked = "true";
        }
    }

    if (!items[0].checked)
        items[0].click();
    else
    {
        items[0].checked = false;
        items[0].click();
    }

    doSearch();
}

function ShowInvestmentTypes()
{
    document.getElementById(ctlID + "_divSearchCriteria").style.display = "none";

    if (bPublic)
        document.getElementById("divHeader").innerHTML = "<h1 style=\"background: url(/images/subtitle_invest_types.gif) 0 0 no-repeat;\">Investment types</h1>";
    else
        document.getElementById("divHeader").style.display = "none";

    document.getElementById("divCrumbs").innerHTML = "<STRONG>You are here:</STRONG> <a href=\"/price_performance/findFund.aspx?menutabtype=&CompanyCode=001&Public=1\">Find a fund</a> > Investment types";

    try
    {
        selectNavigationMenu('investmentTypes', 'FindAFund');
    }
    catch (e)
    {
    }

    document.getElementById(ctlIvstID + "_divInvestmentTypes").style.display = "block";
}

function ShowSearchCriteria()
{
    document.getElementById(ctlIvstID + "_divInvestmentTypes").style.display = "none";

    document.getElementById("divHeader").innerHTML = "<h1 style=\"background: url(/images/subtitle_faf.gif) 0 0 no-repeat;\">Find a fund</h1>";
    document.getElementById("divCrumbs").innerHTML = "<STRONG>You are here:</STRONG> <a href=\"/price_performance/findFund.aspx?menutabtype=&CompanyCode=001&Public=1\">Find a fund</a> > Find a fund search";

    document.getElementById(ctlID + "_divSearchCriteria").style.display = "block";

    try
    {
        selectNavigationMenu('', 'FindAFund');
    }
    catch (e)
    {
    }
}

function SubmitForm()
{
    document.getElementById("hidSearch").value = "true";
    document.getElementById(ctlID + "_hidMoreInfo").value = "True";

    document.getElementById("hidMenuInnerHTML").value = document.getElementById("divMenu").innerHTML;
    document.getElementById("hidSearchForInnerHTML").value = document.getElementById("divSearchFor").innerHTML;

    document.getElementById("frmPage").submit();
}

function ShowSuper()
{
    if (bStatic)
    {
        document.getElementById(ctlID + "_hidInvestType").value = "Superannuation products";
        document.getElementById(ctlID + "_hidProductID").value = "10, 11, 60, 65, 67";
        document.getElementById(ctlID + "_hidProductText").value = "All";
        document.getElementById(ctlID + "_hidMainGroup").value = "SF";
        document.getElementById(ctlID + "_hidBrandName").value = "";

        SubmitForm();
    }
    else
    {
        ClearFilters()

        if (document.getElementById(ctlChildID + "_optSuperannuation").checked)
        {
            document.getElementById(ctlID + "_hidMoreInfo").value = "True";
            CompareAll(document.getElementById(ctlChildID + "_divSuper"));
        }
        else
        {
            document.getElementById(ctlChildID + "_optSuperannuation").click();
            SubmitForm();
        }
    }
}

function ShowRetirement()
{
    if (bStatic)
    {
        document.getElementById(ctlID + "_hidInvestType").value = "Retirement products";
        document.getElementById(ctlID + "_hidProductID").value = "20, 50, 51, 67";
        document.getElementById(ctlID + "_hidProductText").value = "All";
        document.getElementById(ctlID + "_hidMainGroup").value = "RF";
        document.getElementById(ctlID + "_hidBrandName").value = "";

        SubmitForm();
    }
    else
    {
        ClearFilters()

        if (document.getElementById(ctlChildID + "_optRetirement").checked)
        {
            document.getElementById(ctlID + "_hidMoreInfo").value = "True";
            CompareAll(document.getElementById(ctlChildID + "_divRetirement"));
        }
        else
        {
            document.getElementById(ctlChildID + "_optRetirement").click();
            SubmitForm();
        }
    }
}

function ShowInstitutional()
{
    if (bStatic)
    {
        document.getElementById(ctlID + "_hidInvestType").value = "Institutional and master trusts";
        document.getElementById(ctlID + "_hidProductID").value = "";
        document.getElementById(ctlID + "_hidProductText").value = "All";
        document.getElementById(ctlID + "_hidMainGroup").value = "WF";
        document.getElementById(ctlID + "_hidBrandName").value = "";

        SubmitForm();
    }
    else
    {
        ClearFilters()

        document.getElementById(ctlChildID + "_optInstitutional").click();

        SubmitForm();
    }
}

function ShowInvestments()
{
    if (bStatic)
    {
        document.getElementById(ctlID + "_hidInvestType").value = "Investment products";
        document.getElementById(ctlID + "_hidProductID").value = "70, 83, 84, 90, 91, 96, 97";
        document.getElementById(ctlID + "_hidProductText").value = "All";
        document.getElementById(ctlID + "_hidMainGroup").value = "IF";
        document.getElementById(ctlID + "_hidBrandName").value = "";

        SubmitForm();
    }
    else
    {
        ClearFilters()

        if (document.getElementById(ctlChildID + "_optInvestment").checked)
        {
            document.getElementById(ctlID + "_hidMoreInfo").value = "True";
            CompareAll(document.getElementById(ctlChildID + "_divInvestment"));
        }
        else
        {
            document.getElementById(ctlChildID + "_optInvestment").click();
            SubmitForm();
        }
    }
}

function goCustom()
{
    if (bPublic)
        window.location.href = 'performanceNprice.aspx?' + 'Redirect=1&Public=1&FundTransfer=' + bFundTransfer + '&custom=1';
    else
        window.location.href = 'performanceNprice.aspx?' + 'Redirect=1&FundTransfer=' + bFundTransfer + '&custom=1';
}

