// ajax has built in cache for don't use it use this function for url
	function noCache(uri){return uri.concat(/\?/.test(uri)?"&":"?","forcenocacheid=",(new Date).getTime(),".",Math.random()*1234567)};

	function ajaxGetMethod(url, usecache) {
		// check cache or not
		var req = createXMLHTTP();
		//Get Method
		if(usecache == null || usecache==true) {
			// for enable ajax cache
			req.open("GET", url, false);
		} else {
			// for disabled ajax cache by use some param always change
			req.open("GET", noCache(url), false);
		}
//		req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		req.send(null);
		var output = "";
		if (req.readyState == 4) {
			if (req.status == 200 || req.status == 0) {
				output = req.responseText;
			}
		}
		return output;
	}

// ajax.js
//Function :: createXMLHTTP
//	to create AJAX Object and return it.
//	for IE return 'ActiveXObject'
//	for Other return 'XMLHttpRequest'
function createXMLHTTP() {
	if (window.XMLHttpRequest) {
		return (new XMLHttpRequest());
	} else if (window.ActiveXObject) {
		return (new ActiveXObject("Microsoft.XMLHTTP"));
	} else {
		return null;
	}
}

//Function :: getNodeValue
//	- domNode = target node
//	- elementName = element name of child node
//	to return node-value of child node
//	if not found, return 'invalid'
function getNodeValue(domNode, elementName, defaultValue) {
	try {
		return domNode.getElementsByTagName(elementName)[0].childNodes[0].nodeValue;
	} catch(Exception) {
		if (defaultValue == undefined) {
			return "<font color='#FF0000'>invalid</font>";
		} else {
			return defaultValue;
		}
	}
}

function existNodeValue(domNode, elementName) {
	try {
		var value = domNode.getElementsByTagName(elementName)[0].childNodes[0].nodeValue;
		return true;
	} catch(Exception) {
		return false;
	}
}

function getChildNodes(domNode, elementName) {
	try {
		var nodes = domNode.childNodes;
		var arr = new Array();
		for (var i=0; i<nodes.length; ++i) {
			if (nodes[i].nodeName==elementName) {
				arr[arr.length] = nodes[i];
			}
		}
		return arr;		
	} catch (Exception) {
		return null;
	}
}

function myescape(strval){
	var v = strval;
//	var ch = new Array("~", "!", "@", "#", "$", "%", "^", "&", "*", "(", ")", "{", "}", "[", "]", "=", ":", "/", ",", ";", "?", "+", "'", "\"", "\\");
//	var ech = new Array("%7E", "%21", "@", "%23", "%24", "%25", "%5E", "%26", "*", "%28", "%29", "%7B", "%7D", "%5B", "%5D", "%3D", "%3A", "/", "%2C", "%3B", "%3F", "+", "%27", "%22", "%5C");
// remove # = %23 is not work and $ = %24
	var ch = new Array("~", "!", "@", "$", "%", "^", "&", "*", "(", ")", "{", "}", "[", "]", "=", ":", "/", ",", ";", "?", "+", "'", "\"", "\\");
	var ech = new Array("%7E", "%21", "@", "$", "%25", "%5E", "%26", "*", "%28", "%29", "%7B", "%7D", "%5B", "%5D", "%3D", "%3A", "/", "%2C", "%3B", "%3F", "+", "%27", "%22", "%5C");
	for (var i=0; i<ch.length; ++i) {
	//		v = v.replace(ch[i], ech[i]);
	
		v = replaceAll(v, ch[i], ech[i]);
	}
	return v;
}

function replaceAll(text, oldText, replaceWith) {
	if(text==null) return text;
	if(oldText != null && replaceWith != null) {
		if(oldText==replaceWith){
			return text;
		}
	} else {
	  return text;
	}
	var index = text.indexOf(oldText);
	var remainText = text;
	var result = "";
	while (index > -1) {
	  result += remainText.substring(0,index) + replaceWith;
	  remainText = remainText.substring(index + oldText.length, remainText.length);
	  index = remainText.indexOf(oldText);
	}
	result += remainText;
	return result;
}

