function stopDef(e) {
  if (e &&e.preventDefault){
    e.preventDefault();
  } else if (window.event && window.event.returnValue){
    window.eventReturnValue = false;
  }
}

 
 var AtoZLinks = {"All":"","A":"a*","B":"b*","C":"c*","D":"d*","E":"e*","F":"f*","G":"g*","H":"h*","I":"i*","J":"j*","K":"k*","L":"l*","M":"m*","N":"n*","O":"o*","P":"p*","Q":"q*","R":"r*","S":"s*","T":"t*","U":"u*","V":"v*","W":"w*","X":"x*","Y":"y*","Z":"z*"};

 var AtoMLinks = {"All":"","A":"a*","B":"b*","C":"c*","D":"d*","E":"e*","F":"f*","G":"g*","H":"h*","I":"i*","J":"j*","K":"k*","L":"l*","M":"m*"};
 var NtoZLinks = {"N":"n*","O":"o*","P":"p*","Q":"q*","R":"r*","S":"s*","T":"t*","U":"u*","V":"v*","W":"w*","X":"x*","Y":"y*","Z":"z*"};
 



 VYRE.Plugins.LinkSearch = function(settings) {
 
				
      this.lucenePrefix = null;
      this.links= null;
      this.formInput = null;
      this.form = null;    
      this.elem = null;
      
      if( typeof settings != "undefined" ) {
          for( var property in this) {
              if(typeof settings[property] != "undefined") {
                  this[property] = settings[property];

              }
          }
      }      
	  

	
      this.inverseLinks = {};
      for(var link in this.links) {
        this.inverseLinks[this.links[link]] = link;
      }
	  

      this.ajaxSearch = null;
      this.linksMap = {};
      this.active = {};   
      this.initialise();
  };
  
VYRE.Plugins.LinkSearch.prototype = {

    initialise: function(){
       this.elem.appendChild(this.getHTML());
       if (this.formInput.value =="") {
       
          var active = this.linksMap["All"];
          if (typeof(active) != 'undefined') { VYRE.Utils.editClassName("add",active,"active"); }
           
       }else if (this.linksMap[this.lookup(this.formInput.value)]) {
       
           var active = this.linksMap[this.lookup(this.formInput.value)];
           VYRE.Utils.editClassName("add",active,"active");
           
       }else if(true){
	   
	   }
    },
    
    lookup: function(query) {
    //substring now has no end limit, fix for range searchs, mattr
        query = query.substring(query.indexOf(':')+1);
            
        for (a in this.links) {
        
          if (this.links[a] == query) {
            
            return a;
          }
        
        }
        return false;
    },

    getHTML: function(ajaxSearch){
        var self = this;
        var div = VYRE.Utils.createElement({tag:"div",className:"AtoZPlugin"});
		
        var ul = VYRE.Utils.createElement({tag:"ul"});
        var currentLi = null;
        for(var link in this.links) {
            var li = VYRE.Utils.createElement({tag:"li"});
            var a = VYRE.Utils.createElement({tag:"a", href:"#", innerText:link});
            if (self.active == link) {
               VYRE.Utils.editClassName("add",a,"active");
            }
            this.linksMap[link] = a;
            VYRE.Utils.addEvent(a,"click", function (link) {
                return function (e) {
                    self.change(link);
                    stopDef(e);
                }
            }(link));
            li.appendChild(a);
            ul.appendChild(li);
            currentLi = li;
        }
        li.className="last";
        div.appendChild(ul);
        return div;
    },

    change : function(activeLink) {
       if (activeLink=="All") {
         this.formInput.value="";
         this.form.submit();
       } else {
         this.formInput.value=this.lucenePrefix+":"+this.links[activeLink];
         this.form.submit();
       }
    }
		
  };
