﻿function closeLargeImage()
{
    var divImgLarge = $get('divImgLarge');
    hide(divImgLarge);
}

function showLargeImage()
{
    var imgLarge = $get('imgLarge');
    imgLarge.src = String.format("{0}new/cars/images/full/{1}.aspx", applicationPath, carRef); 
    imgLarge.alt = carDet;
    
    var divImgLarge = $get('divImgLarge');
    show(divImgLarge);
}
        
function showSpecifications()
{
    showTab('lnkSpecifications', 'divSpecifications');
    hideTab('lnkGallery', 'divGallery');
    hideTab('lnkReviews', 'divReviews');
//    hideTab('lnkVideo', 'divVideo');
}

function showGallery()
{
    if (isWhatCarAvailable)
        showTab('lnkGallery', 'divGallery');
    hideTab('lnkSpecifications', 'divSpecifications');
    hideTab('lnkReviews', 'divReviews');
//    hideTab('lnkVideo', 'divVideo');
    
    getWhatCarReport();
}

function showReviews()
{
    if (isWhatCarAvailable)
        showTab('lnkReviews', 'divReviews');
    hideTab('lnkSpecifications', 'divSpecifications');
    hideTab('lnkGallery', 'divGallery');
//    hideTab('lnkVideo', 'divVideo');
    
    getWhatCarReport();
}

//function showVideo()
//{
//    if(isWhatCarAvailable)
//        showTab('lnkVideo', 'divVideo');
//    hideTab('lnkSpecifications', 'divSpecifications');
//    hideTab('lnkGallery', 'divGallery');
//    hideTab('lnkReviews', 'divReviews');

//    getWhatCarVideoURL();
//}

function showEmail()
{
    showTab('lnkEmail', 'divEmail');
    hideTab('lnkPhone', 'divPhone');
    hideTab('lnkCallback', 'divCallback');
}

function showPhone()
{
    hideTab('lnkEmail', 'divEmail');
    showTab('lnkPhone', 'divPhone');
    hideTab('lnkCallback', 'divCallback');
}

function showCallback()
{
    hideTab('lnkEmail', 'divEmail');
    hideTab('lnkPhone', 'divPhone');
    showTab('lnkCallback', 'divCallback');
}

var cashPrice = 0;
var carRef = '';
var sessionId = '';
var isWhatCarAvailable = false;
var carFound = true;
var carDet = '';
        
function getNewCarQuoteLookups()
{
    Carselect.Services.CarService.GetNewCarQuoteLookups(onCompletedGetNewCarQuoteLookups);
}

function onCompletedGetNewCarQuoteLookups(results)
{
    var selDeposit = $get('selDeposit');
    var selTerm = $get('selTerm');
    var selMileage = $get('selMileage');

    for (i = 0; i<results.Mileages.length; i++)
    {
        addOptionSelected(selMileage, results.Mileages[i].Name, results.Mileages[i].Value, results.Mileages[i].IsDefault);
    }
    for (i = 0; i<results.Terms.length; i++)
    {
        addOptionSelected(selTerm, results.Terms[i].Name + " months", results.Terms[i].Value, results.Terms[i].IsDefault);
    }
    for (i = 0; i<results.DepositRates.length; i++)
    {
        addOptionSelected(selDeposit, results.DepositRates[i].Name + "%", results.DepositRates[i].Value, results.DepositRates[i].IsDefault);
    }
    
    calculateQuote();
}

function recalculateQuote()
{
    var divWait = $get('divWaitQuote');
    showWaiting(divWait);
    
    calculateQuote();
}

function onCompletedCalculateQuote(quote)
{
    var tbl = $get('tblQuote');
    
    var cell = tbl.rows[0].cells[1].innerHTML = "£" + String.format("{0:n}", cashPrice);
    cell = tbl.rows[1].cells[1].innerHTML = "£" + String.format("{0:n}", quote.Credit);
    cell = tbl.rows[2].cells[1].innerHTML = "£" + String.format("{0:n}", quote.Deposit);
    cell = tbl.rows[3].cells[0].innerHTML = String.format("{0} Monthly payments", quote.Term);
    cell = tbl.rows[3].cells[1].innerHTML = "£" + String.format("{0:n}", quote.Rental);
    cell = tbl.rows[4].cells[1].innerHTML = "£" + String.format("{0:n}", quote.RV);
    cell = tbl.rows[5].cells[1].innerHTML = "£" + String.format("{0:n}", quote.Total);
    cell = tbl.rows[6].cells[0].innerHTML = String.format("<b>{0}% APR</b> (typical)", addCommas(quote.APR));  
    
    var spProduct = $get('spProduct');
    spProduct.innerHTML = quote.Product; 
    
    var divWait = $get('divWaitQuote');
    hide(divWait);  
}

function calculateQuote()
{ 
    var selDeposit = $get('selDeposit');
    var selTerm = $get('selTerm');
    var selMileage = $get('selMileage');

    Carselect.Services.CarService.GetNewCarQuote(carRef, cashPrice, parseInt(selTerm.value), parseInt(selMileage.value), parseFloat(selDeposit.value), onCompletedCalculateQuote);
}

function saveNoQuote()
{
    Carselect.Services.CarService.SaveNoQuote(carRef, cashPrice, false); 
}

var reportLoaded = false;
function getWhatCarReport()
{
    if (!reportLoaded)
    {
        var divWait = $get('divWait');
        showWaiting(divWait);
    
        Carselect.Services.CarService.GetFullWhatCarReview(carRef, onCompletedGetFullWhatCarReview);
    }
}

//function getWhatCarVideoURL()
//{
//    Carselect.Services.CarService.GetWhatCarVideoURL(carRef, onCompletedGetWhatCarVideoURL);
//}

//function onCompletedGetWhatCarVideoURL(url)
//{       
//        var mediaPlayer = $get('MediaPlayer');
//        mediaPlayer.url = url;
////        mediaPlayer.url = "mms://a1211.v38076a.c38076.g.vm.akamaistream.net/7/1211/38076/v0001/haymarket.akamai1.streamuk.com/wmv/WhatCar/Alfa_Romeo/Alfa_Romeo_Mito_512kws.wmv";
//}

function showLargeGalleryItem(img)
{
    var imgLarge = $get('imgLarge');
    imgLarge.src = img; 
    imgLarge.alt = carDet;
    
    var divImgLarge = $get('divImgLarge');
    show(divImgLarge);
}

function onCompletedGetFullWhatCarReview(report)
{
    var divWait = $get('divWait');
    hide(divWait);
    
    if (report)
    {
        var h3Overall = $get('h3Overall');
        h3Overall.innerHTML = String.format("Overall rating <img src='/images/wc_small_{0}.gif'>", report.overallBlobField);
        
        var pFor = $get('pFor');
        pFor.innerHTML = report.verdictForField;
        
        var pAgainst = $get('pAgainst');
        pAgainst.innerHTML = report.verdictAgainstField;
        
        var h3Performance = $get('h3Performance');
        h3Performance.innerHTML = String.format("{2} <img src='/images/wc_small_{0}.gif'>", (report.performanceBlobField == null ? "0" : report.performanceBlobField), report.performanceTitleField);
        var pPerformance = $get('pPerformance');
        pPerformance.innerHTML = report.performanceCopyField;

        var h3Handling = $get('h3Handling');
        h3Handling.innerHTML = String.format("{2} <img src='/images/wc_small_{0}.gif'>", (report.handlingBlobField == null ? "0" : report.handlingBlobField), report.handlingTitleField);
        var pHandling = $get('pHandling');
        pHandling.innerHTML = report.handlingCopyField;

        var h3Refinement = $get('h3Refinement');
        h3Refinement.innerHTML = String.format("{2} <img src='/images/wc_small_{0}.gif'>", (report.refinementBlobField == null ? "0" : report.refinementBlobField), report.refinementTitleField);
        var pRefinement = $get('pRefinement');
        pRefinement.innerHTML = report.refinementCopyField;
        
        var h3Buying = $get('h3Buying');
        h3Buying.innerHTML = String.format("{2} <img src='/images/wc_small_{0}.gif'>", (report.buyingBlobField == null ? "0" : report.buyingBlobField), report.buyingTitleField);
        var pBuying = $get('pBuying');
        pBuying.innerHTML = report.buyingCopyField;
        
        var h3Quality = $get('h3Quality');
        h3Quality.innerHTML = String.format("{2} <img src='/images/wc_small_{0}.gif'>", (report.qualityBlobField == null ? "0" : report.qualityBlobField), report.qualityTitleField);
        var pQuality = $get('pQuality');
        pQuality.innerHTML = report.qualityCopyField;
        
        var h3Safety = $get('h3Safety');
        h3Safety.innerHTML = String.format("{2} <img src='/images/wc_small_{0}.gif'>", (report.safetySecurityBlobField == null ? "0" : report.safetySecurityBlobField), report.safetySecurityTitleField);
        var pSafety = $get('pSafety');
        pSafety.innerHTML = report.safetySecurityCopyField;
        
        var h3BehindWheel = $get('h3BehindWheel');
        h3BehindWheel.innerHTML = String.format("{2} <img src='/images/wc_small_{0}.gif'>", (report.behindheWheelBlobField == null ? "0" : report.behindheWheelBlobField), report.behindTheWheelTitleField);
        var pBehindWheel = $get('pBehindWheel');
        pBehindWheel.innerHTML = report.behindTheWheelCopyField;
        
        var h3Space = $get('h3Space');
        h3Space.innerHTML = String.format("{2} <img src='/images/wc_small_{0}.gif'>", (report.spaceAndPracticalityBlobField == null ? "0" : report.spaceAndPracticalityBlobField), report.spaceAndPracticalityTitleField);
        var pSpace = $get('pSpace');
        pSpace.innerHTML = report.spaceAndPracticalityCopyField;
        
        var h3Equipment = $get('h3Equipment');
        h3Equipment.innerHTML = String.format("{2} <img src='/images/wc_small_{0}.gif'>", (report.equipmentBlobField == null ? "0" : report.equipmentBlobField), report.equipmentTitleField);
        var pEquipment = $get('pEquipment');
        pEquipment.innerHTML = report.equipmentCopyField;
        
        var divImages = $get('divImages');
        var buff = new StringBuffer();    
        for (i=0; i<report.photoGalleryField.length; i++)
        {
            buff.append(String.format("<a href=\"javascript:showLargeGalleryItem('{0}')\"><img width='120px' src='{1}'></a>", report.photoGalleryField[i].urlField, report.photoGalleryField[i].urlField));
        }
        divImages.innerHTML = buff.toString();
    }
    reportLoaded = true;
}

var canQuote = 0;

function setUpLinks()
{
    var imgMain = $get('imgMain');
    imgMain.src = String.format("{0}new/cars/images/large/{1}.aspx", applicationPath, carRef);
    imgMain.alt = carDet;
}

function setUpInitialPage()
{
    var lnkGallery = $get('lnkGallery');
    var lnkReviews = $get('lnkReviews');
    var divNoCar = $get('divNoCar');
    var middleDetailContent = $get('middleDetailContent');
    var leftDetailContent = $get('leftDetailContent');
    
    if (carFound)
    {
        if (isWhatCarAvailable)
        {
            show(lnkReviews);
            show(lnkGallery);
        }
        else
        {
            hide(lnkReviews);
            hide(lnkGallery);
        }
        
        setUpLinks();

        if (canQuote > 0)
            getNewCarQuoteLookups();
        else
            saveNoQuote();
    }
    else
    {
        show(divNoCar);
        hide(middleDetailContent);
        hide(leftDetailContent);
    }
}