var editor_debug = true;
var browse_offset = 0;
var delay = .2;
var browse_type = '';
var browse_trigger_msg = '';

$(document).ready(function() {
     
     browse_trigger_msg = $('#browser_trigger').html();
     $('#browser_types li').bind( 'click', function() {
          browse_pick_type( this );
     } );
     $('#keywords').bind( 'keyup', function() {
          browse_filter();
     } );
     $('#browser_trigger, #btn_blind' ).bind( 'click', function() {
          browser_display();
     } );
     def_val = $('#keywords').val();
     $('#keywords').bind( 'focus blur', function() {
          if( $('#keywords').val() == def_val )
               $('#keywords').val( '' );
          else $('#keywords').val( def_val );
     } );
     // turn off all autocompletes
          $( 'input.text' ).each( function() {
               $( this ).attr( 'autocomplete', 'off' ); 
          } );
} );


function browse_next( offset, trigger ) {
     $( trigger ).remove();
     browse_offset = offset;
     response = browse();
     $('#browser_results ul').append( response );
}


function browse_filter() {
     var keyword = $('#keywords').val();
     if( keyword == def_val ) keyword = '';
     setTimeout( function() { 
          if( $('#keywords').val() == keyword ) {
               $('#browser_results ul').slideUp(
                    400, function() {
                         response = browse();
                         $('#browser_results ul').html( response );
                         $('#browser_results ul').slideDown();
                    }
               );
          }
     }, ( delay * 1000 ) ); 
} // end function browse_filter()


function browse_pick_type( trigger ) {
     browse_type = $( trigger ).html();
     browse_offset = 0;
     $('#browser_trigger').html( 'Browse by ' + browse_type );
     $('#browser_types').slideUp( 400, function() {} );
     $('#browser_results').slideUp(
          400, function() {
               response = browse();
               $('#browser_results ul').html( response );
               $('#browser_results').slideDown();
          }
     );
} // end function browse();


function browse() {
     var keywords = ( $('#keywords').val() == def_val ) ? '' : $('#keywords').val();
     var response = '';
     $.ajax( {
          type:     'POST',
          cache:    false,
          url:      '/ajax/browse/',
          async:    false,
          data:     {
               'browse_by'    : browse_type,
               'offset'       : browse_offset,
               'keywords'     : keywords
          },
          success:  function( ajax_response ) {
               response = ajax_response;
          }
     } );
     return response;
} // end function browse()


function browser_display() {
     if( $('#browser_types').css( 'display' ) == 'none' && $('#browser_results').css( 'display' ) == 'none' ) {
          $('#browser_types').slideDown();
          $('#btn_blind').css( 'backgroundPosition', '-26px 0px' );
     }
     else {
          $('#btn_blind').css( 'backgroundPosition', '0px 0px' );
          $('#browser_trigger').html( browse_trigger_msg );
          $('#browser_types').slideUp();
          $('#browser_results').slideUp();
     }
} // end function browser_display()







// should be some kind of init_editor function that includes...
     var editor_response = document.createElement( 'div' );
     $( editor_response ).attr( 'id', 'editor_response' );
     $(document).ready(function() {
          $( 'body' ).prepend( editor_response );
     } );








function suggest_publisher() {
     var val = $( '#publisher' ).val();
     var suggestion_box = $( '#sugg_publisher' );
     if( val == '' ) {
          $( suggestion_box ).slideUp();
          return false;
     }
     $( '#publisher_id' ).val( '' );
     $( suggestion_box ).load(
          '/ajax/publisher_lookup', 
          { 'input' : val },
          function() {
               if( $( suggestion_box ).html() == '' ) {
                    $( suggestion_box ).slideUp();
               }
               else {
                    $( suggestion_box ).slideDown();
                    $( suggestion_box ).find( 'li' ).each( function( i ) {
                         $( this ).bind( 'click', function() {
                              $( '#publisher' ).val( $( this ).html() ); 
                              $( '#publisher_id' ).val( $( this ).attr( 'value' ) );
                              $( suggestion_box ).slideUp();
                         } );
                    } );
               }
          }
     );
} // end function suggest_publisher()

function suggest_relationship( id ) {
     var val = $( '#relationship_' + id ).val();
     var suggestion_box = $( '#sugg_' + id );
     if( val == '' ) {
          $( suggestion_box ).slideUp();
          return false;
     }
     $( '#people_id_' + id ).val( '' );
     $( suggestion_box ).load(
          '/ajax/person_lookup', 
          { 'input' : val },
          function() {
               if( $( suggestion_box ).html() == '' ) {
                    $( suggestion_box ).slideUp();
               }
               else {
                    $( suggestion_box ).slideDown();
                    $( suggestion_box ).find( 'li' ).each( function( i ) {
                         $( this ).bind( 'click', function() {
                              $( '#relationship_' + id ).val( $( this ).html() ); 
                              $( '#people_id_' + id ).val( $( this ).attr( 'value' ) );
                              $( suggestion_box ).slideUp();
                         } );
                    } );
               }
          }
     );
} // end function suggest()



function suggest( person ) {
     var val = $( '#new_' + person ).val();
     var suggestion_box = $( '#sugg_' + person );
     $( '#new_' + person + '_id' ).val( '' );
     $( suggestion_box ).load(
          '/ajax/person_lookup', 
          { 'input' : val },
          function() {
               if( $( suggestion_box ).html() == '' ) {
                    $( suggestion_box ).slideUp();
               }
               else {
                    $( suggestion_box ).slideDown();
                    $( suggestion_box ).find( 'li' ).each( function( i ) {
                         $( this ).bind( 'click', function() {
                              $( '#new_' + person ).val( $( this ).html() ); 
                              $( '#new_' + person + '_id' ).val( $( this ).attr( 'value' ) );
                              $( suggestion_box ).slideUp();
                         } );
                    } );
               }
          }
     );
} // end function suggest()



