var http_error = 'error';
var http_spliter = '<!--spliter-->';

var http_fields = false;
var http_response = Array('error','Unknown Error');

var http_request = false;
var http_busy = false;
function sendRequest(method, url, content, callback)
{
	if (http_busy)
	{
		alert("系统忙，请稍侯 ...");
		return false;
	}
	
	http_busy = true;
	
    http_request = false;

	if (window.XMLHttpRequest)
	{
        http_request = new XMLHttpRequest();
        if (http_request.overrideMimeType)
		{
            http_request.overrideMimeType("text/xml");
        }
    }
	else
	{
        if (window.ActiveXObject)
		{
            try
			{
                http_request = new ActiveXObject("Msxml.XMLHTTP");
            }
            catch (e)
			{
                try
				{
                    http_request = new ActiveXObject("Microsoft.XMLHTTP");
                }
                catch (e)
				{
                }
            }
        }
    }
	
    if (!http_request) {
        window.alert("\u4e0d\u80fd\u521b\u5efaXMLHttpRequest\u5bf9\u8c61\u5b9e\u4f8b.");
        return false;
    }

	http_request.onreadystatechange = function(){processResponse(callback);};
 
    if (method.toLowerCase() == "get")
	{
        http_request.open(method, url, true);
    }
	else
	{
        if (method.toLowerCase() == "post")
		{
            http_request.open(method, url, true);
            http_request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        }
		else
		{
			window.alert("http\u8bf7\u6c42\u7c7b\u522b\u53c2\u6570\u9519\u8bef\u3002");
            return false;
        }
    }
 
    http_request.send(content);
}

function processResponse(callback)
{
    if (http_request.readyState == 4)
	{
        if (http_request.status == 200)
		{ 
			http_busy = false;
			
			http_response = http_request.responseText.split(http_spliter);
			
			if (http_response.length != 2)
			{
				alert('返回了异常信息: ' + http_request.responseText);
				return false;
			}
			
			callback();
        }
		else
		{
			http_busy = false;
			alert("\u60a8\u6240\u8bf7\u6c42\u7684\u9875\u9762\u6709\u5f02\u5e38\u3002");
        }
    }
}
function dosubmit(mform,doresponse)
{
	if (http_busy)
	{
		alert("系统忙，请稍侯 ...");
		return false;
	}

	try
	{
		if (!http_fields)
		{
			alert('没有可提交的参数');
			return false;
		}
		
		if (!mform)
		{
			alert('没有可提交的表单');
			return false;
		}
		
		if (!doresponse)
		{
			alert('没有回调函数');
			return false;
		}
		
		var n = http_fields.length;
		var i;
		
		//alert(n);
		var param = '';
		var v;
		var ele;
		
		//alert('submit1');
		for (i=0; i<n; i++)
		{
			//alert(http_fields[i]);
			//v = document.getElementById(http_fields[i]).value;
			ele = mform.elements[http_fields[i]];
			if (ele.tagName == 'INPUT' && ele.type =='checkbox')
				v = ele.checked ? ele.value : '';
			else
				v = ele.value;
			//alert(v);
			
			v = v.replace(/%/g,'%25');
			v = v.replace(/&/g,'%26');
			
			param = param + http_fields[i] + '=' + v + '&';
		}
		//alert('submit2');
		
		param = 'msgonly=1&' + param + 'rnd=' + Math.random();
		var url = mform.action;
		//alert(url + ":" + param);
		sendRequest('post',url,param,doresponse);
	}
	catch(e)
	{
		alert('表单提交异常: ' + e.toString());
	}
	
	return false;
}

//////////////////////////////////////////////////////////////////////

function $(id)
{
	return document.getElementById(id);
}

function $form(form)
{
	return document.forms[form];
}

function $formfield(form, field)
{
	return $form(form).elements[field];
}

function copyfields2hiddenform(form, idx, namearray)
{
	var mform = $form(form);
	
	try
	{
		if (!namearray) return false;
		if (!mform) return false;
		
		var n = namearray.length;
		var i;

		var ele;
		
		mform.elements['idx'].value = idx;
		
		for (i=0; i<n; i++)
		{
			ele = $(namearray[i] + idx);
			if (ele.tagName == 'INPUT' && ele.type =='checkbox')
				mform.elements[namearray[i]].value = ele.checked ? ele.value : '';
			else
				mform.elements[namearray[i]].value = ele.value;
		}
	}
	catch(e)
	{
		alert('表单复制异常: ' + e.toString());
		return false;
	}
	
	return true;
}

////////////////////////////////////////////////

function GetRndCode(RndCode)
{
	if (!RndCode) RndCode = 'RndCode';
	$(RndCode).src = '/flying99/vcode/index.php?rnd=' + Math.random();
}

function dologin(form)
{
	var ft = http_fields;
	
	http_fields = Array('uid', 'password', 'vcode');
	dosubmit(form,reslogin);
	
	http_fields = ft;
}

function reslogin()
{
	if (http_response[0] == http_error)
	{
		alert(http_response[1]);
		GetRndCode('RndCodeLogin');
		return;
	}
	
	document.location.reload();
}
