/*******************************************************************************

 *         FILE:  consvalmap.js
 *
 *        USAGE:  called from the browser
 *
 *  DESCRIPTION:  main javascript for the application
 *
 *      OPTIONS:  ---
 * REQUIREMENTS:  ---
 *         BUGS:  ---
 *        NOTES:  ---
 *       AUTHOR:  Puneet Kishor (Pk), <punkish@eidesis.org>
 *      COMPANY:  eidesis
 *      VERSION:  1.0
 *      CREATED:  October 2008
 *     REVISION:  ---
 *    COPYRIGHT:  Creative Commons 3.0, CC-BY
*******************************************************************************/

var big_markers=[];var small_markers=[];var zl_default=2;var zl_current=zl_default;var zl_prev=zl_default;var zl_big_icons=2;var ptsArray;var json;var lang;var langs=['es','en','pt'];var rmarkers=[];var wms_hwal,wms_wal,wms_hal,wms_al,wms_hwl,wms_wl,wms_hl,wms_l,wms_hwa,wms_wa,wms_ha,wms_a,wms_hw,wms_w,wms_h;var arr_added_wms_layers=[];var m;var mapserv;var mapfile;var gmaps_zl_to_meters={z0:184807952,z1:103376415,z2:26158345,z3:62696080,z4:33687521,z5:13888081,z6:4684788,z7:2692589,z8:1307893,z9:644426,z10:313563,z11:158544,z12:79321,z13:39599,z14:19772,z15:9875,z16:4936,z17:2468};var arr_wms_layers=['wms_hwal','wms_wal','wms_hal','wms_al','wms_hwl','wms_wl','wms_hl','wms_l','wms_hwa','wms_wa','wms_ha','wms_a','wms_hw','wms_w','wms_h'];var wms_layers={wms_hwal:'hotspots,wdpa,aze,languages',wms_wal:'wdpa,aze,languages',wms_hal:'hotspots,aze,languages',wms_hwl:'hotspots,wdpa,languages',wms_hwa:'hotspots,wdpa,aze',wms_wa:'wdpa,aze',wms_al:'aze,languages',wms_wl:'wdpa,languages',wms_hl:'hotspots,languages',wms_hw:'hotspots,wdpa',wms_ha:'hotspots,aze',wms_h:'hotspots',wms_w:'wdpa',wms_a:'aze',wms_l:'languages',};var wms=[];wms.hotspots=[];wms.hotspots.zoomlevel=4;wms.hotspots.opacity=0.35;wms.hotspots.longname_en="Conservation International Priority Areas";wms.hotspots.longname_es="&Aacute;reas prioritarias para Conservation International";wms.hotspots.longname_pt="&Aacute;reas Priorit&aacute;rias para Conserva&ccedil;&atilde;o Internacional";wms.wdpa=[];wms.wdpa.zoomlevel=7;wms.wdpa.opacity=0.55;wms.wdpa.longname_en="World Database of Protected Areas";wms.wdpa.longname_es="Base de Datos Mundial de &Aacute;reas Protegidas";wms.wdpa.longname_pt="Banco de Dados Mundial de &Aacute;reas Protegidas";wms.aze=[];wms.aze.zoomlevel=5;wms.aze.opacity=0.85;wms.aze.longname_en="Alliance for Zero Extinction";wms.aze.longname_es="Alianza para Cero Extinci&oacute;n";wms.aze.longname_pt="Alianca para Extin&ccedil;&atilde;o Zero";wms.languages=[];wms.languages.zoomlevel=7;wms.languages.opacity=0.85;wms.languages.longname_en="Indigenous Languages";wms.languages.longname_es="Lenguas Indígenas";wms.languages.longname_pt="L&iacute;nguas Ind&iacute;genas";var zl_msg=[];zl_msg.en="please zoom in to see this layer";zl_msg.es="por favor haga un acercamiento para ver esta capa";zl_msg.pt="por favor, aproxime para ver esta camada";var iw={cs_lbl:{en:"Case Study",es:"Estudio de Caso",pt:"Estudo de Caso"},cs_desc_lbl:{en:"Description",es:"Descripci&oacute;n",pt:"Descri&ccedil;&atilde;o"},cit_lbl:{en:"Citation",es:"Cita",pt:"Cita&ccedil;&atilde;o"},et_lbl:{en:"Ecosystem Type",es:"Tipo de Ecosistema",pt:"Tipo de Ecosistema"}};function toggle_markers(sid){var arr=sid.split(",");function swap_icons(arr_icons,arr_sid){function get_mval(t,g){var mval;if(t==='s'){mval=g.service_id;}else if(t==='t'){mval=g.service_type_id;}else if(t==='e'){mval=g.ecosystem_type_id;}return mval;}for(var i=0;i<arr_icons.length;i+=1){if(arr[1]===get_mval(arr_sid[0],arr_icons[i])){m.removeOverlay(arr_icons[i]);if(document.getElementById(arr_sid[0]+","+arr_sid[1]).checked===true){m.addOverlay(arr_icons[i]);}}}}if(zl_current<zl_big_icons){swap_icons(small_markers,arr);}else{swap_icons(big_markers,arr);}}function icon(icon_type){var i=new GIcon(),is=28,ia=14,iw=14;if(zl_current>=zl_big_icons){is=30;ia=15;iw=15;}i.image="img/small/"+icon_type+".png";i.iconSize=new GSize(is,is);i.iconAnchor=new GPoint(ia,ia);i.infoWindowAnchor=new GPoint(iw,iw);return i;}function get_tr_link(){var lang_link="";for(var i in langs){if(json["cs_"+langs[i]]!==null){lang_link+="<a href='#' onclick='trans(\""+langs[i]+"\");'>"+langs[i]+"</a>&nbsp;&nbsp;";}else{lang_link+=langs[i]+"&nbsp;&nbsp;";}}return lang_link;}function trans(mode){document.getElementById("csid").innerHTML=iw.cs_lbl[mode]+' #'+json.cs_id;document.getElementById("cs").innerHTML='<span class="label">'+iw.cs_desc_lbl[mode]+':</span> '+json["cs_"+mode];document.getElementById("et").innerHTML='<span class="label">'+iw.et_lbl[mode]+':</span> '+json["et_"+mode];}function htmlizeInfoWindow(json,lng){var t='<table width="480" cellpadding="0" cellspacing="0" border="0">';t+='<tr><td><span id="csid" class="label" style="padding:2px;">'+iw.cs_lbl[lng]+' #'+json.cs_id+'</span></td><td align="right">'+get_tr_link()+'</td></tr>';t+='<tr>';t+='<td width="290" height="95">';t+='<div id="cs" class="infowin">';t+='<span class="label">'+iw.cs_desc_lbl[lng]+':</span> '+json["cs_"+lng];t+='</div>';t+='</td>';t+='<td width="190" height="190" align="center" valign="middle" rowspan="2" bgcolor="#000"><img src="index.cgi?a=viewoneimage&casestudy_id='+json.cs_id+'"></td>';t+='</tr>';t+='<tr>';t+='<td width="300" height="95">';t+='<div id="cit" class="infowin"><span class="label">'+iw.cit_lbl[lng]+':</span> '+json["cit_"+lng]+'</div>';t+='</td>';t+='</tr>';t+='<tr>';t+='<td colspan="2">';t+='<div id="et" class="infowin1"><span class="label">'+iw.et_lbl[lng]+':</span> '+json["et_"+lng]+'</div>';t+='<div id="botrow" class="infowin1"><span class="label">URI:</span> <a href="'+json.uri+'" title="_blank">'+json.uri+'</a></div>';t+='</td>';t+='</tr>';t+='</table>';return t;}function get_am(marker,cite_url){GDownloadUrl(cite_url,function(txt,responseCode){json=eval('('+txt+')');json=json[0];var html=htmlizeInfoWindow(json,lang);marker.openInfoWindowHtml(html);});}function am(marker,cite_url){GEvent.addListener(marker,"click",function(){get_am(marker,cite_url);});}function marker_array(arr,ptArray,itype){var m1=new GMarker(new GLatLng(ptArray[0],ptArray[1]),icon(itype));m1.casestudy_id=ptArray[2];m1.service_id=ptArray[3];m1.service_type_id=ptArray[4];m1.ecosystem_type_id=ptArray[5];m.addOverlay(m1);arr.push(m1);return m1;}function cm(ptsArray,lang){for(var i=0;i<ptsArray.length;i+=1){var ptArray=ptsArray[i].split(",");if(ptArray[2]>0){if(zl_current<zl_big_icons){var itype="st"+ptArray[4];var m1=marker_array(small_markers,ptArray,itype);}else if(zl_current>=zl_big_icons){var itype="s"+ptArray[3]+"_st"+ptArray[4];var m1=marker_array(big_markers,ptArray,itype);am(m1,"index.cgi?lang="+lang+"&a=viewone&casestudy_id="+ptArray[2]);}}}}function htmlizeSearchResults(json){var t="<table class='stripeMe'>";for(var i=0;i<json.length;i+=1){t+="<tr><td>"+json[i].casestudy_id+": "+json[i].context+"<a href='javascript:panTo("+json[i].casestudy_id+","+json[i].lat+","+json[i].lon+");'>&raquo;&raquo;</a></td></tr>";}t+="</table>";return t;}function ch(point,icon_type){var marker=new GMarker(point,icon(icon_type));rmarkers.push(marker);marker.icon_type=icon_type;return marker;}function panTo(casestudy_id,lat,lon){var point=new GLatLng(lat,lon);var i;for(i=0;i<rmarkers.length;i+=1){if(rmarkers[i].icon_type==="highlight"){m.removeOverlay(rmarkers[i]);}}if(zl_current<zl_big_icons){m.setZoom(zl_big_icons);zl_current=zl_big_icons;}var focus_marker;for(i=0;i<big_markers.length;i+=1){if(big_markers[i].casestudy_id==casestudy_id){focus_marker=i;m.removeOverlay(big_markers[i]);}}m.addOverlay(ch(point,"highlight"));m.addOverlay(big_markers[focus_marker]);m.panTo(point);get_am(big_markers[focus_marker],"index.cgi?lang="+lang+"&a=viewone&casestudy_id="+casestudy_id);}function addCustomLayer(layers,mapserv,mapfile){var t=new GTileLayer(new GCopyrightCollection(""),1,10);t.myLayers=layers;t.myBaseURL=mapserv+'?map='+mapfile;t.isPng();t.getTileUrl=CustomGetTileUrl;return new GTileLayerOverlay(t);}function toggle_wms_layers(){var arr_frm_layers=document.frm_layers.wms_layers_chk;var layer_name='wms_';for(var i in arr_frm_layers){if(arr_frm_layers[i].id!==undefined){if(document.getElementById(arr_frm_layers[i].id).checked===true){layer_name+=arr_frm_layers[i].id.substr(0,1);}}}function addWmsLayer(layer_name){eval(layer_name+" = addCustomLayer(wms_layers[layer_name], mapserv, mapfile)");}if(layer_name!=='wms_'){if(arr_added_wms_layers.length>0){for(var i=0;i<arr_added_wms_layers.length;i+=1){if(is_in_array(layer_name,arr_added_wms_layers)===0){addWmsLayer(layer_name);arr_added_wms_layers.push(layer_name);}}}else{addWmsLayer(layer_name);arr_added_wms_layers.push(layer_name);}}for(var i in arr_added_wms_layers){m.removeOverlay(eval(arr_added_wms_layers[i]));if(arr_added_wms_layers[i]===layer_name){m.addOverlay(eval(arr_added_wms_layers[i]));}}}function map_menu(){var menu='<form name="frm_layers"><table>';var lyr;for(lyr in wms){var state="disabled";var zms=" <i><font face='serif'>("+zl_msg[lang]+")</font></i>";var img=lyr+'_dis.png';if(zl_current>=wms[lyr]["zoomlevel"]){state="checked";zms="";img=lyr+'.png';}menu+="<tr valign='top'><td width='70'><input name='wms_layers_chk' id='"+lyr+"' type='checkbox' onclick='toggle_wms_layers()' "+state+"' /> ";menu+="<img src='img/"+img+"' onclick='toggle_wms_layers()' align='middle' border='1' alt='"+lyr+"'></td><td>"+wms[lyr]["longname_"+lang]+zms+"</td></tr>";}menu+="</table></form>";$("#fragment-2").html(menu);}function is_in_array(el,arr){for(var i=0;i<arr.length;i+=1){if(arr[i]===el){return 1;}}return 0;}function onZoomEnd(){zl_current=m.getZoom();map_menu();toggle_wms_layers();if((zl_prev>=zl_big_icons)&&(zl_current<zl_big_icons)){for(i=0;i<big_markers.length;i+=1){m.removeOverlay(big_markers[i]);m.addOverlay(small_markers[i]);}}else if((zl_prev<zl_big_icons)&&(zl_current>=zl_big_icons)){if(big_markers.length==0){for(i=0;i<small_markers.length;i+=1){m.removeOverlay(small_markers[i]);}cm(ptsArray,lang);}else{for(i=0;i<small_markers.length;i+=1){m.removeOverlay(small_markers[i]);m.addOverlay(big_markers[i]);}}}zl_prev=zl_current;}function zOfMarker(marker,b){return-1000;}
