﻿function Button_Next_OnClick() {
    
    if (ValidateSellYourCarFormPageOne()) {
        ShowLoader();
        VehicleSearch.GetExperianData(document.getElementById('ctl00_ContentPlaceHolder_MainContent_TextBox_RegistrationNumber').value, ExperianEnquiry_OnSuccess, ExperianEnquiry_OnFailure);
    }
    else
    {
        return false;
    }
}

function Button_Submit_OnClick() {    
    return ValidateSellYourCarFormPageTwo();
}

function DropDownList_Make_OnChange() {    
    var selectedMake = document.getElementById('ctl00_ContentPlaceHolder_MainContent_DropDownList_Make').value;

    if (selectedMake == 'OTHER') {

        document.getElementById('ctl00_ContentPlaceHolder_MainContent_HiddenField_Make').value = '';                
        
        document.getElementById('ctl00_ContentPlaceHolder_MainContent_Label_Make_TextBox').disabled = false;        
        document.getElementById('ctl00_ContentPlaceHolder_MainContent_TextBox_Make').disabled = false;        
    }
    else {

        document.getElementById('ctl00_ContentPlaceHolder_MainContent_HiddenField_Make').value = selectedMake;                
        
        document.getElementById('ctl00_ContentPlaceHolder_MainContent_Label_Make_TextBox').disabled = true;
        document.getElementById('ctl00_ContentPlaceHolder_MainContent_TextBox_Make').disabled = true;                    
    }
}

function ValidateSellYourCarFormPageOne()
{
    var validationMessage = "";
    
    if(trimAll(document.getElementById("ctl00_ContentPlaceHolder_MainContent_TextBox_FirstName").value) == "")
    {
        validationMessage = "Please supply your First Name.\n";
    }
    
    if(trimAll(document.getElementById("ctl00_ContentPlaceHolder_MainContent_TextBox_Surname").value) == "")
    {
        validationMessage += "Please supply your Surname.\n";
    }
    
    if(!ValidateEmail(trimAll(document.getElementById("ctl00_ContentPlaceHolder_MainContent_TextBox_Email").value)))
    {
        validationMessage += "Please supply a valid Email address.\n";
    }

    if (trimAll(document.getElementById("ctl00_ContentPlaceHolder_MainContent_TextBox_Telephone").value) == "") {
        validationMessage += "Please supply your Telephone.\n";
    }

    if (!IsPostcodeValid(trimAll(document.getElementById("ctl00_ContentPlaceHolder_MainContent_TextBox_Postcode").value)))
    {
        validationMessage += "Please supply a valid Post Code.\n";
    }
    
    if(trimAll(document.getElementById("ctl00_ContentPlaceHolder_MainContent_TextBox_RegistrationNumber").value) == "")
    {
        validationMessage += "Please supply your cars Registration Number.\n";
    }
    
    if(validationMessage.length > 0)
    {
        alert(validationMessage);
        return false;
    }
    else
    {
        return true;
    }
}

function ValidateSellYourCarFormPageTwo() {
    
    var validationMessage = '';

    if (document.getElementById("ctl00_ContentPlaceHolder_MainContent_DropDownList_Make").selectedIndex == 0) {
        validationMessage = 'Please select your cars Make.\n';
    }
    else if (document.getElementById("ctl00_ContentPlaceHolder_MainContent_DropDownList_Make").value == 'OTHER'
                && trimAll(document.getElementById("ctl00_ContentPlaceHolder_MainContent_TextBox_Make").value) == ''){
        validationMessage = 'Please supply your cars Make.\n';
    }       
    
    if (trimAll(document.getElementById("ctl00_ContentPlaceHolder_MainContent_TextBox_Model").value) == '') {
        validationMessage += "Please supply your cars Model.\n";
    }

    if (trimAll(document.getElementById("ctl00_ContentPlaceHolder_MainContent_TextBox_Spec").value) == '') {
        validationMessage += "Please supply your cars Spec.\n";
    }
    
    if (isNaN(trimAll(document.getElementById("ctl00_ContentPlaceHolder_MainContent_TextBox_Year").value))) {
        validationMessage += "Please supply a valid Year of manufacture.\n";
    }

    if (trimAll(document.getElementById("ctl00_ContentPlaceHolder_MainContent_TextBox_Mileage").value) == '') {
        validationMessage += "Please supply you cars Mileage.\n";
    }

    if (validationMessage.length > 0) {
        alert(validationMessage);
        return false;
    }
    else {
        return true;
    }
}

function ExperianEnquiry_OnSuccess(result, userContext, methodName) {           
    if (GetNodeValue(result.getElementsByTagName("RegistrationNumber")[0]) == document.getElementById('ctl00_ContentPlaceHolder_MainContent_TextBox_RegistrationNumber').value.toUpperCase()) {        
    
        var make = GetNodeValue(result.getElementsByTagName("Make")[0]);

        if (make.length > 0) {

            var IsSetSelectionSuccessful = DropDownList_Make_SetSelectionValue(make);

            if (!IsSetSelectionSuccessful) {

                DropDownList_Make_SetSelectionOther();                          
                      
                document.getElementById('ctl00_ContentPlaceHolder_MainContent_TextBox_Make').value = make;

            }

            DropDownList_Make_OnChange();
            
        }

        document.getElementById('ctl00_ContentPlaceHolder_MainContent_TextBox_Model').value = GetNodeValue(result.getElementsByTagName("Range")[0]);
        document.getElementById('ctl00_ContentPlaceHolder_MainContent_TextBox_Spec').value = GetNodeValue(result.getElementsByTagName("Derivative")[0]);
        document.getElementById('ctl00_ContentPlaceHolder_MainContent_TextBox_Model').value = GetNodeValue(result.getElementsByTagName("Range")[0]);
        document.getElementById('ctl00_ContentPlaceHolder_MainContent_TextBox_Year').value = GetNodeValue(result.getElementsByTagName("YearOfManufacture")[0]);
    }

    MoveToPageTwo();
}

function ExperianEnquiry_OnFailure(result, userContext, methodName) {
    MoveToPageTwo();
}

function GetNodeValue(xmlNode) {
    if (xmlNode != null) {
        return xmlNode.firstChild.nodeValue;
    }
    else {
        return "";
    }
}

function DropDownList_Make_SetSelectionValue(make) {    
    var makeOptions = document.getElementById('ctl00_ContentPlaceHolder_MainContent_DropDownList_Make').options;

    var isSuccessful = false;
    
    for (var index = 0; index < makeOptions.length; index++) {
    
        if (makeOptions[index].value == make.toUpperCase()) {
            makeOptions[index].selected = true;
            isSuccessful = true;
            break;
        }

    }

    return isSuccessful;
}

function DropDownList_Make_SetSelectionOther() {    
    var makeOptions = document.getElementById('ctl00_ContentPlaceHolder_MainContent_DropDownList_Make').options;
    makeOptions[makeOptions.length - 1].selected = true;
}

function ShowLoader() {
    document.getElementById('ctl00_ContentPlaceHolder_MainContent_Panel_SellYourCarFormPageOne').style.display = 'none';
    document.getElementById('loader').style.display = 'inline';    
}
function MoveToPageTwo() {
    document.getElementById('loader').style.display = 'none';
    document.getElementById('ctl00_ContentPlaceHolder_MainContent_Panel_SellYourCarFormPageTwo').style.display = 'inline';
}
