/********************************** 具体的实现功能 *******************************/
/**
    描述：该文件类似于window页面提示框，取代js系统提示框如(alert、dialog)；
	文件类型：javascript脚本文件
	作者：兰磊 
	时间：2008年12月12日11:24:38
	 
	函数调用说明：
		如果页面上需要使用本脚本，只需在页面中包含本文件如：<script languag="javascript" src="/script/dialog.js"></script>
		调用时主要调用alertDialog函数，调用该函数有两种展示方式：一种是alert、一种是dialog，主要是根据传递的参数来区分

		alertDialog(text, type, str, callback)：
		该函数第一个参数“text”是用来展示提示信息的字符串，只用给一个string类型的字符串就可以了；
			  第二个参数“type”是区分提示框展示样式，如果参数为1时

	需要的参数：
	@param text：需要在页面上显示的文字
	@param type：页面显示的类型，参数为1时 表示页面类型为提示语句，和alter功能相同；
								 参数为2时 表示页面类型为提示语句加“确认”、“取消”，并有返回值。当点击“确认”时返回true，否则就返回false;
	@param str：回调的字符，如果是用户调用，只用给空值，不需要填写。
	@param callback：回调函数名称  如果调用类型为2的时候，需要传递返回函数名，类型为1时可以为空

	样式依赖：
	1、left1a left1b
	2、left2a left2b
	3、left3a left3b

	关于链接
	获得参数articleUrl，该参数保存的是文章信息查询路径，可以按其路径找到文章信息。
 */
	var oEventUtil = new Object();
	var returnStr = "";
	var count = '1';
	var functionObj;

	var ST;
	var showTips;
	
	var getFFVersion=navigator.userAgent.substring(navigator.userAgent.indexOf("Firefox")).split("/")[1];
	
	//extra height in px to add to iframe in FireFox 1.0+ browsers   
	var FFextraHeight=getFFVersion>=0.1? 16 : 0  
	
	/**
		@param text：需要在页面上显示的文字
		@param type：页面显示的类型，参数为1时 表示页面类型为提示语句，和alter功能相同；
									 参数为2时 表示页面类型为提示语句加“确认”、“取消”，并有返回值。当点击“确认”时返回true，否则就返回false;
		@param str：回调的字符，如果是用户调用，只用给空值，不需要填写。
		@param callback：回调函数名称  如果调用类型为2的时候，需要传递返回函数名，类型为1时可以为空
	*/
	function alertDialog(text, type, str, callback)
	{
		functionObj = callback;
		//判断用户调用的是那种提示方式  1.alter类型，2.dialog类型
		var msgStr = "";
		msgStr = text;
		if (type == "1") //为1时表示客户调用的是alter类型 
		{
			createDialog(msgStr, type);
		}
		else //否则客户调用的就是dialog类型
		{
			if (str != "")//如果字符不为空，表示客户是采用回调方式
			{
				for(var i = 0; i < 2; i++)//先删除事件，以免重复出现
				{
					oEventUtil.removeEvent(document.getElementById("Submit" + (i+1)),'click',oT);
				}

				if (str == "确定")//调用回调函数
				{
					callback(true);
				}
				else
				{
					callback(false);
				}
			}
			else
			{
				createDialog(msgStr, type);
			}
		}
	}

	/*
		@param oTarget 事件对象
		@param sEventType 时间类型
		@param fnHandler 回调的函数名称
	*/
	oEventUtil.AddEventHandler = function(oTarget,sEventType,fnHandler)//添加监听事件
	{
		//IE和FF的兼容性处理
		 
		//如果是FF
		if(oTarget.addEventListener)
		{
			oTarget.addEventListener(sEventType,fnHandler,false);
		} 
		//如果是IE
		else if(oTarget.attachEvent)
		{
			oTarget.attachEvent('on'+sEventType,fnHandler);
		}
		else
		{
			oTarget['on'+sEventType] = fnHandler;
		}
	};

	/*
		@param oTarget 事件对象
		@param sEventType 时间类型
		@param fnHandler 回调的函数名称
	*/
	oEventUtil.removeEvent = function(oTarget,sEventType,funName)//删除监听事件
	{
		//IE和FF的兼容性处理
		 
		//如果是FF
		if(oTarget.removeEventListener)
		{//for DOM;
			oTarget.removeEventListener(sEventType,funName, false);
		}
		else if(oTarget.detachEvent)//如果是IE
		{
			oTarget.detachEvent("on"+sEventType,funName);
		}
		else
		{
			oTarget["on"+sEventType]=null;
		}
    };


	//定义oT事件函数
	var oT = function()
	{
	var oEvent = arguments[0];
	var oTarget = oEvent.target || oEvent.srcElement;
	//回调返回参数
	 alertDialog("", "2", oTarget.value, functionObj);
	//return oT;
	}

	function createDialog(text, type)//创建dialog层
	{
		//delDialog();
		var msgStr = "";
		msgStr = text;
		//生成一个前景DIV
		var divDialogElement = document.createElement("div");
		if (type == "1")
		{
			divDialogElement.id = "alterlight";				//设置层的ID
		}
		else
		{
			divDialogElement.id = "bglight";
		}				
		divDialogElement.style.display = "none";			//设置层的显示类型
		divDialogElement.style.position = "absolute";		//定位方式
		
		divDialogElement.style.width = "50%";				//层的宽度
		divDialogElement.style.height = "50%";				//层的高度
		//divDialogElement.style.top = document.body.clientHeight/2-divDialogElement.offsetHeight/2; //离屏幕上边缘的距离
		divDialogElement.style.left = "40%";				//离屏幕左边缘的距离
		
		divDialogElement.style.padding = "16px";			
		//divDialogElement.style.border = "16px solid orange";//边框的宽度
		//divDialogElement.style.backgroundColor = "#FFFFFF"; //背景颜色
		divDialogElement.style.zIndex = "1002";				//层显示的优先权
		divDialogElement.style.overflow = "auto";			//显示设置
		//divDialogElement.className = "white_content";
		if (type == "1")
		{
			divDialogElement.innerHTML = getAlterHTML(msgStr); //层内属性
		}
		else
		{
			divDialogElement.innerHTML = getDialogHTML(msgStr) //层内属性
		}
		
		//生成一个背景DIV
		var divBGElement = document.createElement("div");
		if (type == "1")
		{
			divBGElement.id = "alterfade";
		}
		else
		{
			divBGElement.id = "bgfade";
		}
		divBGElement.style.display = "none";
		divBGElement.style.position = "absolute";
		divBGElement.style.top = "0%";
		divBGElement.style.left = "0%";
		divBGElement.style.width = "100%";
		divBGElement.style.height = "1024";
		divBGElement.style.backgroundColor = "#000000"; //背景颜色
		divBGElement.style.zIndex = "1001";
		divBGElement.style.opacity = ".80";
		divBGElement.style.filter = "alpha(opacity=40)";
		divBGElement.innerHTM = getIframeStr();
		//divBGElement.className = "black_overlay";
		
		//判断body是否已经加载了这个层，如果已经加载了就删除掉
		if (docEle(divDialogElement.id))
		{
			document.body.removeChild(docEle(divDialogElement.id));
		}

		//判断body是否已经加载了这个层，如果已经加载了就删除掉
		if (docEle(divBGElement.id))
		{
			document.body.removeChild(docEle(divBGElement.id));
		}

		//重新加载
		document.body.appendChild(divDialogElement);//在body内添加该div对象
		document.body.appendChild(divBGElement);

		//var tagSelect = document.getElementsByTagName("select");
		//tagSelect.style.display="none";
		
		if (type == "1")
		{
			document.getElementById('alterlight').style.display='block';
			document.getElementById('alterfade').style.display='block';
		}
		else
		{
			document.getElementById('bglight').style.display='block';
			document.getElementById('bgfade').style.display='block';
		}
		
		//设置显示层的高度
		divDialogElement.style.top = document.documentElement.scrollTop + (document.documentElement.clientHeight/2 - divDialogElement.offsetHeight/2);

		if (type == "2")//增加监听事件
		{
			for(var i = 0; i < 2; i++)
			{
				oEventUtil.AddEventHandler(document.getElementById("Submit" + (i+1)),'click',oT);
			}
		}
	  }
	  
//判断对象是否存在
var docEle = function() 
{
    return document.getElementById(arguments[0]) || false;
}

	 
 function dyniframesize(iframename) 
 {   
  
  var pTar = null;   
  
  if (document.getElementById)
  {   
  
    pTar = document.getElementById(iframename);   
  }   
  else
  {   
    eval('pTar = ' + iframename + ';');   
  }   
  
  if (pTar && !window.opera)
  {   
    //begin resizing iframe   
    pTar.style.display="block"  
  
    if (pTar.contentDocument && pTar.contentDocument.body.offsetHeight)
    {   
      //ns6 syntax   
      pTar.height = contentDocument.all.tab.offsetHeight+FFextraHeight;    
    }   
    else if (pTar.Document && pTar.Document.body.scrollHeight)
    {   
      //ie5+ syntax   
      //pTar.height = pTar.Document.body.scrollHeight + 170; 
	  //让iframe的高度等于table的高度
	  pTar.height = document.all.tab.offsetHeight - 16; 
    }   
  }   
}   
	
		
	/*
		删除元素
	*/
	function delDialog()
	{
		var divObj = document.getElementsByTagName("div");
		
		for (var i = 0; i < divObj.length; i++)
		{
			if (divObj[i].id == "light")
			{
				document.body.removeChild(divObj[i]);
			}
			else if (divObj[i].id == "fade")
			{
				document.body.removeChild(divObj[i]);
			}
		}
		
	}

	function mouseOut(obj)
	{
		obj.style.cursor = "default";
	}

	/*function minWindow()
	{
		var divDialog = document.getElementById("light");
		var divBG = document.getElementById("fade");

		divDialog.style.width = "50%";
		divDialog.style.height = "4%";
		divDialog.style.top = "96%";
		
		divBG.style.display = "none";
	}*/

	function getAlterHTML(text)//功能同alter //onmousemove=\"DragObj(document.getElementById('alterlight'));\" onmouseout=\"mouseOut(document.getElementById('alterlight'));\"
	{
		var msgStr = "";
		msgStr = text;
		var htmlStr = "";
		htmlStr = "<iframe src=\"about:blank\" id=\"alterIframe\" frameBorder=0 width=\"320\" height=\"220\" scrolling=no onload=\"javascript:{dyniframesize('alterIframe');}\"></iframe>"+
					  "<table width=\"320\" id=\"tab\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" style=\"position: absolute;left:16px;top: 0px;\">" +
					  "<tr>" + 
					  "<td>" +
					  "<table width=\"320\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">" +
						"<tr>" +
						  "<td width=\"291\" height=\"22\" bgcolor=\"#D3E4F4\" class=\"h6\">信息提示</td>" +
						  "<td width=\"29\" align=\"left\" bgcolor=\"#D3E4F4\"><a href=\"javascript:void(0);\" onclick=\"document.getElementById('alterlight').style.display='none';document.getElementById('alterfade').style.display='none';\"><img src=\"/images/pic006.gif\" width=\"13\" height=\"13\" border=\"0\"/></a></td>" +
						"</tr>" +
						"<tr>" +
						  "<td height=\"1\" colspan=\"2\" bgcolor=\"#458CCC\"></td>" +
						"</tr>" +
					  "</table>" +
					  "<table width=\"320\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"table3\" bgcolor=\"#FFFFFF\">" +
						"<tr>" +
						  "<td height=\"208\" align=\"center\" valign=\"middle\">" +
						  "<table width=\"296\" height=\"168\" border=\"0\" cellpadding=\"4\" cellspacing=\"0\">" +
							"<tr>" +
							  "<td width=\"70\" height=\"119\" align=\"center\" valign=\"middle\"><img src=\"/images/pic041.gif\" width=\"36\" height=\"36\" /></td>" +
							  "<td width=\"227\" align=\"left\">" + msgStr + "</td>" +
							"</tr>" +
							"<tr>" +
							  "<td height=\"49\" colspan=\"2\" align=\"center\" valign=\"bottom\"><label>" +
								"<input name=\"Submit\" type=\"submit\" class=\"but01\" value=\"确定\" onclick=\"document.getElementById('alterlight').style.display='none';document.getElementById('alterfade').style.display='none';\"/>" +
							  "</label>" +
							   "</td>" +
							"</tr>" +
						  "</table></td>" +
						"</tr>" +
					  "</table>" + 
					  "</td>" +
					  "</tr>" +
					  "</table>";
		return htmlStr;	
		//var str = "<iframe src=\"about:blank\" frameBorder=0 width=\"100%\" scrolling=no></iframe><table border=\"0\" cellspacing=\"1\" cellpadding=\"10\" width=\"98%\" height=\"180px\" bgcolor=\"#009933\" style=\"position: absolute;left:0px;top: 0px;\"><tbody><tr><td bgcolor=\"#FFFFFF\" valign=\"top\" style=\"font-size:12px;\"><li>这样就可以层在SELECT上显示</li><li>iframe是不可少的</li><li>table要用到\"position: absolute;\"不然不好定位</li></td></tr></tbody></table>";
		//return str;
	}

	function getDialogHTML(text)//功能同dialog// onmousemove=\"DragObj(document.getElementById('bglight'));\" onmouseout=\"mouseOut(document.getElementById('bglight'));\"
	{
		var htmlStr = "<iframe src=\"about:blank\" id=\"dialogIframe\" frameBorder=0 width=\"320\" height=\"220\" scrolling=no onload=\"javascript:{dyniframesize('dialogIframe');}\"></iframe>"+
					  "<table width=\"320\" id=\"tab\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" style=\"position: absolute;left:16px;top: 0px;\">" +
					  "<tr>" + 
					  "<td>" + 
					 "<table width=\"320\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">" +
						"<tr>" +
						  "<td width=\"291\" height=\"22\" bgcolor=\"#D3E4F4\" class=\"h6\">信息提示</td>" +
						  "<td width=\"29\" align=\"left\" bgcolor=\"#D3E4F4\"><a href=\"javascript:void(0);\" onclick=\"document.getElementById('bglight').style.display='none';document.getElementById('bgfade').style.display='none';\"><img src=\"/images/pic006.gif\" width=\"13\" height=\"13\" border=\"0\"/></a></td>" +
						"</tr>" +
						"<tr>" +
						  "<td height=\"1\" colspan=\"2\" bgcolor=\"#458CCC\"></td>" +
						"</tr>" +
					  "</table>" +
					  "<table width=\"320\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"table3\" bgcolor=\"#FFFFFF\">" +
						"<tr>" +
						  "<td height=\"208\" align=\"center\" valign=\"middle\">" +
						  "<table width=\"296\" height=\"168\" border=\"0\" cellpadding=\"4\" cellspacing=\"0\">" +
							"<tr>" +
							  "<td width=\"70\" height=\"119\" align=\"center\" valign=\"middle\"><img src=\"/images/pic041.gif\" width=\"36\" height=\"36\" /></td>" +
							  "<td width=\"227\" align=\"left\">" + text + "</td>" +
							"</tr>" +
							"<tr>" +
							  "<td height=\"49\" colspan=\"2\" align=\"center\" valign=\"bottom\"><label>" +
								"<input name=\"Submit1\" type=\"submit\" class=\"but01\" value=\"确定\" onclick=\"document.getElementById('bglight').style.display='none';document.getElementById('bgfade').style.display='none';\"/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" +
								"<input name=\"Submit2\" type=\"submit\" class=\"but01\" value=\"取消\" onclick=\"document.getElementById('bglight').style.display='none';document.getElementById('bgfade').style.display='none';\"/>" +
							  "</label>" +
							   "</td>" +
							"</tr>" +
						  "</table></td>" +
						"</tr>" +
					  "</table>" + 
					  "</td>" +
					  "</tr>" +
					  "</table>";
		return htmlStr;		
	}
	
	function getIframeStr()
	{
		return "<iframe src=\"about:blank\" frameBorder=0 width=\"100%\" height=\"100%\" scrolling=no></iframe>";
	}

	function setEntStr(values)//设置确定参数
	{
		returnStr = values;
	}

	function getEntStr()//获得确定参数
	{
		return returnStr;
	}

	/********************************* 鼠标拖拽事件 ********************************************/
	
	/*function InitArray(){
		var oRow = document.getElementsByTagName("DIV");
		var arrCount = 0;
		//alert(oRow.length);
		for(var i=0;i<oRow.length;i++){
			//alert(oRow[i].id.indexOf(layerName));
			if(oRow[i].id.indexOf(layerName) >= 0){
				//alert(oRow[i].id);
				arrLayer[arrCount] = oRow[i];
				arrCount++;
			}
		}
	}


	function ResetRow(){ //重新排列行
		var dragRow = event.srcElement; //当前拖动的行对象
		var dragObjIndex=-1; //当前拖动对象在数组arrLayer中的索引值index
		var nearObjIndex=-1; //最接近被覆盖对象在数组arrLayer中的索引值index
		//alert(arrLayer.length);
		for(var i=0;i<arrLayer.length;i++){
			//alert(arrLayer[i].id);
			if(dragObjIndex==-1){
				if(arrLayer[i].id == dragRow.id){
					dragObjIndex = i;
					i=0;
				}
			}
			
			if((arrLayer[i].id!=dragRow.id) && dragObjIndex>-1){
				//alert(arrLayer[i].id + "," + dragRow.id);
				//alert(i + "," + dragRow.style.pixelTop + "," + arrLayer[i].style.pixelTop);
				if(Math.abs(dragRow.style.pixelTop - arrLayer[i].style.pixelTop) <= 15){
					
					//var leftPos = oRow[i].style.left;
					//dragRow.style.top = arrLayer[i].style.pixelTop;
					//dragRow.style.left = arrLayer[i].style.pixelLeft;
					//document.all("textfield5").value += (arrLayer[i].id + ",");
					var tmpLastObj = arrLayer[i];
					var tmpLastLeft = arrLayer[i].style.pixelLeft;
					var tmpLastTop = arrLayer[i].style.pixelTop;
					
					arrLayer[dragObjIndex] = arrLayer[i];
					arrLayer[i].style.top = lastTop;
					arrLayer[i] = lastObj;
					
					lastObj = tmpLastObj;
					lastLeft = tmpLastLeft;
					lastTop = tmpLastTop;

					dragObject = null;
					
					break;
					//return;
				}
			}
		}
	}

	function MouseMove(ev){
		ev = ev || window.event;
		var mousePos = MouseCoord(ev);
		var dragRow = event.srcElement;
		//document.all("mouseX").value = mousePos.x;
		//document.all("mouseY").value = mousePos.y;
		
		if(dragObject){
			dragObject.style.postion = "absolute";
			dragObject.style.left = mousePos.x - mouseOffset.x;
			dragObject.style.top = mousePos.y - mouseOffset.y;
			///*开始计算
			if(dragRow.tagName=="DIV"){
				//alert(dragRow.style.top + "," + firstLineHeight);
				//document.all("textfield5").value = "===" + lastTop + "===";
				if((Math.abs(dragRow.style.pixelTop - lastTop) > 20) && (dragRow.style.pixelTop > firstLineHeight)){ //当竖向移动超过十五象素且移动的位置于第一行之下
					//alert(event.srcElement.id);
					
					ResetRow();
				}			
			}
			
			//计算结束*/
			/*return false;
		}
		if(dragRow.tagName=="DIV"){dragRow.className="mouseover";	}
		//alert(event.srcElement.tagName);
		
	}
					  
	function MouseOut(ev){
		ev = ev || window.event;
		if(event.srcElement.tagName=="DIV"){
			event.srcElement.className="normal";
		}
		dragObject = null;
	}

	function MouseCoord(ev){
		//
		if(ev.pageX || ev.pageY){
			return {x:ev.pageX, y:ev.pageY};
		}
		
		return {
			x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,
			y:ev.clientY + document.body.scrollTop - document.body.clientTop
		};
	}

	//获取 鼠标离 被拖动对象 的左边或上边距离
	//target
	function getMouseOffset(target,ev){
		ev = ev || window.event;
		var objPos = ObjPostion(target);
		var mousePos = MouseCoord(ev);
		return{
			x:mousePos.x - objPos.x,
			y:mousePos.y - objPos.y
		};
	}

	//获取 对象Left、Top离浏览器的距离
	function ObjPostion(e){
		var left=0;
		var top=0;
		while(e.offsetParent){
			left += e.offsetLeft;
			top += e.offsetTop;
			e = e.offsetParent;
		}
		left += e.offsetLeft;
		top += e.offsetTop;
		return{x:left,y:top};
	}

	function DragObj(item){
		if(!item){return;}
		item.style.cursor = "move";
		item.onmousedown = function(ev){
			dragObject = this;
			mouseOffset = getMouseOffset(item);
			mousedownLeft = event.srcElement.style.pixelLeft;
			mousedownTop = event.srcElement.style.pixelTop;
			lastLeft = event.srcElement.style.pixelLeft;
			lastTop = event.srcElement.style.pixelTop;
			lastObj = event.srcElement;
			event.srcElement.style.zIndex=1000;
			// alert(mousedownTop);
			return;
		}
	}

	function mouseUp(){
		var dragRow = event.srcElement;
		dragObject = null;
		dragRow.style.zIndex=5;
		//alert(dragRow.style.pixelTop + "," + mousedownTop)
		if(dragRow.tagName=="DIV"){
				//alert(dragRow.style.top + "," + firstLineHeight);
				if((Math.abs(dragRow.style.pixelTop - lastTop) < 10) || (dragRow.style.pixelTop > firstLineHeight)){ //当竖向移动超过十五象素且移动的位置于第一行之下
					//alert(lastObj.id + " , " + lastLeft + " , " + lastTop);
					//dragRow.style.left = mousedownLeft;
					//dragRow.style.top = mousedownTop;
					dragRow.style.left = lastLeft;
					//alert(lastTop);
					dragRow.style.top = lastTop;
					//ResetRow()
					//调试信息
					/*for(var k=0;k<arrLayer.length;k++){
						var objText = document.getElementById("textfield" + (k+1));
						var objLayer = document.getElementById("layer" + (k+1));
						objText.value += objLayer.id;
						objText.value += ("," + objLayer.style.pixelLeft);
						objText.value += ("," + objLayer.style.pixelTop);
					}*/
					//document.all("textfield4").value += lastTop;
					//document.all("textfield5").value += (lastObj.id + ",");
				//}
				//else{
					//dragRow.style.left = mousedownLeft;
					//dragRow.style.top = mousedownTop;
				//}
				
		//}
		//else{
					//dragRow.style.left = mousedownLeft;
					//dragRow.style.top = mousedownTop;
		//}
		
	//}
