//JavaScript file for Used Car results
if (window.location.hostname.indexOf('dev') == -1 && window.location.hostname.indexOf('uat') == -1) {
  var img_url = 'http://cdn.perrys.co.uk/d/perrys/images';
} else {
  var img_url = 'http://'+window.location.hostname+'/images';
}

function showCar(car_id)
{
  if ($('#dlrUsedDls').length > 0) {
    addClass(document.getElementById('resDetails'),'hideEle',false);
    addClass(document.getElementById('dlrUsedDls'),'hideEle',true);
  }
  // remove all "current" classes from divs so we can set a new "current" car
  if(window.$)
  {
    // let's see if it'll let me de-activate all "resWrapper" classes
    $('.resWrapper').removeClass('current');
    
    // now add the "current" class to the one we want
    var carDiv = document.getElementById('car_' + car_id);
    addClass(carDiv, 'current', true);
  }
  
  // will it let me use jQuery as well?
  if(window.$)
  {
    // yes it will, so let's do an AJAX call
    urchinTracker("/tab-detail");
    $.ajax({
      url: '/ajax-html-used-car.php',
      type: 'GET',
      dataType: 'html',
      data: 'car_id_F=' + car_id,
      success: function(html) {
        $('#resDetails').html(html);
        if($('#main').hasClass('resSml'))
        {
          sizePanels('resSml');
        }
        else
        {
          sizePanels('resMed');
        }
      }
    });
  }
  var loading_html = '<img src="'+img_url+'/ajax-loading.gif"> Car Details Loading...';
  document.getElementById('resDetails').innerHTML = loading_html;
  //sizePanels('resMed');
  /*if($('#main').hasClass('resSml'))
  {
    sizePanels('resSml');
  }
  else
  {
    sizePanels('resMed');
  }*/

  if (slidesIntvId) {
    clearInterval(slidesIntvId);
    slidesIntvId = null;
  }
  return false;
}

function showCarEmTab(car_id)
{
  // remove all "current" classes from divs so we can set a new "current" car
  if(window.$)
  {
    // let's see if it'll let me de-activate all "resWrapper" classes
    $('.resWrapper').removeClass('current');
    
    // now add the "current" class to the one we want
    var carDiv = document.getElementById('car_' + car_id);
    addClass(carDiv, 'current', true);
  }
  
  // will it let me use jQuery as well?
  if(window.$)
  {
    urchinTracker("/tab-detail");
    // yes it will, so let's do an AJAX call
    $.ajax({
      url: '/ajax-html-used-car.php',
      type: 'GET',
      dataType: 'html',
      data: 'car_id_F=' + car_id + '&emdlr=1',
      success: function(html) {
        $('#resDetails').html(html);
      }
    });
  }
  var loading_html = '<img src="'+img_url+'/ajax-loading.gif"> Car Details Loading...';
  document.getElementById('resDetails').innerHTML = loading_html;
  sizePanels('resMed');
  if (slidesIntvId) {
    clearInterval(slidesIntvId);
    slidesIntvId = null;
  }

}

function closeCar()
{
  // remove all "current" classes from divs as we now don't have a current car
  if(window.$)
  {
    $('.resWrapper').removeClass('current');
    if ($('#dlrUsedDls').length > 0) {
      addClass(document.getElementById('resDetails'),'hideEle',true);
      addClass(document.getElementById('dlrUsedDls'),'hideEle',false);
      addClass(document.getElementById('main'),'resMed',false);
      addClass(document.getElementById('main'),'resSeo',true);
    } else {
      sizePanels('resNorm');
    }
  }
}

// function to navigate through pages of used cars
function goToPage(page_number,page_url)
{
  closeCar();
  // find the first_car value
  var first_car = ((page_number - 1) * 12) + 1;
  $('#searchForm input[name=first_car_F]').val(first_car);
  $('#searchForm input[name=current_url_F]').val(page_url);
  
  // will it let me use jQuery?
  if(window.$)
  {
    // yes, excellent, let's display a "please wait" message
    var loading_html = '<img src="'+img_url+'/ajax-loading.gif"> Car Details Loading...';
    document.getElementById('resultsDetails').innerHTML = loading_html;  
    //$('#resultsDetails').html(loading_html);
    urchinTracker("/tab-search"); 
    $.ajax({
      url: '/ajax-html-used-car-results.php',
      type: 'GET',
      dataType: 'html',
      data: go_sfm.serialize('#searchForm'),
      success: function(html) {
        //$('#main').html(html);
        $('#resDetails').remove();
        $('#results').replaceWith(html);
        //$('#results > #resDetails').remove();
      }
    });
  }
  return false;
}

// function to navigate through pages of new cars
function newCarsNavigation(first_car,cap_man,cap_model,cap_model_desc,cs_man,cs_model,low_em_deriv,bodtyp,trans,doors,co,fuel,eng,vehtype,seobod,dlrlink,cururl)
{
  if(window.$)
  {
    var loading_html = '<img src="'+img_url+'/ajax-loading.gif"> Loading Results...';
    $('#newCars').html(loading_html);
    
    urchinTracker("/tab-new-car-search");
    $.ajax({
      url: '/ajax-html-new-cars.php',
      type: 'GET',
      dataType: 'html',
      data: 'ajax=true&first_car_F=' + first_car + '&cap_manufacturer_F=' + cap_man + '&cap_model_F=' + cap_model + '&cap_model_desc_F=' + cap_model_desc + '&cs_manufacturer_F=' + cs_man + '&cs_model_F=' + cs_model + '&low_emission_derivative=' + low_em_deriv + '&body_F=' + bodtyp + '&transmission_F=' + trans + '&door_count_F=' + doors + '&max_co2_emissions_F=' + co + '&fuel_F=' + fuel + '&from_engine_size_F=' + eng + '&vehicle_type_F=' + vehtype + '&seo_body_type_F=' + seobod + '&dlr_link_F=' + dlrlink + '&current_url_F=' + cururl,
      success: function(html) {
        $('#newCars').html(html);
      }
    });
  }
  return false;
}

// function to navigate through pages of hot deals
function hotDealsNavigation(first_car,cap_man,cap_model,cs_man,cs_mod,bodtyp,adsty,vehtyp,drcnt,trans,fuel,fromeng,toeng,capder,led,seobod,newused,dlrid,dlrlink,advcount,cururl)
{
  if(window.$)
  {
    var loading_html = '<img src="'+img_url+'/ajax-loading.gif"> Loading Results...';
    $('#hotDeals').html(loading_html);
    
    urchinTracker("/tab-hot-deal-search");
    $.ajax({
      url: '/ajax-html-hot-deals.php',
      type: 'GET',
      dataType: 'html',
      data: 'ajax=true&first_car_F=' + first_car + '&cap_manufacturer_F=' + cap_man + '&cap_model_F=' + cap_model + '&cs_manufacturer_F=' + cs_man + '&cs_model_F=' + cs_mod + '&body_F=' + bodtyp + '&advert_style_F=' + adsty + '&vehicle_type_F=' + vehtyp + '&door_count_F=' + drcnt + '&transmission_F=' + trans + '&fuel_F=' + fuel + '&from_engine_size_F=' + fromeng + '&to_engine_size_F=' + toeng + '&cap_derivative_F=' + capder + '&low_emission_derivative_F=' + led + '&seo_body_type_F=' + seobod + '&new_used_F=' + newused + '&dealer_id_F=' + dlrid + '&dlr_link_F=' + dlrlink + '&advert_count_F=' + advcount + '&current_url_F=' + cururl,
      success: function(html) {
        $('#hotDeals').html(html);
        hideTables();
        setScrappageBtns();
      }
    });
  }
  return false;
}

function calculate_used_car_costs()
{
  if($('#cost_mileage').val() == "")
  {
    $('#calcResult').html("Select Annual Mileage");
  }
  else
  {
    var miles = $('#cost_mileage').val();
    var price_per_gallon = litres_per_gallon * fuel_per_litre;
    var price_per_mile = round_number(price_per_gallon / miles_per_gallon);

    if($('#calc_weekly').attr('checked') == true)
    {
      var miles_per_week = miles / 52;
      var weekly_price = round_number((price_per_mile * miles_per_week) / 100);

      $('#calcResult').html(price_per_mile + 'p per mile<br/>&pound;' + weekly_price + ' per week');
    }
    else if($('#calc_annual').attr('checked') == true)
    {
      var annual_price = round_number((price_per_mile * miles) / 100);

      $('#calcResult').html(price_per_mile + 'p per mile<br/>&pound;' + annual_price + ' per year');
    }
  }

  return false;
}

function round_number(num, dec)
{
  var result = Math.round(num * 100)/100;
  return result;
}

function get_finance_illustrations(months, deposit, annual_miles, used_car_id, first_run)
{
  if(first_run != true)
  {
    var loading_html = '<img src="'+img_url+'/ajax-loading.gif" />Updating Finance Illustrations - please wait...';
    $('#finance_quick_results').html(loading_html);
  }

  $.ajax({
    url: '/ajax-soap-finance-illustrations.php',
    type: 'GET',
    dataType: 'html',
    data: 'months=' + months + '&deposit=' + deposit + '&annual_miles=' + annual_miles + '&car_id=' + used_car_id,
    success: function(html) {
      $('#finance_quick_results').replaceWith(html);
      calculate_typical_apr();
    }
  });

  // amend the overlay finance values
  $('#overlay_finance_period option').each(function(i) {
    if(this.value == months)
    {
      this.selected = true;
    }
    else
    {
      this.selected = false;
    }
  });

  $('#overlay_finance_deposit').val(deposit);

  $('#overlay_finance_mileage option').each(function(i) {
    if(this.value == annual_miles)
    {
      this.selected = true;
    }
    else
    {
      this.selected = false;
    }
  });

  return false;
}

function show_finance_details(finance_type, used_car_id, get_used_data)
{
  // run a check for IE6
  var isIE6 = navigator.userAgent.toLowerCase().indexOf('msie 6') != -1;

  if(screen.width <= 1024)
  {
    $('#popCW').css('margin-left','150px');
    $('#popCW').css('height','500px');
  }
  else if(screen.height <= 960)
  {
    $('#popCW').css('margin-left','200px');
    $('#popCW').css('height','600px');
  }
  else
  {
    $('#popCW').css('height','700px');
  }

  if(isIE6)
  {
    $('#popCW').css('margin-left','150px');

    toggle_select_boxes_for_ie6('hide');
  }

  $('#overlay_car_id').val(used_car_id);
  $('#financeOverlay').addClass('show');
  $('#finance_contact').remove();
  $('#finance_details').removeClass('hide');

  if(get_used_data)
  {
    $('#cwHead').html('');

    $.ajax({
      url: '/ajax-html-get-used-car-details.php',
      type: 'GET',
      dataType: 'html',
      data: 'car_id=' + used_car_id,
      success: function(html) {
        $('#cwHead').replaceWith(html);
      }
    });
  }

//  $('#finance_details').addClass('show');
  var loading_html = '<tr><td style="background:#ffffff; width:400px"><img src="'+img_url+'/ajax-loading.gif" /> Loading Finance Details - please wait...</td></tr>';
  $('#finance_details').html(loading_html);

  $.ajax({
    url: '/ajax-soap-finance-details.php',
    type: 'GET',
    dataType: 'html',
    data: 'finance_type=' + finance_type + '&car_id=' + used_car_id,
    success: function(html) {
      $('#finance_details').replaceWith(html);
    }
  });
}

function update_finance_details()
{
  var loading_html = '<tr><td style="background:#ffffff; width:400px;"><img src="'+img_url+'/ajax-loading.gif" /> Updating Finance Details - please wait...</td></tr>';
  $('#finance_details').html(loading_html);

  var finance_type = 'HP';

  $('.fadeOut').each(function(i){
    if(this.hasClass('HP'))
    {
      finance_type = 'PCP';
    }
    else
    {
      finance_type = 'HP';
    }
    return;
  });

  var months = $('#overlay_finance_period').val();
  var deposit = $('#overlay_finance_deposit').val();
  var annual_miles = $('#overlay_finance_mileage').val();
  var used_car_id = $('#overlay_car_id').val();

  $('#finance_contact').remove();
  $('#finance_details').removeClass('hide');

  $.ajax({
    url: '/ajax-soap-finance-details.php',
    type: 'GET',
    dataType: 'html',
    data: 'finance_type=' + finance_type + '&car_id=' + used_car_id + '&months=' + months + '&deposit=' + deposit + '&annual_miles=' + annual_miles,
    success: function(html) {
      $('#finance_details').replaceWith(html);
    }
  });

  // amend the illustration terms form
  $('#finance_period option').each(function(i) {
    if(this.value == months)
    {
      this.selected = true;
    }
    else
    {
      this.selected = false;
    }
  });

  $('#finance_deposit').val(deposit);

  $('#finance_mileage option').each(function(i) {
    if(this.value == annual_miles)
    {
      this.selected = true;
    }
    else
    {
      this.selected = false;
    }
  });

  if(document.getElementById('resDetails') != null)
  {
    get_finance_illustrations(months, deposit, annual_miles, used_car_id);
  }
  else
  {
    update_finance_illustrations();
  }

  return false;
}

function highlight_finance(highlight)
{
  if(highlight == "HP")
  {
    $('.HP').removeClass('fadeOut');
    $('.PCP').addClass('fadeOut');
  }
  else if(highlight == "PCP")
  {
    $('.HP').addClass('fadeOut');
    $('.PCP').removeClass('fadeOut');
  }
}

function toggle_finance_listing(car_id)
{
  if($('#car_' + car_id).hasClass('open'))
  {
    $('#car_' + car_id).removeClass('open');
    calculate_typical_apr();
  }
  else
  {
    $('#car_' + car_id).addClass('open');

    var loading_html = '<tbody><tr><td><img src="'+img_url+'/ajax-loading.gif" /> Loading Finance Illustration - please wait...</td></tr></tbody>';
    $('#finance_' + car_id).html(loading_html);

    var months = $('#finance_period').val();
    var deposit = $('#finance_deposit').val();
    var mileage = $('#finance_mileage').val();

    $.ajax({
      url: '/ajax-soap-finance-illustrations.php',
      type: 'GET',
      dataType: 'html',
      data: 'months=' + months + '&deposit=' + deposit + '&annual_miles=' + mileage + '&car_id=' + car_id + '&list=1',
      success: function(html) {
        $('#finance_' + car_id).replaceWith(html);
        calculate_typical_apr();
      }
    });
  }
}

function update_finance_illustrations()
{
  var months = $('#finance_period').val();
  var deposit = $('#finance_deposit').val();
  var mileage = $('#finance_mileage').val();

  $('.open').each(function(i){
    var car_id = this.id.substring(4);
    var loading_html = '<tbody><tr><td><img src="'+img_url+'/ajax-loading.gif" /> Loading Finance Illustration - please wait...</td></tr></tbody>';
    $('#finance_' + car_id).html(loading_html);

    $.ajax({
      url: '/ajax-soap-finance-illustrations.php',
      type: 'GET',
      dataType: 'html',
      data: 'months=' + months + '&deposit=' + deposit + '&annual_miles=' + mileage + '&car_id=' + car_id + '&list=1',
      success: function(html) {
        $('#finance_' + car_id).replaceWith(html);
      }
    });
  });

  return false;
}

function sort_number(a, b)
{
  return a - b;
}

function calculate_typical_apr()
{
  var apr_array = new Array();

  $('.open .apr').each(function(i){
    apr_array.push(this.value);
  });

  $('#finance_quick_results .apr').each(function(i){
    apr_array.push(this.value);
  });

  if(apr_array.length > 0)
  {
    var sorted_apr_array = apr_array.sort(sort_number);
    var index = Math.ceil(sorted_apr_array.length * (2/3));

    $('#typicalAPR').html(sorted_apr_array[index - 1] + '% APR Typical');
  }
  else
  {
    $('#typicalAPR').html('');
  }
}

function toggle_finance_contact(finance_type)
{
  if(finance_type == 'HP')
  {
    $('#finance_type').val('HP');

    $('#finance_contact .HP').each(function(i){
      $(this).removeClass('hide');
    });

    $('#finance_contact .PCP').each(function(i){
      $(this).addClass('hide');
    });
  }
  else
  {
    $('#finance_type').val('PCP');

    $('#finance_contact .PCP').each(function(i){
      $(this).removeClass('hide');
    });

    $('#finance_contact .HP').each(function(i){
      $(this).addClass('hide');
    });
  }

  $('#finance_details').toggleClass('hide');
  $('#finance_contact').toggleClass('hide');
}

function toggle_select_boxes_for_ie6(show_hide)
{
  var isIE6 = navigator.userAgent.toLowerCase().indexOf('msie 6') != -1;

  if(isIE6)
  {
    if(show_hide == 'show')
    {
      $('#finance_period').css('display','inline');
      $('#finance_mileage').css('display','inline');
    }
    else
    {
      $('#finance_period').css('display','none');
      $('#finance_mileage').css('display','none');
    }
  }
}
