- function syncLists(a,b,e,t){
- for(var i=a.length;i--;)
- if(b.indexOf(a[i])==-1){
- a.splice(i,1);
- e.removeChild(e.children[i]);
- }
- for(var i=0;i<b.length;i++)
- if(a.indexOf(b[i])==-1){
+ function syncLists(contentDatas,b,e,t){
+ var a = contentDatas.subScopes;
+ var d = contentDatas.subScopeInfos;
+ for(var i=a.length;i--;){ // remove elements / objects
+ if(b.indexOf(a[i])!=-1)
+ continue;
+ if(d[i].element.parentNode)
+ d[i].element.parentNode.removeChild(d[i].element);
+ a.splice(i,1);
+ d.splice(i,1);
+ }
+ for(var i=0;i<b.length;i++){ // add elements / objects
+ var j = a.indexOf(b[i]);
+ if(j!=-1){
+ d[j].index = i;
+ }else{
+ var newInfo = {
+ element: t.instance(b[i]),
+ index: i
+ };
+ if(!d.length){
+ e.appendChild(newInfo.element);
+ }else{
+ var last = d[d.length-1].element;
+ if(last.parentNode==e){
+ e.insertBefore(newInfo.element,last.nextSibling);
+ }else{
+ e.appendChild(newInfo.element);
+ }
+ }