//========================================================================
// 关于窗口操作的公用函数
//========================================================================

//========================================================================
// 目录
// 1. 设置IE窗口的状态栏信息             setWinDefaultStatus(Obj, status)
// 2. 显示调用服务后返回的信息           showMessage(srvMsg, isYesNo)
// 3. 取得WEB URL地址                    getSystemWebURL()
// 4. 根据对象的ID号取得对象             $()
// 5. 设置输入域显示                     setInputDomainEdit();
// 6. 取平台系统参数用函数               getSystemParam(paramdm)
// 7. 清除下拉列表框中的数据             ClearDropDownItem(Obj)
// 8. 在中间件消息传递表中添加命令消息   SendCommand
// 9. 在指定DIV域中显示照片显示照片      Div_PreviewImg

//************************************************************************
// 1. 设置IE窗口的状态栏信息
//************************************************************************
function setWinDefaultStatus(Obj, status)
{
	Obj.defaultStatus = status;
}


//************************************************************************
// 2. 显示调用服务后返回的信息
// 参数：
//       srvMsg   -- 要显示的信息
//       isYesNo  -- 是否返回选择确认或放弃
//************************************************************************
function showMessage(srvMsg, isYesNo)
{
	// 将信息中的'|'分隔符以回车换行替换
	if (srvMsg == null || srvMsg.length < 1)
	{
		return false;
	}
    var newstr = "";
	var istrLoop = 0;
    var ssArry = srvMsg.split('|');
    for (istrLoop = 0; istrLoop < ssArry.length; istrLoop++)
    {
        if (newstr != null && newstr != "" && istrLoop > 0)
        {
            newstr = newstr + '\r\n';
        }
        newstr = newstr + ssArry[istrLoop];
    }
	if((isYesNo * 1) == 1){
		return confirm(newstr);
	}else{
		alert(newstr);
	}

}


//************************************************************************
// 3. 取得WEB URL地址
// 注：本功能必须包含script/ajax/encode.vbs
//                   script/ajax/ajaxProxy.js
//************************************************************************
function getSystemWebURL()
{
	var webRootUrl = "";
	if (top.topgs_SystemWebURL == null || top.topgs_SystemWebURL == "" || top.topgs_SystemWebURL.length < 1){
		var AjaxProxy1	= top.AjaxProxy;
		var webUrlObj = new AjaxProxy1();
		webUrlObj.invoke("get_sysweburl", false);
		webRootUrl = webUrlObj.getString("URL");
		top.topgs_SystemWebURL = webRootUrl;
	}else{
		webRootUrl = top.topgs_SystemWebURL;
	}
	
	return webRootUrl;
}

//************************************************************************
// 4. 根据对象的ID号取得对象
//************************************************************************
function $(){
	return document.getElementById(arguments[0]);
}

//************************************************************************
// 5. 设置输入域显示
// 参数：
//       domain  ：object  - 显示对象
//       showFlag：boolean - 显示标志  true：显示   false：不显示
//************************************************************************
function setInputDomainEdit(domain , showFlag){
	
	//判断domain类型
	if(domain.type == "text" || domain.type == "textarea"){
		if(showFlag)
			domain.className = "oneInput";
		else
			domain.className = "oneInputDisable";
		
		domain.readOnly  = !showFlag;
	}else if(domain.type == "select-one"){
		domain.disabled = !showFlag;
	}else{
		domain.disabled = !showFlag;
	}
	
}


//************************************************************************
// 6. 取平台系统参数用函数
// 注：本功能必须包含script/ajax/encode.vbs
//                   script/ajax/ajaxProxy.js
//************************************************************************
function getSystemParam(paramdm){
	var AjaxProxy1 = new top.AjaxProxy();
	AjaxProxy1.addParm("1"	, paramdm);
	AjaxProxy1.invoke("PT_PUBLIC.PF_GET_SYSTEM_PARAM", false);
	return AjaxProxy1.getString("PC_SYSPARAM");
}


//===================================
// 7. 清除下拉列表框中的数据
//===================================
function ClearDropDownItem(Obj){
	var iloop, ilen;
	ilen = Obj.options.length;
	for (iloop = ilen - 1; iloop > -1; iloop--)
	{
		//Obj.remove(iloop);

    var lobj_option = Obj.options[iloop];
    if(lobj_option != null){
      lobj_option.removeNode();
    }
	}
}

//===================================
// 8. 在中间件消息传递表中添加命令消息
//===================================
function SendCommand( nMSGNUM,    // 内部消息记录号
                      sYWQXDM,    // 业务权限代码
                      sCOMMAND,   // 执行命令
                      sPARAM,     // 命令参数
                      sDISPINFO,  // 显示提示信息内容
                      sYXZQ,      // 消息有效止期
                      sNFSSJ,     // 消息拟发送时间
                      nYXJ,       // 优先级
                      nSENDUSER,  // 发送人
                      nRECUSER )  // 接收人
{
  // 调用存储过程保存记录
	var saveObj = new top.AjaxProxy();

	saveObj.addParm("1",  nMSGNUM);
	saveObj.addParm("2",  sYWQXDM);
	saveObj.addParm("3",  sCOMMAND);
	saveObj.addParm("4",  sPARAM );
	saveObj.addParm("5",  sDISPINFO);
	saveObj.addParm("6",  sYXZQ);
	saveObj.addParm("7",  sNFSSJ);
	saveObj.addParm("8",  nYXJ );
	saveObj.addParm("9",  nSENDUSER);
	saveObj.addParm("10", nRECUSER );

	saveObj.invoke("PT_PUBLIC.PF_PT_ZJJ_MSG_COMMAND", false);
	// 判断保存信息是否成功
	var flag = saveObj.getString("PN_RET") * 1;

	if (flag != 0)
	{
		//showMessage(saveObj.getString("PC_MSG"), '0');
		return 0; 
	}

  return 1;
}

//=====================================
// 在指定DIV域中显示照片显示照片
//=====================================
function Div_PreviewImg(picDiv, imgFile, imgObjid)
{
    imgObjid = imgObjid || "PicImg";
	if( navigator.userAgent.toLowerCase().indexOf("msie 7") > -1 )
	{
		$(picDiv).innerHTML ='<div id="' + imgObjid + '"   style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale,src=\''+
			imgFile +'\');width:100%;height:100%;">';
	}else{
		$(picDiv).innerHTML = '<img id="' + imgObjid + '" src="' + imgFile + 
			'"  onerror="this.style.visibility=\'hidden\'"'+
			'onload="this.style.visibility=\'visible\';picmousezoom(\'' + imgObjid + '\');"/>';
	}
}
// 图片缩放处理
var  picmousezoom=function(img){
	img = document.getElementById(img);
	var size={};
	var delta = 0;
	var donwPos={};
	var md=false;
	var lineDiv;
	var currScale = 1;
	function init(){
		var pNode = img.parentNode;
		if( !( /absolute/i.test(pNode.style.position ) ) )
			pNode.style.position="relative";
		pNode.style.overflow="hidden";
		img.style.position="absolute";
	
		
		lineDiv = document.createElement("div");
		lineDiv.style.position="absolute";
		lineDiv.style.border = "2px ridge #fff";
		lineDiv.style.zIndex=1; 		
		pNode.appendChild(lineDiv);
		
		var mask = document.createElement("div");
		
		with(mask.style){
			width="100%";
			height="100%";
			zIndex=10000;
			position="absolute";
			left="0px";
			top="0px";
			background="url(transparent.gif)";
			//filter="alpha(opacity=0)"
		}
		pNode.appendChild(mask);
		mask.onmousedown = down;
		mask.onmouseup = up;
		mask.onmouseout = out;
		mask.onmousemove = move;
		mask.oncontextmenu = contextmenu;
		var f=function(){
  			var rect = picmousezoom.getSize( img.width , img.height
				, pNode.offsetWidth , pNode.offsetHeight);
			if(rect.w>0 && rect.h>0)
			{
				size.width = rect.w;
				size.height = rect.h;
				img.style.width = rect.w+"px";
				img.style.height = rect.h+"px";
				img.style.top = (parseInt(img.parentNode.offsetHeight)-img.height)/2+"px";
				img.style.left = (parseInt(img.parentNode.offsetWidth)-img.width)/2+"px";
				f = null;
			}
			else{
				setTimeout(init,100);
			}
		};
		f();
		window.attachEvent("onunload",dispose);
	};
	function voidEvent(){event.returnValue = false;event.cancelBubble=true;return false;};
	function dispose(){
		img = null;
		window.detachEvent("onunload",dispose);
	
	};

	//放大矩形框
	function showRect(rect){
		var r=picmousezoom.getSize( rect.right-rect.left , 
					rect.bottom-rect.top ,
					img.parentNode.offsetWidth,
					img.parentNode.offsetHeight);
		var centerLeft = (rect.right+rect.left)/2 + parseInt(img.offsetLeft);
		var centerTop = (rect.top+rect.bottom)/2 + parseInt(img.offsetTop);
		

		
		var newTop = (img.offsetTop - rect.top) * r.scale;
		var newLeft = (img.offsetLeft - rect.left) * r.scale;
		try{
			img.style.left = newLeft + "px";
			img.style.top = newTop + "px";
			img.style.width = parseInt(img.offsetWidth * r.scale)+"px";
			img.style.height = parseInt(img.offsetHeight * r.scale) +"px";
		}catch(ex){}
		
		currScale += r.scale;
	};
	function down(){
		if(event.button!=1)
			return;
		initPos();
		md = true;
		lineDiv.style.top = event.offsetY;
		lineDiv.style.left = event.offsetX;
	};
	function initPos(){
		lineDiv.style.display="none";
		md = false;
		donwPos={
			offsetX	: parseInt( event.offsetX),
			offsetY	: parseInt( event.offsetY)
		 };
	};
	var count=0;
	function move(){
		if( md )
		{
			var deltaX = event.offsetX - donwPos.offsetX;
			var deltaY = event.offsetY - donwPos.offsetY;
			if(!isNaN(deltaX) && !isNaN(deltaY) &&
				 ( Math.abs( deltaX ) > 3 || Math.abs( deltaY ) > 3  )  )
			{
				lineDiv.style.display = "block";
				lineDiv.style.left = donwPos.offsetX + ( deltaX>0 ? 0 : deltaX ) +"px";
				lineDiv.style.top = donwPos.offsetY + ( deltaY>0 ? 0 : deltaY ) +"px";				
				lineDiv.style.width = Math.abs( deltaX )+ "px" ;
				lineDiv.style.height = Math.abs(  deltaY ) + "px" ;
			
				
			}
			else{

				lineDiv.style.display="none";
			}
		};
		
	};
	function contextmenu(){
		initPos();
		img.style.width = size.width+"px";
		img.style.height =  size.height+"px";
		img.style.top = (parseInt(img.parentNode.offsetHeight)-img.height)/2+"px";
		img.style.left = (parseInt(img.parentNode.offsetWidth)-img.width)/2+"px";
		event.returnValue=false;
		event.cancelBubble=true;
		return false;
		
	};
	function out(){

		initPos();
	}
	function over(){
		initPos();
	
	}
	function up(){
		if(md)
		{
			showRect({
				left:parseInt(lineDiv.style.left),
				top:parseInt(lineDiv.style.top),
				right:parseInt(lineDiv.style.left)+parseInt(lineDiv.offsetWidth),
				bottom:parseInt(lineDiv.style.top)+parseInt(lineDiv.offsetHeight)
			});
		}
		initPos();
	}
	setTimeout(init,100);
}
picmousezoom.getSize = function(rw,rh,w,h){
	var s1=rw/w;
	var s2=rh/h;
	var r={w:0,h:0};
	if(s1>s2)
	{
		r.w=rw/s1
		r.h=rh/s1;	
		r.scale = 1/s1;
	}
	else
	{

		r.w=rw/s2
		r.h=rh/s2;	
		r.scale = 1/s2;
	}
	return r;
}