var QuoteDefaultText = [
  'How should we address you?',
  'Contact phone or email address.',
  'Street, City / ZIP / Hotel / Airport Name / etc',
  'Please enter number of hours required.'
];

function MaskResize() {
  if ($('MaskDiv').css('display')!='none') {
    var height = $(window).height();
    var width  = $(window).width();
    if ($(document).width() > width) width = $(document).width();
    if ($(document).height() > height) height = $(document).height();
    $('#MaskDiv').css({'width':width,'height':height});
  }
}

function ResetQuoteName(){
  $('#QuoteName').val(QuoteDefaultText[0]);
  $('#QuoteName').css({'color':'#888'});
}

function ResetQuoteContact(){
  $('#QuoteContact').val(QuoteDefaultText[1]);
  $('#QuoteContact').css({'color':'#888'});
}

function ResetQuoteService(){
  $('#QuoteService').val('1');
  $('#QuotePanel').css({'height':250});
}

function ResetQuotePickup(){
  $('#QuotePickup').val(QuoteDefaultText[2]);
  $('#QuotePickup').css({'color':'#888'});
  $('#QuotePickupRow').show();
}

function ResetQuoteDropoff(){
  $('#QuoteDropoff').val(QuoteDefaultText[2]);
  $('#QuoteDropoff').css({'color':'#888'});
  $('#QuoteDropoffRow').show();
}

function ResetQuoteHour(){
  $('#QuoteHour').val(QuoteDefaultText[3]);
  $('#QuoteHour').css({'color':'#888'});
  $('#QuoteHourRow').hide();
}

function ResetQuoteVehicle(){
  $('#QuoteVehicle').val('1');
}

function QuoteServiceChange(){
  var val = $('#QuoteService').val();
  if (val == '3') {
     $('#QuoteDropoffRow').hide();
     $('#QuotePickupRow').hide();
     $('#QuoteHourRow').show();
     $('#QuotePanel').css({'height':225});
  } else {
     $('#QuoteDropoffRow').show();
     $('#QuotePickupRow').show();
     $('#QuoteHourRow').hide();
     $('#QuotePanel').css({'height':250});
  }
}

function ShowQuoteForm(){
  /* reset the mask to zero width and height */
  $('#MaskDiv').css({'width':0,'height':0});
  /* measure the current width and height */
  var height = $(window).height();
  var width  = $(window).width();
  if ($(document).width() > width) width = $(document).width();
  if ($(document).height() > height) height = $(document).height();
  $('#MaskDiv').css({'width':width,'height':height});
  if ($('#MaskDiv').css('display')=='none') {
    $('#MaskDiv').fadeTo(400,0.6,function(){
      ResetQuoteName();
      ResetQuoteContact();
      ResetQuoteService();
      ResetQuotePickup();
      ResetQuoteDropoff();
      ResetQuoteHour();
      ResetQuoteVehicle();
      $('#QuotePanel').css({'left':($(window).width()-$('#QuotePanel').width())/2,
        'top':($(window).height()-$('#QuotePanel').height())/2});
      $('#QuotePanel').show();
    });
  }
}

$(document).ready(function(){
  /* setup the image */
  $('#QuoteImage').mouseover(function(e){e.target.style.cursor='pointer';});
  $('#QuoteImage').click(function(e){e.preventDefault();ShowQuoteForm();});

  /* setup mask on window resize */
  $(window).resize(MaskResize);

  /* setup quote form close action */
  $('#QuoteClose').click(function(){
    $('#QuotePanel').hide();
    $('#MaskDiv').hide();
  });

  /* setup all input fields action when focus and blur */
  $('input').focus(function(e){
    var id = e.target.id;
    var change = false;
    switch (id) {
      case 'QuoteName':    if (e.target.value!=QuoteDefaultText[0]) {change=true;} break;
      case 'QuoteContact': if (e.target.value!=QuoteDefaultText[1]) {change=true;} break;
      case 'QuoteDropoff': 
      case 'QuotePickup':  if (e.target.value!=QuoteDefaultText[2]) {change=true;} break;
      case 'QuoteHour':    if (e.target.value!=QuoteDefaultText[3]) {change=true;} break;
      default:
    }
    if (!change) {
      e.target.value = '';
      e.target.style.color = '#000';
    }
  });

  $('input').blur(function(e){
    var id = e.target.id;
    var text   = '';
    switch (id) {
      case 'QuoteName':    if (e.target.value==QuoteDefaultText[0] || jQuery.trim(e.target.value)=='') {text=QuoteDefaultText[0]} break;
      case 'QuoteContact': if (e.target.value==QuoteDefaultText[1] || jQuery.trim(e.target.value)=='') {text=QuoteDefaultText[1]} break;
      case 'QuoteDropoff': 
      case 'QuotePickup':  if (e.target.value==QuoteDefaultText[2] || jQuery.trim(e.target.value)=='') {text=QuoteDefaultText[2]} break;
      case 'QuoteHour':    if (e.target.value==QuoteDefaultText[3] || jQuery.trim(e.target.value)=='') {text=QuoteDefaultText[3]} break;
      default:
    }
    if (text != '') {
      e.target.style.color = '#888';
      e.target.value = text;
    }
  });

  /* setup quote form service selection */
  $('#QuoteService').change(QuoteServiceChange);

  /* setup quote form send action */
  $('#QuoteSend').click(function(){
    /* validate the form */
    var valid = true;
    if ($('#QuoteName').val()==QuoteDefaultText[0]) valid = false;
    if ($('#QuoteContact').val()==QuoteDefaultText[1]) valid = false;
    if ($('#QuoteService').val()==3) {
      if ($('#QuoteHour').val()==QuoteDefaultText[3]) valid = false;
    } else {
      if ($('#QuotePickup').val()==QuoteDefaultText[2]) valid = false;
      if ($('#QuoteDropoff').val()==QuoteDefaultText[2]) valid = false;
    }
    if (!valid) {
      alert('Please fills out all fields and submit the form again.');
      return;
    }

    $('#QuotePanel').hide();
    $('#LoadingDiv').css({'left':($(window).width()-$('#LoadingDiv').width())/2,
      'top':($(window).height()-$('#LoadingDiv').height())/2});
    $('#LoadingDiv').show();
    $.ajax({
      url:      '/php/quote.php',
      type:     'post',
      cash:     false,
      dataType: 'json',
      data:     {
         name:    $('#QuoteName').val(),
         contact: $('#QuoteContact').val(),
         service: $('#QuoteService').val(),
         pickup:  $('#QuotePickup').val(),
         dropoff: $('#QuoteDropoff').val(),
         hour:    $('#QuoteHour').val(),
         car:     $('#QuoteVehicle').val()
      },
      success:   function(data, status, req) {
        if (data.success) {
          alert('Your quote request has been sent. Our representatives will contact you as soon as possible. Thank you for your interest.');
          $('#LoadingDiv').hide();
          $('#MaskDiv').hide();
        } else {
          alert('We are having problems sending your quote request to our representatives. Please try again later or call us for an immediate quote. Thank you for your patience.');
          $('#LoadingDiv').hide();
          $('#MaskDiv').hide();
        }
      },
      error:     function(req, errString, err) {
          alert('We are having problems sending your quote request to our representatives. Please try again later or call us for an immediate quote. Thank you for your patience.');
          $('#LoadingDiv').hide();
          $('#MaskDiv').hide();
      }
    });
  });
});

