﻿$(document).ready(function() {

  var server_error_message = "<div class='server_error_message'>" 
                           + "Sorry, there was an error on the server.<br />" 
                           + "Please, try again later.</div>";

  $('#__left_menu li a').bind("click", function() {
    var rootParent = $(this).parents('#__left_menu');
    
    var item = $(this).parent('li');
    var subList = item.find('ul');
    
    if (subList.length == 0) {
      return true;
    }

    if (subList.css('display') == 'none') {
      rootParent.find('li').each(function() {
        $(this).removeClass('selected');
        $(this).find('ul').css('display', 'none');
      });
      item.addClass('selected');
      subList.css('display', 'block');
    } else {
      item.removeClass('selected');
      subList.css('display', 'none');
    }
    
    return false;
  });
  
  $('.__article_image_link').bind('click', function() {
    var fullImg = new Image();
    var img_data = $(this).attr('id').split('_');
    var img_id = img_data[0];
    var img_w = img_data[1];
    var img_h = img_data[2];
    fullImg.src = '/Content/images/articles/' + img_id + ".jpg";
    JustSoPicWindow(fullImg.src, img_w, img_h, '* * Click window to close * *', '#ffffff', 'hug image', '0');
    return false;
  });

  $('.__prod_image_link').bind('click', function() {
    var fullImg = new Image();
    var img_data = $(this).attr('id').split('_');
    var img_id = img_data[0];
    var img_w = img_data[1];
    var img_h = img_data[2];
    fullImg.src = '/Content/images/products/' + img_id + ".jpg";
    JustSoPicWindow(fullImg.src, img_w, img_h, '* * Click window to close * *', '#ffffff', 'hug image', '0');
    return false;
  });

  $('.__bike_image_link').bind('click', function() {
    var fullImg = new Image();
    var img_data = $(this).attr('id').split('_');
    var img_id = img_data[0];
    var img_w = img_data[1];
    var img_h = img_data[2];
    fullImg.src = '/Content/images/bikes/' + img_id + ".jpg";
    JustSoPicWindow(fullImg.src, img_w, img_h, '* * Click window to close * *', '#ffffff', 'hug image', '0');
    return false;
  });

  $('#__search_used_bikes_form').unbind('submit').bind('submit', function() {
    $('#__bike_details_wrapper').hide();
    $('#__search_results_container').empty();
    $('#__loading').show();
    $('#__search_results_container').show();
    var _form = $(this);
    var _url = _form.attr('action');
    var data = {
                  'manufacturer': _form.find('select[@name="manufacturer"]').val(),
                  'model': _form.find('select[@name="model"]').val()
               }
    $.get(_url, data, function(data) {
      $('#__loading').hide();
      if (data == "error500")
      {
        $('#__search_results_container').html(server_error_message);
        return false;
      }
      var _results = $($(data).find(".text")[0]);
      $('#__search_results_container').html(_results);
      $('#__search_results_container').find('a').each(function() {
        var _oldUrl = $(this).attr('href');
        $(this).attr('href', _oldUrl.replace('viewbike.asp?', '?'));
        $(this).unbind('click').bind('click', function() {
          var _url = $(this).attr('href') + '&m2rnd=' + Math.random();
          var data = {};
          $('#__search_results_container').hide();
          $('#__loading').show();
          $.get(_url, data, function(data) {
            var _details = $(data).find('table')[3];
            var img = $(_details).find('img[@name="viewimage_r1_c1"]');
            var src = img.attr('src');
            var srcParams = src.split('?')[1].split('&');
            var params = {};
            for (var i = 0; i < srcParams.length; i++)
            {
              var name = srcParams[i].split('=')[0];
              var value = srcParams[i].split('=')[1];
              params[name] = value;
            }
            PIC_ID = params["PIC_ID"];
            $(_details).find('a').each(function() {
              if ($(this).attr('href') == 'default.asp') {
                $(this).attr('href', 'http://' + _server + 'bikes/usedbikes/');
              }
              if ($(this).attr('href').indexOf('contact') > -1) {
                $(this).attr('href', 'http://' + _server + 'contact?' + $(this).attr('href').split('?')[1] + '#enq').attr('target', '_blank');
              }
            });
            $('#__loading').hide();
            $('#__bike_details_container').empty().html(_details);
            $('#__bike_details_wrapper').show();
            $('#__bike_details_wrapper')[0].scrollIntoView(true);
          });
          return false;
        });
      });
    });
    
    return false;
  });
  
  $('#__used_bikes_back_to_search').bind('click', function() {
    $('#__bike_details_container').empty();
    $('#__bike_details_wrapper').hide();
    $('#__search_results_container').show();
  });
  
  $('.route_form_container input[@name="saddr"]').bind('keyup', function() {
    var value = $(this).val();
    if (value.length > 0)
    {
      if (!$(this).is('.__changed'))
      {
        $(this).addClass('__changed');
      }
    }
    else
    {
      $(this).removeClass('__changed');
    }
  })
  .bind('focus', function() {
    if (!$(this).is('.__changed'))
    {
      $(this).css('color', '#ffffff');
      $(this).val('');
    }
  })
  .bind('blur', function() {
    if (!$(this).is('.__changed'))
    {
      $(this).css('color', '#999999');
      $(this).val('Start from...');
    }
  });
  
  $('#__plan_route_button').bind('click', function() { return $('input[@name="saddr"]').is('.__changed'); });
  
  $('#__enquiry_form').bind('submit', function() {
    
    var url = $(this).attr('action');
    var data = {};
    
    $(this).find('.__message_box').hide();
        
    $(this).find('.__enquiry_info_input').each(function() {
      data[$(this).attr("name")] = $(this).val();
    });
    
    $("#__loading").show();
    $.getJSON(url, data, function(data) {
      $("#__loading").hide();
      var msgColor = '';
      switch (parseInt(data.Value))
      {
        case 0: { msgColor = '#ffffff'; break; }
        default: { msgColor = '#ff0000'; break; }
      }
      
      $('#__message_box_' + data.Value).css('color', msgColor).html(data.Text).show();
    });
    
    return false;
  });
  
  $('#__financequote_form').bind('submit', function() {
    
    var url = $(this).attr('action');
    var data = {};
    
    $(this).find('.__message_box').hide();

    $(this).find('input,select,textarea').each(function() {
      data[$(this).attr("name")] = $(this).val();
    });
    
    $("#__loading").show();
    $.getJSON(url, data, function(data) {
      $("#__loading").hide();
      var msgColor = '';
      switch (parseInt(data.Value))
      {
        case 0: { msgColor = '#ffffff'; break; }
        default: { msgColor = '#ff0000'; break; }
      }
      
      $('#__message_box_' + data.Value).css('color', msgColor).html(data.Text).show();
    });
    
    return false;
  });
  
  $('.__bike_image_swapper').bind('mouseover', function() {
    var id = $(this).attr('id');
    $('.__large_image').hide();
    $('#__large_image_' + id).show();
  });
  
  $("input[@name='quantity']").bind('keyup', function() {
    if ($(this).val() == 0)
    {
      $(this).val(1);
    }
  });

  $('.__remove_basket_item_all').bind('click', function() {
    return confirm('Do you really want to remove all items of this product from your order?');
  });
  
  $('input[@name="clear"]').bind('click', function() {
    return confirm('Do you really want to remove all items from your order?');
  });
  
  $('#__select_demobike').bind('change', function() {
    $(this).parents('form').submit();
  });

  var bindDeliverySelect = function () {
    $('#__delivery_select').bind('change', function() {
      var url = "http://" + _server + "shop/basket";
      var data = { "deliveryId": $(this).val() };
      $.post(url, data, function(data) {
        var tableFooter = $(data).find("#basket_table").find("tfoot");
        $(document).find("#basket_table").find("tfoot").html(tableFooter.html());
        bindDeliverySelect();
      });
    });
  }
  bindDeliverySelect();
  
  $('#__ub_manufacturer_select').bind('change', function() {
    var model_select = $("#__ub_model_select");
    var _this = $(this);
    var all_option = $('<option value="">Any Model</option>');
    var loading_option = $('<option value="">Loading...</option>');
    var man = _this.val();
    model_select.empty();
    loading_option.appendTo(model_select);
    if (man == "") {
      model_select.empty();
      all_option.appendTo(model_select);
    }
    else
    {
      var url = "http://" + _server + "bikes/PopulateUsedBikes";
      $.getJSON(url, { "name" : man }, function(data) {
        model_select.empty();
        all_option.appendTo(model_select);
        for (var i = 0; i < data.length; i++)
        {
          var option = $('<option value="' + data[i].Value + '">' + data[i].Text + '</option>');
          option.appendTo(model_select);
        }
      });
    }
  });

});

