
var pointsOnMap=new Hash();var Map=Class.create({initialize:function(){$$("a.clsShowMap").invoke("observe","click",this.getCategoryCoordinates.bindAsEventListener(this));$$("a.clsHideMap").invoke("observe","click",this.hideMap.bindAsEventListener(this));},getCategoryCoordinates:function(event){event.stop();$$(".clsHideForMap").invoke("addClassName","clsDisplayNone");$$(".clsShowForMap").invoke("removeClassName","clsDisplayNone");this.points=new Array();this.currentBounds=new GLatLngBounds();this.map=new GMap2($("idMap"));this.map.addControl(new GLargeMapControl());this.map.addControl(new GMapTypeControl());this.map.setCenter(new GLatLng(56.664895,16.636477),7);pointsOnMap.each(function(objectPoints){objectPoints[1].points.each(function(point){this.addPoint(point);}.bind(this));}.bind(this));this.points.each(function(point){this.addPointOnMap(point);}.bind(this));if(this.points.size()==1){this.map.setCenter(new GLatLng(parseFloat(this.points[0].get("latitude")),parseFloat(this.points[0].get("longitude"))),parseInt(this.points[0].get("zoomlevel")));}else if(this.points.size()>1){this.map.setCenter(this.currentBounds.getCenter(),this.map.getBoundsZoomLevel(this.currentBounds));}},addPoint:function(point){var found=false;var pointHash=$H(point);this.points.each(function(oldPoint,index){if(oldPoint.get("latitude")==pointHash.get("latitude")&&oldPoint.get("longitude")==pointHash.get("longitude")){found=true;oldPoint.set("objectid",oldPoint.get("objectid")+","+pointHash.get("objectid"));}}.bind(this));if(!found)this.points.push($H(point));},addPointOnMap:function(markerConfig){var icon=new GIcon();icon.image=markerConfig.get("icon");icon.iconSize=new GSize(32,37);icon.iconAnchor=new GPoint(16,37);icon.infoWindowAnchor=new GPoint(16,0);var markerPoint=new GLatLng(parseFloat(markerConfig.get("latitude")),parseFloat(markerConfig.get("longitude")));var marker=new GMarker(markerPoint,{draggable:false,icon:icon});this.currentBounds.extend(markerPoint);this.map.addOverlay(marker);GEvent.addListener(marker,"click",function(){this.openInfoWindow(marker,markerConfig);}.bindAsEventListener(this));},openInfoWindow:function(marker,markerConfig){this.currentContent="<h2>"+markerConfig.get("address")+"</h2>";var ids=markerConfig.get("objectid").split(",");ids.each(function(objectid,index){new Ajax.Request("http://localhost/basic-updater/index.php?action=get_template&template=EvenemangInfoWindow&id="+markerConfig.get("objectid")+"&options[category]="+markerConfig.get("category"),{onComplete:function(response){this.currentContent=this.currentContent+response.responseText+((ids.size()>1&&index<ids.size()-1)?"<hr />":"");if(index==ids.size()-1)marker.openInfoWindowHtml(this.currentContent);}.bind(this)});}.bind(this));},hideMap:function(event){event.stop();$$(".clsShowForMap").invoke("addClassName","clsDisplayNone");$$(".clsHideForMap").invoke("removeClassName","clsDisplayNone");}});$(document).observe("dom:loaded",function(){var map=new Map();});
function load(url){var load=window.open(url,'','scrollbars=yes,menubar=no,height=600,width=575,resizable=no,toolbar=no,location=no,status=no,top=200,left=300');}
var LinkTargetBlank=Class.create({initialize:function(){$$(".clsTextSize").invoke("observe","click",function(event){event.stop();if(event.element().hasClassName("clsTextNormal"))$$("p,table, .clsText ul").invoke("setStyle",{fontSize:"1em"});if(event.element().hasClassName("clsTextLarge"))$$("p,table, .clsText ul").invoke("setStyle",{fontSize:"1.3em"});if(event.element().hasClassName("clsTextXLarge"))$$("p,table, .clsText ul").invoke("setStyle",{fontSize:"1.6em"});});}});$(document).observe("dom:loaded",function(){$$(".print").invoke("observe","click",function(event){var href=event.element().readAttribute("href");load(href);event.stop();});$$("a").invoke("observe","click",function(event){var href=event.element().readAttribute("href");var pe=null;if(href.startsWith("http://")&&!href.startsWith(baseUrl)){event.stop();$(document.body).insert("<div id=\"modal\"><div class=\"lightbox\"><h3>Du lämnar Borgholms kommuns hemsida om 5 sekunder</h3><p>Sidan du är på väg att besöka ligger inte på Borgholms kommuns hemsida.</p><div class=\"button new\">Öppna i nytt fönster</div><div class=\"button cancel\">Avbryt</div></div></div>");pe=new PeriodicalExecuter(function(pe){location.href=href;},5);$("modal").down(".button.cancel").observe("click",function(){pe.stop();$("modal").remove();});$("modal").down(".button.new").observe("click",function(){pe.stop();$("modal").remove();window.open(href,'_blank');});}});var linkTargetBlank=new LinkTargetBlank();$$("tbody").each(function(table){table.firstDescendant().addClassName("clsTableHeader");var childs=table.childElements();for(var i=1;i<childs.size();i++)childs[i].addClassName("clsTableRow").addClassName((i%2)?"clsOdd":"clsEven");});$$(".clsComment #verify").invoke("observe","focus",function(event){event.element().value="";event.element().setStyle({fontStyle:"normal",color:"#000000"});});$$(".clsShowComment").invoke("observe","click",function(event){event.stop();event.element().up(".clsComments").down(".clsComment").setStyle({display:"block"});});if($$(".clsComments .clsFormResponse")[0].innerHTML!=""){$$(".clsComments .clsFormResponse")[0].up(".clsComments").down(".clsComment").setStyle({display:"block"});$$(".clsComments .clsFormResponse")[0].setStyle({display:"block"});}});
shortcut={'all_shortcuts':{},'add':function(shortcut_combination,callback,opt){var default_options={'type':'keydown','propagate':false,'disable_in_input':false,'target':document,'keycode':false}
if(!opt)opt=default_options;else{for(var dfo in default_options){if(typeof opt[dfo]=='undefined')opt[dfo]=default_options[dfo];}}
var ele=opt.target;if(typeof opt.target=='string')ele=document.getElementById(opt.target);var ths=this;shortcut_combination=shortcut_combination.toLowerCase();var func=function(e){e=e||window.event;if(opt['disable_in_input']){var element;if(e.target)element=e.target;else if(e.srcElement)element=e.srcElement;if(element.nodeType==3)element=element.parentNode;if(element.tagName=='INPUT'||element.tagName=='TEXTAREA')return;}
if(e.keyCode)code=e.keyCode;else if(e.which)code=e.which;var character=String.fromCharCode(code).toLowerCase();if(code==188)character=",";if(code==190)character=".";var keys=shortcut_combination.split("+");var kp=0;var shift_nums={"`":"~","1":"!","2":"@","3":"#","4":"$","5":"%","6":"^","7":"&","8":"*","9":"(","0":")","-":"_","=":"+",";":":","'":"\"",",":"<",".":">","/":"?","\\":"|"}
var special_keys={'esc':27,'escape':27,'tab':9,'space':32,'return':13,'enter':13,'backspace':8,'scrolllock':145,'scroll_lock':145,'scroll':145,'capslock':20,'caps_lock':20,'caps':20,'numlock':144,'num_lock':144,'num':144,'pause':19,'break':19,'insert':45,'home':36,'delete':46,'end':35,'pageup':33,'page_up':33,'pu':33,'pagedown':34,'page_down':34,'pd':34,'left':37,'up':38,'right':39,'down':40,'f1':112,'f2':113,'f3':114,'f4':115,'f5':116,'f6':117,'f7':118,'f8':119,'f9':120,'f10':121,'f11':122,'f12':123}
var modifiers={shift:{wanted:false,pressed:false},ctrl:{wanted:false,pressed:false},alt:{wanted:false,pressed:false},meta:{wanted:false,pressed:false}};if(e.ctrlKey)modifiers.ctrl.pressed=true;if(e.shiftKey)modifiers.shift.pressed=true;if(e.altKey)modifiers.alt.pressed=true;if(e.metaKey)modifiers.meta.pressed=true;for(var i=0;k=keys[i],i<keys.length;i++){if(k=='ctrl'||k=='control'){kp++;modifiers.ctrl.wanted=true;}else if(k=='shift'){kp++;modifiers.shift.wanted=true;}else if(k=='alt'){kp++;modifiers.alt.wanted=true;}else if(k=='meta'){kp++;modifiers.meta.wanted=true;}else if(k.length>1){if(special_keys[k]==code)kp++;}else if(opt['keycode']){if(opt['keycode']==code)kp++;}else{if(character==k)kp++;else{if(shift_nums[character]&&e.shiftKey){character=shift_nums[character];if(character==k)kp++;}}}}
if(kp==keys.length&&modifiers.ctrl.pressed==modifiers.ctrl.wanted&&modifiers.shift.pressed==modifiers.shift.wanted&&modifiers.alt.pressed==modifiers.alt.wanted&&modifiers.meta.pressed==modifiers.meta.wanted){callback(e);if(!opt['propagate']){e.cancelBubble=true;e.returnValue=false;if(e.stopPropagation){e.stopPropagation();e.preventDefault();}
return false;}}}
this.all_shortcuts[shortcut_combination]={'callback':func,'target':ele,'event':opt['type']};if(ele.addEventListener)ele.addEventListener(opt['type'],func,false);else if(ele.attachEvent)ele.attachEvent('on'+opt['type'],func);else ele['on'+opt['type']]=func;},'remove':function(shortcut_combination){shortcut_combination=shortcut_combination.toLowerCase();var binding=this.all_shortcuts[shortcut_combination];delete(this.all_shortcuts[shortcut_combination])
if(!binding)return;var type=binding['event'];var ele=binding['target'];var callback=binding['callback'];if(ele.detachEvent)ele.detachEvent('on'+type,callback);else if(ele.removeEventListener)ele.removeEventListener(type,callback,false);else ele['on'+type]=false;}}
Effect.Squish=function(element){return new Effect.Scale(element,window.opera?1:0,Object.extend({restoreAfterFinish:true,beforeSetup:function(effect){effect.element.makeClipping(effect.element);},afterFinishInternal:function(effect){effect.element.hide(effect.element);effect.element.undoClipping(effect.element);}},arguments[1]||{}));}
var Gallery=Class.create({initialize:function(galleryElement,galleryConfig){this.galleryElement=galleryElement;this.galleryConfig=galleryConfig;this.list=this.galleryElement.select("li");if(this.list.size()>0){this.galleryElement.up(".clsGalleryWrapper").setStyle({display:"block"});}
this.iterator=0;this.effect=this.getConfigValue("GalleryEffect","fade");this.effects=new Array("fade","blind","slide","fold","drop","puff","shrink","squish");this.changing=false;},getConfigValue:function(id,standard){return this.galleryConfig.down("input.cls"+id)?this.galleryConfig.down("input.cls"+id).value:standard;},change:function(){if(!this.changing){this.changing=true;var direction=($A(arguments).size()>1)?$A(arguments)[1]:null;var stopPe=($A(arguments).size()>2)?$A(arguments)[2]:null;if(stopPe)this.pe.stop();var current=this.iterator;this.list[current].setStyle({zIndex:"2"});if(direction=="prev")this.iterator=(this.iterator-1<0)?this.list.size()-1:this.iterator-1;else this.iterator=(this.iterator+1>=this.list.size())?0:this.iterator+1;this.list[this.iterator].setStyle({display:"block",zIndex:"1"});var effect=(this.effect!="random")?this.effect:this.effects[Math.ceil(Math.random()*this.effects.size())-1];switch(effect){case"fade":new Effect.Fade(this.list[current],{afterFinish:function(){this.changing=false;}.bind(this)});break;case"blind":new Effect.BlindUp(this.list[current],{afterFinish:function(){this.changing=false;}.bind(this)});break;case"slide":new Effect.SlideUp(this.list[current],{afterFinish:function(){this.changing=false;}.bind(this)});break;case"fold":new Effect.Fold(this.list[current],{afterFinish:function(){this.changing=false;}.bind(this)});break;case"drop":new Effect.DropOut(this.list[current],{afterFinish:function(){this.changing=false;}.bind(this)});break;case"puff":new Effect.Puff(this.list[current],{afterFinish:function(){this.changing=false;}.bind(this)});break;case"shrink":new Effect.Shrink(this.list[current],{afterFinish:function(){this.changing=false;}.bind(this)});break;case"squish":new Effect.Squish(this.list[current],{afterFinish:function(){this.changing=false;}.bind(this)});break;default:new Effect.Fade(this.list[current],{afterFinish:function(){this.changing=false;}.bind(this)});break;}}},changeToIndex:function(index){if(!this.changing){if(this.iterator!=index){this.changing=true;var current=this.iterator;this.list[current].setStyle({zIndex:"2"});this.iterator=index;this.list[this.iterator].setStyle({display:"block",zIndex:"1"});var effect=(this.effect!="random")?this.effect:this.effects[Math.ceil(Math.random()*this.effects.size())-1];switch(effect){case"fade":new Effect.Fade(this.list[current],{afterFinish:function(){this.changing=false;}.bind(this)});break;case"blind":new Effect.BlindUp(this.list[current],{afterFinish:function(){this.changing=false;}.bind(this)});break;case"slide":new Effect.SlideUp(this.list[current],{afterFinish:function(){this.changing=false;}.bind(this)});break;case"fold":new Effect.Fold(this.list[current],{afterFinish:function(){this.changing=false;}.bind(this)});break;case"drop":new Effect.DropOut(this.list[current],{afterFinish:function(){this.changing=false;}.bind(this)});break;case"puff":new Effect.Puff(this.list[current],{afterFinish:function(){this.changing=false;}.bind(this)});break;case"shrink":new Effect.Shrink(this.list[current],{afterFinish:function(){this.changing=false;}.bind(this)});break;case"squish":new Effect.Squish(this.list[current],{afterFinish:function(){this.changing=false;}.bind(this)});break;default:new Effect.Fade(this.list[current],{afterFinish:function(){this.changing=false;}.bind(this)});break;}}}}});var GalleryAutoChange=Class.create(Gallery,{initialize:function($super,galleryElement,galleryConfig){$super(galleryElement,galleryConfig);this.startIntervall=this.getConfigValue("GalleryStartIntervall",2);this.changeIntervall=this.getConfigValue("GalleryChangeIntervall",2);if(this.list.size()>1){new PeriodicalExecuter(function(pe){new PeriodicalExecuter(this.change.bind(this),this.changeIntervall);this.change();pe.stop();}.bind(this),this.startIntervall);}}});var GalleryClickChange=Class.create(Gallery,{initialize:function($super,galleryElement,galleryConfig){$super(galleryElement,galleryConfig);this.nextElement=this.galleryElement.up(".clsGalleryWrapper").down(".clsNext");this.prevElement=this.galleryElement.up(".clsGalleryWrapper").down(".clsPrev");if(this.list.size()>1&&this.nextElement&&this.prevElement){this.nextElement.observe("click",this.change.bindAsEventListener(this,"next"));this.prevElement.observe("click",this.change.bindAsEventListener(this,"prev"));}}});var GalleryAutoClickChange=Class.create(Gallery,{initialize:function($super,galleryElement,galleryConfig){$super(galleryElement,galleryConfig);this.nextElement=this.galleryElement.up(".clsGalleryWrapper").down(".clsNext");this.prevElement=this.galleryElement.up(".clsGalleryWrapper").down(".clsPrev");this.startIntervall=this.getConfigValue("GalleryStartIntervall",2);this.changeIntervall=this.getConfigValue("GalleryChangeIntervall",2);if(this.list.size()>1){this.pe=new PeriodicalExecuter(function(pe){this.pe=new PeriodicalExecuter(this.change.bind(this),this.changeIntervall);this.change();pe.stop();}.bind(this),this.startIntervall);}
if(this.list.size()>1&&this.nextElement&&this.prevElement){this.nextElement.observe("click",this.change.bindAsEventListener(this,"next",true));this.prevElement.observe("click",this.change.bindAsEventListener(this,"prev",true));}}});var GalleryThumbChange=Class.create(Gallery,{initialize:function($super,galleryElement,galleryConfig){$super(galleryElement,galleryConfig);this.thumbWidth=this.getConfigValue("ThumbWidth","80");this.thumbHeight=this.getConfigValue("ThumbHeight","80");this.thumbStyle=this.getConfigValue("ThumbStyle","fit");var style=null;if(this.thumbStyle=="fit")style={"maxWidth":this.thumbWidth+"px","maxHeight":this.thumbHeight+"px"};if(this.thumbStyle=="crop")style={"minWidth":this.thumbWidth+"px","maxHeight":this.thumbHeight+"px"};if(this.thumbStyle=="resize")style={"width":this.thumbWidth+"px","height":this.thumbHeight+"px"};this.thumbContainer=galleryElement.up(".clsGalleryWrapper").down(".clsGalleryThumbs");this.list.each(function(image,index){var thumbImage=new Element("img").writeAttribute("src",image.down("img").readAttribute("src")).setStyle(style);var thumbListItem=new Element("li");thumbListItem.addClassName("clsThumb").writeAttribute("alt","thumbnail").setStyle({"position":"relative","width":this.thumbWidth+"px","height":this.thumbHeight+"px","overflow":"hidden",opacity:0.6,cursor:"pointer"});thumbListItem.insert(thumbImage);this.thumbContainer.insert(thumbListItem);thumbListItem.observe("mouseover",function(event){thumbListItem.setStyle({opacity:1});}.bind(this));thumbListItem.observe("mouseout",function(event){thumbListItem.setStyle({opacity:0.6});}.bind(this));thumbListItem.observe("click",function(event){this.changeToIndex(index);}.bind(this));}.bind(this));}});var GalleryController=Class.create({initialize:function(selectorClass){this.galleryElements=$$("ul."+selectorClass);this.galleries=new Array();this.galleryElements.each(function(gallery){var galleryConfig=gallery.previous(".clsGalleryConfig");var galleryInstance=null;var galleryType=galleryConfig.down("input.clsGalleryType")?galleryConfig.down("input.clsGalleryType").value:"";switch(galleryType){case"autoChange":galleryInstance=new GalleryAutoChange(gallery,galleryConfig);break;case"clickChange":galleryInstance=new GalleryClickChange(gallery,galleryConfig);break;case"autoClickChange":galleryInstance=new GalleryAutoClickChange(gallery,galleryConfig);break;case"thumbChange":galleryInstance=new GalleryThumbChange(gallery,galleryConfig);break;default:galleryInstance=new GalleryAutoChange(gallery,galleryConfig);break;}
this.galleries.push(galleryInstance);}.bind(this));}});
