
function GoogleMap(){DEFAULT_ZOOM=3;STATE_ZOOM_1=6;STATE_ZOOM_2=10;this.center=new GLatLng(-28.381735,135.351563);this.initialize=function(id){this.map=new GMap2(document.getElementById(id));this.items=new Array();this.addItems();return true;};this.load=function(){this.map.setCenter(this.center,DEFAULT_ZOOM);this.map.addControl(new GSmallMapControl());this.map.addControl(new GMapTypeControl());this.showItems();var gmThis=this;GEvent.addListener(this.map,'dragstart',function(){gmThis.map.closeInfoWindow();});return true;};this.addItem=function(itemToAdd){for(i=0;i<this.items.length;i++){if((parseInt(itemToAdd.latitude)<(parseInt(this.items[i].latitude)+30))&&(parseInt(itemToAdd.latitude)>(parseInt(this.items[i].latitude)-30))){itemToAdd.ITEM_TYPE="multi";this.items[i].ITEM_TYPE="multi";}
if((parseInt(itemToAdd.longitude)<(parseInt(this.items[i].longitude)+30))&&(parseInt(itemToAdd.longitude)>(parseInt(this.items[i].longitude)-30))){itemToAdd.ITEM_TYPE="multi";this.items[i].ITEM_TYPE="multi";}}
this.items.push(itemToAdd);};this.addItems=function(){for(i=0;i<Offices.length;i++){this.addItem(Offices[i]);}};this.showItems=function(){this.map.clearOverlays();for(i=0;i<this.items.length;i++){var point=this.items[i].getPoint();var marker=this.createMarker(point,this.items[i].content,this.items[i]);var gmThis=this;if(marker){this.map.addOverlay(marker);GEvent.addListener(marker,'click',function(){gmThis.map.setCenter(point,8);});}}
this.map.setCenter(this.center,DEFAULT_ZOOM);return false;};this.createMarker=function(point,content,item){if(point){var marker=new GMarker(point,{icon:this.createIcon(item)});if(content&&content!=''){GEvent.addListener(marker,'click',function(){marker.openInfoWindowHtml(content)});}
return marker;}else{return false;}};this.createIcon=function(item){var icon=new GIcon();var path='images/';icon.image=path+'cb-mapicon-single.png';icon.iconSize=new GSize(32,32);icon.iconAnchor=new GPoint(16,30);icon.shadow=path+'cb-mapicon-shadow.png';icon.shadowSize=new GSize(42,32);icon.infoWindowAnchor=new GPoint(13,10);return icon;};this.ShowOnMap=function(item,state,type){this.map.clearOverlays();if(item==0){this.map.setCenter(this.center,DEFAULT_ZOOM);}
sum_lat=0;sum_lng=0;count=0;for(i=0;i<this.items.length;i++){if((this.items[i].id==item||item==0)&&this.items[i].state==state){var marker=this.createMarker(this.items[i].getPoint(),this.items[i].content,this.items[i]);this.map.addOverlay(marker);if(item!=0){this.map.setCenter(this.items[i].getPoint(),this.items[i].zoom);marker.openInfoWindowHtml(this.items[i].content);}
sum_lat+=this.items[i].latitude;sum_lng+=this.items[i].longitude;if(count==0){min_lat=this.items[i].latitude;min_lng=this.items[i].longitude;max_lat=this.items[i].latitude;max_lng=this.items[i].longitude;}else{if(this.items[i].latitude<min_lat)min_lat=this.items[i].latitude;if(this.items[i].latitude>max_lat)max_lat=this.items[i].latitude;if(this.items[i].longitude<min_lng)min_lng=this.items[i].longitude;if(this.items[i].longitude>max_lng)max_lng=this.items[i].longitude;}
count++;if(type==0)break;}}
if(item==0){dif_lat=max_lat-min_lat;dif_lng=max_lng-min_lng;if(dif_lat<1&&dif_lng<1){this.map.setCenter(new GLatLng(sum_lat/count,sum_lng/count),STATE_ZOOM_2);}else{this.map.setCenter(new GLatLng(sum_lat/count,sum_lng/count),STATE_ZOOM_1);}}
return false;}}
Offices=new Array();function MapItem(lat,lng,address,id,state,desc,zoom){this.ITEM_TYPE='single';this.latitude=lat;this.longitude=lng;this.address=address;this.id=id;this.state=state;this.content=desc;this.zoom=zoom;if(parseInt(lat)!=0||parseInt(lng)!=0){this.geocode=new GLatLng(lat,lng);}
else{var gcg=new GClientGeocoder();var gmitem=this;gcg.getLatLng(address,function(point){if(point){gmitem.geocode=point;}else{gmitem.geocode=0;}});}
this.getPoint=function(){return this.geocode;}}