$(document).ready(function() {
  $('#topmenu > ul').superfish({
    animation:{opacity:'show'},
    speed:400,
    autoArrows:false,
    dropShadows:false
  });
  $('#topmenu .menuitemInventory > ul').superfish({
    animation:{opacity:'show'},
    speed:400,
    autoArrows:false,
    dropShadows:false
  });
/*   $('#used ul').superfish({
    animation:{opacity:'show'},
    speed:400,
    autoArrows:false,
    dropShadows:false
  }); */
}); 

function resetMatrix(){
	$('.menuitemInventory .class').css('display','block');
	$('.menuitemInventory .model').css('display','none');
}

function oc(a){
  var o = {};
  for(var i=0;i<a.length;i++){
    o[a[i]]='';
  }
  return o;
}

function inArray(needle, haystack) {
  if($.isArray(haystack)){
    var length = haystack.length;
    for(var i = 0; i < length; i++) {
      if(haystack[i] == needle) return true;
    }
    return false;
  }
  return false;
}

function capFirstLetter(string){
  var s ;
  s = string ;
  var firstchar = s.substr(0, 1);
  var restofchar = s.substr(1);

  var newString = firstchar.toUpperCase() + restofchar.toLowerCase();

  return newString;
}

function translate(value){
  var replace = new Array("ESTATE","SALOON","SUV","MPV");
  var by = new Array("Wagon","Sedan","SUV","Crossover");
  var str = '';
  if(value!=''){
    if(inArray(value,replace)){
      for(var i=0;i<replace.length;i++){
        if(replace[i]==value){
          str =value.replace(replace[i],by[i]);
        }
      }
    }else{
      str = capFirstLetter(value);
    }
  }else{
    alert('Translation failed');
  }

  return str;
}

$(function(){ 
  $("#used > ul:first-child a").hoverIntent(
    function () {
      $('#used .class img:not(.'+this.name+')').animate({opacity: 0.1}, 600 );
    },
    function () {
      $('#used .class img').animate({opacity: 1}, 600 );
    }
  )
});
$(function(){
  $("#new > ul:first-child a").hoverIntent(
    function () {
      $('#new .class img:not(.'+this.name+')').animate({opacity: 0.1}, 600 );
    },
    function () {
      $('#new .class img').animate({opacity: 1}, 600 );
    }
  )
});

function padout(number) { return (number < 10) ? '0' + number : number; }

var classmenu_data = '';
var selectedclass_id = '';
var type = '';
var selectedclass = '';

var class_config = {
  sensitivity: 3,
  interval: 300,
  over: classin,
  timeout: 500,
  out: classout
};
$(function(){$(".menuitemInventory .left ul:first-child li").hoverIntent(class_config)});

function classin() {	
  var values;
  values = new Array();
  selectedclass_id = $(this).children('a').attr('name');//alert(selectedclass_id);
  type = $(this).children('a').attr('rel');

  var val;
  val = new Array();
  val['name']='listtype';
  val['value']='class_model_bodystyle';
  values[0] = val ;

  var val;
  val = new Array();
  val['name']='class';
  val['value']=selectedclass_id;
  values[1] = val ;

  var val;
  val = new Array();
  val['name']='make';
  val['value']='26';
  values[2] = val;

  var val;
  val = new Array();
  val['name']='type';
  val['value']=type;
  values[3] = val;

  //calls each model from list on inventory page
  ajaxPostValuesAsXML(values,'class_menu','ajax','classmenu');

  //loading each model with "loading" element
  $('.menuitemInventory .class').fadeOut('fast',function(){
    $('.menuitemInventory .model').fadeIn().html('<img class="loader" src="/img/loaderSkin.gif" alt=""/>');
  }); 

  $('.menuitemInventory .class').css('display','none');
  $('.menuitemInventory .model').css('display','block');
}
function classout() { 
	//alert('function classout');
	$(".menuitemInventory .model").hover(
	  function () {
	    $('.menuitemInventory .class').css('display','none');
	    $('.menuitemInventory .model').css('display','block');
	  },
	  function () {
	    /* $('.menuitemInventory .model').html(' ').fadeOut('fast',function(){
	      
	      $('.menuitemInventory .class').fadeIn();
	    }); */
	    $('.menuitemInventory .model').empty().css('display','none');
	    $('.menuitemInventory .class').css('display','block');
	  }
	)
}

function classmenu(field){
  //DEBUG: alert(unescape(field));
//alert('function classmenu');
  var html;

  classmenu_data = eval("(" + unescape(field) + ")");
  //selectedclass = classmenu_data[0]['CLASSNAME'];
  //$('.menuitemInventory .model').html('<img class="loader" src="/img/loaderSkin.gif" alt=""/>');

  //first ajax is for matrix
  $.ajax({
    dataType:'json',
    url: '/cgi-bin/mbusa/mbusa_json_models.cgi',
    data:'class='+selectedclass_id,
    success: function(data) {
      html = classmenu2(data);
		  $('.menuitemInventory .model').fadeIn().html(html);
    }
  });
/*
  $.get('/cgi-bin/mbusa/mbusa_json_models.cgi?class='+selectedclass_id, function(data) {
    html = classmenu2(data);
  });

  selectedclass_id = '' ;

  $('.menuitemInventory .model').fadeOut('fast',function(){
    $('.menuitemInventory .model').fadeIn().html(html);
  });
  */
}
  
function getError(){
  $('.menuitemInventory .model').html('<div class="error">I\'m sorry but there has been an error while processing your request. Please try again later.</div>');
}

function isNumeric(sText){
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;
 
   for (i = 0; i < sText.length && IsNumber == true; i++){ 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1){
         IsNumber = false;
      }
   }
   return IsNumber;
  
}


function classmenu2(field){
//alert('function classmenu2');	
  //DEBUG: alert(unescape(field));
  //DEBUG: alert(unescape(classmenu_data));

  var data = field;
  var str = '' ;

  if(data.length<1){
    var timeoutID = window.setTimeout(getError, 1000);
  }

//alert('data:'+data);
  for(a in data){
    if (!isNumeric(a)) {
      selectedclass = a;
    }
  }
//alert(selectedclass) ;

  var class_arr = {
    'C-Class':['Sedan','Wagon','Coupe'],
    'E-Class':['Wagon','Coupe','Sedan','Convertible'],
    'S-Class':['Sedan'],
    'CLK-Class':['Coupe','Convertible'],
    'CLS-Class':['Sedan'],
    'CL-Class':['Coupe'],
    'SL-Class':['Convertible'],
    'SLK-Class':['Convertible'],
    'GLK-Class':['SUV'],
    'M-Class':['SUV'],
    'GL-Class':['SUV'],
    'G-Class':['SUV'],
    'R-Class':['Crossover']
  };
  
  if(type=='new'){
    class_arr['C-Class'] = ['Sedan','Wagon'];
  }

  str+= '<h3>'+selectedclass+'</h3>';
  for(a in data[selectedclass]){
    var model_list = '';
    var minprice_arr = new Array();
    var maxprice_arr = new Array();
    var bodystyle = translate(a);
    //DEBUG: alert(a+'='+bodystyle+inArray(bodystyle,class_arr[selectedclass]));

    if( inArray(bodystyle,class_arr[selectedclass])===true ){
      for ( b in data[selectedclass][a] ){
        var usr_value = '';
        var count = '00';
        var url = '';

        if(classmenu_data!=null){
          for(c in classmenu_data){
            //DEBUG: alert('BODY: '+classmenu_data[c]['BODYSTYLE']+'='+a+' MODEL:'+class_arr[selectedclass][a][b]['name']+'='+classmenu_data[c]['MODELNAME']);
            if(classmenu_data[c]['BODYSTYLE']==bodystyle  && data[selectedclass][a][b]['name']==classmenu_data[c]['MODELNAME']){
              count = padout(classmenu_data[c]['COUNT']);

              if(classmenu_data[c]['MINPRICE']>0 && classmenu_data[c]['MAXPRICE']>0){
                minprice_arr.push(classmenu_data[c]['MINPRICE']);
                maxprice_arr.push(classmenu_data[c]['MAXPRICE']);
              }
            }
          }
        }

        usr_value = data[selectedclass][a][b]['name'];
        if(count!='00'){
          url = '/'+type+'/'+usr_value+'/'+type+'-mercedes-'+usr_value+'-for-sale-'+classmenu_data[0]['TOWN']+'-'+classmenu_data[0]['STATENAME'];
          count = 'In-Stock '+count;
        }else{
          url = '/inventory/inventory_inquiries?vclass='+selectedclass+'&model='+usr_value+'&type='+type+'vehicleinfo';
          count = '';
        }

        model_list+='<li><a href="'+url.replace(' ','_').toLowerCase()+'" class="clearfix"><span class="left">'+usr_value+'</span> <span class="right">'+count+'</span></a></li>';
      }

      str+= '<div>';
      str+= '<img src="/img/menu/greybg/'+selectedclass+'-'+bodystyle.replace(' ','-')+'.png" alt="" />';
      str+= '<h5>'+selectedclass+' '+bodystyle+'</h5>';
      if(minprice_arr!=''){
        str+= '<span>from $'+Math.min.apply(null,minprice_arr)+' to $'+Math.max.apply(null,maxprice_arr)+'</span>';
      }
      str+= '<ul>';
      //str+= '<li><a href="#">View all <span></span></a></li>';
      str+= model_list;
      str+= '</ul></div>';
    }
  }

  str+= '<div class="info">*Currently none available but click to inquire directly</div>';
  return str;
}

function ScrollToElement(id){
  var elem = $('#'+id);
  if (elem.length != 0) {
      $.scrollTo(elem);
  }
}




