
Search = function(){

	 var send = function(successcallback, failurecallback, uri, query, method){
	
	   try{
	        var callback =
		    {
		      success:successcallback,
		      failure:failurecallback
		    };
		
		    // Do the ajax call.
		    if(method.toUpperCase()=="GET"){
		        uri = uri+"?"+query;
		    }
		    YAHOO.util.Connect.asyncRequest(method, uri, callback, query);
	    }
	    catch(err){
	        alert(err + ': send');
	    }
	
	 }
	 
	 var browserSupportsAjax = function(){
	      
	      //Mozilla-based browsers
	      var ret = false;
	      if(window.XMLHttpRequest){ 
	          ret = true;
	      } 
	      else if (window.ActiveXObject){ // IE
	          var request=new ActiveXObject("Msxml2.XMLHTTP");
	          if (! request){ 
	              request=new ActiveXObject("Microsoft.XMLHTTP");
	              if(request){
	                  ret = true;
	              }
	          }
	      }
          
          browserSupportsAjax = function(){return ret;};
	      
	      return browserSupportsAjax();
	      
    }
     
    var openEditor = function(){
	   return function(e){
	        YAHOO.util.Event.stopEvent(e);
            YAHOO.util.Dom.setStyle('editor', 'display', 'block');
	   };        
    };
    
    var saveEditor = function(myEditor){
	   return function(e){
	        YAHOO.util.Event.stopEvent(e);
	        myEditor.saveHTML();
	        document.getElementById('whatwecandoforyouText').innerHTML = myEditor.get('element').value; 
            YAHOO.util.Dom.setStyle('editor', 'display', 'none');
	   };        
    };  
    
    var cancelEditor = function(myEditor){
	   return function(e){
	        YAHOO.util.Event.stopEvent(e);
            YAHOO.util.Dom.setStyle('editor', 'display', 'none');
	   };        
    }; 
    
	function onLoginSuccessCallback(){
	      return (function(oRequest){
	          if(oRequest.responseText==-1){
	              alert('Login failed');
	          }
	          else{
	              document.location.href=oRequest.responseText;
	          }
	      });
	} 
	
	function onLoginFailureCallback(){
	      return (function(oRequest){
	          alert('Login failed');
	      });
	};  	   
    
    var login = function(frm, loginAjaxUrl){
	   return function(e){
	   
		    YAHOO.util.Event.stopEvent(e);
		    YAHOO.util.Connect.setForm(frm);
		    var successcallback = onLoginSuccessCallback();
		    var failurecallback = onLoginFailureCallback();
		    SITE.util.Connect.send(successcallback, failurecallback, loginAjaxUrl, '', 'POST');
	   };        
    };
    
	function onSearchSuccess(searchContainer){
	      return (function(oRequest){
		//alert(oRequest.responseText);
	          searchContainer.innerHTML = oRequest.responseText;
	      });
	} 
	
	function onSearchFailure(searchContainer){
	      return (function(oRequest){
	          searchContainer.innerHTML = "Seach failed";
	      });
	}; 
	    
    var doSearch = function(){
	   return function(e){
		    YAHOO.util.Event.stopEvent(e);
		    var frm = document.getElementById('search_form');
		    if(!browserSupportsAjax()){
		    	frm.submit();
		    }
		    else{
			    YAHOO.util.Connect.setForm(frm);
			    var searchContainer = document.getElementById('search_container');
			    searchContainer.innerHTML = 'Searching<img src="ajax_loader.gif" />';
			    if( 0 != YAHOO.env.ua.gecko){ // firefox
			          document.location.href = '?dffget_affid=' + document.getElementById('dffget_affid').value + '&dff_cat1num=' + document.getElementById('dff_cat1num').value + '&dff_keyword=' + escape(document.getElementById('dff_keyword').value);
			    }
			    else{
			          send(onSearchSuccess(searchContainer), onSearchFailure(), 'ajax.php', '', 'GET');
			    }
		    }
		    
	   };        
    };      
   	
	return {
	
	
		init : function(){
	       
		   return function(e){
	         try{	
				YAHOO.util.Event.on('search_button', 'click', doSearch());
		     }
		     catch(err){
		         alert(err + ":init() Search.js");
		     }
		   };
		}
	};
	
	
}();

