function urlencode(str){
var histogram = {}, histogram_r = {}, code = 0, tmp_arr = [];
var ret = str.toString();
var replacer = function(search, replace, str) {
var tmp_arr = [];
tmp_arr = str.split(search);
return tmp_arr.join(replace);
};
histogram['!']   = '%21';
histogram['%20'] = '+';
ret = encodeURIComponent(ret);
for (search in histogram) {
replace = histogram[search];
ret = replacer(search, replace, ret);
}
return ret.replace(/(\%([a-z0-9]{2}))/g, function(full, m1, m2){
return "%"+m2.toUpperCase();
});
return ret;
}

function urldecode(str){

var histogram = {}, histogram_r = {}, code = 0, str_tmp = [];
var ret = str.toString();
var replacer = function(search, replace, str) {
var tmp_arr = [];
tmp_arr = str.split(search);
return tmp_arr.join(replace);
};
histogram['!']   = '%21';
histogram['%20'] = '+';
for (replace in histogram) {
search = histogram[replace]; // Switch order when decoding
ret = replacer(search, replace, ret) // Custom replace. No regexing   
}
ret = decodeURIComponent(ret);
return ret;
}
function Query(response)
{
	var xml = response;
	var records =  xml.getElementsByTagName("record");
	var record;
	var size = records.length;
	var counter = 0;

	this.next = function()
	{
		record = records[counter];
		counter = counter + 1;
		return counter <= size;
	}

	this.getRecordValue = function( tag )
	{

		var node = record.getElementsByTagName(tag)[0];
		if(node.hasChildNodes())
		{
			return node.firstChild.nodeValue;
         	}
		else
		{
			return "";
		}
	}
	this.getRecordValueAt = function(index, tag )
	{
		var temp = records[index];

		var node = temp.getElementsByTagName(tag)[0];

		if(node.hasChildNodes())
		{
			return node.firstChild.nodeValue;
         	}
		else
		{
			return "";
		}
	}

	this.getValue = function( tag )
	{

		var node = xml.getElementsByTagName(tag)[0];
		

		if(node.hasChildNodes())
		{
			return node.firstChild.nodeValue;
         	}
		else
		{
			return "";
		}

	}
	this.size = function()
	{
		return size;
	}
}

function trim(text)
{
	return text.replace(/^\s+|\s+$/g, '');
}

function GetXmlHttpObject()
{
	var obj=null;
	try
	{
	 	// Firefox, Opera 8.0+, Safari
		obj=new XMLHttpRequest();
	}
	catch (e)
	{
	 	// Internet Explorer
	 	try
	  	{
	  		obj=new ActiveXObject("Msxml2.XMLHTTP");
		}
	 	catch (e)
	  	{
			obj=new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return obj;
}
function purge(id)
{
	var node = document.getElementById(id);
	while(node.hasChildNodes())
	{
		node.removeChild(node.firstChild);
	}

}
function removeOverlay(id)
{
	var overlay = document.getElementById(id);
	if(overlay)
	{
		document.body.removeChild(overlay);
	}
}
function getScrollTop(){
	if(typeof pageYOffset!= 'undefined'){
		//most browsers
		return pageYOffset;
	}
	else{
		var B= document.body; //IE 'quirks'
		var D= document.documentElement; //IE with doctype
		D= (D.clientHeight)? D: B;
		return D.scrollTop;
	}
}


function appendOverlay(obj, boxWidth, boxHeight, id, color)
{
	removeOverlay(id);

	var myWidth = 0, myHeight = 0;
	if( typeof( window.innerWidth ) == 'number' ) {
		//Non-IE
		myWidth = window.innerWidth;
		myHeight = window.innerHeight;
	} else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
		//IE 6+ in 'standards compliant mode'
		myWidth = document.documentElement.clientWidth;
		myHeight = document.documentElement.clientHeight;
	} else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
		//IE 4 compatible
		myWidth = document.body.clientWidth;
		myHeight = document.body.clientHeight;
	}
	
	var overlay = document.createElement("div");
	overlay.id=id;
	var overlay_inner = document.createElement("div");
	var overlay_main = document.createElement("table");
	overlay_main.border="0";
	overlay_main.cellPadding="0";
	overlay_main.cellSpacing="0";
	var corner_tl = document.createElement("div");
	var corner_tr = document.createElement("div");
	var corner_bl = document.createElement("div");
	var corner_br = document.createElement("div");
	var bart = document.createElement("div");
	var barb = document.createElement("div");
	var barl = document.createElement("div");
	var barr = document.createElement("div");
	overlay_main.style.backgroundColor="#fff";
	overlay_main.style.zIndex="1000";
	overlay_main.style.position="absolute";
	overlay_main.style.width = boxWidth -20 +"px";
	overlay_main.style.height = boxHeight -20 +"px";
	overlay_main.style.left= "10px";
	overlay_main.style.top = "10px";
	var tbody = document.createElement("tbody");
	var tr = document.createElement("tr");
	var td = document.createElement("td");

	td.appendChild(obj);
	tr.appendChild(td);
	tbody.appendChild(tr);
	overlay_main.appendChild(tbody);
	

	bart.appendChild(document.createTextNode(""));
	barb.appendChild(document.createTextNode(""));
	barl.appendChild(document.createTextNode(""));
	barr.appendChild(document.createTextNode(""));

	corner_tl.appendChild(document.createTextNode(""));
	corner_tr.appendChild(document.createTextNode(""));
	corner_bl.appendChild(document.createTextNode(""));
	corner_br.appendChild(document.createTextNode(""));

	//filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/system/img/pop_dialog_top_left.png', sizingMethod='scale');


	corner_tl.className = "overlay_part overlay_corner overlay_corner_tl";
	corner_tr.className = "overlay_part overlay_corner overlay_corner_tr";
	corner_bl.className = "overlay_part overlay_corner overlay_corner_bl";
	corner_br.className = "overlay_part overlay_corner overlay_corner_br";
	bart.className = "overlay_part overlay_bart overlay_bar";
	barb.className = "overlay_part overlay_barb overlay_bar";
	barl.className = "overlay_part overlay_barl overlay_bar";
	barr.className = "overlay_part overlay_barr overlay_bar";

	var arVersion = navigator.appVersion.split("MSIE")
	var version = parseFloat(arVersion[1])

	if ((version >= 5.5) && (document.body.filters)) 
	{
		corner_tl.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/system/img/ctl_"+color+".png', sizingMethod='scale')";
		corner_tr.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/system/img/ctr_"+color+".png', sizingMethod='scale')";
		corner_bl.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/system/img/cbl_"+color+".png', sizingMethod='scale')";
		corner_br.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/system/img/cbr_"+color+".png', sizingMethod='scale')";
		bart.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/system/img/bar_"+color+".png', sizingMethod='scale')";
		barb.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/system/img/bar_"+color+".png', sizingMethod='scale')";
		barl.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/system/img/bar_"+color+".png', sizingMethod='scale')";
		barr.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/system/img/bar_"+color+".png', sizingMethod='scale')";
	}
	else
	{
		corner_tl.style.backgroundImage="url(/system/img/ctl_"+color+".png)";
		corner_tr.style.backgroundImage="url(/system/img/ctr_"+color+".png)";
		corner_bl.style.backgroundImage="url(/system/img/cbl_"+color+".png)";
		corner_br.style.backgroundImage="url(/system/img/cbr_"+color+".png)";
		bart.style.backgroundImage="url(/system/img/bar_"+color+".png)";
		barb.style.backgroundImage="url(/system/img/bar_"+color+".png)";
		barl.style.backgroundImage="url(/system/img/bar_"+color+".png)";
		barr.style.backgroundImage="url(/system/img/bar_"+color+".png)";
	}

	bart.style.width=boxWidth-20+"px";
	barb.style.width=boxWidth-20+"px";
	barl.style.height=boxHeight-20+"px";
	barr.style.height=boxHeight-20+"px";
	overlay_inner.appendChild(corner_tl);
	overlay_inner.appendChild(corner_tr);
	overlay_inner.appendChild(corner_bl);
	overlay_inner.appendChild(corner_br);
	
	overlay_inner.appendChild(bart);
	overlay_inner.appendChild(barb);
	overlay_inner.appendChild(barl);
	overlay_inner.appendChild(barr);
	overlay_inner.appendChild(overlay_main);

	overlay.className = "overlay";
	overlay_inner.className = "overlay_inner";
	overlay.style.width = boxWidth + "px";
	overlay.style.height = boxHeight + "px";
	overlay_inner.style.width = boxWidth + "px";
	overlay_inner.style.height = boxHeight + "px";


	overlay.appendChild(overlay_inner);
	var left = Math.floor((myWidth - boxWidth)/2);
	var top =  Math.floor((myHeight - boxHeight)/2);
	overlay.style.left = left+"px";
	overlay.style.top = top+getScrollTop()+"px";
	document.body.appendChild(overlay);
}


function infobox(text)
{
	removeOverlay("infobox");
	var boxWidth = 350;
	var boxHeight = 180;
	var node = document.createElement("div");
	var header = document.createElement('div');
	var body = document.createElement('div');
	var footer = document.createElement('div');
	var span = document.createElement('span');
	span.appendChild(document.createTextNode("系統訊息"));
	span.style.marginLeft="10px";
	
	header.appendChild(span);
	header.style.backgroundColor="#bcd9ff";
	body.style.backgroundColor="#f2f8ff";
	footer.style.backgroundColor="#f2f8ff";

	header.style.height="30px";
	header.style.color="#003366";
	header.style.textAlign="left";
	header.style.lineHeight="30px";

	body.style.height="90px";
	body.style.fontSize="16px";
	footer.style.height="40px";
	footer.style.textAlign="center";


	var table = document.createElement("table");
	table.style.width="100%";
	table.style.height="100%";
	table.border="0";
	table.cellPadding="0";
	table.cellSpacing="0";
	var tbody = document.createElement("tbody");
	var tr = document.createElement("tr");
	var td = document.createElement("td");
	td.align="center";
	

	var textnode = document.createElement("div");
	textnode.appendChild(document.createTextNode(text));
	textnode.className="infoboxtext";
	td.appendChild(textnode);
	tr.appendChild(td);
	tbody.appendChild(tr);
	table.appendChild(tbody);
	body.appendChild(table);


	var okbtn = document.createElement('input');
	okbtn.type="button";
	okbtn.value="OK 了解!";

	okbtn.onclick = function()
	{
		removeOverlay("infobox");
	}
	footer.appendChild(okbtn);

	node.appendChild(header);
	node.appendChild(body);
	node.appendChild(footer);

	appendOverlay(node, boxWidth, boxHeight, "infobox", "orange");
}



function action_open(id, title, body, txt1, action1, txt2, action2 )
{
	var node = document.createElement("div");
	
	var header = document.createElement('div');
	var bodyWrapper = document.createElement('div');
	var footer = document.createElement('div');

	
	var span1 = document.createElement('span');
	span1.appendChild(document.createTextNode(title));
	span1.style.marginLeft="10px";

	header.style.margin="0px";
	bodyWrapper.style.margin="0px";

	header.style.height="30px";
	bodyWrapper.style.height="150px";
	footer.style.height="30px";


	header.style.backgroundColor="#e6e6e6";
	header.style.color="#003366";
	header.style.textAlign="left";
	header.style.lineHeight="30px";


	bodyWrapper.style.backgroundColor="#fbfbfb";
	footer.style.backgroundColor="#fbfbfb";
	footer.style.textAlign="right";

	var btn1 = document.createElement('input');
	var btn2 = document.createElement('input');
	
	btn1.type="button";
	btn2.type="button";
	btn1.value=txt1;
	btn2.value=txt2;
	btn2.style.marginRight="10px";

	btn1.onclick = action1;
	btn2.onclick = action2;

	header.appendChild(span1);
	bodyWrapper.appendChild(body);
	footer.appendChild(btn1);
	footer.appendChild(btn2);

	node.appendChild(header);
	node.appendChild(bodyWrapper);
	node.appendChild(footer);

	appendOverlay(node, 350, 230, id, "black");
}
function $(id)
{
	return document.getElementById(id);
}
var IE = document.all?true:false;
