//#20061208,Samuel,中文

function FancyReqClass () {
	function _createRequest () {
		try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {}
		try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {}
		try { return new XMLHttpRequest(); } catch(e) {}
		window.alert("XMLHttpRequest not supported");
		return null;
	}
	var _request = _createRequest();
	this.getReadyState = function () {return _request.readyState;} //0 = uninitialized,1 = loading,2 = loaded,3 = interactive,4 = complete
	this.getResponseXML = function () {return _request.responseXML;}
	this.getResponseText = function () {return _request.responseText;}
	this.getStatus = function () {return _request.status;}
	this.abort = function () {_request.abort();}
	// --- shentu E 
	this.requestXML = function (url,method,data,handle,isRet) {//method,data can be empty
		if (typeof(method) == 'undefined') {
			method = 'POST';
		}
		var async = true;
		if (typeof(handle) == 'undefined') {
			async = false;
		}
		else{
			handle._request = _request;
		}
		if (_request) { 
			_request.open(method, url, async);
			if (async) {
				_request.onreadystatechange = handle;
			}
			_request.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
			_request.send(data);
			
			if( typeof(isRet) == 'undefined' ){
				isRet = true;
			}
			if( isRet ){
				return _request.responseXML;
			}
		}
	}
	// ---
	this.requestText = function (url,method,data,handle,isRet) {//method,data can be empty
		if (typeof(method) == 'undefined') {
			method = 'POST';
		}
		var async = true;
		if (typeof(handle) == 'undefined') {
			async = false;
		}
		else{
			handle._request = _request;
		}
		if (_request) { 
			_request.open(method, url, async);
			if (async) {
				_request.onreadystatechange = handle;
			}
			_request.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
			_request.send(data);
			
			
			if(typeof(isRet) == 'undefined'){
				isRet = true;
			}
			
			if(isRet){
				return _request.responseText;
			}
			
		}
	}

}

function FancyBase () {}
FancyBase._req = new FancyReqClass();
FancyBase._jsLoads = new Object();
FancyBase._cssLoads = new Object();
FancyBase._idg = -1;
FancyBase.base = ''; // init end with '/'
FancyBase.loadJs = function (js) {
	if (typeof(FancyBase._jsLoads[js]) == 'undefined') {
		FancyBase._jsLoads[js] = true;
		var script = document.createElement('script');
		script.setAttribute('type','text/javascript');
		script.text = FancyBase._req.requestText(FancyBase.base + 'js/' + js,'GET');
		document.getElementsByTagName('head')[0].appendChild(script);
		//window.alert (script.innerHTML);
	}
	//else {
	//	window.alert ('already load!');
	//}
}
FancyBase.loadCss = function (css) {
	if (typeof(FancyBase._cssLoads[css]) == 'undefined') {
		FancyBase._cssLoads[css] = true;
		if (document.all) {
			document.createStyleSheet(FancyBase.base + 'css/' + css);
		}
		else {
			var style = document.createElement('style');
			style.setAttribute('type','text/css');
			style.appendChild(document.createTextNode(FancyBase._req.requestText(FancyBase.base + 'css/' + css,'GET')));
			document.getElementsByTagName('head')[0].appendChild(style);
		}
	}
	//else {
	//	window.alert ('css already load!');
	//}
}
FancyBase.generateID = function () {
	var prefix = '_zidg_';
	FancyBase._idg ++;
	return prefix + FancyBase._idg;
}

