function ajax_showjsp(url) {
	if (window.ActiveXObject) {
		innerXmlHttp = new ActiveXObject("Msxml2.XmlHttp");
	} else {
		if (window.XMLHttpRequest) {
			innerXmlHttp = new XMLHttpRequest();
		} else {
			alert("no AJAX?");
		}
	}
	var strUrl = encodeURI(url);
	innerXmlHttp.open("GET", url, false);
	innerXmlHttp.send(null);
	var strReturn = innerXmlHttp.responseText;
		
		//alert(strReturn);
	if (document.getElementById("uptnote") != null) {
		document.body.removeChild(document.getElementById("uptnote"));
	}
	var newdiv = document.createElement("div");
	newdiv.innerHTML = strReturn;
	newdiv.setAttribute("id", "uptnote");
	newdiv.setAttribute("align", "center");
		//newdiv.style.width = 300 + "px";
		//newdiv.style.height=100 + "px";
	newdiv.style.display = "block";
	document.body.appendChild(newdiv);
	showdiv(newdiv);
}
function ajax_update(url) {
	if (window.ActiveXObject) {
		innerXmlHttp1 = new ActiveXObject("Msxml2.XmlHttp");
	} else {
		if (window.XMLHttpRequest) {
			innerXmlHttp1 = new XMLHttpRequest();
		} else {
			alert("no AJAX?");
		}
	}
	if (url.indexOf("?") > -1) {
		url = url + "&random=" + Math.random();
	} else {
		url = url + "?random=" + Math.random();
	}
	var strUrl = encodeURI(url);
	innerXmlHttp1.open("GET", strUrl, false);
	innerXmlHttp1.send(null);
	var strReturn = innerXmlHttp1.responseText;
	checkLogin(strReturn);
		//alert(strReturn);
	if (strReturn == "success") {
		alert("update success!");
	} else {
		alert("update error!");
	}
}
function ajax_call(url, data) {
	if (window.ActiveXObject) {
		innerXmlHttp1 = new ActiveXObject("Msxml2.XmlHttp");
	} else {
		if (window.XMLHttpRequest) {
			innerXmlHttp1 = new XMLHttpRequest();
		} else {
			alert("no AJAX?");
		}
	}
	if (url.indexOf("?") > -1) {
		url = url + "&random=" + Math.random();
	} else {
		url = url + "?random=" + Math.random();
	}
	var strUrl = encodeURI(url);
	var x = strUrl.indexOf("#");
	while (x > -1) {
		x = strUrl.indexOf("#");
		strUrl = strUrl.replace("#", "%23");
	}
	var method = "GET";
	if (data) {
		method = "POST";
		innerXmlHttp1.open(method, strUrl, false);
		innerXmlHttp1.setRequestHeader("Content-type", "application/x-www-form-urlencoded;charset=UTF-8");
		innerXmlHttp1.setRequestHeader("Content-length", data.length);
		innerXmlHttp1.send(data);
	} else {
		innerXmlHttp1.open(method, strUrl, false);
		innerXmlHttp1.send(null);
	}
	var strReturn = innerXmlHttp1.responseText;
	checkLogin(strReturn);
	return strReturn;
}
function ajaxCallback(url,divname,callback) {
	var aj = new ajaxObj();
	var r = aj.callBackfunc(url, divname, "", callback);
}
function ajaxCallbackNoDiv(url,callback) {
	var aj = new ajaxObj();
	var r = aj.callBackNoDiv(url, callback);
}

function showToDivLoad(url, divname,loading) {	
	var aj = new ajaxObj();	
	var r = aj.callLonding(url, divname, loading);
}
function showToDiv(url, divname) {
	var loading = "<img src='../images/ajax-loading.gif'> ";
	var aj = new ajaxObj();
	
	var r = aj.callLonding(url, divname, loading);
}
function showToDiv2(url, divname, data) {
	try {
		if (timerID != null) {
			clearTimeout(timerID);
		}
	}
	catch (e) {
	}
	var div = document.getElementById(divname);
	var opt = ajax_call(url, data);
	if (opt.indexOf("is Login.jsp") > 1) {
		top.location = "../login.jsp";
	}
	div.innerHTML = opt;
}
function hideToDiv(divname) {
	document.getElementById(divname).innerHTML = "";
}
function replaceAll(str, rep, tostr) {
	var x = str.indexOf(rep);
	while (x > -1) {
		x = str.indexOf(rep);
		str = str.replace(rep, tostr);
	}
	return str;
}
function getParaString(myform) {
	var str = "";
	for (var x0 = 0; x0 < myform.length; x0++) {
		var name = myform[x0].name;
		var type = myform[x0].type;
		var value = myform[x0].value;
		if (type == "image" || type == "button" || type == "submit") {
			continue;
		}
		if (type == "radio") {
			//alert(name +":"+myform[x0].value+":"+myform[x0].checked);
			if (myform[x0].checked == false) {
				continue;
			}
						
		}
		if (type == "checkbox") {
			if (myform[x0].checked == false) {
				continue;
			}
		}
		str = str + name + ";" + value + "|";
	}
	return str;
}
function pubParaToForm(myform, str) {
	for (var x1 = 0; x1 < myform.length; x1++) {
		var name = myform[x1].name;
		var type = myform[x1].type;
		if (type == "image" || type == "button" || type == "submit") {
			continue;
		} else {
			if (type == "checkbox") {
				myform[x1].checked = false;
			}			
		}
		setFormValue(myform[x1], name, type, str);
	}
}
function setFormValue(obj, name, type, str) {
	var strs = str.split("|");
	for (var x2 = 0; x2 < strs.length; x2++) {
		var val = strs[x2].split(";");
		var sname = val[0];
		var value = val[1];
		if (name == sname) {
			if (type == "radio") {
				if(obj.value == value)
				{				
					obj.checked = true;
				}else{
					obj.checked = false;
				}
				continue;
			}
			if (type == "checkbox") {
				if (obj.value == value) {
					obj.checked = true;
				}else{
					obj.checked = false;
				}
				continue;
			}
			
			if (type == "select-one") {
			
				for(var x3=0;x3<obj.options.length;x3++)
				{
					if(obj.options[x3].value == value)
					{
						obj.options[x3].selected = true;						
					} 
				}
				
			}
			
			obj.value = value;
		}
	}
	return;
}
function findValue(str, name) {
	begin = str.indexOf(name);
	if (begin == -1) {
		return "";
	}
	begin2 = str.indexOf(";", begin);
	end = str.indexOf("|", begin2);
	if (end == -1) {
		end = str.length;
	}
	return str.substring(begin2 + 1, end);
}
function show_or_hide(name) {
	var id = document.getElementById(name);
	if (id.style.display == "none") {
		id.style.display = "";
	} else {
		id.style.display = "none";
	}
	return false;
}
function showWindow(url) {
	window.open(url, "newwindow", "height=680, width=540,top=100,left=300,toolbar =no,  scrollbars=yes,, location=no, status=yes");
	return false;
}
function _createXMLHttpRequest() {
	var xmlHttp;
	if (window.XMLHttpRequest) {
		xmlHttp = new XMLHttpRequest();
	} else {
		if (window.ActiveXObject) {
			try {
				xmlHttp = new ActiveXObject("Msxml2.XMLHTTP.3.0");
			}
			catch (e) {
				try {
					xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
				}
				catch (e) {
					newsstring = "error";
				}
			}
		}
	}
	return xmlHttp;
}
function ajax_post_call(url, sBody) {
	var strUrl = encodeURI(url);
	var innerXmlHttp1 = _createXMLHttpRequest();
	innerXmlHttp1.open("post", url, false);
	innerXmlHttp1.setRequestHeader("content-length", sBody.length);
	innerXmlHttp1.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
	innerXmlHttp1.send(sBody);
	var strReturn = "";
	if (innerXmlHttp1.readyState == 4) {
		if (innerXmlHttp1.status == 200) {
			strReturn = innerXmlHttp1.responseText;
			checkLogin(strReturn);
		}
	}
	return strReturn;
}
function getForPara(oForm) {
	var aParams = new Array();
	for (var i = 0; i < oForm.elements.length; i++) {
		var type = oForm.elements[i].type;
		if (type == "radio") {
			if (oForm.elements[i].checked == false) {
				continue;
			}
		}
		if (type == "checkbox") {
			if (oForm.elements[i].checked == false) {
				continue;
			}
		}
		var sParam = oForm.elements[i].name;
		sParam += "=";
		sParam += oForm.elements[i].value;
		aParams.push(sParam);
	}
	return aParams.join("&");
}


function ajaxSubmit(myform) {
	var para = getForPara(myform);
	var result = ajax_post_call(myform.action, para);
	return result;
}

function ajaxSubmitToDiv4Head(divname, myform) {
	var para = getForPara(myform);
	para=encodeURI(para);
	var loading="<table width='520' height='300' border='0' cellspacing='0'><tr><td>&nbsp;<div align='center'><img src='../images/ajax-loading.gif' ></div></td></tr></table>";

	var aj = new ajaxObj();
	var r = aj.callLondingPost(myform.action, para, divname, loading);

}

function ajaxSubmitToDiv(divname, myform) {
	var para = getForPara(myform);
	var loading = "<div align='center'><img src='../images/ajax-loading.gif' ></div> ";
	var aj = new ajaxObj();
	var r = aj.callLondingPost(myform.action, para, divname, loading);

}
function ajaxSubmitToDivCallback(divname, myform, callback) {
	var para = getForPara(myform);
	para = encodeURI(para);
	var loading = "<div align='center'><img src='../images/ajax-loading.gif' ></div> ";
	var aj = new ajaxObj();
	var r = aj.callBackfuncPost(myform.action, para, divname, loading, callback);
}
function ajaxSubmitNoDivCallback(myform, callback) {
	var para = getForPara(myform);
	para = encodeURI(para);
	var aj = new ajaxObj();
	var r = aj.callBackfuncPostNoDiv(myform.action, para, callback);
}

function ajaxObj() {
	var xmlHttp;
	var divname;
	var callback;
	this.createXMLHttpRequest = function () {
		if (window.XMLHttpRequest) {
			xmlHttp = new XMLHttpRequest();
		} else {
			if (window.ActiveXObject) {
				try {
					xmlHttp = new ActiveXObject("Msxml2.XMLHTTP.3.0");
				}
				catch (e) {
					try {
						xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
					}
					catch (e) {
						newsstring = "error";
					}
				}
			}
		}
	};
	this.call = function (url) {
		divname = divname1;
		this.createXMLHttpRequest();
		callback = callback1;
		xmlHttp.open("GET", url, false);
		xmlHttp.send(null);
		return xmlHttp.responseText;
	};
	this.callLonding = function (url, londing_div, londing_txt) {
		divname = londing_div;
		if (londing_txt != "") {
			document.getElementById(divname).innerHTML = londing_txt;
		}
		if (url.indexOf("?") > -1) {
			url = url + "&random=" + Math.random();
		} else {
			url = url + "?random=" + Math.random();
		}
		this.createXMLHttpRequest();
		xmlHttp.onreadystatechange = this.handleStateChange;
		xmlHttp.open("GET", url);
		xmlHttp.send(null);    
		//return xmlHttp.responseText;
	};
	this.handleStateChange = function () {
		if (xmlHttp.readyState == 4) {
			if (xmlHttp.status == 200) {			
				checkLogin(xmlHttp.responseText);
				document.getElementById(divname).innerHTML = xmlHttp.responseText;
			}
		}
	};
	this.callBackfunc = function (url, londing_div, londing_txt, hcallback) {
		callback = hcallback;
		divname = londing_div;
		if (londing_txt != "") {
			document.getElementById(divname).innerHTML = londing_txt;
		}
		if (url.indexOf("?") > -1) {
			url = url + "&random=" + Math.random();
		} else {
			url = url + "?random=" + Math.random();
		}
		this.createXMLHttpRequest();
		xmlHttp.onreadystatechange = this.handleCallback;
		xmlHttp.open("GET", url);
		xmlHttp.send(null);    
		//return xmlHttp.responseText;
	};
	this.handleCallback = function () {
		if (xmlHttp.readyState == 4) {
			if (xmlHttp.status == 200) {
				checkLogin(xmlHttp.responseText);
				document.getElementById(divname).innerHTML = xmlHttp.responseText;
				callback(xmlHttp.responseText);
			}
		}
	};
	this.callBackfuncPost = function (url, sBody, londing_div, londing_txt, hcallback) {
		callback = hcallback;
		divname = londing_div;
		if (londing_txt != "") {
			document.getElementById(divname).innerHTML = londing_txt;
		}
		sBody = sBody + "&random=" + Math.random();
		this.createXMLHttpRequest();
		xmlHttp.onreadystatechange = this.handleCallback;
		xmlHttp.open("post", url);
		xmlHttp.setRequestHeader("content-length", sBody.length);
		xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
		xmlHttp.send(sBody); 
		//return xmlHttp.responseText;
	};
	this.callBackfuncPostNoDiv = function (url, sBody, hcallback) {
		callback = hcallback;
		sBody = sBody + "&random=" + Math.random();
		this.createXMLHttpRequest();
		xmlHttp.onreadystatechange = this.handleCallbackNoDiv;
		xmlHttp.open("post", url);
		xmlHttp.setRequestHeader("content-length", sBody.length);
		xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
		xmlHttp.send(sBody); 
		//return xmlHttp.responseText;
	};
	
	this.callLondingPost = function (url, sBody, londing_div, londing_txt) {
		divname = londing_div;
		if (londing_txt != "") {
			document.getElementById(divname).innerHTML = londing_txt;
		}
		this.createXMLHttpRequest();
		sBody = sBody + "&random=" + Math.random();
		xmlHttp.onreadystatechange = this.handleStateChangePost;
		xmlHttp.open("post", url);
		xmlHttp.setRequestHeader("content-length", sBody.length);
		xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
		xmlHttp.send(sBody); 

		//return xmlHttp.responseText;
	};
	this.handleStateChangePost = function () {
		if (xmlHttp.readyState == 4) {
			if (xmlHttp.status == 200) {
				checkLogin(xmlHttp.responseText);
				document.getElementById(divname).innerHTML = xmlHttp.responseText;
			}
		}
	};
	
	
	
	this.callBackNoDiv = function (url, hcallback) {
		callback = hcallback;
		
		if (url.indexOf("?") > -1) {
			url = url + "&random=" + Math.random();
		} else {
			url = url + "?random=" + Math.random();
		}
		this.createXMLHttpRequest();
		xmlHttp.onreadystatechange = this.handleCallbackNoDiv;
		xmlHttp.open("GET", url);
		xmlHttp.setRequestHeader( "Content-Type", "text/html;charset=UTF-8");
		xmlHttp.send(null);    
		//return xmlHttp.responseText;
	};
	this.handleCallbackNoDiv = function () {
		if (xmlHttp.readyState == 4) {
			if (xmlHttp.status == 200) {
				checkLogin(xmlHttp.responseText);				
				callback(xmlHttp.responseText);
			}
		}
	};
	
		
	
}
function checkLogin(result)
{
	
	var strFullPath=window.document.location.href;
	var strPath=window.document.location.pathname;
	var pos=strFullPath.indexOf(strPath);
	var prePath=strFullPath.substring(0,pos);
	var postPath=strPath.substring(0,strPath.substr(1).indexOf('/')+1);
	//var root = prePath+postPath;
	var root = prePath;
	if(result.indexOf("login.jsp")>0)
	{ 
		document.location=root+"/login.jsp";
	}
}

function IsNum(s) {
	if (s != null && s != "") {
		return !isNaN(s);
	}
	return false;
}
String.prototype.replaceAll = function (s1, s2) {
	return this.replace(new RegExp(s1, "gm"), s2);
};
String.prototype.Trim = function () {
	return this.replace(/(^\s*)|(\s*$)/g, "");
};

function findPosition( oElement ) 
{
  var x2 = 0;
  var y2 = 0;
  var width = oElement.offsetWidth;
  var height = oElement.offsetHeight;
 //alert(width + "=" + height);
  if( typeof( oElement.offsetParent ) != 'undefined' ) 
  {
    for( var posX = 0, posY = 0; oElement; oElement = oElement.offsetParent ) 
    {
      posX += oElement.offsetLeft;
      posY += oElement.offsetTop;      
    }
    x2 = posX + width;
    y2 = posY + height;
    return [ posX, posY ,x2, y2];
    
    } else{
      x2 = oElement.x + width;
      y2 = oElement.y + height;
      return [ oElement.x, oElement.y, x2, y2];
  }
}
		
