	var divContent = "";
	function callFunction(_page, _functionType, _contentType, _elements) {
		switch(_functionType) {
			case 'Login' :
				if(divContent == "")
				{
					divContent = document.getElementById('loginMsg').innerHTML;
				}
				document.getElementById('loginMsg').innerHTML = '<img src="' + relDir + 'images/busy.gif" width="40" height="10" alt="" /> Sending...';
				var elementArray = _elements.split('|-|');
				var arrayNum = 0;
				var content = "";		
				while (arrayNum < elementArray.length)
				{
					var id = elementArray[arrayNum];

					//set btns for editor
					if(content != "") {
						content += "|-|" + document.getElementById(id).value;
					} else {
						content = document.getElementById(id).value;
					}
					arrayNum += 1;
				}
				callAjax(_page, absDir, relDir, _functionType, _contentType, content, _elements);
				break;
			case 'Logout' :
				if(divContent == "")
				{
					divContent = document.getElementById('logoutMsg').innerHTML;
				}
				document.getElementById('logoutMsg').innerHTML = '<img src="' + relDir + 'images/busy.gif" width="40" height="10" alt="" /> Sending...';
				callAjax(_page, absDir, relDir, _functionType, _contentType, content, _elements);
				break;
			case 'Edit' :
				switch(_contentType)
				{
					case 'static' :
						var elementArray = _elements.split('|-|');
						var arrayNum = 0;
						
						while (arrayNum < elementArray.length)
						{
							var id = elementArray[arrayNum];
							//set btns for editor
							document.getElementById(id+'Btn').innerHTML = '<a href="javascript:void(0);" onclick="callFunction('+ "'" + _page + "'" + ', ' + "'" + 'Save' + "'" + ', ' + "'" + _contentType + "'" + ', ' + "'" + id + "'" + ');" class="BodyLink">Save</a>';
							document.getElementById(id+'Btn').innerHTML += ' <a href="javascript:void(0);" onclick="callFunction('+ "'" + _page + "'" + ', ' + "'" + 'Cancel' + "'" + ', ' + "'" + _contentType + "'" + ', ' + "'" + id + "'" + ');" class="BodyLink">Cancel</a>';
							arrayNum += 1;
						}
						//call wiki editor to edit
						toggleEditor(id);
						break;
					case 'sermon' :
						var elementArray = _elements.split('|-|');
						var arrayNum = 0;
						
						while (arrayNum < elementArray.length)
						{						
							var id = elementArray[arrayNum];
							arrayNum += 1;
						}						
						//call wiki editor to edit
						toggleEditor(id);
						break;
					default :
						break;
				}
				break;
			case 'Cancel' :
				switch(_contentType)
				{
					case 'static' :
						var elementArray = _elements.split('|-|');
						var arrayNum = 0;
						
						while (arrayNum < elementArray.length)
						{
							var id = elementArray[arrayNum];
							//set btns for editor
							document.getElementById(id+'Btn').innerHTML = '<a href="javascript:void(0);" onclick="callFunction('+ "'" + _page + "'" + ', ' + "'" + 'Edit' + "'" + ', ' + "'" + _contentType + "'" + ', ' + "'" + id + "'" + ');" class="BodyLink">Edit</a>';
							arrayNum += 1;
						}
						//call wiki editor to cancel
						toggleEditor(id);
						window.location.reload();
						break;
					case 'sermon' :
						history.go(-1);
						break;
					default :
						break;
				}
				break;
			case 'Clear' :
				switch(_contentType)
				{
					case 'static' :
						break;
					case 'sermon' :
						window.location.reload();
						break;
					default :
						break;
				}
				break;
			case 'Save' :
				switch(_contentType)
				{
					case 'static' :
						var id = _elements;
						//set btns for editor
						if(divContent == "")
						{
							divContent = '<a href="javascript:void(0);" onclick="callFunction('+ "'" + _page + "'" + ', ' + "'" + 'Edit' + "'" + ', ' + "'" + _contentType + "'" + ', ' + "'" + id + "'" + ');" class="BodyLink">Edit</a>';
						}
						document.getElementById(id+'Btn').innerHTML = '<img src="' + relDir + 'images/busy.gif" width="40" height="10" alt="" /> Saving...';
						
						var object = tinyMCE.getInstanceById(id);
						var content = object.getHTML();

						callAjax(_page, absDir, relDir, _functionType, _contentType, content, id);
						toggleEditor(id);
						break;
					case 'sermon' :
						if(divContent == "")
						{
							divContent = document.getElementById('saveMsg').innerHTML;
						}
						var elementArray = _elements.split('|-|');
						var arrayNum = 0;
						var content = "";
						
						while (arrayNum < elementArray.length)
						{
							var id = elementArray[arrayNum];
							//set btns for editor
							if(id == 'txtBody')
							{
								var object = tinyMCE.getInstanceById(id);
								if(content != "") {
									content += "|-|" + object.getHTML();
								} else {
									content = object.getHTML();
								}									
							}
							else
							{
								if(content != "") {
									content += "|-|" + document.getElementById(id).value;
								} else {
									content = document.getElementById(id).value;
								}							
							}
							
							arrayNum += 1;
						}
						
						callAjax(_page, absDir, relDir, _functionType, _contentType, content, _elements);						
						break;
					default :
						break;
				}
				break;
			case 'Delete' :
				switch(_contentType)
				{
					case 'static' :
						break;
					case 'sermon' :
						if(divContent == "")
						{
							divContent = document.getElementById('deleteMsg').innerHTML;
						}
						var elementArray = _elements.split('|-|');
						var arrayNum = 0;
						var content = "";
						
						while (arrayNum < elementArray.length)
						{
							var id = elementArray[arrayNum];
							//set btns for editor
							if(id == 'txtBody')
							{
								var object = tinyMCE.getInstanceById(id);
								if(content != "") {
									content += "|-|" + object.getHTML();
								} else {
									content = object.getHTML();
								}									
							}
							else
							{
								if(content != "") {
									content += "|-|" + id;
								} else {
									content = id;
								}							
							}
							
							arrayNum += 1;
						}
						
						callAjax(_page, absDir, relDir, _functionType, _contentType, content, _elements);						
						break;
					default :
						break;
				}
				break;
			case 'DeleteVideo' :
				switch(_contentType)
				{
					case 'static' :
						break;
					case 'sermon' :
						if(divContent == "")
						{
							divContent = document.getElementById('deleteMsg').innerHTML;
						}
						var elementArray = _elements.split('|-|');
						var arrayNum = 0;
						var content = "";
						
						while (arrayNum < elementArray.length)
						{
							var id = elementArray[arrayNum];
							//set btns for editor
							if(id == 'txtBody')
							{
								var object = tinyMCE.getInstanceById(id);
								if(content != "") {
									content += "|-|" + object.getHTML();
								} else {
									content = object.getHTML();
								}									
							}
							else
							{
								if(content != "") {
									content += "|-|" + id;
								} else {
									content = id;
								}							
							}
							
							arrayNum += 1;
						}
						
						callAjax(_page, absDir, relDir, _functionType, _contentType, content, _elements);						
						break;
					default :
						break;
				}
				break;
			default :
				break;
		}
	}
	/*
	function fileBrowserCallBack(field_name, url, type) {
		// This is where you insert your custom filebrowser logic
		alert("Filebrowser callback: " + field_name + "," + url + "," + type);
	}
	*/
	function toggleEditor(_id) {
		if (tinyMCE.getInstanceById(_id) == null) {
			tinyMCE.execCommand('mceAddControl', false, _id);
		} else {
			tinyMCE.execCommand('mceRemoveControl', false, _id);
			//tinyMCE.execInstanceCommand(_id,'mceCancel');
		}
	}
	
	var xmlHTTP, fType, cType, elements;
	function callAjax(_page, _absDir, _relDir, _functionType, _contentType, _content, _elements) {
		xmlHTTP = GetXmlHttpObject();
		fType = _functionType;
		cType = _contentType;
		elements = _elements;
		content = escape(_content);
		
		if(xmlHTTP==null) {
			alert("no HTTP Request support");
			return;
		}
		var url=_relDir+"scripts/php_common.php";
		//url += "?data=" + _str;
		//url += "&id=" + _id;
		//url += "&page=" + _page;
		//url += "&dir=" + _dir;
		xmlHTTP.onreadystatechange = stateChanged;
		//xmlHTTP.open("Get",url,true);
		//xmlHTTP.send(null);
		xmlHTTP.open("Post",url,true);
		xmlHTTP.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		xmlHTTP.send("page="+_page+"&absDir="+_absDir+"&relDir="+_relDir+"&functionType="+fType+"&contentType="+_contentType+"&content="+content+"&elements="+elements);
	}
	
	function stateChanged() {
		if(xmlHTTP.readyState == 4 || xmlHTTP.readyState == "complete") {
			switch(fType) {
				case "Login" :
					if(xmlHTTP.responseText != "")
					{
						divContent = "";
						window.location.reload(true);
					} else {
						document.getElementById('loginMsg').innerHTML = divContent + ': Invalid login'; 	
					}
					break;
				case "Logout" :
					if(xmlHTTP.responseText == "true")
					{
						divContent = "";
						window.location.reload(true);
					} else {
						document.getElementById('logoutMsg').innerHTML = divContent + ': Failure on log out'; 
					}
					break;
				case "Save" :
					if(xmlHTTP.responseText == "true")
					{
						if(cType == 'sermon')
						{
							document.getElementById('saveMsg').innerHTML = divContent;
							divContent = "";
							window.location = "sermons.php"
						}
						else
						{
							document.getElementById(elements+'Btn').innerHTML = divContent;
							divContent = "";							
						}
					} else {
						if(cType == 'sermon')
						{
							document.getElementById('saveMsg').innerHTML = divContent + ' : Error saving - ' + xmlHTTP.responseText;
						}
						else
						{
							document.getElementById(elements+'Btn').innerHTML = divContent + ' : Error saving - ' + xmlHTTP.responseText;						
						}					
					}
					break;
				case "Delete" :
					if(xmlHTTP.responseText == "true")
					{
						if(cType == 'sermon')
						{
							document.getElementById('deleteMsg').innerHTML = divContent;
							divContent = "";
							window.location = "sermons.php"
						}
						else
						{
							document.getElementById(elements+'Btn').innerHTML = divContent;
							divContent = "";							
						}
					} else {
						if(cType == 'sermon')
						{
							document.getElementById('deleteMsg').innerHTML = divContent + ' : Error deleting - ' + xmlHTTP.responseText;
						}
						else
						{
							document.getElementById(elements+'Btn').innerHTML = divContent + ' : Error deleting - ' + xmlHTTP.responseText;						
						}					
					}
					break;
				case "DeleteVideo" :
					if(xmlHTTP.responseText == "true")
					{
						if(cType == 'sermon')
						{
							document.getElementById('deleteVideoMsg').innerHTML = divContent;
							divContent = "";
							window.location.reload(true);
						}
						else
						{
							document.getElementById(elements+'Btn').innerHTML = divContent;
							divContent = "";							
						}
					} else {
						if(cType == 'sermon')
						{
							document.getElementById('deleteVideoMsg').innerHTML = divContent + ' : Error deleting - ' + xmlHTTP.responseText;
						}
						else
						{
							document.getElementById(elements+'Btn').innerHTML = divContent + ' : Error deleting - ' + xmlHTTP.responseText;						
						}					
					}
					break;
				default :
					break;
			}	
		}
	}
	
	function GetXmlHttpObject() {
		var xmlHTTP = null;
		try {
			//FireFox, Opera 8.0+, Safari
			xmlHTTP = new XMLHttpRequest();
		} catch(e) {
			//Internet Exploder
			try {
				xmlHTTP = new ActiveXObject("Msxml2.XMLHTTP");
			} catch(e) {
				xmlHTTP =new ActiveXObject("Microsoft.XMLHTTP");
			}
		}
		return xmlHTTP;
	}
			