
//重载window.showModalDialog方法
var wesoft_window_showModalDialog = window.showModalDialog;
window.showModalDialog = function (sUrl)
{
	var vArguments = null;
	var sFeatures = "";
	if(arguments.length >1)
		vArguments = arguments[1];
	if(arguments.length >2)
		sFeatures = arguments[2];
  
	sUrl = sUrl.replace("MainPage.aspx","BasePage.aspx");
	return wesoft_window_showModalDialog(sUrl,vArguments,sFeatures);
}

var wesoft_window_open = window.open;
window.open = function (sUrl)
{
	var vArguments = null;
	var sName = "";
	var sFeatures = "menubar=0,toolbar=0,directories=0,location=0,status=0,scrollbars=0,resizable=1";
	var bReplace = false;
	if(arguments.length >1)
		sName = arguments[1];
	if(arguments.length >2)
		sFeatures = arguments[2];
	if(arguments.length >3)
		bReplace = arguments[3];

	return wesoft_window_open(sUrl,sName,sFeatures,bReplace);
}

function Href2Open()
{
	if (!document.getElementsByTagName) return false;
  var lnks = document.getElementsByTagName("a");
  for (var i=0; i<lnks.length; i++) 
  {
  	var _href = lnks[i].getAttribute("href");
  	if (_href==null || _href=="#") continue;
  	if (_href.indexOf("javascript:")==0) continue;

    var _target = lnks[i].target;
    if (_target=="_self" || _target=="") continue;
    
    lnks[i]._target = lnks[i].target; 
    lnks[i].target = "_self"; 
    lnks[i]._href = lnks[i].href; 
    lnks[i].href = "#"; 
    lnks[i].onclick = function() 
    {
      window.open(this._href,this._target);
    }
	}
}

function doBackEvent(pfd,eventName,parameterLists)
{
	__doPostBack('BackCode|'+pfd+'|'+eventName,parameterLists);
}

function callBackEvent(pfd,eventName,parameterLists)
{
 	var res = Wesoft.Sys.FrameWork.Common.Base.FunctionBase.ExecuteAjaxEvents(pfd,document.location.href,eventName,parameterLists);
	if(res.error)
	{ 
		showAjaxProError(res.error); 
		return null;
	}else
		return res.value;
}

function callBackEventDataSet(pfd,eventName,ds)
{
 	var res = Wesoft.Sys.FrameWork.Common.Base.FunctionBase.ExecuteAjaxDataSetEvents(pfd,document.location.href,eventName,ds);
	if(res.error)
	{ 
		showAjaxProError(res.error); 
		return null;
	}else
		return res.value;
}

function doActionEvent(pfd,eventName,parameterLists)
{
	__doPostBack('ActionForm-'+pfd,eventName+'|'+parameterLists);
}

function IsRoleMember(roleNameID)
{
	return callBackEvent(0,"IsRoleMember",roleNameID);
}

function IsGroupMember(groupNameID)
{
	return callBackEvent(0,"IsGroupMember",groupNameID);
}

function GetParameter(parameterPath,parameterName)
{
 	var res = GetFrameWindow().Wesoft.Sys.FrameWork.SysModule.MainFrame.MainFrame.GetParameter(parameterPath,parameterName);
	if(res.error)
	{ 
		showAjaxProError(res.error); 
		return null;
	}else
		return res.value;
}

//ajax错误检查
function showAjaxProError(error, customMessage)
{
	if(!window.AjaxProDEBUG) {
		var msg = !customMessage ? error.Message : customMessage;
		alert("系统错误\n\n" + msg);        
	} else {
		var win = window.open("AjaxProError", "");
		var doc = win.document;    
		doc.write("<html><head><title>AjaxProError:")
		doc.write(error.Type);
		doc.write("</title></head><body><div><h3>");
		doc.write("AjaxPro 调用发生未处理的异常");
		doc.write("</h3>");
		doc.write("<pre>");
		doc.write("Type" + ":\n   " + error.Type + "\n"); // 异常类型
		doc.write("Message" + ":\n   " + error.Message + "\n"); // 异常信息  
		doc.write("Stack" + ":\n" + error.Stack + "\n"); // 堆栈跟踪
		doc.write("TargetSite" + ":\n   " + error.TargetSite + "\n"); // 引发异常的方法
		doc.write("Source" + ":\n   " + error.Source + "\n"); // 导致异常的对象 
		doc.write("</pre>");    
		doc.write((new Date()).toLocaleString());
		doc.write("<br/><br/>");
		doc.write("<input type='button' value='close' onclick='window.close()' />");
		doc.write("</div>");
		doc.close();
	}
	return false; 
}

function SetAutoSize(_document)
{
	var aList = null;
	if(arguments.length == 0)
	{
		aList = document.getElementsByName('AutoSize');
	}
	else
	{
		aList = _document.getElementsByName('AutoSize');
	}
	for(var i = 0 ; i <aList.length ; i ++)
	{
		if (aList[i].style.display=="none")
		{
			var div = aList[i].parentElement;
			if (div.offsetWidth>0)
			{
				div.style.width = div.offsetWidth - 10;
				aList[i].style.display = "";
			}
		}
	}
}

function PageReSize(_document)
{
	var aList = null;
	if(arguments.length == 0)
	{
		aList = document.getElementsByName('AutoSize');
	}
	else
	{
		aList = _document.getElementsByName('AutoSize');
	}

	for(var i = 0 ; i <aList.length ; i ++)
	{
		var div = aList[i].parentElement;
		div.style.width = "100%";
		aList[i].style.display = "none";
	}
	
	setTimeout('SetAutoSize()',200);
}

function getLeft(e){ 
	var offset=e.offsetLeft; 
	if(e.offsetParent!=null) offset+=getLeft(e.offsetParent); 
	return offset; 
}

function getTop(e){ 
	var offset=e.offsetTop; 
	if(e.offsetParent!=null) offset+=getTop(e.offsetParent); 
	return offset; 
}

function clearAllNode(parentNode)
{
	while (parentNode.firstChild) 
	{
	  var oldNode = parentNode.removeChild(parentNode.firstChild);
	  oldNode = null;
	}
} 

document.ondblclick=function()
{
	if (event.ctrlKey && event.altKey) 
	{
		if (GetParameter("\\Sys\\FrameWork\\InterFace\\Action\\","CodeDebug")=="0")
		{
			alert("在线调试代码功能已被禁用！");
			return;
		}

		GetFrameWindow()._GlobalVar = GetCookie("CodeDebug");
		var urls = "/BasePage.aspx?_Ascx=/Sys/FrameWork/Common/Ascx/TextEditor.ascx";
		var reValue = window.showModalDialog(urls,GetParentWindow(),'DialogHeight:550px;DialogWidth:800px;status:no;');
		GetFrameWindow()._GlobalVar = null;
		if(reValue && reValue != "None") 
		{
			try
			{
				SetCookie("CodeDebug",reValue);
				eval(unescape(reValue));
			}catch(E)
			{
				alert("调试代码错误：\n"+reValue+"\n\n错误信息："+E.message);
			}				
		}
	}
}
