String.prototype.trim = function () {
	var	str = this.replace(/^\s\s*/, ''),
		ws = /\s/,
		i = str.length;
	while (ws.test(str.charAt(--i)));
	return str.slice(0, i + 1);
}

function goURL(src, target) {
	document.location = src;
}

function changeClass(obj, className) {
	obj.className = className;
}

function newXMLHttpRequest() {
	var xmlreq = null;
	if (window.XMLHttpRequest) {
		// Create XMLHttpRequest object in non-Microsoft browsers
		xmlreq = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		// Create XMLHttpRequest via MS ActiveX
		try {
			// Try to create XMLHttpRequest in later versions of Internet Explorer
			xmlreq = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e1) {
			// Failed to create required ActiveXObject
			try {
				// Try version supported by older versions of Internet Explorer
				xmlreq = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e2) {
				alert("Unable to create an XMLHttpRequest with ActiveX");
			}
		}
	}
	return xmlreq;
}

function getReadyStateHandler(req, responseXmlHandler) {
	// Return an anonymous function that listens to the 
	// XMLHttpRequest instance
	return function () {
		// If the request's status is "complete"
		if (req.readyState == 4) {
			// Check that a successful server response was received
			if (req.status == 200) {
				// Pass the XML payload of the response to the handler function
		        responseXmlHandler(req.responseXML);
			} else {
				// An HTTP problem has occurred
				alert("HTTP Error: "+req.status);
			}
		}
	}
}

function callAjax(frmName, handlerFunc, scriptURL) {
	// Obtain an XMLHttpRequest instance
	var req = newXMLHttpRequest();

	// Set the handler function to receive callback notifications.
	handlerFunction = getReadyStateHandler(req, handlerFunc);
	req.onreadystatechange = handlerFunction;
  
	// Open an HTTP POST connection to the scriptURL by asynchronous.
	// Specify that the body of the request contains form data
	req.open("POST", scriptURL, true);
	req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");
	req.send(getForm(document.forms[frmName]));
}

function getForm(obj) {
	var getstr = "";
	for (i=0; i<obj.elements.length; i++) {
		var oChild = obj.elements[i];
		var strTagName = oChild.tagName.toLowerCase();
		var strName = oChild.name;
		if (strTagName == "input") {
			var strType  = oChild.type.toLowerCase();
			if (strType == "text" || strType == "hidden") {
				getstr += strName + "=" + (oChild.value.trim()) + "&";
			}
			if (strType == "checkbox") {
				if (oChild.checked) {
					getstr += strName + "=" + oChild.value + "&";
				} else {
					getstr += strName + "=&";
				}
			}
			if (strType == "radio") {
				if (oChild.checked) {
					getstr += strName + "=" + oChild.value + "&";
				}
			}
		}
		if (strTagName == "textarea") {
			getstr += strName + "=" + (oChild.value.trim()) + "&";
		}
		if (strTagName == "select") {
			getstr += oChild.name + "=" + oChild.options[oChild.selectedIndex].value + "&";
		}
	}
	return getstr;
}

function getXmlTagValue(resXML, nodeName, idx) {
	if ( resXML.getElementsByTagName(nodeName)[idx].firstChild && 
		resXML.getElementsByTagName(nodeName)[idx].firstChild.nodeValue ) {
			return resXML.getElementsByTagName(nodeName)[idx].firstChild.nodeValue;
	} else {
		return "";
	}
}

function appendComment(resXML) {
	if ( resXML == null || resXML == undefined ) {
		alert("Woops DB Error");
		return;
	}
	
	var success = getXmlTagValue(resXML, "success", 0);
	var message = getXmlTagValue(resXML, "message", 0);
	
	if ( success != "true" ) {
		alert(message);
		return false;
	}

	var cSeq		= getXmlTagValue(resXML, "cSeq", 0);
	var rSeq		= getXmlTagValue(resXML, "rSeq", 0);
	var cText		= getXmlTagValue(resXML, "cText", 0);
	var cUName		= getXmlTagValue(resXML, "cUName", 0);
	var cUMail		= getXmlTagValue(resXML, "cUMail", 0);
	var cPass		= getXmlTagValue(resXML, "cPass", 0);
	var cCreateDT	= getXmlTagValue(resXML, "cCreateDT", 0);
	var cModifyDT	= getXmlTagValue(resXML, "cModifyDT", 0);

	window.location.reload();
}