﻿//通过元素ID属性获取其对象
function _gId(id,win)//doc在指定的document中获取
{
	//try{alert(win.all.length);alert(win.outerHTML)}catch(err){}
	return (win)?win.document.getElementById(id):document.getElementById(id);
}

//通过getElementsByName返回带有指定名称(name)的对象集合
function _gName(name,win)//doc在指定的document中获取
{
	return (win)?win.document.getElementsByName(name):document.getElementsByName(name);
}

//通过getElementsByTagName指定名称的元素集合
function _gTagName(html,win)//doc在指定的document中，用tagName获取
{
	return (win)?win.document.getElementsByTagName(html):document.getElementsByTagName(html);
}


function _gPar(where,obj)//取得父对象where为判断表示式，当前对象）//如：obj.id=ab或，obj.name.indexOf(),obj.tagName=='TR'
{
	if(!obj)var obj=event.srcElement;//因为obj可以不用传回来
	//alert(tag)
	var a=0;
	while(a!=1)
	{
		if(!obj.tagName)return;
		if(obj.tagName=='BODY' || obj.tagName=='HTML')a=1;//结束循环
		eval("if("+where+")a=1;");//如id包含值就不循环了。//eval(""if("+tag+")break;")//这加了break就出错了
		if(a!=1)obj=obj.parentElement;
	}
	return obj;
}

function _gPar_td(obj)//取得第一个父td
{
	return _gPar("obj.tagName=='TD'",obj)
}

function _gSub(where,obj,tag)//取得子对象where为判断表示式，当前对象）//如：subs[i].id=ab或，subs[i].name.indexOf(),subs[i].tagName=='TR'
{
	if(!obj)var obj=event.srcElement;//因为obj可以不用传回来
	if(tag)	{var subs=obj.getElementsByTagName(tag)}
	else{var subs=obj.childNode}
	var a=0;
	for(var i=0;i<subs.length;i++)
	{
		eval("if("+where+")a=1;");//如id包含值就不循环了。//如：subs[i].id='tr0'
		if(a==1)return subs[i];
	}//alert(obj.outerHTML)

}

//删除表格的所有行
function del_tbRows(tbObj)
{
	var i=tbObj.rows.length-1;
	while(i!=0)
	{
		tbObj.rows[i].removeNode(true);
		i--;
	}
}

// JavaScript Document
function ajax(url)
{
	var Ajax=ajax_createXMLHTTP();//ajax对象
	Ajax.open("GET",url,false);//如果bAsync == True，此方法将立即返回
	Ajax.send();
	var s = Ajax.responseText;
	return s;
}

function ajax_createXMLHTTP()//ajax构造函数
{
	var request=false;
	var browser=navigator.appName;
	if(browser=="Microsoft Internet Explorer")
	{
		var arrVersions=["Microsoft.XMLHttp","MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0","MSXML2.XMLHttp","MSXML2.XMLHttp.5.0"];
		for(var i=0;i<arrVersions.length;i++)
		{
			try
			{
				 request=new ActiveXObject(arrVersions[i]);
				 return request;
			}
			catch(exception){}
		}
	}
	else
	{
		request=new XMLHttpRequest();
		return request;
	}
}
 
function arr_sort(A)////用冒泡排序法将1维数组排序
{
	var len=A.length;
	var temp;
	for(var m=0;m<len;m++)
	{
		for(var n=0;n<len-m;n++)
		{
			if(parseFloat(A[n])>parseFloat(A[n+1]))
			{
				temp=A[n];A[n]=A[n+1];A[n+1]=temp;
			}
		}
	}
	return A;
}

function ytd_sel(tb_str,input_str,u_str,td2_str,a_str)//自定义的选择框（最外层table特殊控制的html代码，input，u为图标按钮，td2为第二个td，a为a标签，其它信息）
{
	//var input_str=s_get_value("input_str");//通过字符串找到input_str
	var s="<table "+tb_str+" style='display:inline' class=sel_tb cellpadding=0 cellspacing=0><tr>";	
	//_gPar(\"obj.tagName=='TD'\",this) 改为 this.parentNode了
	s+="<td><input onblur=this.parentNode.getElementsByTagName('DIV')[0].style.display='none';  "+input_str+"/>";
	s+="<div onmousedown=if(event.srcElement.tagName=='A'){this.parentNode.getElementsByTagName('INPUT')[0].value=event.srcElement.innerText;} ></div></td>";
	s+="<td "+td2_str+" class=sel_tb_td2>";
	s+="<a "+a_str+" href=javascript:; onclick=this.blur()>";
	s+="<u  wanneng_menu=0 "+u_str+" ></u></a></td>";
	s+="</tr></table>"
	return s;
}

function menu_sel(obj,str,win)//自定义下拉数据框 参数（箭头对象，字符串 如 1,2,3 每一项用逗号隔开,window，单击是否选值）
{
	if(!win)win=window;
	var tbObj=_gPar("obj.tagName=='TABLE'",obj);//找到table
	var td1=tbObj.rows[0].cells[0];//找到第一个单元格 也就是文本框的父容器
	var td2=tbObj.rows[0].cells[1];
	var textObj=td1.getElementsByTagName("INPUT")[0];//找到文本框
	textObj.focus();
	var boxObj=td1.getElementsByTagName("DIV")[0]; //找数据框
	if(!str)str="";
	var htm="";
	if(str.indexOf(",")>-1)//多项
	{
		var arr=str.split(",");
		for(var i=0;i<arr.length;i++)
		{
			if(arr[i]=="")continue;
			htm+="<a href='javascript:;'>"+arr[i]+"</a>";	
		}
	}
	else  //一项
	{
		htm="<a href='javascript:;'>"+str+"</a>";
	}
	boxObj.innerHTML=htm; //绑定数据
	boxObj.style.display="block";
	boxObj.style.left=get_left(tbObj);//x定位与table对齐
	boxObj.style.top=tbObj.offsetHeight+get_top(tbObj);//默认 y定位于table的下边
	
	var body_h=win.document.body.offsetHeight; //body的高度
	if(get_top(boxObj)+boxObj.offsetHeight>body_h)//如果数据框的y离body的距离加上自身的高度大于body的高度 表示数据框越界了
	{
		boxObj.style.top=get_top(tbObj)-boxObj.offsetHeight;//然后把数据框移到table的上面	
	}
	boxObj.style.width=tbObj.offsetWidth;//指定数据框的宽度与table一致
	
}

function s_get_value(s,tag)//通过字串取得要的值
{
	var arr=s.split('|');
	for(var i=0;i<arr.length;i++)
	{
		var arr1=arr[i].split('=');
		if(arr1[0]==tag)return unescape(arr1[1]);//返回需要的值
	}
}


//通用的显示隐藏函数
//参数1:show_obj_id表示要显示的元素的ID,多个ID用逗号隔开','  字符串
//参数2:hidden_obj_id表示要隐藏的元素的ID,多个ID用逗号隔开','  字符串
//参数3:show_style  显示方式  如：block,inline
function control_sh(show_obj_id,hidden_obj_id,show_style,obj_doc) 
{
	var s,h;
	if(!obj_doc)obj_doc=document;
	if(!show_style)show_style="block";
	if(hidden_obj_id.indexOf(",")>-1)
	{
		h=hidden_obj_id.split(",");
		for(var i=0;i<h.length;i++)
		{
			if(h[i]!=""&&obj_doc.getElementById(h[i]))
			{
				obj_doc.getElementById(h[i]).style.display="none";	
			}
		}
	}
	else 
	{
		h=hidden_obj_id;
		if(h!=""&&obj_doc.getElementById(h))
		{
			obj_doc.getElementById(h).style.display="none";
		}
	}
	
	if(show_obj_id.indexOf(",")>-1)
	{
		s=show_obj_id.split(",");
		for(var i=0;i<s.length;i++)
		{
			if(s[i]!=""&&obj_doc.getElementById(s[i]))
			{
				obj_doc.getElementById(s[i]).style.display=show_style;	
			}
		}
	}
	else 
	{
		s=show_obj_id;
		if(s!=""&&obj_doc.getElementById(s))
		{
			obj_doc.getElementById(s).style.display=show_style;
		}
	}
}

function open_dialog(url,w,h,typ)
{
	try
	{
		var s='resizable:yes;status:no;help:no;dialogHeight:'+h+'px;dialogWidth:'+w+'px';
		if(typ==1)
			{window.showModelessDialog(url,window,s)}
		else
			{window.showModalDialog(url,window,s)}
	}
	catch(e)
	{
		alert("当前浏览器阻止了弹出窗口,请设置浏览器:工具->弹出窗口阻止程序->总是允许来自此站点的弹出窗口");
		//alert(top.document.location.href)
		
	}
}

function get_date_time(obj,hhmmss,scroll_obj)//对象，是否显示时分秒,scroll_obj滚动条对象，默认是body
{
	var oF=document.getElementById('frame_date_time');
	var url='date.htm?obj='+obj+'&hhmmss='+hhmmss+'&scroll_obj='+scroll_obj;
	if(oF)
	{oF.src=url}//开始行动
	else
	{
		var s="<div id=div_date_time_bg style='position:absolute;z-index:1; left:-1140px; top:-1184px; background-color: #99CCDF; filter: Alpha(Opacity=50); '>&nbsp;</div>"
		s+="<div id=div_date_time style='position:absolute;z-index:2;left:-1111px;top:-1111px;width:180px;height:180px;'><iframe id=frame_date_time name=frame_date_time width=100% height=100% src='"+url+"' scrolling=no frameborder=0></ifrmae></div>"
		
		document.body.insertAdjacentHTML('beforeEnd',s);
	}
	
	document.onclick=function()
	{
		if(event.srcElement.id==obj)return;
		div_date_time.style.display='none';
		div_date_time_bg.style.display='none';
	}
}



function get_distance(x1,y1,x2,y2)//取得两点之间的距离
{
	var xdiff = x2 - x1;
	var ydiff = y2 - y1;
	
	return Math.pow((xdiff * xdiff + ydiff * ydiff),0.5);
}


function get_xy(obj,s,xy)//取得xy坐标，从哪个obj对象开始，到以包含s的对象结束,xy要么x，要么y，要么就是xy
{
	var x=obj.offsetLeft,y=obj.offsetTop;
	while (obj = obj.offsetParent)//得到坐标,obj已经改变
	{
		if(obj.piao && obj.piao=='yes')//浮动的层,里面的东西以它的坐标为准,piao要手动加上
		{
			break;
		}else
		{
			x +=obj.offsetLeft;
			y +=obj.offsetTop;
			if(obj.tagName!='BODY'){
				x -=obj.scrollLeft;//对付带滚动条的div等
				y -=obj.scrollTop;//对付带滚动条的div等
			}
			if(s)
			{
				var arr=obj.outerHTML.split('>');//如<div id=ab>,坐标只取到ab这里
				if(arr[0].indexOf(s)>-1)break; 
			}
		}
	}
	if(xy=='x')return x;
	if(xy=='y')return y;
	return x+","+y;//x和主一起反回;
}

function get_xy_jiao(obj,jiao)//取得指定角的x和y的坐标,jiao的值为lt,rt,lb,rb
{
	var x=get_left(obj);
	var y=get_top (obj);//取得坐标
	var old_dis=obj.style.display
	obj.style.display='';//显示出来，才能取得到高度
	var w=obj.offsetWidth;
	var h=obj.offsetHeight;
	obj.style.display=old_dis;//恢复以前的显示状态
	switch (jiao)
	{
		case 'lt': return x+','+y;
		case 'rt': return (x+w)+','+y;	
		case 'lb': return x+','+(y+h);	
		case 'rb': return (x+w)+','+(y+h);//右下角
		case 'r': return x+w;//右边x
		case 'b': return y+h;//下边y
	}
}

function get_left(obj,s){return get_xy(obj,s,'x')}//取得x坐标，从哪个obj对象开始，到以包含s的对象结束
function get_top(obj,s){return get_xy(obj,s,'y')}



//设置元素坐标 
//参数：1、参照物 2、本身对象 3、显示位置  如：右上:rt、左下:lb、右下:rb、左上:lt 4、准确的方向
//返回值：字符串 如："110,220"   纵坐标,横坐标
function get_objPosition(win,obj,selfObj,dir,move_in,move_pinXin)//参照物，菜单，方向，向内移位，平行移位
{
	if(dir==""||typeof(dir)=="undefined")dir="lb-lt";//不指定放的方向默认在下面
//	var checked=','+dir+',';//已经检查过的放置方位
	var xy=get_objPosition_sub(win,obj,selfObj,dir,move_in,move_pinXin)
	var arr=xy.split(',');//返回原值为可能是：false,32,23或是：32，23
	if(arr[0]!='_false')return xy;//因为有可能第一种方案不成功地，就运行下面的方案，以找到最好的位置
	var old_x=arr[1],old_y=arr[2];//存起来，当找不到适合位置时，强行调整时会以这个为基础的。
	var s="lb-lt,lt-lb,rt-lt,lt-rt";//放的顺序为下上右左
	
	switch(dir)
	{
		case "lb_lt" :s="lb-lt,lt-lb,rt-lt,lt-rt";break;//以传来的dir为开始，找四面的位置
		case "lt-lb" :s="lt-lb,lb-lt,rt-lt,lt-rt";break;
		case "rt-lt" :s="rt-lt,lt-rt,lb-lt,lt-lb";break;
		case "lt-rt" :s="lt-rt,rt-lt,lb-lt,lt-lb";break;
		case "rb-lt" :s="rb-lt,lt-br,lb-rt,rt-lb";break;//放在obj的右下角,是角对角形式
		
		case "xy_lt" :s="xy-lt,xy-lb,xy-lt,xy-rt";break;//放在对象的xy处
	}
	
	var arr=s.split(',');
	for(var i=0;i<arr.length;i++)
	{
		xy=get_objPosition_sub(win,obj,selfObj,arr[i],move_in,move_pinXin)
		if(xy.split(',')[0]!='_false')return xy;//因为有可能第一种方案不成功地，就运行下面的方案，以找到最好的位置
	}
	 return get_objPosition_best(win,obj,selfObj,old_x,old_y)//如果到了这里，就说明上面的方法都不行，就进行强行调整。
}

function get_objPosition_sub(win,obj,selfObj,dir,move_in,move_pinXin)//控制坐标（window，参照物，菜单，方向，向内移位，平行移位
{
	dir=get_objPosition_paiLie(dir)//排列，保证为lt,而不是tl
	var arr=dir.split('-')
	if(arr[0].indexOf('x')>-1)//如xy-lt时，表示以鼠标点时的xy为准，一般用于右键菜单
	{var x=win.event.x,y=win.event.y;}//取得的xy坐标是指参照物被点击的那点}
	else
	{var x=get_left(obj),y=get_top(obj);}
	
	var obj_rb_x=x+obj.offsetWidth;//参照物的右下角x
	var obj_rb_y=y+obj.offsetHeight;//参照物的右下角y
	//alert(obj_rb_x)
	
	//参照物对象
	if(arr[0].indexOf('c')>-1){x=x+obj.offsetWidth/2}//左右的中点
	if(arr[0].indexOf('r')>-1){x=x+obj.offsetWidth}//右边
	if(arr[0].indexOf('m')>-1){y=y+obj.offsetHeight/2}//上下的终点
	if(arr[0].indexOf('b')>-1){y=y+obj.offsetHeight}//下边

	//漂浮的层对象
	if(arr[1].indexOf('c')>-1){x=x-selfObj.offsetWidth/2}
	if(arr[1].indexOf('r')>-1){x=x-selfObj.offsetWidth}
	if(arr[1].indexOf('m')>-1){y=y-selfObj.offsetHeight/2}
	if(arr[1].indexOf('b')>-1){y=y-selfObj.offsetHeight}
	
	/*开始处理移位问题*/
	if(!move_in)move_in=0;
	dir_num=dir;//
	dir_num=dir_num.replace('l',1);//把lcr换成数字，好比较，完全是一种临时发现规律，无需考虑特殊意义
	dir_num=dir_num.replace('c',2);
	dir_num=dir_num.replace('r',3);
	dir_num=dir_num.replace('t',1);//如：lt-rt,-的右边
	dir_num=dir_num.replace('m',2);
	dir_num=dir_num.replace('b',3);
	//根据规律，左右str的第一个字控制x，而第二个字则控制y。
	//如：lt-lr成了11,13，其中，右一(1)减左一（1）为0,x不加不减
	//但是右二（3）减左二（1）大于0，x就可以加偏移量move_in。如果为负数，则减去move_in
	var arr_num=dir_num.split('-');
	if(left(arr_num[1],1)-left(arr_num[0],1)>0){x=x+move_in;y=y+move_pinXin;}//y=y+move_pinXin;意思是说，x方向是向内外移动了，那另一个方向y就自然是平等移动了。
	//arr_num[1]右边第一位，arr_num[0]减左边第一位
	if(left(arr_num[1],1)-left(arr_num[0],1)<0){x=x-move_in;y=y+move_pinXin;}
	
	if(right(arr_num[1],1)-right(arr_num[0],1)>0){y=y+move_in;x=x+move_pinXin;}
	if(right(arr_num[1],1)-right(arr_num[0],1)<0){y=y-move_in;x=x+move_pinXin;}
	/*结束处理移位问题*/
	

	
	//以上处理好了x和y的位置了，现在要开始判断，右边和下边有没有超出body，只要算出右下角的x和y即可。

	var rb_x=x+selfObj.offsetWidth;//右下角的x
	var rb_y=y+selfObj.offsetHeight;//右下角的y
	var body_w=win.document.body.scrollWidth;
	var body_h=win.document.body.scrollHeight;

	if(body_w<rb_x)//右下角x超边//就减去多余部分强行向左移动,但要看情况，如果放置情况是左右式，就是两个对象平等于x那就不能移动了，只能上下移动
	{
		var fangWei=get_objPosition_fangWei(dir);//取得方位，就是浮动的对象位于参照物的上下左右（lrtb），四种情况
		if(fangWei=='t' || fangWei=='b')x=obj_rb_x-selfObj.offsetWidth;//是上下排列，就可以向左移动,最好的方式就是移了右对齐
		
	}

	if(body_h<rb_y)
	{
		var fangWei=get_objPosition_fangWei();
		if(fangWei=='l' || fangWei=='r')y=obj_rb_y-selfObj.offsetHeight;//是左右排列，就可以向上移动,,最好的方式就是移了底对齐
	}//右下角y超边//就减去多余部分强行向上移动(rb_y-body_h就是多余部分)
	var ok=1;//标识是否超边，默认为1表示不超边，正常
	rb_x=x+selfObj.offsetWidth;//再次取右下角的x
	rb_y=y+selfObj.offsetHeight;//再次取右下角的y


	if(body_w<rb_x || body_h<rb_y){ok=0}//右下角超边，要么是x，么是y。虽然通过移位，但是有可能移不动，如：下下结构时，下而超了，只能向上移动，但是，上面是参照物，移了就会覆盖，马还是超边的。
	//alert('x:'+x+'   y:'+y)
	if(x<0 || y<0){ok=0}//左上角超边了----通过移位，或本身就超边了 。所以就不ok（ok=0）了。
	if(ok!=1)//有超边情况
	{
		return "_false,"+x+','+y;//失败了，自然会找出下一种方案，但是要把已经算好的xy返回，以便使用
	}
	else
	{
		return x+","+y;//成功的值,除了要反回x和y
	}
}

function get_objPosition_paiLie(dir)//排列，根据习惯，系统规定如：左上角要用lt表示，而不是tl，所以要反相
{
	var arr,a,b,c,d,left_str,right_str;
	arr=dir.split('-')
	a=left(arr[0],1);
	b=right(arr[0],1);
	(a=='l'||a=='c'||a=='r')?(left_str=a+b) : (left_str=b+a);//交换位置，确保lcr在前如：tl-->lt
	c=left(arr[1],1);
	d=right(arr[1],1);
	(c=='l'||c=='c'||c=='r')?(right_str=c+d) : (right_str=d+c);
	return left_str+"-"+right_str;//如把br-bl变成了rb-lb
}
	
function get_objPosition_fangWei(dir)//取得方位，就是浮动的对象位于参照物的上下左右（lrtb），四种情况
{
	if(!dir)return;
	var arr,a,b,c,d,left_str,right_str;
	arr=dir.split('-')
	a=left(arr[0],1);
	b=right(arr[0],1);
	c=left(arr[1],1);
	d=right(arr[1],1);
	//根据规律
	//LT-LB,方位为上(T),可以左右移动
	//LB-LT,方位为下(B),可以左右移动
	//LB-RB,方位为左(L),可以上下移动
	//RB=LB,方位为右(B),可以上下移动
	//其它情况就是角对角，不不用考虑之
	//于是就像以下这么写
	if(a==c)return b;
	if(b==d)return a;
}

function get_objPosition_best(win,obj,selfObj) //得到最适合的位置
{

	var x=get_left(obj);
	var y=get_top(obj);
	var rb_x=x+selfObj.offsetWidth;//右下角的x
	var rb_y=y+selfObj.offsetHeight//右下角的y
	var body_w=win.document.body.scrollWidth;
	var body_h=win.document.body.scrollHeight;
	if(body_w<rb_x){x=x-(rb_x-body_w)}//右下角x超边//就减去多余部分强行向左移动
	if(body_h<rb_y){y=y-(rb_y-body_h)}//右下角y超边//就减去多余部分强行向上移动(rb_y-body_h就是多余部分)
	
	//最后检查左上角，如果超边，就刚好顶边即可
	//alert(1+':'+x)
	//alert(1+':'+y)
	if(x<0)x=0;
	if(y<0)y=0;
	return x+","+y;//成功的值

}



function get_ico(s)
{
	if (s.indexOf('?')>-1)
	{
		var arr=s.split('?');
		var arr1=arr[1].split(',')
		var x=(isNaN(arr1[0]))?0:arr1[0];//不是数字就取0
		var y=(isNaN(arr1[1]))?0:arr1[1];//不是数字就取0
		var str="background-image:url("+arr[0]+");";
		str+="background-repeat: no-repeat;";//背景不重复
		str+="background-position: "+x+"px "+y+"px;";
		return 	str
	}else
	{
		var str="background-image:url("+s+");";
		str+="background-repeat: no-repeat;";//背景不重复
		str+="background-position: 0px center;";
		return str
	}
}

//function get_xml(s,tag)
//{
//	s=s.replace("</"+tag+">","<"+tag+">")
//	var arr=s.split("<"+tag+">")
//	var v=arr[1];
//	if(v==undefined)v="";
//	return v;
//}
function get_xml(s,tags)//如：<ab><c>值</c></ab>，c   就得到 值
{
	//alert(s)
//alert(tags)
	var arr,i,str
	arr=tags.split(".")
	str=s;
	for (i=0;i<arr.length;i++)
	{
		str=get_xml_sub(str,arr[i])//get_xml_sub(<c>值</c>,c)
	}
	
	return str;
}

function get_xml_sub(s,tag)//如：<ab><c>值</c></ab>，c   就得到 值
{
	var arr;
	eval("arr=s.split(/<"+tag+">/i)")
	
	if (arr.length>1)
	{
		var str;
		eval("str=arr[1].split(/<\\/"+tag+">/i)[0]");//参数i表示不区别大小写,\\这个转意符要用2次
		return ytd_htmlDeCode(str);
	}
	else
	{return "";}
}

function left(mainStr,lngLen)
{ 
	if(!mainStr)return "";
	if(lngLen>0) {return mainStr.substring(0,lngLen)} 
	else{return null} 
}



function right(mainStr,lngLen)
{ 
	if(!mainStr)return "";
	if (mainStr.length-lngLen>=0 && mainStr.length>=0 && mainStr.length-lngLen<=mainStr.length) { 
	return mainStr.substring(mainStr.length-lngLen,mainStr.length)} 
	else{return null} 
} 




function s_h_obj(obj,t)//显示或隐藏指定对象、显示方式
{
	if (!obj)return;
	if(!t)var t="block";
	obj.style.display=(obj.style.display=='none')?t:'none';
}

function vibi_obj(obj)//显示或隐藏指定对象、，隐藏时也是占了位置的
{
	if (!obj)return;
	obj.style.visibility=(obj.style.visibility=='visible')?'hidden':'visible';
}

function set_shadow(box_id,el,w,h,t,l,z,color,size) //建阴影，在指定的Id对将上一些半透明的div就形成了阴影(所有的阴影字串加到哪个对象［一般在</body>前］，一个小组的阴影字串加到哪个对像里［就是阴影菜单］，宽，高，左，右，z-index，颜色，大小)
{ 
    var s='';
	max_opacity=30;//最深色的土方20%不透明
	var opacity =max_opacity/size;
	l=parseInt(l.replace('px',''));
	t=parseInt(t.replace('px',''));
    for (var i=1; i<=size; i++) 
    { 
	  var iframe_str=(i==1)?"<iframe width=100% height=100% >阴影区</iframe>":""
	  s+="<div style='position:absolute;";
	  s+="left:"+(l+i)+"px;top:"+(t+i)+"px;width:"+w+";height:"+h+";"
	  s+="background-color:"+color+";overflow:hidden;filter: Alpha(Opacity="+opacity+")' >"+iframe_str+"</div>"
    }
	//if(div_shodow)div_shodow.removeNode(true);//选删除后再创建才能保证坐标的正确性
	var obj=document.getElementById(el);//已经存在 了
	if(obj)
	{
		var divs=obj.getElementsByTagName('DIV')
		for(var i=0;i<divs.length;i++)
		{
			divs[i].style.left=l+(i+1);//重新设置左边的位置
			divs[i].style.top=t+(i+1);//重新设置左边的位置
		}
		//alert(obj.outerHTML)
		obj.style.display='block';
	}
	else
	{
		s="<div id='"+el+"'>"+s+"</div>"
		var box=document.getElementById(box_id);
		if(box){box.insertAdjacentHTML('beforeEnd',s)}
		else{document.body.insertAdjacentHTML('beforeEnd',s)}//直接加在body 中
	}
} 

function set_cur_select(win,box,tag,className,out_className,obj)//-----设置当前选中对象为指定的classNmae(窗口，容器，被选对象的兄弟的tagName，选中后的样式，[没有选中时的className],[obj是被点对象])
{
	if(!obj)var obj=win.event.srcElement;//，被选对象
	//alert(obj.tagName)
	while(obj.tagName!=tag)
	{
		obj=obj.parentElement;
		if(obj.tagName=='BODY')return;//到顶了
	}
	if(obj.tagName!=tag)return;//不是其中的一个

	var arr=box.getElementsByTagName(tag);
	for(var i=0;i<arr.length;i++)
	{
		if(arr[i].className)arr[i].className=out_className?out_className:'';//删除其它对象的className
	}
	obj.className=className;//当前为先遣状态
}
function zhiShiPai_show(win,obj,t,c,pai_name,dir,w,h,move_in,move_pinXin,other)//建立指示牌
//obj所在的document，被点对象,标题，内容，指示牌的id名，宽,高，向内移位，平行移位。
//注意：t中，如果有<ico1>（信息提示）<ico2>（信息可能有问题）<ico3>（出错）图会出现到相应的在左边
{
	var zsp=_gId(pai_name,win);//用id取得指示牌对象
	if(zsp){		zsp.removeNode(true)	}//先删除老的
	(w>0)?(w="width:"+w+"px;"):w='';
	(h>0)?(h="height:"+h+"px;"):h='';
	var ico=pos='';
	var td_w=1;//设置信息图票的td的宽度
	if(t.indexOf('<ico1>')>-1)pos='-1600';//设置图片坐标
	if(t.indexOf('<ico2>')>-1)pos='-1650';
	if(t.indexOf('<ico3>')>-1)pos='-1700';
	if(pos!='')
	{
		var ico="<span style='height:32px;width:32px; background-image:url(img/32x32_y.gif);background-position: 0px "+pos+"px;'></span>";
		td_w=36
	}
	var s="<div class=zsp_box id='"+pai_name+"' style='position:absolute;"+w+h+";z-index:100'>";
	s+="<table width='100%' id=zsp_tb border=0 cellpadding=0 cellspacing=0>";
	s+="<tr> <td id=zsp_lt><span id=zsp_jt_lt>←</span></td><td id=zsp_t ><span id=zsp_jt_tl>↑</span>";
	s+="</td><td id=zsp_rt><span id=zsp_jt_tr>↑</span></td></tr>";
	s+="<tr><td id=zsp_l valign=bottom><span id=zsp_jt_lb>←</span></td>";
	s+="<td id=zsp_c>";//100%就是要以中间为最宽
		s+="<table width='100%' height='100%' cellpadding='0' cellspacing='0'>";
		s+="<tr><td rowspan=2 width="+td_w+" align=top>"+ico+"</td>";
		s+="<td id=zsp_c_title width=99% style='font-weight: bold;'>"+t+"</td>";
		s+="<td id=zsp_c_close width=20 align=right><a href=javascript:; onmoueseDown=this.blur() onClick=\""+pai_name+".style.display='none'\">关</a></td></tr>";
		s+="<tr><td colspan=2 id=zsp_c_content>"+c+"</td></tr>";
		s+="</table>";
	s+="</td><td id=zsp_r valign=top><span id=zsp_jt_rt>→</span>";
	s+="</td></tr>"
	s+="<tr><td id=zsp_lb><span id=zsp_jt_bl>↓</span></td><td id=zsp_b align=right><span id=zsp_jt_br>↓</span>";
	s+="</td><td id=zsp_rb><span id=zsp_jt_rb>→</span></td></tr>"
	s+="</table></div>";
	win.document.body.insertAdjacentHTML("beforeEnd",s)
	var zsp=win.document.getElementById(pai_name);//用id取得指示牌对象
//	var sp=zsp.getElementsByTagName('SPAN')
//	for(var i=0;i<sp.length;i++)
//	{
//		if(sp[i].id.indexOf('zsp_jt')>-1){var jiao=sp[i];break;}//是其中一个角
//	}
//	if(_x){_x+=jiao.offsetWidth}else{_x=jiao.offsetWidth};//原来人工输入的偏移量加在角的宽度
//	if(_y){_y+=jiao.offsetHeight}else{_y=jiao.offsetHeight};
	var xy=get_objPosition(win,obj,zsp,dir,move_in,move_pinXin)//rb右下
	//alert(xy)
	var x=xy.split(',')[0];
	var y=xy.split(',')[1];
	
	zsp.style.left=x;
	zsp.style.top=y;
	
	//确定到底要显示出哪一个箭头
	var sp=zhiShiPai_show__get_zsp_jts(zsp)//找出箭头
	for (var i=0;i<sp.length;i++)
	{
		sp[i].style.display='none';//把箭头全部隐藏
	}
	var  min_jt=zhiShiPai_show__get_min_zsp_jt(zsp,obj);//找出距离最离的
	if (min_jt)
	{
		var jiao_xy;//得离参照物最近的那个角（左上，右上角，左下角，右下角）的x和y
		
		if(min_jt.id=='zsp_jt_lt' || min_jt.id=='zsp_jt_tl'){jiao_xy=get_xy_jiao(min_jt,'lt')}//取左上角
		if(min_jt.id=='zsp_jt_rt' || min_jt.id=='zsp_jt_tr'){jiao_xy=get_xy_jiao(min_jt,'rt')}
		if(min_jt.id=='zsp_jt_lb' || min_jt.id=='zsp_jt_bl'){jiao_xy=get_xy_jiao(min_jt,'lb')}
		if(min_jt.id=='zsp_jt_rb' || min_jt.id=='zsp_jt_br'){jiao_xy=get_xy_jiao(min_jt,'rb')}
		
		var jiao_x=jiao_xy.split(',')[0];
		var jiao_y=jiao_xy.split(',')[1];
		var obj_x=get_left(obj);//参照物左上角x
		var obj_y=get_top(obj);//参照物左上角y
		var obj_rb_x=obj_x+obj.offsetWidth;//参照物右下角x
		var obj_rb_y=obj_y+obj.offsetHeight;//参照物右下角y
		//alert (obj_y+'<='+jiao_y +'\r'+jiao_y+'<='+obj_rb_y)
		if((obj_x<=jiao_x && jiao_x<=obj_rb_x) &&(obj_y<=jiao_y && jiao_y<=obj_rb_y))//就是角的点，在参照特范围内
	    min_jt.style.display='';//就显示最近的那个箭头
		
	}
	//alert(zsp.style.left)
	//alert(zsp.style.top)
	//alert("ddd-"+xy)
}

function zhiShiPai_show__get_zsp_jts(zsp)//找出箭头
{
	var jts=new Array(8);
	var j=0;
	var sp=zsp.getElementsByTagName('SPAN');
	var tag="zsp_jt_";
	for (var i=0;i<sp.length;i++)//找出八个角
	{
		if(sp[i].id=='zsp_jt_tl'){jts[0]=sp[i];}//上边之左
		if(sp[i].id=='zsp_jt_tr'){jts[1]=sp[i];}
		if(sp[i].id=='zsp_jt_bl'){jts[2]=sp[i];}
		if(sp[i].id=='zsp_jt_br'){jts[3]=sp[i];}
		if(sp[i].id=='zsp_jt_lt'){jts[4]=sp[i];}
		if(sp[i].id=='zsp_jt_lb'){jts[5]=sp[i];}
		if(sp[i].id=='zsp_jt_rt'){jts[6]=sp[i];}
		if(sp[i].id=='zsp_jt_rb'){jts[7]=sp[i];}
	}
	return jts;
}

function zhiShiPai_show__get_min_zsp_jt(zsp,obj)
{
	var arr=zhiShiPai_show__get_zsp_jts(zsp)//找出箭头
	var arr_d    =new Array(8);//放距离，要用来排序
	var arr_d_old=new Array(8);//放距离，不用来排序
	var obj_cm_x=get_left(obj)+obj.offsetWidth/2;//参照物（对象）的中心点x坐标
	var obj_cm_y=get_top(obj)+obj.offsetHeight/2;//参照物（对象）的中心点y坐标
	for(var i=0;i<arr.length;i++)//要算出每个角的中心到，到obj（参照物）中心点的距离
	{
		var arr_cm_x=get_left(arr[i])+arr[i].offsetWidth/2;//每个角的中心点x坐标
		var arr_cm_y=get_top(arr[i])+arr[i].offsetHeight/2;//每个角的中心点y坐标
		var d=get_distance(arr_cm_x,arr_cm_y,obj_cm_x,obj_cm_y);//取得两点之间的距离
		d=parseFloat(d);
		arr_d[i]=d;
		arr_d_old[i]=d;
	}
	var arr_d=arr_sort(arr_d)//维数组排序
	var d_min=arr_d[0];//最近的那个角的距离和，i，如：5.23,0
	s1="";//测试
	s2="";
	for(var i=0;i<arr_d_old.length;i++)
	{
		if(arr_d_old[i]==d_min) return arr[i];//这就是最小的那个角，返回
		s1+=arr_d_old[i]+"|";//测试
		s2+=arr_d[i]+"|";
	}
	//alert("排序前："+s1+'\r排序后：'+s2)
}

//边框闪动效果  参数 元素ID、文档对象
function win_shanDong(obj_id,true_obj_id,win)
{
	if(!win)win=window;
	var drag_obj=_gId(obj_id,win);//要拖动的目标
	drag_obj.style.display="block";
	drag_true_obj=_gId(true_obj_id,win);//实际要变的目标
	drag_obj.style.width=drag_true_obj.offsetWidth;//设置虚线框的宽度
	drag_obj.style.height=drag_true_obj.offsetHeight;//设置虚线框的高度
	
	drag_obj.style.top=get_top(drag_true_obj);//设置虚线框的坐标
	drag_obj.style.left=get_left(drag_true_obj);
	drag_obj.style.filter="Alpha(Opacity=50)";
	
	setTimeout(obj_id+".style.display='none'",100);
	setTimeout(obj_id+".style.display='block'",200);
	setTimeout(obj_id+".style.display='none'",300);
}




//=============cookies========================

function   setCookie(name,value)   
{   
	var   Days   =30;   //此   cookie   将被保存   30   天   
	var   exp     =   new   Date();         //new   Date("December   31,   9998");   
	exp.setTime(exp.getTime()   +   Days*24*60*60*1000);   
	document.cookie   =   name   +   "="+   escape(value)   +";expires="+   exp.toGMTString();   
}   
function   getCookie(name)   
{   
	//var arr = document.cookie.match(new   RegExp("(^|   )"+name+"=([^;]*)(;|$)"));   
//	if(arr   !=   null)   return   unescape(arr[2]);   return   null;   
	var cookies=document.cookie.split(";");
	var arr,cookieName,cookieValue;
	for(var i=0;i<cookies.length;i++)
	{
		arr=cookies[i].split("=");
		cookieName=arr[0];
		cookieValue=arr[1];
		if(name==cookieName.replace(/ /g,""))
		{
			return cookieValue;	
		}
	}
	return "";
}   

function   delCookie(name)   
{   
	var   exp   =   new   Date();   
	exp.setTime(exp.getTime()   -   1);   
	var   cval=getCookie(name);   
	if(cval!=null)   document.cookie=name   +"="+cval+";expires="+exp.toGMTString();   
}

//=====================================

function ytd_htmlDeCode(s)//还原从服务器传来的字符
{
	if(s==undefined)return;
	s=s.replace(/&#_39;/g,"'");
	s=s.replace(/&#_lt;/g,"<");
	//s=s.replace(/&#_ytd_gt;/g,">");
	s=s.replace(/&#_13;/g,"\n");
	s=s.replace(/&#_10;/g,"\r");
	return s;
}

function myBox_mod(obj)
{ 
	var oSel=obj.parentElement.getElementsByTagName('SELECT')[0];
	var ops=oSel.options;
	ops.value='';
	for (var i=0;i<ops.options.length;i++)
	{
		if (obj.value==ops.options[i].value)
		{
			ops.value=ops.options[i].value;
			break;
		}
	} 
} 
