/* routines specifc to quoterequest1.aspx */

var _vehicleOwnerAlreadyOwnedQT = 'Who is the owner of the car?&nbsp;<em>*</em>';
var _vehicleOwnerLookingToBuyQT = 'Who will be the owner of the car?&nbsp;<em>*</em>';
var _vehicleRKAlreadyOwnedQT = 'Who is the registered keeper of the car?&nbsp;<em>*</em>';
var _vehicleRKLookingToBuyQT = 'Who will be the registered keeper of the car?&nbsp;<em>*</em>';
var _vehicleOwnerAlreadyOwnedValidation = 'Please select who owns the car';
var _vehicleOwnerLookingToBuyValidation = 'Please select who will own the car';

/* hookup lookup events to motor lookup select boxes */
function addEvents() 
{
    // Check whether cookies is enabled.
    checkCookie();
    
    if(document.forms.length > 0) 
	{	
	    if (document.getElementById('pnlVehicleLookup') != null)
        {
            // Clear error messages from previous search.
            document.getElementById('pVLVehicleFound').style.display = 'none';  
        }
            
	    if (document.getElementById('deciPurchaseDateQuestion') != null)
	    {
	        var changeVOText = ((document.getElementById('deciVehicleOwnerQuestion') != null) ? true : false);
            var changeRKText = ((document.getElementById('deciRegisteredKeeperQuestion') != null) ? true : false);
            
            // Cache fix for selection.
	        if (document.getElementById('rdoAlreadyOwned_0').checked)
	        {
	            // Enable the purchase date question & validation.
                Msfg$callFunction('deciPurchaseDateQuestion', 'Hidden', false);
	            
	            // Change vehicle owner text if question visible.
		        if (changeVOText)
                {
                    var divContainer = document.getElementById('deciVehicleOwnerQuestion');
                    var labels = divContainer.getElementsByTagName('label');
                    
                    labels[0].innerHTML = _vehicleOwnerAlreadyOwnedQT; 
                    
                    var validationVehicleOwner = document.getElementById('ValRequiredDropDownListForDdlVehicleOwner');
                    validationVehicleOwner.errormessage = _vehicleOwnerAlreadyOwnedValidation;  
	            }
	            
	            // Change registered owner text if question visible.
		        if (changeRKText)
                {
                    var divContainer = document.getElementById('deciRegisteredKeeperQuestion');
                    var labels = divContainer.getElementsByTagName('label');
                    
                    labels[0].innerHTML = _vehicleRKAlreadyOwnedQT;   
	            }
	        }
	        else if (document.getElementById('rdoAlreadyOwned_1').checked)
	        {
	            // Disable the purchase date question & validation.
                Msfg$callFunction('deciPurchaseDateQuestion', 'Hidden', true);
		        
		        // Change vehicle owner text if question visible.
		        if (changeVOText)
                {
                    var divContainer = document.getElementById('deciVehicleOwnerQuestion');
                    var labels = divContainer.getElementsByTagName('label');
                    
                    labels[0].innerHTML = _vehicleOwnerLookingToBuyQT;   
                    
                    var validationVehicleOwner = document.getElementById('ValRequiredDropDownListForDdlVehicleOwner');
                    validationVehicleOwner.errormessage = _vehicleOwnerLookingToBuyValidation;
                    
	            }
	            
	            // Change registered owner text if question visible.
		        if (changeRKText)
                {
                    var divContainer = document.getElementById('deciRegisteredKeeperQuestion');
                    var labels = divContainer.getElementsByTagName('label');
                    
                    labels[0].innerHTML = _vehicleRKLookingToBuyQT;   
	            }
		    }
		    else
		    {
		        // Disable the purchase date question & validation.
                Msfg$callFunction('deciPurchaseDateQuestion', 'Hidden', true);
		    }
		}
		
		if (document.getElementById('deciVehicleUsageQuestion') != null)
	    {
	        if (document.getElementById('deciBusinessMileageQuestion') != null)
	        {
	            // Cache fix for selection.
	            switch (document.getElementById('ddlVehicleUsage').value)
	            {
	                case '2':
	                case '3':
	                {
	                    // Enable the business mileage question & validation.
                        Msfg$callFunction('deciBusinessMileageQuestion', 'Hidden', false);
	                    
	                    break;
	                }
	                default:
	                {
	                    // Disable the business mileage question & validation.
                        Msfg$callFunction('deciBusinessMileageQuestion', 'Hidden', true);
                        
                        // Clear the business mileage entered.
                        document.getElementById('txtBusinessMileage').value = '';
                        
		                break;
	                }
	            }
	        }
		}
		
		//Setup modification control
        var rdo0 = document.getElementById('rdoModifications_0');
       
        if (rdo0.checked)
        {
            var modificationSelected = false;
            var foundObject = true;
            var j = 1;

            while (foundObject)
            {   
                var obj = 'modification_container' + j;
                
                if (document.getElementById(obj) != null)
                {
                    var checkboxContainer = document.getElementById(obj);
                    
                    var checkboxes = checkboxContainer.getElementsByTagName('input');
                    
                    var selected = false;

                    //Check checkboxes for ticks
                    for (var i=0; i < checkboxes.length; i++) 
                    {
                        var checkbox = checkboxes[i];
                    
                        if (checkbox.checked)
                        {
                            modificationSelected = true
                            selected = true;
                            break;
                        }
                    }
                    
                    //Open modification section in one of the checkbox is ticked
                    if (selected == true)
                    {
                        checkboxContainer.style.display = 'block';
                        
                        var containerHeader = document.getElementById('modification_container'+ j +'Header');
                        containerHeader.className = 'modificationHeaderDown';
                    }
                    else
                    {
                        checkboxContainer.style.display = 'none';
                    }
                }
                else
                {
                    foundObject = false;
                }
                
                j++;
            }
            // if modifications has been selected and there are no modifications, change the flag
            if(!modificationSelected)
            {
                rdo0.checked = false;                
                document.getElementById('rdoModifications_1').checked=true;
                document.getElementById('divModificationContainer').style.display = 'none';               
                //this ensures that the accessories collection is expanded when the user selects modifications again
                expand('modification_container8');
            }
            else
            {
                document.getElementById('divModificationContainer').style.display = 'block';
            }
        }  
        
        // Check the value of the drop down.
        CheckVehicleImported();
        
        // Check vehicle lookup status.
        ToggleManualVehicleLookup();		     
	}
}

function ToggleQuestions(elementId)
{
    switch (elementId.toLowerCase())
    {
        case 'rdoalreadyowned':
        {
            var rdo0 = document.getElementById('rdoAlreadyOwned_0');
            var rdo1 = document.getElementById('rdoAlreadyOwned_1');
            var changeVOText = ((document.getElementById('deciVehicleOwnerQuestion') != null) ? true : false);
            var changeRKText = ((document.getElementById('deciRegisteredKeeperQuestion') != null) ? true : false);
            
            if (rdo0.checked)
            {
                // Enable the purchase date question & validation.
                Msfg$callFunction('deciPurchaseDateQuestion', 'Hidden', false);
                
                if (changeVOText)
                {
                    var divContainer = document.getElementById('deciVehicleOwnerQuestion');
                    var labels = divContainer.getElementsByTagName('label');
                    
                    labels[0].innerHTML = _vehicleOwnerAlreadyOwnedQT;
                    
                    var validationVehicleOwner = document.getElementById('ValRequiredDropDownListForDdlVehicleOwner');
                    validationVehicleOwner.errormessage = _vehicleOwnerAlreadyOwnedValidation;
	            }
	            
	            if (changeRKText)
                {
                    var divContainer = document.getElementById('deciRegisteredKeeperQuestion');
                    var labels = divContainer.getElementsByTagName('label');
                    
                    labels[0].innerHTML = _vehicleRKAlreadyOwnedQT;
	            }
            }
            else if (rdo1.checked)
            {
                // Disable the purchase date question & validation.            
                Msfg$callFunction('deciPurchaseDateQuestion', 'Hidden', true);
            
                if (changeVOText)
                {
                    var divContainer = document.getElementById('deciVehicleOwnerQuestion');
                    var labels = divContainer.getElementsByTagName('label');
                    
                    labels[0].innerHTML = _vehicleOwnerLookingToBuyQT;
                    
                    var validationVehicleOwner = document.getElementById('ValRequiredDropDownListForDdlVehicleOwner');
                    validationVehicleOwner.errormessage = _vehicleOwnerLookingToBuyValidation;
	            }
	            
	            if (changeRKText)
                {
                    var divContainer = document.getElementById('deciRegisteredKeeperQuestion');
                    var labels = divContainer.getElementsByTagName('label');
                    
                    labels[0].innerHTML = _vehicleRKLookingToBuyQT;
	            }
            }
            break;
        }
        
        case 'rdomodifications':
        {
            var rdo0 = document.getElementById('rdoModifications_0');
            var rdo1 = document.getElementById('rdoModifications_1');
   
            
            if (rdo0.checked)
            {
                document.getElementById('divModificationContainer').style.display = 'block';
            }
            else if (rdo1.checked)
            {           
                document.getElementById('divModificationContainer').style.display = 'none';
            }
            break;
        }
        
        case 'ddlvehicleusage':
        {
            switch (document.getElementById(elementId).value)
            {
                case '2':
                case '3':
                {
                     // Enable the business mileage question & validation.
                    Msfg$callFunction('deciBusinessMileageQuestion', 'Hidden', false);
                
                    break;
                }
                default:
                {
                    // Disable the business mileage question & validation.
                    Msfg$callFunction('deciBusinessMileageQuestion', 'Hidden', true);
                
                    // Clear the business mileage entered.
                    document.getElementById('txtBusinessMileage').value = '';     
                }
            }
            break;
        }
    }
}

function CheckVehicleManufactureYear(sender, args)
{   
    if (document.getElementById('deciPurchaseDateQuestion') != null && document.getElementById('rdoAlreadyOwned_0').checked)
    {
        if (document.getElementById('rdoKnowRegistration_0').checked)
        {
            var divContainer = document.getElementById('vlVehicleLookup');
            var ddlVehicleLookup = divContainer.getElementsByTagName('select');

            if (ddlVehicleLookup != null && ddlVehicleLookup.length > 0)
            {
                 var mySplitResult = ddlVehicleLookup[0].options[ddlVehicleLookup[0].selectedIndex].value.split("#");
                 var purchaseDateYear = document.getElementById('dbmPurchaseDate_txtYear');
                
                 if (purchaseDateYear.value.length > 0)
                 {
                    var manufactureYear = mySplitResult[1];
                    var purchaseYear = purchaseDateYear.value;
                    
                    if (purchaseYear < manufactureYear)
                    {
                        args.IsValid = false;
                        return;
                    }
           
                    args.IsValid = true;
                    return;
                 }
            }
            else
            {
                /*  Set this to true even though it technically isn't anything. This is because the user has
                    not entered a registration so we can't work out if the manufacturer year is valid. Set to 
                    true so the validation message isn't displayed as we don't need to yet. Showing more than 
                    2 validation messages will probably confuse the user */

                args.IsValid = true;
                return;
            }
        }
        else
        {
            var vehicleManufactureYear = document.getElementById('cdlYear');
            
            var purchaseDateYear = document.getElementById('dbmPurchaseDate_txtYear');
            
            if (vehicleManufactureYear.value.length > 0 && purchaseDateYear.value.length > 0)
            {
                var manufactureYear = vehicleManufactureYear.value;
                var purchaseYear = purchaseDateYear.value;
                
                if (purchaseYear < manufactureYear)
                {
                    args.IsValid = false;
                    return;
                }
       
                args.IsValid = true;
                return;
            }
            else
            {
                args.IsValid =  false;
                return;
            }
            
            args.IsValid =  false;
            return;
        }
    }
    else
    {
        args.IsValid =  true;
        return;
    }   
}

/*************************************************************
    Function to check to see if cookies are enabled or not.
*************************************************************/
function checkCookie() 
{
    // Check to see if cookies are enabled or not.
	if (document.cookie.length > 0)
	{
	    // Don't display error message if cookies are turned on.
	    document.getElementById("cookieError").style.display = "none";
	}
	else
	{
	    // Display error message if cookies are turned off.
	    document.getElementById("cookieError").style.display = "block";
	}
}

/*************************************************************
    Vehicle registration lookup
*************************************************************/
function SetVehicleLookupParameters() 
{
    // Add parameters required.
    var preQueryId = document.getElementById('txtPreQueryId').value;
    var rdoAlreadyOwnedValue = ((document.getElementById('rdoAlreadyOwned_0').checked) ? true : false);
    
    // Clear error messages from previous search.
    document.getElementById('pVLVehicleFound').style.display = 'none';
    
    return {"prequeryid":preQueryId, "alreadyowned":rdoAlreadyOwnedValue};
}

function SetVehicleLookupPostEvent(e)
{
    // Reset validation.
    ToggleVehicleLookupValidation(true);

    if (e.failed)
    {
        // Display the dropdowns
        document.getElementById('pnlVehicleSearch').style.display = '';
        
        // Enable validation.
        Msfg$callFunction('deciVehicleMakeContainer', 'Hidden', false);
        Msfg$callFunction('deciVehicleModelContainer', 'Hidden', false);
        Msfg$callFunction('deciYearOfRegistrationContainer', 'Hidden', false);
        Msfg$callFunction('deciDoorsContainer', 'Hidden', false);
        Msfg$callFunction('deciEngineSizeContainer', 'Hidden', false);
        Msfg$callFunction('deciTrimContainer', 'Hidden', false);
        Msfg$callFunction('deciConfirmVehicleContainer', 'Hidden', false);
        
        // Mark know reg as no.
        document.getElementById('rdoKnowRegistration_1').checked = true;
        
        // Reset manual drop downs
        ResetManualVehicleDropDowns();
    }
    else
    {
        // Display vehicle found message.
        document.getElementById('pVLVehicleFound').style.display = '';
        
        // Hide the dropdowns on success.
        document.getElementById('pnlVehicleSearch').style.display = 'none';
        
        // Disable validation.
        Msfg$callFunction('deciVehicleMakeContainer', 'Hidden', true);
        Msfg$callFunction('deciVehicleModelContainer', 'Hidden', true);
        Msfg$callFunction('deciYearOfRegistrationContainer', 'Hidden', true);
        Msfg$callFunction('deciDoorsContainer', 'Hidden', true);
        Msfg$callFunction('deciEngineSizeContainer', 'Hidden', true);
        Msfg$callFunction('deciTrimContainer', 'Hidden', true);
        Msfg$callFunction('deciConfirmVehicleContainer', 'Hidden', true);
        
        // Mark know reg as yes.
        document.getElementById('rdoKnowRegistration_0').checked = true;
    }
}

function ToggleManualVehicleLookup()
{
    var rdo0 = document.getElementById('rdoKnowRegistration_0');
    var rdo1 = document.getElementById('rdoKnowRegistration_1');
       
    if (rdo0.checked)
    {
        // Display the vehicle lookup.
        document.getElementById('pnlVehicleLookup').style.display = '';
        
        // Hide the manual vehicle lookup dropdowns.
        document.getElementById('pnlVehicleSearch').style.display = 'none';
    
        // Enable validation for vehicle lookup.
        ToggleVehicleLookupValidation(true);
        
        // Disable validation for vehicle dropdowns.
        Msfg$callFunction('deciVehicleMakeContainer', 'Hidden', true);
        Msfg$callFunction('deciVehicleModelContainer', 'Hidden', true);
        Msfg$callFunction('deciYearOfRegistrationContainer', 'Hidden', true);
        Msfg$callFunction('deciDoorsContainer', 'Hidden', true);
        Msfg$callFunction('deciEngineSizeContainer', 'Hidden', true);
        Msfg$callFunction('deciTrimContainer', 'Hidden', true);
        Msfg$callFunction('deciConfirmVehicleContainer', 'Hidden', true);
        
        ResetManualVehicleDropDowns();   
    }
    else if (rdo1.checked)
    {
        ResetVehicleLookup();
    
        // Display the manual vehicle lookup dropdowns.
        document.getElementById('pnlVehicleLookup').style.display = 'none';
        
        // Display the manual vehicle lookup dropdowns.
        document.getElementById('pnlVehicleSearch').style.display = '';
    
        // Disable validation for vehicle lookup.
        ToggleVehicleLookupValidation(false);
                
        // Enable validation for vehicle dropdowns.
        Msfg$callFunction('deciVehicleMakeContainer', 'Hidden', false);
        Msfg$callFunction('deciVehicleModelContainer', 'Hidden', false);
        Msfg$callFunction('deciYearOfRegistrationContainer', 'Hidden', false);
        Msfg$callFunction('deciDoorsContainer', 'Hidden', false);
        Msfg$callFunction('deciEngineSizeContainer', 'Hidden', false);
        Msfg$callFunction('deciTrimContainer', 'Hidden', false);
        Msfg$callFunction('deciConfirmVehicleContainer', 'Hidden', false);
        
        // Flag selection as not visible again for selection validation
        document.getElementById("vlVehicleLookup_hidSelectionField").value = "false";
    }
}

function expand(elemid)
{
    elem = document.getElementById(elemid);
    elemHeader = document.getElementById(elemid + 'Header');
    
    if (elem.style.display == 'none')
    {
        elem.style.display = 'block';
        elemHeader.className = 'modificationHeaderDown';
    }
    else
    {
        elem.style.display = 'none';
        elemHeader.className = 'modificationHeaderAcross';
    }
}

function CheckModifications(source, args)
{
    var rdo0 = document.getElementById('rdoModifications_0');
    var rdo1 = document.getElementById('rdoModifications_1');
   
    var divContainer = document.getElementById('divModificationContainer');
    var checkboxes = divContainer.getElementsByTagName('input');
    
    var selected = false;
    
    for (var i =0; i < checkboxes.length;i++) 
    {
        var checkbox = checkboxes[i];
        
        if (checkbox.checked)
        {
            selected = true;
            break;
        }
    }
    
    //Modification 'Yes'
    if (rdo0.checked && selected == false)
    {
        args.IsValid = false;
        return false;
    }
    else if (rdo1.checked)
    {           
        args.IsValid = true;
        return true;
    }

}

function ToggleVehicleLookupValidation(toggleValidation)
{
    for(var i = 0; i < Page_Validators.length; i++)
	{
	    if(Page_Validators[i].id.indexOf('vlVehicleLookup_val') > -1)
		{
		    Page_Validators[i].enabled = toggleValidation;
		}
		
		if(Page_Validators[i].id.indexOf('vlVehicleLookup_Val') > -1)
		{
		    Page_Validators[i].enabled = toggleValidation;
		}
	}
}

function CheckVehicleMakePostEvent()
{
    var cdlVehicleMake = document.getElementById("cdlMake");
    
    if (cdlVehicleMake != null)
    {
        if (!isNotEmpty(cdlVehicleMake.value))
        {
            ToggleVehicleLookupValidation(true);
        }
        else
        {
            ToggleVehicleLookupValidation(false);
        }
    }
}

function ToggleHelpFindCar()
{
    // Mark know reg as no.
    document.getElementById('rdoKnowRegistration_1').checked = true;
    
    // Hide link to help find my car.
    document.getElementById('pVLVehicleFound').style.display = 'none';

    // Display the dropdowns
    document.getElementById('pnlVehicleSearch').style.display = '';
    
    // Flag selection as not visible again for selection validation
    document.getElementById("vlVehicleLookup_hidSelectionField").value = "false";
    
    // Enable validation.
    Msfg$callFunction('deciVehicleMakeContainer', 'Hidden', false);
    Msfg$callFunction('deciVehicleModelContainer', 'Hidden', false);
    Msfg$callFunction('deciYearOfRegistrationContainer', 'Hidden', false);
    Msfg$callFunction('deciDoorsContainer', 'Hidden', false);
    Msfg$callFunction('deciEngineSizeContainer', 'Hidden', false);
    Msfg$callFunction('deciTrimContainer', 'Hidden', false);
    Msfg$callFunction('deciConfirmVehicleContainer', 'Hidden', false);
        
    if (document.getElementById('vlVehicleLookup_ctl01_divSelectContainer') != null)
    {
        document.getElementById('vlVehicleLookup_ctl01_cboSelect').selectedIndex = 0; 
        Msfg$callFunction('vlVehicleLookup', 'set_Value', '');
        Msfg$callFunction('vlVehicleLookup', '_setRequiredField' , 'false');
    
        // Hide the vehicle lookup drop down.
        document.getElementById('vlVehicleLookup_ctl01_divSelectContainer').style.display = 'none';
    }   
}

function ResetManualVehicleDropDowns()
{
    Msfg$callFunction('cdlMake', 'Update', '');
    Msfg$callFunction('cdlMake', '_onChange', '');
}

function ResetVehicleLookup()
{
    document.getElementById('vlVehicleLookup_txtValue').value = '';

    document.getElementById('vlVehicleLookup_ctl01').className = '';
        
    if (document.getElementById('vlVehicleLookup_ctl01_divSelectContainer') != null)
    {
        document.getElementById('vlVehicleLookup_ctl01_cboSelect').selectedIndex = 0; 
        Msfg$callFunction('vlVehicleLookup', 'set_Value', '');
        Msfg$callFunction('vlVehicleLookup', '_setRequiredField', 'false');
        
        document.getElementById('vlVehicleLookup_ctl01_divSelectContainer').style.display = 'none';
    }
    
    if (document.getElementById('vlVehicleLookup_ctl01_ErrorMessageContainer') != null)
    {
        document.getElementById('vlVehicleLookup_ctl01_ErrorMessageContainer').style.display = 'none';
    }
}

function UpdateOwnerFromKeeper()
{
    var ddlKeeper = document.getElementById('ddlRegKeeper');
    var ddlOwner = document.getElementById('ddlVehicleOwner');
    
    var selectedKeeper = ddlKeeper.options[ddlKeeper.selectedIndex];
    
    ddlOwner.focus(); // Required by Google Chrome
    
    for(i = 0; i < ddlOwner.length; i++)
    {
        if(ddlOwner[i].text == selectedKeeper.text)
        {
            ddlOwner.selectedIndex = i;
            break;
        }
        
        if(i == ddlOwner.length - 1)
        {
            ddlOwner.selectedIndex = 0;
        }
    }
    
    ddlKeeper.focus();
}

function ToggleVehiclePositionChange(toggleType)
{
    var rdo0 = document.getElementById('rdoVehicleDriverPosition_0');
    var rdo1 = document.getElementById('rdoVehicleDriverPosition_1');
    var rightHandPanel = document.getElementById('pnlRightHandDrive');
    var leftHandPanel = document.getElementById('pnlLeftHandDrive');;
    
    switch (toggleType)
    {
        case '0':
        {
            rdo1.checked = true;
            rightHandPanel.style.display = 'none';
            leftHandPanel.style.display = '';
            break;    
        }
        case '1':
        {
            rdo0.checked = true;
            rightHandPanel.style.display = '';
            leftHandPanel.style.display = 'none';
            break;    
        }
    }
}

function ToggleVehicleImportedChange(toggleType)
{
    var ddl = document.getElementById('ddlImported');
    var notImportedPanel = document.getElementById('pnlNotImported');
    var importedPanel = document.getElementById('pnlImported');;
    
    switch (toggleType)
    {
        case '0':
        {
            notImportedPanel.style.display = 'none';
            importedPanel.style.display = '';
            
            // Add 'No' back into the list & select the value.
            var opt = new Option('-- Please select --', '');            
            ddl.options[0] = opt;
            ddl.value = '';
            
            break;    
        }
        case '1':
        {
            notImportedPanel.style.display = '';
            importedPanel.style.display = 'none';
            
            // Remove 'No' from the list and add '-- Please select --' and selected it.
            var opt = new Option('No', '0');            
            ddl.options[0] = opt;
            ddl.value = '0';
            
            // Clear the error.
            document.getElementById('deciImportedQuestion').className = '';
            if (document.getElementById('deciImportedQuestion_ErrorMessageContainer') != null)
            {
                document.getElementById('deciImportedQuestion_ErrorMessageContainer').style.display = 'none';
            }
            
            break;    
        }
    }
}

function CheckVehicleImported()
{
    var ddl = document.getElementById('ddlImported');
         
    if (ddl.value > 0)
    {
        var opt = new Option('-- Please select --', '');            
        ddl.options[0] = opt;
    }
}