// (C) 2010 CodeGen International

var geoEventMarkerArr=[];var geoEventGeomMarkerArr=[];var geoEventIconSizesArr=[];var GE_TYPE_GENERAL='general';var GE_TYPE_EVENT='event';var GE_TYPE_PROMOTION='promotion';var GE_GEOM_POINT='POINT';var GE_GEOM_POLYGON='POLYGON';var ge_list;var ge_count=0;var nb_player_path=cg_pathfinder_path+"/lib/NonverBlaster/NonverBlaster.swf";var enabledGeomClick=true;var enabledLabelClick=false;function orderOfCreation(marker,b){return 100;}
function inverseOrder(marker,b){return-GOverlay.getZIndex(marker.getPoint().lat());}
function drawGEDashboardContent(param_geographical_events_obj,geometry_id,description){main_list="<table class='tableDashboard'>";ge_list="<table class='corner_round' id='tbl_ge'>";var event_nid;var event_title;var event_type;var event_date;var row_id;ge_count=1;for(var i=0;i<param_geographical_events_obj.length;i++){event_nid=param_geographical_events_obj[i].event_nid;event_title=param_geographical_events_obj[i].event_title;event_type=param_geographical_events_obj[i].event_type;event_date=param_geographical_events_obj[i].event_date;row_id='geographical_event'+ge_count;ge_list+='<tr id="'+row_id+'" title="'+event_date+'" class="trblock" '+'onClick="javascript:GEvent.trigger(geoEventMarkerArr[\''+geometry_id+'\']['+event_nid+'], \'click\')" '+"onmouseover='javascript:this.className=\"trhighlight\";' onmouseout='javascript:this.className=\"trblock\"'"+'><td>'+
ge_count+'.&nbsp;</td><td class="tdDashboard">'+event_title+'</td></tr>';ge_count++;}
ge_list+="</table>";main_list+='<tr id="geographical_event_lst"><td>'+ge_list+'</td></tr>';main_list+="</table>";var div_content="<div class='coner_round'>"+main_list+"</div>";var logger_obj=new logger(div_content,geometry_id,"ge");geLoggerId=logger_array.length;logger_array[geLoggerId]=logger_obj;title_logger[geLoggerId]="Events in "+description;document.getElementById('mainTabContainer').innerHTML=logger_array[geLoggerId].content;document.getElementById('dash_title').innerHTML=title_logger[geLoggerId];}
function removeGeographicalEventMarkers(){for(var key in geoEventMarkerArr){if(typeof(key)=="function"||key=="$family"){break;}
if(!empty(key)){for(var key2 in geoEventMarkerArr[key]){if(typeof(key2)=="function"||key=="$family"){break;}
if(!empty(key2)){if(!empty(geoEventMarkerArr[key][key2])){minimapMarkerRemoving(geoEventMarkerArr[key][key2]);map.removeOverlay(geoEventMarkerArr[key][key2]);}}}
geoEventMarkerArr[key]=null;}}
ge_list=null;ge_count=0;for(var k=logger_array.length-1;k>0;k--){if(logger_array[k].type=='ge'){logger_array.splice(k,1);title_logger.splice(k,1);document.getElementById('mainTabContainer').innerHTML=logger_array[k-1].content;document.getElementById('dash_title').innerHTML=title_logger[k-1];}}
geLoggerId=0;enabledGeomClick=true;enabledLabelClick=false;geoEventIconSizesArr=[];}
function highlightGeometries(flag){var pos=flag;for(var key in geoEventGeomMarkerArr){if(!empty(geoEventGeomMarkerArr[key])){if(typeof(key)=="function"||key=="$family"){break;}
if(pos===0){if(key.split("-")[0]=="point"){}else if(key!="center_marker"&&key.substring(0,5)!="label"){geoEventGeomMarkerArr[key].setStrokeStyle({opacity:1});}}
else if(pos===1){if(key.split("-")[0]=="point"){}else if(key!="center_marker"&&key.substring(0,5)!="label"){geoEventGeomMarkerArr[key].setStrokeStyle({opacity:0});}}}}
if(pos===0){pos=1;}
else if(pos===1){pos=0;}}
function createGEMarker(event_point,event_nid,event_title,event_content,event_type,event_sub_type,event_date,event_image,event_first_image,event_image_gallery,event_thumb_size,event_video_gallery){var first_video_url;var ico=new GIcon(icon);ico.image=event_image.replace(/\\/g,"");ico.shadow='';ico.iconSize=new GSize(event_thumb_size,event_thumb_size);ico.infoWindowAnchor=new GPoint(event_thumb_size/2,event_thumb_size/2);var marker=new GMarker(event_point,{icon:ico,title:event_title,zIndexProcess:orderOfCreation});GEvent.addListener(marker,'click',function(){var body_images_div="";var non_body_videos_div="";if(!empty(event_image_gallery)){var body_imagesArr=event_image_gallery.split(",");for(var i=0;i<body_imagesArr.length;i++){if(i<4){if(!empty(body_imagesArr[i])){var item_str="[";for(var j=0;j<body_imagesArr.length;j++){var image_info_arr=body_imagesArr[j].split("|");if(j<4){if(j>0){item_str+=",";}
item_str+="[\""+image_info_arr[0]+"\",\""+image_info_arr[1].replace("'","")+" "+"\",\"350 350\"]";}}
item_str+="],"+i;var final_image_info=body_imagesArr[i].split("|");body_images_div+="<div class='galThumb' align='center' ><a href='javascript:;' onclick='Mediabox.open("+item_str+")' ><img src='"+final_image_info[0]+"' width='100' height='80' title='"+final_image_info[1].replace("'","")+"'/></a></div>";}}
else{break;}}}
else{body_images_div="No Images available...";}
var html_content="<table width='300' border='0' cellspacing='0' cellpadding='0'>"+"<tr>"+"<td class='infoBg'>"+"<div class='infoLeft'></div>"+"<div class='hotName'>"+trim_name(event_title)+"</div>"+"<div class='infoRight'></div>"+"</td>"+"</tr>"+"<tr>"+"<td class='infoCage'>"+"<table width='100%' height='200' border='0' cellspacing='0' cellpadding='5' >"+"<tr>"+"<td width='120' valign='top'>"+"<div class='itinImg'><img src='"+event_image+"' width='130' height='100'></div></td>"+"<td valign='top' class='desc'>"+event_content+" "+generateMoreLinkValue(event_nid)+"</td>"+"</tr>"+"<tr><td colspan='2' align='left' id='ge_date_style'>&nbsp; <i>Event Period:</i></td></tr>"+"<tr>"+"<tr><td colspan='2' align='left' id='ge_date_style'>&nbsp; "+event_date+"</td></tr>"+"</table>"+"</td>"+"</tr>"+"</table>"+"<table width='300' border='0' cellspacing='0' cellpadding='0'>"+"<tr>"+"<td>";html_content+=" </td></tr></table>";var galleryHTML="<table width='300' border='0' cellspacing='0' cellpadding='0'>"+"<tr>"+"<td class='infoBg'>"+"<div class='infoLeft'></div>"+"<div class='hotName'>Gallery</div>"+"<div class='infoRight'></div>"+"</td>"+"</tr>"+"<tr>"+"<td class='infoCage'>"+"<table width='100%' border='0' cellspacing='0' cellpadding='5'>"+"<tr>"+"<td>"+
body_images_div+"</td>"+"</tr>"+"</table>"+"</td>"+"</tr>"+"</table>";var body_videos_div="";if(!empty(event_video_gallery)){var body_videosArr=event_video_gallery.split(",");first_video_url=body_videosArr[0].split("|")[0];for(var k=0;k<body_videosArr.length;k++){var video_info_arr=body_videosArr[k].split("|");body_videos_div+="<div class='galThumb' style='width:40px;' align='left' ><a href='javascript:;' onclick='play_video(\""+video_info_arr[0]+"\")' ><img src='"+event_image+"' width='40' height='35' title='"+video_info_arr[1]+"'/></a></div>";}}
else{non_body_videos_div="No Videos available...";}
var videoGalleryHTML="<table width='300' border='0' cellspacing='0' cellpadding='0'>"+"<tr>"+"<td class='infoBg'>"+"<div class='infoLeft'></div>"+"<div class='hotName'>Videos</div>"+"<div class='infoRight'></div>"+"</td>"+"</tr>"+"<td class='infoCage'>"+"<table width='100%' border='0' cellspacing='5' cellpadding='5'>"+"<tr><td>"+
non_body_videos_div+"</td></tr>"+"<tr><td height='135' align='center'><div id='videoPlayer'/></td></tr>"+"<tr><td>"+body_videos_div+"</td></tr>"+"</table>"+"</td>"+"</tr>"+"</table>";this.openInfoWindowTabsHtml([new GInfoWindowTab("Info",html_content),new GInfoWindowTab("Gallery",galleryHTML),new GInfoWindowTab("Videos",videoGalleryHTML)]);});GEvent.addListener(marker,'visibilitychanged',function(){if(marker.isHidden()){marker.closeInfoWindow();}});GEvent.addListener(marker,"infowindowopen",function(){var mkrPoint=this.getLatLng();var center=map.getCenter();var winW;var winH;var ne;if(navigator.appName=="Netscape"){winW=window.innerWidth-16;winH=window.innerHeight-16;}
if(navigator.appName.indexOf("Microsoft")!=-1){winW=document.body.offsetWidth-20;winH=document.body.offsetHeight-20;}
if((winW<=2000)&&(winH<=768)){var bound=map.getBounds();if(bound.containsLatLng(mkrPoint)){var sw=bound.getSouthWest();ne=bound.getNorthEast();var boundCenter=bound.getCenter();var boundCenter_lng=boundCenter.lng();var boundCenter_lat=boundCenter.lat();var sw_lng=sw.lng();if(mkrPoint.lat()>boundCenter_lat){map.panTo(new GLatLng(ne.lat(),mkrPoint.lng()));}
else{map.panTo(new GLatLng(boundCenter_lat,mkrPoint.lng()));}}
else{map.setCenter(mkrPoint);bound=map.getBounds();ne=bound.getNorthEast();var ne_lng=ne.lng();map.panTo(new GLatLng(ne.lat(),mkrPoint.lng()));}}else{map.panTo(new GLatLng(mkrPoint.lat(),mkrPoint.lng()));}
if(!empty(first_video_url)){var flashvars={};flashvars.mediaURL=first_video_url;flashvars.allowSmoothing="true";flashvars.autoPlay="false";flashvars.buffer="6";flashvars.showTimecode="true";flashvars.loop="false";flashvars.controlColor="0x3fd2a3";flashvars.controlBackColor="0x000000";flashvars.scaleIfFullScreen="true";flashvars.showScalingButton="true";flashvars.defaultVolume="100";flashvars.crop="false";var params={};params.menu="false";params.allowFullScreen="true";params.allowScriptAccess="always";var attributes={};attributes.id="nonverblaster";attributes.bgcolor="#000000";swfobject.embedSWF(nb_player_path,"videoPlayer","250","143","9",null,flashvars,params,attributes);registerForJavaScriptCommunication("nonverblaster");}});return marker;}
function addGeographicalEventMarkers(geographical_events_obj,geometry_id,description){var temp_event_array=[];for(var i=0;i<geographical_events_obj.length;i++){var event_nid=geographical_events_obj[i].event_nid;var event_vid=geographical_events_obj[i].event_vid;var event_title=geographical_events_obj[i].event_title;var event_content=geographical_events_obj[i].event_content;var event_point=new GLatLng(parseFloat(geographical_events_obj[i].event_location_lat),parseFloat(geographical_events_obj[i].event_location_lon));var event_image=geographical_events_obj[i].event_image;var event_first_image=geographical_events_obj[i].event_first_image;var event_image_gallery=geographical_events_obj[i].event_image_gallery;var event_type=geographical_events_obj[i].event_type;var event_sub_type=geographical_events_obj[i].event_sub_type;var event_date=geographical_events_obj[i].event_date;var event_thumb_size=geographical_events_obj[i].event_thumb_size;var event_video_gallery=geographical_events_obj[i].event_video_gallery;var marker=createGEMarker(event_point,event_nid,event_title,event_content,event_type,event_sub_type,event_date,event_image,event_first_image,event_image_gallery,event_thumb_size,event_video_gallery);temp_event_array[event_nid]=marker;map.addOverlay(marker);minimapMarkerAdding(marker);geoEventIconSizesArr[event_nid]=new GSize(event_thumb_size,event_thumb_size);}
geoEventMarkerArr[geometry_id]=temp_event_array;drawGEDashboardContent(geographical_events_obj,geometry_id,description);}
function loadGeographicalEventMarkers(nid_list,geometry_id,description){show_Loading_image();var downld_url=base_path+"get_genodes/"+nid_list;GDownloadUrl(downld_url,function(data){if(!empty(data)){var JSONObj=JSON.decode(data);if(!empty(JSONObj)){var geographical_events=JSONObj.geographical_events.geographical_event;addGeographicalEventMarkers(geographical_events,geometry_id,description);}}else{alert('Could not retrieve today events information...!');}
hide_Loading_image();});}
function createGEcityMarker(city_point,event_nid_list,description,geometry_id){var nid_list=event_nid_list.split(",");var str_nid_list;str_nid_list=nid_list[0].split("-")[0];for(var j=1;j<nid_list.length;j++){str_nid_list+=","+nid_list[j].split("-")[0];}
var ico=ge_city_icon;ico.infoWindowAnchor=new GPoint(5,2);var first_event_name=nid_list[0].split("-")[1];var marker=new GMarker(city_point,{icon:ico,title:description+" Event: "+first_event_name});var center_marker=new GMarker(city_point,{hide:true});GEvent.addListener(marker,'click',function(){loadGeographicalEventMarkers(str_nid_list,geometry_id,description);map.setCenter(city_point,12);});return marker;}
function showHideEventLabel(geom_id,flag){if(!empty(geoEventGeomMarkerArr['label'+geom_id])){if(flag){geoEventGeomMarkerArr['label'+geom_id].show();}else{geoEventGeomMarkerArr['label'+geom_id].hide();}}}
function createGEgeometry(polygon_point_arr,event_nid_list,style_strokeColor,style_strokeWeight,style_strokeOpacity,style_fillColor,style_fillOpacity,geometry_id,description){var event_geom=new GPolygon(polygon_point_arr,style_strokeColor,style_strokeWeight,style_strokeOpacity,style_fillColor,style_fillOpacity);var nid_list=event_nid_list.split(",");var str_nid_list;str_nid_list=nid_list[0].split("=")[0];for(var j=1;j<nid_list.length;j++){str_nid_list+=","+nid_list[j].split("=")[0];}
GEvent.addListener(event_geom,'click',function(){if(!enabledLabelClick){if(enabledGeomClick){if(empty(geoEventMarkerArr[geometry_id])){loadGeographicalEventMarkers(str_nid_list,geometry_id,description);var areabound=event_geom.getBounds();if(map.getZoom()>=map.getBoundsZoomLevel(areabound)){if(map.getZoom()==map.getBoundsZoomLevel(areabound)){map.panTo(areabound.getCenter());}}else{map.setCenter(areabound.getCenter(),map.getBoundsZoomLevel(areabound));}
showHideEventLabel(geometry_id,false);}}}});GEvent.addListener(event_geom,'mouseover',function(){});return event_geom;}
function addEventGeometries(event_geometry_obj){for(var key in event_geometry_obj){if(typeof(key)=="function"||key=="$family"){break;}
var geometry_type=event_geometry_obj[key].geometry_type;var description=event_geometry_obj[key].description;var event_count=event_geometry_obj[key].event_count;var event_nid_list=event_geometry_obj[key].event_nid_list;var style_strokeWeight=event_geometry_obj[key].style_strokeWeight;var style_strokeOpacity=event_geometry_obj[key].style_strokeOpacity;var style_fillOpacity=event_geometry_obj[key].style_fillOpacity;var style_strokeColor=event_geometry_obj[key].style_strokeColor;var style_fillColor=event_geometry_obj[key].style_fillColor;var geometry_id=event_geometry_obj[key].id;var geometry_center=event_geometry_obj[key].geometry_center;var geometry_bbox=event_geometry_obj[key].bbox;switch(geometry_type){case GE_GEOM_POINT:var city_point=new GLatLng(parseFloat(event_geometry_obj[key].geometry[1]),parseFloat(event_geometry_obj[key].geometry[0]));var marker=createGEcityMarker(city_point,event_nid_list,description,geometry_id);geoEventGeomMarkerArr[geometry_id]=marker;map.addOverlay(marker);break;case GE_GEOM_POLYGON:for(var i=0;i<event_geometry_obj[key].geometry.length;i++){var polygon_point_arr=[];for(var j=0;j<event_geometry_obj[key].geometry[i].length;j++){polygon_point_arr.push(new GLatLng(parseFloat(event_geometry_obj[key].geometry[i][j][0]),parseFloat(event_geometry_obj[key].geometry[i][j][1])));}
var event_geom=createGEgeometry(polygon_point_arr,event_nid_list,style_strokeColor,style_strokeWeight,style_strokeOpacity,style_fillColor,style_fillOpacity,geometry_id,description);geoEventGeomMarkerArr[geometry_id+i]=event_geom;map.addOverlay(event_geom);}
geometry_center=event_nid_list.split(",")[0].split("=")[3].split("|");if(!empty(geometry_center)){if(empty(geoEventGeomMarkerArr['label'+geometry_id]))
{var first_event_name=event_nid_list.split(",")[0].split("=")[1];var first_event_image=event_nid_list.split(",")[0].split("=")[2];var ge_label=new ELabel(new GLatLng((parseFloat(geometry_center[0])),(parseFloat(geometry_center[1]))),'<div class="RoundedWrapper"><div class="RoundedTop"></div>'+'<div class="RoundedMid" style="cursor:pointer;">'+'<table style="border:0;" width="100%"><tr>'+'<td onClick="onSelectEventGeomLabel(\''+event_nid_list+'\',\''+geometry_id+'\',\''+geometry_bbox+'\',\''+description+'\');" onmouseover="setClickState(false, true);" onmouseout="setClickState(true, false);">'+'<img src="'+first_event_image+'" width="40" height="35">'+'</td>'+'<td class="RoundedMid" style="border:0;" onClick="onSelectEventGeomLabel(\''+event_nid_list+'\',\''+geometry_id+'\',\''+geometry_bbox+'\',\''+description+'\');" onmouseover="setClickState(false, true);" onmouseout="setClickState(true, false);">'+
description+" Event: <br/>"+first_event_name+'</td>'+'<td valign="top" align="right"><a href=javascript:; onclick=showHideEventLabel("'+geometry_id+'",false);><img src="'+cg_pathfinder_path+'/images/label_close.gif" width="10" height="10" onmouseover="setClickState(false, false);" onmouseout="setClickState(true, false);"></a></td>'+'</tr></table>'+'</div><div class="RoundedBot"></div>');geoEventGeomMarkerArr['label'+geometry_id]=ge_label;map.addOverlay(ge_label);}}
break;}}}
function getGeographicalEvents(){show_Loading_image();var downld_url=base_path+"get_geographical_event/";GDownloadUrl(downld_url,function(data){if(!empty(data)){var JSONObj=JSON.decode(data);if(!empty(JSONObj)){var event_geometry=JSONObj.geographical_events.event_geometry;addEventGeometries(event_geometry);highlightGeometries(0);}}else{alert('Could not retrieve today events into map...!');}
hide_Loading_image();});}
function toggle_ge_logger_header(clicked_header){obj_ge_header=document.getElementById('geographical_event_lst');if(!empty(obj_ge_header)){if(clicked_header==="ge"){if(obj_ge_header.style.display=='none'){obj_ge_header.style.display='table-row';}else{document.getElementById('mainTabContainer').innerHTML=logger_array[current_index-1].content;document.getElementById('dash_title').innerHTML=title_logger[title_index-1];logger_array.splice(geLoggerId,1);title_logger.splice(geLoggerId,1);geLoggerId=0;}}}}
function showHideGeopgraphicalEvents(flag){var key=null;var key2=null;if(flag){for(key in geoEventGeomMarkerArr){if(!empty(geoEventGeomMarkerArr[key])){if(typeof(key)=="function"||key=="$family"){break;}
if(key!="center_marker"){geoEventGeomMarkerArr[key].show();}}}}else{removeGeographicalEventMarkers();for(key in geoEventGeomMarkerArr){if(!empty(geoEventGeomMarkerArr[key])){if(typeof(key)=="function"||key=="$family"){break;}
if(key!="center_marker"){geoEventGeomMarkerArr[key].hide();}else{map.removeOverlay(geoEventGeomMarkerArr[key]);}}}}}
function showGEventsOnMap(){if(isGeoHighlightingOn!=1)
{isGeoHighlightingOn=1;getGeographicalEvents();}else{if(document.getElementById('showGEvents').checked){showHideGeopgraphicalEvents(true);}
else{showHideGeopgraphicalEvents(false);}}}
function play_video(video_url){if(!empty(video_url)){if(empty(document.getElementById("videoPlayer"))){sendToNonverBlaster("switch:"+video_url);}}else{alert("Unable to play the video...");}}
function setClickState(geomFlag,labelFlag){enabledGeomClick=geomFlag;enabledLabelClick=labelFlag;}
function onSelectEventGeomLabel(param_str_nid_list,param_geometry_id,param_bbox,param_description){if(enabledLabelClick){if(empty(geoEventMarkerArr[param_geometry_id])){var nid_list=param_str_nid_list.split(",");var str_nid_list;str_nid_list=nid_list[0].split("=")[0];for(var j=1;j<nid_list.length;j++){str_nid_list+=","+nid_list[j].split("=")[0];}
loadGeographicalEventMarkers(str_nid_list,param_geometry_id,param_description);if(!empty(param_bbox)){param_bbox=param_bbox.substring(9,(param_bbox.length-2)).split(",");var upperLeft=param_bbox[0].split(" ");var lowerRight=param_bbox[2].split(" ");var areabound=new GLatLngBounds(new GLatLng(parseFloat(upperLeft[1]),parseFloat(upperLeft[0])),new GLatLng(parseFloat(lowerRight[1]),parseFloat(lowerRight[0])));if(map.getZoom()>=map.getBoundsZoomLevel(areabound)){if(map.getZoom()==map.getBoundsZoomLevel(areabound)){map.panTo(areabound.getCenter());}}else{map.setCenter(areabound.getCenter(),map.getBoundsZoomLevel(areabound));}}
showHideEventLabel(param_geometry_id,false);}}}
function adjustGEIconSize(zoom_level,event_marker,key,key2){var default_icon_size=geoEventIconSizesArr[key2];if(!empty(default_icon_size)){var current_width=default_icon_size.width;var current_height=default_icon_size.height;switch(zoom_level){case 7:event_marker.getIcon().iconSize=new GSize(current_width*0.4,current_height*0.4);event_marker.getIcon().infoWindowAnchor=new GPoint((current_width*0.4)/2,(current_height*0.4)/2);break;case 8:event_marker.getIcon().iconSize=new GSize(current_width*0.5,current_height*0.5);event_marker.getIcon().infoWindowAnchor=new GPoint((current_width*0.5)/2,(current_height*0.5)/2);break;case 9:event_marker.getIcon().iconSize=new GSize(current_width*0.6,current_height*0.6);event_marker.getIcon().infoWindowAnchor=new GPoint((current_width*0.6)/2,(current_height*0.6)/2);break;case 10:event_marker.getIcon().iconSize=new GSize(current_width*0.7,current_height*0.7);event_marker.getIcon().infoWindowAnchor=new GPoint((current_width*0.7)/2,(current_height*0.7)/2);break;default:event_marker.getIcon().iconSize=default_icon_size;event_marker.getIcon().infoWindowAnchor=new GPoint((current_width)/2,(current_height)/2);break;}
map.removeOverlay(geoEventMarkerArr[key][key2]);geoEventMarkerArr[key][key2]=event_marker;map.addOverlay(event_marker);}}
function changeGEMarkerSize(zoom){if(isGeoHighlightingOn){for(var key in geoEventMarkerArr){if(typeof(key)=="function"||key=="$family"){break;}
if(!empty(key)){for(var key2 in geoEventMarkerArr[key]){if(typeof(key2)=="function"||key=="$family"){break;}
if(!empty(key2)){if(!empty(geoEventMarkerArr[key][key2])){var element=geoEventMarkerArr[key][key2];if(element instanceof GMarker){adjustGEIconSize(zoom,element,key,key2);}}}}}}}}
