function openChildrenArea(AreaCode)
{
	var oDiv = document.getElementById(AreaCode);
	oDiv.style.display = (oDiv.style.display == "none") ? "block" : "none" ;
	
	var oDivLoadString = document.getElementById("DivLoads");
	var oCurDivId = document.getElementById("CurDivId");
	var oImg = document.getElementById("img_"+AreaCode);
	if(oDiv.style.display == "block")
	{
		oImg.src="Images/minus.gif";
		if(oDivLoadString.value.indexOf(AreaCode) == -1)
		{
			oDiv.innerHTML = "Loading...";
			oCurDivId.value = new String(AreaCode);
			oDivLoadString.value += AreaCode+",";
			var handler = new Davinci.RequestHandler(refChildrenAreaResult, errChildrenAreaResult);
			var req = new Davinci.Request(0,"App.do?Service=areapackage",handler,"POST","AreaCode=" + AreaCode);
			req.fire();
		}
	}
	else
	{
		oImg.src="Images/plus.gif";
	}
}

function errChildrenAreaResult()
{
	var oCurDivId = document.getElementById("CurDivId");
	var oDivLoadString = document.getElementById("DivLoads");
	
	oDivLoadString.value = oDivLoadString.value.replace(oCurDivId.value + ",", "");
	alert("errChildrenAreaResult.fail");
}
function refChildrenAreaResult(responseXML,request)
{
	//alert("refChildrenAreaResult.in");
	var xmlcnt = responseXML.getElementsByTagName("xmlcnt")[0].firstChild.nodeValue;
	var nodes_code = responseXML.selectNodes("AreaGrp/Area/code");
	var nodes_name = responseXML.selectNodes("AreaGrp/Area/name");
	var nodes_fast = responseXML.selectNodes("AreaGrp/Area/fastcode");

	var hAreaCodes = document.getElementById("AreaCodes");
	var sAreaCodes = new String(","+hAreaCodes.value);
	
	var oCurDivId = document.getElementById("CurDivId");
	var opt = document.getElementById(oCurDivId.value);
	
	if(xmlcnt > 0)
	{
		var HTML = '';
		
		for (var i=0;i < xmlcnt; i++)
		{
			if(nodes_code[i].firstChild.nodeValue.length >= 5)
			{
				HTML += '&emsp;&emsp;';
			}
			if(nodes_code[i].firstChild.nodeValue.length >= 7)
			{
				HTML += '&emsp;&emsp;';
			}
			if(nodes_code[i].firstChild.nodeValue.length >= 9)
			{
				HTML += '&emsp;&emsp;&emsp;&emsp;';
			}
			
			if(nodes_code[i].firstChild.nodeValue.length != 9)
			{
				HTML += 
					'<img '+
						'style="cursor: hand" '+
						'onclick="openChildrenArea('+nodes_code[i].firstChild.nodeValue+')" '+
						'alt="toggle" '+
						'src="Images/plus.gif" id="img_'+nodes_code[i].firstChild.nodeValue+'" align="middle"> ';
			}
			HTML += 
				'<input '+
					'onclick="checkchange(this, \'AreaCodes\')" '+
					'type="checkbox" '+
					'title="'+nodes_name[i].firstChild.nodeValue+'" '+
					'id="checkbox_'+nodes_code[i].firstChild.nodeValue+'" '+
					'value="'+nodes_code[i].firstChild.nodeValue+'" ';
					
			if(sAreaCodes.indexOf(","+nodes_code[i].firstChild.nodeValue+",") != -1)
			{
				HTML += ' checked="checked" ';
			}
					
			HTML += '/> ';
			HTML += '<font style="size: 12px;" ';
			
			if(sAreaCodes.indexOf(","+nodes_code[i].firstChild.nodeValue) != -1
				&& sAreaCodes.indexOf(","+nodes_code[i].firstChild.nodeValue+",") == -1)
			{
				HTML += ' color="blue" ';
			}
			
			HTML += ' >';
			
			if(nodes_code[i].firstChild.nodeValue.length == 7)
			{
				HTML += nodes_name[i].firstChild.nodeValue;
			}
			else
			{
				HTML += nodes_fast[i].firstChild.nodeValue.substring(0,1) + ' - ' +  nodes_name[i].firstChild.nodeValue;
			}
			HTML += '</font>';
			
			if(nodes_code[i].firstChild.nodeValue.length == 7)
			{
			
				HTML += 
				'<div '+
					'style="display: none; background-color: #cccccc; width: 100%;" '+
					'id="'+nodes_code[i].firstChild.nodeValue+'"> '+
				'</div>'+
				'<br>';
			}
			else
			{
			
				HTML += 
				'<div '+
					'style="display: none; background-color: #999999; width: 100%;" '+
					'id="'+nodes_code[i].firstChild.nodeValue+'"> '+
				'</div>'+
				'<br>';
			}
			
		}
		//alert("refChildrenAreaResult.loop over");
		opt.innerHTML = HTML;
	}
	else
	{
		opt.innerHTML = "None";
	}
	//alert("refChildrenAreaResult.out");
}

function TagClick(checkbox)
{
	var oHidden = document.getElementById("Tag");
	var index = new Number(checkbox.id.substring(3, 5));
	var value = new Number(oHidden.value);
	if(checkbox.checked && (oHidden.value & index) != index)
	{
		value +=  index;
	}
	else if(!checkbox.checked && (oHidden.value & index) == index)
	{
		value -=  index;
	}
	oHidden.value = value;
}


function Clscheckchange(checkbox, oHiddenId)
{
	var oHidden = document.getElementById(oHiddenId);
	var index = new Number(checkbox.id.substring(3, 5));
	var value = new Number(oHidden.value);
	if(checkbox.checked)
	{
		value = value + index;
	}
	else
	{
		value = value - index;
	}
	oHidden.value = value;
}

function TagClick(checkbox)
{
	var oHidden = document.getElementById("Tag");
	var index = new Number(checkbox.id.substring(3, 5));
	var value = new Number(oHidden.value);
	if(checkbox.checked)
	{
		value = value + index;
	}
	else
	{
		value = value - index;
	}
	oHidden.value = value;
}

function checkchange(checkbox, oHiddenId)
{
	var oHidden = document.getElementById(oHiddenId);
	if(checkbox.checked)
	{
		oHidden.value += checkbox.value + ",";
		//删除上级的选中按钮，包括AreaCodes和checkbox
		if(checkbox.value.length == 9)
		{
			oHidden.value = oHidden.value.replace(","+checkbox.value.substring(0, 7)+",",",");
			var checkbox3 = document.getElementById("checkbox_"+checkbox.value.substring(0, 7));
			checkbox3.checked = false;
		}
		
		if(checkbox.value.length >= 7)
		{
			oHidden.value = oHidden.value.replace(","+checkbox.value.substring(0, 5)+",",",");
			var checkbox2 = document.getElementById("checkbox_"+checkbox.value.substring(0, 5));
			checkbox2.checked = false;
		}
		
		if(checkbox.value.length >= 5)
		{
			oHidden.value = oHidden.value.replace(","+checkbox.value.substring(0, 2)+",",",");
			var checkbox1 = document.getElementById("checkbox_"+checkbox.value.substring(0, 2));
			checkbox1.checked = false;
		}
		//删除下面在AreaCodes中，即oHidden中的所有点
		oHidden.value = oHidden.value.replace(new RegExp(","+checkbox.value + "[0-9]{2,7}" , "gm"), "");
		//删除下面所有的checkbox上的勾
		removeCheck(checkbox);
	}
	else
	{
		oHidden.value = oHidden.value.replace("," + checkbox.value, "");
	}
	//alert(oHidden.value);
}

function isStartWith(s,startString)
{
	var patrn=new RegExp(startString+"[0-9]{2,7}"); 
	if (!patrn.exec(s)) 
		return false 
	return true 
}

function removeCheck(checkbox)
{
	//alert("[removeCheck]\nProcess Div " + checkbox.value);
	var oDivLoadString = document.getElementById("DivLoads");
	//查看其下的div是否已经载入，如果已经载入，就要删除下面所有的checkbox上的勾
	if(oDivLoadString.value.indexOf(checkbox.value) != -1)
	{
		//alert("[removeCheck]\nDiv " + checkbox.value + " Loaded");
		//获取子checkbox的对象数组
		var checkboxGroup = document.getElementsByTagName("input");
		if(checkboxGroup != null)
		{
			//alert("[removeCheck]\ncheckboxGroup get,size:"+checkboxGroup.length);
			for(var i = 0;i<checkboxGroup.length;i++)
			{
				if(isStartWith(checkboxGroup[i].value,checkbox.value))
				{
					//将checkbox的勾去掉，如果勾着的话
					checkboxGroup[i].checked = false;
					// removeCheck(checkboxGroup[i]);
				}
			}
		}
		else
		{
			//alert("[removeCheck]\ncheckboxGroup not get!!!");
		}
	}
	else
	{
		//alert("[removeCheck]\nDiv " + checkbox.value + " not Loaded!!!");
	}
}

function ServiceTimecheckchange(checkbox, oHiddenId)
{
	var oHidden = document.getElementById(oHiddenId);
	var index = checkbox.id.substring(11, 13);
	if(checkbox.checked)
	{
		oHidden.value = oHidden.value.substring(0, index - 1) + '1' + oHidden.value.substring(index, 48);
	}
	else
	{
		oHidden.value = oHidden.value.substring(0, index - 1) + '0' + oHidden.value.substring(index, 48);
	}
}

function ServiceDatecheckchange(checkbox, oHiddenId)
{
	var oHidden = document.getElementById(oHiddenId);
	var index = new Number(checkbox.id.substring(11, 13));
	var value = new Number(oHidden.value);
	if(checkbox.checked)
	{
		value = value + index;
	}
	else
	{
		value = value - index;
	}
	oHidden.value = value;
}