anchor.diff:  					var spanId = newId + '.span';
   					//Element.remove(validValueField);
   					$(spanId).innerHTML="";
  -					
  -					createAE.getTermsByCategory($(categoryValueID).value, function(terms) {
  +
  +                    createAECached.getTermsByCategory($(categoryValueID).value, function(terms) {
   						                   
   
   							var newId = validValueField.id; 
  
positive.code: 								var spanId = newId + '.span';
  								//Element.remove(validValueField);
  								$(spanId).innerHTML="";
  								
  								
  								
  								createAE.getTermsByCategory(0, function(terms) {
  								
  								var selectId =   newId.substring(0,newId.lastIndexOf(".")); 
  			
  
negative.code: 
  		var categoryObjects2 = new Array()
  
          var createAECached = {}
          AE.terms = {}
          createAECached.getTermsByCategory = function(iCategory, fnCallback) {
             var cachedTerms =  AE.terms[iCategory];
             if(cachedTerms == null) {
               createAE.getTermsByCategory(iCategory, function(myterms) {
                   AE.terms[iCategory] = myterms;
                   cachedTerms = myterms;
               });
             }
              fnCallback.apply(this, [cachedTerms]);
  
          }
   		
  		function addRule() {
  				
  