window.form_factor = 'sedan';
window.form_color = 'red';
window.redir = false;
window.next_window = false;
window.prev_window = false;
window.cur_window = false;


function rand(min, max)
{
  if (max)
  {
    return Math.floor(Math.random() * (max - min + 1)) + min;
  }
  else
  {
    return Math.floor(Math.random() * (min + 1));
  }
}

function preloadImages()
{
  for (var i = 0; i < arguments.length; i++)
    jQuery("<img />").attr("src", arguments[i]).load(function(){
      $('#preload').append( $(this) );
    });
}

function getScrollLeft() {
  var scrOfX = 0;
  if (typeof(window.pageYOffset) == 'number')
  {
    //Netscape compliant
    scrOfX = window.pageXOffset;
  }
  else if (document.body && (document.body.scrollLeft || document.body.scrollTop))
  {
    //DOM compliant
    scrOfX = document.body.scrollLeft;
  }
  else if (document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop))
  {
    //IE6 standards compliant mode
    scrOfX = document.documentElement.scrollLeft;
  }

  return scrOfX;
}

function change_color(set_color)
{
  window.form_color = set_color;
  $('#color_change').removeClass('color_red color_green color_blue color_pesok color_gray').addClass('color_'+set_color);
  if (window.form_factor == 'sedan')
    $('#car').removeClass('sedan_red sedan_green sedan_blue sedan_pesok sedan_gray').addClass('sedan_'+set_color);
  else
    $('#car').removeClass('hatchback_red hatchback_green hatchback_blue hatchback_pesok hatchback_gray').addClass('hatchback_'+set_color);
  $('#art-logo').removeClass('art-logo_red art-logo_green art-logo_blue art-logo_pesok art-logo_gray').addClass('art-logo_'+set_color);
}

function fix_page_width()
{
  var qw = $('#car2').position();
  var window_width;

  if ($(window).width() < 1011)
    window_width = 1011
  else
    window_width = $(window).width();

  var right_side = window_width-(qw.left+380);
  $('#page').css({
    'width':(6780+right_side)+'px'
  });
}

$(document).ready(function()
{
  //preloadImages('/images/car/sedan_red.png', '/images/car/sedan_blue.png','/images/car/sedan_green.png','/images/car/sedan_pesok.png','/images/car/sedan_gray.png','/images/car/hatchback_red.png','/images/car/hatchback_blue.png','/images/car/hatchback_green.png','/images/car/hatchback_pesok.png','/images/car/hatchback_gray.png','/images/crash/white/0.png','/images/crash/white/1.png','/images/crash/white/2.png','/images/crash/white/3.png','/images/crash/white/4.png','/images/crash/white/5.png','/images/crash/white/6.png');

  var total_states = 5;
  var curr_state1 = 0;
  var curr_state2 = 3;
  var curr_offset = 0;
  var crash_state = 0;
  var crashed = 0;
  var crashed_p = 0;

  var browserName=navigator.userAgent;
  var safari_detected = 0;

  if (browserName.indexOf("Safari") != -1)
  {
    safari_detected = 1;
  }

  if (safari_detected)
  {
    var scroll_bounce = 0;
  }

  fix_page_width();
  $(window).resize(function(){
    fix_page_width();
  });
  
  $(window).bind('keydown',function(event){
    if (event.keyCode == 39)
    {
      $('div.nav-right > a').addClass('nav_active');
    }
    if (event.keyCode == 37)
    {
      $('div.nav-left > a').addClass('nav_active');
    }
  });
  $(window).bind('keyup',function(event){
    if (event.keyCode == 39 || event.keyCode == 37)
    {
      $('div.nav-buttons a').removeClass('nav_active');
    }
  });
  
  $('div.nav-left > a').bind('click',function(){
    if (window.prev_window == false) return false
    else $.scrollTo('a[name='+window.prev_window+']',800);
    
    return false;
  });

  $('div.nav-right > a').bind('click',function(){
    if (window.next_window == false) return false
    else $.scrollTo('a[name='+window.next_window+']',800);
    
    return false;
  });

  $(window).bind('scroll', function(event) {

    if (safari_detected && scroll_bounce) scroll_bounce = 0;
    else
    {
      var o = document.getElementById('car');
      var l = o.offsetLeft + window.getScrollX();
      var direction = (getScrollLeft() > curr_offset) ? 1 : 0;

      var scr = getScrollLeft();
      if (scr >= 0 && scr < 1100)
      {
        $('li.m').removeClass('factive'); $('li.m1').addClass('factive');
        window.next_window = 'hatchback';
        window.prev_window = false;
	window.cur_window = 'about';
      }
      else if (scr >= 1100 && scr < 2048)
      {
        $('li.m').removeClass('factive'); $('li.m3').addClass('factive');
        window.next_window = 'sedan';
        window.prev_window = 'about';
	window.cur_window = 'hatchback';
      }
      else if (scr >= 2048 && scr < 2842)
      {
        $('li.m').removeClass('factive'); $('li.m2').addClass('factive');
        window.next_window = 'corporate';
        window.prev_window = 'hatchback';
        window.cur_window = 'sedan';
      }
      else if (scr >= 2842 && scr < 3713)
      {
        $('li.m').removeClass('factive'); $('li.m4').addClass('factive');
        window.next_window = 'tehnical';
        window.prev_window = 'sedan';
        window.cur_window = 'corporate';

      }
      else if (scr >= 3713 && scr < 4379)
      {
        $('li.m').removeClass('factive'); $('li.m5').addClass('factive');
        window.next_window = 'credit';
        window.prev_window = 'corporate';
        window.cur_window = 'tehnical';

      }
      else if (scr >= 4379 && scr < 5120)
      {
        $('li.m').removeClass('factive'); $('li.m6').addClass('factive');
        window.next_window = 'color';
        window.prev_window = 'tehnical';
        window.cur_window = 'credit';

      }
      else if (scr >= 5120 && scr < 5768)
      {
        $('li.m').removeClass('factive'); $('li.m7').addClass('factive');
        window.next_window = 'crash';
        window.prev_window = 'credit';
        window.cur_window = 'color';

      }
      else if (scr >= 5768)
      {
        $('li.m').removeClass('factive'); $('li.m8').addClass('factive');
        window.next_window = false;
        window.prev_window = 'color';
        window.cur_window = 'crash';

      }

      if ($('#car').css('position') == 'absolute' && parseInt($('#car').css('left')) > 6373)
        $('#car').css({
          'left': '6553px'
        });

      // if (direction == 0 && crashed == 1)
      // {
      //   $('#car').css({
      //     position: 'fixed',
      //     'left': '40%'
      //   });
      //   var o2 = document.getElementById('car');
      //   var l2 = o2.offsetLeft + window.getScrollX();
      //   if (l2 < 6700)
      //   {
      //     window.start_crash_back();
      //   }
      // }
      // 
      // if (direction == 1 && crashed == 1)
      // {
      //   $('#car').css({
      //     position: 'absolute',
      //     'left': '6553px'
      //   });
      // }
      // 
      // if (l > 6310 && crashed == 0 && direction == 1)
      // {
      //   $('#car').css({
      //     position: 'absolute',
      //     'left': '6553px'
      //   });
      //   window.start_crash();
      // }

      curr_offset = getScrollLeft();


      if (curr_state1 == total_states && direction == 1)
      {
        $('#wheel1').removeClass('state' + curr_state1);
        curr_state1 = 1;
      }
      else if (curr_state1 == 1 && direction == 0)
      {
        $('#wheel1').removeClass('state' + curr_state1);
        curr_state1 = total_states;
      }

      $('#wheel1').removeClass('state' + curr_state1);
      if (direction == 1) curr_state1 += 1;
      else curr_state1 -= 1;

      if (curr_state1 == -1) curr_state1 = 5;

      $('#wheel1').addClass('state' + curr_state1);

      ///////////////////////

      if (curr_state2 == total_states && direction == 1)
      {
        $('#wheel2').removeClass('state' + curr_state2);
        curr_state2 = 0;
      }
      else if (curr_state2 == 1 && direction == 0)
      {
        $('#wheel2').removeClass('state' + curr_state2);
        curr_state2 = total_states+1;
      }

      $('#wheel2').removeClass('state' + curr_state2);
      curr_state2 = (direction == 1) ? curr_state2 + 1 : curr_state2 - 1;
      $('#wheel2').addClass('state' + curr_state2);

      if (safari_detected) scroll_bounce = 1;
    }
  });

  $('.typecar a').bind('click', function(){
    if ($('#car').hasClass('hatchback_' + window.form_color))
    {
      $('#typeid').html('Õýò÷áýê');

      $('#car').removeClass('hatchback_' + window.form_color);
      $('#car').addClass('sedan_' + window.form_color);

      $('#car_link').attr('href','about_auto_sedan.html');

      window.form_factor = 'sedan';
    }
    else if ($('#car').hasClass('sedan_' + window.form_color))
    {
      $('#typeid').html('Ñåäàí');

      $('#car').removeClass('sedan_' + window.form_color);
      $('#car').addClass('hatchback_' + window.form_color);

      $('#car_link').attr('href','about_auto_hatch.html');

      window.form_factor = 'hatchback';
    }
  });

  window.crash = function()
  {
    if (crash_state < 7)
    {
      $('#car').removeClass();
      $('#car').addClass(window.form_factor + '_crash_' + window.form_color + '_' + crash_state);
      crash_state ++;
      window.start_crash();
    }
    else
    {
      crashed = 1;
    }
  }

  window.start_crash = function()
  {
    setTimeout("window.crash()", 80);
  }

  window.crash_back = function()
  {
    if (crash_state == 0)
    {
      $('#car').removeClass();
      $('#car').addClass(window.form_factor + '_' + window.form_color);
      crashed = 0;
    }
    else
    {
      crash_state --;
      $('#car').removeClass();
      $('#car').addClass(window.form_factor + '_crash_' + window.form_color + '_' + crash_state);
      window.start_crash_back();
    }
  }

  window.start_crash_back = function()
  {
    setTimeout("window.crash_back()", 80);
  }

  window.start_mers = function()
  {
    setTimeout("window.mers_go()", rand(7, 20) * 1000);
  }

  window.mers_go = function()
  {
    $('#mers').css({
      left: (parseInt($('#mers').css('left').replace('px', '')) + 10) + 'px'
    });

    if (parseInt($('#mers').css('left').replace('px', '')) > 7000)
    {
      $('#mers').css({
        left: '-543px'
      });
      window.start_mers();
    }
    else
      setTimeout("window.mers_go()", 1);
  }

  //window.start_mers();
  //$('#kalina').css({left: rand(20, 6000) + 'px'});


  window.getScrollX = function() {
    var scrOfX = 0, scrOfY = 0;
    if( typeof( window.pageYOffset ) == 'number' ) {
      //Netscape compliant
      scrOfY = window.pageYOffset;
      scrOfX = window.pageXOffset;
    } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
      //DOM compliant
      scrOfY = document.body.scrollTop;
      scrOfX = document.body.scrollLeft;
    } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
      //IE6 Strict
      scrOfY = document.documentElement.scrollTop;
      scrOfX = document.documentElement.scrollLeft;
    }
    return scrOfX;
  }

  //$('#overlay').hide(); $.scrollTo('a[name=hatchback]',800);

});

