// 取得目前列的索引值
//function rowClick()
//{
//alert(window.event.srcElement.parentElement.parentElement.rowIndex);
//}




// JavaScript Document

// 符合W3C标准，取得特定元素
function $(id)
{
	return document.getElementById(id);	
}

// 使用DOM元素的innerHTML属性为特定元素指定任意内容(当作HTML)
function echo(obj,html)
{
	$(obj).innerHTML=html;
}

// 使用DOM节点的"style关联阵列"对特定元素设定样式 
//==========================================
// 让特定元素显示
function fopen(obj)
{
	$(obj).style.display="";
}
// 让特定元素隐藏
function fclose(obj)
{
	$(obj).style.display="none"; //隐藏后不会占据网页空间
	//$(obj).style.visibility="hidden"; //隐藏后仍会占据网页空间
}
//==========================================


//去掉字串两边的空格
//==========================================
//去掉字串左边的空格
function lTrim(str)
{
  if (str.charAt(0) == " ")
  {
    //如果字串左边第一个字符为空格
    str = str.slice(1);//将空格从字串中去掉
    //这一句也可改成 str = str.substring(1, str.length);
    str = lTrim(str);    //递归调用
  }
  return str;
}
//去掉字串右边的空格
function rTrim(str)
{
  var iLength;
  
  iLength = str.length;
  if (str.charAt(iLength - 1) == " ")
  {
    //如果字串右边第一个字符为空格
    str = str.slice(0, iLength - 1);//将空格从字串中去掉
    //这一句也可改成 str = str.substring(0, iLength - 1);
    str = rTrim(str);    //递归调用
  }
  return str;
}
//去掉字串两边的空格
function trim(str)
{
  return lTrim(rTrim(str));
}
//==========================================



// 将换行用<br>替换
function sck(s)
{
	return s.replace(/\n/g,"[br]");
	//s=s.replace(chr(13)&chr(23),"<br />");	
	//return s;
}

// 取得document中第一个表单的特定栏位值
// evl(str):处理字串，定决定字串内容为何并加以执行的函式
// 例如evl('7*5')，虽然是字串，但evl()函式会判断它实际是要执行7x5
function f(obj)
{
	return trim(eval("document.forms[0]."+obj+".value"));
	//return trim($(obj).value);
}

// 将焦点指到document中第一个表单的特定栏位
function setf(obj)
{
	return eval("document.forms[0]."+obj+".focus();");
}

// 判断某元素目前是隐藏($(obj).style.display="none")还是显示($(obj).style.display="")
// 点击时若隐藏时设为显示，若显示时设为隐藏
// file.asp:
// <div id="logintool" onclick="show('loginlist')">
// 管理登录
// </div>
function show(obj)
{
	var s=$(obj).style;
	s.display=s.display=="none" ? "" : "none";
}


//function echo(obj,html)
//{
//		$(obj).innerHTML=html;
//}















//***********************************************************************************************************
// XMLHTTP & XMLHttpRequest 的请求与回应
//***********************************************************************************************************

// =========================================
// 建立一个浏览器的XMLHTTP类实体物件
// =========================================
function createxmlhttp()
{
	//for IE的XMLHTTP
	var xmlhttp=false;
	try	{
  		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
 	} 
	catch (e) {
  		try {
   			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  		} 
		catch (e) {
   			xmlhttp = false;
 		}
 	}

	//for Mozilla、Safari...的XMLHttpRequest	
	if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
  		xmlhttp = new XMLHttpRequest();
			if (xmlhttp.overrideMimeType) {//设置MiME类别，防止某些浏览器的mime-type表头(header)不含text/xml类型时无法处理XML
				xmlhttp.overrideMimeType('text/xml');
			}
	}
	return xmlhttp;	
}


// =========================================
// HTTP请求的方式为GET时，XMLHTTP元件的请求与回应
// file.asp:例 <a href="javascript:void(0)" onclick="getdata('file.asp?action=add','echomsg','contentdata');">书写留言</a>
// =========================================
function getdata(url,obj1,obj2)
{
	//alert('i got it');
		
		var xmlhttp=createxmlhttp();
		if(!xmlhttp)
		{
			alert("你的浏览器不支持XMLHTTP！！");
			return;
		}
		xmlhttp.onreadystatechange=requestdata; //用来处理server回应的JavaScript函数的名字
		xmlhttp.open("GET",url,true); //调用HTTP请求的open()方法去发出HTTP请求
		/*
		第一个参数=是HTTP请求的方式——GET、POST、HEAD或者任何其它你想使用的伺服器支持的方式。方式的名称要大写，否则有些浏览器（如Firefox）可能就不会处理请求。
		第二个参数=是你所请求页面的URL。 
		第三个参数=是用来设置请求是否为异步的。如果是TRUE，则在伺服器尚未返回回应的时候，JavaScript的函数会继续执行。这也就是AJAX中的A的含义。
		*/
		xmlhttp.send(null); //调用HTTP请求的send()方法去传递查询字串的参数(如同用url的”?”后所接的传递查询参数)
		// =========================================
		// 处理server回应的JavaScript程式
		// =========================================
		function requestdata()
		{			
				fopen(obj1); //呼叫fopen()自定函式让特定元素内容显示

				echo(obj1,"正在读取资料，请稍等......");//呼叫echo()自定函式使用DOM元素的innerHTML属性为特定元素指定内容
				if(xmlhttp.readyState==4) //检查请求的状态，如果状态的值为4，那么就意味着全部的伺服器回应都已接受完毕，你可以继续处理
				{
					if(xmlhttp.status==200) //检查HTTP伺服器回应的情况，代码为200时表示OK，可以自己决定对伺服器发送给你的数据作什么样的处理了
					{	
						// 对伺服器发送给你的数据作处理
						if(obj1!=obj2){fclose(obj1);}; //呼叫fclose()自定函式让特定元素内容隐藏
						echo(obj2,xmlhttp.responseText);
						//alert(xmlhttp.responseText);						
					}
				}			
		}

}

// =========================================
// HTTP请求的方式为POST时，XMLHTTP元件的请求与回应
// =========================================
function postdata(url,obj,data)
{
		//alert('url=' + url);
		//alert('obj=' + obj);
		//alert('data=' + data);
		var xmlhttp=createxmlhttp();
		if(!xmlhttp)
		{
			alert("你的浏览器不支持XMLHTTP！！");
			return;
		}
		xmlhttp.open("POST", url, true);
		xmlhttp.onreadystatechange=requestdata;
		xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
		xmlhttp.send(data);
		
		// =========================================
		// 处理server回应的JavaScript程式
		// =========================================
		function requestdata()
		{
			fopen(obj);
			echo(obj,"正在传送资料，请稍等......");
			//alert(xmlhttp.readyState);
			if(xmlhttp.readyState==4)
			{
				//alert(xmlhttp.status);
				if(xmlhttp.status==200)
				{
					echo(obj,xmlhttp.responseText);
				}
			}
		}

}
//***********************************************************************************************************

