﻿//Yulia Willmore -- January 8, 2007
//*************************************
//Since drop-downs that use ajax cascading drop-downs cannot use Autopostback (because it causes
//javascript errors on the page), this code acts as Autopostback where upon a value change of 
//Year, MakeModel, and PartType it appropriately hides part-variant label, image4, and the submit button.

var PARTTYPERESET_TO = false;
function hidePartVariantLabel(ddlId)
{
    var lblPartVariant = findDotNetObjectByIdAndTag('PartVariantResultLabel', 'span');
    var imgPartVariant = findDotNetObjectByIdAndTag('Img4', 'img');
    var btnPartSearch = findDotNetObjectByIdAndTag('SearchPartsButton', 'input');
    
    lblPartVariant.innerHTML = '';

    if (imgPartVariant)
    {
        lblPartVariant.parentNode.removeChild(imgPartVariant);
    }
    
    if (btnPartSearch)
    {
        var ddlYear      = findDotNetObjectByIdAndTag('YearDropDownList', 'select');
        var ddlMakeModel = findDotNetObjectByIdAndTag('MakeModelDropDownList', 'select');
        var ddlPartType  = findDotNetObjectByIdAndTag('PartTypeDropDownList', 'select');
        
        if (ddlYear.options.selectedIndex == 0      ||
            ddlMakeModel.options.selectedIndex == 0 ||
            ddlPartType.options.selectedIndex == 0)
                btnPartSearch.parentNode.removeChild(btnPartSearch);
    }
    
//    var ddlPartType  = findDotNetObjectByIdAndTag('PartTypeDropDownList', 'select');
//    if (!ddlPartType.disabled && ddlPartType.options.selectedIndex != 0)
//        __doPostBack('ctl00$ContentPlaceHolder1$PartTypeDropDownList','');
    
    
    PARTTYPERESET_TO = setTimeout("forcePartTypeReset();",400);
}

//This function forces the PartType drop-down to be reset to zero value whenever a Year or MadeModel drop-downs' values changed
//It prevents a user to hit a Submit button for PartType that has a PartVariant but it hasn't been triggered by
//Ajax cascading drop-downs (since there is not Autopostback)
function forcePartTypeReset()
{
    var ddlPartType = findDotNetObjectByIdAndTag('PartTypeDropDownList', 'select');
    ddlPartType.options.selectedIndex = 0;
    
    var lblPartVariant = findDotNetObjectByIdAndTag('PartVariantResultLabel', 'span');
    lblPartVariant.innerHTML = '';
}

function HideButton()
{
       var ddlPartType = findDotNetObjectByIdAndTag('PartTypeDropDownList', 'select');
       var btnPartSearch = findDotNetObjectByIdAndTag('SearchPartsButton', 'input');
       if(ddlPartType.options.selectedIndex = 0 )
        {
           
           btnPartSearch.visibility = "hidden";
           hidePartVariantLabel(0)
        }
        else
        {
           btnPartSearch.visibility = "visible"; 
        }
}

//This function is needed to find a .Net object on a generated page.
function findDotNetObjectByIdAndTag(id,tag)
{
    var arObj      = document.getElementsByTagName(tag);
    var serverCtrlName = id.replace(/_/g,'$');
    var regExId = new RegExp(id+"$", "ig");

    for (var i = 0; i < arObj.length; i++)
    {
        if (arObj[i].id)
        {            
            if (arObj[i].id.match(regExId))
                return arObj[i];
        }
        else if (arObj[i].name)
        {
            (arObj[i].name == serverCtrlName)
                return arObj[i];
        }
    }
    
    return false;
}