/*通用弹出框类*/
function ShowMessage(sMessage)
{
	alert(sMessage);
}
/*通用确认框类*/
function Confirm(sMessage, bValue)
{
	return confirm(sMessage);
}
function Open(sUrl,sWin, iWidth, iHeight)
{
	return window.open(sUrl, sWin, "height="+iHeight+",width="+iWidth+",top="+(screen.availHeight-iHeight)/2+",left="+(screen.availWidth-iWidth)/2+",status=yes,toolbar=no,menubar=no,location=no,resizable=yes,scrollbars=yes")
}
/*输入框*/
function Prompt(sMessage, sDefaultValue, bIsPassword)
{
	var rValue = null;
	
	var arg = new showModalDialogArguments();
	if(sMessage) arg.Message = sMessage;
	if(sDefaultValue) arg.DefaultValue = sDefaultValue;
	if(bIsPassword) arg.IsPassword = bIsPassword;

	rValue = showModalDialog("../../js/Prompt.htm",arg,"edge:sunken;resizable:yes;status:no;scroll:no;dialogWidth:320px;dialogHeight:120px;");

	return rValue;
}
function showModalDialogArguments()
{
	this.Message = "请在下面的输入框中输入信息：";
	this.DefaultValue = "";
	this.IsPassword = false;
}
/*
模版类
*/
function Template()
{
	this.TemplateName = "";
}
Template.TemplateName = "";
function Template.LoadContent(contentUrl, templateName, targetWindow)
{
	//目标
	var target=targetWindow;
	if(target==null) 
		target=window;
	
	if(templateName!=null)
	{
		Template.TemplateName = templateName;
	}
	
	//空模版
	if(Template.TemplateName==null)
	{
		Template.TemplateName = "tpl";
	}
	
	var content=contentUrl;
	//不更换模版
	if(Template.TemplateName=="")
	{
		if(content==null || content=="")
		{
			ShowMessage("空连接！无法取得转向连接地址，不能转向！");
			return;
		}
		else
		{
			target.location.href=window.location.pathname+"?"+content;
		}
	}
	//更换模版
	else
	{
		if(content==null || content=="")
		{
			target.location.href="../"+Template.TemplateName+"/index.aspx"+window.location.search;
		}
		else
		{
			target.location.href="../"+Template.TemplateName+"/index.aspx?"+content;
		}
	}
}

/*
PageXmlData信息控制类
*/

/*
Page对象的事件处理
*/
function Page()
{}

function Page.DataSubmit(EventArgs)
{
	//提交
	__doPostBack("GM", EventArgs);
}
//获取url参数
QueryStrings = null;
function Page.QueryString(key)
{
	if(QueryStrings==null)
	{
		var _QueryStrings = new ActiveXObject("Scripting.Dictionary");
		var search = window.location.search;
		search = search.split("&");
		var args,qs="";
		for(var i=0;i<search.length;i++)
		{
			args = search[i].split("=");
			_QueryStrings.Add(args[0], args[1])
			if(args[0]==key)
			{
				qs = args[1];
			}
		}
		QueryStrings = _QueryStrings;
		return qs;
	}
	else
	{
		var qs = QueryStrings.Item(key);
		if(qs==undefined)
		{
			qs = "";
		}
		
		return qs;
	}
}
//获取表单值
function Page.Forms(key)
{
	var cf = document.all(key), sf = document.all("GM_"+key);
	if(cf==null)
	{
		if(sf==null)
		{
			return null;
		}
		else
		{
			return sf;
		}
	}
	else
	{
		return cf;
	}
}

function Page.Validate()
{
	if (typeof(Page_ClientValidate) == 'function') 
	{
		return Page_ClientValidate();
	}
	else
	{
		ShowMessage("验证有效性失败，原因是未取得验证入口！");
		return false;
	}
}

//数据信息有效性校验
//在需要校验的表单中增加两个属性：1。校验方式；2。提示信息
/*function Page.Validate()
{
	var input;
	for(var i=0;i<arguments.length;i++)
	{
		//校验
		input = Page.Forms(arguments[i]);
		if(input!=null)
		{
			if(!ValidateFomat(input.value, input.vtype))
			{
				ShowMessage(input.vmessage);
				input.focus();
				input.select();
				return false;
			}
		}
	}
	return true;
}
*/
function ValidateFomat(sValue, sFormat)
{	
	var re;
	switch(sFormat)
	{
		case "not-null":
			re = /^.+$/ ;				// 非空
			break;
		case "email":
			re = /^[\w-]+@[\w-]+(\.(\w)+)*(\.(\w){2,3})$/ ;				// Email 地址
			break;
		case "uri":
			re = /^(file|http|https|ftp|mms|telnet|news|wais|mailto):\/\/(.+)$/ ;		// URI 地址 TODO
			break;
		case "number":
			re = /^(\d)*$/ ;								// 数字
			break;
		case "int":
			re = /^(-)?(\d)*$/ ;								// 整数
			break;
		case "float":
			re = /^(-)?(\d)*(\.)?(\d)*$/ ;						// 浮点
			break;
		case "money":
			re = /^(-)?(\d){1,8}(\.(\d){1,2})?$/ ;					// 货币
			break;
		case "phone":
			re = /^(\(\d+\))*(\d)+(-(\d)+)*$/ ;						// 电话号吗 
			break;
		case "postalcode":
			re = /^(\d){6}$/ ;							// 邮政编码
			break;
		case "date":
			re = /^(\d+)-(\d{1,2})-(\d{1,2})$/; 						// 日期型（不包括时间）
			break;
		case "time":
			re = /^(\d{1,2}):(\d{1,2}):(\d{1,2})$/; 					// 时间刑（不包括日期）
			break;
		case "datetime":
			re = /^(\d+)-(\d{1,2})-(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/; 	// 日期时间型
			break;
		case "cn-char":
			re = /^[^\w-\.]*$/; 							// 中文汉字 TODO
			break;
		default:
			re = /^.+$/; //普通字符
			break;
	}
	
	if(re.test(sValue))
	{
		return true;
	}
	else
	{
		return false;
	}
}


//错误处理入口
window.onerror = function(sMsg,sUrl,sLine)
{
	/*
	var err = "发生错误：\n\n";
	err += "Message:"+sMsg+"\n";
	err += "URL:"+sUrl+"\n";
	err += "Line:"+sLine+"\n";
	*/

	alert("系统错误信息提示：\n\n"+sMsg);

	return true;
}



/*----------------------------------------------------------------------------------------*/
//业务逻辑类

/*判断是否选中行*/
function CheckSelectRow(lTableList, sMessage)
{
	if(lTableList.SelectRow==null)
	{
		ShowMessage(sMessage==null?"请首先从列表中选择您要操作的信息！":sMessage);
		return false;
	}
	return true;
}



/*判断是否确定删除*/
function CheckDelete(sMessage)
{
	return Confirm(sMessage==null?"确定要删除选中的信息吗？":sMessage);
}
/*判断是否选择了复选框*/

function CheckSelectValues(lTableList, sMessage)
{
	if(lTableList.SelectValues=="")
	{
		ShowMessage(sMessage==null?"请首先从列表中通过前面的复选框选择您要操作的信息！":sMessage);
		return false;
	}
	return true;
}

//操作cookies的两个方法

function getCookieVal (offset)
{
  var endstr = document.cookie.indexOf (";", offset);
  if (endstr == -1)
    endstr = document.cookie.length;
  return unescape(document.cookie.substring(offset, endstr));
}
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;
}
function SetCookie(name, value)
{
  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;
  document.cookie = name + "=" + escape (value) +
    ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
    ((path == null) ? "" : ("; path=" + path)) +
    ((domain == null) ? "" : ("; domain=" + domain)) +
    ((secure == true) ? "; secure" : "");
}
function GoHistoryBack()
{
	if(history.length>0)
	{
		history.go(-1);
	}
	else
	{
		event.srcElement.disabled=true;
	}
}

//窗体载入后初始化
function Init()
{
	//格式化“后退”按钮
	try
	{
		if(history.length＝=0) 
			document.all.HistoryBack.disabled=true;
	}
	catch(e)
	{
	}
}

window.attachEvent("onload", Init);


