/*-------------------------------------------------------------------------------------------
getFormDataAsString
	- single paramter is a FORM object or name attribute or a regular JS object
	- return the getFormElementsByName data in a URI encoded string
	- saves time for ajax component. Instead of adding fields to an HTML FORM, then having 
	ckAjax extract it, we can just send what it needs
-------------------------------------------------------------------------------------------*/
function getFormDataAsString(variant) {
	var value;
	var aMsgBody = Array();
	
	var bFormObj = true;
	if (typeof(variant)=="object") bFormObj = (variant.tagName=="FORM");
	
	var oData = (bFormObj ? formObjectsArray(variant) : variant);
	
	for (var sFieldName in oData)  {
		value = encodeURI((bFormObj ? oData[sFieldName].value : oData[sFieldName]));
		value = value.replace(/&/g,escape('&')); //must be done AFTER encodeURI
		aMsgBody[aMsgBody.length]= sFieldName + "=" + value;
	}
	return aMsgBody.join("&");
}

function getURIEncoded(msgBody) {
	var aParam;
	var aParams = msgBody.split("&");
	for (var index=0; index < aParams.length; index++) {
		aParam = aParams[index].split("=");
		if (aParam[1] != "") {
			aParam[1] = encodeURI(aParam[1]);
			aParam[1] = aParam[1].replace(/&/g,escape('&'));
		}
		aParams[index] = aParam.join("=");
	}
	return aParams.join("&");
}

/*-------------------------------------------------------------------------------------------
getFormDataAsForm
	- single paramter is a FORM object or name attribute
	- return the getFormElementsByName data in a FORM object
-------------------------------------------------------------------------------------------*/
function getFormDataAsForm(variant) {	
	var sActionURL = (arguments.length==2 ? arguments[1] : "");
	var oForm = createForm(sActionURL);	
	
	var aFormObjects = formObjectsArray(variant);
	for (var sFieldName in aFormObjects) addToForm(oForm,sFieldName,aFormObjects[sFieldName].value);
			
	return oForm;	
}
