///////////////////////////////////////////////////////////////////////////////
// 动态加载脚本和样式

var XModule = {
	/** 已经加载的模块. */
	modules : [],

	/** 动态加载指定的脚本. */
	loadScript : function(scriptName) {
		if (!scriptName || this.modules[scriptName]) {
			return;
		}

		var head = document.getElementsByTagName("HEAD")[0];
		var script = document.createElement("SCRIPT");
		script.type = "text/javascript";
		script.src = scriptName;
		head.appendChild(script);

		this.modules[scriptName] = script;
	},

	/** 动态加载指定的样式文件. */
	loadStyle : function(styleName) {
		if (!styleName) {
			return;
		}

		var head = document.getElementsByTagName("HEAD")[0];
		var style = document.createElement("LINK");
		style.type = "text/css";
		style.rel = "stylesheet";
		style.href = styleName;
		head.appendChild(style);
	}
};

XModule.loadScript("js/json2.js");

///////////////////////////////////////////////////////////////////////////////
// Cookie functions

function GetCookieVal(offset)
{
	var endstr = document.cookie.indexOf(";", offset);
	if (endstr == -1) {
		endstr = document.cookie.length;
	}
	return unescape(document.cookie.substring(offset, endstr));
}

function SetCookie(name, value)
{
	var expdate = new Date();
	var argv = SetCookie.arguments;
	var argc = SetCookie.arguments.length;
	var expires = (argc > 2) ? argv[2] : null;
	var path = (argc > 3) ? argv[3] : null;
	var domain = (argc > 4) ? argv[4] : null;
	var secure = (argc > 5) ? argv[5] : false;
	if (expires!=null) 
	{
		var expire = expires.split("-");
		var d = new Date(expire[0], expire[1], expire[2]);
		expdate.setTime(d.getTime());
	}
		

	document.cookie = name + "=" + escape (value) + ((expires == null) ? "" : ("; expires=" + expdate.toGMTString()))
	+ ((path == null) ? "" : ("; path=" + path)) + ((domain == null) ? "" : ("; domain=" + domain))
	+ ((secure == true) ? "; secure" : "");
}

function DelCookie(name)
{
	var exp = new Date();
	exp.setTime (exp.getTime() - 1);
	var cval = GetCookie (name);
	document.cookie = name + "=" + cval + "; expires="+ exp.toGMTString();
}

function GetCookie(name)
{
	var arg = name + "=";
	var alen = arg.length;
	var clen = document.cookie.length;
	var i = 0;
	while (i < clen)
	{
		var j = i + alen;
		if (document.cookie.substring(i, j) == arg)
			return GetCookieVal (j);

		i = document.cookie.indexOf(" ", i) + 1;
		if (i == 0) 
			break;
	}
	return null;
}

///////////////////////////////////////////////////////////////////////////////
//

var XFormUtils = {
	/** 返回指定的 checkbox 组中选中的复选框的值的数组. */
	getCheckedItems : function (id)	{
		var checkboxs = document.getElementsByName(id);
		var selected = [];
		for (var i = 0; checkboxs && i < checkboxs.length; i++) {
			var checkbox = checkboxs[i];
			if (checkbox.checked && checkbox.value) {
				selected[selected.length] = checkbox.value;
			}
		}
		return selected;
	}
};

function hideMenu() { 
	var menu_layer = document.getElementById("mlay");
	if (menu_layer) {
		menu_layer.style.display = "none";
	}
} 

function showContextMenu(menu_data) 
{
	if (!menu_data || menu_data.length <= 0) {
		return;
	}

	var _onclick = document.onclick;
	document.onclick = function() {
		hideMenu();
		document.onclick = _onclick;
	}

	var menu_height = 18, menu_width = 80; //每条选项的高度,菜单的总宽度 

	var menu_layer = document.getElementById("mlay");
	if (!menu_layer) {
		menu_layer = document.createElement("DIV");
		menu_layer.id = "mlay";
		menu_layer.style.display = "none";
		menu_layer.onclick = function() { return false; };
		document.body.appendChild(menu_layer);
	}

	menu_layer.style.backgroundColor = "#FFFFFF";
	menu_layer.style.width	= menu_width; 
	menu_layer.style.height = menu_data.length * menu_height; 

	menu_layer.style.display = ""; 
	menu_layer.style.pixelTop = event.clientY + 1; 
	menu_layer.style.pixelLeft = event.clientX + 1; 

	var html = "<table width='100%' height='100%' cellpadding='0' cellspacing='0' border='0'>"; 
	var i = 0; 
	for (i = 0; i < menu_data.length; i++) { 
		html += '<tr onclick="' + menu_data[i].action + '"'
			+ ' onmouseover="this.className=\'current\';"'
			+ ' onmouseout="this.className=\'\'">'
			+ '<td id="menuitem" height="18">' + menu_data[i].text + "</td></tr>";
	}
	html += "</table>"; 
	menu_layer.innerHTML = html;

}

function showoff() { 
	var mlay = document.getElementById("mlay");
	if (!mlay)
	   return;
	mlay.style.display = "none"; 
}

/** 弹出一个模式对话框. */
function popupModalDialog(url, args, width, height)
{
	if (navigator.appVersion.indexOf("MSIE 7.") != -1)
	{
		height -= 50; 
	}
	var params = "status: no; resizable:yes; scroll:false; dialogWidth:" + 
		width + "px; dialogHeight:" + height + "px;";
	return window.showModalDialog(url, args, params);
}

function initStyle()
{
	var a = document.getElementsByTagName("input");   
    for (var i = 0; i < a.length; i++) {
		if (a[i].type == "checkbox" || a[i].type == "radio")
			a[i].className="noborder";  
	}
}

// 取得传值的函数
function QueryString(qs)
{
    s = location.href;
    s = s.replace("?","?&").split("&");
    re = "";
    for(i=1;i<s.length;i++)
    {
         if(s[i].indexOf(qs+"=")==0)
         {
             re = s[i].replace(qs+"=","");
         }
    }
	re = replace_all(re,"%20"," ");
    return re;
}

function replace_all (S_str, R_str, D_str)
{
    while (S_str.indexOf(R_str)!=-1) {
         S_str=S_str.replace(R_str,D_str);
    }
    return S_str;
}

function checkDateTime(start, end)
{
	var creaDateStr = start;
	var UpDateStr = end; 
	var creTimeStr;
	var upTimeStr;
	var creStr;
	var upStr;
	var crearys= new Array();
	var uparys= new Array();
	var creTimarys= new Array();
	var upTimarys= new Array();

	creStr= creaDateStr.substr(0,creaDateStr.indexOf(" "));
	creTimeStr = creaDateStr.substr(creaDateStr.indexOf(" "));
	crearys =creStr.split('-');

	creTimarys = creTimeStr.split(':');
	var creaDate = new Date(crearys [0],crearys [1],crearys [2],parseInt(creTimarys[0]),parseInt(creTimarys[1]),parseInt(creTimarys[2]));

	upStr = UpDateStr.substr(0,UpDateStr.indexOf(" "));
	upTimeStr = UpDateStr.substr(UpDateStr.indexOf(" "));
	uparys=uparys=upStr.split('-');
	upTimarys = upTimeStr.split(':');
	var UpDate = new Date(uparys[0],uparys[1],uparys[2],parseInt(upTimarys[0]),parseInt(upTimarys[1]),parseInt(upTimarys[2])); 


	var difference = Date.UTC(UpDate.getYear(),UpDate.getMonth(),UpDate.getDate(),UpDate.getHours(),UpDate.getMinutes(),UpDate.getSeconds())
	- Date.UTC(creaDate.getYear(),creaDate.getMonth(),creaDate.getDate(),creaDate.getHours(),creaDate.getMinutes(),creaDate.getSeconds());

	if (difference < 0)
		return true;
	return false;
}

function getXmlRpcURL() {
	var hostport = null;
	if (location.hostname) {
		hostport = location.hostname + ":" + location.port;
	} else {
		hostport = GetCookie("hostport");
	}

	return "http://" + hostport + "/cooview/ws/";
}

var uri = getXmlRpcURL();
try {
	document.execCommand("BackgroundImageCache", false, true); 
} catch(e) {
}

function sendXmlRpcToGroovy(url, callback)
{
	var xmlRpcClient = new XMLRPCClient(url);
	var msg = new XMLRPCRequest("test");
	var req = xmlRpcClient.send(msg.xml(), true, callback);
}
