﻿// 创建 xmlhttp
function createXMLHttp(){
if(window.XMLHttpRequest)	return new XMLHttpRequest();	//ie7+,ff3,chrome
else  if (window.ActiveXObject)	return new ActiveXObject("Microsoft.XMLHTTP");	// ie5,ie6
else	return null;}

// 读取网页内容（同步或异步）
// url: 要读取的页面地址
// para: 参数，为 ? 后面的部分。默认为空。
// method: "GET" / "POST" / "GET_S"。默认为 "GET"。GET_S 优先读取缓存。GET_S 仅对 IE 有效。
// postbackfunc: 回调函数。如果为 null，则为同步读取，直接将字符串返回。
function GetWebpage(url, para, method, postbackfunc)
{
	// 定义默认值
	para=para?para:"";
	method=method?method:"GET";

	var usecache=false;
	var ASync=(postbackfunc!=null)	// 如果写有回调函数，则为异步调用

	if(method=="GET_S")
	{
		method="GET";
		usecache=true;
	}
	
	var xmlhttp = createXMLHttp();
	xmlhttp.open(method, url+(method=="GET"? "?"+para : ""), ASync);
	xmlhttp.setRequestHeader("Content-Length",para.length);
	xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

	if (ASync)
	{
		xmlhttp.onreadystatechange = 
			function()
			{
				if (xmlhttp.readyState == 4)
					postbackfunc(xmlhttp.responseText);
			}
	}
	
	if (!usecache)	// 使用缓存
		xmlhttp.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
	
	xmlhttp.send(method=="POST"? para : null);
	
	if (!ASync)
		return xmlhttp.responseText;
}



// 获取页面中的对象（ie & firefox）
function $(objID){return document.getElementById(objID);}
function $Name(objName){return document.getElementsByName(objName);}
function $Tag(objTag){return document.getElementsByTagName(objTag);}



// 包含 js 文件
// sSrc: js 脚本路径
// ID: js 脚本 ID。如果省略，就在 <head> 内插入新 <script>，否则，替换同名 <script>
// CallbackFunc: 如果不为 null，脚本加载完毕时，执行该回调函数
function IncJs(URL, ID, CallbackFunc)
{
	var oSrc, oTar;

	if(ID!=null)oSrc=$(ID);

	oTar=document.createElement("script");
	oTar.type = "text/javascript";
	if(ID!=null)oTar.id = ID;
	oTar.src = URL;

	if(ID!=null && oSrc!=null)
		oSrc.parentNode.replaceChild(oTar,oSrc);
	else
	{
		var oHead = $Tag("head")[0];
		oHead.appendChild(oTar);
	}

	if (CallbackFunc!=null)
		oTar.onload=oTar.onreadystatechange=function()
		{
			if (!this.readyState||this.readyState=="loaded"||this.readyState=="complete")
			{
				oTar.onload=oTar.onreadystatechange=null;
				CallbackFunc();
			}
		}
}



// 读取 url 参数
function GetQueryString(name)
{
	var reg = new RegExp("(^|&|\\?)" + name + "=([^&]*)(&|$)"), r;
	if (r=window.location.search.match(reg)) return unescape(r[2]);
	return null;
}



// cookie 操作
function SetCookie(name,value,expireHours)
{
	var cookieString=name+"="+escape(value);

	if(expireHours>0)	//判断是否设置过期时间
	{
		var date=new Date();
		date.setTime(date.getTime()+expireHours*3600*1000);
		cookieString=cookieString+"; path=/; domain=showji.com; expires="+date.toUTCString();
	}
	document.cookie=cookieString;
}
function GetCookie(name)
{
	var aCookie=document.cookie.split("; ");
	for(var i=0;i<aCookie.length;i++)
	{
		var arr=aCookie[i].split("=");
		if(arr[0]==name)return unescape(arr[1]);
	}
	return null;
}
function DelCookie(name)
{
	document.cookie = name + "=; path=/; domain=showji.com; expires=Fri, 31 Dec 1999 23:59:59 GMT";
}



// 获取元素顶部位置
function AbsoTop(e){var t=e.offsetTop;while(e=e.offsetParent)t+=e.offsetTop;return t;}

// 获取滚动条顶部位置
function ScrollTop(){return (document.documentElement&&document.documentElement.scrollTop)?document.documentElement.scrollTop:document.body.scrollTop;}



// 为字符串增加 Trim 操作
String.prototype.Trim=function(){return this.replace(/^\s+/,'').replace(/\s+$/,'');}
String.prototype.TrimStart=function(){return this.replace(/^\s+/,'');}
String.prototype.TrimEnd=function(){return this.replace(/\s+$/,'');}

