1 if ( typeof(Dataface) == 'undefined' ) Dataface = {};
  2 if ( typeof(Dataface.RelatedList) == 'undefined' ) Dataface.RelatedList = {};
  3 Dataface.RelatedList.searchElement = null;
  4 Dataface.RelatedList.advancedSearchElement = null;
  5 Dataface.RelatedList.searchHTML = null;
  6 Dataface.RelatedList.advancedSearchHTML = null;
  7 require(DATAFACE_URL+'/js/ajaxgold.js');
  8 
  9 /**
 10  * Shows the standard search form for a related list.
 11  */
 12 Dataface.RelatedList.showSearch = function(relationship, e){
 13 	if ( this.searchElement && this.searchElement != e ){
 14 		this.searchElement.innerHTML = '';
 15 		this.searchElement.style.display = 'none';
 16 		this.searchElement = null;
 17 	}
 18 	this.searchElement = e;
 19 	
 20 	
 21 	if ( this.searchHTML ){
 22 		this.searchElement.innerHTML = this.searchHTML;
 23 		// In case there are <script> tags embedded in the HTML,
 24 		// let's load them.
 25 		loadScripts(this.searchElement);
 26 		this.searchElement.style.display = '';
 27 	} else {
 28 		this.searchElement.innerHTML = '<img src="'+DATAFACE_URL+'/images/progress.gif" alt="Loading search form" />';
 29 		this.searchElement.style.display='';
 30 		getDataReturnText(DATAFACE_SITE_HREF+'?-action=ajax_related_find_form&-relationship='+relationship+'&-related:search='+escape(this.getSearchTerm()), function(text){
 31 			var me = Dataface.RelatedList;
 32 			if ( text ){
 33 				me.searchHTML = text;
 34 			} else {
 35 				me.searchHTML = "[Error loading find form.  No content returned]";
 36 			}
 37 			
 38 			// Now that we have our innerHTML set we can call the showSearch method 
 39 			//  again.
 40 			me.showSearch(null, me.searchElement);
 41 		});
 42 	}
 43 
 44 
 45 };
 46 
 47 Dataface.RelatedList.showAdvancedSearch = function(relationship, e){
 48 	if ( this.advancedSearchElement && this.advancedSearchElement != e ){
 49 		this.advancedSearchElement.innerHTML = '';
 50 		this.advancedSearchElement.style.display = 'none';
 51 		this.advancedSearchElement = null;
 52 	}
 53 	
 54 	this.advancedSearchElement = e;
 55 	
 56 	if ( this.advancedSearchHTML ){
 57 		this.advancedSearchElement.innerHTML = this.advancedSearchHTML;
 58 		// In case there are script tags embedded in the HTML, let's load them
 59 		
 60 		loadScripts(this.advancedSearchElement);
 61 		this.advancedSearchElement.style.display = '';
 62 	} else {
 63 		this.advancedSearchElement.innerHTML = '<img src="'+DATAFACE_URL+'/images/progress.gif" alt="Loading search form" />';
 64 		this.searchElement.style.display='';
 65 		getDataReturnText(DATAFACE_SITE_HREF+'?-action=ajax_related_advanced_find_form&-relationship='+relationship, function(text){
 66 			var me = Dataface.RelatedList;
 67 			if (text){
 68 				me.advancedSearchHTML = text;
 69 			} else {
 70 				me.advancedSearchHTML = "[Error loading advanced find form.  No content returned]";
 71 			}
 72 			
 73 			me.showAdvancedSearch(null, me.advancedSearchElement);
 74 		});
 75 	}
 76 };
 77 
 78 Dataface.RelatedList.hideSearch = function(e){
 79 	e.style.display = 'none';
 80 };
 81 
 82 Dataface.RelatedList.getSearchTerm = function(){
 83 	var qstr = window.location.search;
 84 	var params = qstr.split('&');
 85 	for ( var i=0; i<params.length; i++){
 86 		var parts = params[i].split('=');
 87 		if ( parts[0] == '-related:search' ){
 88 			return unescape(parts[1]);
 89 		}
 90 	}
 91 	return '';
 92 }
 93 
 94 
 95