//initialize DHTMLMenu object
function DHTMLMenu(id){
	this.control_id=id;
	this.items=new Array();
	this.itemcontent=new Array();
	this.selected="";
	this.maxlevel=9;
	this.additem = DHTMLMenu_additem;
	this.autolevel = DHTMLMenu_autolevel;
	this.getlevel = DHTMLMenu_getlevel;
	this.id2index = DHTMLMenu_id2index;
	this.getchildcount = DHTMLMenu_getchildcount;
	this.createarray = DHTMLMenu_createarray;
	this.sortitems = DHTMLMenu_sortitems;
	this.getmenuwh = DHTMLMenu_getmenuwh;
	this.getsubmenuwh = DHTMLMenu_getsubmenuwh;
	this.enable_double_click=false;
	this.menuwidth=14;//measured is pixels per char
	this.menuheight=22;//measured is pixels per char
	this.submenuwidth=9;//measured is pixels per char
	this.submenuheight=20;//measured is pixels per char
	this.maxwidth=175;//max width before height increases
	this.totalwidth=770;
	this.menuwidths=new Array();
	this.NoOfFirstLineMenus=1;
}
//sorting function
function DHTMLMenu_sortitems(a,b){
	return a["order"]-b["order"];
}
function DHTMLMenu_id2index(id){
	//var yvar=0;
	var xxx='';
	var t_index=-1;
	for(var yvar=0;yvar<this.items.length;yvar++){
		if(this.items[yvar]["id"]==id){
			t_index=yvar;
			break;
		}
	}
	return t_index;
}
//PRIVATE function that gets counts of the chidren
function DHTMLMenu_getchildcount(index){
	var y3=0;
	var items_id=this.items[index]['id'];
	i_count=0;
	for(y3=index+1;y3<this.items.length;y3++){
		if(this.items[y3]["level"]<=this.items[index]["level"]){
			break;
		}else{
			if(this.items[y3]["parent"]==items_id){
				i_count++;
			}
		}
	}
	return i_count;
}
//function for determining Level
function DHTMLMenu_getlevel(id,max_it){
	total=0;
	c_item=this.id2index(id);
	if(c_item >= 0){
		if(this.items[c_item]["parent"]!=this.items[c_item]["id"]){
			total+=this.getlevel(this.items[c_item]["parent"],max_it--);
			total++;
		}
	}
	return total;
}
//function for adding items to the DHTMLMenu Object
function DHTMLMenu_additem(id,name,parent,order,url){
	x=this.items.length;
	this.items[x]=new Array();
	this.items[x]["value"]=name;
	this.items[x]["url"]=url;
	this.items[x]["parent"]=parent;
	this.items[x]["id"]=id;
	this.items[x]["order"]=x;
	this.items[x]["level"]=0;
	if(this.items[x]["parent"]==this.items[x]["id"] || this.items[x]["parent"]=='0' || this.items[x]["parent"]=='' || this.items[x]["parent"]==0 ){
		this.items[x]["parent"]=this.items[x]["id"];
	}else{
		this.items[x]["level"]=this.getlevel(id,this.maxlevel);
	}
}
//auto level all items once they have been added
function DHTMLMenu_autolevel(){
	var calc_width=0;
	var temp_array=new Array();
	var size_array=new Array();
	var padding=0;
	var first=false;
	var last=false;
	for(var al=0;al<this.items.length;al++){
		if(this.items[al]["parent"]==this.items[al]["id"] || this.items[al]["parent"]=='0' || this.items[al]["parent"]=='' || this.items[al]["parent"]==0 ){
			temp_array=this.getmenuwh(this.items[al]["value"]);
			calc_width+=temp_array[0];
			this.menuwidths[al]=temp_array[0];
			this.items[al]["parent"]=this.items[al]["id"];
			last=al;
			if(first==false){
				first=al;
			}
		}else{
			this.items[al]["level"]=this.getlevel(this.items[al]["id"],this.maxlevel);
		}
	}
	if(calc_width<this.totalwidth){
		padding=(this.totalwidth-calc_width)/2;
		this.menuwidths[first]+=Math.ceil(padding);
		this.menuwidths[last]+=Math.floor(padding);
	}
}
//get main menu hw
function DHTMLMenu_getmenuwh(name){
	var height=this.menuheight;
	var width=this.maxwidth;
	var charwidth=this.menuwidth;
	var charperline=Math.ceil(this.maxwidth/charwidth);
	var total=name.length;
	if(name.length > charperline){
		while(total > charperline){
			height+=(this.menuheight*.5);
			total-=charperline;
		}
	}else{
		width=charwidth*name.length;
	}
	return_data=new Array(width,height);
	return return_data;
}
//get main menu hw
function DHTMLMenu_getsubmenuwh(name){
	var height=this.submenuheight;
	var width=this.maxwidth;
	var charwidth=this.submenuwidth;
	var charperline=Math.ceil((this.maxwidth/charwidth)*1.25);
	var total=name.length;
	if(name.length > charperline){
		while(total > charperline){
			height+=Math.ceil(this.menuheight*0.75);
			total-=charperline;
		}
	}else{
		width=(charwidth*name.length)*1.25;
	}
	return_data=new Array(width,height);
	return return_data;
}
//create the DHTML menu arrays
function DHTMLMenu_createarray () {
	//selected_id=this.items[this.selected]["id"];
	var return_array=new Array;
	var mwharray=new Array(0,0);
	levenator=new Array(1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
	levelrooter=0;
	this.items.sort(this.sortitems);
	//this.selected=this.id2index(selected_id);
	//loop throught the items
	for (x = 0; x < this.items.length; x++) {
		if(this.items[x]["level"]>0){
			levenator[this.items[x]["level"]]++;
			var_string='Menu'+levelrooter;
			for(y=0;y<this.items[x]["level"];y++){
				var_string=var_string+"_"+levenator[y+1];
			}
			levenator[this.items[x]["level"]+1]=0;
			mwharray=this.getsubmenuwh(this.items[x]['value']);
		}else{
			levelrooter++;
			levenator=new Array(levelrooter,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
			var_string='Menu'+levelrooter;
			mwharray=this.getmenuwh(this.items[x]['value']);
			if(isNaN(this.menuwidths[x])){

			}else{
				mwharray[0]=this.menuwidths[x];
			}
		}
		//alert(var_string+' children:'+this.getchildcount(x));
		return_array[var_string] = new Array(this.items[x]['value'],this.items[x]['url'],"",this.getchildcount(x),mwharray[1],mwharray[0]);
	}
	this.NoOfFirstLineMenus=levelrooter;
	return return_array;
}