/*
 *	Perfect World 
 *		Main Javascript / AJAX control file
 *		
 *	(C)2008 Perfect World Entertainment, Inc.
 */
function getxml() {
	var xmlhttp=null;
	try {
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		try {
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (e) {
			xmlhttp = new XMLHttpRequest();
		}
	}
	return xmlhttp;
}
function getElement(element) {
	if (document.getElementById && document.getElementById(element)) {
		return document.getElementById(element);
	} else if (document.layers && document.layers[element]) {
		return document.layers[element];
	}
}
function fillElement(element,page,vars,hide,show,callback,arg) {
	var xmlhttp = getxml();
	xmlhttp.open("POST", page+"?ajax&"+vars, true);
	xmlhttp.onreadystatechange = function () {
		try {
			if (xmlhttp.readyState == 4) {
				if(element) {
					getElement(element).innerHTML = xmlhttp.responseText;
				}
				var resp = true;
				if(xmlhttp.responseText=="") {
					resp = false;
				}
				if(hide) {
					_hide=getElement(hide);
					if(resp) {
						_hide.style.display="block";
					} else {
						_hide.style.display="none";
					}
				}
				if(show) {
					_show=getElement(show);
					if(resp) {
						_show.style.display="none";
					} else {
						_show.style.display="block";
					}
				}
				if(callback) {
					callback(arg,resp,xmlhttp.responseText,false);
				}
			}
		} catch(e) { 
			try {
				if(callback) {
					callback(arg,false,xmlhttp.responseText,true);
				}
			} catch(e) {
//				alert('callback failed: '+callback);
			}
		}
	}
	xmlhttp.send(null);
}
function fillString(page,vars,callback,arg) {
	var xmlhttp = getxml();
	//alert(page+"?ajax&"+vars);
	xmlhttp.open("POST", page+"?"+vars, true);
	xmlhttp.onreadystatechange = function () {
		try {
			if (xmlhttp.readyState == 4) {
				if(callback) {
					callback(arg,xmlhttp.responseText,false);
				}
			}
		} catch(e) { 
			try {
				if(callback) {
					callback(arg,xmlhttp.responseText,true);
				}
			} catch(e) {
//				alert('callback failed: '+callback);
			}
		}
	}
	xmlhttp.send(null);
	//alert(page+"?"+vars);
} 

var loginForm = null;
function p_init_() {
	document.loginForm = document.login;
	if(document.mini_login) document.loginForm=document.mini_login; 

	try {
		init();
	} catch(e) {}
}

document.getElementsByClassName = function(cl) {
var retnode = [];
var myclass = new RegExp('\\b'+cl+'\\b');
var elem = this.getElementsByTagName('*');
for (var i = 0; i < elem.length; i++) {
var classes = elem[i].className;
if (myclass.test(classes)) retnode.push(elem[i]);
}
return retnode;
}; 