// -- file start --


// example call: $('body').crossRefer( 'internalReferer', 'Avsnitt');

// fixme: put current node name as ancestor

// to do: developer mode with alerts for each nonconverted link


jQuery.fn.crossRefer = function( className, structureReferredTo) {


    // -- function --
    replaceReferersByReference = function() {
      // find all relevant referring elements
      var  $referers = $( 'a.' + className);
      // cycle through elements
      $referers.each( function() {
	  // find element referred to
	  var  referenceID = this.href.replace( /.*#/, '');
	  var  $reference = $( '#' + referenceID);
	  // check if valid reference
	  if( ( $reference.length > 0) && $reference[0].tagName.toLowerCase().match( /h[1-6]/) ) {
	    // determine reference content
	    var  headerText = $reference.text();
	    // trim text
	    headerText = headerText.replace( /\n/g, ' ').replace( /\t/g, ' ').replace( /^ */, '').replace( / *$/, '');
	    // replace referer content with reference content
	    $( this).text( structureReferredTo + ' ' + headerText);
	  }
	});	// $referers.each
    } // function replaceReferersByReference


    // -- main --
    // invoke only upon finished loading
    $(function()
      {
	// replace any existing content, such as fall-back by reference
	replaceReferersByReference();
      });
};  // jQuery.fn.crossRefer


// -- file end --
