var MKG;if(!MKG){MKG={__name:"MKG",__version:"1.0",__info:"Global methods, classes and objects for qlubbr",options:{},init:function(a){this.options=a;MKG.Modal.init()},defineClass:function(g){var e=g.name;var n=g.extend||Object;var b=g.construct||function(){};var d=g.methods||{};var m=g.statics||{};var h;var l;if(!g.borrows){h=[]}else{if(g.borrows instanceof Array){h=g.borrows}else{h=[g.borrows]}}if(!g.provides){l=[]}else{if(g.provides instanceof Array){l=g.provides}else{l=[g.provides]}}var j=new n();for(var a in j){if(j.hasOwnProperty(a)){delete j[a]}}for(var f=0;f<h.length;f++){var k=g.borrows[f];h[f]=k;for(var a in k.prototype){if(typeof k.prototype[a]!="function"){continue}j[a]=k.prototype[a]}}for(var a in d){j[a]=d[a]}j.constructor=b;j.superclass=n;if(e){j.classname=e}for(var f=0;f<l.length;f++){var k=l[f];for(var a in k.prototype){if(typeof k.prototype[a]!="function"){continue}if(a=="constructor"||a=="superclass"){continue}if(a in j&&typeof j[a]=="function"&&j[a].length==k.prototype[a].length){continue}throw new Error("Class "+e+" does not provide method "+k.classname+"."+a)}}b.prototype=j;for(var a in m){b[a]=g.statics[a]}return b}}}MKG.Browser={isIe:function(){return $.browser.msie},isIe6:function(){return $.browser.msie&&$.browser.version.substr(0,1)==6},isIe7:function(){},isMozilla:function(){return $.browser.mozilla},isSafari:function(){return $.browser.safari},getScrollX:function(){return this.getScrollXY()[0]},getScrollY:function(){return this.getScrollXY()[1]},getScrollXY:function(){var b=0,a=0;if(typeof(window.pageYOffset)=="number"){a=window.pageYOffset;b=window.pageXOffset}else{if(document.body&&(document.body.scrollLeft||document.body.scrollTop)){a=document.body.scrollTop;b=document.body.scrollLeft}else{if(document.documentElement&&(document.documentElement.scrollLeft||document.documentElement.scrollTop)){a=document.documentElement.scrollTop;b=document.documentElement.scrollLeft}}}return[b,a]}};MKG.Util={merge:function(d,c){var a={};for(var b in d){a[b]=d[b]}for(var b in c){a[b]=c[b]}return a},getIframeDocument:function(a){return a.attr("contentWindow")!=undefined?a.attr("contentWindow").document:a.attr("document")}};MKG.Debug={debugging:true,_cmd:function(command,args){if(this.debugging&&$.browser.mozilla==true){var strEval="";for(var i=0;i<args.length;i++){if(i!=0){strEval+=", "}strEval+="args["+i+"]"}try{eval("console."+command+"("+strEval+");")}catch(e){}}},log:function(){this._cmd("log",arguments)},info:function(){this._cmd("info",arguments)},warn:function(){this._cmd("warn",arguments)},error:function(){this._cmd("error",arguments)},dir:function(a){if(this.debugging&&$.browser.mozilla==true){console.dir(a)}}};MKG.Ajax={jsonDefaults:{dataType:"json"},json:function(b,c,d,a){a=MKG.Util.merge(this.jsonDefaults,a);a.url=b;a.success=function(e,f){if(e&&e.status&&e.status=="success"){c(e)}else{d(e)}};a.error=function(e,g,f){MKG.Debug.error("Json error: "+g+", url: "+b);if(d){d({message:"Unerwarteter Fehler"})}};return $.ajax(a)},HtmlUpdater:MKG.defineClass({construct:function(a){this.jqContainer=a},methods:{jqContainer:null,isLoading:false,register:function(a,c,b){b=b||"click";a.bind(b,this,function(d){d.data.update(c)})},update:function(c,a,b){if(this.isLoading){return}this.isLoading=true;var d=this;MKG.Ajax.json(c,function(e){d.isLoading=false;d.updateContent(e,a);if(b){b()}},function(e){MKG.Modal.open(e.message)})},updateContent:function(c,a){if(a){var b=$(c.content).html()}else{var b=c.content}this.jqContainer.html(b)}}}),Form:MKG.defineClass({construct:function(b,a,c){this.jqForm=b;this.callbackSuccess=a;this.callbackError=c;var d=this;b.bind("submit",function(){d.submit();return false})},methods:{jqForm:null,submit:function(){var a=this;MKG.Ajax.json(this.jqForm.attr("action"),function(b){a.callbackSuccess(b)},function(b){if(a.callbackError){a.callbackError(b)}},{type:"POST",data:this.jqForm.serialize()})}}})};MKG.Modal={_idModal:"modal-layer",_idModalContent:"modal-layer-content",_jqModal:null,_jqModalContent:null,_jqBox:null,_jqBoxContent:null,_jqBoxClose:null,_isLoading:false,_isOpen:false,_url:null,_jsonObj:null,init:function(){this._jqModal=$('<div id="'+this._idModal+'"></div>');this._jqModal.css({position:"absolute","z-index":"1000",width:"100%",height:"100%",opacity:"0.5","-moz-opacity":"0.5","background-color":"#000",top:"0",left:"0",display:"none"});this._jqModalContent=$('<div id="'+this._idModalContent+'"></div>');this._jqModalContent.css({position:"absolute","z-index":"1010","background-color":"transparent",top:"0",left:"0",display:"none",padding:"10px"});$("body").append(this._jqModal).append(this._jqModalContent);$(window).bind("resize",this,function(a){a.data._centerContent()});this._jqBox=jQuery('<div class="cf modal-box"><span onclick="MKG.Modal.close()" class="close no-text clickable">Fenster schließen</span><div id="modal-box-content"></div></div>');this._jqBoxContent=this._jqBox.find("#modal-box-content");this._jqBoxClose=this._jqBox.find(".close")},loadUrl:function(b,a,d){if(!b){MKG.Debug.error("No URL defined for modal layer.");return}if(a==undefined){a=true}if(d==undefined){d=true}if(d==false&&b==this._url&&this._jsonObj!==null){this.open(this._jsonObj.html,a)}else{var c=this;this.setLoading("lade Inhalt...");MKG.Ajax.json(b,function(e){c._loadingComplete(e,a)},function(e){c.close();MKG.Debug.error('Failed to load url "'+b+'" for modal layer.')})}this._url=b;return false},setLoading:function(a){this.open('<div class="loader">'+a+"</div>");this._isLoading=true},_loadingComplete:function(b,a){this._isLoading=false;this._jsonObj=b;this.open(b.content,a)},open:function(b,a){if(a==undefined){a=true}this._isOpen=true;if(!b){this.close();return}if(MKG.Browser.isIe6()){$("select").css("visibility","hidden")}$("object").css("visibility","hidden");this._jqModal.fadeIn("normal");this._jqModalContent.show();if(a){this._jqModalContent.html(this._jqBox);this._jqBoxContent.html(b)}else{this._jqModalContent.html(b)}this._centerContent()},openConfirm:function(b,a){var f=$("<div><h3>Bitte bestätigen</h3><p>"+b+"</p></div>");var e=$('<div class="clearfix "></div>');var c=$('<input type="submit" class="button small float-right ml10" value="bestätigen" />');c.bind("click",this,function(g){a();g.data.close()});var d=$('<input type="button" class="button small light float-right" value="abbrechen" />');d.bind("click",this,function(g){g.data.close()});f.append(e.append(c).append(d));this.open(f)},close:function(){this._isOpen=false;this._isLoading=false;this._jqModal.fadeOut("small");this._jqModalContent.hide();if(MKG.Browser.isIe6()){$("select").css("visibility","visible")}$("object").css("visibility","visible")},_centerContent:function(){if(!this._isOpen){return}var b=parseInt(($(window).width()-this._jqModalContent.width())/2);var a=parseInt(($(window).height()-this._jqModalContent.height())/2)+MKG.Browser.getScrollY();if(b<0){b=0}if(a<0){a=0}this._jqModalContent.css({left:b,top:a});this._jqModal.css({width:$(document).width(),height:$(document).height()})}};MKG.Popup={jqContainer:null,jqContainer:$('<div style="display: none" class="popup"><div class="content"></div><div class="footer"></div></div>'),open:function(a){this.visible=true;this.jqContainer.find(".content").html(a.content);this.setPosition(a);var b=this;this.jqContainer.fadeIn("normal",function(){b.checkStatus()})},hide:function(){this.visible=false;this.jqContainer.hide()},checkStatus:function(){if(!this.visible){this.hide()}},setContent:function(a){this.content=a},appendPopup:function(){$("body").append(this.jqContainer)},setPosition:function(b){var a=b.jqReferer.offset().top+b.getOffsetY()+-10;var d=b.jqReferer.offset().left+b.jqReferer.width()+b.getOffsetX()+4;var c=b.jqReferer.offsetParent();this.jqContainer.css({top:a,left:d})},register:function(b,c,a){this.setContent(b.content);b.jqReferer.bind(c,this,function(d){d.data.open(b)});b.jqReferer.bind(a,this,function(d){d.data.hide()});this.appendPopup()},registerFocus:function(a,c,b){this.register(new MKG.Popup.Element(a,c),"focus","blur")},registerMouseover:function(a,c,b){this.register(new MKG.Popup.Element(a,c,b),"mouseover","mouseout")},Element:MKG.defineClass({construct:function(a,c,b){this.jqReferer=a;this.content=c;this.options=b},methods:{jqReferer:null,content:null,options:null,getOffsetY:function(){if(this.options&&this.options.offsetY){return this.options.offsetY}return 0},getOffsetX:function(){if(this.options&&this.options.offsetX){return this.options.offsetX}return 0}}})};MKG.Rating=MKG.defineClass({construct:function(a){this.attributes=a;this._jqList=new Array();var b=this;this.attributes.jqElement.find("li").each(function(c){b._jqList.push($(this));$(this).bind("mouseover",b,function(d){d.data.setRating(c)});$(this).bind("click",b,function(d){d.data.clickRating(c)})});this.attributes.jqElement.bind("mouseout",b,function(c){c.data.resetRating()})},methods:{attributes:null,_jqList:null,setRating:function(a){for(var b in this._jqList){if(b<=a){this._jqList[b].addClass("hover")}else{this._jqList[b].removeClass("hover")}}},clickRating:function(a){var b=this;MKG.Ajax.json(this.attributes.requestUrl,function(c){b.updateContainer(c)},function(c){MKG.Debug.error('Failed to load url "'+b.attributes.requestUrl+'" for rating.')},{data:{value:a+1}})},updateContainer:function(a){this.attributes.jqContainer.html(a.content)},resetRating:function(){this.setRating(this.attributes.currentRating);for(var a in this._jqList){this._jqList[a].removeClass("hover")}}}});MKG.ViewHelper={_controllers:{},set:function(b,a){this._controllers[b]=a;if(a.init){a.init()}return a},get:function(a){if(!this._controllers[a]){MKG.Debug.error('No viewController set with index "'+a+'"');return null}return this._controllers[a]}};MKG.Form={ImageUploader:MKG.defineClass({construct:function(a){this.iframes=new Array();this.callbackFunctions=new Array();this.attributes=a;this.attributes.jqField.bind("change",this,function(b){b.data.fieldChanged()})},methods:{attributes:null,iframes:null,isLoading:false,callbackFunctions:null,fieldChanged:function(){if(this.isLoading){this.attributes.jqField.attr("value","");return}this.setLoading(true);MKG.Debug.info("ImageUpload submitted: "+this.attributes.uploadUrl);var a=this.newIframe();this.attributes.jqForm.attr("target",a.getId());this.attributes.jqForm.submit();this.attributes.jqForm.attr("target","");this.attributes.jqField.attr("value","")},setLoading:function(a){this.isLoading=a;if(this.isLoading){this.attributes.jqProgressBar.removeClass("hidden");this.attributes.jqField.addClass("display-none")}else{this.attributes.jqProgressBar.addClass("hidden");this.attributes.jqField.removeClass("display-none")}},getResponse:function(responseText){this.setLoading(false);var response=eval(responseText);if(!response||response.status=="error"){MKG.Modal.open("Der Upload ist fehlgeschlagen. "+response.message)}else{if(!this.attributes.tipId||!response.tipId){this.attributes.tipId=response.tipId;this.attributes.jqForm.attr("action",this.attributes.formUrlPattern.replace(/_id_/,response.tipId));this.attributes.jqObjectForm.attr("action",this.attributes.objectFormUrlPattern.replace(/_id_/,response.tipId))}for(var i in this.callbackFunctions){this.callbackFunctions[i](response)}}},bind:function(a){this.callbackFunctions.push(a)},newIframe:function(){var c=this.iframes.length;var b=this;var a=new MKG.Form.ImageFrame(c,this.attributes.jqFrameContainer,function(d){b.getResponse(d)});this.iframes.push(a);return a}}}),ImageFrame:MKG.defineClass({construct:function(a,c,b){this.jqContainer=c;this.intId=a;var d=$('<iframe src="/" id="'+this.getId()+'" name="'+this.getId()+'"></iframe>');this.jqContainer.append(d);d.bind("load",this,function(f){var g=$(MKG.Util.getIframeDocument(d)).find("#response");b(g.html())})},methods:{jqContainer:null,jqIframe:null,intId:0,getId:function(){return"image-upload-iframe-"+this.intId}}}),SiteLoader:MKG.defineClass({construct:function(a){this.strBaseUrl=a;this.boxes=new Array()},methods:{strBaseUrl:null,boxes:null,addFilter:function(a){this.boxes.push(a);a.bind("change",this,function(b){b.data.getUrl()})},getUrl:function(){var b="";for(var a in this.boxes){b+="/"+$(this.boxes[a]).attr("name")+"/"+$(this.boxes[a]).attr("value")}window.location.href=this.strBaseUrl+b}}})};MKG.Accordion=MKG.defineClass({construct:function(d,c,a,b,e){this.strEvent=b||"click";this.strSpeed=e||"fast";this.jqElements=d;this.patternTrigger=c;this.patternContent=a;var f=this;this.jqElements.each(function(g){$(this).find(c).bind(f.strEvent,this,function(h){f.hideAll(h.data);f.show($(h.data))})});this.init()},methods:{jqElements:null,patternTrigger:null,patternContent:null,strEvent:null,strSpeed:null,isAnimating:false,jqLastAnimated:null,jqNextToAnimate:null,hideAll:function(b){var a=this;this.jqElements.each(function(c){if(b!=this){$(this).removeClass("active");$(this).find(a.patternContent).slideUp(a.strSpeed)}})},show:function(a){this.jqNextToAnimate=a;if(this.isAnimating){return}var b=this;this.jqLastAnimated=a;this.isAnimating=true;a.addClass("active");a.find(this.patternContent).slideDown(this.strSpeed,function(){b.isAnimating=false;if(b.jqNextToAnimate!=b.jqLastAnimated){b.show(b.jqNextToAnimate)}})},init:function(){var a=this.jqElements.get(0);var b=this;this.jqElements.each(function(c){if(a!=this){$(this).removeClass("active");$(this).find(b.patternContent).hide()}})}}});MKG.Tabs=MKG.defineClass({construct:function(a,b,c){if(a.size()!=b.size()){MKG.Debug.log("Wrong tab / content count!")}this.jqTabs=a;this.jqContents=b;this.strEvent=c||"click";var d=this;this.jqTabs.each(function(e){$(this).bind(d.strEvent,d,function(f){f.data.click(e)})});this.init()},methods:{jqTabs:null,jqContents:null,strEvent:null,strClass:"active",click:function(a){this.deactivateAll();$(this.jqTabs.get(a)).addClass(this.strClass);$(this.jqContents.get(a)).addClass(this.strClass)},init:function(){this.click(0)},deactivateAll:function(){var a=this;this.jqTabs.each(function(b){$(this).removeClass(a.strClass)});this.jqContents.each(function(b){$(this).removeClass(a.strClass)})}}});MKG.Toggle=MKG.defineClass({construct:function(a,b,e,c,d){this.jqTriggerShow=a;this.jqTriggerHide=b;this.jqContent=e;this.strEvent=c||"click";this.strSpeed=d||"fast";this.jqTriggerShow.bind(this.strEvent,this,function(f){f.data.show()});this.jqTriggerHide.bind(this.strEvent,this,function(f){f.data.hide()});this.init()},methods:{jqTriggerShow:null,jqTriggerHide:null,jqContent:null,strEvent:null,strSpeed:null,hide:function(){this.jqTriggerHide.hide();this.jqTriggerShow.show();this.jqContent.slideUp(this.strSpeed)},show:function(){this.jqTriggerShow.hide();this.jqTriggerHide.show();this.jqContent.slideDown(this.strSpeed)},init:function(){this.jqTriggerHide.hide();this.jqTriggerShow.show();this.jqContent.hide()}}});MKG.UserGallery={imageSets:new Array(),isAnimating:false,nextToAnimate:null,add:function(a,b){this.imageSets.push(new MKG.UserGallery.ImageSet(a,b))},ImageSet:MKG.defineClass({construct:function(a,b){this.jqSmall=a;this.jqBig=b;MKG.Debug.log(this.jqSmall);this.jqSmall.bind("mouseover",this,function(c){c.data.zoom()});this.jqBig.bind("mouseout",this,function(c){c.data.unzoom()})},methods:{jqSmall:null,jqBig:null,zoom:function(){MKG.UserGallery.nextToAnimate=this;if(MKG.UserGallery.isAnimating){return}var b=this;MKG.UserGallery.isAnimating=true;this.jqBig.fadeIn("fast",function(){MKG.UserGallery.isAnimating=false;if(MKG.UserGallery.nextToAnimate&&MKG.UserGallery.nextToAnimate!=b){MKG.UserGallery.nextToAnimate.zoom()}});for(var a in MKG.UserGallery.imageSets){if(MKG.UserGallery.imageSets[a]!==this){MKG.UserGallery.imageSets[a].unzoom()}}},unzoom:function(){this.jqSmall.show();this.jqBig.hide()}}})};MKG.Helper={updateUserMeta:function(){var a=new MKG.Ajax.HtmlUpdater($("#user_meta"));a.update(MKG.options.updateMetaUrl,true)},loadUserMap:function(a,b,d){var c=new GClientGeocoder();c.getLatLng(a,function(e){if(!e){if(d){d()}}else{var g=new GMap2(document.getElementById(b));g.setCenter(e,6);var f=new GMarker(e);g.addOverlay(f)}})},initTinyMce:function(a){tinyMCE.init({mode:"exact",elements:a,skin:"mkg",theme:"advanced",language:"de",theme_advanced_buttons1:"bold,italic,underline,separator,justifyleft,justifycenter,justifyright,justifyfull,bullist,numlist,undo,redo,link,unlink",theme_advanced_buttons2:"",theme_advanced_buttons3:"",theme_advanced_toolbar_location:"top",theme_advanced_toolbar_align:"left",theme_advanced_statusbar_location:"none"})}};