// JavaScript Document
//进度条
var strLoad = "";

function ajaxRequest(FormOrUrl,container,noClearContainer)
{
	if(typeof(FormOrUrl) == "string")
	{
		ajaxGet(FormOrUrl,container,noClearContainer)
	}
	else
	{
		ajaxPost(FormOrUrl,container,noClearContainer)
	}
}

function ajaxPost(formObj, container, noClearContainer){
	var postStr = "";
	var url = "";
	url = formObj.action;
	postStr = formToRequestString(formObj);
	//alert(url+ '?' + postStr);
	ajaxContain(url,"POST",postStr,container,noClearContainer);
}

function ajaxGet(url, container, noClearContainer){
	//alert(url);
	ajaxContain(url,"GET","",container,noClearContainer);
}

function initAjax()
{
	ajax = false;
	//开始初始化XMLHttpRequest对象
	if(window.XMLHttpRequest) //Mozilla 浏览器
	{
		ajax = new XMLHttpRequest();
		if (ajax.overrideMimeType) //设置MiME类别
		{
			ajax.overrideMimeType('text/xml');
		}
  	}
    else if (window.ActiveXObject) // IE浏览器
	{
		try 
		{
			ajax = new ActiveXObject("Msxml2.XMLHTTP");
		} 
		catch (e) 
		{
			try 
			{
				ajax = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e) 
			{
			}
		}
	}
	return ajax;
}


function ajaxContain(url,method,postStr,container,noClearContainer)
{
	if(!container)
	{
		container = "divMain"
	}
	
	if(typeof(container) == "string")
	{
		container = document.getElementById(container);
	}

	if(!container)
	{
		alert("ajax error:没有找到指定的容器" + container);
		return false;
	}
	
	if(container.innerHTML != "" && noClearContainer) return;
	
	container.style.display = "block";
	if(strLoad != '')container.innerHTML = strLoad;

	if(!url)
	{
		alert("ajax error:未指定url");
		return false;
	}
	
	if(method == "")
	{
		method = "GET";
	}
	
	//实例化Ajax对象
	var ajax = initAjax();
	if(!ajax)
	{
		alert("ajax error:不能创建XMLHttpRequest对象实例");
		return false;
	}
	
	// 确定发送请求的方式和URL以及是否同步执行下段代码
	ajax.open(method, url, true); 
	
	if(method == "POST")
	{
		//定义传输的文件HTTP头信息
		ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); 
		//发送POST数据
		ajax.send(postStr);
	}
	else
	{
		ajax.send(null);
	}
	
	var resText = "";
	ajax.onreadystatechange = function() 
	{ 
		//如果执行是状态正常，那么就把返回的内容赋值给上面指定的层
	　　if (ajax.readyState == 4 && ajax.status == 200) 
		{
			container.innerHTML = ajax.responseText;
			//setInnerHTML(container, ajax.responseText);
			//set_innerHTML(container.id, ajax.responseText);
			//初始化表单
			//initForm('myform');
			//初始化记录列表
			//DataTable_Init();
	　　} 
	}
}

function formToRequestString(form_obj)
{
	var query_string='';
	var and='';
	for (i=0;i<form_obj.length ;i++ )
	{
		e=form_obj[i];
		if (e.name != '')
		{
			if (e.type=='select-one')
			{
				element_value=e.options[e.selectedIndex].value;
			}
			else if (e.type=='checkbox' || e.type=='radio')
			{
				if (e.checked == false)
				{
					continue;
				}
				else
				{
					element_value=e.value;
				}
			}
			else
			{
				element_value=e.value;
			}
			query_string+=and+e.name+'='+element_value.replace(/\&/g,"%26");
			and="&"
		}
		
	}
	return query_string;
}

/* 
* 描述：跨浏览器的设置 innerHTML 方法 
*        允许插入的 HTML 代码中包含 script 和 style 
* 作者：kenxu <ken@ajaxwing.com> 
* 日期：2006-03-23 
* 参数： 
*     el: 合法的 DOM 树中的节点 
*     htmlCode: 合法的 HTML 代码 
* 经测试的浏览器：ie5+, firefox1.5+, opera8.5+ 
*/   
var setInnerHTML = function (el, htmlCode) {   
    var ua = navigator.userAgent.toLowerCase();   
    if (ua.indexOf('msie') >= 0 && ua.indexOf('opera') < 0) {   
         htmlCode = '<div style="display:none">for IE</div>' + htmlCode;   
         htmlCode = htmlCode.replace(/<script([^>]*)>/gi,   
                                    '<script$1 defer>');   
         el.innerHTML = htmlCode;   
         el.removeChild(el.firstChild);   
     } else {   
        var el_next = el.nextSibling;   
        var el_parent = el.parentNode;   
         el_parent.removeChild(el);   
         el.innerHTML = htmlCode;   
        if (el_next) {   
             el_parent.insertBefore(el, el_next)   
         } else {   
             el_parent.appendChild(el);   
         }   
     }   
}