// VGO Ajax v2.0
// Date: 2007/07/30
// Created by Patrick Fan-Chiang
var xmlHttp=null;

function displayWaiting() {
	var htmlStr = '<table width="100%" height="100%" border=0><tr><td align="center" valign="middle"><img src="images/waitingLoader.gif" border="0"></td></tr></table>';
	
	return htmlStr;
}

function ajaxTimeout(){
   xmlHttp.abort();
//   alert("Failure! Due to the networking issue, your request has been terminated. Please try it again! Thank you!");
}

function requestXmlPOST(phpcall, mParam, spanID, mForm) {
	var waitingSet=false;
	
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		xmlHttp = new XMLHttpRequest();
		xmlHttp.abort();
		if (xmlHttp.overrideMimeType) {
         	// set type accordingly to anticipated content type
            //http_request.overrideMimeType('text/xml');
			xmlHttp.overrideMimeType('text/xml');
		}
	} else if (window.ActiveXObject) { // IE
		try {
			xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
			xmlHttp.abort();
		} catch (e) {
			try {
				xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
				xmlHttp.abort();
			} catch (e) {}
		}
	}
	
	if(xmlHttp) {
		var url=phpcall+'?'+mParam
		var parameters = getFormValues(mForm);
	//	alert(parameters);
		xmlHttp.open('POST', url, true);

		xmlHttp.onreadystatechange = function() {
			if (xmlHttp.readyState==1) {
				if(!waitingSet) {
//					var waitStr = displayWaiting();
//					document.getElementById(spanID).innerHTML=waitStr;
					waitingSet = true;
				}
			} 
			if (xmlHttp.readyState==4 && xmlHttp.status==200) {
				clearTimeout(xhrTimeout);
				var xmlobject = xmlHttp.responseXML;

				var root = xmlobject.getElementsByTagName("root")[0];

				var items = root.getElementsByTagName("ajaxdata");
				for (var i = 0 ; i < items.length ; i++) {
					// get one item after another
					var item = items[i];
					// now we have the item object, time to get the contents
					// get the spanid of data
					var mSpanID = item.getElementsByTagName("spanid")[0].firstChild.nodeValue;
					// get text 
					if(typeof(item.getElementsByTagName("rtntext")[0].textContent) != "undefined") {
						var mText = new String(item.getElementsByTagName("rtntext")[0].textContent);
					}else {
						var mText = new String(item.getElementsByTagName("rtntext")[0].firstChild.nodeValue);
					}
					document.getElementById(mSpanID).innerHTML=mText
				}
				
			} 
		}

		xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xmlHttp.setRequestHeader("Content-length", parameters.length);
		xmlHttp.setRequestHeader("Connection", "close");
		xmlHttp.send(parameters);
		var xhrTimeout=setTimeout("ajaxTimeout();", 6000);
	}else {
		alert ("Browser does not support HTTP Request")
		return
	}

}

function requestXmlGET(phpcall, mParam, spanID) { 
	var waitingSet=false;
	
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		xmlHttp = new XMLHttpRequest();
		if (xmlHttp.overrideMimeType) {
         	// set type accordingly to anticipated content type
            //http_request.overrideMimeType('text/xml');
			xmlHttp.overrideMimeType('text/xml');
		}
	} else if (window.ActiveXObject) { // IE
		try {
			xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}

	if(xmlHttp) {
		var url=phpcall+'?'+mParam
		xmlHttp.onreadystatechange = function() {
			if (xmlHttp.readyState==4 && xmlHttp.status==200) {
				clearTimeout(xhrTimeout);
				var xmlobject = xmlHttp.responseXML;
				var disBlackOut = 0;
				var reRunSlideShow = 0;
				
				var root = xmlobject.getElementsByTagName("root")[0];

				var items = root.getElementsByTagName("ajaxdata");
				for (var i = 0 ; i < items.length ; i++) {
					// get one item after another
					var item = items[i];
					// now we have the item object, time to get the contents
					// get the spanid of data
					var mSpanID = item.getElementsByTagName("spanid")[0].firstChild.nodeValue;
					// get text 
					if(typeof(item.getElementsByTagName("rtntext")[0].textContent) != "undefined") {
						var mText = new String(item.getElementsByTagName("rtntext")[0].textContent);
					}else {
						var mText = new String(item.getElementsByTagName("rtntext")[0].firstChild.nodeValue);
					}
					
					if(mSpanID == "reRunGoogleSS") {
						reRunSlideShow = 1
					}else {
						document.getElementById(mSpanID).innerHTML=mText
					}
				}
				if(disBlackOut > 0) vgo_disable_blackout();
				if(reRunSlideShow > 0) {
					google.load("feeds", "1");
					load();
				}
			}else {
				if(!waitingSet) {
					var waitStr = displayWaiting();
//					document.getElementById(spanID).innerHTML=waitStr;
					waitingSet = true;
				}
			}
		}

		xmlHttp.open("GET",url,true)
		xmlHttp.send(null)
		var xhrTimeout=setTimeout("ajaxTimeout();", 15000);
	}
}

function requestXmlPOST2(phpcall, mParam, spanID, mForm, mWaiting) {
	var waitingSet=false;
	
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		xmlHttp = new XMLHttpRequest();
		xmlHttp.abort();
		if (xmlHttp.overrideMimeType) {
         	// set type accordingly to anticipated content type
            //http_request.overrideMimeType('text/xml');
			xmlHttp.overrideMimeType('text/xml');
		}
	} else if (window.ActiveXObject) { // IE
		try {
			xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
			xmlHttp.abort();
		} catch (e) {
			try {
				xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
				xmlHttp.abort();
			} catch (e) {}
		}
	}
	
	if(xmlHttp) {
		var url=phpcall+'?'+mParam
		var parameters = getFormValues(mForm);
	//	alert(parameters);
		xmlHttp.open('POST', url, true);

		xmlHttp.onreadystatechange = function() {
			if (xmlHttp.readyState==1) {
				if(!waitingSet) {
					if(mWaiting) {
						var waitStr = displayWaiting();
						document.getElementById(spanID).innerHTML=waitStr;
					}
					waitingSet = true;
				}
			} 
			if (xmlHttp.readyState==4 && xmlHttp.status==200) {
				clearTimeout(xhrTimeout);
				var xmlobject = xmlHttp.responseXML;

				var root = xmlobject.getElementsByTagName("root")[0];

				var items = root.getElementsByTagName("ajaxdata");
				for (var i = 0 ; i < items.length ; i++) {
					// get one item after another
					var item = items[i];
					// now we have the item object, time to get the contents
					// get the spanid of data
					var mSpanID = item.getElementsByTagName("spanid")[0].firstChild.nodeValue;
					// get text 
					if(typeof(item.getElementsByTagName("rtntext")[0].textContent) != "undefined") {
						var mText = new String(item.getElementsByTagName("rtntext")[0].textContent);
					}else {
						var mText = new String(item.getElementsByTagName("rtntext")[0].firstChild.nodeValue);
					}
					document.getElementById(mSpanID).innerHTML=mText
				}
				
			} 
		}

		xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xmlHttp.setRequestHeader("Content-length", parameters.length);
		xmlHttp.setRequestHeader("Connection", "close");
		xmlHttp.send(parameters);
		var xhrTimeout=setTimeout("ajaxTimeout();", 6000);
	}else {
		alert ("Browser does not support HTTP Request")
		return
	}

}

function requestXmlGET2(phpcall, mParam, spanID, mWaiting) { 
	var waitingSet=false;
	
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		xmlHttp = new XMLHttpRequest();
		if (xmlHttp.overrideMimeType) {
         	// set type accordingly to anticipated content type
            //http_request.overrideMimeType('text/xml');
			xmlHttp.overrideMimeType('text/xml');
		}
	} else if (window.ActiveXObject) { // IE
		try {
			xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}

	if(xmlHttp) {
		var url=phpcall+'?'+mParam
		xmlHttp.onreadystatechange = function() {
			if (xmlHttp.readyState==4 && xmlHttp.status==200) {
				clearTimeout(xhrTimeout);
				var xmlobject = xmlHttp.responseXML;
				
				var root = xmlobject.getElementsByTagName("root")[0];

				var items = root.getElementsByTagName("ajaxdata");
				for (var i = 0 ; i < items.length ; i++) {
					// get one item after another
					var item = items[i];
					// now we have the item object, time to get the contents
					// get the spanid of data
					var mSpanID = item.getElementsByTagName("spanid")[0].firstChild.nodeValue;
					// get text 
					if(typeof(item.getElementsByTagName("rtntext")[0].textContent) != "undefined") {
						var mText = new String(item.getElementsByTagName("rtntext")[0].textContent);
					}else {
						var mText = new String(item.getElementsByTagName("rtntext")[0].firstChild.nodeValue);
					}
					
					document.getElementById(mSpanID).innerHTML=mText
				}
			}else {
				if(!waitingSet) {
					if(mWaiting) {
						var waitStr = displayWaiting();
						document.getElementById(spanID).innerHTML=waitStr;
					}
					waitingSet = true;
				}
			}
		}

		xmlHttp.open("GET",url,true)
		xmlHttp.send(null)
		var xhrTimeout=setTimeout("ajaxTimeout();", 6000);
	}
}


function GetXmlHttpObject(str) { 
	var objXMLHttp=null
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		objXMLHttp = new XMLHttpRequest();
		if (objXMLHttp.overrideMimeType) {
         	// set type accordingly to anticipated content type
            //http_request.overrideMimeType('text/xml');
			objXMLHttp.overrideMimeType('text/html');
		}
	} else if (window.ActiveXObject) { // IE
		try {
			objXMLHttp = new ActiveXObject("Msxml2.XMLHTTP");
			objXMLHttp.loadXML(str);
		} catch (e) {
			try {
				objXMLHttp = new ActiveXObject("Microsoft.XMLHTTP");
				objXMLHttp.loadXML(str);
			} catch (e) {}
		}
	}
	
	return objXMLHttp
}

function getFormValues(fobj) { 
	var str = ""; 
	var valueArr = null; 
	var val = ""; 
	var cmd = ""; 

//	alert("length="+eval("document."+fobj+".elements.length"));
	
	for(var i = 0;i < eval("document."+fobj+".elements.length");i++) { 
//		alert(fobj.elements[i].value);
		switch(eval("document."+fobj+".elements[i].type")) { 
			case "text": 
			case "password":
//				if(valFunc) { 
                    //use single quotes for argument so that the value of 
                    //fobj.elements[i].value is treated as a string not a literal 
//                    cmd = valFunc + "(" + 'fobj.elements[i].value' + ")"; 
//                    val = eval(cmd) 
//                } 
//                str += eval("document."+fobj+".elements[i].name") + "=" + escape(eval("document."+fobj+".elements[i].value")) + "&"; 
                str += eval("document."+fobj+".elements[i].name") + "=" + eval("document."+fobj+".elements[i].value") + "&"; 
                break; 
			case "select-one": 
                str += eval("document."+fobj+".elements[i].name") + "=" + eval("document."+fobj+".elements[i].options[document."+fobj+".elements[i].selectedIndex].value") + "&"; 
                break;
			case "select-multiple":
				while (eval("document."+fobj+".elements[i].selectedIndex") != -1) {
					if ((mIdx=eval("document."+fobj+".elements[i].selectedIndex")) >= 0) {
						str += eval("document."+fobj+".elements[i].name") + "=" + eval("document."+fobj+".elements[i].options[mIdx].value") + "&"; 
						str += "txt_"+eval("document."+fobj+".elements[i].name") + "=" + eval("document."+fobj+".elements[i].options[mIdx].text") + "&"; 
					}
					eval("document."+fobj+".elements[i].options[mIdx].selected = false") ;
//					ob.options[ob.selectedIndex].selected = false;
				}
//                str += eval("document."+fobj+".elements[i].name") + "=" + eval("document."+fobj+".elements[i].options[document."+fobj+".elements[i].selectedIndex].value") + "&"; 
                break;
			case "checkbox":
				if (eval("document."+fobj+".elements[i].checked") == true) {
					str += eval("document."+fobj+".elements[i].name") + "=" + eval("document."+fobj+".elements[i].value") + "&"; 
				}
				break;
			case "hidden":
//                str += eval("document."+fobj+".elements[i].name") + "=" + escape(eval("document."+fobj+".elements[i].value")) + "&"; 
                str += eval("document."+fobj+".elements[i].name") + "=" + eval("document."+fobj+".elements[i].value") + "&"; 
				break;
			case "radio":
				if (eval("document."+fobj+".elements[i].checked") == true) {
					str += eval("document."+fobj+".elements[i].name") + "=" + eval("document."+fobj+".elements[i].value") + "&"; 
				}
				break;
			case "textarea":
				str += eval("document."+fobj+".elements[i].name") + "=" + eval("document."+fobj+".elements[i].value") + "&"; 
				break;
			case "file":
				str += eval("document."+fobj+".elements[i].name") + "=" + eval("document."+fobj+".elements[i].value") + "&"; 
//				alert(str);
				break;
       } 
   } 
   str = str.substr(0,(str.length - 1)); 
   return str; 
}


function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

