	function __HandleEventForAjax(Event, AjaxPanelID)
	{
			 var EventHandler = new GEventHandler(Event);
			 EventHandler.AjaxPanelID = AjaxPanelID;
			 EventHandler.HandleGeneric();
			 EventHandler.CompleteAjaxAction();
	}
	
	/*
	function GenericCallbackFunction(Response, AjaxPanelID)
	{
			  var EventHandler = new GEventHandler(Event);
			  EventHandler.AjaxPanelID = AjaxPanelID;
			  EventHandler.HandleGeneric();
			  EventHandler.CompleteAction();
			 
			  var AjaxPanel = document.GetElementById(AjaxPanelID);
			  if(Response && AjaxPanel){
			  
				 AjaxPanel.innerHTML = Response.HTML;
			  }
	}
	*/
	function __HandleEvent(Event)
	{
			 var EventHandler = new GEventHandler(Event);
			 EventHandler.HandleGeneric();
			 EventHandler.CompleteAction();
	}
	
	function GEventHandler(Event)
	{
			  this.IsFormSubmit = false;
			  this.Href = '';
			  this.EventOwnerObj = Event.srcElement || Event.target;
			  this.AjaxPanelID = '';
			  //alert(this.EventOwnerObj.getAttribute('request'));
			  if((this.EventOwnerObj.getAttribute('request') == null || this.EventOwnerObj.getAttribute('request') == '') && this.EventOwnerObj.parentNode.tagName == 'A'){
			  
			     this.EventOwnerObj = this.EventOwnerObj.parentNode;
			  }
			  //alert(this.EventOwnerObj.tagName);
			  if(Event.preventDefault){
					 
				 Event.preventDefault();
			  }
			  else{
					    
				 Event.cancelBubble = true;
				 Event.returnValue = false;
			  }
	}
	
	GEventHandler.prototype.HandleGeneric = function()
	{
			  if(this.EventOwnerObj.form){
					 
				 this.IsFormSubmit = true;
				 var HiddenVar = document.createElement('input');
				 if(HiddenVar){
					    
					HiddenVar.type = 'hidden';
					HiddenVar.id = 'request';
					HiddenVar.name = 'request';
					HiddenVar.value = this.EventOwnerObj.getAttribute('request');
					//alert(HiddenVar.value);
					this.EventOwnerObj.form.appendChild(HiddenVar);
				 }
			  }
			  else{
			  
			      this.IsFormSubmit = false;
			      this.Href = this.EventOwnerObj.getAttribute('href');
				  var RequestVar = this.EventOwnerObj.getAttribute('request');
				  //*
				  if(this.Href){
				  
					 if(this.Href.indexOf('?') == -1){
					 	 
						this.Href += '?request=' + RequestVar;
					 }
					 else{
					 	 
						this.Href += '&request=' + RequestVar;
					 }
				  }
				  else{
				  
					 this.Href = '?request=' + RequestVar;
				  }
				  //*/
			  }
	}
	
	GEventHandler.prototype.CompleteAction = function()
	{
			  try{
			  
				  if(this.IsFormSubmit == true){
					 
					 var Form1 = this.EventOwnerObj.form;
					 var Validation = this.EventOwnerObj.form.getAttribute('validate');
					 //alert(Validation);
					 var StopSubmit = false;
					 if(Validation && Validation != 'true'){
					 
					    StopSubmit = !($("#" + Validation).valid());
					 }
					 if(StopSubmit == false){
					 
						this.EventOwnerObj.form.submit();
					 }
				  }
				  else{
			  
					 if(this.EventOwnerObj.getAttribute('target') == '_blank'){
					 
					    window.open(this.Href);
					 }
					 else{
					 
						window.location = this.Href;
					 }
				 }	  
			  }
			  catch(e){
			  
				 alert("Complete Action: " + e.message);
			  }
	}
	
	GEventHandler.prototype.CompleteAjaxAction = function()
	{
			  try{
			  
				  if(this.IsFormSubmit == true){
					 
					 var Form1 = this.EventOwnerObj.form;
					 var Validation = this.EventOwnerObj.form.getAttribute('validate');
					 //alert(Validation);
					 var StopSubmit = false;
					 if(Validation && Validation != 'true'){
					 
					    StopSubmit = !($("#" + Validation).valid());
					 }
					 if(StopSubmit == false){
					 
						var Params = '';
						for(var i = 0; i < Form1.elements.length; i++){
						
							//alert(Form1.elements[i].nodeName.toLowerCase() + '<>' + Form1.elements[i].name);
							if(Form1.elements[i].name != ''){
							
							   var Name = '';
							   var Value = '';
							   if(Form1.elements[i].nodeName.toLowerCase() == 'input'){
							
								  if(Form1.elements[i].type == 'checkbox'){
							      
									 if(Form1.elements[i].checked == true){
									 
									    Name = Form1.elements[i].name;
										Value = Form1.elements[i].value;
									 }
							      }
							      else{
							      
									 Name = Form1.elements[i].name;
									 Value = Form1.elements[i].value;
								  }
							   }
							   else if(Form1.elements[i].nodeName.toLowerCase() == 'select' && Form1.elements[i].selectedIndex > -1){
							
								  Name = Form1.elements[i].name;
							      Value = Form1.elements[i].options[Form1.elements[i].selectedIndex].value;
							   }
							   else if(Form1.elements[i].nodeName.toLowerCase() == 'textarea'){
							
								  Name = Form1.elements[i].name;
							      Value = Form1.elements[i].value;
							   }
							   if(Name != ''){
							   
								  Params += (i == 0)?'':'&';
								  Params += Form1.elements[i].name + '=' + Value;
							   }
							}
						}
						//alert(Params);
						var AjaxPanel = document.getElementById(this.AjaxPanelID);
						if(AjaxPanel){
						 
						   AjaxPanel.innerHTML = '<p style="margin-left: 10px; font-size: 12pt; font-weight: bold;">Loading .... Please wait ...</p>';
						}
						var AjaxPanelID = this.AjaxPanelID;
						$.ajax({
						
							type: "POST",
							url: Form1.getAttribute('action'),
							data: Params,
							success: function(ResponseHTML){
									 
									 //alert(ResponseHTML);
									 var AjaxPanel = document.getElementById(AjaxPanelID);
									 //alert(AjaxPanel);
									 if(AjaxPanel){
									 
										AjaxPanel.innerHTML = ResponseHTML;
									 }
						    }
						 });
	
						//alert(Params);
					 }
				  }
				  else{
			  
					 //alert(this.Href);
					 //alert(this.AjaxPanelID);
					 var AjaxPanel = document.getElementById(this.AjaxPanelID);
					 if(AjaxPanel){
					 
						AjaxPanel.innerHTML = '<p style="margin-left: 10px; font-size: 12pt; font-weight: bold;">Loading .... Please wait ...</p>';
						$('#' + this.AjaxPanelID).load(this.Href);
					 }
					 //window.location = this.Href;
				 }	  
			  }
			  catch(e){
			  
				 alert("CompleteAjaxAction: " + e.message);
			  }
	}
