﻿function save(statusshower,posturl,savecount,saveitem,saveitemvalue,savekeyname,savekeyvalue)
{
	var ajax=new Object();
	ajax.saveurl=posturl;
	ajax.itemname=saveitem;
	ajax.itemcount=savecount;
	ajax.itemvalue=saveitemvalue;
	ajax.keyname=savekeyname;
	ajax.keyvalue=savekeyvalue;
	ajax.status=statusshower;
	ajax.savedata=new Array(ajax.itemcount);
	ajax.postdata="";
	ajax.data="";
	
	ajax.create=function()
	{
		var xmlhttp;
		if(window.ActiveXObject)
		{
    		var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
		else if(window.XMLHttpRequest)
		{
    		xmlhttp=new XMLHttpRequest();
		}
		return xmlhttp;
	}
	
	ajax.XMLHttpRequest=ajax.create();
	
	ajax.initdata=function()
	{
		var i;
		for(i=0;i<ajax.itemcount;i++)
		{
			ajax.savedata[i]=new Array(2);
			ajax.savedata[i][0]="";
			ajax.savedata[i][1]="";
		}
	}
	
	ajax.getdata=function()
	{
		ajax.initdata();
		var saveform=document.getElementById(ajax.itemname+"form"+ajax.itemvalue);
		var count=saveform.length;
		var checkboxname="";
		var i;
		var fillcount=0;
		for(i=0;i<count;i++)
		{
			switch(saveform[i].type)
			{
				case "text":
					ajax.savedata[fillcount][0]=saveform[i].name;
					var textValue,temp,textLen;
					textValue=""
					textLen=saveform[i].value.length;
					for(j=0;j<textLen;j++){
						temp=saveform[i].value.charCodeAt(j);
						switch(temp){
							  case   13:
                              textValue   +=   "n//";       
                              break;       
                              case   32:       
                              textValue   +=   "nbsp//";       
                              break;   
							  case   38:
							  textValue   +=   "he*";  
							  break;
							  case   34:
							  textValue   +=   "yinhao*"; 
							  break
							  default:
							  textValue   +=   String.fromCharCode(temp);
							  break;
						}
					}
					ajax.savedata[fillcount][1]=textValue;
					fillcount++;
					break;
				case "radio":
					if(saveform[i].checked)
					{
						ajax.savedata[fillcount][0]=saveform[i].name;
						ajax.savedata[fillcount][1]=saveform[i].value;
						fillcount++;
					}
					else
					{
						//不处理什么
					}
					break;
				case "checkbox":
					if(chackboxname!=saveform[i].name)
					{
						if(saveform[i].checked)
						{
							ajax.savedata[fillcount][0]=saveform[i].name;
							ajax.savedata[fillcount][1]=saveform[i].value;
							fillcount++;
						}
						else
						{
							//不处理什么
						}
					}
					else
					{
						if(saveform[i].checked)
						{
							ajax.savedata[fillcount-1][1]+=","+saveform[i].value;
						}
						else
						{
							//不处理什么
						}
					}
					break;
				case "hidden":
					//
					break;
				case "textarea":
					ajax.savedata[fillcount][0]=saveform[i].name;
					var textValue,temp,textLen;
					textValue=""
					textLen=saveform[i].value.length;
					for(j=0;j<textLen;j++){
						temp=saveform[i].value.charCodeAt(j);
						switch(temp){
							  case   13:
                              textValue   +=   "n//";       
                              break;       
                              case   32:       
                              textValue   +=   "nbsp//";       
                              break;   
							  case   38:
							  textValue   +=   "he*";  
							  break;
							  case   34:
							  textValue   +=   "yinhao*"; 
							  break
							  default:
							  textValue   +=   String.fromCharCode(temp);
							  break;
						}
					}
					ajax.savedata[fillcount][1]=textValue;
					fillcount++;
					break;
				case "select-one":
					ajax.savedata[fillcount][0]=saveform[i].name;
					ajax.savedata[fillcount][1]=saveform[i].value;
					fillcount++;
					break;
				default:
					//alert(saveform[i].type);
			}
		}
		ajax.postdata="itemname="+ajax.itemname;
		ajax.postdata+="&keyname="+ajax.keyname;
		ajax.postdata+="&keyvalue="+ajax.keyvalue;
		for(i=0;i<ajax.itemcount;i++)
		{
			if(ajax.savedata[i][0]!="")
			{
				ajax.postdata+="&"+(ajax.savedata[i][0]+"="+ajax.savedata[i][1]);
			}
		}
		//alert(ajax.postdata);
	}
	ajax.customdata=function(msg)
	{
		ajax.postdata=msg;
	}
	ajax.displayStatus=function(info)
	{
		//alert(ajax.status);
		document.getElementById(ajax.status).innerHTML=info;
		//window.status=info;
	}
	
	ajax.stateChangeHandle=function()
	{
		switch(ajax.XMLHttpRequest.readyState)
		{
			case 0:
				ajax.displayStatus("Creating");
				break;
			case 1:
				ajax.displayStatus("Loading...");
				break;
			case 2:
				ajax.displayStatus("Waiting");
				break;
			case 3:
				ajax.displayStatus("Receiving");
				break;
			case 4:
				if(ajax.XMLHttpRequest.status == 200)
				{
					
					ajax.data=String(ajax.XMLHttpRequest.responseText);
					if(ajax.data=="1")
					{
						//alert(ajax.data);
						ajax.displayStatus("Saved Successfully!");
					}
					else
					{
						alert('please log in');
						location.href='../';
					}
					
				} 
				else
				{
					ajax.displayStatus("Failed");
				}
				break;
			default:
				ajax.displayStatus("Failed");
		}
	}
	
	ajax.post=function()
	{
		//ajax.getdata();
		//alert(ajax.postdata);
		//ajax.postdata="item=aa&name=bb";
		ajax.XMLHttpRequest.open("post",ajax.saveurl,true);
		ajax.XMLHttpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    	ajax.XMLHttpRequest.onreadystatechange=ajax.stateChangeHandle;
    	ajax.XMLHttpRequest.send(ajax.postdata);
		return true;
	}
	

	return ajax;
}
