//Response Function
function ajax_response(r_type,r_data,args){
	//r_type should be always be XML in our case - so lets flag that bit
	var r_xml = r_data;
	var code = r_xml.getElementsByTagName("code")[0].childNodes[0].nodeValue;
	var operation = r_xml.getElementsByTagName("operation")[0].childNodes[0].nodeValue;
	var msg = r_xml.getElementsByTagName("msg")[0].childNodes[0].nodeValue;
	var linktxt = r_xml.getElementsByTagName("linktxt")[0].childNodes[0].nodeValue;
	switch(args.mode){
		case "group":
			if(operation=="turn_on" || operation=="turn_off"){
				var as = document.getElementsByTagName('a');
				var re = new RegExp(args.grp_prefix, "i")
				for( i in as){
					if( re.test(as[i].id) ){ document.getElementById(as[i].id).innerHTML = linktxt }
				}
			}
		break;
		case "fl_friendship_modification":
			if((operation=="turn_on" || operation=="turn_off" && code==0)){ document.getElementById(args.id).innerHTML = linktxt; }		
			if(code==0){ reload_friend_list(); } 
		break;
		case "remove_item":
			if(code==0 || code==1){
				document.getElementById(args.id).innerHTML = linktxt;
			}		
			if(code==0){
				var container = args.container
				var t = setTimeout( function(){ document.getElementById(container).parentNode.removeChild(document.getElementById(container)); } , 1500 );
			}		
		break;		
		default:
			if((operation=="turn_on" || operation=="turn_off") && code==0){ document.getElementById(args.id).innerHTML = linktxt; }
		break;
	}
}
//Load Status function
function ajax_load(loading,args){
	if(loading){
		document.getElementById(args.id).innerHTML = "Loading...";
	}else{
		document.getElementById(args.id).innerHTML = "";	
	}	
}
//No Data function
function ajax_no_data(args){
	alert('No Data');
}

//constructor: var a = new ajax(params, script_name, s_method, output_format, response_func, load_func, no_data_func)
//sendrequest: ajax.sendData(params, script_name, s_method, output_format, response_func, load_func, no_data_func, response_func_arg_array, load_func_arg_array, no_data_func_arg_array)

//define new object
//var a = new ajax('x=666','ajax_test.xml.php','get','xml',ajax_response, ajax_load, ajax_no_data,null,null,null,true);

//Response Function
function ajax_response_fl(r_type,r_data,args){

	// Set Vars
	var r_xml					= r_data;
	var users					= r_xml.getElementsByTagName('user');
	var ids						= r_xml.getElementsByTagName('id');
	var uns						= r_xml.getElementsByTagName('un');
	var imgs					= r_xml.getElementsByTagName('img');
	var target 					= document.getElementById("friend_list_content");	
	
	// Clear Container
	clear_child_nodes(target);

	// Fill Container
	for(i=0 ; i < users.length ; i++){
		
		// Fetch Data
		var uid					= ids[i].childNodes[0].nodeValue;
		var un					= uns[i].childNodes[0].nodeValue
		var img					= imgs[i].childNodes[0].nodeValue
		
		// Prepare container
		var s					= document.createElement('span');
		var tmp					= '';

		// Parse Menu Template
		var content				= window.templates.home_user_menu;
		content					= content.replace(/{id}/, "u_"+uid);
		content					= content.replace(/{username}/, un);
		content					= content.replace(/{r_load_id}/, 'r_load_'+uid);
		content					= content.replace(/{r_a_id}/, 'r_a_'+uid);
		content					= content.replace(/{r_onclick}/, 'remove_user('+uid+')');
		content					= content.replace(/{b_load_id}/, 'b_load_'+uid);
		content					= content.replace(/{b_a_id}/, 'b_a_'+uid);
		content					= content.replace(/{b_onclick}/, 'block_user('+uid+')');
		content					= content.replace(/{s_load_id}/, 's_load_'+uid);
		content					= content.replace(/{s_a_id}/, 's_a_'+uid);
		content					= content.replace(/{s_onclick}/, 'pm_user('+uid+')');
		tmp						= tmp + content;
		
		// Parse Hidden container Template
		var content				= window.templates.hidden_container;
		content					= content.replace(/{id}/, '');
		content					= content.replace(/{content}/, tmp);
		tmp						= content;
				
		var content				= window.templates.home_user;
		content					= content.replace(/{img}/, '<img src="'+img+'" width="50" height="50" alt="'+un+'" class="vm" />');
		content					= content.replace(/{link}/, "user_cp.php?mode=user_profile&amp;id="+uid);
		content					= content.replace(/{onclick}/, '');
		content					= content.replace(/{onmouseover}/, "m.show_menu(document.getElementById('u_"+uid+"'),event);");
		content					= content.replace(/{onmouseout}/, "m.hide_menu(event);");
		content					= content.replace(/{username}/, un);
		content					= content.replace(/{user_menu_data}/, tmp);
		tmp						= content;
		
		// Insert Friend
		s.innerHTML 			= tmp;
		target.appendChild(s);
		
		// Might need to Add event listeners - i dont see the onclick working esp in ie
	}
		
	// Add Float Clear
	var div 				= document.createElement('div');
	div.className			= "h1 cb lh1 fs1";
	target.appendChild(div);	
		
}
//Load Status function
function ajax_load_fl(loading,args){
	if(loading){
		document.getElementById('fl_load').innerHTML = "Loading...";
	}else{
		document.getElementById('fl_load').innerHTML = "";	
	}	
}
//No Data function
function ajax_no_data_fl(args){
	alert('No Data');
}

//constructor: var a = new ajax(params, script_name, s_method, output_format, response_func, load_func, no_data_func)
//sendrequest: ajax.sendData(params, script_name, s_method, output_format, response_func, load_func, no_data_func, response_func_arg_array, load_func_arg_array, no_data_func_arg_array)
