var smallmap;
var bigmap;
var showroom_map;

var quadrant_icon = "/themes/site_themes/QuadrantHomes/images/map-pointer.png";
var quadrant_icon_shadow = "/themes/site_themes/QuadrantHomes/images/map-pointer-shadow.png";

var bounds;

var markers = [];
var marker_data = [];

$(function(){

  // SMALLMAP
  if ($('.smallmap .map').length){
    var latlng = new google.maps.LatLng(47.8730651468353, -122.33139038085938);
    var mapOpts = {
      zoom: 19,
      center: latlng,
      disableDefaultUI: true,
      scaleControl: false,
      navigationControl: true,
      mapTypeControl: false,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    }
    smallmap = new google.maps.Map($('.smallmap .map').get(0), mapOpts);
  }

  // BIGMAP
  if ($('.map-box .map').length){

//alert("here");
    bigmap = new google.maps.Map($('.map-box .map').get(0), {
      zoom: 3, //10,
      center: new google.maps.LatLng(47.8730651468353, -122.33139038085938),
      disableDefaultUI: true,
      scrollwheel: false,
      scaleControl: false,
      navigationControl: false,
      disableDoubleClickZoom: false,  //true,
      mapTypeControl: false,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    });
  }

  // SHOW ROOM MAP
  if ($('.showroom-map .map').length){
    showroom_map = new google.maps.Map($('.showroom-map .map').get(0), {
      zoom: 16,
      center: new google.maps.LatLng(47.8730651468353, -122.33139038085938),
      disableDefaultUI: true,
      scaleControl: true,
      navigationControl: true,
      mapTypeControl: false,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    });
  }

  bounds = new google.maps.LatLngBounds ();

});


function setMarker(location, gMap, center, data){
  if ( location && gMap ){
    if (center == true) gMap.setCenter(location);

    bounds.extend(location);

    var marker = new google.maps.Marker({
        map: gMap,
        icon: quadrant_icon,
        shadow: quadrant_icon_shadow,
        position: location
    });
    markers.push( marker );
    marker_data.push( data );
    return marker;
  }
}
function fitBounds( gMap ){
  gMap.fitBounds( bounds );
}

// FILTERING
function filter_map( max_price, military_bases, arterials, quick_move_in ) {

  // console.log( "filtering: " + marker_data.length );
  for ( var i = 0; i < marker_data.length; i++ ){
    var md = marker_data[i];

    md.show = true;

    // RUN ALL FILTERS
    if ( !price_filter(md, max_price) ||
         !military_base_filter(md, military_bases) ||
         !arterials_filter(md, arterials) ||
         !quick_move_in_filter(md, quick_move_in)
        ) md.show = false;

  }


  set_marker_visibilities();
}
function set_marker_visibilities( ){
  for ( var i = 0; i < marker_data.length; i++ ){
    var md = marker_data[i];

    if ( !md.show ) {
      md.marker.setMap( null );
    } else if ( md.marker.map == null ) {
      md.marker.setMap( md.map );
    }
  }
}

// FILTER FUNCTIONS - return true if value matches filter
function price_filter(md, max_price){
  // console.log( md.title + ": " + md.starting_price + " <=? " + max_price + " is " + ( md.starting_price <= max_price ) );
  return ( md.starting_price <= max_price );
}
function military_base_filter( md, military_bases ) {

  return is_in_array( md.military_bases, military_bases );

  // if ( !military_bases || military_bases.length == 0 ) return true;
  // else if ( md.military_bases.length == 0 ) return false;
  // else {
  //   for ( var i = 0; i < military_bases.length; i++ ) {
  //     var base = military_bases[i];


  //     if ( $.inArray( base, md.military_bases ) < 0) return false;
  //   }

  //   return true;
  // }
}
function arterials_filter(md, arterials) {
  return is_in_array( md.arterials, arterials );
}
function quick_move_in_filter(md, quick_move_in) {
  if ( !quick_move_in ) return true;
  else if ( quick_move_in == true ){
    return ( md.spec_homes.length > 0 );
  } else {
    return false;
  }

}


// UTILITIES
function is_in_array( arr1, arr2 ){
  if ( !arr2 || arr2.length == 0 ) return true;
  else if ( arr1.length == 0 ) return false;
  else {
    for ( var i = 0; i < arr2.length; i++ ) {
      var item = arr2[i];
      if ( $.inArray( item, arr1 ) < 0) return false;
    }

    return true;
  }
}
jQuery.fn.getCheckboxVal = function(){
    var vals = [];
    var i = 0;
    this.each(function(){
        vals[i++] = jQuery(this).val();
    });
    return vals;
}




// function filter_by_price( max_price, pre_filtered_marker_data ){
//   var post_filtered_marker_data = [];
//
//   for ( var i = 0; i < pre_filtered_marker_data.length; i++ ){
//     var md = marker_data[i];
//     if ( md.starting_price < max_price ){
//       post_filtered_marker_data.push( md );
//       md.show = true;
//     } else {
//       md.show = false;
//     }
//
//   }
//
//   return post_filtered_marker_data;
// }

// function filter_by_military_base( military_bases, pre_filtered_marker_data ) {
//   var post_filtered_marker_data = [];
//   for ( var i = 0; i < pre_filtered_marker_data.length; i++ ){
//     var md = marker_data[i];
//   }
// }

