
google.load("maps","2");google.load("earth","1");window.onload=init;window.onresize=resizeLayout;var kmlDB,kmlType,kmlTable,kmlCol;var kmlFile;var kmlFile_nw;var kmlStyle='3D';var currentKml,currentKml3D,currentKmlUrl;var map;var geoXml;var ge;var previewdiv,previewdiv2;var table_list;var msgdiv,oldcol;var CIAlist,WRIlist,UNlist;var mapType;function init(){if(location.hash){kmlDB=(location.hash.match(/&db=(\w*)&/i))?location.hash.match(/&db=(\w*)&/i)[1]:'ciafb';kmlTable=(location.hash.match(/&table=(.\w*)&/i))?location.hash.match(/&table=(.\w*)&/i)[1]:'';kmlCol=(location.hash.match(/&col=(.\w*)&/i))?location.hash.match(/&col=(.\w*)&/i)[1]:'';pickDB(kmlDB,'find',kmlTable,kmlCol);}else{pickDB('ciafb');}
initialize_map();resizeLayout();switchTab(2,'3D');setupColors();pickColset(document.getElementById('colpickframe3D'),1);pickColset(document.getElementById('colpickframe2D'),1);pickColset(document.getElementById('colpickframe3Dneg'),1);pickColset(document.getElementById('colpickframe2Dneg'),1);validateLoginCookie('switchToMyData');document.getElementById('file_upload_form').onsubmit=uploadDo;document.getElementById("upload_target").onload=uploadDone;if(navigator.appName=="Microsoft Internet Explorer"){document.getElementById("message").innerHTML="<a class='grey right' href='javascript:hidemessage()'>X</a> You appear to be using Internet Explorer. This application works best in modern web browsers like <a target='_blank' href='http://www.mozilla.com/en-US/firefox/'>Firefox</a> or <a target='_blank' href='http://www.google.com/chrome'>Google Chrome</a>.";document.getElementById("message").style.display="block";}
window.onunload=GUnload;}
function resizeLayout(){var winheight=(document.all)?document.body.offsetHeight:window.innerHeight;var winwidth=(document.all)?document.body.offsetWidth:window.innerWidth;var mainheight=winheight-document.getElementById("header").offsetHeight-document.getElementById("footer").offsetHeight-0;if(navigator.appName=="Microsoft Internet Explorer"){var mapheight=mainheight-document.getElementById("about_data_outer").offsetHeight-80;}else{var mapheight=mainheight-document.getElementById("about_data_outer").offsetHeight-50;}
document.getElementById("main").style.height=mainheight+"px";document.getElementById("table_list").style.height=mainheight-document.getElementById("db").offsetHeight-document.getElementById("table_types").offsetHeight-document.getElementById("col_list").offsetHeight-12+"px";document.getElementById("map_canvas_outer").style.height=mapheight+"px";document.getElementById("map_canvas_outer").style.width=winwidth-document.getElementById("table_list").offsetWidth-document.getElementById("settings").offsetWidth-28+"px";if(navigator.appName=="Microsoft Internet Explorer"){document.getElementById("about_data_outer").style.width=winwidth-document.getElementById("table_list").offsetWidth-4+"px";document.getElementById("settings").style.height=mainheight-document.getElementById("about_data_outer").offsetHeight+"px";document.getElementById("tabledescr").style.width=document.getElementById("about_data_outer").offsetWidth-446+"px";}else{document.getElementById("settings").style.height=mainheight-document.getElementById("about_data_outer").offsetHeight-2+"px";document.getElementById("tabledescr").style.width=document.getElementById("about_data_outer").offsetWidth-426+"px";}
if(mapType=='2D'){if(mapheight>280){map.removeControl(smallzoomcontrol);map.addControl(bigzoomcontrol);}else{map.addControl(smallzoomcontrol);map.removeControl(bigzoomcontrol);}}else{map.getEarthInstance(function(ge){if(mapheight>280){ge.getNavigationControl().setVisibility(ge.VISIBILITY_AUTO);}else{ge.getNavigationControl().setVisibility(ge.VISIBILITY_HIDE);}});}
map.checkResize();}
function fullScreen(off){if(off){document.getElementById("selector").style.display="block";document.getElementById("settings").style.display="block";document.getElementById("about_data_outer").style.display="block";document.getElementById("footer").style.display="block";document.getElementById("mappr_top").style.display="block";document.getElementById("main_right").style.left="300px";document.getElementById("map_preview").style.left="202px";document.getElementById("map_preview").style.bottom="118px";document.getElementById("closeFullScreenBtn").style.display="none";}else{document.getElementById("selector").style.display="none";document.getElementById("settings").style.display="none";document.getElementById("about_data_outer").style.display="none";document.getElementById("footer").style.display="none";document.getElementById("mappr_top").style.display="none";document.getElementById("main_right").style.left=0;document.getElementById("map_preview").style.left=0;document.getElementById("map_preview").style.bottom=0;document.getElementById("closeFullScreenBtn").style.display="block";hidemessage();}
window.setTimeout(resizeLayout,50);}
function hidemessage(){document.getElementById("message").style.display="none";}
function setDB(db,type,table,col,updateAbout){kmlDB=db;editTable('hide');document.getElementById('table_types').innerHTML="<div class=\"tablelist bold\">Loading...</div>";document.getElementById('table_list').innerHTML="<div class=\"tablelist bold\">Loading...</div>";document.getElementById('col_list').innerHTML="<div class=\"tablelist bold\">Loading...</div>";if(kmlDB=='my_data'&&!loggedIn){document.getElementById('table_types').innerHTML="<div class=\"tablelist warn bold\">Please <a href='#' onclick='showLogin()'>sign in</a> or create an account using the link above to upload your own custom data-sets</div>";document.getElementById('table_list').innerHTML="<div class=\"tablelist bold\"></div>";document.getElementById('col_list').innerHTML="<div class=\"tablelist bold\"></div>";updateAboutData();return;}
if(db=='ciafb'&&CIAlist){setDBmakelist(CIAlist);}else if(db=='wri'&&WRIlist){setDBmakelist(WRIlist);}else if(db=='un'&&UNlist){setDBmakelist(UNlist);}else{var http=newHTTP();if(kmlDB=='my_data'){var username=readCookie('username');http.open("GET","./tablelist.php?db=user&user="+username);}else{http.open("GET","./tablelist.php?db="+kmlDB);}
http.onreadystatechange=function(){if(http.readyState==4){var data=JSONparse(http.responseText);setDBmakelist(data);if(db=='ciafb'){CIAlist=data;}
if(db=='wri'){WRIlist=data;}
if(db=='un'){UNlist=data;}}}
http.send(null);}
function setDBmakelist(data){if(data[0]==""){if(kmlDB=='my_data'){document.getElementById('table_types').innerHTML="<div class=\"tablelist bold\">No data uploaded yet. Please use the <a href='#' onclick='showUpload()'>Upload Data</a> link above to upload a CSV format file (comma separated file). For more help on uploading data please see the <a target='_blank' href='./about/'>Help &amp; About</a> pages.</div>";}else{document.getElementById('table_types').innerHTML="<div class=\"tablelist warn bold\">No data found in this database.</div>";}
document.getElementById('table_list').innerHTML="";document.getElementById('col_list').innerHTML="";updateAboutData();}else{table_list=data[1];var table_types=data[0];var table_typesHtml='';for(var i=0,ln=table_types.length;i<ln;i++){var item=table_types[i];table_typesHtml=table_typesHtml+"<div class=\"tablelist bold\" onmousedown=\"setType(\'"+item+"\')\">"+item+"</div>";}
document.getElementById('table_types').innerHTML=table_typesHtml;if(type=='find'){for(var i=0,j=0,ln=table_list.length;i<ln;i++){var item=table_list[i];if(item.tableid==table){type=item.type;}}}
if(type){setType(type,table,col,updateAbout);}else{setType(table_types[0],table,col,updateAbout);}}}}
function setType(type,table,col,updateAbout){showDBlist('hide');kmlType=type;editTable('hide');var table_listHtml='';var nodelist=document.getElementById('table_types').childNodes;for(var i=0,ln=nodelist.length;i<ln;i++){var item=nodelist[i];if(item.nodeName=='DIV'){if(innerText(item)!=kmlType){item.style.backgroundColor='';}else{item.style.backgroundColor='#AACCFF';}}}
for(var i=0,j=0,ln=table_list.length;i<ln;i++){var item=table_list[i];if(item.type==kmlType){var tablename=item.name.replace(/(.+?)(\(|:|( - ))(.*)/g,"<b>$1</b> $2$4");if(tablename.substr(0,3)!="<b>"){tablename="<b>"+tablename+"</b>"}
table_listHtml=table_listHtml+"<div id=\"table_"+item.tableid+"\" class=\"tablelist\" onmousedown=\"setTable(\'"+item.tableid+"\')\">"+tablename+"</div>";if(j==0){var firsttable=item.tableid;}
j++;}}
document.getElementById('table_list').innerHTML=table_listHtml;if(table!='no'){if(table){setTable(table,col,updateAbout);}else{setTable(firsttable,col,updateAbout);}}else{document.getElementById('col_list').innerHTML="<div class=\"tablelist bold\"></div>";}}
function setTable(table,col,updateAbout){editTable('hide');showDBlist('hide');if(document.getElementById('table_'+kmlTable)){document.getElementById('table_'+kmlTable).style.backgroundColor='';}
kmlTable=table;if(document.getElementById('table_'+kmlTable)){document.getElementById('table_'+kmlTable).style.backgroundColor='#AACCFF';}
getKmlUrl();updateCollist(kmlDB,kmlTable,col);if(updateAbout!='no'){updateAboutData(kmlDB,kmlTable);}
document.getElementById('PreviewData').style.fontWeight='bold';}
function setCol(column){showDBlist('hide');if(document.getElementById('col_'+oldcol)){document.getElementById('col_'+oldcol).style.backgroundColor='';}
if(document.getElementById('col_'+column)){document.getElementById('col_'+column).style.backgroundColor='#AACCFF';kmlCol=innerText(document.getElementById('col_'+column));}
oldcol=column;getKmlUrl();}
function updateCollist(db,table,col){document.getElementById('col_list').innerHTML="<div class=\"tablelist bold\">Loading...</div>";if(!table){table=kmlTable;}
var http=newHTTP();if(db=='my_data'&&loggedIn){var username=readCookie('username');http.open("GET","./collist.php?db=user&table="+table+"&user="+username);}else{http.open("GET","./collist.php?db="+db+"&table="+table);}
http.onreadystatechange=function(){if(http.readyState==4){var collist=JSONparse(http.responseText);var collistHtml='';for(var i=0,ln=collist.length;i<ln;i++){collistHtml+="<div id=\"col_"+i+"\" class=\"tablelist\" onmousedown=\"setCol(\'"+i+"\')\">"+collist[i]+"</div>";}
document.getElementById('col_list').innerHTML=collistHtml;if(col){var nodelist=document.getElementById('col_list').childNodes;for(var i=0,ln=nodelist.length;i<ln;i++){var item=nodelist[i];if(item.nodeName=='DIV'){if(innerText(item)==col){setCol(i);}}}}else{setCol(0);}}}
http.send(null);}
function updateAboutData(db,table){if(!db){document.getElementById('about_data').innerHTML='';return;}
document.getElementById('about_data').innerHTML="<b>Loading...</b>";if(!table){table=kmlTable;}
var http=newHTTP();if(db=='my_data'&&loggedIn){var username=readCookie('username');http.open("GET","./aboutdata.php?db=user&table="+table+"&user="+username);}else{http.open("GET","./aboutdata.php?db="+db+"&table="+table);}
http.onreadystatechange=function(){if(http.readyState==4){document.getElementById('about_data').innerHTML='';if(http.responseText){var tabledata=JSONparse(http.responseText);var aboutHtml='';if(db=='my_data'){aboutHtml+='<input class="button" type="button" value="Edit Details" onClick="editTable()"/>';if(kmlType!='Trash'){aboutHtml+='<input class="button" type="button" value="Delete table" onClick="deleteTable(\''+db+'\',\''+table+'\')"/>';}
aboutHtml+='<br/>';document.tabledata_form.tabletype.value='Other';document.tabledata_form.tabletype.value=kmlType;document.tabledata_form.tablename.value=tabledata.name;document.tabledata_form.tabledescr.value=tabledata.description;document.tabledata_form.tablelink.value=tabledata.link;document.tabledata_form.tablelinkname.value=tabledata.linkname;document.tabledata_form.tablepublic.checked=(tabledata.public=='1')?true:false;}
aboutHtml+='<b>'+tabledata.name+'</b> '+tabledata.description.replace('\n','<br/>')+'<div class="small"><br/>';if(tabledata.link!=""){if(tabledata.link.indexOf('://')==-1){tabledata.link='http://'+tabledata.link;}
if(tabledata.linkname==''){tabledata.linkname=tabledata.link;}
aboutHtml+='<b>Download this dataset</b>: <a target="_blank" href="'+tabledata.link+'">'+tabledata.linkname+'</a>';}
if(tabledata.license){aboutHtml+=' &nbsp;  &nbsp; <span class="license">(data license: <a target="_blank" href="'+tabledata.licenselink+'">'+tabledata.license+'</a>)</span>';}
if(tabledata.upload_time&&(db=='my_data'||db=='user')){aboutHtml+='<br/><br/><b>Uploaded:</b> '+tabledata.upload_time;if(tabledata.owner&&db=='user'){aboutHtml+=' <i>(by  <b>'+tabledata.owner+'</b>)</i>';}}
aboutHtml+='</div>';document.getElementById('about_data').innerHTML=aboutHtml;}}}
http.send(null);}
function switchTab(tab,type){showDBlist('hide');for(var n=1;n<=3;n++){if(n==tab){document.getElementById('settings_tab'+n).style.display='block';document.getElementById('tab'+n).style.backgroundColor='#6168AD';document.getElementById('tab'+n).style.backgroundPosition='0 26px';}else{document.getElementById('settings_tab'+n).style.display='none';document.getElementById('tab'+n).style.backgroundColor='#3A3F6C';document.getElementById('tab'+n).style.backgroundPosition='0 0';}}
kmlStyle=type;getKmlUrl();}
function togglecheck(checkboxelem,idOn,idOff){if(typeof(checkboxelem)=="string"){var checkboxelem=document.getElementById(checkboxelem);if(checkboxelem.checked){checkboxelem.checked=false;}else{checkboxelem.checked=true;}}
if(idOn){if(checkboxelem.checked){for(var i=0,ln=idOn.split(" ").length;i<ln;i++){document.getElementById(idOn.split(" ")[i]).style.display='inline';}
if(idOff){document.getElementById(idOff).style.display='none';}}else{for(var i=0,ln=idOn.split(" ").length;i<ln;i++){document.getElementById(idOn.split(" ")[i]).style.display='none';}
if(idOff){document.getElementById(idOff).style.display='inline';}}}
getKmlUrl();}
function pickDB(db,type,table,col){if(!document.getElementById("db_"+db)){db='ciafb';}
document.getElementById("db").innerHTML=document.getElementById("db_"+db).innerHTML;showDBlist('hide');setDB(db,type,table,col)}
function showDBlist(showhide){if(showhide=='hide'||(showhide!='show'&&document.getElementById('db_list').style.display=='block')){document.getElementById("db_list").style.display='none';document.getElementById("dbdropdown").style.backgroundPosition='0 0';}else{document.getElementById("db_list").style.display='block';document.getElementById("dbdropdown").style.backgroundPosition='0 40px';}}
function deleteTable(db,table){if(table&&db=='my_data'&&loggedIn){var answer=confirm("Delete this table?");if(answer){closepreview();var http=newHTTP();var username=readCookie('username');http.open("GET","./tableupdate.php?db=user&table="+table+"&user="+username+"&public=0&type=Trash");http.onreadystatechange=function(){if(http.readyState==4){results=http.responseText.split('|');if(results[0]=='true'){setDB('my_data',kmlType,'no','no','no');document.getElementById('about_data').innerHTML='<b>The table has been deleted</b><br/>You can still find it in the Trash category under My Data to the left<br/>';}else{document.getElementById('about_data').innerHTML='<b>Deleting table failed:</b><br/><span class="warning">'+results[1]+'</span>';}}}
http.send(null);}}}
function editTable(hide){if(hide||kmlDB!='my_data'){document.getElementById('about_data').style.display='block';document.getElementById('edit_tabledata').style.display='none';}else{document.getElementById('about_data').style.display='none';document.getElementById('edit_tabledata').style.display='block';}}
function editTableSubmit(db,table){if(table&&db=='my_data'&&loggedIn){var http=newHTTP();var username=readCookie('username');var newtype=escape(document.tabledata_form.tabletype.value);var newname=escape(document.tabledata_form.tablename.value);var newdescription=escape(document.tabledata_form.tabledescr.value);var newlink=escape(document.tabledata_form.tablelink.value);var newlinkname=escape(document.tabledata_form.tablelinkname.value);var newpublic=(document.tabledata_form.tablepublic.checked)?'1':'0';http.open("GET","./tableupdate.php?db=user&table="+table+"&user="+username+"&public="+newpublic+"&type="+newtype+"&name="+newname+"&link="+newlink+"&linkname="+newlinkname+"&description="+newdescription);http.onreadystatechange=function(){if(http.readyState==4){results=http.responseText.split('|');if(results[0]=='true'){editTable('hide');setDB('my_data',newtype,kmlTable);}else{document.getElementById('about_data').innerHTML='<b>Submitting changes failed:</b><br/><span class="warning">'+results[1]+'</span>';editTable('hide');}}}
http.send(null);}}
function setupColors(colpicker,destid){var colsets=[];if(destid){document.getElementById(destid).style.backgroundColor="#"+colpicker.color;colsets[0]=colpicker.parentNode;}else{var colpickframelist=['colpickframe2D','colpickframe2Dneg','colpickframe3D','colpickframe3Dneg'];for(var i=0,ln=colpickframelist.length;i<ln;i++){elem=document.getElementById(colpickframelist[i]);if(elem){colsets=colsets.concat(nodelist2array(elem.childNodes));}}}
for(var i=0,ln=colsets.length;i<ln;i++){if(colsets[i].tagName=="DIV"){var colsetlist=colsets[i].getElementsByTagName("div");var l=colsetlist.length-1;var endColor=getElemBgcolor(colsetlist[0]);var startColor=getElemBgcolor(colsetlist[l]);for(var k=0;k<l;k++){var red=Math.floor(endColor[0]*((l-k)/l)+startColor[0]*(k/l));var green=Math.floor(endColor[1]*((l-k)/l)+startColor[1]*(k/l));var blue=Math.floor(endColor[2]*((l-k)/l)+startColor[2]*(k/l));colsetlist[k].style.backgroundColor="rgb("+red+","+green+","+blue+")";}}}}
function getElemBgcolor(elem){var bgcolor=elem.style.backgroundColor;if(bgcolor.substr(0,4)=='rgb('){return bgcolor.replace(/rgb\(|\)/g,"").split(",");}else{return[h2d(bgcolor.substr(1,2)),h2d(bgcolor.substr(3,2)),h2d(bgcolor.substr(5,2))];}}
function getColors(id){var colsets=document.getElementById(id).childNodes;for(var i=0,ln=colsets.length;i<ln;i++){if(colsets[i].tagName=="DIV"){if(colsets[i].getElementsByTagName("input")[0].checked){var colsetlist=colsets[i].getElementsByTagName("div");var l=colsetlist.length-1;var endColor=getElemBgcolor(colsetlist[0]);var startColor=getElemBgcolor(colsetlist[l]);return[d2h(startColor[0])+d2h(startColor[1])+d2h(startColor[2]),d2h(endColor[0])+d2h(endColor[1])+d2h(endColor[2])];}}}}
function pickColset(elem,colsetnr){var colsets=elem.childNodes;for(var i=0,j=0,ln=colsets.length;i<ln;i++){if(colsets[i].tagName=="DIV"){j++;if(colsetnr!=j){colsets[i].style.backgroundColor='#FFFFFF';colsets[i].style.borderColor='#FFFFFF';}else{colsets[i].style.backgroundColor='#EEEEEE';colsets[i].style.borderColor='#B0B0B0';var subelem=colsets[i].childNodes;for(var k=0,ll=subelem.length;k<ll;k++){if(subelem[k].tagName=="INPUT"){subelem[k].checked=true;}}}}}
getKmlUrl();}
function hideColPicker(){if(jscolor.picker.owner){jscolor.picker.owner.hidePicker();}}
function d2h(d){return String("0"+parseInt(d).toString(16)).slice(-2).toUpperCase();}
function h2d(h){return parseInt(h,16);}
function nodelist2array(nodelist){var ar=[];for(var i=0,ln=nodelist.length;i<ln;i++){ar.push(nodelist[i]);}return ar;}
function innerText(node){if(navigator.appName=="Microsoft Internet Explorer"){return node.innerText;}else{return node.textContent;}}
function newHTTP(){if(navigator.appName=="Microsoft Internet Explorer"){return new ActiveXObject("Microsoft.XMLHTTP");}else{return new XMLHttpRequest();}}
function enterSubmit(src,e){var key;if(window.event)key=window.event.keyCode;else if(e)key=e.which;else return true;if(key==13){validateLogin();return false;}else return true;}
function deleteCookie(name){var d=new Date();document.cookie=name+"=''; expires="+d.toGMTString()+"; path=/"}
function setCookie(name,value,days){if(days){var date=new Date();date.setTime(date.getTime()+(days*24*60*60*1000));var expires="; expires="+date.toGMTString();}
else expires="";document.cookie=name+"="+value+expires+"; path=/";}
function readCookie(name){var nameEQ=name+"=";var ca=document.cookie.split(';');for(var i=0;i<ca.length;i++){var c=ca[i];while(c.charAt(0)==' ')c=c.substring(1,c.length);if(c.indexOf(nameEQ)==0)return c.substring(nameEQ.length,c.length);}
return null;}
function JSONparse(jsonstr){if(typeof JSON!='undefined'){return JSON.parse(jsonstr)}else{return jsonParse(jsonstr)}}
var jsonParse=(function(){var number='(?:-?\\b(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?\\b)';var oneChar='(?:[^\\0-\\x08\\x0a-\\x1f\"\\\\]'+'|\\\\(?:[\"/\\\\bfnrt]|u[0-9A-Fa-f]{4}))';var string='(?:\"'+oneChar+'*\")';var jsonToken=new RegExp('(?:false|true|null|[\\{\\}\\[\\]]'+'|'+number+'|'+string+')','g');var escapeSequence=new RegExp('\\\\(?:([^u])|u(.{4}))','g');var escapes={'"':'"','/':'/','\\':'\\','b':'\b','f':'\f','n':'\n','r':'\r','t':'\t'};function unescapeOne(_,ch,hex){return ch?escapes[ch]:String.fromCharCode(parseInt(hex,16));};var EMPTY_STRING=new String('');var SLASH='\\';var firstTokenCtors={'{':Object,'[':Array};return function(json){var toks=json.match(jsonToken);var result;var tok=toks[0];if('{'===tok){result={};}else if('['===tok){result=[];}else{throw new Error(tok);};var key;var stack=[result];for(var i=1,n=toks.length;i<n;++i){tok=toks[i];var cont;switch(tok.charCodeAt(0)){default:cont=stack[0];cont[key||cont.length]=+(tok);key=void 0;break;case 0x22:tok=tok.substring(1,tok.length-1);if(tok.indexOf(SLASH)!==-1){tok=tok.replace(escapeSequence,unescapeOne);};cont=stack[0];if(!key){if(cont instanceof Array){key=cont.length;}else{key=tok||EMPTY_STRING;break;}};cont[key]=tok;key=void 0;break;case 0x5b:cont=stack[0];stack.unshift(cont[key||cont.length]=[]);key=void 0;break;case 0x5d:stack.shift();break;case 0x66:cont=stack[0];cont[key||cont.length]=false;key=void 0;break;case 0x6e:cont=stack[0];cont[key||cont.length]=null;key=void 0;break;case 0x74:cont=stack[0];cont[key||cont.length]=true;key=void 0;break;case 0x7b:cont=stack[0];stack.unshift(cont[key||cont.length]={});key=void 0;break;case 0x7d:stack.shift();break;}};if(stack.length){throw new Error();};return result;};})();function getKmlUrl(){kmlFile='./buildkml.php?';if(kmlStyle=="2D"||kmlStyle=="3D"){if(kmlStyle=="2D"){var srcform=document.tab2Dform;}
if(kmlStyle=="3D"){var srcform=document.tab3Dform;}
if(!srcform){var srcform=document.tab3Dform;}
var kmlMaxheigth=srcform.maxheight.value;var kmlOpacity=d2h(Math.round(srcform.opacity.value*2.55));var kmlLineopacity=d2h(Math.round(srcform.lineopacity.value*2.55));var kmlLinecolor=srcform.linecolor.value;var kmlLinehicolor=srcform.linehicolor.value;var kmlNegcutoff=(srcform.usecutoff.checked)?srcform.negcutoff.value:"no";var kmlMakeplmark=(srcform.useplmark.checked)?"1":"0";var kmlPlmarkicon=srcform.plmark_icon.value;var kmlLabelsize=srcform.label_size.value;var kmlColor0=srcform.zerocolor.value;var kmlColors=getColors('colpickframe'+kmlStyle);var kmlColors2=getColors('colpickframe'+kmlStyle+'neg');kmlFile+='&db='+kmlDB+'&table='+kmlTable+'&col='+kmlCol+'&type='+kmlStyle+'&maxh='+kmlMaxheigth+'&plmark='+kmlMakeplmark+'&labl='+kmlLabelsize+'&clsta='+kmlColors[0]+'&clend='+kmlColors[1]+'&clopa='+kmlOpacity+'&clln='+kmlLinecolor+'&cllnhi='+kmlLinehicolor+'&cllnopa='+kmlLineopacity+'&negcut='+kmlNegcutoff+'&cl0='+kmlColor0+'&cl2sta='+kmlColors2[1]+'&cl2end='+kmlColors2[0]+'&plico='+kmlPlmarkicon;if(srcform.advchkbox.checked){if(kmlStyle=="3D"){var kmlFltLev=srcform.fltlev.value;kmlFile+='&fltlev='+kmlFltLev;}
var kmlMapsComp=(srcform.mapscompat.checked)?"1":"0";var kmlImgBundl=(srcform.bundleimg.checked)?"1":"0";var kmlTimetag=(srcform.timetag.checked)?"1":"0";kmlFile+='&gmaps='+kmlMapsComp+'&imgkmz='+kmlImgBundl+'&timetag='+kmlTimetag;}}
if(kmlStyle=="Chart"||kmlPlmarkicon=="chart"){srcform=document.tabChartform;var kmlChartSizeMin=srcform.chartSizeMin.value;var kmlChartSizeMax=(srcform.varchartsize.checked)?srcform.chartSizeMax.value:"no";var kmlChart360=srcform.chart360.value;var kmlChartcol0=srcform.chartcol0.value;var kmlChartcol1=srcform.chartcol1.value;var kmlDB3=srcform.chartSizeSrc.value.split('|')[0];var kmlTable3=srcform.chartSizeSrc.value.split('|')[1];var kmlCol3=srcform.chartSizeSrc.value.split('|')[2];if(kmlStyle=="Chart"){kmlFile+='&type=Chart'+'&plico=chart'+'&plmark=1';}
kmlFile+='&db4='+kmlDB+'&table4='+kmlTable+'&col4='+kmlCol+'&chismax='+kmlChartSizeMax+'&chismin='+kmlChartSizeMin+'&chmax='+kmlChart360+'&clch0='+kmlChartcol0+'&clch1='+kmlChartcol1+'&db3='+kmlDB3+'&table3='+kmlTable3+'&col3='+kmlCol3;if(srcform.advchkbox.checked){var kmlMapsComp=(srcform.mapscompat.checked)?"1":"0";var kmlTimetag=(srcform.timetag.checked)?"1":"0";var kmlLabelsize=srcform.label_size.value;kmlFile+='&gmaps='+kmlMapsComp+'&imgkmz='+kmlImgBundl+'&labl='+kmlLabelsize+'&timetag='+kmlTimetag;}}
location.hash='&db='+kmlDB+'&table='+kmlTable+'&col='+kmlCol+'&';kmlFile_nw=kmlFile+'&nwlink=1';if(currentKmlUrl==kmlFile_nw){document.getElementById('PreviewKml').style.fontWeight='normal';}else{document.getElementById('PreviewKml').style.fontWeight='bold';}}
function initialize_map(){if(GBrowserIsCompatible()){map=new google.maps.Map2(document.getElementById("map_canvas"),{backgroundColor:"#FFFFFF"});map.enableContinuousZoom();map.enableScrollWheelZoom();bigzoomcontrol=new GLargeMapControl();smallzoomcontrol=new GSmallZoomControl();map.addControl(bigzoomcontrol);map.addMapType(G_SATELLITE_3D_MAP);map.addMapType(G_PHYSICAL_MAP);map.removeMapType(G_NORMAL_MAP);map.removeMapType(G_SATELLITE_MAP);map.removeMapType(G_HYBRID_MAP);map.addControl(new GMapTypeControl());GEvent.addListener(map,"maptypechanged",mapTypeChange);if(google.earth.isInstalled()&&google.earth.isSupported()){map.setMapType(G_SATELLITE_3D_MAP);}else{map.setMapType(G_PHYSICAL_MAP);document.getElementById("message").innerHTML="<a class='grey right' href='javascript:hidemessage()'>X</a> The <a href='javascript:map.setMapType(G_SATELLITE_3D_MAP)'>Google Earth Plugin</a> does not appear to be installed. To enable all functionality of this site please <a target='_blank' href='http://earth.google.com/plugin/'>download it from Google</a>.";document.getElementById("message").style.display="block";}
map.setCenter(new GLatLng(30,-10),2);}}
function mapTypeChange(){closepreview();document.getElementById('PreviewKml').style.fontWeight='bold';if(map.getCurrentMapType().getUrlArg()=='e'){map.removeControl(bigzoomcontrol);map.removeControl(smallzoomcontrol);map.getEarthInstance(function(ge){if(document.getElementById("map_canvas_outer").style.height>'280px'){ge.getNavigationControl().setVisibility(ge.VISIBILITY_AUTO);}else{ge.getNavigationControl().setVisibility(ge.VISIBILITY_HIDE);}});mapType='3D';}else{if(document.getElementById("map_canvas_outer").style.height>'280px'){map.removeControl(smallzoomcontrol);map.addControl(bigzoomcontrol);}else{map.addControl(smallzoomcontrol);map.removeControl(bigzoomcontrol);}
mapType='2D';}}
function showKml(){statusMsg();getKmlUrl();if(mapType=='2D'){oldKml=currentKml;currentKml=new GGeoXml('http://www.kmlfactbook.org/devx/'+kmlFile_nw);if(oldKml){map.removeOverlay(oldKml);}
map.addOverlay(currentKml);GEvent.addListener(currentKml,"load",statusMsgClose);}else{oldKml3D=currentKml3D;map.getEarthInstance(function(ge){var http=newHTTP();http.open("GET",kmlFile_nw);http.onreadystatechange=function(){if(http.readyState==4){try{var kmlData=ge.parseKml(http.responseText);if(oldKml3D){ge.getFeatures().removeChild(oldKml3D);}
map.clearOverlays();currentKml3D=ge.getFeatures().appendChild(kmlData);}catch(ex){alert('Error parsing KML!');}
window.setTimeout(statusMsgClose,2000);}}
http.send(null);});}
currentKmlUrl=kmlFile_nw;}
function preview(notoggle){if(previewdiv&&!notoggle){closepreview();}else{if(mapType=='3D'&&(navigator.userAgent.split('/')[0]!='Mozilla'||navigator.userAgent.indexOf('Chrome')!=-1)){map.setMapType(G_PHYSICAL_MAP);}
document.getElementById('DataButton').style.fontWeight='bold';document.getElementById('DataButton').value='View Map';document.getElementById('PreviewKml').style.display='none';document.getElementById('PreviewData').style.display='inline';if(!previewdiv){previewdiv=document.createElement('div');previewdiv.setAttribute('id','data_preview');previewdiv2=document.createElement('div');previewdiv2.setAttribute('id','preview_inner');document.getElementById('map_canvas_outer').appendChild(previewdiv);previewdiv.appendChild(previewdiv2);}
previewdiv2.innerHTML='Loading...';var http=newHTTP();if(kmlDB=='my_data'&&loggedIn){var username=readCookie('username');http.open("GET","./preview.php?db=user&table="+kmlTable+"&col="+kmlCol+"&user="+username);}else{http.open("GET","./preview.php?&db="+kmlDB+"&table="+kmlTable+"&col="+kmlCol);}
http.onreadystatechange=function(){if(http.readyState==4){var data=JSONparse(http.responseText);var newtable='<table class="preview"><thead class="nosel"><tr><th>Rank</th><th onclick="sortTable(\'previewTableBody\', 1, true);">Region</th>';var colNum=2;for(var col in data[0]){if(col!='cc'&&col!='country'){newtable+='<th onclick="sortTable(\'previewTableBody\', '+colNum+', true);">'+col+'</th>';colNum++;}}
newtable+='</tr></thead><tbody id="previewTableBody">';var altrow;for(var row in data){newtable=newtable+'<tr class="'+altrow+'"><td class="num">'+(parseFloat(row)+1)+'</td>';if((data[row].cc==''||data[row].cc=='-'||!data[row].cc)&&kmlDB=='my_data'){newtable=newtable+'<td class="warn">'+data[row].country+'</td>';}else{newtable=newtable+'<td>'+data[row].country+'</td>';}
for(var col in data[row]){if(col!='cc'&&col!='country'){newtable=newtable+'<td class="num">'+data[row][col]+'</td>';}}
newtable=newtable+'</tr>';altrow=(altrow)?'':'alternateRow';}
newtable+='</tbody></table>';previewdiv2.innerHTML=newtable;}}
http.send(null);document.getElementById('PreviewData').style.fontWeight='normal';}}
function closepreview(){document.getElementById('DataButton').value='View Data';if(previewdiv){document.getElementById('PreviewKml').style.display='inline';document.getElementById('PreviewData').style.display='none';document.getElementById('map_canvas_outer').removeChild(previewdiv);document.getElementById('DataButton').style.fontWeight='normal';previewdiv='';}}
function statusMsg(message){if(!message){message='Loading...';}
if(!msgdiv){msgdiv=document.createElement('div');msgdiv.setAttribute('id','status_message');document.getElementById('map_canvas_outer').appendChild(msgdiv);}
msgdiv.innerHTML=message;}
function statusMsgClose(){if(msgdiv){document.getElementById('map_canvas_outer').removeChild(msgdiv);msgdiv='';}
document.getElementById('PreviewKml').style.fontWeight='normal';}
var loggedIn=false;var seed=0;loginShown=false;function showLogin(){hideUpload();toggleLoginSignup('hide');if(loginShown){hideLogin();}else{document.getElementById('login_window').style.display='block';getSeed();document.getElementById('login_message').innerHTML='Enter your username and password to log in.';loginShown=true;document.getElementById('username').focus();}}
function hideLogin(){document.getElementById('login_window').style.display='none';loginShown=false;}
function toggleLoginSignup(hide){if(hide){document.login_form.newuser.checked=false;}
if(document.login_form.newuser.checked){document.getElementById("login_window").style.height='300px';document.getElementById("login_button").style.display='none';document.getElementById("signup_button").style.display='inline';}else{document.getElementById("login_window").style.height='130px';document.getElementById("login_button").style.display='inline';document.getElementById("signup_button").style.display='none';}}
function getSeed(){if(!loggedIn&&!seed){var http=newHTTP();http.open('GET','./login.php?task=getseed',true);http.onreadystatechange=function(){if(http.readyState==4){seed=http.responseText;}}
http.send(null);}}
function validateLogin(){document.getElementById('login_message').innerHTML='&nbsp;';if(loggedIn){return;}
var username=document.getElementById('username').value;var password=document.getElementById('password').value;if(username!=''&&password!=''){var hash=hex_md5(hex_md5(password).toLowerCase()+seed);var http=newHTTP();http.open('GET','./login.php?task=checklogin&username='+username+'&hash='+hash,true);hash='';http.onreadystatechange=function(){if(http.readyState==4){results=http.responseText.split('|');if(results[0]=='true'){setCookie('username',username);loggedIn=true;hidemessage();document.getElementById('login_message').innerHTML='&nbsp;';document.getElementById('logon_name').innerHTML=': '+username;username=document.getElementById('username').value='';password=document.getElementById('password').value='';document.getElementById('login_link').style.display='none';document.getElementById('logout_link').style.display='inline';document.getElementById('upload_link').style.display='inline';hideLogin();pickDB('my_data');}else{document.getElementById('login_message').innerHTML='<span id="login_warning">'+results[1]+'</span>';}}}
http.send(null);}}
function validateLoginCookie(switchToMyData){var session=readCookie('PHPSESSID');var username=readCookie('username');if(username&&session){var http=newHTTP();http.open('GET','./login.php?task=checklogin&username='+username+'&hash=r',true);http.onreadystatechange=function(){if(http.readyState==4){results=http.responseText.split('|');if(results[0]=='true'){setCookie('username',username);loggedIn=true;hidemessage();document.getElementById('login_message').innerHTML='&nbsp;';document.getElementById('logon_name').innerHTML=': '+username;username=document.getElementById('username').value='';password=document.getElementById('password').value='';document.getElementById('login_link').style.display='none';document.getElementById('logout_link').style.display='inline';document.getElementById('upload_link').style.display='inline';if(switchToMyData){pickDB('my_data');}}else{logOut();}}}
http.send(null);}}
function logOut(){hideUpload();loggedIn=false;var username=readCookie('username');var http=newHTTP();http.open('GET','./login.php?task=logout&username='+username,true);http.onreadystatechange=function(){return 0;}
http.send(null);seed=0;username=document.getElementById('username').value='';password=document.getElementById('password').value='';document.getElementById('password2').value='';document.getElementById('fullname').value='';document.getElementById('emailaddr').value='';deleteCookie('username');deleteCookie('PHPSESSID');document.getElementById('logon_name').innerHTML='';document.getElementById('login_link').style.display='inline';document.getElementById('logout_link').style.display='none';document.getElementById('upload_link').style.display='none';if(kmlDB=='my_data'){pickDB('ciafb');}}
function validateSignup(){document.getElementById('login_message').innerHTML='&nbsp;';if(loggedIn){return;}
var username=document.getElementById('username').value;var password=document.getElementById('password').value;var password2=document.getElementById('password2').value;var emailaddr=document.getElementById('emailaddr').value;var fullname=document.getElementById('fullname').value;if(password!=password2){document.getElementById('login_message').innerHTML='<span id="login_warning">Passwords do not match</span>';return;}
if(username!=''&&password!=''){var pwhash=hex_md5(password);var http=newHTTP();http.open('GET','./login.php?task=signup&username='+username+'&hash='+pwhash+'&email='+emailaddr+'&fullname='+fullname,true);pwhash='';http.onreadystatechange=function(){if(http.readyState==4){results=http.responseText.split('|');if(results[0]=='true'){setCookie('username',username);loggedIn=true;hidemessage();document.getElementById('login_message').innerHTML='New user account created successfully';document.getElementById('logon_name').innerHTML=': '+username;username=document.getElementById('username').value='';password=document.getElementById('password').value='';document.getElementById('login_link').style.display='none';document.getElementById('logout_link').style.display='inline';document.getElementById('upload_link').style.display='inline';toggleLoginSignup();hideLogin();pickDB('my_data');document.getElementById('login_message').innerHTML='&nbsp;';}else{document.getElementById('login_message').innerHTML='<span id="login_warning">'+results[1]+'</span>';}}}
http.send(null);}}
uploadShown=false;function showUpload(){hideLogin();if(uploadShown){hideUpload();}else{document.getElementById('upload_window').style.display='block';document.getElementById('upload_error').style.display='none';uploadShown=true;}}
function hideUpload(){document.getElementById('upload_window').style.display='none';document.getElementById('upload_error').style.display='none';uploadShown=false;}
function uploadDo(){document.getElementById('file_upload_form').target='upload_target';document.getElementById('pre_upload').style.display='none';document.getElementById('uploading').style.display='block';document.getElementById('upload_error').style.display='none';}
function uploadDone(){var ret=frames['upload_target'].document.getElementsByTagName("body")[0].innerHTML;if(ret.split("|")[0]!='true'){hideUpload();document.getElementById('pre_upload').style.display='block';document.getElementById('uploading').style.display='none';setDB('my_data','newly_submitted');window.setTimeout(function(){editTable();preview('notoggle')},500);}else{document.getElementById('pre_upload').style.display='block';document.getElementById('uploading').style.display='none';document.getElementById('upload_error').innerHTML=ret.split("|")[1];document.getElementById('upload_error').style.display='block';}}