var map = null;
var mapSettings = {};
/****************************************************************************

****************************************************************************/
function Gload( latitude, longitude, zoom ) {
  if (GBrowserIsCompatible()) {
    map = new GMap2(document.getElementById("map"));
    mapSettings[ 'latitude' ] = latitude;
    mapSettings[ 'longitude' ] = longitude;
    mapSettings[ 'zoom' ] = zoom;
    
    map.setCenter(
      new GLatLng( mapSettings[ 'latitude' ], mapSettings[ 'longitude' ] ), 
      mapSettings[ 'zoom' ] 
    );

    var mapTypeControl = new GMapTypeControl();
    var topRight = new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(10,10));
    var bottomRight = new GControlPosition(G_ANCHOR_BOTTOM_RIGHT, new GSize(10,10));
    map.addControl(mapTypeControl, topRight);
    map.addControl(new GSmallMapControl());   
  }
}

/****************************************************************************

****************************************************************************/
function switchTab( prefix ) {
  
  //disable all tabs
  $( '#main-tabs .tab-active' ).removeClass( 'tab-active' ).addClass( 'tab' );
  $( '#' + prefix + '-tab' ).addClass( 'tab-active' ).removeClass( 'tab' ).show();
  
  //disable all areas
  $( '#map-section' ).hide();
  $( '#video-section' ).hide();
  $( '#vendor-promotions' ).hide();
  
  //enable active areas
  $( '#' + prefix + '-section' ).show();
  
  if( prefix == 'video' ) {
    
    //hide page ads
    $("#site-ads").hide();
    
    $( '#vendor-promotions' ).show();
  }
  if( prefix == 'map' ) {

    //show page ads
    $("#site-ads").show();
    
    try { 
    sendEvent('stop');
    } catch( e ) {}
    
  }

}


/****************************************************************************

****************************************************************************/
function setRelatedVideos( id ) {
  //return; ////error
	var video = videos[ id ];

  if( video[ 'related_videos' ].length > 0 ) {

    $( "#video-player-related" ).show();    
    $( "#related-list" ).empty();
    
    $('#related-builder_name').text( video[ 'builder' ] );    
    for( var i = 0; i < video[ 'related_videos' ].length; i++ ) {
  
      var relatedId = video[ 'related_videos' ][ i ];
      var relatedVid = videos[ relatedId ];
    
				var relatedUrl = createUrl("", "BUILDER", relatedVid['builder_id'] );
				var relatedUrl = video_page_name + createUrl( relatedUrl,"VIDEO_ID", relatedId );
			
      $(
        '<a id="' + "relatedVideo_" + relatedId + '" href="' + relatedUrl + '"><div class="story">' 
        + relatedVid[ 'community' ] + ' of ' + relatedVid[ 'town' ] + ' by ' + relatedVid[ 'builder' ] 
        + '</div></a>' 
      ).appendTo( "#related-list" );
/*      
      var anchor = document.createElement( 'a' );
      anchor.href = '#';
      anchor.id = "relatedVideo_" + relatedId;
      anchor.onclick = function() { watchVideo( this.id ) };    
      otherList.appendChild( anchor );
      
      node = document.createElement( 'div' );
      node.className = 'story';
      anchor.appendChild( node );
      node.appendChild( 
        document.createTextNode( relatedVid[ 'community' ] + ' of ' + relatedVid[ 'town' ] + ' by ' + relatedVid[ 'builder' ] ) 
      );
*/      
    }    
  }
  else {
    $( "#video-player-related" ).hide();    
  }
}  


/****************************************************************************

****************************************************************************/
function setVideoAds( id ) {
  
  $('#vendor-promotions').empty();
  
  var video = videos[ id ];
  var i = 0;
  for( ; i < video[ 'vendors' ].length; i++ ) {

    var vendor = video[ 'vendors' ][ i ];
    
    $( ".right-col .side-panel-template" ).clone( true ).attr( "id",  "side-panel-" + i ).removeClass( "side-panel-template" ).appendTo( '#vendor-promotions' );
    if( vendor[ 'url' ] == 'google' ) {

$( vendor[ 'img' ] ).appendTo( "#side-panel-" + i + ' .content' );

}
else {
    $( '<a href="tracker.php?URL=' + encodeURIComponent( vendor[ 'url' ] ) + '" target="_blank" ><img src="' + vendor[ 'img' ] + '" ></a>'  ).appendTo( "#side-panel-" + i + ' .content' );
}
  }  
/*  
  for( ; i < 3; i++ ) {

    var sidePanelTemplate = document.getElementById( "side-panel-template" );    
    sidePanelTemplate = sidePanelTemplate.cloneNode( true );
    sidePanelTemplate.id = null;
    sidePanelTemplate.style.display = 'block';
    vendorPromotions.appendChild( sidePanelTemplate );
    
    var contentNode = getElementsByClass( 'content', sidePanelTemplate )[ 0 ];
    
    var node = document.createElement( 'div' );
    node.className = 'vendor-promotion';
    node.appendChild( document.createTextNode( 'Supporting Vendor and/or Builder Promo Area' ) );

    contentNode.appendChild( node );    
  }
*/  
}


/****************************************************************************

****************************************************************************/
function setNowShowing( id ) {

  var video = videos[ id ];
  $( ".now-showing-town"      ).text( video[ 'town'      ] );
  $( ".now-showing-builder"   ).text( video[ 'builder'   ] );
  $( ".now-showing-home_type" ).text( video[ 'home_type' ] );
  $( ".now-showing-community" ).text( video[ 'community' ] );
  $( ".now-showing-price"     ).text( video[ 'price'     ] );
  
}  


/****************************************************************************

****************************************************************************/
function watchVideo( id ) {
     
  id = id.substr( ( id.lastIndexOf( "_" ) + 1 ) );
  var video = videos[ id ];
           
  setNowShowing( id );

  $( "#video-player-copy" ).empty();
  $( "<p>" +video[ 'copy' ] + "</p>" ).appendTo( "#video-player-copy" );
  
  var phone = '(' + video[ 'phone' ].substr( 0, 3 ) + ') ' + video[ 'phone' ].substr( 3, 3 ) + '-' + video[ 'phone' ].substr( 6, 4 );
  if( video[ 'phone' ].length > 10 ) 
    phone += ' x' + video[ 'phone' ].substr( 10 );
  
  $( '#builder-phone' ).text( phone );
  

  if( video[ 'town_id' ] ) {
    $( "#area-info-link" ).
      attr( "href", 'town.php?TOWN_ID=' + video[ 'town_id' ] + '&VIDEO_ID=' + video[ 'id' ] );
  } else {
    $( "#area-info-link" ).attr( "href", '#' );
  }
  
  $( "#info-link" ).
    attr( "href", 'community_info.php?COMMUNITY_ID=' + video[ 'community_id' ] + '&HOME_TYPE_ID=' + video[ 'home_type_id' ] ).
    attr( "target", "_blank" );

  $( "#directions-link" ).
    attr( "href", 'community_info.php?COMMUNITY_ID=' + video[ 'community_id' ] + '&HOME_TYPE_ID=' + video[ 'home_type_id' ] ).
    attr( "target", "_blank" ); 
  
  if( video[ 'url' ] ) {
    $( "#builder_site-link" ).
      attr( "href", 'tracker.php?URL=' + encodeURIComponent( video[ 'url' ] ) ).
      attr( "target", "_blank" );
  } else {
    $( "#builder_site-link" ).attr( "href", '#' );
  }

  if( video[ 'quick_delivery_url' ] ) {
    $('#quick-deliveries').show();
    $('#quick-deliveries-link').attr( 'href', 'tracker.php?URL=' + encodeURIComponent( video[ 'quick_delivery_url' ] ) );
    $('#quick-deliveries-link').attr( 'target', '_blank' );
  } else {
    $('#quick-deliveries').hide();
    $('#quick-deliveries-link').attr( 'href', '#' );
  }

  if( video[ 'floorplan_url' ] ) {
    $('#floorplans').show();
//    $('#floorplans-link').attr( 'href', 'http://' + video[ 'floorplan_url' ] );
    $('#floorplans-link').attr( 'href', 'tracker.php?URL=' + encodeURIComponent( video[ 'floorplan_url' ] ) );
    $('#floorplans-link').attr( 'target', '_blank' );
  } else {
    $('#floorplans').hide();
    $('#floorplans-link').attr( 'href', '#' );
  }
  
  $( '#builder-email-link' ).click( 
    function() {
      window.open( 
        'min_contact_form.php?VIDEO_ID=' + id, 
        'min_contact_form', 
        'width=535,height=450,toolbar=no,status=no,menubar=no,location=no,titlebar=no,resizable=yes' 
      );
    }
  );
    
  
  node = document.getElementById( "video-player-logo" );
  if( video[ 'logo' ] ) {
    $( "#video-player-logo" ).empty()
    $( '<a href="tracker.php?URL=' + encodeURIComponent( video[ 'url' ] )  + '" target="_blank"><img src="' + video[ 'logo' ] + '"></a>' ).
      appendTo( "#video-player-logo" );
    
  }

  setRelatedVideos( id );

  setVideoAds( id );
  
  //enable active areas
  $( '#now-showing' ).show();
  $( '#video-instructions' ).hide();
  $( '#videos-list' ).removeClass( "videos-list-map" ).addClass( 'videos-list-video' );
  
  switchTab( 'video' );
  
  videoQueue = {};
  videoQueue[ 'file' ] = video[ 'video' ];
  videoQueue[ 'title' ] = video[ 'community' ];
  setTimeout( 'loadNGo()', 1500 );
}  

/****************************************************************************

****************************************************************************/
var videoQueue = null;
function loadNGo() {

  try { 
  loadFile(videoQueue);
  sendEvent('playpause');
  } catch( e ) {}

}  

/****************************************************************************

****************************************************************************/

function refreshVideos() {

	//get filter values
  var builder_id = $('#videos_filter-form [name="builder_id"]').val();  
  var home_type_id = $('#videos_filter-form [name="home_type_id"]').val();  
  var price_id = $('#videos_filter-form [name="price_id"]').val();  
  var county_id = $('#videos_filter-form [name="county_id"]').val();

	
  $('#videos-list' ).empty();
  //clear map
  map.clearOverlays();
  var i = 0;
  for( var ndx in videos ) {
    var video = videos[ ndx ];
    
		var videoUrl = createUrl("", "BUILDER", builder_id);
		videoUrl = createUrl(videoUrl, "HOME_TYPE", home_type_id);
		videoUrl = createUrl(videoUrl, "AREA", county_id);
		videoUrl = createUrl(videoUrl, "PRICE", price_id);
	
			//alert( video[ 'home_type_ids' ] + "---" +  home_type_id );
		
		
		//alert( "price id=" + price_id );
	  //if no filter is set, or filter matches	
    if(
           ( builder_id   == "" || builder_id   == video[ 'builder_id'   ] )
       &&  ( home_type_id == "" || video[ 'home_type_ids'   ].indexOf(home_type_id) >= 0  )
    	 &&  ( county_id == "" || video[ 'area_id' ].indexOf(county_id) >= 0  )
			 &&  ( price_id == "" || price_id == video[ 'priceCode' ] )
		) {

			video[ "video_url" ] = video_page_name + createUrl( videoUrl,"VIDEO_ID", video["id"]);
		
      addVideo( video );
      
      //set markers on map
      createMarker( video );   
    }
  }

}

/****************************************************************************

****************************************************************************/
function createUrl( url, name, value ) {
	if( value == "" ) {
		return url;
	}
	if( url == "" ) {
		url = "?"+name+"="+value;
	} else {
		url = url + "&"+name+"="+value;
	}
	return url;
}




/****************************************************************************

****************************************************************************/
function refreshMarkers() {

	//get filter values
  var builder_id = $('#videos_filter-form [name="builder_id"]').val();  
  var home_type_id = $('#videos_filter-form [name="home_type_id"]').val();  
  var price = $('#videos_filter-form [name="price"]').val();  
  
  
  //clear map
  map.clearOverlays();
  var i = 0;
  for( var ndx in videos ) {
    var video = videos[ ndx ];
   
	  //if no filter is set, or filter matches	
    if(
           ( builder_id   == "" || builder_id   == video[ 'builder_id'   ] )
       &&  ( home_type_id == "" || home_type_id == video[ 'home_type_id'   ] )
    ) {

      //set markers on map
      createMarker( video );   
      
    }
  }

}  

/****************************************************************************

****************************************************************************/
function addVideo( video ) {
  
  $('#videos-list' ).append( $('div.template .video-template').clone( true ) );
  
  $('#videos-list .video-template' ).get(0).id = ( "video_" + video[ 'id' ] );
  $('#videos-list #video_' + video[ 'id' ]   ).removeClass( 'video-template' );
  $('#videos-list #video_' + video[ 'id' ]   ).get(0).href = ( video[ 'video_url' ] );
  $('#videos-list #video_' + video[ 'id' ]   ).get(0).video = video;
  
  $('#videos-list #video_' + video[ 'id' ] + ' .videos_list_entry'  ).get(0).id = ( "videos_list_entry-" + video[ 'id' ] );    
  $('#videos-list #video_' + video[ 'id' ] + ' .videos_list_entry-img img'   ).attr( 'src', video[ 'thumbnail' ] );
  $('#videos-list #video_' + video[ 'id' ] + ' .videos_list_entry-town'      ).text( video[ 'town'      ] );
  $('#videos-list #video_' + video[ 'id' ] + ' .videos_list_entry-community' ).text( video[ 'community' ] );
  $('#videos-list #video_' + video[ 'id' ] + ' .videos_list_entry-builder'   ).text( video[ 'builder'   ] );
  $('#videos-list #video_' + video[ 'id' ] + ' .videos_list_entry-home_type' ).text( video[ 'home_type' ] );
     
}

/****************************************************************************

****************************************************************************/
function createMarker( video ) {
    var opt = {};
    opt[ 'title' ] = video[ 'community' ];
    var marker =  new GMarker( new GLatLng( video[ 'latitude' ], video[ 'longitude' ] ), opt );
    map.addOverlay( marker );
    marker.video = video;
    $('#videos-list #video_' + video[ 'id' ]   ).get(0).video = video;
    video.marker = marker;
    marker.showInfo = function() {
        var infoTxt = 
          '<b>' + this.video[ 'builder' ] + '</b>' + 
          '<br><b>' + this.video[ 'community' ] + '</b> of <b>' + this.video[ 'town' ] + '</b>' +            
          '<br><b>' + this.video[ 'home_type' ] + '</b> from the <b>$' + this.video[ 'price' ] + "'s</b>";
        this.openInfoWindowHtml( infoTxt );
        
        var videoListEntry = document.getElementById( 'videos_list_entry-' + this.video[ 'id' ] );          
        videoListEntry.style.backgroundColor = '#feefad';
    };
    marker.hideInfo = function() {
        this.closeInfoWindow();
        var videoListEntry = document.getElementById( 'videos_list_entry-' + this.video[ 'id' ] );          
        videoListEntry.style.backgroundColor = '#b58652';
    };
    GEvent.addListener(marker, "mouseover", marker.showInfo );
    GEvent.addListener(marker, "mouseout", marker.hideInfo );
    GEvent.addListener(marker, "click", function() {
        this.hideInfo();
        map.setCenter(new GLatLng( mapSettings[ 'latitude' ], mapSettings[ 'longitude' ] ), mapSettings[ 'zoom' ] );
        //watchVideo( this.video['id'] );
        //
				
				window.location = this.video[ "video_url" ];
      }
    );  
}


