///////////////////////////////////对 象/////////////////////////////////////////
function TreeSelector(){
  var url='';//当前页面对于/TreeSelect/AjaxTreeSelect/的相对路径
  var ColumnID='';//TreeSelector的顶级栏目ID
  var SelectorID='';//第一个Select框的ID
  var formObjID='';//用于提交最终选定结果的ObjID
  var defualtColumn='';//默认显示的Column(可选)
  var ajaxRequest = new AjaxRequest(url);
  var isIni=false;
  var inicurent='';
  this.ini=ini;
  this.change=change;
  this.load=load;
  this.doRequest=doRequest;
  this.defaultSet=defaultSet;
}

function ini(){
  //this.ajaxRequest['TreeSelector']=this;
  //this.ajaxRequest['IniId']=this.SelectorID;
  this.inicurent=this.SelectorID;
  setFormObjValue(this.formObjID,this.ColumnID);
  this.load(this.url,this.SelectorID,this.ColumnID,this.defualtColumn);
//  var root=document.getElementById(this.SelectorID);
//  if(root){
//    this.defaultSet(root);
//  }
}

function defaultSet(o){
  alert('defaultSet:'+o.id);
 this.change(o,this.defualtColumn);
 var node=document.getElementById(o.getAttribute("NextNodeID"));
 if(node){
   this.defaultSet(node);
 }
}

function change(o,defualtColumn){
  	//o.setAttribute("NextNodeID", NextNodeID);
	setFormObjValue(this.formObjID,o.value);
        var node=document.getElementById(o.getAttribute("NextNodeID"));
        if(node){
          clear(node);
        }
        if(o.value==null || parseFloat(o.value)<=0 ){
            return;
  	}
        this.load(this.url,o.getAttribute("NextNodeID"),o.value,defualtColumn);

}

function load(url,id,columnID,defualtColumn){

  var curl=url+'Children.jsp';
  var q='ColumnID='+columnID+'&NextNodeID='+id+'&DefualtColumn='+defualtColumn;
  var o=document.getElementById(id);
  if(o){
  	this.doRequest(curl,q);
  }
}

function change1(o,defualtColumn){
  	//o.setAttribute("NextNodeID", NextNodeID);
	setFormObjValue(this.formObjID,o.value);
        var node=document.getElementById(o.getAttribute("NextNodeID"));
        if(node){
          clear(node);
        }
        if(o.value==null || parseFloat(o.value)<=0 ){
            return;
  	}
        this.load1(this.url,o.getAttribute("NextNodeID"),o.value,defualtColumn);

}

function load1(url,id,columnID,defualtColumn){

  var curl=url+'ChildrenSort.jsp';
  var q='ColumnID='+columnID+'&NextNodeID='+id+'&DefualtColumn='+defualtColumn;
  var o=document.getElementById(id);
  if(o){
  	this.doRequest(curl,q);
  }
}

function doRequest(url,q) {
    var ar = new AjaxRequest(url);
    ar['Tree']=this;
    ar.setPreRequest(doStart);
    ar.setPostRequest(doEnd);
    //ajaxRequest.setEchoDebugInfo();
    ar.setQueryString(q);
    //ar.setEchoDebugInfo();
    ar.sendRequest();
}
///////////////////////////////////过 程/////////////////////////////////////////
function doEnd(ajaxRequest){
  var tree=ajaxRequest['Tree'];
   //alert(tree.ColumnID);
  if(!tree.isIni && parseFloat(tree.defualtColumn)>0){
    var o=document.getElementById(tree.inicurent);
    if(o){
        tree.inicurent=o.getAttribute("NextNodeID");
        tree.change(o,tree.defualtColumn);
    }else{
     	tree.isIni=true;
    }
  }
}

function doStart(ajaxRequest){
 //alert('loading...');
}
function setFormObjValue(formObjID,value){
  var formObj=document.getElementById(formObjID);
  if(formObj){
    formObj.value=Math.abs(parseInt(value));
  }
}

function setEvent(o){
  alert('setEvent');
  o.onchange=this.change(o,o.getAttribute("NextNodeID"));
}

function clear(o){
 var element0 = document.createDocumentFragment();
 element0.appendChild(document.createTextNode("       "));
 var element1 = document.createElement("option");
 element1.appendChild(document.createTextNode("--请选择--"));
 element0.appendChild(element1);
 while (o.childNodes.length > 0) {
   o.removeChild(o.childNodes[0]);
 }
 o.appendChild(element0);

 var node=document.getElementById(o.getAttribute("NextNodeID"));
 if(node){
   clear(node);
 }
}


