function AjaxEngine(){
	
	var args = AjaxEngine.arguments;	
	var objReq = false; 	
	
	
	if (window.XMLHttpRequest) 
		objReq = new XMLHttpRequest();
	else 			
		objReq = new ActiveXObject("Microsoft.XMLHTTP");

	/*
	LIST OF ARGUMENS
	args[0]: task need to be done
	** 'load_engine': @param 0: task
					  @param 1: theme file
					  @param 2: banner pic file
					  @param 3: domain pic file
		'load_theme': @param 0: task
					  @param 1: theme file
					  @param 2: banner pic file
					  @param 3: domain pic file 
	*/

	switch (args[0]){
		case "load_theme":
			ChangeTheme(objReq,args[1]);			
			ChangeBanner(args[2],args[3]);
			break;
		case "change_category":			
			RemoveAllItemsInSelectbox(args[2]);			
			ChangeCategory(objReq,args[1]);
			break;
		case "load_engine":			
			var cookie_current_theme= args[1] + "css/purple.css"; ;
			/*
			if (Get_Cookie('cookie_current_theme')){
			   cookie_current_theme = Get_Cookie('cookie_current_theme');
		   }			   
		   alert(cookie_current_theme + "xx\n");
		   */
			AjaxEngine('load_theme',cookie_current_theme,args[1]+'images/directory.gif',args[1]+'images/domain.gif');			
			break;
		
	}//switch
}


/*============== UTILITIES FUNCS ===========================*/
function checkReadyState(obj)
{ 
	if(obj.readyState == 0) {return false;}
	if(obj.readyState == 1) {return false;}
	if(obj.readyState == 2) {return false;}
	if(obj.readyState == 3) {return false;}
	if(obj.readyState == 4){
		if(obj.status == 200){
			return true;
		}
		else if(obj.status == 404){
			// Add a custom message or redirect the user to another page
			alert("File not found");
			return false;
		}
		else{
			alert("There was a problem retrieving the XML.");
			return false;
		}
	}
}

function ChangeTheme(objReq,new_theme){		

	if(objReq){
		objReq.onreadystatechange=function(){
			if(checkReadyState(objReq)){
				var getheadTag = GetObjectTag('head')[0];				
				setElement = document.createElement('link');
				setElement.setAttribute('rel', 'STYLESHEET');
				setElement.setAttribute('type', 'text/css');
				setElement.setAttribute('href', new_theme);
				getheadTag.appendChild(setElement);
				setElement.text = objReq.responseText;
			}
		}
		objReq.open("GET",new_theme, true);
		objReq.send(null);
		var today = new Date();
		var zero_date = new Date(0,0,0);
		today.setTime(today.getTime() - zero_date.getTime());
		var cookie_expire_date = new Date(today.getTime() + 3600);
		Set_Cookie("cookie_current_theme",new_theme,cookie_expire_date);
	}
}

function ChangeBanner(banner_pic,domain_pic){
	var getBannerDiv = GetObjectID('directory_banner');					
	getBannerDiv.innerHTML = "<img src='" + banner_pic +"' border='0'>";
	
	var getDomainDiv =GetObjectID('domain_picture');
	getDomainDiv.innerHTML = "<img src='"+ domain_pic +"' border='0'>";	
}

function LoadJS(objReq,file){	
	if(objReq){
		objReq.onreadystatechange=function(){
			if(checkReadyState(objReq)){
				var getheadTag = GetObjectTag('head')[0];
				setElememnt = document.createElement('script');
				setElememnt.setAttribute('type', 'text/javascript');
				getheadTag.appendChild(setElememnt);
				setElememnt.text = objRequest.responseText;
			}
		}
		objReq.open("GET",file, true);
		objReq.send(null);
	}
}


function ChangeCategoryEx(objReq,CategoryID){	
	if(objReq){
		objReq.onreadystatechange=function(){
			if(checkReadyState(objReq)){
					var node = objReq.responseXML.documentElement;
					var items = node.getElementsByTagName('subcategory');					
					var items_length = items.length;					
					var SCAT_ID = '';
					var SCAT_NAME = '';
					for (var n=0; n < items_length; n++)
					{			
						SCAT_ID = parseInt(items[n].getElementsByTagName('SCAT_ID').item(0).firstChild.data);	
						SCAT_NAME = items[n].getElementsByTagName('SCAT_NAME').item(0).firstChild.data;						
						var oOption = document.createElement("OPTION");
						document.formEdit.SCategoryID.options.add(oOption);								
						oOption.value= 	SCAT_ID;
						oOption.text = SCAT_NAME;
						if (SCAT_ID==CategoryID) oOption.selected = true;
					}	
			}
		}
		objReq.open("GET", 'xml_subcategory.php?id='+CategoryID, true);
		objReq.send(null);
	}				
}

function ChangeCategory(objReq,CategoryID){	
	if(objReq){
		objReq.onreadystatechange=function(){
			if(checkReadyState(objReq)){
					var node = objReq.responseXML.documentElement;
					var items = node.getElementsByTagName('subcategory');					
					var items_length = items.length;					
					var SCAT_ID = '';
					var SCAT_NAME = '';
					for (var n=0; n < items_length; n++)
					{			
						SCAT_ID = parseInt(items[n].getElementsByTagName('SCAT_ID').item(0).firstChild.data);	
						SCAT_NAME = items[n].getElementsByTagName('SCAT_NAME').item(0).firstChild.data;						
						var oOption = document.createElement("OPTION");
						document.formEdit.SCategoryID.options.add(oOption);								
						oOption.value= 	SCAT_ID;
						oOption.text = SCAT_NAME;
						if (SCAT_ID==CategoryID) oOption.selected = true;
					}	
			}
		}
		if(CategoryID==1) objReq.open("GET", 'xml_1.xml', true);
		else if(CategoryID==2)objReq.open("GET", 'xml_2.xml', true);
		else if(CategoryID==3)objReq.open("GET", 'xml_3.xml', true);
		else {
			return;
		}
		objReq.send(null);
	}				
}