
/*
以下公用JS是袁晓力借鉴整理而来
不做说明一般都支持IE/FF
$是基于jquery-1.3.2.min.js库
Date:2009-11
Author:yxl.cn
*/

function $_()
{ 
  var elements = new Array();  
  for (var i = 0; i < arguments.length; i++) 
  { 
    var element = arguments[i];
    if (typeof(element) == 'string')		
      element = document.getElementById(element); 
    if (arguments.length == 1) 
      return element; 
    elements.push(element);
  }
  return elements; 
}

/*装载html*/
function html(tID,tCnt)
{	var elements = new Array();
	try {if(arguments.length==1){return $_(tID).innerHTML;};$_(tID).innerHTML=tCnt;return true;}catch (e){};
}

function $html(objT,htmlcnt,timetmp)
{
	var timetmp=timetmp||"";
	var htmlcnt=htmlcnt||"";
	$_(objT).innerHTML=htmlcnt;
	if (timetmp!='') {setTimeout("$_('"+objT+"').innerHTML='';",timetmp);}
}
function debug(msg,insertm)
{//调试 insertm 不为空 表示插入 默认为替换
	if(msg){db('debugArea');}
	var insertm=insertm||'';
	if(insertm){$_('debugArea').innerHTML=$_('debugArea').innerHTML+msg;}else{$_('debugArea').innerHTML=msg;}
	setTimeout("$_('debugArea').innerHTML='';dn('debugArea');",20000);
}

/*
判断浏览器及其版本开始
*/
var Sys = {};
var ua = navigator.userAgent.toLowerCase();
var s;
(s = ua.match(/msie ([\d.]+)/)) ? Sys.ie = s[1] :
(s = ua.match(/firefox\/([\d.]+)/)) ? Sys.firefox = s[1] :
(s = ua.match(/chrome\/([\d.]+)/)) ? Sys.chrome = s[1] :
(s = ua.match(/opera.([\d.]+)/)) ? Sys.opera = s[1] :
(s = ua.match(/version\/([\d.]+).*safari/)) ? Sys.safari = s[1] : 0;

/*使用
if (Sys.ie) document.write('IE: ' + Sys.ie);
if (Sys.firefox) document.write('Firefox: ' + Sys.firefox);
if (Sys.chrome) document.write('Chrome: ' + Sys.chrome);
if (Sys.opera) document.write('Opera: ' + Sys.opera);
if (Sys.safari) document.write('Safari: ' + Sys.safari);
document.write(IsIE());
*/
function IsIE()
{
	return (Sys.ie) ? true : false;
}
function browser()
{
	var browser=[];
	if (Sys.ie)	{browser[0]='IE';browser[1]=Sys.ie;return browser;};
	if (Sys.firefox) {browser[0]='Firefox';browser[1]=Sys.firefox;return browser;};
	if (Sys.chrome) {browser[0]='Chrome';browser[1]=Sys.chrome;return browser;};
	if (Sys.opera) {browser[0]='Opera';browser[1]=Sys.opera;return browser;};
	if (Sys.safari) {browser[0]='Safari';browser[1]=Sys.safari;return browser;};
}
/*
判断浏览器及其版本结束
*/

function exist(s)
{//对象是否存在
	return document.getElementById(s)!=null;
}

/*获得display的状态*/
function getDisplay(tID)
{	var dp='';
	try {dp=$_(tID).style.display;}catch(e){};
	if (dp=='' || dp=='undefined')
	{
		var cn='';
		try {cn=$_(tID).className;}catch(e){};
		if (cn.toLowerCase().indexOf('dn')>=0) {dp='none'};
		if (cn.toLowerCase().indexOf('db')>=0) {dp='block'};
		if (cn.toLowerCase().indexOf('di')>=0) {dp='inline'};
	}
	if (dp=='') {dp='inline'};if (dp=='none'){return 'none';}else{return 'inline';};
}

function db(s){if (!$_(s)) return; $_(s).style.display='block';}
function dn(s){if (!$_(s)) return; $_(s).style.display='none';}
function dbn(s){if (!$_(s)) return; (getDisplay(s)=='block'||getDisplay(s)=='inline') ? $_(s).style.display='none' : $_(s).style.display='block';}
function di(s){if (!$_(s)) return; $_(s).style.display='inline';}
function din(s){if (!$_(s)) return; (getDisplay(s)=='inline'||getDisplay(s)=='block') ? $_(s).style.display='none' : $_(s).style.display='inline';}
function vv(s){if (!$_(s)) return; $_(s).style.visibility="visible";}
function vh(s){if (!$(s)) return; $_(s).style.visibility="hidden";}

function db_(obj,tmdV)
{//动态显示 渐变显示
	if(typeof(obj)=="object"){obj=obj.id;}
	if(!tmdV){var tmdV=0;}
	var objs=document.getElementById(obj).style;
	objs.display='block';
	tmdV+=1;objs.opacity=tmdV/100;objs.filter='alpha(opacity='+tmdV+')';
	if(tmdV>=100){return false;}else{setTimeout('db_("'+obj+'",'+tmdV+')',1);}
}
function dn_(obj,tmdV)
{//动态隐藏 渐变隐藏
	if(typeof(obj)=="object"){obj=obj.id;}
	if(!tmdV){var tmdV=100;}
	var objs=document.getElementById(obj).style;
	tmdV-=1;objs.opacity=tmdV/100;objs.filter='alpha(opacity='+tmdV+')';
	if(tmdV<=0){objs.display='none';return false;}else{setTimeout('dn_("'+obj+'",'+tmdV+')',1);}
}
function dn_move(obj,objH,objHH)
{//动态隐藏 向上滑动隐藏
	if(typeof(obj)=="object"){obj=obj.id;}
	var objs=document.getElementById(obj).style;
	objs.display='block';
	if(!objH){var objH=document.getElementById(obj).offsetHeight;objHH=objH;}
	objH-=2;objs.clear='both';objs.overflow='hidden';objs.height=objH+'px';
	if(objH<=0){objs.clear='none';objs.overflow='auto';objs.height=objHH+'px';objs.display='none';return false;}else{setTimeout('dn_move("'+obj+'",'+objH+','+objHH+')',1);}
}
function db_move(obj,objH,objHH)
{//动态显示 向下滑动显示
	if(typeof(obj)=="object"){obj=obj.id;}
	var objs=document.getElementById(obj).style;
	objs.clear='none';objs.overflow='auto';objs.display='block';
	if(!objH){var objH=0;}
	if(!objHH){var objHH=document.getElementById(obj).offsetHeight;}//debug(objH+'--'+objHH);	
	objH+=2;objs.clear='none';objs.overflow='auto';objs.height=objH+'px';
	if(objH>=objHH){return false;}else{setTimeout('db_move("'+obj+'",'+objH+','+objHH+')',1);}
}

/*公用JS函数 开始*/
//需要jquery支持 慎用
function b(s,tim){if (!$(s)) return; $(s).show(tim);}
function n(s,tim){if (!$(s)) return; $(s).hide(tim);}
function bn(s,tim){if (!$(s)) return; $(s).toggle(tim);}
function nb(s,tim){if (!$(s)) return; $(s).toggle(tim);}
/*公用JS函数 结束*/


/*装载onclick  tFun就是函数不要加引号成字符串了*/
function onclick(tID,tFun) {document.getElementById(tID).onclick=tFun;}

function getpos(element)
{//获取某对象在网页中的四角位置 element为字符串

        if ( arguments.length != 1 || element == null )
        {
               return null;
        }

		var elmt = document.getElementById(element);
        var offsetTop = elmt.offsetTop;
        var offsetLeft = elmt.offsetLeft;
        var offsetWidth = elmt.offsetWidth;
        var offsetHeight = elmt.offsetHeight;
        while( elmt = elmt.offsetParent )
        {
                // add this judge
                if ( elmt.style.position == 'absolute'
//              || elmt.style.position == 'relative'
                || ( elmt.style.overflow != 'visible' && elmt.style.overflow != '' ) )
                {
                        break;
                }
                offsetTop += elmt.offsetTop;
                offsetLeft += elmt.offsetLeft;
        }
        return {top:offsetTop, left:offsetLeft, right:offsetWidth+offsetLeft, bottom:offsetHeight+offsetTop };

		//使用方法top=getpos(obj).top
}

function getPos(obj)
{	/*获得obj对象距浏览器边缘的位置 输入的obj可以是字符串或对象；如果是对象ID名 请用字符串传来 本函数适应于IE/FF*/
	if (typeof(obj)=="string")
	{
		obj=document.getElementById(obj);
	}				
	var pos = [];
	pos[0] = obj.offsetLeft;	/*X*/
	pos[1] = obj.offsetTop;		/*Y*/
	while (obj = obj.offsetParent)
	{
		pos[0] += obj.offsetLeft;
		pos[1] += obj.offsetTop;
	}
	return pos;
}
function getMousePost(event)
{/*获得鼠标距浏览器边缘的位置*/
	if(!event) event=window.event;
	var scollT=Math.max(document.body.scrollTop,document.documentElement.scrollTop);
	var scollL=Math.max(document.body.scrollLeft,document.documentElement.scrollLeft);
	var x = event.clientX + scollL;
	var y = event.clientY + scollT;
	var pos =	[];
	pos[0] =	x;	//X
	pos[1] =	y;	//Y
	return pos;
}

function ForDight(Dight,How)  
{ 
/*  
*     ForDight(Dight,How):数值格式化函数，Dight要  
*     格式化的   数字，How要保留的小数位数。  
*/ 
	Dight   =   Math.round   (Dight*Math.pow(10,How))/Math.pow(10,How);  
	return   Dight;  
} 

function getHost()
{
	return window.location.protocol + "//" + window.location.host;
}

function getparastr(strname)
{//获取URL中的某个参数值
	var hrefstr,pos,parastr,para,tempstr;
	hrefstr = window.location.href;
	pos = hrefstr.indexOf("?");
	parastr = hrefstr.substring(pos+1);	
	para = parastr.split("&");	
	tempstr="";	
	for (i=0;i<para.length;i++)	
		{
			tempstr = para[i];  
			pos = tempstr.indexOf("=");  
		if (tempstr.substring(0,pos) == strname) 
			{  	
				return tempstr.substring(pos+1);  
			}
		}
	return "";
}

/*
取URL #号后的值
*/
function getURLHash()
{
	var hash = "";
	var urlparts = window.location.href.split("#");
	if(urlparts.length == 2)
	{
		hash = urlparts[1];
		if(hash.indexOf("url=") == 0)
		{
			var idx = hash.indexOf("hash=");
			hash = hash.substr(idx+5);
		}
	}
	return hash;
}

function b_strlen(fData)
{//DataLength
	var intLength=0;
	for (var i=0;i<fData.length;i++)
	{
		if ((fData.charCodeAt(i) < 0) || (fData.charCodeAt(i) > 255))
			intLength=intLength+2;
		else
			intLength=intLength+1;   
	}
	return intLength;
}

function getDays(year , month)
{//获得某个月份的天数
	var daysInMonth = new Array(0,31,28,31,30,31,30,31,31,30,31,30,31);
	if((year%4 == 0 && year%100 != 0) || year%400 == 0 || year < 1900){daysInMonth[2] = 29;}
	return daysInMonth[month];
}
function copy_clip(text2copy) 
{
	if (window.clipboardData) 
	{//IE
		window.clipboardData.setData("Text",text2copy);
	} 
	else 
	{
		copyToClipboard(text2copy);
		return flash;
		//可惜flash10不支持 暂时保留吧
		var flashcopier = 'flashcopier';
		if(!document.getElementById(flashcopier)) 
		{
			var divholder = document.createElement('div');
			divholder.id = flashcopier;
			document.body.appendChild(divholder);
		}		
		document.getElementById(flashcopier).innerHTML = '';
		var divinfo = '<embed src="/js/clipboard.swf" FlashVars="clipboard='+escape(text2copy)+'" width="550" height="550" codebase="http://download.macromedia.com/pub/shockwave/cabs/yfzs2009/flash/swflash.cab#version=9,0,0,0" type="application/x-shockwave-flash"></embed>';//这里是关键
		document.getElementById(flashcopier).innerHTML = divinfo;
	}
	return true;
}

function copyToClipboard(txt)
{//粘贴到系统粘贴板
	if (window.clipboardData)
	{//IE
		window.clipboardData.clearData();
		window.clipboardData.setData("Text", txt);
	}
	else if (navigator.userAgent.indexOf("Opera") != -1)
	{
		window.location = txt;
	}
	else if (window.netscape)
	{
		try
		{
			netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
		}
		catch (e)
		{
			alert("您的firefox安全限制限制您进行剪贴板操作，请打开'about:config'将signed.applets.codebase_principal_support'设置为true'之后重试");
			return false;
		}
		var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
		if (!clip)
			return false;
		var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
		if (!trans)
			return false;
		trans.addDataFlavor('text/unicode');
		var str = new Object();
		var len = new Object();
		var str = Components.classes['@mozilla.org/supports-string;1'].createInstance(Components.interfaces.nsISupportsString);
		var copytext = txt;
		str.data = copytext;
		trans.setTransferData("text/unicode",str,copytext.length*2);
		var clipid = Components.interfaces.nsIClipboard;
		if (!clip)
			return false;
		clip.setData(trans,null,clipid.kGlobalClipboard);
	}
	return true;
}

function _commentImageResize(thisobj , limit)
{//自动调整图片尺寸
	if(thisobj.width > limit)
	{
			thisobj.height = parseInt(limit*thisobj.height/thisobj.width);
			thisobj.width = limit;
	}
}

function addFavorite(t)
{
	var url = getHost();
	var title = t;
	if (document.all) {
		window.external.addFavorite(url,title);
	}
	else if (window.sidebar) {
		window.sidebar.addPanel(title, url, "");
	}
	else {
		alert("暂时不支持您使用的浏览器版本");
	}
	return false;
}


/*
	判断是否是数组
*/
function isArray(o) 
{   
	return Object.prototype.toString.call(o) === '[object Array]';    
}

function RndNum()
{
	var arl = arguments.length;
	var min = (arl > 0) ? arguments[0] : 1000;
	var max = (arl > 1) ? arguments[1] : 10000;
	if (arl==1) {max=min;min=0;};
	if (min>max) {min=1000;max=10000;};
	return Math.round(Math.random()*(max-min)+min);
}

function $_ajax()
{
/*
	返回请求URL的数据
	如果是汉字从gb2312提交给utf-8建议 在data出加上 encodeURI()后提交
	使用示例：
	$_ajax({
			type:"GET",
			url:"1073743298.txt",
			urlcharset:utf-8,
			data:"a=1&b=2",
			async:true,
			callback:functionname,
			dataType:1
			})
	type:请求类型 GET POST HEAD
	url:请求url
	urlCharset:gb2312/utf-8
	data:POST/GET的数据 如果是GET方式 函数会自动将其加到url后
	async:是否异步	 true,false
	callback:回调函数 函数名 不需要用引号引起来 回调函数为空 返回对象
	dataType:返回数据类型	0-xmlHttp对象 1-字符
	示例1：
	async:false并且callback:"" 那么返回对象 可以在外面用.responseText获得结果
	var a=$_ajax({
					type:"get",
					url:"b.asp",
					data:"a=1&b=2",
					async:false,
					callback:"",
					dataType:0
					}).responseText;
	alert(a);
*/
	var xmlHttp = false;
	/*  cc_on 下面一段不是注释 是一段特殊的符号 只有IE认识 不能删除*/
	/*@cc_on @*/
	/*@if (@_jscript_version >= 5)
	try {
	  xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
	  try {
		xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
	  } catch (e2) {
		xmlHttp = false;
	  }
	}
	@end @*/
	/*上面一段不能删除*/
	if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {
	  xmlHttp = new XMLHttpRequest();
	}
	if (typeof(xmlHttp) != 'object') {return "Error:401:xmlHttp 没有创建成功！";}
	if (arguments.length<=0) {return xmlHttp};	/*如果没有传入参数 直接返回 xmlHttp对象*/

	var ajaxQ=eval(arguments[0]);
	var ajaxQ_type=ajaxQ["type"];
	var ajaxQ_url=ajaxQ["url"];
	var ajaxQ_urlcharset=ajaxQ["urlcharset"];
	var ajaxQ_data=ajaxQ["data"];
	var ajaxQ_async=ajaxQ["async"];		/*是否异步*/
	var ajaxQ_callback=ajaxQ["callback"];
	var ajaxQ_dataType=ajaxQ["dataType"];
	if (ajaxQ_type==undefined) {ajaxQ_type="GET"};
	ajaxQ_type=ajaxQ_type.toUpperCase();
	if (ajaxQ_data==undefined) {ajaxQ_data=""};
	if (ajaxQ_url==undefined) {return "Error:402:请求url缺失！";};
	if (ajaxQ_urlcharset==undefined) {ajaxQ_urlcharset="utf-8"};
	ajaxQ_urlcharset=ajaxQ_urlcharset.toUpperCase();
	if (typeof(ajaxQ_async)!="boolean") {ajaxQ_async=true};
	if (ajaxQ_callback==undefined) {ajaxQ_callback=""};
	if (ajaxQ_dataType==undefined) {ajaxQ_dataType=0;};	
	if (ajaxQ_urlcharset=='UTF-8') {ajaxQ_data=encodeURI(ajaxQ_data);};
	if (ajaxQ_type=="GET" && ajaxQ_data.length>0) {ajaxQ_url=ajaxQ_url+"?"+ajaxQ_data};

	//alert(ajaxQ_url)

	xmlHttp.open(ajaxQ_type, ajaxQ_url, ajaxQ_async);
	xmlHttp.onreadystatechange = catchReadystatechange;		/*监控捕获状态函数 内部函数 回调函数在catchReadystatechange()函数中使用*/
	sendData=null;
	if (ajaxQ_type=="POST")
	{	/*如果是POST方式提交数据，下两行必不可少	*/
		sendData=ajaxQ_data;
		xmlHttp.setRequestHeader("content-length",sendData.length);
		xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; Charset="+ajaxQ_urlcharset);
		if (sendData=="") {sendData=null};
	}
	xmlHttp.send(sendData);

	function catchReadystatechange()
	{
		if (xmlHttp.readyState == 4)
		{	//xmlHttp.status可能的指403 404 200
			if (xmlHttp.status == 200)
			{	//ajaxQ_callback	回调函数
				if (typeof(ajaxQ_callback)!="function") {ajaxQ_callback=eval(ajaxQ_callback)};
				if (typeof(ajaxQ_callback)!="function")
				{
					return xmlHttp;
				}
				else
				{
					if (ajaxQ_dataType==0)
					{
						ajaxQ_callback(xmlHttp);
					}
					else if (ajaxQ_dataType==1)
					{
						ajaxQ_callback(xmlHttp.responseText);
					}
					else
					{
						ajaxQ_callback(xmlHttp.responseText);
					}
					//alert(xmlHttp.getAllResponseHeaders()+'\n'+xmlHttp.responseText)
				}
			}
		}
	}
	return xmlHttp;
}

function valRadio(nm)
{
	var rm=document.getElementsByName(nm); 
	for(rr=0;rr<rm.length;rr++) 
	{ 
		if (rm[rr].checked==true) {return rm[rr].value;break;}
	}
	return "";
}

function isContinuousChar(str)
{//连续
	var str = str.toLowerCase();
	var flag = 0;
	for(var i=0;i<str.length;i++){
		if(str.charCodeAt(i) != flag+1 && flag!=0)
			return false;
		else
			flag = str.charCodeAt(i);
	}
	return true;
}
function isSameChar(str)
{//重复
	var str = str.toLowerCase();
	var flag = 0;
	for(var i=0;i<str.length;i++){
		if(str.charCodeAt(i) != flag && flag!=0)
			return false;
		else
			flag = str.charCodeAt(i);
	}
	return true;
}
function fNum(str)
{//将全角数字转换为半角数字
	if (str==""||str==undefined) return "";
	strTm=str;
	strTm=strTm.replace(/０/g,"0",strTm);
	strTm=strTm.replace(/１/g,"1",strTm);
	strTm=strTm.replace(/２/g,"2",strTm);
	strTm=strTm.replace(/３/g,"3",strTm);
	strTm=strTm.replace(/４/g,"4",strTm);
	strTm=strTm.replace(/５/g,"5",strTm);
	strTm=strTm.replace(/６/g,"6",strTm);
	strTm=strTm.replace(/７/g,"7",strTm);
	strTm=strTm.replace(/８/g,"8",strTm);
	strTm=strTm.replace(/９/g,"9",strTm);
	strTm=strTm.replace(/－/g,"-",strTm);
	strTm=strTm.replace(/—/g,"-",strTm);
	strTm=strTm.replace(/　/g," ",strTm);
	return strTm;
}
