
var ba={};ba.init=function(){ba.dpOptions={yearRange:'-0:+10',speed:'',dateFormat:"yy-mm-dd",closeText:'X',clearText:'',firstDay:1,prevText:'<',nextText:'>',currentText:i18n.translate('Heute'),monthNames:[i18n.translate('Januar'),i18n.translate('Februar'),i18n.translate('März'),i18n.translate('April'),i18n.translate('Mai'),i18n.translate('Juni'),i18n.translate('Juli'),i18n.translate('August'),i18n.translate('September'),i18n.translate('Oktober'),i18n.translate('November'),i18n.translate('Dezember')]}};ba.htmlspecialchars_decode=function(from){from=from.replace(/&amp;/g,'&');from=from.replace(/&lt;/g,'<');from=from.replace(/&gt;/g,'>');from=from.replace(/&quot;/g,'"');return from;}
function Control(global){global.CLASS_MAP="Googlemap";global.CLASS_VIEW="Resultview";global.CLASS_FILTERS="Filter";jQuery(window).unload(function()
{$$(CLASS_MAP).mapUnload();});jQuery(window).resize(function()
{$$(CLASS_MAP).mapResize();});jQuery(document).ready(function()
{if(document.detailMarker==null)
{Loader.loadJSON(ba.webrootLang+"post/read.json","intialdata_loaded",$$(CLASS_VIEW).eventHandler);$$(CLASS_FILTERS);$$(CLASS_MAP).init();}
else
{var dataNodeArr=new Array({id:1,latitude:document.detailMarker.lat,longitude:document.detailMarker.lon,post_type_id:document.detailMarker.id});$$(CLASS_MAP).init(dataNodeArr);}});}
function i18nJs(){this.messages=new Array();this.init=function(translations){this.messages=translations;}
this.getText=function(key){if(this.messages[key]){return this.messages[key];}
return false;}
this.translate=function(key,replacements){if((string=this.getText(key))==false)
string=key;return this.substitute(string,replacements);}
this.translate2=function(key,replacements){var t=this.getText(this.substitute(key,replacements));if(t==false||t=='')
return this.translate(key,replacements);return t;}
this.substitute=function(string,replacements){string=string.replace("'","\\'");string=eval("'"+string.replace(/\{([0-9]+)\}/g,"'+replacements[$1]+'")+"'");return string;}}
$$=function(className){this.instanceArray=(this.instanceArray==undefined)?[]:this.instanceArray;if(this.instanceArray[className]==undefined)
{this.instanceArray[className]=eval('new '+className+'();');if(typeof(this.instanceArray[className].init)=="function")
{this.instanceArray[className].init();}}
return this.instanceArray[className];}
$=function(elementId){return document.getElementById(elementId);}
str_replace=function(search,replace,str){if(str!==undefined){var index=str.indexOf(search);while(index!=-1){str=str.replace(search,replace);index=str.indexOf(search);}
return str;}
else{return"n.A.";}}
getElementCoordinates=function(element)
{return jQuery(element).offset();}
getElementDimensions=function(element)
{return{width:jQuery(element).width(),height:jQuery(element).height()};}
getPaddedWidth=function(element)
{return(parseInt(jQuery(element).css("padding-left"))+parseInt(jQuery(element).css("padding-right")));}
clearStatusBar=function()
{window.status="";return true;}
Array.prototype.inArray=function(value)
{var arr=this;for(var i=0;i<arr.length;i++)
{if(arr[i]==value)
{return true;break;}}
return false;}
var Loader={};Loader.loadJSON=function(path,event,handler)
{EventListeners.add(document,event,handler);jQuery.getJSON(path,function(data)
{EventListeners.dispatchEvent(document,event,data);})};
var EventListeners={};EventListeners.nativeEvents=["blur","change","click","dblclick","error","focus","keydown","keypress","keyup","load","mousedown","mouseout","mouseover","mouseup","resize","scroll","select","submit","unload"];EventListeners.add=function(element,event,handler)
{var isNativeEvent=false;for(var i=0;i<EventListeners.nativeEvents.length;i++)
{if(event===EventListeners.nativeEvents[i])
{isNativeEvent=true;break;}}
if(isNativeEvent)
{jQuery(element)[event](function(event){event.target=EventListeners.eventElement(event);handler(event);});}
else
{jQuery(element).bind(event,function(event,parameters){event.data=parameters;event.target=EventListeners.eventElement(event);handler(event);});}};EventListeners.remove=function(element,evt)
{if(evt===null||evt===undefined)
{jQuery(element).unbind();}
else
{jQuery(element).unbind(evt);}};EventListeners.dispatchEvent=function(element,event,args)
{jQuery(element).trigger(event,[args]);};EventListeners.eventElement=function(evtElement)
{evtElement=(evtElement)?evtElement:((window.event)?window.event:"");var element=(evtElement.target)?evtElement.target:evtElement.srcElement;return element;};
﻿
function Googlemap(){var that=this;var CSS_MAP_LEGEND="mapLegend";var CSS_MAP_INFOWINDOW="mapInfoWin";var SHOW='show';var HIDE='hide';var map=null;var lang=null;var panFlag=false;var showingDetails=false;function mapCreate(dataNode){if(GBrowserIsCompatible()){map=new GMap2($('map'));map.setCenter(new GLatLng(46.8,8.3056640625),8,G_SATELLITE_MAP);map.addControl(new GLargeMapControl());generateMapControls();generateMapLegend();map.medStaffIcon=new GIcon();map.medStaffIcon.image='/static/images/flag_mp.gif';map.medStaffIcon.iconSize=new GSize(37,44);map.medStaffIcon.iconAnchor=new GPoint(9,30);map.standinIcon=new GIcon();map.standinIcon.image='/static/images/flag_pv.gif';map.standinIcon.iconSize=new GSize(37,44);map.standinIcon.iconAnchor=new GPoint(9,30);map.takeoverIcon=new GIcon();map.takeoverIcon.image='/static/images/flag_pu.gif';map.takeoverIcon.iconSize=new GSize(37,44);map.takeoverIcon.iconAnchor=new GPoint(9,30);map.spitalarztIcon=new GIcon();map.spitalarztIcon.image='/static/images/flag_sav.gif';map.spitalarztIcon.iconSize=new GSize(37,44);map.spitalarztIcon.iconAnchor=new GPoint(9,30);var bounds=map.getBounds();var southWest=bounds.getSouthWest();var northEast=bounds.getNorthEast();var lngSpan=northEast.lng()-southWest.lng();var latSpan=northEast.lat()-southWest.lat();}
else{alert('Your browser is not supported by google maps!');}
that.mapResize();if(dataNode!=undefined)
{var singleMarker=that.populateMarkers(dataNode);that.gotoMarker(singleMarker[1]);}};function generateMapControls()
{var mapContainer=map.getContainer();var container=document.createElement("div");with(container.style){position="absolute";right="25px";top="15px";height="20px";}
mapContainer.appendChild(container);var txtArr=new Array(i18n.translate('KARTE'),i18n.translate('SATELLIT'),i18n.translate('HYBRID'));var attrArr=new Array(G_NORMAL_MAP,G_SATELLITE_MAP,G_HYBRID_MAP);var mapControlArr=new Array();for(var i=0;i<txtArr.length;i++){var b=document.createElement("div");b.appendChild(document.createTextNode(txtArr[i]));b.view=attrArr[i];container.appendChild(b);with(b.style){position="relative";cursor="pointer";cssFloat="left";marginLeft="10px";marginBottom="5px";textAlign="center";padding="1px 6px";backgroundImage="url(/static/images/map_control_bg.png)";font="small-caps bold 1em Arial";letterSpacing="0.1em";color="#0f557a";}
EventListeners.add(b,"click",that.clickHandler_MapControl);}};function generateMapLegend()
{var mapContainer=map.getContainer();var container=document.createElement("div");container.className=i18n.translate(CSS_MAP_LEGEND);container.id="mapLegend";container.innerHTML=i18n.translate('Spitalarztvertretung')+'<br/>';container.innerHTML+=i18n.translate('Praxisvertretung')+'<br/>';container.innerHTML+=i18n.translate('Praxisübernahme')+'<br/>';container.innerHTML+=i18n.translate('med. Personal');mapContainer.appendChild(container);}
function createMarker(point,dataNode,postType)
{var letteredIcon;if(postType.substr(0,3)==='sav'){letteredIcon=new GIcon(map.spitalarztIcon);}else if(postType.substr(0,2)==='pv'){letteredIcon=new GIcon(map.standinIcon);}else if(postType.substr(0,2)==='pu'){letteredIcon=new GIcon(map.takeoverIcon);}else{letteredIcon=new GIcon(map.medStaffIcon);}
markerOptions={icon:letteredIcon};var marker=new GMarker(point,markerOptions);marker.listId=dataNode.id;GEvent.addListener(marker,'click',function(){$$(CLASS_VIEW).toggleListEntry(marker.listId);$$(CLASS_VIEW).highlightMarker(marker.listId);marker.setImage('static/images/loader.gif');$$(CLASS_MAP).gotoMarker(marker);});var markerInfoWindow=null;GEvent.addListener(marker,'mouseover',function(e){jQuery("#map").mouseover(function(e){if(dataNode.title==undefined){return;}
jQuery("#map").unbind("mouseover");var mapContainer=map.getContainer();markerInfoWindow=document.createElement("div");markerInfoWindow.className=CSS_MAP_INFOWINDOW;markerInfoWindow.id="markerInfo";markerInfoWindow.style.left=e.pageX-this.offsetLeft+2+"px";markerInfoWindow.style.top=e.pageY-this.offsetTop+"px";var d='<h4>'+dataNode.title+'</h4>';d=d+'<b>'+i18n.translate('Arbeitsort')+': </b> '+str_replace("'","´",dataNode.location_name)+', '+dataNode.canton+'<br/>';d=d+'<b>'+i18n.translate('Anstellungsverhältnis')+': </b> '+dataNode.post_timescale+'<br/>';d=d+'<b>'+i18n.translate('Stellenantritt')+': </b> '+dataNode.post_start_display+'<br/>';d=d+'<b>'+i18n.translate('Pensum')+': </b> '+((dataNode.post_percent_min==100)?'100%':dataNode.post_percent_min+' - '+dataNode.post_percent_max+"%");markerInfoWindow.innerHTML=i18n.translate(d)+'<br/>';mapContainer.appendChild(markerInfoWindow);})});GEvent.addListener(marker,'mouseout',function(){var mapContainer=map.getContainer();mapContainer.removeChild(markerInfoWindow);});return marker;};function changeInfoWinState(tabContent,tab,status)
{if(status==SHOW){tabContent.style.display="block";tabContent.style.position="relative";tab.style.backgroundImage="url(/static/images/extinfowindow_tab_on.png)";tab.style.color="#0f557a";tab.style.cursor="default";}
else{tabContent.style.display="none";tabContent.style.position="absolute";tab.style.backgroundImage="url(/static/images/extinfowindow_tab_off.png)";tab.style.color="#ffffff";tab.style.cursor="pointer";}};this.init=function(dataNode){showingDetails=(dataNode==undefined)?false:true;mapCreate(dataNode);};this.mapResize=function(){var winHeight=jQuery(window).height();var resultsMargin=(!showingDetails)?220:115;jQuery('#map').height(winHeight-resultsMargin);jQuery('#lcontainer').height(winHeight-resultsMargin);jQuery('#results').height(jQuery('#lcontainer').height()-40);var resultsListMargin=(!showingDetails)?242:137;jQuery('#resultlistcontainer tbody.scrollContent').height(winHeight-resultsListMargin);var mapLegendMargin=(!showingDetails)?298:193;jQuery('#mapLegend').css("top",(winHeight-mapLegendMargin)+"px");};this.mapUnload=function(){GUnload();};this.removeMarkers=function(markers){for(var i=0;i<markers.length;i++){if(typeof markers[i]!='undefined'){map.removeOverlay(markers[i]);}}}
this.populateMarkers=function(dataNode)
{var markers=[];for(var i=0;i<dataNode.length;i++)
{var data=dataNode[i];var point=new GLatLng(data.latitude,data.longitude);var marker=createMarker(point,data,data.post_type_id);map.addOverlay(marker);markers[data.id]=marker;}
return markers;}
this.gotoMarker=function(marker)
{panFlag=true;markerImage=marker.getIcon().image;markerImageExtension=markerImage.substr(-4);markerImage=markerImage.substr(0,markerImage.length-4)+"_hl"+markerImageExtension;marker.setImage(markerImage);map.panTo(marker.getLatLng());};this.resetHighlights=function(markers)
{for(var n in markers)
{marker=markers[n];if(marker.listId!=undefined)
{var markerImage=marker.getIcon().image;marker.setImage(markerImage);}}};this.retrieveData=function(bounds)
{var southwest=bounds.getSouthWest();var northeast=bounds.getNorthEast();var url=ba.webroot+"/post/read.json?coordinates[sw][long]="+southwest.lng()+"&coordinates[sw][lat]="+southwest.lat()+"&coordinates[ne][long]="+northeast.lng()+"&coordinates[ne][lat]="+northeast.lat();$$(CLASS_VIEW).showLoader();var paramString=$$(CLASS_FILTERS).getParameterString();if(paramString!="")
{url+=paramString;}
Loader.loadJSON(url,"post_loaded",$$(CLASS_VIEW).eventHandler);};this.clickHandler_MapControl=function(event){map.setMapType(event.target.view);};}
function Resultview(){var that=this;var ID_RESULTHEADER="resultHeader_";var ID_RESULTCONTENT="resultContent_";var ICON_OPEN="/static/images/open.gif";var ICON_CLOSE="/static/images/close.gif";var ICON_LOADER="/static/images/loader.gif";var STR_OPEN="open";var STR_CLOSE="close";var currentId=null;var currentData=null;var markers=null;var ELEMENT_DIV="DIV";function populateList(dataNode){var container=$("results");that.deleteResults(container);if(dataNode.length<1){jQuery('#results').html('<div class="info">'+i18n.translate('Es sind keine entsprechende Inserate vorhanden.')+'</div>');that.hideLoader();}else{var headstyle="even";for(var i=dataNode.length-1;i>=0;i--){data=dataNode[i];headstyle=(headstyle=="odd")?"even":"odd";header=document.createElement(ELEMENT_DIV);header.className=headstyle;header.style.cursor="pointer";header.id=ID_RESULTHEADER+data.id;img=document.createElement("img");img.src=ICON_OPEN;img.alt=STR_OPEN;header.appendChild(img);var shortTitle=data.post_type;shortTitle=shortTitle+" ("+((data.post_percent_min=="100")?"100%":data.post_percent_min+" - "+data.post_percent_max+"%")+")";shortTitle=shortTitle+", "+data.location_name+" ("+data.canton+")";shortTitle=shortTitle+", "+i18n.translate('ab')+" "+data.post_start_display;span=document.createElement("span");if(jQuery.browser.msie==false)
span.className="shortDescription";span.innerHTML=shortTitle;header.appendChild(span);content=document.createElement(ELEMENT_DIV);content.className="closed";content.id=ID_RESULTCONTENT+data.id;var d='<h4>'+data.title+'</h4>';d=d+'<p>'+str_replace("\r\n","<br/>",data.body)+'</p>';d=d+'<p><b>'+i18n.translate('Arbeitsort:')+'</b> '+data.location_name+', '+data.canton+'</p>';d=d+'<p><b>'+i18n.translate('Anstellungsverhältnis:')+'</b> '+data.post_timescale+'</p>';d=d+'<p><b>'+i18n.translate('Stellenantritt:')+'</b> '+data.post_start_display+'</p>';if(data.post_end_display){d=d+'<p><b>'+i18n.translate('Stellenende:')+'</b> '+data.post_end_display+'</p>';}
d=d+'<p><b>'+i18n.translate('Pensum:')+'</b> '+((data.post_percent_min==100)?'100%':data.post_percent_min+' - '+data.post_percent_max+"%")+'</p>';d=d+'<p><b>'+i18n.translate('Interessiert? Kontaktieren Sie jetzt den Anbieter:')+'</b></p>';d=d+'<p>'+i18n.translate('Bitte beachten Sie, dass alle Verhandlungen und Abmachungen bilateral zwischen Sucher und Anbieter stattfinden.');d=d+' '+ba.htmlspecialchars_decode(i18n.translate('msg_js_aboutlink'))+'</p>';var kontakt=createAddress(data);if(kontakt!=''){d=d+'<p><b>'+i18n.translate('Kontakt')+'</b><br/>'+data.contact_name+"<br/>"+kontakt+'</p>';}
if(data.contact_telephone1!=null){d=d+'<p><b>'+i18n.translate('Telefon:')+' </b> '+data.contact_telephone1+'<br/></p>';}
var imageRootNavi=ba.webrootStatic+'images/navi/'+ba.lang+'/';d=d+'<p><a href="'+ba.webrootLang+'post/contact/'+data.id+'/"><span class="multiBgBlue"  border="0">'+i18n.translate('KONTAKT AUFNEHMEN')+'</span></a></p>';d=d+'<p><a href="'+ba.webrootLang+'post/recommend/'+data.id+'/"><span class="multiBgBlue" border="0" >'+i18n.translate('INSERAT EMPFEHLEN')+'</span></a></p>';content.innerHTML=d;container.appendChild(header);container.appendChild(content);}
addListEvents();}};function createAddress(data){var str=(data.contact_address1==undefined||data.contact_address1=="")?"":data.contact_address1+"<br/>";str+=(data.contact_address2==undefined||data.contact_address2=="")?"":data.contact_address2+"<br/>";str+=(data.contact_zip==undefined||data.contact_zip=="")?"":data.contact_zip+" ";str+=(data.contact_city==undefined||data.contact_city=="")?"":data.contact_city;return str;}
function addListEvents(){var trArray=jQuery("div").get();for(var i=0;i<trArray.length;i++){el=trArray[i];if(el.id.indexOf(ID_RESULTHEADER)!==-1){EventListeners.add(el,"click",that.resultClickHandler);}}
that.hideLoader();};this.showLoader=function()
{container=$("results");this.deleteResults(container);container.className="scrollContentLoader";}
this.hideLoader=function()
{container=$("results");container.className="";}
this.deleteResults=function(container){container.innerHTML="";return true;};this.updateRssHref=function(parameters){if(parameters!==''){jQuery('#rsslink,#rsslinkhead').attr('href',ba.rssBaseHref+'?'+parameters);}}
this.updateEmailHref=function(parameters){if(parameters!==''){jQuery('#subscriptionlink,#subscriptionlink2').attr('href',ba.subscriptionBaseHref+'?'+parameters);}}
this.updateBookmarkHref=function(parameters){}
this.eventHandler=function(event)
{var dataArray=event.data.posts;gMap=$$(CLASS_MAP);if(markers!=null){gMap.removeMarkers(markers);}
markers=gMap.populateMarkers(dataArray);populateList(dataArray);currentData=dataArray;var paramString=$$(CLASS_FILTERS).getParameterString();$$(CLASS_VIEW).updateRssHref(paramString);$$(CLASS_VIEW).updateEmailHref(paramString);$$(CLASS_VIEW).updateBookmarkHref(paramString);};this.resultClickHandler=function(event)
{var target=event.target;while(true){if(target.nodeName==ELEMENT_DIV)
{break;}
target=target.parentNode;}
var id=target.id.substring(target.id.indexOf("_")+1);$$(CLASS_VIEW).toggleListEntry(id);$$(CLASS_VIEW).highlightMarker(id);};this.highlightMarker=function(id){$$(CLASS_VIEW).resetHighlights();$$(CLASS_MAP).gotoMarker(markers[id]);}
this.resetHighlights=function(){$$(CLASS_MAP).resetHighlights(markers);}
this.toggleListEntry=function(id){if(currentId!=id&&currentId!=null&&$(ID_RESULTHEADER+currentId)!=null)
{img=$(ID_RESULTHEADER+currentId).childNodes[0];img.src=ICON_OPEN;img.alt=STR_OPEN;content=$(ID_RESULTCONTENT+currentId);content.className="closed";jQuery('#'+ID_RESULTHEADER+currentId).removeClass('active');}
if($(ID_RESULTHEADER+id)!=null){img=$(ID_RESULTHEADER+id).childNodes[0];if(img.alt==STR_OPEN){img.src=ICON_CLOSE;img.alt=STR_CLOSE;jQuery('#'+ID_RESULTHEADER+id).addClass('active');}else{img.src=ICON_OPEN;img.alt=STR_OPEN;jQuery('#'+ID_RESULTHEADER+currentId).removeClass('active');}
content=$(ID_RESULTCONTENT+id);content.className=(content.className=="closed")?"open":"closed";currentId=id;}}}
var map=null;var geocoder=null;var lastAddress='';var cantonMapping={'Aargau':'AG','Appenzell Innerrhoden':'AI','Appenzell Ausserrhoden':'AR','Basel-Stadt':'BS','Basel-Land':'BL','Bern':'BE','Fribourg':'FR','Genève':'GE','Glarus':'GL','Graubünden':'GR','Jura':'JU','Luzern':'LU','Neuchâtel':'NE','Nidwalden':'NW','Obwalden':'OW','Schaffhausen':'SH','Schwyz':'SZ','Sankt Gallen':'SG','Solothurn':'SO','Ticino':'TI','Thurgau':'TG','Uri':'UR','Vaud':'VD','Valais':'VS','Zug':'ZG','Zürich':'ZH'};function initForm(){jQuery('#postDescription_post_start').datepicker(ba.dpOptions);jQuery('#postDescription_post_end').datepicker(ba.dpOptions);if(jQuery('#postDescription_post_end').val()===''){jQuery('#postDescription_post_end').parent().hide();}else{jQuery('#postDescription_befristetcb')[0].checked=true;}
jQuery('#postDescription_befristetcb').change(function(){if(jQuery('#postDescription_befristetcb:checked').length>0){jQuery('#postDescription_post_end').parent().show();}else{jQuery('#postDescription_post_end').val('');jQuery('#postDescription_post_end').parent().hide();}});jQuery('#postDescription_post_percent_min').change(function(){var max=parseInt(jQuery('#postDescription_post_percent_max').val());var min=parseInt(jQuery('#postDescription_post_percent_min').val());if(max<min){jQuery('#postDescription_post_percent_max').val(min);}});jQuery('#postDescription_post_percent_max').change(function(){var max=parseInt(jQuery('#postDescription_post_percent_max').val());var min=parseInt(jQuery('#postDescription_post_percent_min').val());if(max<min){jQuery('#postDescription_post_percent_min').val(max);}});}
function showGeocoderError(){map.clearOverlays();map.returnToSavedPosition();jQuery('#location_address').val('');jQuery('#location_zip').val('');jQuery('#location_location_name').val('');jQuery('#location_canton').val('');jQuery('#location_latitude').val('');jQuery('#location_longitude').val('');jQuery('#geocoder_info').text(i18n.translate('Die angegebene Adresse konnte nicht lokalisiert werden.'));jQuery('#geocoder_info').addClass('error');}
function showAddress(){var address=jQuery('#location_geocoder').val();if(geocoder){geocoder.getLocations(address,function(locations){if(locations.Status.code===200){var place=locations.Placemark[0];var point=new GLatLng(place.Point.coordinates[1],place.Point.coordinates[0]);var country='';var canton='';var city='';var postalCode='';var streetAddress='';var locality={};if(place.AddressDetails.Country.CountryNameCode==='CH'||place.AddressDetails.Country.CountryNameCode==='LI'){if(typeof place.AddressDetails.Country.AdministrativeArea!=='undefined'){if(typeof place.AddressDetails.Country.AdministrativeArea.Locality!=='undefined'){locality=place.AddressDetails.Country.AdministrativeArea.Locality;}
if(typeof place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea!=='undefined'){locality=place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality;}
if(locality!==null){city=locality.LocalityName;if(typeof locality.PostalCode!=='undefined'){postalCode=locality.PostalCode.PostalCodeNumber;}
if(typeof locality.Thoroughfare!=='undefined'){streetAddress=locality.Thoroughfare.ThoroughfareName;}}
canton=cantonMapping[place.AddressDetails.Country.AdministrativeArea.AdministrativeAreaName];}
jQuery('#location_address').val(streetAddress);jQuery('#location_zip').val(postalCode);jQuery('#location_location_name').val(city);jQuery('#location_canton').val(canton);jQuery('#location_latitude').val(place.Point.coordinates[1]);jQuery('#location_longitude').val(place.Point.coordinates[0]);map.clearOverlays();map.setCenter(point,15);var marker=new GMarker(point,{draggable:true});map.addOverlay(marker);GEvent.addListener(marker,"dragend",function(){var latLng=marker.getLatLng();jQuery('#location_latitude').val(latLng.lat());jQuery('#location_longitude').val(latLng.lng());});jQuery('#geocoder_info').text(i18n.translate('Bei Bedarf bitte die Position der Adresse in der Karte durch Verschieben der Markierung korrigieren.'));jQuery('#geocoder_info').removeClass('error');}else{showGeocoderError();}}else{showGeocoderError();}});}}
function initGeocoder(){if(GBrowserIsCompatible()){map=new GMap2(document.getElementById("geocoder_map"));map.addControl(new GSmallMapControl());map.addControl(new GMapTypeControl());map.setCenter(new GLatLng(46.8,8.3),7,G_HYBRID_MAP);map.savePosition();geocoder=new GClientGeocoder();geocoder.setBaseCountryCode('ch');if(jQuery('#location_latitude').val()!==''&&jQuery('#location_longitude').val()!==''){var point=new GLatLng(jQuery('#location_latitude').val(),jQuery('#location_longitude').val());map.setCenter(point,15);var marker=new GMarker(point,{draggable:true});map.addOverlay(marker);}
jQuery('#location_geocoder').bind('keypress',function(e){if(e.which===13){e.preventDefault();showAddress();}});jQuery('#location_geocoder').bind('keyup',function(){if(lastAddress!==jQuery('#location_geocoder').val()){if(typeof(search_timeout)!=='undefined'){clearTimeout(search_timeout);}
search_timeout=setTimeout(function(){search_timeout=undefined;showAddress();},500);}
lastAddress=jQuery('#location_geocoder').val();});}}
function Filter(){var that=this;var TIMEOUT_DROPDOWN=500;var TIMEOUT_ELECTING=1000;var CSS_BUTTON_SELECTIONS="filterSelections";var CSS_DROPDOWN="dropDowns";var CSS_DROPDOWN_CANDIDATE="dropDownCandidate";var CSS_DROPDOWN_ELECTED="dropDownElected";var CSS_DROPDOWN_HEADING="dropDownHeading";var CSS_DROPDOWN_LIST_SPACER="dropDownListSpacer";var CSS_DROPDOWN_SLIDER_SPACER="dropDownSliderSpacer";var CSS_DROPDOWN_SLIDER_CONTAINER="dropDownSliderContainer";var CSS_DROPDOWN_INPUT="dropDownInput";var CSS_DROPDOWN_INPUT_TITLES="dropDownInputTitles";var CSS_SLIDER="ui-slider";var BUTTONS_FILTER=["filter_canton","filter_posttype","filter_percentage","filter_timescale"];var PREFIX_DROPDOWN="dd_";var ELEMENT_DIV="div";var DATE_FORMAT="d.m.yy";var filterNames=[i18n.translate('KANTON'),i18n.translate('STELLENART'),i18n.translate('PENSUM'),i18n.translate('ZEITRAUM')];var selectionTimer=null;var slider=null;var postTypes=null;var date_from=null;var date_till=null;var parameterString='';this.init=function(event)
{if(event==undefined)
{Loader.loadJSON(ba.webrootLang+"filters/read.json","filters_loaded",$$(CLASS_FILTERS).init);}
else
{createDropDowns();populateFilterData(event.data);}};function createDropDowns()
{for(var i=0;i<BUTTONS_FILTER.length;i++)
{button=$(BUTTONS_FILTER[i]);button.style.cursor="pointer";title=document.createElement(ELEMENT_DIV);title.innerHTML=filterNames[i];button.appendChild(title);selections=document.createElement(ELEMENT_DIV);selections.id=BUTTONS_FILTER[i]+"_selections";selections.className=CSS_BUTTON_SELECTIONS;selections.innerHTML=(i==2)?'(10 - 100%)':i18n.translate('(alle)');button.appendChild(selections);var coords=getElementCoordinates(button);var dimensions=getElementDimensions(button);dropdown=document.createElement(ELEMENT_DIV);dropdown.className=CSS_DROPDOWN;dropdown.id=PREFIX_DROPDOWN+BUTTONS_FILTER[i];document.body.appendChild(dropdown);with(dropdown.style)
{left=coords.left+"px";top=coords.top+dimensions.height+3+"px";width=(dimensions.width-getPaddedWidth(dropdown))+"px";display="none";}
addMenuEventHandlers(button,dropdown);}}
function addMenuEventHandlers(button,dropDown)
{button.onclick=function()
{openDropDown("#"+PREFIX_DROPDOWN+this.id);currentActiveDropDown=this;}
button.onmouseout=function()
{button.timer=window.setTimeout(function(){jQuery(dropDown).hide();},TIMEOUT_DROPDOWN);}
button.onmouseover=function()
{window.clearTimeout(button.timer);button.timer=null;}
dropDown.onmouseout=function()
{button.timer=window.setTimeout(function(){jQuery(dropDown).hide();},TIMEOUT_DROPDOWN);}
dropDown.onmouseover=function()
{window.clearTimeout(button.timer);button.timer=null;}}
function populateFilterData(data)
{var div=$(PREFIX_DROPDOWN+BUTTONS_FILTER[0]);var cantons=data.cantons;cantons.push(i18n.translate('ALLE'));for(var i=0;i<cantons.length;i++)
{var item=document.createElement(ELEMENT_DIV);item.innerHTML=cantons[i];item.className=CSS_DROPDOWN_CANDIDATE;div.appendChild(item);item.onclick=function()
{clearTimeout(selectionTimer);selectionTimer=null;selectionTimer=window.setTimeout(evaluateFilters,TIMEOUT_ELECTING);this.className=(this.className==CSS_DROPDOWN_CANDIDATE)?CSS_DROPDOWN_ELECTED:CSS_DROPDOWN_CANDIDATE;}}
var div=$(PREFIX_DROPDOWN+BUTTONS_FILTER[1]);postTypes=data.post_type_categories.post_type_categories;for(var i=0;i<postTypes.length;i++)
{var parent=postTypes[i];var heading=document.createElement(ELEMENT_DIV);heading.className=CSS_DROPDOWN_HEADING;heading.innerHTML=parent.name;heading.id="cat-"+i;div.appendChild(heading);for(var j=0;j<parent.post_types.length;j++)
{var child=parent.post_types[j];var subitem=document.createElement(ELEMENT_DIV);subitem.className=CSS_DROPDOWN_CANDIDATE;subitem.innerHTML=child.name;subitem.id=i+"-"+child.shortname;div.appendChild(subitem);subitem.onclick=function()
{clearTimeout(selectionTimer);selectionTimer=null;this.className=(this.className==CSS_DROPDOWN_CANDIDATE)?CSS_DROPDOWN_ELECTED:CSS_DROPDOWN_CANDIDATE;selectionTimer=window.setTimeout(evaluateFilters,TIMEOUT_ELECTING);}
heading.onclick=function()
{clearTimeout(selectionTimer);selectionTimer=null;var currentCategory=this.id.split("-")[1];var nodes=this.parentNode.childNodes;for(var i=0;i<nodes.length;i++)
{if(nodes[i].id.split("-")[0]==currentCategory)
{nodes[i].className=(this.selected==undefined||this.selected==false)?CSS_DROPDOWN_ELECTED:CSS_DROPDOWN_CANDIDATE;}}
this.selected=(this.selected==undefined||this.selected==false)?true:false;selectionTimer=window.setTimeout(evaluateFilters,TIMEOUT_ELECTING);}}
var fillerspan=document.createElement(ELEMENT_DIV);fillerspan.innerHTML=" ";fillerspan.className=CSS_DROPDOWN_LIST_SPACER;div.appendChild(fillerspan);}
var alleSpan=document.createElement(ELEMENT_DIV);alleSpan.innerHTML=i18n.translate('ALLE');alleSpan.className=CSS_DROPDOWN_CANDIDATE;alleSpan.onclick=function()
{clearTimeout(selectionTimer);selectionTimer=null;this.className=(this.className==CSS_DROPDOWN_CANDIDATE)?CSS_DROPDOWN_ELECTED:CSS_DROPDOWN_CANDIDATE;selectionTimer=window.setTimeout(evaluateFilters,TIMEOUT_ELECTING);}
div.appendChild(alleSpan);var div=$(PREFIX_DROPDOWN+BUTTONS_FILTER[2]);div.style.width="240px";div.style.marginLeft="-45px";div.style.backgroundColor="transparent";spacerdiv=document.createElement(ELEMENT_DIV);spacerdiv.className=CSS_DROPDOWN_SLIDER_SPACER
div.appendChild(spacerdiv);actualdiv=document.createElement(ELEMENT_DIV);actualdiv.className=CSS_DROPDOWN_SLIDER_CONTAINER;div.appendChild(actualdiv);spacer=document.createElement(ELEMENT_DIV);spacer.className=CSS_DROPDOWN_LIST_SPACER;actualdiv.appendChild(spacer);slider=document.createElement(ELEMENT_DIV);slider.id="percentage-slider";slider.className=CSS_SLIDER+"-bg";slider1=document.createElement(ELEMENT_DIV);slider1.className=CSS_SLIDER+"-handle";slider2=document.createElement(ELEMENT_DIV);slider2.className=CSS_SLIDER+"-handle";slider2.style.left="190px";actualdiv.appendChild(slider);slider.appendChild(slider1);slider.appendChild(slider2);var selection=$(BUTTONS_FILTER[2]+"_selections");jQuery(slider).slider({steps:11,minValue:10,maxValue:110,range:true,slide:function(e,ui)
{var minPercent=Filter.getHandleValue(jQuery(slider).slider("value",0),10);var maxPercent=Filter.getHandleValue(jQuery(slider).slider("value",1),100);selection.innerHTML='('+minPercent+' - '+maxPercent+'%)';},change:function(e,ui)
{clearTimeout(selectionTimer);selectionTimer=null;selectionTimer=window.setTimeout(evaluateFilters,TIMEOUT_ELECTING);}});var div=$(PREFIX_DROPDOWN+BUTTONS_FILTER[3]);var button=$(BUTTONS_FILTER[3]);div.style.textAlign="center";date_from_textnode=document.createElement("div");date_from_textnode.className=CSS_DROPDOWN_INPUT_TITLES;date_from_textnode.innerHTML=i18n.translate('Von:');date_from=document.createElement("input");date_from.type="text";date_from.className=CSS_DROPDOWN_INPUT;date_till_textnode=document.createElement("div");date_till_textnode.className=CSS_DROPDOWN_INPUT_TITLES;date_till_textnode.innerHTML=i18n.translate('Bis:');date_till=document.createElement("input");date_till.type="text";date_till.className=CSS_DROPDOWN_INPUT;div.appendChild(date_from_textnode);div.appendChild(date_from);div.appendChild(date_till_textnode);div.appendChild(date_till);var dpOptions={yearRange:'-0:+10',speed:"",dateFormat:DATE_FORMAT,closeText:'X',clearText:'',prevText:'<',nextText:'>',firstDay:1,currentText:i18n.translate('Heute'),dayNamesMin:[i18n.translate('So'),i18n.translate('Mo'),i18n.translate('Di'),i18n.translate('Mi'),i18n.translate('Do'),i18n.translate('Fr'),i18n.translate('Sa')],monthNames:[i18n.translate('Januar'),i18n.translate('Februar'),i18n.translate('März'),i18n.translate('April'),i18n.translate('Mai'),i18n.translate('Juni'),i18n.translate('Juli'),i18n.translate('August'),i18n.translate('September'),i18n.translate('Oktober'),i18n.translate('November'),i18n.translate('Dezember')],beforeShow:function(){window.clearTimeout(div.timer);div.timer=null;window.clearTimeout(div.timer);selectionTimer=null;div.onmouseout=function(){};},onClose:function(dateValue){button.timer=window.setTimeout(function(){jQuery(div).hide();},TIMEOUT_DROPDOWN);selectionTimer=window.setTimeout(evaluateFilters,TIMEOUT_ELECTING);div.onmouseout=function(){button.timer=window.setTimeout(function(){jQuery(div).hide();},TIMEOUT_DROPDOWN);}}};jQuery(date_from).datepicker(dpOptions);jQuery(date_till).datepicker(dpOptions);}
function evaluateFilters()
{var div=$(PREFIX_DROPDOWN+BUTTONS_FILTER[0]);var selection=$(BUTTONS_FILTER[0]+"_selections");var cantons=new Array();var selectionCounter=0;var selectedAll=false;for(var i=0;i<div.childNodes.length;i++)
{child=div.childNodes[i];if(child.className==CSS_DROPDOWN_ELECTED)
{selectionCounter++;}
if(child.className==CSS_DROPDOWN_ELECTED&&child.innerHTML==i18n.translate('ALLE'))
{selectedAll=true;child.className=CSS_DROPDOWN_CANDIDATE;}
if(child.className==CSS_DROPDOWN_ELECTED&&cantons.inArray(child.innerHTML)==false)
{cantons.push(child.innerHTML);}}
selection.innerHTML=(selectionCounter!=0&&selectedAll==false)?i18n.translate2('({0} ausgewählt)',[selectionCounter]):i18n.translate('(alle)');if(selectedAll==true)
{for(var i=0;i<div.childNodes.length;i++)
{div.childNodes[i].className=CSS_DROPDOWN_CANDIDATE;}
cantons=[];}
var div=$(PREFIX_DROPDOWN+BUTTONS_FILTER[1]);var selection=$(BUTTONS_FILTER[1]+"_selections");var postTypes=new Array();selectionCounter=0;selectedAll=false;for(var i=0;i<div.childNodes.length;i++)
{child=div.childNodes[i];value=child.id.split("-")[1];if(child.className==CSS_DROPDOWN_ELECTED)
{selectionCounter++;}
if(child.className==CSS_DROPDOWN_ELECTED&&child.innerHTML==i18n.translate('ALLE'))
{selectedAll=true;child.className=CSS_DROPDOWN_CANDIDATE;}
if(child.className==CSS_DROPDOWN_ELECTED&&postTypes.inArray(value)==false)
{postTypes.push(value);}}
selection.innerHTML=(selectionCounter!=0&&selectedAll==false)?i18n.translate2('({0} ausgewählt)',[selectionCounter]):i18n.translate('(alle)');if(selectedAll==true)
{for(var i=0;i<div.childNodes.length;i++)
{child=div.childNodes[i];if(child.className!=CSS_DROPDOWN_HEADING&&child.className!=CSS_DROPDOWN_LIST_SPACER)
child.className=CSS_DROPDOWN_CANDIDATE;}
postTypes=[];}
var minPercent=Filter.getHandleValue(jQuery(slider).slider("value",0),10);var maxPercent=Filter.getHandleValue(jQuery(slider).slider("value",1),100);var selection=$(BUTTONS_FILTER[3]+"_selections");selection.innerHTML='';if(date_from.value!="")
{var fromArr=date_from.value.split(".");var fromDate=fromArr[2]+"-"+fromArr[1]+"-"+fromArr[0];}
if(date_till.value!="")
{var tillArr=date_till.value.split(".");var tillDate=tillArr[2]+"-"+tillArr[1]+"-"+tillArr[0];}
if(date_from.value!=""&&date_till.value==""){selection.innerHTML=i18n.translate2('(ab {0})',[date_from.value]);}else if(date_from.value!=""&&date_till.value!=""){selection.innerHTML=i18n.translate2('({0} bis {1})',[date_from.value,date_till.value]);}else if(date_from.value===""&&date_till.value!=""){selection.innerHTML=i18n.translate2('(bis {0})',[date_till.value]);}else if(date_from.value==""&&date_till.value==""){selection.innerHTML=i18n.translate('(alle)');}
var postString=ba.webrootLang+"post/read.json?";parameterString="";if(cantons.length>0)
{parameterString+="&canton[]="+cantons.join("&canton[]=");}
if(postTypes.length>0)
{parameterString+="&posttype[]="+postTypes.join("&posttype[]=");}
parameterString+="&percentage[min]="+minPercent+"&percentage[max]="+maxPercent;if(date_from.value!=""&&date_till.value=="")
{parameterString+="&timescale[start]="+fromDate;}
else if(date_from.value!=""&&date_till.value!="")
{parameterString+="&timescale[start]="+fromDate+"&timescale[end]="+tillDate;}
postString+=parameterString.substr(1);$$(CLASS_VIEW).showLoader();Loader.loadJSON(postString,"post_loaded",$$(CLASS_VIEW).eventHandler);}
function closeDropDown(element)
{}
function openDropDown(element)
{jQuery(element).show();}
this.getParameterString=function()
{return parameterString;}
this.getHandleValue=function(value,defaultVal){value=(isNaN(value))?defaultVal:value;if(value%10!=0)value=value+10-value%10;value=Math.min(100,Math.max(10,value));return value;}}
Filter.getHandleValue=function(value,defaultVal){value=(isNaN(value))?defaultVal:value;if(value%10!=0)value=value+10-value%10;value=Math.min(100,Math.max(10,value));return value;}
