YAHOO.namespace("ostluft.fachbereich");YAHOO.ostluft.fachbereich.KanalSelectionApplication=function(a){this.pluginPrefix="tx_ostluft_pi6";this.standortMenu=YAHOO.util.Dom.get(a.standortMenu?a.standortMenu:"messstationMenu");this.standortMenuFilter=YAHOO.util.Dom.get(a.standortMenuFilter?a.standortMenuFilter:"messstationMenuFilter");this.standortMenuFilterEvent=new YAHOO.util.CustomEvent("onStandortMenuFilterSelected",this);this.standortMenuReset=YAHOO.util.Dom.get(a.standortResetButton?a.standortResetButton:"messstationMenuReset");this.standortMenuSelectEvent=new YAHOO.util.CustomEvent("onStandortMenuSelected",this);this.standortMenuSelectionLoadedEvent=new YAHOO.util.CustomEvent("onStandortMenuSelectionLoaded",this);this.standortDictionary=new Array();this.messgroesseMenu=YAHOO.util.Dom.get(a.messgroesseMenu?a.messgroesseMenu:"messgroesseMenu");this.messgroesseMenuReset=YAHOO.util.Dom.get(a.messgroesseResetButton?a.messgroesseResetButton:"messgroesseMenuReset");this.messgroesseMenuSelectEvent=new YAHOO.util.CustomEvent("onMessgroesseMenuSelected",this);this.messgroesseMenuSelectionLoadedEvent=new YAHOO.util.CustomEvent("onMessgroesseMenuSelectionLoaded",this);this.messgroesseDictionary=new Array();this.zeitfensterMenu=YAHOO.util.Dom.get(a.zeitfensterMenu?a.zeitfensterMenu:"zeitfensterMenu");this.zeitfensterMenuReset=YAHOO.util.Dom.get(a.zeitfensterResetButton?a.zeitfensterResetButton:"zeitfensterMenuReset");this.zeitfensterMenuSelectEvent=new YAHOO.util.CustomEvent("onZeitfensterMenuSelect",this);this.zeitfensterDictionary=new Array();this.kanalAddButton=new YAHOO.widget.Button(a.addButton?a.addButton:"kanalAddButton");this.addKanalEvent=new YAHOO.util.CustomEvent("onAddKanal",this);this.addKanalLoadedEvent=new YAHOO.util.CustomEvent("onAddKanalLoaded",this);this.init()};YAHOO.ostluft.fachbereich.KanalSelectionApplication.prototype.init=function(){this.standortMenuSelectEvent.subscribe(this.onStandortMenuSelected);this.standortMenuFilterEvent.subscribe(this.onStandortMenuFilterSelected);this.standortMenuSelectionLoadedEvent.subscribe(this.onStandortMenuSelectionLoadedEvent);this.messgroesseMenuSelectEvent.subscribe(this.onMessgroesseMenuSelected);this.messgroesseMenuSelectionLoadedEvent.subscribe(this.onMessgroesseMenuSelectionLoadedEvent);this.zeitfensterMenuSelectEvent.subscribe(this.onZeitfensterMenuSelected);this.addKanalEvent.subscribe(this.onAddKanal);this.loadMessstandortList();YAHOO.util.Event.addListener(this.standortMenu,"change",function(a){this.standortMenuSelectEvent.fire(YAHOO.ostluft.fachbereich.utility.evaluateSelection(YAHOO.util.Event.getTarget(a)))},this,true);YAHOO.util.Event.addListener(this.standortMenuFilter,"change",function(a){this.standortMenuFilterEvent.fire(this.standortMenuFilter.options[this.standortMenuFilter.options.selectedIndex].value)},this,true);YAHOO.util.Event.addListener(this.standortMenuReset,"click",function(a){YAHOO.ostluft.fachbereich.utility.resetMenuSelection(this.standortMenu);this.standortMenuSelectEvent.fire(YAHOO.ostluft.fachbereich.utility.evaluateSelection(this.standortMenu))},this,true);YAHOO.util.Event.addListener(this.messgroesseMenu,"change",function(a){this.messgroesseMenuSelectEvent.fire(YAHOO.ostluft.fachbereich.utility.evaluateSelection(YAHOO.util.Event.getTarget(a)))},this,true);YAHOO.util.Event.addListener(this.messgroesseMenuReset,"click",function(a){YAHOO.ostluft.fachbereich.utility.resetMenuSelection(this.messgroesseMenu);this.messgroesseMenuSelectEvent.fire(YAHOO.ostluft.fachbereich.utility.evaluateSelection(this.messgroesseMenu))},this,true);YAHOO.util.Event.addListener(this.zeitfensterMenu,"change",function(a){this.zeitfensterMenuSelectEvent.fire(YAHOO.ostluft.fachbereich.utility.evaluateSelection(YAHOO.util.Event.getTarget(a)))},this,true);YAHOO.util.Event.addListener(this.zeitfensterMenuReset,"click",function(a){YAHOO.ostluft.fachbereich.utility.resetMenuSelection(this.zeitfensterMenu);this.zeitfensterMenuSelectEvent.fire(YAHOO.ostluft.fachbereich.utility.evaluateSelection(this.zeitfensterMenu))},this,true);this.kanalAddButton.set("disabled",true);this.kanalAddButton.addListener("click",function(a){this.addKanalEvent.fire()},this,true)};YAHOO.ostluft.fachbereich.KanalSelectionApplication.prototype.evaluateRemoteItems=function(d,c){var a=new Array();for(var b in c){if(!d[c[b]]){a[a.length]=c[b]}}return a};YAHOO.ostluft.fachbereich.KanalSelectionApplication.prototype.createRequestURL=function(h,g){if(!h){YAHOO.log("Es muss eine Methode angegeben werden!","warn","YAHOO.ostluft.fachbereich.KanalSelectionApplication::createRequestURL");return}var b=self.location.href.split("/");if(b.length<4){YAHOO.log("Die URL entspricht nicht dem erforderlichen Format!","warn","YAHOO.ostluft.fachbereich.KanalSelectionApplication::createRequestURL");return}var f=b[0]+"/"+b[1]+"/"+b[2]+"/";var d=b[b.length-1].split(".");var a=d[0];var e=f;e+="?id="+a;e+="&"+this.pluginPrefix+"_method="+h;if(g){for(var c in g){e+="&"+this.pluginPrefix+"_"+c+"="+encodeURIComponent(g[c])}}return e};YAHOO.ostluft.fachbereich.KanalSelectionApplication.prototype.onStandortMenuSelected=function(type,args){var requestURL=this.createRequestURL("listMessgroesse",{messstation_id:args[0].join(",")});YAHOO.log("Daten von URL laden: "+requestURL,"info","YAHOO.ostluft.fachbereich.KanalSelectionApplication::onStandortSelected");YAHOO.util.Connect.asyncRequest("GET",requestURL,{success:function(o){try{var response=eval("("+o.responseText+")")}catch(ex){YAHOO.log("Die Rückgabe konnte nicht korrekt deserialisiert werden:\n"+o.responseText,"error","YAHOO.ostluft.fachbereich.KanalSelectionApplication::onStandortSelected");return}try{if(response.status=="OK"){var messgroesseList=new Array();for(var i in response.items.messgroesse){var messgroesse=response.items.messgroesse[i];this.messgroesseDictionary[messgroesse.messgroesse_id]=messgroesse;if(!messgroesseList[messgroesse.messgroesse_id]){messgroesseList[messgroesse.messgroesse_id]=messgroesse}}for(var i in response.items.messstation){var messstation=response.items.messstation[i];this.standortDictionary[messstation.messstation_id]=messstation;if(!this.standortDictionary[messstation.messstation_id].messgroesse){this.standortDictionary[messstation.messstation_id].messgroesse=new Array()}for(var i in response.items.messgroesse){var messgroesse=response.items.messgroesse[i];if(!this.standortDictionary[messstation.messstation_id].messgroesse[messgroesse.messgroesse_id]){this.standortDictionary[messstation.messstation_id].messgroesse[messgroesse.messgroesse_id]=this.messgroesseDictionary[messgroesse.messgroesse_id]}}}var messgroesseArray=YAHOO.ostluft.fachbereich.utility.getDictionaryItemsByID(this.standortDictionary,o.argument,function(standort){return standort.messgroesse},function(messgroesse){return messgroesse.messgroesse_id});YAHOO.log("Die Daten wurden nachgeladen...","info","YAHOO.ostluft.fachbereich.KanalSelectionApplication::onStandortSelected");this.standortMenuSelectionLoadedEvent.fire({messgroesse:messgroesseArray})}else{YAHOO.log("Die Messgrössen konnten in die lokalen Verzeichnise eingetragen werden: "+response.exception,"error","YAHOO.ostluft.fachbereich.KanalSelectionApplication::onStandortSelected")}}catch(ex){YAHOO.log("Das Resultat der Abfrage konnte nicht verarbeitet werden: "+ex,"error","YAHOO.ostluft.fachbereich.KanalSelectionApplication::onStandortSelected")}},failure:function(o){YAHOO.log("Die Messgrössen konnten nicht geladen werden: "+o.statusText,"error","YAHOO.ostluft.fachbereich.KanalSelectionApplication::onStandortSelected")},scope:this,argument:args[0]})};YAHOO.ostluft.fachbereich.KanalSelectionApplication.prototype.onStandortMenuSelectionLoadedEvent=function(e,b){var g=new Array();while(this.messgroesseMenu.options.length){if(this.messgroesseMenu.options[0].selected){g[this.messgroesseMenu.options[0].value]=true}this.messgroesseMenu.remove(0)}var h=new Array();for(var c in b[0].messgroesse){h[h.length]=this.messgroesseDictionary[c]}zeitfensterArray=YAHOO.algorithms.sort.InsertionSort(h,function(k,i){return(k&&i&&(k.name<i.name))});for(var c in h){var f=h[c];if(f){var d=(g[f.messgroesse_id])?true:false;var a=new Option(f.name,f.messgroesse_id,d,d);a.id="messgroesse-"+f.messgroesse_id;this.messgroesseMenu.options[this.messgroesseMenu.options.length]=a}}this.messgroesseMenuSelectEvent.fire(YAHOO.ostluft.fachbereich.utility.evaluateSelection(this.messgroesseMenu))};YAHOO.ostluft.fachbereich.KanalSelectionApplication.prototype.onMessgroesseMenuSelected=function(type,args){var selection=this.evaluateRemoteItems(this.zeitfensterDictionary,args[0]);if(selection.length>0){var requestURL=this.createRequestURL("listZeitfenster",{messgroesse_id:selection.join(",")});YAHOO.log("Daten von URL laden: "+requestURL,"info","YAHOO.ostluft.fachbereich.KanalSelectionApplication::onMessgroesseMenuSelected");YAHOO.util.Connect.asyncRequest("GET",requestURL,{success:function(o){try{var response=eval("("+o.responseText+")")}catch(ex){YAHOO.log("Die Rückgabe konnte nicht korrekt deserialisiert werden:\n"+o.responseText,"error","YAHOO.ostluft.fachbereich.KanalSelectionApplication::onMessgroesseMenuSelected");return}try{if(response.status=="OK"){for(var i in response.items.zeitfenster){var zeitfenster=response.items.zeitfenster[i];if(!this.zeitfensterDictionary[zeitfenster.zeitfenster_id]){this.zeitfensterDictionary[zeitfenster.zeitfenster_id]=zeitfenster}for(var j in zeitfenster.messgroesse){var messgroesse=zeitfenster.messgroesse[j];if(!this.messgroesseDictionary[messgroesse.messgroesse_id].zeitfenster){YAHOO.log("Zeitfenster-Array wurde zu Messgrösse "+messgroesse.messgroesse_id+" hinzugefügt...","info","YAHOO.ostluft.fachbereich.KanalSelectionApplication::onMessgroesseMenuSelected");this.messgroesseDictionary[messgroesse.messgroesse_id].zeitfenster=new Array()}this.messgroesseDictionary[messgroesse.messgroesse_id].zeitfenster[zeitfenster.zeitfenster_id]=this.zeitfensterDictionary[zeitfenster.zeitfenster_id]}}var zeitfensterArray=YAHOO.ostluft.fachbereich.utility.getDictionaryItemsByID(this.messgroesseDictionary,o.argument,function(messgroesse){return messgroesse.zeitfenster},function(zeitfenster){return zeitfenster.zeitfenster_id});YAHOO.log("Die Daten wurden nachgeladen...","info","YAHOO.ostluft.fachbereich.KanalSelectionApplication::onStandortSelected");this.messgroesseMenuSelectionLoadedEvent.fire({zeitfenster:zeitfensterArray})}else{YAHOO.log("Die Messgrössen konnten in die lokalen Verzeichnise eingetragen werden: "+response.exception,"error","YAHOO.ostluft.fachbereich.KanalSelectionApplication::onMessgroesseMenuSelected")}}catch(ex){YAHOO.log("Das Resultat der Abfrage konnte nicht verarbeitet werden: "+ex,"error","YAHOO.ostluft.fachbereich.KanalSelectionApplication::onMessgroesseMenuSelected")}},failure:function(o){YAHOO.log("Die Messgrössen konnten nicht geladen werden: "+o.statusText,"error","YAHOO.ostluft.fachbereich.KanalSelectionApplication::onMessgroesseMenuSelected")},scope:this,argument:args[0]})}else{YAHOO.log("Es müssen keine Daten nachgeladen werden...","info","YAHOO.ostluft.fachbereich.KanalSelectionApplication::onStandortSelected");var zeitfensterArray=YAHOO.ostluft.fachbereich.utility.getDictionaryItemsByID(this.messgroesseDictionary,args[0],function(messgroesse){return messgroesse.zeitfenster},function(zeitfenster){return zeitfenster.zeitfenster_id});this.messgroesseMenuSelectionLoadedEvent.fire({zeitfenster:zeitfensterArray})}};YAHOO.ostluft.fachbereich.KanalSelectionApplication.prototype.onMessgroesseMenuSelectionLoadedEvent=function(g,c){var h=new Array();while(this.zeitfensterMenu.options.length){if(this.zeitfensterMenu.options[0].selected){h[this.zeitfensterMenu.options[0].value]=true}this.zeitfensterMenu.remove(0)}var b=new Array();for(var e in c[0].zeitfenster){b[b.length]=this.zeitfensterDictionary[e]}b=YAHOO.algorithms.sort.InsertionSort(b,function(k,i){return(k&&i&&(k.titel<i.titel))});for(var e in b){var d=b[e];if(d){var f=(h[d.zeitfenster_id])?true:false;var a=new Option(d.titel,d.zeitfenster_id,f,f);a.id="messgroesse-"+d.zeitfenster_id;this.zeitfensterMenu.options[this.zeitfensterMenu.options.length]=a}}this.zeitfensterMenuSelectEvent.fire(YAHOO.ostluft.fachbereich.utility.evaluateSelection(this.zeitfensterMenu))};YAHOO.ostluft.fachbereich.KanalSelectionApplication.prototype.loadMessstandortList=function(type,args){YAHOO.util.Connect.asyncRequest("GET",this.createRequestURL("listOstluftMessstandorte",{}),{success:function(o){var result=eval("("+o.responseText+")");for(var i in result.items){var messstation=result.items[i];if(typeof messstation!="Function"){this.standortDictionary[messstation.messstation_id]=messstation}}this.standortMenuFilterEvent.fire(this.standortMenuFilter.options[this.standortMenuFilter.options.selectedIndex].value)},scope:this})};YAHOO.ostluft.fachbereich.KanalSelectionApplication.prototype.onZeitfensterMenuSelected=function(b,a){this.kanalAddButton.set("disabled",(a[0].length==0))};YAHOO.ostluft.fachbereich.KanalSelectionApplication.prototype.onStandortMenuFilterSelected=function(e,b){while(this.standortMenu.options.length>0){this.standortMenu.remove(0)}var d=this.standortMenuFilter.options[this.standortMenuFilter.selectedIndex].value;for(var c in this.standortDictionary){var f=this.standortDictionary[c];if(f.art==d){var a=new Option(f.name_lang,c,false,false);a.id="messstation-"+c;this.standortMenu.options[this.standortMenu.options.length]=a}}this.standortMenuSelectEvent.fire(YAHOO.ostluft.fachbereich.utility.evaluateSelection(this.standortMenu))};YAHOO.ostluft.fachbereich.KanalSelectionApplication.prototype.onAddKanal=function(){var requestURL=this.createRequestURL("listKanal",{standort_id:YAHOO.ostluft.fachbereich.utility.evaluateSelection(this.standortMenu).join(","),messgroesse_id:YAHOO.ostluft.fachbereich.utility.evaluateSelection(this.messgroesseMenu).join(","),zeitfenster_id:YAHOO.ostluft.fachbereich.utility.evaluateSelection(this.zeitfensterMenu).join(",")});YAHOO.util.Connect.asyncRequest("GET",requestURL,{success:function(o){try{var response=eval("("+o.responseText+")")}catch(ex){YAHOO.log("Die Rückgabe konnte nicht korrekt deserialisiert werden:\n"+o.responseText,"error","YAHOO.ostluft.fachbereich.KanalSelectionApplication::onAddKanal");return}try{if(response.status=="OK"){for(var i in response.items){this.addKanalLoadedEvent.fire(response.items[i])}}else{YAHOO.log("Die Messgrössen konnten in die lokalen Verzeichnise eingetragen werden: "+response.exception,"error","YAHOO.ostluft.fachbereich.KanalSelectionApplication::onAddKanal")}}catch(ex){YAHOO.log("Das Resultat der Abfrage konnte nicht verarbeitet werden: "+ex,"error","YAHOO.ostluft.fachbereich.KanalSelectionApplication::onAddKanal")}},failure:function(o){YAHOO.log("Die Messgrössen konnten nicht geladen werden: "+o.statusText,"error","YAHOO.ostluft.fachbereich.KanalSelectionApplication::onAddKanal")},scope:this})};YAHOO.namespace("ostluft.fachbereich.utility");YAHOO.ostluft.fachbereich.utility.getDictionaryItemsByID=function(h,e,k,f){if(!YAHOO.lang.isFunction(k)||!YAHOO.lang.isFunction(f)){YAHOO.log("Der 3. und der 4. Parameter müssen je eine gültige Funktion sein!","warn","YAHOO.ostluft.fachbereich.utility.getDictionaryItemsByID");return l}var l=new Array();for(var d in e){var b=h[e[d]];if(!b){YAHOO.log("Eintrag mit der ID "+e[d]+" nicht gefunden!","warn","YAHOO.ostluft.fachbereich.utility.getDictionaryItemsByID");continue}var g=k(b);if(!YAHOO.lang.isArray(g)){YAHOO.log("Die übergebene Funktion muss ein Array zurückgeben!","earn","YAHOO.ostluft.fachbereich.utility.getDictionaryItemsByID");return l}for(var c in g){var a=g[c];if(!a){YAHOO.log("Unterlement-Eintrag mit der ID "+e[d]+" nicht gefunden!","warn","YAHOO.ostluft.fachbereich.utility.getDictionaryItemsByID");continue}if(!l[f(a)]){l[f(a)]=a}}}return l};YAHOO.ostluft.fachbereich.utility.resetMenuSelection=function(c){var a=c.options.length;for(var b=0;b<a;b++){c.options[b].selected=false}};YAHOO.ostluft.fachbereich.utility.evaluateSelection=function(e){if(!e){YAHOO.log("Es wurde keine HTMLSelectElement oder HTMLOptionElement übergeben!","warn","YAHOO.ostluft.fachbereich.utility.evaluateSelection");return new Array()}if(!e.options){e=e.parentNode;if(!e.options){YAHOO.log("Es konnten keine Menupunkte zur Ermittlung der Selektion gefunden werden!","warn","YAHOO.ostluft.fachbereich.utility.evaluateSelection");return new Array()}}var d=new Array();var a=e.options.length;for(var b=0;b<a;b++){var c=e.options[b];if(c&&c.selected&&(c.selected==true)){if(YAHOO.util.Dom.hasClass(c,"disabled")==false){d[d.length]=c.value}else{if(c.selected){c.selected=false}}}}return d};YAHOO.namespace("algorithms.sort");YAHOO.algorithms.sort.InsertionSort=function(d,b){var a=d.length;for(var c=0;c<=a;c++){x=d[c];j=c-1;while(b(x,d[j])){d[j+1]=d[j];j=j-1}d[j+1]=x}return d};
