PP.updater={
	navigation:{
		set:function(data){
			if(!data){
				return;
			}
			PP.updater.navigation.clear();
			PP.updater.navigation.add(data);
		},
		add:function(data){
			if(!data){
				return;
			}
			if(!data.length){
				data=[data];
			}
			for(var i=0;i<data.length;i++){
				var item=data[i];
				var li=$('<li/>');
				var link=$('<a/>')
				link.text(item.name);
				link.attr('href',item.target)
				if(item.class){
					li.addClass(item.class);
				}
				li.append(link);
				if(item.subentries){
					var subNav=$('<ul/>');
					subNav.addClass('subnavigation');
					for(var j=0;j<item.subentries.length;j++){
						var subItem=item.subentries[j];
						var subLi=$('<li/>');
						var subLink=$('<a/>')
						subLink.text(subItem.name);
						subLink.attr('href',subItem.target)
						subLi.append(subLink);
						if(subItem.class){
							subLi.addClass(subItem.class);
						}
						subNav.append(subLi);
					}
					li.append(subNav);
				}
				$('#navigation').append(li);
			}
		},
		clear:function(){
			$('#navigation').empty();
		},
		update:function(source){
			$.getJSON(source,PP.updater.navigation.set);
		},
		updateInterval:-1,
		setSource:function(source,interval){
			if(!interval){
				interval=5*60*1000;//5 min
			}
			if(PP.updater.navigation.updateInterval!=-1){
				clearInterval(PP.updater.navigation.updateInterval);
			}
			PP.updater.navigationupdateInterval=setInterval(function(){
				PP.updater.navigation.update(source);
			},interval)
		}
	}
}
