﻿/***************************************
 * Config file
 ***************************************/
var cfg = {};

cfg["so"] = {};

cfg["js"] = {};

cfg["css"] = {};

/***************************************
 * common function
 ***************************************/
//**************************************************
// Check browse version 'IE' or 'FF' or 'OP' or 'SA'
//**************************************************
var flagEX = document.all ? "IE" : "FF";
var is_ie6 = window.navigator.userAgent.indexOf("MSIE 6") != -1 ? true : false;
var is_ie7 = window.navigator.userAgent.indexOf("MSIE 7") != -1 ? true : false;
var is_ff = window.navigator.userAgent.indexOf("Firefox") != -1 ? true : false;

//************************************
//view Object function and Property
//************************************
function getobjparm(obj) {
	var funcstr = "function:\n";
	for (var p in obj ){
			funcstr += p+"<br/>";
	}
	document.body.innerHTML = funcstr;
	funcstrr = null;
}
//************************************
// Get Element Object Client X-Y
//************************************
function getElementXY(e) {
	var t = new Array();
	t['top'] = e.offsetTop;
	t['left'] = e.offsetLeft;
	while (e = e.offsetParent) {
		t['top'] += e.offsetTop;
		t['left'] += e.offsetLeft;
	}
	return t;
}
//************************************
// Create and return httpxml Object
//************************************
function clsajax() {
	var xmlhttp;
	if (flagEX == "IE" ){
		xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		xmlhttp = new window.XMLHttpRequest();
	}
	return xmlhttp;
}
//**********************
// Load xml document
//**********************
var loadXML = function(xmlFile) {
	var xmlDoc;
	if(window.ActiveXObject){
		xmlDoc = new ActiveXObject('Microsoft.XMLDOM');
		xmlDoc.async = false;
		xmlDoc.load(xmlFile);
	} else if (document.implementation&&document.implementation.createDocument){
		xmlDoc = document.implementation.createDocument('', '', null);
		xmlDoc.async = false;
		xmlDoc.load(xmlFile);
	} else {
		return null;
	}
	return xmlDoc;
}
//********************
// Show title info
//********************
var msgdiv;
function showclew() {
	if (flagEX == "IE" && document.readyState != "complete") return;
	var srcObj = arguments[1] ? arguments[1] : this;
	if (!msgdiv) {
		msgdiv = document.createElement("DIV");
		document.body.appendChild(msgdiv);
	}
	srcObj.onmousemove = clewmove;
	srcObj.onmouseout = closeclew;
	msgdiv.style.position = "absolute";
	msgdiv.style.padding = "3px 3px 0 3px";
	msgdiv.style.border = "1px solid #ffa200";
	msgdiv.style.backgroundColor = "#ffecc0";
	msgdiv.innerHTML = srcObj.getAttribute("clewmsg");
	msgdiv.style.visibility = "visible";
	srcObj = null;
}

function clewmove() {
	var flag = this.getAttribute("clewflag");
	if (flag == "mouse") {
		var evt = arguments[0] ? arguments[0] : window.event;
		var bod = document.documentElement ? document.documentElement : document.body;
		msgdiv.style.top = flagEX == "FF" ? (evt.pageY + 10) + "px" : (evt.y + 10) + bod.scrollTop + "px";
		msgdiv.style.left = flagEX == "FF" ? (evt.pageX + 10) + "px" : (evt.x + 10) + "px";
		evt = bod = null;
	} else {
		var t = getElementXY(this);
		msgdiv.style.top = t['top'] + "px";
		msgdiv.style.left = (t['left'] + this.clientWidth) + "px";
		t = null;
	}
	flag = null;
}

function closeclew() {
	msgdiv.style.visibility = "hidden";
}

//******************************************
// Move element object
//******************************************
var currX,currY,moveflag;
var xLeft,xTop,currWindow;
function evt_moveWindow() {
	var evt = arguments[0] ? arguments[0] : window.event;
	currWindow = arguments[1];
	//$(currWindow).style.backgroundColor = "#F4F7FE";
	$(currWindow).onmouseup = evt_stopWindow;
	moveflag = true;
	currX = evt.clientX;
	currY = evt.clientY;
	xLeft = parseInt($(currWindow).style.left);
	xTop = parseInt($(currWindow).style.top);
	if (flagEX == "IE") {
		$(currWindow).setCapture();
		$(currWindow).onmousemove = evt_mouseMove;
	} else {
		window.onmousemove = evt_mouseMove;	
	}
}

function evt_stopWindow() {
	if (flagEX == "IE") {
		$(currWindow).onmousemove = "";
		this.releaseCapture();
	} else {
		window.onmousemove = "";
	}
	//$(currWindow).style.backgroundColor = "white";
	moveflag = false;
}

function evt_mouseMove() {
	var evt = arguments[0] ? arguments[0] : window.event;
	if (moveflag) {
		//$("clakeboy").innerHTML =  (xTop + (evt.clientY - currY) + "px") + (xLeft + (evt.clientX - currX) + "px");
		$(currWindow).style.top = xTop + (evt.clientY - currY) + "px";
		$(currWindow).style.left = xLeft + (evt.clientX - currX) + "px";
	}
}

//******************************************
// Add trim function in string object 
//******************************************
String.prototype.trim = function() {
	return this.replace(/\s/i,"");
}
//******************************************
// Get element for ID
//******************************************
var $ = function(element_id) {
	return document.getElementById(element_id);
}

//******************************************
// Get elements for NAME
//******************************************
var $N = function(elementName) {
	return document.getElementsByName(elementName);
}
//******************************************
// Get elements for TAGNAME
//******************************************
var $T = function(element_tag) {
	return document.getElementsByTagName(element_tag);
}
//******************************************
// Dynamic load Javascript File
//******************************************
var loadScript = {
	_loaded:{},
	_onLoad:function(srcStr,strID){
		var element = document.createElement("script");
		element.src = srcStr;
		element.type = 'text/javascript';
		element.id = strID;
		element.language = 'javascript';
		loadScript._loaded[srcStr] = false;
		if (flagEX == "IE") {
			element.onreadystatechange = function(){
				var state = this.readyState;
            	if (state == "loaded" || state == "interactive" || state == "complete") {
					this.onreadystatechange = null;
					loadScript._loaded[srcStr] = true;
				}
			};
		} else {
			element.onload = function() { 
				this.onload = null;
				loadScript._loaded[srcStr] = true;
        	};
		}
		document.getElementsByTagName("head")[0].appendChild(element);
		element = null;
	}
};
//******************************************
// rgb to Color value
//******************************************
function rgbToColor(forecolor) {
	if(flagEX == "IE") {
		return rgbhexToColor((forecolor & 0xFF).toString(16), ((forecolor >> 8) & 0xFF).toString(16), ((forecolor >> 16) & 0xFF).toString(16));
	}
	if(forecolor == '' || forecolor == null) {
		forecolor = "#000000";
	}
	if (forecolor == "transparent") {
		forecolor = "#FFFFFF";
	}
	if(forecolor.toLowerCase().indexOf('rgb') == 0) {
		var matches = forecolor.match(/^rgb\s*\(([0-9]+),\s*([0-9]+),\s*([0-9]+)\)$/);
		if(matches) {
			return rgbhexToColor((matches[1] & 0xFF).toString(16), (matches[2] & 0xFF).toString(16), (matches[3] & 0xFF).toString(16));
		} else {
			return rgbToColor(null);
		}
	} else {
		return forecolor;
	}
}

function rgbhexToColor(r, g, b) {
	return '#' + (str_pad(r, 2, 0) + str_pad(g, 2, 0) + str_pad(b, 2, 0));
}

//******************************************
// pad char in string end
//******************************************
function str_pad(text, length, padstring) {
	text += '';
	padstring += '';
	var padtext = null;
	if(text.length < length) {
		padtext = padstring;

		while(padtext.length < (length - text.length)) {
			padtext += padstring;
		}

		text = padtext.substr(0, (length - text.length)) + text;
	}
	padtext = null;
	return text;
}

//******************************************
// show black back Alpha default 50%
//******************************************
var blackDiv = null;
function showBlackBack(flag) {
	var alpha = arguments[1] ? arguments[1] : 50;
	if (!blackDiv) {
		blackDiv = document.createElement("DIV");
		blackDiv.style.zIndex = "300";
		blackDiv.style.width = "100%";
		blackDiv.style.height = "100%";
		blackDiv.style.position = "absolute";
		blackDiv.style.top = "0pt";
		blackDiv.style.left = "0pt";
		blackDiv.style.backgroundColor = "#999999";
		if (flagEX == "IE") {
			blackDiv.style.filter = "Alpha(opacity="+alpha+")";
		} else {
			blackDiv.style.opacity = alpha/100;
		}
		blackDiv.style.visibility = "hidden";
		if (document.body) {
			document.body.appendChild(blackDiv);
		}
	}
	if (flag) {
		var bod = document.documentElement ? document.documentElement : document.body;
		blackDiv.style.height = bod.scrollHeight + "px";
		blackDiv.style.width = bod.scrollWidth + "px";
		blackDiv.style.visibility = "visible";
		if (is_ie6) {
			var ops = $T("select");
			var p;
			for (p=0;p<ops.length ;p++ ){
				ops[p].style.visibility = "hidden";
			}
			ops = p = null;
		}
		bod = null;
		//document.body.style.overflow = "hidden";
	} else {
		blackDiv.style.visibility = "hidden";
		if (is_ie6) {
			var ops = $T("select");
			var p;
			for (p=0;p<ops.length ;p++ ){
				ops[p].style.visibility = "visible";
			}
			ops = p = null;
		}
		//document.body.style.overflow = "auto";
	}
}
//******************************************
// Request Object
//******************************************
var requestHttp = {
	__callBack:null,
	__xmlHttp:clsajax(),
	openReq:function(type,url,snyc,parm,func){
		requestHttp.__callBack = func;
		requestHttp.__xmlHttp.open(type,url,snyc);
		if (type == "POST") {
			requestHttp.__xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		}
		if (snyc) {
			requestHttp.__xmlHttp.onreadystatechange=function(){
				if (requestHttp.__xmlHttp.readyState == null){
					alert("服务器未响应!请重新尝试");
				}
				if (requestHttp.__xmlHttp.readyState == 4){
					if (requestHttp.__xmlHttp.status == 200){
						var content = requestHttp.__xmlHttp.responseText;
						requestHttp.__callBack(content);
						content = null;
					} else {
						alert("服务器出现错误!请重新尝试");
					}
				}
			};
			requestHttp.__xmlHttp.send(parm);
		} else {
			requestHttp.__xmlHttp.send();
			var content = requestHttp.__xmlHttp.responseText;
			requestHttp.__callBack(content);
			content = null;
		}
	}
};
