function ExtInfoWindow(marker,windowId,html,opt_opts){this.html_=html;this.marker_=marker;this.infoWindowId_=windowId;this.options_=(typeof opt_opts=='undefined'||opt_opts===null)?{}:opt_opts;this.ajaxUrl_=this.options_.ajaxUrl==null?null:this.options_.ajaxUrl;this.callback_=this.options_.ajaxCallback==null?null:this.options_.ajaxCallback;this.maxContent_=this.options_.maxContent==null?null:this.options_.maxContent;this.maximizeEnabled_=this.maxContent_==null?false:true;this.isMaximized_=false;this.borderSize_=this.options_.beakOffset==null?0:this.options_.beakOffset;this.paddingX_=this.options_.paddingX==null?0+this.borderSize_:this.options_.paddingX+this.borderSize_;this.paddingY_=this.options_.paddingY==null?0+this.borderSize_:this.options_.paddingY+this.borderSize_;this.maxPanning_=this.options_.maxPanning==null?500:this.options_.maxPanning;this.noCloseOnClick_=this.options_.noCloseOnClick==null?false:this.options_.noCloseOnClick;this.map_=null;this.container_=document.createElement('div');this.container_.style.position='relative';this.container_.style.display='none';this.contentDiv_=document.createElement('div');this.contentDiv_.id=this.infoWindowId_+'_contents';this.contentDiv_.innerHTML=this.html_;this.contentDiv_.style.display='block';this.wrapperDiv_=document.createElement('div');this.isRepositioning=false;this.triggerWindowOpenEvent=false};ExtInfoWindow.prototype=new GOverlay();ExtInfoWindow.prototype.initialize=function(map){this.map_=map;if(this.maximizeEnabled_){this.maxWidth_=this.map_.getSize().width*0.9;this.maxHeight_=this.map_.getSize().height*0.9};this.defaultStyles={containerWidth:this.map_.getSize().width/2,borderSize:1};this.wrapperParts={tl:{t:0,l:0,w:0,h:0,domElement:null},t:{t:0,l:0,w:0,h:0,domElement:null},tr:{t:0,l:0,w:0,h:0,domElement:null},l:{t:0,l:0,w:0,h:0,domElement:null},r:{t:0,l:0,w:0,h:0,domElement:null},bl:{t:0,l:0,w:0,h:0,domElement:null},b:{t:0,l:0,w:0,h:0,domElement:null},br:{t:0,l:0,w:0,h:0,domElement:null},beak:{t:0,l:0,w:0,h:0,domElement:null},close:{t:0,l:0,w:0,h:0,domElement:null}};if(this.maximizeEnabled_){this.wrapperParts.max={t:0,l:0,w:0,h:0,domElement:null};this.wrapperParts.min={t:0,l:0,w:0,h:0,domElement:null}};for(var i in this.wrapperParts){var tempElement=document.createElement('div');tempElement.id=this.infoWindowId_+'_'+i;document.body.appendChild(tempElement);tempElement=document.getElementById(this.infoWindowId_+'_'+i);var tempWrapperPart=this.wrapperParts[i];tempWrapperPart.w=parseInt(this.getStyle_(tempElement,'width'),10);tempWrapperPart.h=parseInt(this.getStyle_(tempElement,'height'),10);document.body.removeChild(tempElement)};for(var i in this.wrapperParts){if(i=='close')this.wrapperDiv_.appendChild(this.contentDiv_);var wrapperPartsDiv=null;if(this.wrapperParts[i].domElement==null){wrapperPartsDiv=document.createElement('div');this.wrapperDiv_.appendChild(wrapperPartsDiv)}else wrapperPartsDiv=this.wrapperParts[i].domElement;wrapperPartsDiv.id=this.infoWindowId_+'_'+i;wrapperPartsDiv.style.position='absolute';wrapperPartsDiv.style.width=this.wrapperParts[i].w+'px';wrapperPartsDiv.style.height=this.wrapperParts[i].h+'px';wrapperPartsDiv.style.top=this.wrapperParts[i].t+'px';wrapperPartsDiv.style.left=this.wrapperParts[i].l+'px';this.wrapperParts[i].domElement=wrapperPartsDiv};this.map_.getPane(G_MAP_FLOAT_PANE).appendChild(this.container_);this.container_.id=this.infoWindowId_;var containerWidth=this.getStyle_(document.getElementById(this.infoWindowId_),'width');this.container_.style.width=(containerWidth==null?this.defaultStyles.containerWidth:containerWidth);this.map_.getContainer().appendChild(this.contentDiv_);this.contentWidth=this.getDimensions_(this.container_).width;this.contentDiv_.style.width=this.contentWidth+'px';this.contentDiv_.style.position='absolute';this.container_.appendChild(this.wrapperDiv_);if(this.maximizeEnabled_)this.minWidth_=this.getDimensions_(this.container_).width;if(this.maximizeEnabled_){thisMap=this.map_;thisMaxWidth=this.maxWidth_;thisMaxHeight=this.maxHeight_;thisContainer=this.container_;thisMaxContent=this.maxContent_;if(this.marker_)GEvent.trigger(this.marker_,'extinfowindowbeforeclose');thisMinWidth=this.container_.style.width;thisMinHeight=this.container_.style.height;GEvent.addDomListener(this.wrapperParts.max.domElement,'click',function(){var infoWindow=thisMap.getExtInfoWindow();infoWindow.container_.style.width=thisMaxWidth+'px';infoWindow.ajaxRequest_(thisMaxContent);if(this.marker_)GEvent.trigger(this.marker_,'extinfowindowclose');infoWindow.isMaximized_=true;infoWindow.redraw(true);infoWindow.toggleMaxMin_()});GEvent.addDomListener(this.wrapperParts.min.domElement,'click',function(){var infoWindow=thisMap.getExtInfoWindow();infoWindow.container_.style.width=thisMinWidth;infoWindow.container_.style.height=thisMinHeight;if(infoWindow.ajaxUrl_!=null){infoWindow.ajaxRequest_(this.ajaxUrl_)}else infoWindow.contentDiv_.innerHTML=infoWindow.html_;infoWindow.isMaximized_=false;infoWindow.redraw(true);infoWindow.resize();infoWindow.toggleMaxMin_()});this.toggleMaxMin_()};var stealEvents=['mousedown','dblclick','DOMMouseScroll','onmousewheel'];for(i=0;i<stealEvents.length;i++)GEvent.bindDom(this.container_,stealEvents[i],this,this.onClick_);if((navigator.userAgent.toLowerCase().indexOf('msie')!=-1&&document.all)||navigator.userAgent.indexOf('Opera')>-1)this.container_.attachEvent('onmousewheel',this.onClick_);if(navigator.userAgent.indexOf('AppleWebKit/')>-1)this.container_.onmousewheel=this.onClick_;this.triggerWindowOpenEvent=true;if(this.ajaxUrl_!=null)this.ajaxRequest_(this.ajaxUrl_)};ExtInfoWindow.prototype.onClick_=function(e){if(navigator.userAgent.toLowerCase().indexOf('msie')!=-1&&document.all){window.event.cancelBubble=true;window.event.returnValue=false}else e.stopPropagation()};ExtInfoWindow.prototype.remove=function(){if(this.map_.getExtInfoWindow()!=null&&this.container_!=null){GEvent.trigger(this.map_,'extinfowindowbeforeclose');GEvent.clearInstanceListeners(this.container_);if(this.container_.outerHTML)this.container_.outerHTML='';if(this.container_.parentNode)this.container_.parentNode.removeChild(this.container_);this.container_=null;GEvent.trigger(this.map_,'extinfowindowclose');this.map_.setExtInfoWindow_(null)}};ExtInfoWindow.prototype.copy=function(){return new ExtInfoWindow(this.marker_,this.infoWindowId_,this.html_,this.options_)};ExtInfoWindow.prototype.redraw=function(force){if(!force||this.container_==null)return;if(typeof this.clientHeight!='undefined'){var contentHeight=this.contentDiv_.clientHeight}else var contentHeight=this.contentDiv_.offsetHeight;this.contentWidth=this.getDimensions_(this.container_).width;this.contentDiv_.style.width=this.container_.style.width;this.contentDiv_.style.left=this.wrapperParts.l.w+'px';this.contentDiv_.style.top=this.wrapperParts.tl.h+'px';this.wrapperParts.tl.t=0;this.wrapperParts.tl.l=0;this.wrapperParts.t.l=this.wrapperParts.tl.w;this.wrapperParts.t.w=(this.wrapperParts.l.w+this.contentWidth+this.wrapperParts.r.w)-this.wrapperParts.tl.w-this.wrapperParts.tr.w;this.wrapperParts.t.h=this.wrapperParts.tl.h;this.wrapperParts.tr.l=this.wrapperParts.t.w+this.wrapperParts.tl.w;this.wrapperParts.l.t=this.wrapperParts.tl.h;this.wrapperParts.l.h=contentHeight;this.wrapperParts.r.l=this.contentWidth+this.wrapperParts.l.w;this.wrapperParts.r.t=this.wrapperParts.tr.h;this.wrapperParts.r.h=contentHeight;this.wrapperParts.bl.t=contentHeight+this.wrapperParts.tl.h;this.wrapperParts.b.l=this.wrapperParts.bl.w;this.wrapperParts.b.t=contentHeight+this.wrapperParts.tl.h;this.wrapperParts.b.w=(this.wrapperParts.l.w+this.contentWidth+this.wrapperParts.r.w)-this.wrapperParts.bl.w-this.wrapperParts.br.w;this.wrapperParts.b.h=this.wrapperParts.bl.h;this.wrapperParts.br.l=this.wrapperParts.b.w+this.wrapperParts.bl.w;this.wrapperParts.br.t=contentHeight+this.wrapperParts.tr.h;this.wrapperParts.beak.l=(this.wrapperParts.l.w+this.wrapperParts.r.w+this.contentWidth)/2-(this.wrapperParts.beak.w/2);this.wrapperParts.beak.t=-this.wrapperParts.beak.h;this.wrapperParts.close.l=this.wrapperParts.tr.l+this.wrapperParts.tr.w-this.wrapperParts.close.w-this.borderSize_;this.wrapperParts.close.t=this.borderSize_;if(this.maximizeEnabled_){this.wrapperParts.max.l=this.wrapperParts.close.l-this.wrapperParts.max.w-5;this.wrapperParts.max.t=this.wrapperParts.close.t;this.wrapperParts.min.l=this.wrapperParts.max.l;this.wrapperParts.min.t=this.wrapperParts.max.t};for(var i in this.wrapperParts){if(i=='close')this.wrapperDiv_.insertBefore(this.contentDiv_,this.wrapperParts[i].domElement);var wrapperPartsDiv=null;if(this.wrapperParts[i].domElement==null){wrapperPartsDiv=document.createElement('div');this.wrapperDiv_.appendChild(wrapperPartsDiv)}else wrapperPartsDiv=this.wrapperParts[i].domElement;wrapperPartsDiv.id=this.infoWindowId_+'_'+i;wrapperPartsDiv.style.position='absolute';wrapperPartsDiv.style.width=this.wrapperParts[i].w+'px';wrapperPartsDiv.style.height=this.wrapperParts[i].h+'px';wrapperPartsDiv.style.top=this.wrapperParts[i].t+'px';wrapperPartsDiv.style.left=this.wrapperParts[i].l+'px';this.wrapperParts[i].domElement=wrapperPartsDiv};var currentMarker=this.marker_,thisMap=this.map_;GEvent.addDomListener(this.wrapperParts.close.domElement,'click',function(){thisMap.closeExtInfoWindow()});var pixelLocation=this.map_.fromLatLngToDivPixel(this.marker_.getLatLng());this.container_.style.position='absolute';var markerIcon=this.marker_.getIcon();this.container_.style.left=(pixelLocation.x-(this.contentWidth/2)-this.wrapperParts.l.w-markerIcon.iconAnchor.x+markerIcon.infoWindowAnchor.x-8)+'px';this.container_.style.top=(pixelLocation.y+8)+'px';this.container_.style.display='block';if(this.triggerWindowOpenEvent)GEvent.trigger(this.map_,'extinfowindowopen');if(this.map_.getExtInfoWindow()!=null&&!this.isRepositioning){this.isRepositioning=true;this.repositionMap_();this.isRepositioning=false}};ExtInfoWindow.prototype.toggleMaxMin_=function(){if(this.wrapperParts.max.domElement!=null&&this.wrapperParts.min.domElement!=null)if(this.isMaximized_){this.wrapperParts.max.domElement.style.display='none';this.wrapperParts.min.domElement.style.display='block'}else{this.wrapperParts.max.domElement.style.display='block';this.wrapperParts.min.domElement.style.display='none'}};ExtInfoWindow.prototype.resize=function(){var tempElement=this.contentDiv_.cloneNode(true);tempElement.id=this.infoWindowId_+'_tempContents';tempElement.style.height='auto';document.body.appendChild(tempElement);tempElement=document.getElementById(this.infoWindowId_+'_tempContents');var contentHeight=tempElement.offsetHeight;document.body.removeChild(tempElement);this.contentDiv_.style.height=contentHeight+'px';var contentWidth=this.container_.offsetWidth,pixelLocation=this.map_.fromLatLngToDivPixel(this.marker_.getPoint()),oldWindowHeight=this.wrapperParts.t.domElement.offsetHeight+this.wrapperParts.l.domElement.offsetHeight+this.wrapperParts.b.domElement.offsetHeight,oldWindowPosTop=this.wrapperParts.t.domElement.offsetTop;this.wrapperParts.l.domElement.style.height=contentHeight+'px';this.wrapperParts.r.domElement.style.height=contentHeight+'px';var newPosTop=this.wrapperParts.b.domElement.offsetTop-contentHeight;this.wrapperParts.l.domElement.style.top=newPosTop+'px';this.wrapperParts.r.domElement.style.top=newPosTop+'px';this.contentDiv_.style.top=newPosTop+'px';windowTHeight=parseInt(this.wrapperParts.t.domElement.style.height,10);newPosTop-=windowTHeight;this.wrapperParts.close.domElement.style.top=newPosTop+this.borderSize_+'px';this.wrapperParts.tl.domElement.style.top=newPosTop+'px';this.wrapperParts.t.domElement.style.top=newPosTop+'px';this.wrapperParts.tr.domElement.style.top=newPosTop+'px';this.repositionMap_()};ExtInfoWindow.prototype.getOptions=function(){return this.options_};ExtInfoWindow.prototype.repositionMap_=function(){var mapPoint=this.map_.fromLatLngToContainerPixel(this.map_.getCenter()),divPoint=this.map_.fromLatLngToDivPixel(this.map_.getCenter()),mapPosition=new GPoint(divPoint.x-mapPoint.x,divPoint.y-mapPoint.y),mapSize=this.map_.getSize(),mapSW=new GPoint(mapPosition.x,mapPosition.y+mapSize.height),mapNE=new GPoint(mapPosition.x+mapSize.width,mapPosition.y),markerPosition=this.map_.fromLatLngToDivPixel(this.marker_.getPoint()),panX=0,panY=0,paddingX=this.paddingX_,paddingY=this.paddingY_,infoWindowAnchor=this.marker_.getIcon().infoWindowAnchor,iconAnchor=this.marker_.getIcon().iconAnchor,windowT=this.wrapperParts.t.domElement,windowL=this.wrapperParts.l.domElement,windowB=this.wrapperParts.b.domElement,windowR=this.wrapperParts.r.domElement,windowBeak=this.wrapperParts.beak.domElement,offsetTop=markerPosition.y-(-infoWindowAnchor.y+100);if(offsetTop<mapNE.y){panY=mapNE.y-offsetTop}else{var offsetBottom=markerPosition.y+(infoWindowAnchor.y+iconAnchor.y+this.getDimensions_(windowBeak).height+this.getDimensions_(windowB).height+this.getDimensions_(windowL).height+this.getDimensions_(windowT).height+this.paddingY_);if(offsetBottom>=mapSW.y)panY=Math.max(-(offsetBottom-mapSW.y),mapNE.y-offsetTop)};var offsetRight=Math.round(markerPosition.x+this.getDimensions_(this.container_).width/2+this.getDimensions_(windowR).width+this.paddingX_+infoWindowAnchor.x-iconAnchor.x);if(offsetRight>mapNE.x){panX=-(offsetRight-mapNE.x)}else{var offsetLeft=-(Math.round((this.getDimensions_(this.container_).width/2-this.marker_.getIcon().iconSize.width/2)+this.getDimensions_(windowL).width+this.borderSize_+this.paddingX_)-markerPosition.x-infoWindowAnchor.x+iconAnchor.x);if(offsetLeft<mapSW.x)panX=mapSW.x-offsetLeft};if((panX!=0||panY!=0)&&this.map_.getExtInfoWindow()!=null)if((panY<0-this.maxPanning_||panY>this.maxPanning_)&&(panX<0-this.maxPanning_||panX>this.maxPanning_)){this.map_.setCenter(this.marker_.getPoint())}else this.map_.panBy(new GSize(panX,panY))};ExtInfoWindow.prototype.ajaxRequest_=function(url){var thisMap=this.map_,thisCallback=this.callback_;GDownloadUrl(url,function(response,status){if(thisMap.getExtInfoWindow()!==null){var infoWindow=document.getElementById(thisMap.getExtInfoWindow().infoWindowId_+'_contents');if(response==null||status==-1){infoWindow.innerHTML='<span class="error">ERROR: The Ajax request failed to get HTML content from "'+url+'"</span>'}else infoWindow.innerHTML=response;if(thisCallback!=null)thisCallback();thisMap.getExtInfoWindow().resize()};GEvent.trigger(thisMap,'extinfowindowupdate')})};ExtInfoWindow.prototype.getDimensions_=function(element){var display=this.getStyle_(element,'display');if(display!='none'&&display!=null)return{width:element.offsetWidth,height:element.offsetHeight};var els=element.style,originalVisibility=els.visibility,originalPosition=els.position,originalDisplay=els.display;els.position='absolute';els.display='block';var originalWidth=element.clientWidth,originalHeight=element.clientHeight;els.display=originalDisplay;els.position=originalPosition;els.visibility=originalVisibility;return{width:originalWidth,height:originalHeight}};ExtInfoWindow.prototype.getStyle_=function(element,style){var found=false;style=this.camelize_(style);if(element.id==this.infoWindowId_&&style=='width'&&element.style.display=='none')element.style.display='';var value=element.style[style];if(!value)if(document.defaultView&&document.defaultView.getComputedStyle){var css=document.defaultView.getComputedStyle(element,null);value=css?css[style]:null}else if(element.currentStyle)value=element.currentStyle[style];if((value=='auto')&&(style=='width'||style=='height')&&(this.getStyle_(element,'display')!='none'))if(style=='width'){value=element.offsetWidth}else value=element.offsetHeight;if(element.id==this.infoWindowId_&&style=='width'&&element.style.display!='none')element.style.display='none';return(value=='auto')?null:value};ExtInfoWindow.prototype.camelize_=function(element){var parts=element.split('-'),len=parts.length;if(len==1)return parts[0];var camelized=element.charAt(0)=='-'?parts[0].charAt(0).toUpperCase()+parts[0].substring(1):parts[0];for(var i=1;i<len;i++)camelized+=parts[i].charAt(0).toUpperCase()+parts[i].substring(1);return camelized};GMap.prototype.ExtInfoWindowInstance_=null;GMap.prototype.ClickListener_=null;GMap.prototype.InfoWindowListener_=null;GMarker.prototype.openExtInfoWindow=function(map,cssId,html,opt_opts){if(map==null){throw'Error in GMarker.openExtInfoWindow: map cannot be null';return false};if(cssId==null||cssId==''){throw'Error in GMarker.openExtInfoWindow: must specify a cssId';return false};map.closeInfoWindow();if(map.getExtInfoWindow()!=null)map.closeExtInfoWindow();if(map.getExtInfoWindow()==null){map.setExtInfoWindow_(new ExtInfoWindow(this,cssId,html,opt_opts));if(map.ClickListener_==null)map.ClickListener_=GEvent.addListener(map,'click',function(event){if(!event&&map.getExtInfoWindow()!=null&&!map.getExtInfoWindow().getOptions().noCloseOnClick)map.closeExtInfoWindow()});if(map.InfoWindowListener_==null)map.InfoWindowListener_=GEvent.addListener(map,'infowindowopen',function(event){if(map.getExtInfoWindow()!=null)map.closeExtInfoWindow()});map.addOverlay(map.getExtInfoWindow())}};GMap2.prototype.openExtInfoWindow=function(point,cssId,html,opt_opts){if(point==null){throw'Error in GMap2.openExtInfoWindow: point cannot be null';return false};if(cssId==null||cssId==''){throw'Error in GMap2.openExtInfoWindow: must specify a cssId';return false};this.closeInfoWindow();if(this.getExtInfoWindow()!=null)this.closeExtInfoWindow();if(this.getExtInfoWindow()==null){var icon=new GIcon(G_DEFAULT_ICON);icon.iconSize=new GSize(0,0);icon.shadowSize=new GSize(0,0);icon.iconAnchor=new GPoint(0,0);icon.infoWindowAnchor=new GPoint(0,0);var marker=new GMarker(point,{hide:true,icon:icon});this.addOverlay(marker);this.setExtInfoWindow_(new ExtInfoWindow(marker,cssId,html,opt_opts));if(this.ClickListener_==null)this.ClickListener_=GEvent.addListener(this,'click',function(event){if(!event&&this.getExtInfoWindow()!=null&&!map.getExtInfoWindow().getOptions().noCloseOnClick){this.closeExtInfoWindow();this.removeOverlay(marker)}});if(this.InfoWindowListener_==null)this.InfoWindowListener_=GEvent.addListener(this,'infowindowopen',function(event){if(this.getExtInfoWindow()!=null){this.closeExtInfoWindow();this.removeOverlay(marker)}});this.addOverlay(this.getExtInfoWindow())}};GMarker.prototype.closeExtInfoWindow=function(map){if(map.getExtInfoWindow()!=null)map.closeExtInfoWindow()};GMap2.prototype.getExtInfoWindow=function(){return this.ExtInfoWindowInstance_};GMap2.prototype.setExtInfoWindow_=function(extInfoWindow){this.ExtInfoWindowInstance_=extInfoWindow};GMap2.prototype.closeExtInfoWindow=function(){if(this.getExtInfoWindow()!=null)this.ExtInfoWindowInstance_.remove()};
(function(){var handlers={},maps={},ajaxoffset=0;Drupal.gmap={getMap:function(mapid){if(maps[mapid]){return maps[mapid]}else{mapid=mapid.split('-').slice(1,-1).join('-');if(maps[mapid])return maps[mapid]};return false},unloadMap:function(mapid){delete maps[mapid]},addHandler:function(handler,callback){if(!handlers[handler])handlers[handler]=[];handlers[handler].push(callback)},globalChange:function(name,userdata){for(var mapid in Drupal.settings.gmap)if(Drupal.settings.gmap.hasOwnProperty(mapid))maps[mapid].change(name,-1,userdata)},setup:function(settings){var obj=this,initcallback=function(mapid){return(function(){maps[mapid].change("bootstrap_options",-1);maps[mapid].change("boot",-1);maps[mapid].change("init",-1);maps[mapid].change("maptypechange",-1);maps[mapid].change("controltypechange",-1);maps[mapid].change("alignchange",-1);maps[mapid].ready=true;maps[mapid].change("ready",-1)})};if(settings||(Drupal.settings&&Drupal.settings.gmap)){var mapid=obj.id.split('-');if(Drupal.settings['gmap_remap_widgets'])if(Drupal.settings['gmap_remap_widgets'][obj.id]){jQuery.each(Drupal.settings['gmap_remap_widgets'][obj.id].classes,function(){jQuery(obj).addClass(this)});mapid=Drupal.settings['gmap_remap_widgets'][obj.id].id.split('-')};var instanceid=mapid.pop();mapid.shift();mapid=mapid.join('-');var control=instanceid.replace(/\d+$/,'');if(!maps[mapid]){if(settings){maps[mapid]=new Drupal.gmap.map(settings)}else maps[mapid]=new Drupal.gmap.map(Drupal.settings.gmap[mapid]);var callback=initcallback(mapid);setTimeout(callback,0)};if(handlers[control])for(var i=0;i<handlers[control].length;i++)handlers[control][i].call(maps[mapid],obj)}}};jQuery.fn.createGMap=function(settings,mapid){return this.each(function(){if(!mapid){mapid='auto'+ajaxoffset+'ajax';ajaxoffset++};settings.id=mapid;$(this).attr('id','gmap-'+mapid+'-gmap0').css('width',settings.width).css('height',settings.height).addClass('gmap-control').addClass('gmap-gmap').addClass('gmap').addClass('gmap-map').addClass('gmap-'+mapid+'-gmap').addClass('gmap-processed').each(function(){Drupal.gmap.setup.call(this,settings)})})}})();Drupal.gmap.factory={};Drupal.gmap.map=function(v){this.vars=v;this.map=undefined;this.ready=false;var _bindings={};this.bind=function(name,callback){if(!_bindings[name])_bindings[name]=[];return _bindings[name].push(callback)-1};this.change=function(name,id,userdata){var c;if(_bindings[name])for(c=0;c<_bindings[name].length;c++)if(c!==id)_bindings[name][c](userdata);if(name!=='all')this.change('all',-1,name,userdata)};this.deferChange=function(name,id,userdata){var obj=this;setTimeout(function(){obj.change(name,id,userdata)},0)}};Drupal.gmap.addHandler('gmap',function(elem){var obj=this,_ib={};_ib.zoom=obj.bind("zoom",function(){obj.map.setZoom(obj.vars.zoom)});_ib.move=obj.bind("move",function(){obj.map.panTo(new GLatLng(obj.vars.latitude,obj.vars.longitude))});_ib.mtc=obj.bind("maptypechange",function(){var i;for(i=0;i<obj.opts.mapTypeNames.length;i++)if(obj.opts.mapTypeNames[i]===obj.vars.maptype){obj.map.setMapType(obj.opts.mapTypes[i]);break}});_ib.width=obj.bind("widthchange",function(w){obj.map.getContainer().style.width=w;obj.map.checkResize()});_ib.height=obj.bind("heightchange",function(h){obj.map.getContainer().style.height=h;obj.map.checkResize()});_ib.ctc=obj.bind("controltypechange",function(){if(obj.currentcontrol)obj.map.removeControl(obj.currentcontrol);if(obj.vars.controltype==='Micro'){obj.map.addControl(obj.currentcontrol=new GSmallZoomControl())}else if(obj.vars.controltype==='Small'){obj.map.addControl(obj.currentcontrol=new GSmallMapControl())}else if(obj.vars.controltype==='Large')obj.map.addControl(obj.currentcontrol=new GLargeMapControl())});obj.bind("bootstrap_options",function(){var opts={};obj.opts=opts;opts.mapTypes=[];opts.mapTypeNames=[];if(obj.vars.baselayers.Map){opts.mapTypes.push(G_NORMAL_MAP);opts.mapTypeNames.push('Map')};if(obj.vars.baselayers.Satellite){opts.mapTypes.push(G_SATELLITE_MAP);opts.mapTypeNames.push('Satellite')};if(obj.vars.baselayers.Hybrid){opts.mapTypes.push(G_HYBRID_MAP);opts.mapTypeNames.push('Hybrid')};if(obj.vars.baselayers.Physical){opts.mapTypes.push(G_PHYSICAL_MAP);opts.mapTypeNames.push('Physical')}});obj.bind("boot",function(){obj.map=new GMap2(elem,obj.opts)});obj.bind("init",function(){var map=obj.map;if(obj.vars.mtc==='standard'){map.addControl(new GMapTypeControl())}else if(obj.vars.mtc==='hier'){map.addControl(new GHierarchicalMapTypeControl())}else if(obj.vars.mtc==='menu')map.addControl(new GMenuMapTypeControl());if(obj.vars.behavior.overview)map.addControl(new GOverviewMapControl());if(obj.vars.behavior.googlebar)map.enableGoogleBar();if(obj.vars.behavior.scale)map.addControl(new GScaleControl());if(obj.vars.behavior.nodrag){map.disableDragging()}else if(!obj.vars.behavior.nokeyboard)obj._kbdhandler=new GKeyboardHandler(map);if(obj.vars.extent){var c=obj.vars.extent,extent=new GLatLngBounds(new GLatLng(c[0][0],c[0][1]),new GLatLng(c[1][0],c[1][1]));obj.vars.latitude=extent.getCenter().lat();obj.vars.longitude=extent.getCenter().lng();obj.vars.zoom=map.getBoundsZoomLevel(extent)};if(obj.vars.behavior.collapsehack)setTimeout(function(){var r=function(){map.checkResize();map.setCenter(new GLatLng(obj.vars.latitude,obj.vars.longitude),obj.vars.zoom)};$(elem).parents('fieldset.collapsible').children('legend').children('a').click(r)},0);map.setCenter(new GLatLng(obj.vars.latitude,obj.vars.longitude),obj.vars.zoom);if(!obj.vars.nocontzoom){map.enableDoubleClickZoom();map.enableContinuousZoom()};if(!obj.vars.behavior.nomousezoom)map.enableScrollWheelZoom();GEvent.addListener(map,"zoomend",function(oldzoom,newzoom){obj.vars.zoom=newzoom;obj.change("zoom",_ib.zoom)});GEvent.addListener(map,"moveend",function(){var coord=map.getCenter();obj.vars.latitude=coord.lat();obj.vars.longitude=coord.lng();obj.change("move",_ib.move)});GEvent.addListener(map,"maptypechanged",function(){if(obj.ready){var type=map.getCurrentMapType(),i;for(i=0;i<obj.opts.mapTypes.length;i++)if(obj.opts.mapTypes[i]===type)obj.vars.maptype=obj.opts.mapTypeNames[i];obj.change("maptypechange",_ib.mtc)}})})});Drupal.gmap.addHandler('zoom',function(elem){var obj=this,binding=obj.bind("zoom",function(){elem.value=obj.vars.zoom});$(elem).change(function(){obj.vars.zoom=parseInt(elem.value,10);obj.change("zoom",binding)})});Drupal.gmap.addHandler('latitude',function(elem){var obj=this,binding=obj.bind("move",function(){elem.value=''+obj.vars.latitude});$(elem).change(function(){obj.vars.latitude=Number(this.value);obj.change("move",binding)})});Drupal.gmap.addHandler('longitude',function(elem){var obj=this,binding=obj.bind("move",function(){elem.value=''+obj.vars.longitude});$(elem).change(function(){obj.vars.longitude=Number(this.value);obj.change("move",binding)})});Drupal.gmap.addHandler('latlon',function(elem){var obj=this,binding=obj.bind("move",function(){elem.value=''+obj.vars.latitude+','+obj.vars.longitude});$(elem).change(function(){var t=this.value.split(',');obj.vars.latitude=Number(t[0]);obj.vars.longitude=Number(t[1]);obj.change("move",binding)})});Drupal.gmap.addHandler('maptype',function(elem){var obj=this,binding=obj.bind("maptypechange",function(){elem.value=obj.vars.maptype});$(elem).change(function(){obj.vars.maptype=elem.value;obj.change("maptypechange",binding)})});(function(){var re=/([0-9.]+)\s*(em|ex|px|in|cm|mm|pt|pc|%)/,normalize=function(str){var ar;if((ar=re.exec(str.toLowerCase())))return ar[1]+ar[2];return null};Drupal.gmap.addHandler('width',function(elem){var obj=this,binding=obj.bind("widthchange",function(w){elem.value=normalize(w)});$(elem).change(function(){var n;if((n=normalize(elem.value))){elem.value=n;obj.change('widthchange',binding,n)}});obj.bind('init',function(){$(elem).change()})});Drupal.gmap.addHandler('height',function(elem){var obj=this,binding=obj.bind("heightchange",function(h){elem.value=normalize(h)});$(elem).change(function(){var n;if((n=normalize(elem.value))){elem.value=n;obj.change('heightchange',binding,n)}});obj.bind('init',function(){$(elem).change()})})})();Drupal.gmap.addHandler('controltype',function(elem){var obj=this,binding=obj.bind("controltypechange",function(){elem.value=obj.vars.controltype});$(elem).change(function(){obj.vars.controltype=elem.value;obj.change("controltypechange",binding)})});if(Drupal.jsEnabled)$(document).unload(GUnload);Drupal.behaviors.GMap=function(context){if(Drupal.settings&&Drupal.settings['gmap_remap_widgets'])jQuery.each(Drupal.settings['gmap_remap_widgets'],function(key,val){$('#'+key).addClass('gmap-control')});$('.gmap-control:not(.gmap-processed)',context).addClass('gmap-processed').each(function(){Drupal.gmap.setup.call(this)})};
Drupal.gmap.addHandler('gmap',function(elem){var obj=this;obj.bind('init',function(){if(obj.vars.behavior.autozoom)obj.bounds=new GLatLngBounds()});obj.bind('addmarker',function(marker){var m=Drupal.gmap.factory.marker(new GLatLng(marker.latitude,marker.longitude),marker.opts);marker.marker=m;GEvent.addListener(m,'click',function(){obj.change('clickmarker',-1,marker)});if(obj.vars.behavior.highlight){GEvent.addListener(m,'mouseover',function(){var highlightColor='#'+obj.vars.styles.highlight_color;highlightMarker(obj.map,marker,'hoverHighlight',highlightColor)});GEvent.addListener(m,'mouseout',function(){unHighlightMarker(obj.map,marker,'hoverHighlight')})};if(obj.vars.behavior.extramarkerevents){GEvent.addListener(m,'mouseover',function(){obj.change('mouseovermarker',-1,marker)});GEvent.addListener(m,'mouseout',function(){obj.change('mouseoutmarker',-1,marker)});GEvent.addListener(m,'dblclick',function(){obj.change('dblclickmarker',-1,marker)})};if(marker.autoclick||(marker.options&&marker.options.autoclick))obj.deferChange('clickmarker',-1,marker);if(obj.vars.behavior.autozoom)obj.bounds.extend(marker.marker.getPoint());if(marker.opts.highlight==1)highlightMarker(obj.map,marker,'viewHighlight',marker.opts.highlightcolor)});obj.bind('clickmarker',function(marker){if(marker.text)if(Drupal.settings.gmap.extinfowindow){marker.marker.openExtInfoWindow(obj.map,"opacity_window",marker.text,{beakOffset:2})}else marker.marker.openInfoWindowHtml(marker.text);if(marker.rmt){var uri=marker.rmt;if(obj.vars.rmtcallback)uri=obj.vars.rmtcallback+'/'+marker.rmt;$.get(uri,{},function(data){if(Drupal.settings.gmap.extinfowindow){marker.marker.openExtInfoWindow(obj.map,"opacity_window",data,{beakOffset:2})}else marker.marker.openInfoWindowHtml(data)})}else if(marker.tabs){var infoWinTabs=[];for(var m in marker.tabs)if(marker.tabs.hasOwnProperty(m))infoWinTabs.push(new GInfoWindowTab(m,marker.tabs[m]));marker.marker.openInfoWindowTabsHtml(infoWinTabs)}else if(marker.link)open(marker.link,'_self')});obj.bind('markersready',function(){if(obj.vars.behavior.autozoom)if(!obj.bounds.isEmpty())obj.map.setCenter(obj.bounds.getCenter(),Math.min(obj.map.getBoundsZoomLevel(obj.bounds),obj.vars.maxzoom))});obj.bind('clearmarkers',function(){if(obj.vars.behavior.autozoom)obj.bounds=new GLatLngBounds()})});
highlightMarker=function(map,currentMarker,highlightID,color){var markerPoint=currentMarker.marker.getPoint(),polyPoints=Array(),mapNormalProj=G_NORMAL_MAP.getProjection(),mapZoom=map.getZoom(),clickedPixel=mapNormalProj.fromLatLngToPixel(markerPoint,mapZoom),polySmallRadius=20,polyNumSides=20,polySideLength=18;for(var a=0;a<(polyNumSides+1);a++){var aRad=polySideLength*a*(Math.PI/180),polyRadius=polySmallRadius,pixelX=clickedPixel.x+polyRadius*Math.cos(aRad),pixelY=clickedPixel.y+polyRadius*Math.sin(aRad),polyPixel=new GPoint(pixelX,pixelY),polyPoint=mapNormalProj.fromPixelToLatLng(polyPixel,mapZoom);polyPoints.push(polyPoint)};map.highlightID=new GPolygon(polyPoints,color,2,0,color,0.5);map.addOverlay(map.highlightID)};unHighlightMarker=function(map,currentMarker,highlightID){if(map.highlightID){map.removeOverlay(map.highlightID);delete map.highlightID}};
Drupal.gmap.factory.marker=function(loc,opts){return new GMarker(loc,opts)};Drupal.gmap.addHandler('gmap',function(elem){var obj=this;obj.bind('addmarker',function(marker){obj.map.addOverlay(marker.marker)});obj.bind('delmarker',function(marker){obj.map.removeOverlay(marker.marker)});obj.bind('clearmarkers',function(){obj.map.clearOverlays()})});
Drupal.gmap.map.prototype.poly={};Drupal.gmap.map.prototype.poly.distance=function(point1,point2){return Math.sqrt(Math.pow(point2.x-point1.x,2)+Math.pow(point2.y-point1.y,2))};Drupal.gmap.map.prototype.poly.computeCircle=function(obj,center,point2){var numSides=36,sideInc=10,convFactor=Math.PI/180,points=[],radius=obj.poly.distance(center,point2);for(var i=0;i<=numSides;i++){var rad=i*sideInc*convFactor,x=center.x+radius*Math.cos(rad),y=center.y+radius*Math.sin(rad);points.push(new GPoint(x,y))};return points};Drupal.gmap.map.prototype.poly.calcPolyPoints=function(center,radM,numPoints,sAngle){if(!numPoints)numPoints=32;if(!sAngle)sAngle=0;var d2r=Math.PI/180.0,r2d=180.0/Math.PI,angleRad=sAngle*d2r,latScale=radM/6378137*r2d,lngScale=latScale/Math.cos(center.latRadians()),angInc=2*Math.PI/numPoints,points=[];for(var i=0;i<numPoints;i++){var lat=parseFloat(center.lat())+latScale*Math.sin(angleRad),lng=parseFloat(center.lng())+lngScale*Math.cos(angleRad);points.push(new GLatLng(lat,lng));angleRad+=angInc};points.push(points[0]);return points};
Drupal.gmap.getIcon=function(setname,sequence){var othimg=['printImage','mozPrintImage','printShadow','transparent'];if(!setname)return G_DEFAULT_ICON;if(!this.gicons)this.gicons={};if(!sequence){if(!this.sequences)this.sequences={};if(!this.sequences[setname])this.sequences[setname]=-1;this.sequences[setname]++;sequence=this.sequences[setname]};if(!this.gicons[setname]){if(!Drupal.gmap.icons[setname])alert('Request for invalid marker set '+setname+'!');this.gicons[setname]=[];var q=Drupal.gmap.icons[setname],p,t;for(var i=0;i<q.sequence.length;i++){t=new GIcon();p=Drupal.gmap.iconpath+q.path;t.image=p+q.sequence[i].f;if(q.shadow.f!==''){t.shadow=p+q.shadow.f;t.shadowSize=new GSize(q.shadow.w,q.shadow.h)};t.iconSize=new GSize(q.sequence[i].w,q.sequence[i].h);t.iconAnchor=new GPoint(q.anchorX,q.anchorY);t.infoWindowAnchor=new GPoint(q.infoX,q.infoY);for(var j=0;j<othimg.length;j++)if(q[othimg[j]]!=='')t[othimg[j]]=p+q[othimg[j]];this.gicons[setname][i]=t};delete Drupal.gmap.icons[setname]};return this.gicons[setname][sequence%this.gicons[setname].length]};Drupal.gmap.iconSetup=function(){Drupal.gmap.icons={};var m=Drupal.gmap.icondata,filef,filew,fileh,files;for(var path in m)if(m.hasOwnProperty(path)){filef=m[path].f;filew=Drupal.gmap.expandArray(m[path].w,filef.length);fileh=Drupal.gmap.expandArray(m[path].h,filef.length);files=[];for(var i=0;i<filef.length;i++)files[i]={f:filef[i],w:filew[i],h:fileh[i]};for(var ini in m[path].i)if(m[path].i.hasOwnProperty(ini))$.extend(Drupal.gmap.icons,Drupal.gmap.expandIconDef(m[path].i[ini],path,files))}};Drupal.gmap.expandArray=function(arr,len){var d=arr[0];for(var i=0;i<len;i++)if(!arr[i]){arr[i]=d}else d=arr[i];return arr};Drupal.gmap.expandIconDef=function(c,path,files){var decomp=['key','name','sequence','anchorX','anchorY','infoX','infoY','shadow','printImage','mozPrintImage','printShadow','transparent'],fallback=['','',[],0,0,0,0,{f:'',h:0,w:0},'','','',''],imagerep=['shadow','printImage','mozPrintImage','printShadow','transparent'],defaults={},sets=[],i,j;for(i=0;i<decomp.length;i++){if(!c[0][i])c[0][i]=[fallback[i]];c[0][i]=Drupal.gmap.expandArray(c[0][i],c[0][0].length)};for(i=0;i<c[0][0].length;i++)for(j=0;j<decomp.length;j++)if(i===0){defaults[decomp[j]]=c[0][j][i]}else{if(!sets[i-1])sets[i-1]={};sets[i-1][decomp[j]]=c[0][j][i]};for(i=0;i<sets.length;i++)for(j=0;j<decomp.length;j++)if(sets[i][decomp[j]]===fallback[j])sets[i][decomp[j]]=defaults[decomp[j]];var icons={};for(i=0;i<sets.length;i++){var key=sets[i].key;icons[key]=sets[i];icons[key].path=path;delete icons[key].key;delete sets[i];for(j=0;j<icons[key].sequence.length;j++)icons[key].sequence[j]=files[icons[key].sequence[j]];for(j=0;j<imagerep.length;j++)if(typeof(icons[key][imagerep[j]])==='number')icons[key][imagerep[j]]=files[icons[key][imagerep[j]]]};return icons};Drupal.gmap.addHandler('gmap',function(elem){var obj=this;obj.bind('init',function(){if(!Drupal.gmap.icons)Drupal.gmap.iconSetup()});obj.bind('ready',function(){if(Drupal.gmap.icondata)obj.deferChange('iconsready',-1)});if(!obj.vars.behavior.customicons)obj.bind('preparemarker',function(marker){marker.opts.icon=Drupal.gmap.getIcon(marker.markername,marker.offset)})});
Drupal.gmap.addHandler('gmap',function(elem){var obj=this,marker,i;if(obj.vars.markers)obj.bind('iconsready',function(){for(i=0;i<obj.vars.markers.length;i++){marker=obj.vars.markers[i];if(!marker.opts)marker.opts={};obj.change('preparemarker',-1,marker);obj.change('addmarker',-1,marker)};obj.change('markersready',-1)})});
Drupal.Views=Drupal.Views||{};Drupal.Views.dependent={bindings:{},activeBindings:{},activeTriggers:[]};Drupal.Views.dependent.inArray=function(array,search_term){var i=array.length;if(i>0)do{if(array[i]==search_term)return true}while(i--);return false};Drupal.Views.dependent.autoAttach=function(){for(i in Drupal.Views.dependent.activeTriggers)jQuery(Drupal.Views.dependent.activeTriggers[i]).unbind('change');Drupal.Views.dependent.activeTriggers=[];Drupal.Views.dependent.activeBindings={};Drupal.Views.dependent.bindings={};if(!Drupal.settings.viewsAjax)return;for(id in Drupal.settings.viewsAjax.formRelationships){Drupal.Views.dependent.activeBindings[id]=0;for(bind_id in Drupal.settings.viewsAjax.formRelationships[id].values){if(!Drupal.Views.dependent.bindings[bind_id])Drupal.Views.dependent.bindings[bind_id]=[];Drupal.Views.dependent.bindings[bind_id].push(id);if(bind_id.substring(0,6)=='radio:'){var trigger_id="input[name='"+bind_id.substring(6)+"']"}else var trigger_id='#'+bind_id;Drupal.Views.dependent.activeTriggers.push(trigger_id);if(jQuery(trigger_id).attr('type')=='checkbox')$(trigger_id).parent().addClass('hidden-options');var getValue=function(item,trigger){if(item.substring(0,6)=='radio:'){var val=jQuery(trigger+':checked').val()}else switch(jQuery(trigger).attr('type')){case'checkbox':var val=jQuery(trigger).attr('checked')||0;if(val){$(trigger).parent().removeClass('hidden-options').addClass('expanded-options')}else $(trigger).parent().removeClass('expanded-options').addClass('hidden-options');break;default:var val=jQuery(trigger).val()};return val},setChangeTrigger=function(trigger_id,bind_id){var changeTrigger=function(){var val=getValue(bind_id,trigger_id);for(i in Drupal.Views.dependent.bindings[bind_id]){var id=Drupal.Views.dependent.bindings[bind_id][i];if(typeof id!='string')continue;if(!Drupal.Views.dependent.activeBindings[id])Drupal.Views.dependent.activeBindings[id]={};if(Drupal.Views.dependent.inArray(Drupal.settings.viewsAjax.formRelationships[id].values[bind_id],val)){Drupal.Views.dependent.activeBindings[id][bind_id]='bind'}else delete Drupal.Views.dependent.activeBindings[id][bind_id];var len=0;for(i in Drupal.Views.dependent.activeBindings[id])len++;var object=jQuery('#'+id+'-wrapper');if(!object.size())object=jQuery('#'+id).parent();var rel_num=Drupal.settings.viewsAjax.formRelationships[id].num;if(typeof rel_num==='object')rel_num=Drupal.settings.viewsAjax.formRelationships[id].num[0];if(rel_num<=len){object.show(0);object.addClass('dependent-options')}else object.hide(0)}};jQuery(trigger_id).change(function(){changeTrigger(trigger_id,bind_id)});changeTrigger(trigger_id,bind_id)};setChangeTrigger(trigger_id,bind_id)}}};Drupal.behaviors.viewsDependent=function(context){Drupal.Views.dependent.autoAttach();$("select.views-master-dependent:not(.views-processed)").addClass('views-processed').change(function(){var val=$(this).val();if(val=='all'){$('.views-dependent-all').show(0)}else{$('.views-dependent-all').hide(0);$('.views-dependent-'+val).show(0)}}).trigger('change')};
(function($){$.fn.ajaxSubmit=function(options){if(!this.length){log('ajaxSubmit: skipping submit process - no element selected');return this};if(typeof options=='function')options={success:options};var url=$.trim(this.attr('action'));if(url)url=(url.match(/^([^#]+)/)||[])[1];url=url||window.location.href||'';options=$.extend({url:url,type:this.attr('method')||'GET',iframeSrc:/^https/i.test(window.location.href||'')?'javascript:false':'about:blank'},options||{});var veto={};this.trigger('form-pre-serialize',[this,options,veto]);if(veto.veto){log('ajaxSubmit: submit vetoed via form-pre-serialize trigger');return this};if(options.beforeSerialize&&options.beforeSerialize(this,options)===false){log('ajaxSubmit: submit aborted via beforeSerialize callback');return this};var a=this.formToArray(options.semantic);if(options.data){options.extraData=options.data;for(var n in options.data)if(options.data[n]instanceof Array){for(var k in options.data[n])a.push({name:n,value:options.data[n][k]})}else a.push({name:n,value:options.data[n]})};if(options.beforeSubmit&&options.beforeSubmit(a,this,options)===false){log('ajaxSubmit: submit aborted via beforeSubmit callback');return this};this.trigger('form-submit-validate',[a,this,options,veto]);if(veto.veto){log('ajaxSubmit: submit vetoed via form-submit-validate trigger');return this};var q=$.param(a);if(options.type.toUpperCase()=='GET'){options.url+=(options.url.indexOf('?')>=0?'&':'?')+q;options.data=null}else options.data=q;var $form=this,callbacks=[];if(options.resetForm)callbacks.push(function(){$form.resetForm()});if(options.clearForm)callbacks.push(function(){$form.clearForm()});if(!options.dataType&&options.target){var oldSuccess=options.success||function(){};callbacks.push(function(data){$(options.target).html(data).each(oldSuccess,arguments)})}else if(options.success)callbacks.push(options.success);options.success=function(data,status){for(var i=0,max=callbacks.length;i<max;i++)callbacks[i].apply(options,[data,status,$form])};var files=$('input:file',this).fieldValue(),found=false;for(var j=0;j<files.length;j++)if(files[j])found=true;var multipart=false;if((files.length&&options.iframe!==false)||options.iframe||found||multipart){if(options.closeKeepAlive){$.get(options.closeKeepAlive,fileUpload)}else fileUpload()}else $.ajax(options);this.trigger('form-submit-notify',[this,options]);return this
function fileUpload(){var form=$form[0];if($(':input[name=submit]',form).length){alert(Drupal.t('Error: Form elements must not be named "submit".'));return};var opts=$.extend({},$.ajaxSettings,options),s=$.extend(true,{},$.extend(true,{},$.ajaxSettings),opts),id='jqFormIO'+(new Date().getTime()),$io=$('<iframe id="'+id+'" name="'+id+'" src="'+opts.iframeSrc+'" />'),io=$io[0];$io.css({position:'absolute',top:'-1000px',left:'-1000px'});var xhr={aborted:0,responseText:null,responseXML:null,status:0,statusText:'n/a',getAllResponseHeaders:function(){},getResponseHeader:function(){},setRequestHeader:function(){},abort:function(){this.aborted=1;$io.attr('src',opts.iframeSrc)}},g=opts.global;if(g&&!$.active++)$.event.trigger("ajaxStart");if(g)$.event.trigger("ajaxSend",[xhr,opts]);if(s.beforeSend&&s.beforeSend(xhr,s)===false){s.global&&$.active--;return};if(xhr.aborted)return;var cbInvoked=0,timedOut=0,sub=form.clk;if(sub){var n=sub.name;if(n&&!sub.disabled){options.extraData=options.extraData||{};options.extraData[n]=sub.value;if(sub.type=="image"){options.extraData[name+'.x']=form.clk_x;options.extraData[name+'.y']=form.clk_y}}};setTimeout(function(){var t=$form.attr('target'),a=$form.attr('action');form.setAttribute('target',id);if(form.getAttribute('method')!='POST')form.setAttribute('method','POST');if(form.getAttribute('action')!=opts.url)form.setAttribute('action',opts.url);if(!options.skipEncodingOverride)$form.attr({encoding:'multipart/form-data',enctype:'multipart/form-data'});if(opts.timeout)setTimeout(function(){timedOut=true;cb()},opts.timeout);var extraInputs=[];try{if(options.extraData)for(var n in options.extraData)extraInputs.push($('<input type="hidden" name="'+n+'" value="'+options.extraData[n]+'" />').appendTo(form)[0]);$io.appendTo('body');io.attachEvent?io.attachEvent('onload',cb):io.addEventListener('load',cb,false);form.submit()}finally{form.setAttribute('action',a);t?form.setAttribute('target',t):$form.removeAttr('target');$(extraInputs).remove()}},10);var domCheckCount=50
function cb(){if(cbInvoked++)return;io.detachEvent?io.detachEvent('onload',cb):io.removeEventListener('load',cb,false);var ok=true;try{if(timedOut)throw'timeout';var data,doc;doc=io.contentWindow?io.contentWindow.document:io.contentDocument?io.contentDocument:io.document;var isXml=opts.dataType=='xml'||doc.XMLDocument||$.isXMLDoc(doc);log('isXml='+isXml);if(!isXml&&(doc.body==null||doc.body.innerHTML=='')){if(--domCheckCount){cbInvoked=0;setTimeout(cb,100);return};log('Could not access iframe DOM after 50 tries.');return};xhr.responseText=doc.body?doc.body.innerHTML:null;xhr.responseXML=doc.XMLDocument?doc.XMLDocument:doc;xhr.getResponseHeader=function(header){var headers={'content-type':opts.dataType};return headers[header]};if(opts.dataType=='json'||opts.dataType=='script'){var ta=doc.getElementsByTagName('textarea')[0];if(ta){xhr.responseText=ta.value}else{var pre=doc.getElementsByTagName('pre')[0];if(pre)xhr.responseText=pre.innerHTML}}else if(opts.dataType=='xml'&&!xhr.responseXML&&xhr.responseText!=null)xhr.responseXML=toXml(xhr.responseText);data=$.httpData(xhr,opts.dataType)}catch(e){ok=false;$.handleError(opts,xhr,'error',e)};if(ok){opts.success(data,'success');if(g)$.event.trigger("ajaxSuccess",[xhr,opts])};if(g)$.event.trigger("ajaxComplete",[xhr,opts]);if(g&&!--$.active)$.event.trigger("ajaxStop");if(opts.complete)opts.complete(xhr,ok?'success':'error');setTimeout(function(){$io.remove();xhr.responseXML=null},100)}
function toXml(s,doc){if(window.ActiveXObject){doc=new ActiveXObject('Microsoft.XMLDOM');doc.async='false';doc.loadXML(s)}else doc=(new DOMParser()).parseFromString(s,'text/xml');return(doc&&doc.documentElement&&doc.documentElement.tagName!='parsererror')?doc:null}}};$.fn.ajaxForm=function(options){return this.ajaxFormUnbind().bind('submit.form-plugin',function(){$(this).ajaxSubmit(options);return false}).bind('click.form-plugin',function(e){var target=e.target,$el=$(target);if(!($el.is(":submit,input:image"))){var t=$el.closest(':submit');if(t.length==0)return;target=t[0]};var form=this;form.clk=target;if(target.type=='image')if(e.offsetX!=undefined){form.clk_x=e.offsetX;form.clk_y=e.offsetY}else if(typeof $.fn.offset=='function'){var offset=$el.offset();form.clk_x=e.pageX-offset.left;form.clk_y=e.pageY-offset.top}else{form.clk_x=e.pageX-target.offsetLeft;form.clk_y=e.pageY-target.offsetTop};setTimeout(function(){form.clk=form.clk_x=form.clk_y=null},100)})};$.fn.ajaxFormUnbind=function(){return this.unbind('submit.form-plugin click.form-plugin')};$.fn.formToArray=function(semantic){var a=[];if(this.length==0)return a;var form=this[0],els=semantic?form.getElementsByTagName('*'):form.elements;if(!els)return a;for(var i=0,max=els.length;i<max;i++){var el=els[i],n=el.name;if(!n)continue;if(semantic&&form.clk&&el.type=="image"){if(!el.disabled&&form.clk==el){a.push({name:n,value:$(el).val()});a.push({name:n+'.x',value:form.clk_x},{name:n+'.y',value:form.clk_y})};continue};var v=$.fieldValue(el,true);if(v&&v.constructor==Array){for(var j=0,jmax=v.length;j<jmax;j++)a.push({name:n,value:v[j]})}else if(v!==null&&typeof v!='undefined')a.push({name:n,value:v})};if(!semantic&&form.clk){var $input=$(form.clk),input=$input[0],n=input.name;if(n&&!input.disabled&&input.type=='image'){a.push({name:n,value:$input.val()});a.push({name:n+'.x',value:form.clk_x},{name:n+'.y',value:form.clk_y})}};return a};$.fn.formSerialize=function(semantic){return $.param(this.formToArray(semantic))};$.fn.fieldSerialize=function(successful){var a=[];this.each(function(){var n=this.name;if(!n)return;var v=$.fieldValue(this,successful);if(v&&v.constructor==Array){for(var i=0,max=v.length;i<max;i++)a.push({name:n,value:v[i]})}else if(v!==null&&typeof v!='undefined')a.push({name:this.name,value:v})});return $.param(a)};$.fn.fieldValue=function(successful){for(var val=[],i=0,max=this.length;i<max;i++){var el=this[i],v=$.fieldValue(el,successful);if(v===null||typeof v=='undefined'||(v.constructor==Array&&!v.length))continue;v.constructor==Array?$.merge(val,v):val.push(v)};return val};$.fieldValue=function(el,successful){var n=el.name,t=el.type,tag=el.tagName.toLowerCase();if(typeof successful=='undefined')successful=true;if(successful&&(!n||el.disabled||t=='reset'||t=='button'||(t=='checkbox'||t=='radio')&&!el.checked||(t=='submit'||t=='image')&&el.form&&el.form.clk!=el||tag=='select'&&el.selectedIndex==-1))return null;if(tag=='select'){var index=el.selectedIndex;if(index<0)return null;var a=[],ops=el.options,one=(t=='select-one'),max=(one?index+1:ops.length);for(var i=(one?index:0);i<max;i++){var op=ops[i];if(op.selected){var v=op.value;if(!v)v=(op.attributes&&op.attributes['value']&&!(op.attributes['value'].specified))?op.text:op.value;if(one)return v;a.push(v)}};return a};return el.value};$.fn.clearForm=function(){return this.each(function(){$('input,select,textarea',this).clearFields()})};$.fn.clearFields=$.fn.clearInputs=function(){return this.each(function(){var t=this.type,tag=this.tagName.toLowerCase();if(t=='text'||t=='password'||tag=='textarea'){this.value=''}else if(t=='checkbox'||t=='radio'){this.checked=false}else if(tag=='select')this.selectedIndex=-1})};$.fn.resetForm=function(){return this.each(function(){if(typeof this.reset=='function'||(typeof this.reset=='object'&&!this.reset.nodeType))this.reset()})};$.fn.enable=function(b){if(b==undefined)b=true;return this.each(function(){this.disabled=!b})};$.fn.selected=function(select){if(select==undefined)select=true;return this.each(function(){var t=this.type;if(t=='checkbox'||t=='radio'){this.checked=select}else if(this.tagName.toLowerCase()=='option'){var $sel=$(this).parent('select');if(select&&$sel[0]&&$sel[0].type=='select-one')$sel.find('option').selected(false);this.selected=select}})}
function log(){if($.fn.ajaxSubmit.debug&&window.console&&window.console.log)window.console.log('[jquery.form] '+Array.prototype.join.call(arguments,''))}})(jQuery);

