


function getXMLHttpRequestObject()
	{
	var xmlobj;
	// check for existing requests
	if(xmlobj!=null&&xmlobj.readyState!=0&&xmlobj.readyState!=4)
		{
		xmlobj.abort();
		}
	try
		{
		// instantiate object for Mozilla, Nestcape, etc.
		xmlobj=new XMLHttpRequest();
		}
	catch(e)
		{
		try
			{
			// instantiate object for Internet Explorer
			xmlobj=new ActiveXObject('Microsoft.XMLHTTP');
			}
		catch(e)
			{
			// Ajax is not supported by the browser
			xmlobj=null;
			return false;
 			}
		}
	return xmlobj;
	}


// INITIALIZE REFRESH
function updateBullets (rURL, bulletType, rSeconds, rTheme)
	{
	var RefreshRequest = getXMLHttpRequestObject();
	getBulletsData(RefreshRequest, rURL, bulletType, rSeconds, rTheme);
	}


// GET POST FORM DATA
function getBulletsData(PassedRequest, rURL, bulletType, rSeconds, rTheme) 
	{
	if (PassedRequest.readyState == 4 || PassedRequest.readyState == 0) 
		{
		PassedRequest.open("GET", rURL + '/ajaxdata.php?type=bullets&btype=' + bulletType + '&theme=' + rTheme, true);
		PassedRequest.onreadystatechange = function ()
			{
			handleBulletsData(PassedRequest, rURL, bulletType, rSeconds, rTheme);
			} 
		PassedRequest.send(null);
		}			
	}


// HANDLE REFRESH
function handleBulletsData(PassedRequest, rURL, bulletType, rSeconds, rTheme) 
	{
	if (PassedRequest.readyState == 4) 
		{
		var ResponseData = PassedRequest.responseText;
		var DataArray = ResponseData.split('|');
		for (i=0; i < DataArray.length; i++)
			{
			var EachPair = DataArray[i].split("=");
			var SectionID = EachPair[0];
			var ImgURL = EachPair[1];
			if (bulletType == 'section')
				{
				var SectionBulletID = "SectionBullet" + SectionID;
				}
			else if (bulletType == 'forum')
				{
//alert('test');
				var SectionBulletID = "ForumBullet" + SectionID;
				}
else
{
//alert("fail");
}
			if (document.getElementById(SectionBulletID))
				{
				document.getElementById(SectionBulletID).src = ImgURL;
				}
			}
		setTimeout( function()
			{
			getBulletsData(PassedRequest, rURL, bulletType, rSeconds, rTheme);
			}
		,(rSeconds * 1000));
		}
	}



// INITIALIZE POST FORM
function InitializePF (HomeDirPath, ArgItemID, ArgIDType, ArgBoA)
	{
	PFRequest = getXMLHttpRequestObject();
	getPFData(HomeDirPath, ArgItemID, ArgIDType, ArgBoA);
	}


// GET POST FORM DATA
function getPFData(HomeDirPath, ArgItemID, ArgIDType, ArgBoA) 
	{
	if (PFRequest.readyState == 4 || PFRequest.readyState == 0) 
		{
		// EDITING A POST
		if (ArgIDType == 'pid')
			{
			var urlIDType = 'pid';
			var IsAQuote = "ignore";
			var IsAQuoteURL = '';
			var WhatToChange = 'POST' + ArgItemID;
			}
		// QUOTING A POST
		else if (ArgIDType == 'pidq')
			{
			var urlIDType = 'pid';
			var IsAQuoteURL = "&quote=1";
			var IsAQuote = '1';
			var WhatToChange = 'POST' + ArgItemID;
			}
		// ADDING A POST
		else
			{
			var urlIDType = 'id';
			var IsAQuote = "ignore";
			var IsAQuoteURL = '';
			var WhatToChange = 'Post_Form_Area';
			}
		PFRequest.open("GET", HomeDirPath + '/ajaxdata.php?type=postform&' + urlIDType + '=' + ArgItemID + IsAQuoteURL, true);
		PFRequest.onreadystatechange = function ()
			{
			handlePFData(WhatToChange, IsAQuote, 'ignore', ArgBoA);
			}
		PFRequest.send(null);
		}			
	}


// HANDLE THE POST FORM DATA
function handlePFData(DivToChange, IsQuoted, Collapse, BoA) 
	{
	if (PFRequest.readyState == 4) 
		{
		var PostFormArea = document.getElementById(DivToChange);
		if (Collapse != 'ignore')
			{
			var PostItem = document.getElementById('PostFormSurround');
			PostItem.innerHTML = '';
			}
		if (IsQuoted != 'ignore')
			{
			if (BoA == '0')
				{
				PostFormArea.innerHTML = PFRequest.responseText + PostFormArea.innerHTML;
				}
			else
				{
				PostFormArea.innerHTML += PFRequest.responseText;
				}
			}
		else
			{
			PostFormArea.innerHTML = PFRequest.responseText;
			}
		}
	}


function ProcessPFData (BaseDir, PassItemID, ArgIDType, IsQuoteProcess)
	{
	if (IsQuoteProcess != '1')
		{
		var IsQuoteProcess = '0';
		}
	if (PFRequest.readyState == 4 || PFRequest.readyState == 0) 
		{
		if (ArgIDType == 'pid')
			{
			var urlIDType = 'pid';
			var CollapseID = 'ignore';
			var WhatToChange = 'POST' + PassItemID;
			}
		else if (ArgIDType == 'pidq')
			{
			var urlIDType = 'id';
			var CollapseID = 'ignore';
			var WhatToChange = 'POST' + PassItemID;
			}
		// USED WHEN HANDLING ADDING A QUOTED POST
		else if (IsQuoteProcess == '1')
			{
			var urlIDType = 'id';
			var CollapseID = '1';
			var WhatToChange = 'Post_Form_Area';
			}
		else
			{
			var urlIDType = 'id';
			var CollapseID = 'ignore';
			var WhatToChange = 'Post_Form_Area';
			}
		PFRequest.open("POST", BaseDir + '/ajaxdata.php?type=postform&' + urlIDType + '=' + PassItemID, true);
		PFRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		var PostForm = document.getElementById('PostForm');
		var PostQuery = MakeQueryString(PostForm);
		PFRequest.send(PostQuery);
		PFRequest.onreadystatechange = function()
			{
			handlePFData(WhatToChange, 'ignore', CollapseID);
			}
		}
	}



// INITIALIZE REFRESH
function InitializeRefresh (rURL, rSeconds, rDiv)
	{
	var RefreshRequest = getXMLHttpRequestObject();
	setTimeout( function()
		{
		getRefreshData(RefreshRequest, rURL, rSeconds, rDiv);
		}
	,(rSeconds * 1000));
	return true;
	}


// GET POST FORM DATA
function getRefreshData(PassedRequest, rURL, rSeconds, rDiv) 
	{
	PassedRequest.open("GET", rURL, true);
	PassedRequest.onreadystatechange = function ()
		{
		if (PassedRequest.readyState == 4 && PassedRequest.status == 200)
			{
			handleRefreshData(PassedRequest, rURL, rSeconds, rDiv);
			}
		} 
	PassedRequest.send(null);
	return true;
	}


// HANDLE REFRESH
function handleRefreshData(PassedRequest, rURL, rSeconds, rDiv) 
	{
	var repeat = true;
	if (rDiv == 'NewMessage')
		{
		if (PassedRequest.responseText == '1')
			{
			opacity('InboxButton','0','100','3000','1');
			if (typeof(sURL) != "undefined")
				{
				document.getElementById(rDiv).innerHTML = "<embed src='" + sURL + "' hidden='true' autostart='true' loop='false'>";
				}
			if (typeof(newMessageNotification) != "undefined" && typeof(messengerURL) != "undefined")
				{
				var r = confirm(newMessageNotification);
				if (r)
					{
					window.location.href = messengerURL;
					}
				}
			repeat = false;
			}
		}
	else
		{
		if (PassedRequest.responseText != 'undefined' && PassedRequest.responseText != '')
			{
			document.getElementById(rDiv).innerHTML = PassedRequest.responseText;
			}
		}
	if (rDiv == 'ChatRoomMessages' && document.forms['chat_input_form'].elements['lock_scroll_bar'].checked)
		{
		document.getElementById('MessageContainer').scrollTop = document.getElementById('MessageContainer').scrollHeight;
		}
	if (repeat)
		{
		RefreshTime = setTimeout( function()
			{
			getRefreshData(PassedRequest, rURL, rSeconds, rDiv);
			}
		,(rSeconds * 1000));
		}
	}


// LOAD A URL BUT DO NOTHING WITH THE DATA
function loadURL (rURL, thanksMessage) 
	{
	var uRequest = getXMLHttpRequestObject();
	if (uRequest.readyState == 4 || uRequest.readyState == 0) 
		{
		uRequest.open("GET", rURL, true);
		uRequest.send(null);
		if (typeof(thanksMessage) != "undefined")
			{
			alert(thanksMessage);
			}
		}			
	}


// CHANGE THE RADIO STATION
function UpdateDiv(rURL, rDiv) 
	{
	var RadRequest = getXMLHttpRequestObject();
	if (RadRequest.readyState == 4 || RadRequest.readyState == 0) 
		{
		RadRequest.open("GET", rURL, true);
		RadRequest.onreadystatechange = function ()
			{
			handleUpdateDiv(RadRequest, rURL, rDiv);
			} 
		RadRequest.send(null);
		}			
	}


// HANDLE RADIO CHANGE
function handleUpdateDiv(PassedRequest, rURL, rDiv) 
	{
	if (PassedRequest.readyState == 4) 
		{
		var DivName = document.getElementById(rDiv);
		ResponseData = PassedRequest.responseText;
		if (DivName)
			{
			DivName.innerHTML = ResponseData;
			}
		if (rDiv == 'ChatRoomMessages' && document.forms['chat_input_form'].elements['lock_scroll_bar'].checked)
			{
			document.getElementById('MessageContainer').scrollTop = document.getElementById('MessageContainer').scrollHeight;
			}
		}
	}


function changeCalendar (baseDir, type, year, month, sType)
	{
	if (type == 1)
		{
		divName = "SectionCalendar";
		}
	else
		{
		divName = "AllSectionCalendar";
		}
	UpdateDiv(baseDir + "/ajaxdata.php?type=minicalendar&ctype=" + type + "&year=" + year + "&month=" + month + "&stype=" + sType, divName);
	}



function ChangeRadio (rURL)
	{
	var checkValue = document.forms['RADIOFORM']['station'].value;
	if (checkValue == 'add')
		{
		window.location.href = rURL + '/radio.php?action=form';
		}
	elseif (checkValue != 'undefined')
		{
		UpdateDiv(rURL + '/ajaxdata.php?type=radio&id=' + id,'Radio');
		}
	}



function addToCB (BaseDir, mode)
	{
	var CBRequest = getXMLHttpRequestObject();
	CBRequest.open("POST", BaseDir + '/ajaxdata.php?type=addtocb', true);
	CBRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	var FormObject = document.getElementById('CBForm');
	var PostQuery = MakeQueryString(FormObject);
	CBRequest.send(PostQuery);
	if (mode == 2)
		{
		var divName = "ChatterBoxLarge";
		}
	else
		{
		var divName = "ChatterBox";
		}
	var andMode = "&mode=" + mode;
	CBRequest.onreadystatechange = function()
		{
		if (CBRequest.readyState == 4) 
			{
			UpdateDiv(BaseDir + '/ajaxdata.php?type=chatterbox' + andMode, divName);
			document.forms['cboxform']['message'].value = '';
			}
		}
	}


function removeFromCB (BaseDir, ID, mode)
	{
	var CBRequest = getXMLHttpRequestObject();
	CBRequest.open("GET", BaseDir + '/ajaxdata.php?type=removefromcb&id=' + ID, true);
	CBRequest.send(null);
	if (mode == 2)
		{
		var divName = "ChatterBoxLarge";
		}
	else
		{
		var divName = "ChatterBox";
		}
	CBRequest.onreadystatechange = function()
		{
		UpdateDiv(BaseDir + "/ajaxdata.php?type=chatterbox&mode=" + mode, divName);
		}
	}


function updateMyStatus (BaseDir, resSec, resText)
	{
	var Request = getXMLHttpRequestObject();
	Request.open("POST", BaseDir + '/ajaxdata.php?type=my_status_update', true);
	Request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	var FormObject = document.getElementById('MyStatusForm');
	var PostQuery = MakeQueryString(FormObject);
	Request.send(PostQuery);
	Request.onreadystatechange = function()
		{
		if (Request.readyState == 4) 
			{
			var myStatusText = document.forms['mystatus_form']['mystatus_text'].value;
			document.forms['mystatus_form']['mystatus_text'].value = resText;

			setTimeout( function()
				{
				document.forms['mystatus_form']['mystatus_text'].value = '';
				document.forms['mystatus_form']['mystatus_text'].focus();
				}
			,(resSec * 1000));
			}
		}
	}


function deleteFromMyStatus (BaseDir, ID)
	{
	var Request = getXMLHttpRequestObject();
	Request.open("GET", BaseDir + '/ajaxdata.php?type=my_status_delete&id=' + ID, true);
	Request.send(null);
	}


function deleteReplyFromMyStatus (BaseDir, ID, hash)
	{
	var Request = getXMLHttpRequestObject();
	Request.open("GET", BaseDir + '/ajaxdata.php?type=my_status_delete_reply&id=' + ID + '&hash=' + hash, true);
	Request.send(null);
	}


function followMyStatus (BaseDir, followed)
	{
	var Request = getXMLHttpRequestObject();
	Request.open("GET", BaseDir + '/ajaxdata.php?type=my_status_follow&u=' + followed, true);
	Request.send(null);
	}


function stopFollowingMyStatus (BaseDir, followed)
	{
	var Request = getXMLHttpRequestObject();
	Request.open("GET", BaseDir + '/ajaxdata.php?type=my_status_stop_following&u=' + followed, true);
	Request.send(null);
	}


function replyToMyStatus (BaseDir, ID)
	{
	var Request = getXMLHttpRequestObject();
	Request.open("POST", BaseDir + '/ajaxdata.php?type=my_status_reply&id=' + ID, true);
	Request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	var FormObject = document.getElementById('MyStatusReplyForm' + ID);
	var PostQuery = create_request_string(FormObject);
	Request.send(PostQuery);
	}


function createFriendsGroup (BaseDir)
	{
	var aug = document.getElementById('fri_aug');
	var nfga = document.getElementById('fri_nga');
	var ngp = document.getElementById('NewFriendGroupPane');
	var Request = getXMLHttpRequestObject();
	Request.open("POST", BaseDir + '/ajaxdata.php?type=friends_creategroup', true);
	Request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	var FormObject = document.getElementById('CreateFriendsGroupForm');
	var PostQuery = create_request_string(FormObject);
	Request.send(PostQuery);
	Request.onreadystatechange = function()
		{
		if (Request.readyState == 4 || Request.readyState == 0) 
			{
			var gid = Request.responseText;
			var gRequest = getXMLHttpRequestObject();
			gRequest.open("GET", BaseDir+'/ajaxdata.php?type=friends_group&id='+gid, true);
			gRequest.send(null);
			gRequest.onreadystatechange = function()
				{
				if (gRequest.readyState == 4)
					{
					ngp.innerHTML = gRequest.responseText + ngp.innerHTML;
					aug.value += gid + ",";
					nfga.value += gid + ",";
					var addedGroupsArray = nfga.value.split(',');
					for (var f = 0; f < addedGroupsArray.length; f++)
						{
						if (addedGroupsArray[f] != '')
							{
							var egid = addedGroupsArray[f];
							/* load up the jquery related script stuff here (to allow instant interactivity with the new group) */
							runJqueryOnFriendGroup(BaseDir, egid);
							}
						}
					}
				}
			}
		}
	}


function removeFriendFromAllGroups (BaseDir, friend)
	{
	var aug = document.getElementById('fri_aug');
	var allGroupsArray = aug.value.split(',');
	for (var f = 0; f < allGroupsArray.length; f++)
		{
		var egid = allGroupsArray[f];
		loadURL(BaseDir+'/ajaxdata.php?type=friends_removefromgroup&id='+egid+'&user=' + friend);
		UpdateDiv(BaseDir+'/ajaxdata.php?type=friends_groupusers&id='+egid, 'g'+egid+'users');
		}
	}



function runJqueryOnFriendGroup (BaseDir, egid)
	{
	$(function ()
		{
		$("#MFG"+egid).droppable({
		hoverClass: 'friend_mgroup_over', drop: function(event, ui)
			{
			if (ui.draggable.attr('id') != '' && ui.draggable.attr('id') != 'undefined')
				{

				loadURL(BaseDir+'/ajaxdata.php?type=friends_addtogroup&id='+egid+'&user=' + ui.draggable.attr('id'));
				UpdateDiv(BaseDir+'/ajaxdata.php?type=friends_groupusers&id='+egid, 'g'+egid+'users'); 
				}
			}
		});
		$("#g"+egid+"users").sortable({
		stop: function(event, ui)
			{
			orderFriends(BaseDir, egid); UpdateDiv(BaseDir+'/ajaxdata.php?type=friends_groupusers&id='+egid, 'g'+egid+'users');
			}
		});
	});
	}


function deleteFriendsGroup (BaseDir, gid, confirmMessage)
	{
	var r = confirm(confirmMessage);
	if (r)
		{
		var Request = getXMLHttpRequestObject();
		Request.open("GET", BaseDir + '/ajaxdata.php?type=friends_deletegroup&id=' + gid, true);
		Request.send(null);
		document.getElementById('FriendsGroup'+gid).innerHTML = '';
		}
	}


function renameFriendsGroup (BaseDir, gid)
	{
	var Request = getXMLHttpRequestObject();
	Request.open("POST", BaseDir + '/ajaxdata.php?type=friends_renamegroup&id=' + gid, true);
	Request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	Request.send("groupname=" + encodeURIComponent(document.getElementById('fgroup'+gid+'name').value));
	}


function orderFriends (BaseDir, group)
	{
	var Request = getXMLHttpRequestObject();
	var ajaxURL = '';
	var formName = '';
	if (group == 'all')
		{
		ajaxURL = BaseDir + '/ajaxdata.php?type=friends_orderusers';
		}
	else
		{
		ajaxURL = BaseDir + '/ajaxdata.php?type=friends_orderusers&id=' + group;
		}
	formName = 'fg' + group + 'form';
	Request.open("POST", ajaxURL, true);
	Request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	var FormObject = document.getElementById(formName);
	var PostQuery = create_request_string(FormObject);
	Request.send(PostQuery);

	}


function updateItemTags (BaseDir, resSec, resText, itemID)
	{
	var Request = getXMLHttpRequestObject();
	Request.open("POST", BaseDir + '/ajaxdata.php?type=item_tags&id=' + itemID, true);
	Request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	var FormObject = document.getElementById('ItemTagsForm');
	var PostQuery = MakeQueryString(FormObject);
	Request.send(PostQuery);
	Request.onreadystatechange = function()
		{
		if (Request.readyState == 4) 
			{
			var itemTags = document.forms['item_tags_form']['tags'].value;
			document.forms['item_tags_form']['tags'].value = resText;
			setTimeout( function()
				{
				document.forms['item_tags_form']['tags'].value = itemTags;
				document.forms['item_tags_form']['tags'].blur();
				}
			,(resSec * 1000));
			}
		}
	}


function updateAdTags (BaseDir, resSec, resText, adID)
	{
	var Request = getXMLHttpRequestObject();
	Request.open("POST", BaseDir + '/ajaxdata.php?type=ad_tags&id=' + adID, true);
	Request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	var FormObject = document.getElementById('AdTagsForm');
	var PostQuery = MakeQueryString(FormObject);
	Request.send(PostQuery);
	Request.onreadystatechange = function()
		{
		if (Request.readyState == 4) 
			{
			var adTags = document.forms['ad_tags_form']['tags_' + adID].value;
			document.forms['ad_tags_form']['tags_' + adID].value = resText;
			setTimeout( function()
				{
				document.forms['ad_tags_form']['tags_' + adID].value = adTags;
				document.forms['ad_tags_form']['tags_' + adID].blur();
				}
			,(resSec * 1000));
			}
		}
	}


function removeAdminNotice (baseDir, lineID)
	{
	var fetchURL = baseDir + "/ajaxdata.php?type=remove_admin_notice&lid=" + lineID;
	var Request = getXMLHttpRequestObject();
	Request.open("GET", fetchURL, true);
	Request.send(null);
	Request.onreadystatechange = function()
		{
		if (Request.readyState == 4) 
			{
			var d = document.getElementById('AdminPane');
			var rdata = Request.responseText;
			d.innerHTML = rdata;
			}
		}
	}


function voteOnPoll (BaseDir, pollID)
	{
	var fetchURL = BaseDir + "/ajaxdata.php?type=vote_on_poll&id=" + pollID;
	var Request = getXMLHttpRequestObject();
	Request.open("POST", fetchURL, true);
	Request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	var FormObject = document.getElementById('Poll' + pollID + 'Form');
	var PostQuery = create_request_string(FormObject);
	Request.send(PostQuery);
	Request.onreadystatechange = function()
		{
		if (Request.readyState == 4) 
			{
			UpdateDiv(fetchURL, "POLL" + pollID);
			}
		}
	}


function reportItem (BaseDir, itemID, thanksMessage)
	{
	var fetchURL = BaseDir + "/ajaxdata.php?type=report_item&id=" + itemID;
	var Request = getXMLHttpRequestObject();
	Request.open("POST", fetchURL, true);
	Request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	var FormObject = document.getElementById('ReportItemForm');
	var PostQuery = MakeQueryString(FormObject);
	Request.send(PostQuery);
	Request.onreadystatechange = function()
		{
		if (Request.readyState == 4) 
			{
			alert(thanksMessage);
			}
		}
	}


function subscribeToMailingList (BaseDir)
	{
	var fetchURL = BaseDir + "/ajaxdata.php?type=mailing_list";
	var Request = getXMLHttpRequestObject();
	Request.open("POST", fetchURL, true);
	Request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	var FormObject = document.getElementById('MailingListForm');
	var PostQuery = create_request_string(FormObject);
	Request.send(PostQuery);
	Request.onreadystatechange = function()
		{
		if (Request.readyState == 4) 
			{
			var d = document.getElementById('MailingListPane');
			var rdata = Request.responseText;
			d.innerHTML = rdata;
			}
		}
	}


function updateManageAccessList (BaseDir, type, key, module, resSec)
	{
	var divName = 'ManageAccessListButtonArea_' + type + '_' + key + '_' + module;

	var resultName = 'ManageAccessListResultArea_' + type + '_' + key + '_' + module;
	var formName = 'module_access_form_' + module;
	if (module != 'undefined' && module != '')
		{
		fmodule = "acc_" + module;
		}
	else
		{
		fmodule = 'acc';
		}

	// SHOW THE BUTTON
	if (document.forms[formName][fmodule].value == 0 && module != 'override')
		{
		UpdateDiv(BaseDir + '/ajaxdata.php?type=manage_access_list_button&ltype=' + type + '&key=' + key + '&module=' + module, divName);
		}
	else if (module != 'override')
		{
		document.getElementById(divName).innerHTML = '';
		}
	// SAVE THE SETTING
	UpdateDiv(BaseDir + '/ajaxdata.php?type=manage_access_list_save&ltype=' + type + '&key=' + key + '&module=' + module + '&value=' + document.forms[formName][fmodule].value, resultName);
	setTimeout( function()
		{
		document.getElementById(resultName).innerHTML = '';
		}
	,(resSec * 1000));
	}


function updateVersionField (BaseDir, sectionID)
	{
	var projectID = document.forms['submitform']['issue_project'].value;
	UpdateDiv(BaseDir + '/ajaxdata.php?type=version_field&section=' + sectionID + '&project=' + projectID, 'ProjectVersionField');
	}


function updateIssueField (BaseDir, ItemID, IssueField, resSec, whatType, isLocked, form, issueTracking)
	{
	var Request = getXMLHttpRequestObject();
	Request.open("POST", BaseDir + '/ajaxdata.php?type=issue_update_field&id=' + ItemID + '&field=' + IssueField, true);
	Request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	var FormObject = document.getElementById('IssueUpdateForm');
	var PostQuery = MakeQueryString(FormObject);
	Request.send(PostQuery);
	Request.onreadystatechange = function()
		{
		if (Request.readyState == 4) 
			{
			UpdateDiv(BaseDir + '/ajaxdata.php?type=feedback&id=' + ItemID + '&whattype=' + whatType + '&islocked=' + isLocked + '&form=' + form + '&issue_tracking=' + issueTracking, 'Feedback' + ItemID);
			UpdateDiv(BaseDir + '/ajaxdata.php?type=issue_update_message&result=1', 'IssueStatusNotification');
			setTimeout( function()
				{
				UpdateDiv(BaseDir + '/ajaxdata.php?type=issue_update_message&result=0', 'IssueStatusNotification');
				}
			,(resSec * 1000));
			}
		}
	}


function MakeQueryString(formname)
	{
	var str = "";
	var element, i = 0;
	while ((element = formname.elements[i++]) != null)
		{
        	var qc = MakeQueryElement(element);
       		if (qc != "") str += "&" + qc;
		}
	return str.substring(1);
	}


function MakeQueryElement(input) {
    if (!input.name || input.disabled)
        return "";

    var n = urlencode(input.name);

    switch (input.type) {
    case "text":
    case "password":
    case "submit":
    case "hidden":
        return n + "=" + urlencode(input.value);
    case "textarea":
        // normalize line breaks as CR LF pairs as per RFC 1866
        

	// OLD METHOD ---> var v = input.value.split(/\r\n|\r|\n/).join("\r\n");
	// RECOMMENDED FIX --->

	var v = input.value.replace(/(\r\n)|\r|\n/g, "\r\n");

        return n + "=" + urlencode(v);
    case "checkbox":
    case "radio":
        if (!input.checked)
            return "";
        var v = getRealValue(input);
        if (v === null) v = "on";
        return n + "=" + urlencode(v);
    case "select-one":
    case "select-multiple":
        var nvp = [];
        var opt, i = 0;
        while ((opt = input.options[i++]) != null) {
            if (opt.selected) {
                var v = getRealValue(opt);
                if (v === null) v = opt.text;
                // older versions of IE do not support Array.push
                nvp[nvp.length] = n + "=" + urlencode(v);
            }
        }
        return nvp.join("&");
    default:
        // input types reset, button, image, and file not implemented
        return "";
    }
}

function urlencode(str)
	{
	var v;
	try { v = encodeURIComponent(str); } catch (e) { v = escape(str); }
	return v.replace(/%20/g,"+");
	}

function getRealValue(input)
	{
	var attr = input.getAttributeNode("value");
	return (attr && attr.specified) ? input.getAttribute("value") : null;
	}


function create_request_string(theForm)
{
var reqStr = "";

for(i=0; i < theForm.elements.length; i++)
{
isFormObject = false;

switch (theForm.elements[i].tagName)
{
case "INPUT":

switch (theForm.elements[i].type)
{
case "text":
case "hidden":
reqStr += theForm.elements[i].name + "=" + encodeURIComponent(theForm.elements[i].value);
isFormObject = true;
break;

case "checkbox":
if (theForm.elements[i].checked)
{
reqStr += theForm.elements[i].name + "=" + theForm.elements[i].value;
}else{
reqStr += theForm.elements[i].name + "=";
}
isFormObject = true;
break;

case "radio":
if (theForm.elements[i].checked)
{
reqStr += theForm.elements[i].name + "=" + theForm.elements[i].value;
isFormObject = true;
}
}
break;

case "TEXTAREA":

reqStr += theForm.elements[i].name + "=" + encodeURIComponent(theForm.elements[i].value);
isFormObject = true;
break;

case "SELECT":
var sel = theForm.elements[i];
reqStr += sel.name + "=" + sel.options[sel.selectedIndex].value;
isFormObject = true;
break;
}

if ((isFormObject) && ((i+1)!= theForm.elements.length))
{
reqStr += "&";
}

}

return reqStr;
} 

