var http_request = false;

function makeRequest(which, url, action) {

	http_request = false;

	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/xml');
		}
	} else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
			http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}

	if (!http_request) {
		alert('Giving up :( Cannot create an XMLHTTP instance');
		return false;
	}
	
	if(action == 'test'){
		doRequest_test();
	}else
	
	if(action == 'add_component'){
		doRequest_addComponent(http_request, which, url); // which is category and url is component to add
	}else if(action == 'gallery_vote'){
		doRequest_galleryVote(http_request, which, url); // which is the image_id and url is the vote
	}else if(action == 'video_vote'){
		doRequest_videoVote(http_request, which, url); // which is the video_id and url is the vote
	}else if(action == 'changeColumns'){
		doRequest_changeColumns(http_request, which, url); // which is component_id|user_id|user_table and url is the new number of columns
	}else if(action == 'component_order'){
		doRequest_saveComponentOrder(http_request, which, url); // which is user_id and url is the user_table
	}else if(action == 'tabs_order'){
		doRequest_saveTabsOrder(http_request, which, url); // which is user_id and url is the user_table
	}else if(action == 'itemval_order'){
		doRequest_saveItemvalOrder(http_request, which, url); // which is itemval|{component_id} and url is the user_id|user_table
	}else if(action == 'itemval_delete'){
		doRequest_deleteItemval(http_request, which, url); // which is itemval_id and url null
	}else if(action == 'component_delete'){
		doRequest_deleteProfileGroup(http_request, which, url); // which is profile_group_id and url is the user_id|user_table
	}else if(action == 'friends_order'){
		doRequest_saveFriendsOrder(http_request, which, url);
	}else if(action == 'songs_order'){
		doRequest_saveSongsOrder(http_request, which, url);
	}else if(action == 'videos_order'){
		doRequest_saveVideosOrder(http_request, which, url);
	}else if(action == 'album_order'){
		doRequest_saveAlbumOrder(http_request, which, url);
	}else if(action == 'album_delete'){
		doRequest_deleteAlbum(http_request, which, url);
	}else if(action == 'image_order'){
		doRequest_saveImageOrder(http_request, which, url);
	}else if(action == 'word_order'){
		doRequest_saveWordOrder(http_request, which, url);
	}else if(action == 'album_delete'){
		doRequest_deleteImage(http_request, which, url);
	}else if(action == 'profileimage'){
		doRequest_profileimage(http_request, which, url);
	}else if(action == 'delete_page'){
		doRequest_deletePage(http_request, which, url); // which is page id, url is np (new page)
	}else if(action == 'move_component'){
		doRequest_moveComponent(http_request, which, url); // which is component_id, url is np (new page)
	}else if(action == 'textbox'){
		doRequest_textbox(http_request, which, url);
	}else if(action == 'change_visible'){
		doRequest_changeVisible(http_request, which, url); // which is profile_group_id|user_id|user_table and url is the new value for visible (1 or 0)
	}else if(action == 'tabs'){
		doRequest_tabs(http_request, which, url); // which is user_id|user_table and url is the current page
	}else if(action == 'pagename'){
		doRequest_pagename(http_request, which, url); // which is user_id|user_table and url is the current page
	}else if(action == 'newpage'){
		doRequest_newpage(http_request, which, url); // which is user_id and url is user_table
	}else if(which == 'controlpanel'){
		doRequest_controlpanel(http_request, 'components/control_panel.php', url, action); // url is actually the user_id and action is actually the user_table
	}else if(which == 'profile'){
		doRequest_profile(http_request, 'profile_components.php', url, action); // url is actually the user_id and action is actually the user_table
	}else{
		var temp = which.split("_");
		var component = temp[0];
		if(component == 'gallery'){
			doRequest_gallery(http_request, which, url, action);
		}
		if(component == 'itemval'){
			doRequest_itemval(http_request, which, url, action);
		}
	}
}