
function hmu(){hd('mpmenu');hideGroupsNav();}
function doconclick(){hmu();}
var gpostlist=true;var gpostmode="postlist";var postmodes=["postlist","newpost","viewpost"];function isFF()
{if(/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)){var ffversion=new Number(RegExp.$1)
if(ffversion>=1)
return true;}
return false;}
function spm(pmode,nocall)
{var changed=(gpostmode!=pmode);gpostmode=pmode;if(pmode=="postlist")
{ssn(5,3);sw('cblocoption');}
if(changed&&!nocall)
{if(pmode=="postlist")
fps(true);}
if(pmode=="newpost")
{ssn(6,3);hd('cblocoption');if(!nocall)fnah();}
else if(pmode=="viewpost")
{ssn(13,3);hd('cblocoption');}
return changed;}
function setNCls(el,n){var o=dd(el);if(o)o.className=n;}
function setCls(o,n){if(o)o.className=n;}
function ptChoose(i,nocall)
{shobj('cblocoption',(i==0));return spm(postmodes[i],nocall);}
var allgroupsids=["allmysubgroups","allpubgroups"];var allgroupsnames=["My Groups","Public Groups"];var ggroupfilter="";var map=null;var geocoder=null;var is_demo=false;var demo_group="public";function rel()
{dd("contenttable").style.height=getClientHeight()+"px";if(dd("contentarea"))
{var pos=findPos(dd("contentarea"));dd("contentarea").style.height=(getClientHeight()-pos.top-1-dd("contentarea").scrollTop)+"px";}}
function onWindowResize()
{rel();fps();}
function mpc(latlng,zoom)
{if(typeof zoom=="undefined")zoom=map.getZoom();if(zoom==map.getZoom()&&map.getBounds().containsLatLng(latlng))
{sdr=true;map.panTo(latlng);sdr=false;fps(suspended_need_total);suspended_need_total=false;}
else
map.setCenter(latlng,zoom);}
var onMapDrag=null;var start_at_home=true;var home_load_checked=false;function setNumFavs(fv)
{var c=(fv=="")?0:fv.split(",").length;var o=dd("numfavs");if(o){o.innerHTML="("+c+")";}}
function loaddata()
{if(pics_only)setPicsOnly(true,true);if(pois_only)setPOIsOnly(true,true);if(locations_only)setLocationsOnly(true,true);if(author!="")setAuthor(author,false);if(fav_only)setFavOnly(true,true);if(is_preview)setPreviewOnly(true,true);fav_list=get_cookie("fv");setNumFavs(fav_list);addToNV(selgroups,"My Groups",{group_title:"",is_subscribed:"1",is_owned:"0"});addToNV(selgroups,"Public Groups",{group_title:"",is_subscribed:"0",is_owned:"0"});if(typeof username=="undefined"||username==""||username=="webuser"||username=="geodemo")
{username=demouser;token=demotoken;is_demo=true;}
if(defgroup!=""&&defgroup.toLowerCase()!="my groups"&&defgroup.toLowerCase()!="mygroups"&&defgroup.toLowerCase()!="public groups"&&defgroup.toLowerCase()!="publicgroups")
addGroupByName(defgroup);else if(openv!="post"&&author=="")
{if(is_demo)
{addGroupE(allgroupsids[1],allgroupsnames[1]);}
else
addGroupE(allgroupsids[0],allgroupsnames[0]);}
if(jumpto&&jumpto!="")
{eval(jumpto);}
else if(is_demo)
fallg(0);else
fsubg(0,false);if(!is_demo)
fhal();}
function unload()
{GUnload();display_logs=null;display_groups=null;post_response_map=null;post_response_list=null;}
function load(){var llat=get_cookie("lat");var llng=get_cookie("lng");var zzoom=get_cookie("zoom");loadWidgetConfig();if(llat&&llat!="")
{start_at_home=false;lat=parseFloat(llat);if(llng&&llng!="")
lon=parseFloat(llng);}
if(zzoom&&zzoom!="")zoom=pnt(zzoom);if(GBrowserIsCompatible()){geocoder=new GClientGeocoder();map=new GMap2(dd("map"));var latlng=new GLatLng(lat,lon);mapHistoryAdd(latlng,zoom);map.setCenter(latlng,zoom);map.setUIToDefault();GEvent.addListener(map,"click",function(overlay,point)
{if(overlay&&typeof overlay.ismarker!="undefined")
onMClk(overlay);else if(overlay&&typeof overlay.newmarkerhtml!="undefined")
showmarkerpop(overlay,overlay.newmarkerhtml);else if(overlay&&typeof overlay.ishomemarker!="undefined")
onHomeMarkerClick(overlay);else if(overlay&&typeof overlay.pmhtml!="undefined")
showmarkerpop(overlay,overlay.pmhtml);else if(overlay&&typeof overlay.mstop!="undefined")
showStopPop(overlay,overlay.mstop);});GEvent.addListener(map,"removeoverlay",function(overlay)
{if(typeof overlay.mpop!="undefined"&&overlay.mpop==markerpop&&overlay.mpop!=null)
{markerpopvisible=false;map.removeOverlay(overlay.mpop);overlay.mpop=null;markerpop=null;}});GEvent.addListener(map,"moveend",onMapDrag);GEvent.addListener(map,"zoomend",onZoomEnd);GEvent.addListener(map,"movestart",onMapMoveStart);map.enableScrollWheelZoom();window.setTimeout("loaddata()",50);rel();if(isFF())map.checkResize();}}
function onZoomEnd()
{updateHistLine();}
function onMapMoveStart(){if(dd("centerico").style.zIndex!="101")dd("centerico").style.zIndex="101";}
var sgs=new Array();var selgroups=new Array();function execAjax(url,callback_fn,waitcursorpos)
{if(!waitcursorpos)waitcursorpos=0;var xmlhttp=null;if(xmlhttp==null)
{if(window.XMLHttpRequest)
{xmlhttp=new XMLHttpRequest();}
else if(window.ActiveXObject)
{xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}}
else
{xmlhttp.abort();}
if(xmlhttp!=null&&(xmlhttp.readyState==4||xmlhttp.readyState==0))
{xmlhttp.onreadystatechange=function(){if(this.readyState==4)
{showWaitCursor(false,waitcursorpos);if(this.status==200)
callback_fn(this.responseText);this.obj=null;}};showWaitCursor(true,waitcursorpos);xmlhttp.open("GET",url,true);xmlhttp.send(null);}
else
{}}
function funcName(fn){if(!fn)return"";var pos=fn.indexOf("(");if(pos>0)
return fn.substring(0,pos);return null;}
var func_history=new Array();function pushBackFunc(fn,rep)
{if(!rep)rep=false;if(rep)
{var cfname=funcName(fn);var lfname=funcName(getBackFunc());if(cfname&&lfname&&cfname==lfname)
popBackFunc();}
func_history.push(fn);}
function getBackFunc(i)
{if(!i)i=0;if(func_history.length>i)
return func_history[func_history.length-1-i];return null;}
function popBackFunc()
{if(func_history.length>0)
return func_history.pop();return null;}
function backCount(){return func_history.length;}
var need_total=true;function signOut()
{window.location.href="https://"+server_name+"/sec/signout.php?op=set&redir="+
encodeURIComponent("http://"+server_name+"/geogroups/")+"&u="+username+"&op=set&t="+token;}
function subPerms(g)
{var perms={"rp":g.rp,"rl":g.rl,"cp":g.cp,"cl":g.cl};if(g.rp=="1"&&g.mrp=="1")
perms.rp="0";if(g.rl=="1"&&g.mrl=="1")
perms.rl="0";if(g.cp=="1"&&g.mcp=="1")
perms.cp="0";if(g.cl=="1"&&g.mcl=="1")
perms.cl="0";return perms;}
function getMyPermStr(g)
{var permarr=new Array();if(g.mrp=="1"&&g.mrl=="1"&&g.mcp=="1"&&g.mcl=="1")
return"View And Create Posts";if(g.mrp=="1")
{if(g.mrl=="1")
permarr.push("View All Posts");else
permarr.push("View POI Posts");}
else if(g.mrl=="1")
permarr.push("View User Locations");if(g.mcp=="1")
{if(g.mcl=="1")
permarr.push("Create Posts");else
permarr.push("Create POI Posts");}
else if(g.mcl=="1")
permarr.push("Post Your Location");var permstr=makelist(permarr);return permstr;}
function getPermStr(r)
{var permarr=new Array();if(r.rp=="1"&&r.rl=="1"&&r.cp=="1"&&r.cl=="1")
return"View And Create Posts";if(r.rp=="1")
{if(r.rl=="1")
permarr.push("View All Posts");else
permarr.push("View POI Posts");}
else if(r.rl=="1")
permarr.push("View User Locations");if(r.cp=="1")
{if(r.cl=="1")
permarr.push("Create Posts");else
permarr.push("Create POI Posts");}
else if(r.cl=="1")
permarr.push("Post User Location");if(permarr.length==0)permarr.push("None");var permstr=makelist(permarr);return permstr;}
function goBack(i)
{if(!i)i=0;while(i>0){popBackFunc();i--;}
var back_fn=popBackFunc();if(!back_fn)back_fn="fsubg(0)";eval(back_fn);}
function msgSend(iuser)
{ssn(14,2);scm("My Network &gt; Send Message:");se("");if(!iuser)iuser="";var txt="<table width='100%'>"+"<tr><td>To UserName / Email:</td><td width='100%'><input type='text' value='"+iuser+"' id='iuser' style='width:90%;color:brown' /></td></tr>"+"<tr><td colspan='2'>Message (max 500 chars):</td>"+"<tr><td colspan='2'><textarea style='width:90%' rows='5' id='msg' ></textarea></td></tr>"+"<tr><td><input type='button' value='Cancel' onclick='goBack()' /></td>"+"<td><input type='button' value='Send' onclick='sendMessage()' /></td></tr></table>";setContent(txt);}
function askPermG(i)
{var group=display_groups[i];var perms=[group.mrp,group.mrl,group.mcp,group.mcl];askPerm(display_groups[i].group_name,username,perms);}
function askPerm(igroupname,iuser,perms)
{if(!perms)
perms=[1,1,1,1];if(!iuser)iuser="";if(!igroupname)igroupname="";var txt="<table width='100%'>"+"<tr><td>In Group:</td><td><input type='text' disabled value='"+igroupname+"' id='ign' /></td></tr>"+"<tr><td></td><td><input type='hidden' value='"+iuser+"' id='iuser' /></td></tr>"+"<tr><td colspan='2'>Request Permission To:</td></tr>"+"<tr><td>View POI Posts:</td><td><input type='checkbox' "+(perms[0]=="1"?"checked":"")+"  id='irp' /></td></tr>"+"<tr><td>View User Locations:</td><td><input type='checkbox' "+(perms[1]=="1"?"checked":"")+" id='irl' /></td></tr>"+"<tr><td>Create POI Posts:</td><td><input type='checkbox' "+(perms[2]=="1"?"checked":"")+"  id='icp' /></td></tr>"+"<tr><td>Create Location Posts:</td><td><input type='checkbox' "+(perms[3]=="1"?"checked":"")+" id='icl' /></td></tr>"+"<tr><td><input type='button' value='Cancel' onclick='goBack()' /></td>"+"<td><input type='button' value='Send' onclick='sendPermRequest()' /></td></tr></table>";se("");setContent(txt);scm("Request Permissions Change");}
function grantPermsG(i)
{var r=join_requests[i];var perms=[r.rp,r.rl,r.cp,r.cl];grantPerms(i,r.group_name,r.sender,perms);}
function grantPerms(i,igroupname,iuser,perms,setmode)
{if(!perms)
perms=[1,1,1,1];if(!iuser)iuser="";if(!igroupname)igroupname="";if(!setmode)setmode=false;var txt="<table width='100%'>"+"<tr><td>Group:</td><td><input type='text' disabled value='"+igroupname+"' id='ign' />";if(igroupname=="")
txt+="&nbsp;<input type='button' value='...' id='choosegroupbtn' "+" onclick='chooseMyGroup(\"choosegroupbtn\", \"\", 0, \"setChooseGrantGroup\" )' />";txt+="</td></tr>"+"<tr><td>Username:</td><td><input type='text' disabled value='"+iuser+"' id='iuser' /></td></tr>"+"<tr><td colspan='2'>"+(setmode?"Set":"Grant")+" Permission To (in this group):</td></tr>"+"<tr><td>View POI Posts:</td><td><input type='checkbox' "+(perms[0]=="1"?"checked":"")+"  id='irp' /></td></tr>"+"<tr><td>View User Locations:</td><td><input type='checkbox' "+(perms[1]=="1"?"checked":"")+" id='irl' /></td></tr>"+"<tr><td>Create POI Posts:</td><td><input type='checkbox' "+(perms[2]=="1"?"checked":"")+"  id='icp' /></td></tr>"+"<tr><td>Create Location Posts:</td><td><input type='checkbox' "+(perms[3]=="1"?"checked":"")+" id='icl' /></td></tr>"+"<tr><td><input type='button' value='Cancel' onclick='lgoBack()' /></td>"+"<td><input type='button' value='"+(setmode?"Set":"Send")+"' onclick='"+
(setmode?"sendInviteRequest(true)":("sendGrantRequest("+i+")"))+"' /></td></tr></table>";se("");setContent(txt);scm((setmode?"Set":"Grant")+" User Permissions in Group");}
function setUserPerm(i)
{var r=display_userlist[i];var perms=[r.rp,r.rl,r.cp,r.cl];grantPerms(i,curuserlistgroupname,r.username,perms,true);}
function requestUser(iuser,igroupname,perms)
{if(!perms)
perms=[1,1,1,1];if(!iuser)iuser="";if(!igroupname)igroupname="<Let Recipient Decide>";var txt="<table width='100%'>"+"<tr><td>Username/Email:</td><td><input type='text' maxlength='64' value='"+iuser+"' id='iuser' /></td></tr>"+"<tr><td>Group:</td><td><input type='text' maxlength='32' value='"+igroupname+"' id='ign' /></td></tr>"+"<tr><td colspan='2'>Request Permission To:</td></tr>"+"<tr><td>View POI Posts:</td><td><input type='checkbox' "+(perms[0]=="1"?"checked":"")+"  id='irp' /></td></tr>"+"<tr><td>View User Locations:</td><td><input type='checkbox' "+(perms[1]=="1"?"checked":"")+" id='irl' /></td></tr>"+"<tr><td>Create POI Posts:</td><td><input type='checkbox' "+(perms[2]=="1"?"checked":"")+"  id='icp' /></td></tr>"+"<tr><td>Create Location Posts:</td><td><input type='checkbox' "+(perms[3]=="1"?"checked":"")+" id='icl' /></td></tr>"+"<tr><td>Message:</td><td><textarea style='width:90%' rows='2' id='imsg' >Requesting access to view your location</textarea></td></tr>"+"<tr><td><input type='button' value='Cancel' onclick='goBack()' /></td>"+"<td><input type='button' value='Send' onclick='sendUserRequest()' /></td></tr></table>";se("");setContent(txt);scm("<span style='text-align:center;display:block'>Request To Join A Group</span>"+"<span style='cursor:pointer' onclick='goBack()'>&#171; Back</span>");}
function sendUserRequest()
{var igroupname=dd("ign").value;var iuser=dd("iuser").value;var imsg=dd("imsg").value.stripHTML();if(imsg.length>500){serror("Message can be max 500 characters");return};if(igroupname=="<Let Recipient Decide>"||igroupname=="")
igroupname="any";if(igroupname==""||igroupname.length>32)
{se("Groupname is invalid");return;}
else if(iuser==""||iuser>32)
{se("Username is invalid");return;}
eaq("/geogroups/requestuser.php","&gn="+eu(igroupname)+"&go="+eu(iuser)+
ceu("&rp","irp")+
ceu("&rl","irl")+
ceu("&cp","icp")+
ceu("&cl","icl")+"&msg="+eu(imsg),popSentInviteRequest,false);}
function inviteg(i)
{var group=display_groups[i];var perms=[group.rp,group.rl,group.cp,group.cl];invite(display_groups[i].group_name,"",perms);}
var remember_backfunc=null;function invite(igroupname,iuser,perms)
{if(!perms)
perms=[1,1,1,1];if(!iuser)iuser="";if(!igroupname)igroupname="";if(igroupname==""&&sgs.length==1&&sgs[0]!="My Groups")
igroupname=sgs[0];var txt="<table width='100%'>"+"<tr><td>Username/Email:</td><td><input type='text' maxlength='64' value='"+iuser+"' id='iuser' /></td></tr>"+"<tr><td>Invite To Join Group:</td><td><input type='text' maxlength='32' value='"+igroupname+"' id='ign' />"+"&nbsp;<input type='button' value='...' id='choosegroupbtn' "+" onclick='chooseMyGroup(\"choosegroupbtn\", \"\", 0, \"setChooseGrantGroup\" )' />"+"</td></tr>"+"<tr><td colspan='2'>Offer Permission To (in this group):</td></tr>"+"<tr><td>View POI Posts:</td><td><input type='checkbox' "+(perms[0]=="1"?"checked":"")+"  id='irp' /></td></tr>"+"<tr><td>View User Locations:</td><td><input type='checkbox' "+(perms[1]=="1"?"checked":"")+" id='irl' /></td></tr>"+"<tr><td>Create POI Posts:</td><td><input type='checkbox' "+(perms[2]=="1"?"checked":"")+"  id='icp' /></td></tr>"+"<tr><td>Create Location Posts:</td><td><input type='checkbox' "+(perms[3]=="1"?"checked":"")+" id='icl' /></td></tr>"+"<tr><td>Message:</td><td><textarea style='width:90%' rows='2' id='imsg' >I'd like you to join this group</textarea></td></tr>"+"<tr><td><input type='button' value='Cancel' onclick='goBack()' /></td>"+"<td><input type='button' value='Send' onclick='sendInviteRequest()' /></td></tr></table>";se("");setContent(txt);scm("<span style='text-align:center;display:block'>Invite User To Join Group</span>"+"<span style='cursor:pointer' onclick='goBack()'>&#171; Back</span>");}
function popBlockUser(iuser)
{if(!getBackFunc())pushBackFunc("ful()");if(!iuser)iuser="";var txt="<table width='100%'>"+"<tr><td>Username:</td><td><input type='text' value='"+iuser+"' id='iuser' /></td></tr>"+"<tr><td><input type='button' value='Cancel' onclick='goBack()' /></td>"+"<td><input type='button' value='Send' onclick='onBlockUser()' /></td></tr></table>";se("");setContent(txt);scm("Block a user from joining any of your groups");}
function onBlockUser()
{kickUser2("",dd("iuser").value,true,false);}
function blockUser(i)
{kickUser2("",display_userlist[i].username,true,false);}
function fulid(i)
{ful(0,display_groups[i].group_name);}
function ful(skip,groupname)
{if(curuserlistgroupname==""&&!is_demo)
{if(sgs.length==1&&sgs[0]!="My Groups")
{var t=getNVVal(selgroups,sgs[0]);if(t&&t.is_owned==1)
curuserlistgroupname=sgs[0];}
if(curuserlistgroupname=="")
curuserlistgroupname=username;}
if(!skip)skip=0;if(!groupname)groupname=curuserlistgroupname;fetchUserList(popUserList,groupname,skip,(curmuchoice==1));}
var curuserlistgroupname="";function fetchUserList(render_fn,groupname,skip,blocked)
{if(is_demo)return;if(!groupname||groupname=="")groupname=curuserlistgroupname;if(!skip)skip=0;eaq("/geogroups/getuserlist.php","skip="+skip+"&nr=15"+"&gn="+eu(groupname)+
(blocked?"&blocked=1":""),render_fn,false);}
var display_userlist=null;function kickUser(i,permanent,unblock)
{if(!permanent)permanent=false;if(!unblock)unblock=false;var groupname=curuserlistgroupname;if(typeof display_userlist[i].group_id!="undefined"&&display_userlist[i].group_id==-1)
groupname="";kickUser2(groupname,display_userlist[i].username,permanent,unblock);}
function kickUserAll(i,permanent,unblock)
{if(!permanent)permanent=false;if(!unblock)unblock=false;kickUser2("",display_userlist[i].username,permanent,unblock);}
function kickUser2(groupname,kuname,permanent,unblock)
{if(!permanent)permanent=false;if(!unblock)unblock=false;eaq(((unblock&&unblock==true)?"/geogroups/unblockuser.php":"/geogroups/kickuser.php"),"gn="+eu(groupname)+"&ku="+eu(kuname)+
((permanent&&permanent==true)?"&block=1":""),popKickUser,false);}
function popKickUser(response)
{if(!getBackFunc())pushBackFunc("ful()");window.setTimeout("goBack()",1000);}
function showUserActions(obj,i,muchoice)
{var txt="";if(muchoice==0)
txt+="<span class='link1' style='margin-bottom: 5px;' "+ml+" onclick='setUserPerm("+i+")' "+" >Change Permissions</span><br>"+"<span class='link1' style='margin-bottom: 5px;' "+ml+" onclick='kickUser("+i+")' "+" >Unsubscribe User</span><br>"+"<span class='link1' style='margin-bottom: 5px;' "+ml+" onclick='kickUser("+i+",true)' "+" >Unsubscribe and Block</span><br>"+"<span class='link1' style='margin-bottom: 5px;' "+ml+" onclick='blockUser("+i+")' "+" >Unsubscribe/Block From All My Groups</span><br>";else if(muchoice==1)
txt+="<span class='link1'  style='margin-bottom: 5px;' "+ml+" onclick='kickUser("+i+",false,true)' "+" >UnBlock User</span>";showInfopop(obj,txt);}
function showPostActions(obj,i)
{var p=post_response_list.posts[i];var owned=(p.username.toLowerCase()==username.toLowerCase());var is1gowned=false;var gn1g="";var dpid=0;if(isonegroup())
{var gn=sgs[0];gn1g=escape(gn);gi=fgroup(gn);if(gi>=0)
{dg=display_groups[gi];is1gowned=(dg.is_owned=="1");dpid=dg.default_post_id;}}
var rem=(dpid==p.post_id?1:0);var txt="";if(owned)
txt+="<span class='link1' "+ml+" onclick='hip(1);fetchEditPostHtml("+p.post_id+")' "+" >Edit Post</span><br>"+"<span class='link1' "+ml+" onclick='hip(1);deletePostHtml("+
p.post_id+","+(p.is_home?"true":"false")+", \""+escape(p.post_title)+"\");' "+" >Delete Post</span>";if(is1gowned&&gn1g!="")
txt+="<br/><span class='link1' "+ml+" onclick='hip(1);setAsDefaultHtml("+
p.post_id+",\""+escape(p.post_title)+"\",\""+gn1g+"\","+(rem?1:0)+");' "+" >"+(rem?"Remove":"Set")+" As Group Default</span>";showInfopop(obj,txt);}
function spa(o,i){showPostActions(o,i);}
function toggleDisplay(objname)
{var obj=dd(objname);if(!obj)return;obj.style.display=(obj.style.display==""?"none":"");}
var muChoices=["Show Subscribed Users","Show Blocked Users","Block A User"];var curmuchoice=0;function muChoose(i)
{if(typeof i=="undefined")i=curmuchoice;hd("mumenu");curmuchoice=i;if(i==0)
{ful();}
else if(i==1)
{ful();}
else if(i==2)
{popBlockUser();}}
function getMuHeader()
{var seltxt="<table width='100%' id='muheader' "+" onmouseout='onMouseOutCont(event, \"muheader\", \"mumenu\")'  "+" >"+"<tr>"+"<td class='groupmenunav' width='100%' style='border: 1px solid #bbccff;width:100%;' "+" onclick='toggleDisplay(\"mumenu\")' "+" >"+"<span id='mumode'>"+muChoices[curmuchoice]+"</span>"+"</td><td class='groupmenunav' style='border: 1px solid #bbccff' align='left' "+" onmouseover='hl(this, \"white\", \"#eef0ff\" );' onmouseout='uhl(this);' "+" onclick='toggleDisplay(\"mumenu\")' "+" >"+"&#9660;"+"</td>"+"<td></td>"+"</tr>"+"<tr>"+"<td width='100%' >"+"<div style='position:relative;width:100%;'> "+"<div id='mumenu' class='cgroupmenu' style='display:none;' "+" > "+"<table width='100%' height='100%'> ";for(var j=0;j<muChoices.length;j++)
seltxt+="<tr><td class='groupnav' "+"   onclick='muChoose("+j+")' "+"   onmouseover='setCls(this,\"groupnavlite\")'  "+"   onmouseout='setCls(this,\"groupnav\")' >"+
muChoices[j]+"</td></tr> ";seltxt+="</table> "+"</div> "+"</div> "+"</td><td></td><td></td>"+"</tr>"+"<tr class='cgrouprow0' >"+"<td class='cgroupnamecell' colspan='2' >"+"Group:&nbsp;<span id='chosenusergroup' class='cgroupname' >"+curuserlistgroupname+"</span>"+"</td>"+"<td>"+"<input type='button' style='float:right;' value='Choose..' id='chooseusergroup' "+" onclick='chooseMyGroup(\"chooseusergroup\", \"chosenusergroup\" );' />"+"</td>"+"</tr></table>";return seltxt;}
function popUserList(response)
{curuserlistgroupname=response.group_name;curmuchoice=(response.blocked=="1")?1:0;ssn(10,2);var userlist=response.userlist;var total=pnt(response.total);var start=pnt(response.skip);var count=pnt(response.returned);var pages=resultHeader(start,count,total,((curmuchoice==0)?"Subscribers":"Blocked Users"));var page_nav=getPageNav(start,count,total,"ful(0)","ful("+((start-15)>=0?(start-15):0)+" )","ful("+(start+count)+" )");var txt=rth(pages,page_nav,3);var timeoutfunc=htmlesc("ful("+start+" )");pushBackFunc(timeoutfunc,true);var allrows=new Array();for(var i=0;i<userlist.length;i++)
{var allb="";if(typeof userlist[i].group_id!="undefined"&&userlist[i].group_id==-1)
allb="&nbsp;&nbsp;<span class='cgrouptitle'>(blocked in all groups)</span>";var crow="";crow+="<tr>"+"<td style='font-size:90%;color:brown;width:100%;border-bottom: 1px solid #f2EA7D;border-top: 1px solid #f2EA7D;padding: 2px;' "+" onmouseover='hl(this.parentNode, \"brown\", \"#f2EA7D\");showUserActions(this.parentNode, "+i+","+curmuchoice+")' "+" onmouseout='uhl(this.parentNode); onMouseoutInfo(event,this);' "+" >"+userlist[i].username+
allb;if(!curmuchoice)
crow+="<br><span style='font-size:70%;color:black'>&nbsp;Permissions: "+getPermStr(userlist[i])+"</span>";crow+="</td>"+"<td>"+"<span style='cursor:pointer' onclick='msgSend(\""+userlist[i].username+"\")' >"+"<img src='/images/msgsend24.png' title='Send Private Message' "+"/></span>"+"</td>"+"<td class='link1' "+" style='width:30px; font-size:70%;border-bottom: 1px solid #f2EA7D;border-top: 1px solid #f2EA7D;' "+" onmouseover='hl(this.parentNode, \"brown\", \"#f2EA7D\");showUserActions(this.parentNode, "+i+","+curmuchoice+")' "+" onmouseout='uhl(this.parentNode); onMouseoutInfo(event,this);' "+" ><img src='/images/menuright.png' style='margin-left:20px;' /></td>";crow+="</tr>";allrows.push(crow);}
txt+=allrows.join("\n");txt+=rtf(count,page_nav,3);display_userlist=userlist;dd("contentarea").innerHTML=getMuHeader()+txt;scm("<span style='text-align:center;display:block'>Manage Users</span>"+"<span style='cursor:pointer' onclick='goBack(1)'>&#171; Back</span>");rel();}
function sendPermRequest()
{var igroupname=dd("ign").value;var iuser=dd("iuser").value;if(igroupname==""||igroupname.length>32)
{se("Groupname is invalid");return;}
else if(iuser==""||iuser>32)
{se("Username is invalid");return;}
eaq("/geogroups/subgroup.php","gn="+eu(igroupname)+"&gu="+eu(iuser)+
ceu("&rp","irp")+
ceu("&rl","irl")+
ceu("&cp","icp")+
ceu("&cl","icl"),popSentPermRequest,false);}
function popSentPermRequest(response)
{se(response.errmsg);if(!getBackFunc())pushBackFunc("fsubg()");window.setTimeout("goBack()",1000);}
function sendMessage()
{var iuser=dd("iuser").value;if(iuser==""||iuser.length>128)
{se("Username is invalid");return;}
var msg=dd("msg").value.stripHTML();if(msg=="")
{se("Cannot send a blank message");return;}
else if(msg.length>500)
{se("Message is too long: "+msg.length+" chars, (max 500 allowed)");return;}
eaq("/geogroups/sendmsg.php","to="+eu(iuser)+"&msg="+eu(msg),popSentMessage,false);}
function popSentMessage(response)
{se(response.errmsg=="Success"?"Message Sent":response.errmsg);if(!getBackFunc())pushBackFunc("goMenu(7)");window.setTimeout("goBack()",1000);}
function sendInviteRequest(setpermmode)
{if(!setpermmode)setpermmode=false;var igroupname=dd("ign").value;var iuser=dd("iuser").value;var imsg=(setpermmode?"":dd("imsg").value.stripHTML());if(igroupname==""||igroupname.length>32)
{se("Groupname is invalid");return;}
else if(iuser==""||iuser>32)
{se("Username is invalid");return;}
if(imsg.length>500){serror("Message can be max 500 characters");return};eaq((setpermmode?"/geogroups/setuserperm.php":"/geogroups/inviteuser.php"),"gn="+eu(igroupname)+"&gu="+eu(iuser)+
ceu("&rp","irp")+
ceu("&rl","irl")+
ceu("&cp","icp")+
ceu("&cl","icl")+"&msg="+eu(imsg),popSentInviteRequest,false);}
function popSentInviteRequest(response)
{se(response.errmsg);if(!getBackFunc())pushBackFunc("fsubg()");window.setTimeout("goBack()",1000);}
function submitComment(postid)
{var cmttxt=dd("ccmt").value.stripHTML();if(cmttxt==""||cmttxt.length>500)
{se("Comment cannot be longer than 500 characters, and must not be blank");return;}
eaq("/geogroups/commentpost.php","pid="+postid+"&cmt="+eu(cmttxt),function(response){popSentComment(postid,response)},false);}
function popSentComment(postid,response)
{dd("ccmt").value="";se(response.errmsg);var tfunc="scom("+postid+")";window.setTimeout(tfunc,1000);}
function scom(postid,skip,cmttext)
{if(!cmttext)cmttext="";if(!skip)skip=0;eaq("/geogroups/getpostcomments.php","skip="+skip+"&nr=100"+"&pid="+postid,function(response){popComments(response,cmttext);},false);}
function popComments(response,prevcmttext)
{if(!prevcmttext)prevcmttext="";var comments=response.comments;var total=pnt(response.total);var start=pnt(response.skip);var count=pnt(response.returned);var pcls="spic"+listsize;var pages=resultHeader(start,count,total,"Comments");var page_nav=getPageNav(start,count,total,"scom("+response.post_id+",0)","scom("+response.post_id+","+((start-100)>=0?(start-100):0)+" )","scom("+response.post_id+","+(start+count)+" )");var txt="<br/ style='clear:both;'>Add your comment: (max 500 chars)<br>"+"<textarea style='width:90%' rows='5' id='ccmt' >"+prevcmttext+"</textarea><br>"+"<input type='button' value='Submit' "+"onclick='submitComment("+response.post_id+")' /><br><br>";txt+=rth(pages,page_nav,2);var timeoutfunc=htmlesc("scom("+response.post_id+","+start+" )");var allrows=new Array();for(var i=0;i<comments.length;i++)
{var comment=comments[i];var rd=new Date(comment.last_modified*1000);var ctime=getShortDate(rd);var tokcmt=flattendash(comment.comment).substr(0,30);var crow="";crow+="<tr><td style='border-top: 1px solid #5890e5;' >"+
showUser(comment.author)+"</td>"+"<td style='border-top: 1px solid #5890e5;font-size:70%; "+"text-align:right; color: gray;' >"+ctime+"</td>"+"</tr>";crow+="<tr class='ccommentsblock'>"+"<td style='padding-left:3px;border-bottom: 1px solid #dddddd;' colspan='2' >";if(comment.picurl&&comment.picurl!="")
crow+="<img class='"+pcls+"' style='border:2px solid white;' "+" src='/pics/"+comment.picurl+"/"+tokcmt+"' "+"onload='if (this.width > 320 ) this.width=\"320\";' /><br style='clear:both;'/>";if(comment.comment)
crow+=comment.comment;"<br/><br/>";crow+="</td>";crow+="</tr>";allrows.push(crow);}
txt+=allrows.join("\n");txt+=rtf(count,page_nav,2);dd("commentarea").innerHTML=txt;rel();}
function jreqin(skip)
{if(!skip)skip=0;joinRequestsIn(popJoinRequestsIn,skip);}
function joinRequestsIn(render_fn,skip)
{eaq("/geogroups/joinrequestsin.php","skip="+skip+"&nr=15",render_fn,false);}
function cbval(n)
{return(dd(n).checked?"1":"0");}
function sendGrantRequest(i)
{var perms=[cbval("irp"),cbval("irl"),cbval("icp"),cbval("icl")];if(join_requests[i].group_id==-2)
actReqIn(i,"grant",perms,dd("ign").value);else
actReqIn(i,"grant",perms);}
var join_requests=null;var join_func=null;function actReqIn(i,action,perms,groupname)
{var params="rid="+join_requests[i].request_id+"&action="+action;if(perms&&perms.length==4)
{params+="&rp="+perms[0]+"&rl="+perms[1]+"&cp="+perms[2]+"&cl="+perms[3];}
if(groupname&&groupname!="")
params+="&gn="+eu(groupname);eaq("/geogroups/actrequestin.php",params,popActReq,false);}
function popActReq(response)
{if(response.errmsg&&response.errmsg.toLowerCase()!="success")
se(response.errmsg);var tfunc=join_func?join_func:"jreqin(0)";window.setTimeout(tfunc,2000);}
function showRequestInPop(obj,i)
{var txt="";if(join_requests[i].request_type=="0")
{if(join_requests[i].grant_status=="0")
txt+="<span class='link1' "+ml+" onclick='hip();grantPermsG("+i+")' "+" >Select Permissions To Grant</span><br>"+"<span class='link1' "+ml+" onclick='hip();actReqIn("+i+",\"deny\")' "+" >Deny</span><br>";}
else if(join_requests[i].request_type=="1")
{if(join_requests[i].invite_status=="0")
txt+="<span class='link1' "+ml+" onclick='hip();actReqIn("+i+",\"join\")' "+" >Join</span><br>"+"<span class='link1' "+ml+" onclick='hip();actReqIn("+i+",\"reject\")' "+" >Reject</span><br>";}
else if(join_requests[i].request_type=="3")
{txt+="<span class='link1' "+ml+" onclick='hip();msgSend(\""+join_requests[i].sender+"\")' "+" >Reply</span><br>";}
if(join_requests[i].active_status=="0")
txt+="<span class='link1' "+ml+" onclick='hip();actReqIn("+i+",\"archive\")' "+" >Archive</span><br>";if(join_requests[i].active_status!="2")
txt+="<span class='link1' "+ml+" onclick='hip();actReqIn("+i+",\"delete\")' "+" >Delete</span>";showInfopop(obj,txt);}
function msgMap(i){var r=join_requests[i];var ll=new GLatLng(r.lat,r.lng);mpc(ll);last_poppost=-1;last_poplocation=false;follow_post=-1;var p=mget(myPMs,"id",r.request_id);if(p)
{showmarkerpop(p.gmarker,p.gmarker.pmhtml);return;}
var lat=r.lat;var lng=r.lng;var addr=r.addr;var dt=new Date(r.request_time*1000);var mhtml="<span style='float:right;text-align:right;margin-right:10px;'>"+"<span style='font-size:90%;color:#999999' >"+getShortDate(dt)+"</span>";mhtml+="<br/><img src='/geogroups/icons/postoffice-us.png' />";mhtml+="</span>";mhtml+="<span class='cpostnamedisp'>Private Message</span><br/>";mhtml+="<span class='cpostl'>Sent By: </span>"+showUser(r.sender)+"<br/>";if(addr!="")
mhtml+="<span class='cpostl'>Address: </span>"+addr+"<br/>";if(r.msg&&r.msg!="")
mhtml+="<span class='cpostl'>Message: </span><br/>"+r.msg;var zin=" onclick='mpc(new GLatLng( "+lat+","+lng+"), 16)' "+ml;mhtml+="<br/><hr><span style='float:right;'><img title='Zoom-In' alt='Zoom-In' "+zin+" src='/images/zi32.png' width='24' />&nbsp;"+"<img "+ml+" onclick='mdelete(myPMs,\"id\","+r.request_id+");' title='Remove From Map' "+" src='/images/close24.png' /></span>"+"<span class='link3' "+ml+" onclick='msgSend(\""+r.sender+"\")'>[Reply]</span>";var newmarker=getNewPM(r.request_id,"Private Message From "+r.sender,ll,mhtml);last_marker_pop=newmarker.gmarker;map.addOverlay(newmarker.gmarker);showmarkerpop(newmarker.gmarker,mhtml);}
function popJoinRequestsIn(response)
{ssn(7,2);var requests=response.requests;var total=pnt(response.total);var start=pnt(response.skip);var count=pnt(response.returned);var pages=resultHeader(start,count,total,"Messages");var page_nav=getPageNav(start,count,total,"jreqin(0)","jreqin("+((start-15)>=0?(start-15):0)+" )","jreqin("+(start+count)+" )");var txt="<span class='button' title='Send Message' style='float:right;' onclick='msgSend()' >Compose New</span><br/ style='clear:both'>";txt+=rth(pages,page_nav,5);var timeoutfunc=htmlesc("jreqin("+start+" )");join_func=timeoutfunc;pushBackFunc(timeoutfunc,true);var pcls="spic"+listsize;var allrows=new Array();var prev_groupid="";var prev_status="";var statuschange=false;var rstatus;var rtype;for(var i=0;i<requests.length;i++)
{statuschange=false;var request=requests[i];var rd=new Date(request.request_time*1000);var cdate=getShortDate(rd);var ctime=rd.toLocaleString();rtype="Error";rstatus="Error";var permstr="";if(request.request_type=="0")
{rstatus=(request.grant_status=="0")?"Pending":((request.grant_status=="1")?"Denied":"Granted");if(request.group_id==-2)
rtype="Wants to Join Your Group"
else
rtype="Wants to join the group&nbsp;&nbsp;";permstr=getPermStr(request);}
else if(requests[i].request_type=="1")
{rstatus=(request.invite_status=="0")?"Pending":((request.invite_status=="1")?"Rejected":"Accepted");rtype="Invites you to join the group&nbsp;&nbsp;";permstr=getPermStr(request);}
else if(request.request_type=="3")
{rstatus="";rtype="";}
var crow="";if(prev_status!=request.active_status)
{crow+="<tr><td style='border-top: 1px solid #5890e5;' colspan='5' >"+"<span style='font-size:110%;font-weight:bold;'><br>"+
(request.active_status=="0"?"Received Messages":"Archived Messages")+":</span></td>"+"</tr>";statuschange=true;}
var topborder=(statuschange?"":" style='border-top: 1px solid #5890e5;' ");crow+="<tr><td "+topborder+" colspan='2' >"+"<span style='font-size:120%;color:brown;' >"+request.sender+"</span></td>"+"<td style='font-size:70%; color: gray;' title='"+ctime+"'>"+cdate+"</td>"+"<td style='font-size:70%;' >"+rstatus+"</td>"+"<td class='link1' style='text-align:right;padding-right:10px;font-size:70%;background:url(/images/menuright.png) right no-repeat;' onmouseover='hl(this);showRequestInPop(this, "+i+")' "+" onmouseout='uhl(this); onMouseoutInfo( event, this);' >"+"Action"+"</td>"+"</tr>";crow+="<tr class='crequestrow'>"+"<td style='padding-left:3px;' colspan='5' >"+rtype;if(request.group_id>=0&&request.group_name!="")
crow+="<span style='color:darkblue;'>"+request.group_name+"</span>";if(permstr!="")
crow+="<br>&nbsp;<span style='font-size:80%;color:grey'>With permission to "+permstr+"</span><br>";if(request.msg!="")
{if(request.request_type!=3)
crow+="<br>";crow+="<span style='color:grey'>"+request.msg+"</span><br>";}
if(latlngValid(request.lat,request.lng))
{crow+="<span class='cbaction' onclick='msgMap("+i+")'>See On Map &#187;</span><br/>"}
if(request.addr!="")
{crow+="<span class='cpostl'>Address: </span><span style='color:grey'>"+request.addr+"</span><br/>";}
if(request.picurl!="")
crow+="<img class='"+pcls+"' style='border:2px solid white;' "+" src='/pics/"+request.picurl+"/'"+"onload='if (this.width > 320 ) this.width=\"320\";' /><br/>";crow+="<br></td>";crow+="</tr>";prev_groupid=requests[i].group_id;prev_status=requests[i].active_status;allrows.push(crow);}
txt+=allrows.join("\n");txt+=rtf(count,page_nav,5);join_requests=requests;dd("contentarea").innerHTML=txt;scm("<span style='text-align:center;display:block'>Inbox</span>"+"<span style='cursor:pointer' onclick='goBack(1)'>&#171; Back</span>");rel();}
function eaq(script,params,callbackfn,noauth,waitcursorpos,autherrmsg,errcallbackfn)
{if(noauth)
noauth=true;var url=script;if(noauth)
{if(params&&params!="")
url+="?"+params;}
else
{url+="?"+"u="+username+"&t="+token;if(params&&params!="")
url+="&"+params;}
if(!waitcursorpos)waitcursorpos=0;execAjax(url,onFetchedResponse,waitcursorpos);se("");function onFetchedResponse(responseText)
{var response=eval('('+responseText+')');if(response.errcode==0)
{callbackfn(response);}
else if(response.errcode==120)
{if(is_demo){if(!autherrmsg)autherrmsg="Please Sign-In";serror(autherrmsg);}
else
signOut();}
else
{if(typeof errcallbackfn=="undefined"||!errcallbackfn)
serror(response.errmsg);else
errcallbackfn(response);}}}
function fmycsv(skip)
{if(is_demo)return;if(!skip)skip=0;eaq("/geogroups/mycsvs.php","skip="+skip+"&nr=15",popMyCSVs,false);}
var display_csvs=null;function getUploadForm(name,display,action)
{return"<iframe id='upload_target_"+name+"' name='upload_target_"+name+"' src='#' style='width:0;height:0;border:0px solid #fff;'></iframe>"+"<span id='"+name+"uploadform'> \
 <form action='/geogroups/"+action+".php' method='POST' style='margin-top:0px;' enctype='multipart/form-data' target='upload_target_"+name+"' "+" accept='text/*' "+" onsubmit='startUploadMsg(\"Uploading file..\");' > "+" <input type='hidden' name='u' value='"+username+"' /> "+" <input type='hidden' name='t' value='"+token+"' /> "+" <input name='file' id='"+name+"browsefile' type='file' /> "+" <br/> "+" <input type='submit' value='Upload "+display+"' onsubmit='this.disabled=true' /> "+" </form> "+" </span> ";}
function getLogUploadForm(){return"Only GPSToday GeoLogs with a .txt extension will currently work."+getUploadForm("log","Log","uploadlogfile");}
function getCSVUploadForm(){return"Only properly formatted comma-separated-value files with a .csv extension will work. If your data is in some other format, check your software for an Export-As-CSV option. This option is for creating multiple GeoPosts in one step. For uploading geologs, use the My Stuff-&gt;My GeoLogs option,"+getUploadForm("csv","CSV","uploadcsv");}
function deleteCSVPosts(id)
{function onDeletePosts(response)
{se(response.numdeleted+" Posts Deleted");window.setTimeout("fmycsv()",2000);}
eaq("/geogroups/deleteuploadposts.php","uploadid="+id,onDeletePosts,false);}
function addChooseGroups(div1,div2)
{var added=0;var gns=dd(div1).value.split(",");for(i=0;i<gns.length;i++)
if(trim(gns[i])!=""){addChooseGroupE(div2,trim(gns[i]));added++;}
return added;}
function configCSV(id)
{function onPopConfig(responsetext)
{dd("contentarea").innerHTML=responsetext;addChooseGroups("csvgns","csvgn");setIcon(dd("csvicon").value,"csv");}
var url="/geogroups/publishcsvhtml.php?u="+eu(username)+"&t="+token+"&uploadid="+id;execAjax(url,onPopConfig);}
function popMyCSVs(response)
{ssn(12,1);var mycsvs=response.mycsvs;var total=pnt(response.total);var start=pnt(response.skip);var count=pnt(response.returned);var txt=getCSVUploadForm();var pages=resultHeader(start,count,total,"Bulk Data Uploads");var page_nav=getPageNav(start,count,total,"fmycsv()","fmycsv("+((start-15)>=0?(start-15):0)+" )","fmycsv("+(start+count)+" )");txt+=rth(pages,page_nav,2);var timeoutfunc=htmlesc("fmycsv("+start+" )");pushBackFunc(timeoutfunc,true);var allrows=new Array();for(var i=0;i<mycsvs.length;i++)
{var crow="";crow+="<tr>"+"<td class='ctrack' style='font-size:90%;font-weight: heavy;width:100%;border-bottom: 1px solid #44cc44;border-top: 1px solid #44cc44;padding: 2px;' "+" onmouseover='hl(this.parentNode, \"brown\", \"#f2EA7D\");' "+" onmouseout='uhl(this.parentNode); onMouseoutInfo(event,this);' "+" >"+"<img style='float:right;cursor:pointer' src='/images/remove-16.png' title='Delete This File' "+" onclick='askCSVDel("+i+");return false;' />"+
mycsvs[i].orig_filename+"<br/>&nbsp;<span style='color: black'>"+mycsvs[i].row_count+" Rows</span>";if(mycsvs[i].post_count>0)
{crow+="<br/>&nbsp;<span style='color: black'>"+mycsvs[i].post_count+" Posts Published"+" <span class='l3title' style='cursor:pointer' onclick='askCSVPublishDel("+i+")' >[Delete All]</span></span>";}
crow+="<br/><span class='button'><a target='_csv' href='/geogroups/downloadcsv.php?id="+mycsvs[i].upload_id+"&u="+username+"&t="+token+"' title='Click To Download Original File'>Download</a></span>"+"&nbsp;<span class='button'  title='Publish to a Group as Posts' onclick='configCSV("+mycsvs[i].upload_id+")'>Publish..</span>";crow+="</td>"+"<td></td>";crow+="</tr>";allrows.push(crow);}
txt+=allrows.join("\n");txt+=rtf(count,page_nav,2);display_csvs=mycsvs;dd("contentarea").innerHTML=txt;scm("<span style='text-align:center;display:block'>Bulk Data Uploads</span>"+"<span style='cursor:pointer' onclick='goBack(1)'>&#171; Back</span>");rel();}
function fmyl(skip)
{if(is_demo)return;if(!skip)skip=0;eaq("/geogroups/mylogs.php","skip="+skip+"&nr=15",popMyLogs,false);}
var hists=[];function sWp(uname,i)
{var p=existsNVVal(hists,uname);if(p<0)return;var hp=hists[p].value;var l=new GLatLng(hp.resp.stops[i][0],hp.resp.stops[i][1]);if(!map.getBounds().containsLatLng(l))
mpc(l);showStopPop(hp.resp.stops[i][6],uname+"-"+i);}
function addTNV(n,v)
{return"<tr><td style='padding:0px;'>"+n+"</td><td style='padding:0'>"+v+"</td></tr>";}
function showStopPop(gmarker,uname)
{var o=uname.split("-");uname=o[0];var i=pnt(o[1]);var p=existsNVVal(hists,uname);if(p<0)return;var hp=hists[p].value;var stop=hp.resp.stops[i];var h="<b> Location History</b> for <span class='cusername'>"+uname+"</span><br/>"+"<table class='cch'>";if(i==0)
{h+=addTNV("<img style='float:left;margin:0;height:20px' src='/images/dd-start.png' />&nbsp;Start Time",getUDate(hp.resp.starttime))+
addTNV("<img style='float:left;height:20px' src='/images/dd-end.png' />&nbsp;End Time",getUDate(hp.resp.endtime))+
addTNV("<img style='float:left;height:20px;' src='/images/histline.png' />&nbsp;Points Plotted",(hp.resp.returned))+
addTNV("<img style='float:left;margin:5 0 5 2;' src='/images/rdot-10.png' />&nbsp;WayPoint Markers Shown",hp.resp.stops.length);}
else
{h+=addTNV("<img style='float:left' src='/images/rdot-10.png' />&nbsp;Waypoint",(i+1)+" of "+hp.resp.stops.length);}
h+=addTNV("Time",getUDate(stop[5]))+
addTNV("Location",stop[0]+","+stop[1]);if(stop[2]!="")
h+=addTNV("Altitude",stop[2]);if(stop[3]!="")
h+=addTNV("Speed",stop[3]);if(stop[4]!="")
h+=addTNV("Heading",getHeading(stop[4]));h+="</table>";var b=i-1;if(b<0)b=hp.resp.stops.length-1;var n=i+1;if(n>=hp.resp.stops.length)n=0;h+="<span style='float:left'><img class='cpointer' src='/images/back-24.png' onclick='sWp(\""+uname+"\","+b+")'/>&nbsp;&nbsp;"+"<img class='cpointer' src='/images/forward-24.png' onclick='sWp(\""+uname+"\","+n+")' /></span>";if(i==0||(i+1)==hp.resp.stops.length)
{if(i==0)
h+="<span class='caction' style='float:right' onclick='getHistory(\""+uname+"\","+hp.resp.starttime+","+hp.resp.endtime+",1)'>Download</span>";showmarkerpop(gmarker,h);}
else
{h+="&nbsp;&nbsp;&nbsp;<span class='caction' onclick='getHistory(\""+uname+"\","+stop[5]+","+hp.resp.endtime+",0)'>Set As Start Time</span>&nbsp;&nbsp;<span class='caction' onclick='getHistory(\""+uname+"\","+hp.resp.starttime+","+stop[5]+",0)'>Set As End Time</span>";showmarkerpop(gmarker,h,5);}}
function removeHist(uname){var p=existsNVVal(hists,uname);if(p>=0)
{var hp=hists[p].value;for(i=0;i<hp.plot.length;i++)
{map.removeOverlay(hp.plot[i]);hp.plot[i]=null;}
for(i=0;i<hp.resp.stops.length;i++)
{map.removeOverlay(hp.resp.stops[i][6]);}
hists[p].value=null;hp=null;removeScrap('maphist',"mhist"+uname);}
removeNV(hists,uname);}
function fhist(method)
{var tzo=(new Date()).getTimezoneOffset();tzo=-tzo;if(typeof method=="undefined"||!method)
method=0;var uname=dd('huser').value;var hstart=dd('hstart').value;var hend=dd('hend').value;if(hstart!="")hstart=pnt(Date.parse(hstart.replace(/\-/g," "))/1000);if(hend!=""&&hend.toLowerCase()!="now")hend=pnt(Date.parse(hend.replace(/\-/g," "))/1000);var params="tuser="+uname+"&encode=1&starttime="+hstart+"&endtime="+hend+"&tzo="+tzo;function fhistcallback(response){popHist(uname,response);}
function fhistcallback2(response){serror(response.errcode==0?"Please allow a few minutes for file to appear in MyStuff &gt; GeoLogs":response.errmsg);}
if(method==1)
window.open("/geogroups/gethistory2.php?u="+username+"&t="+token+"&"+params+"&download=1");else if(method==2)
eaq("/geogroups/gethistory2.php",params+"&makelog=1",fhistcallback2,false);else
eaq("/geogroups/gethistory2.php",params,fhistcallback,false);}
function popHist(uname,response)
{var lp=response.logpoints;var total=pnt(response.total);var count=pnt(response.returned);removeHist(uname);var initpos=null;var curhistplot=[];var mstops=[];if(response.encoded=="1")
{for(i=0;i<lp.length;i++)
{curhistplot[i]=GPolyline.fromEncoded({color:"#ff1111",weight:5,opacity:0.5,opts:{clickable:false},points:lp[i]["Points"],levels:lp[i]["Levels"],numLevels:lp[i]["NumLevels"],zoomFactor:lp[i]["ZoomFactor"]});map.addOverlay(curhistplot[i]);if(i==0&&curhistplot[0].getVertexCount()>0)
initpos=curhistplot[0].getVertex(0);}
var stops=response.stops;var ibeg=new GIcon();ibeg.image="/images/dd-start.png";ibeg.iconSize=new GSize(20,34);ibeg.iconAnchor=new GPoint(10,34);var iend=new GIcon(ibeg,"/images/dd-end.png");var imed=new GIcon();imed.image="/images/rdot-10.png";imed.iconSize=new GSize(10,10);imed.iconAnchor=new GPoint(5,5);imed.infoWindowAnchor=new GPoint(5,0);for(i=0;i<stops.length;i++)
{var s=stops[i];var t=(new Date(s[5]*1000)).toLocaleString();var m=new GMarker(new GLatLng(s[0],s[1]),{icon:(i==0?ibeg:((i==stops.length-1)?iend:imed)),title:t,draggable:false});m.mstop=uname+"-"+i;response.stops[i].push(m);map.addOverlay(m);}
var txt=getScrap("history: "+uname,"removeHist(\""+uname+"\")","#991111","mhist"+uname,"sWp(\""+uname+"\",0)");removeScrap('maphist',"mhist"+uname);dd("maphist").innerHTML+=txt;response.logpoints=null;addToNV(hists,uname,{plot:curhistplot,resp:response});if(initpos!=null)
{mpc(initpos);sWp(uname,0);}}}
function pdaterange()
{var tzo=(new Date()).getTimezoneOffset();tzo=-tzo;var pstart=dd('poststart').value;var pend=dd('postend').value;if(pstart!="")pstart=pnt(Date.parse(pstart.replace(/\-/g," "))/1000);if(pend!=""&&pend.toLowerCase()!="now")pend=pnt(Date.parse(pend.replace(/\-/g," "))/1000);return{pstart:pstart,pend:pend};}
function fdownload()
{var tzo=(new Date()).getTimezoneOffset();tzo=-tzo;if(!isonegroup()){serror("Please select only one group");return false;}
var dgroup=sgs[0];var dstart=dd('dstart').value;var dend=dd('dend').value;if(dstart!="")dstart=pnt(Date.parse(dstart.replace(/\-/g," "))/1000);if(dend!=""&&dend.toLowerCase()!="now")dend=pnt(Date.parse(dend.replace(/\-/g," "))/1000);var params="tgroup="+eu(dgroup)+"&starttime="+dstart+"&endtime="+dend+"&tzo="+tzo;window.open("/geogroups/downloadgroup.php?u="+username+"&t="+token+"&"+params+"&download=1");}
var display_logs=null;function popMyLogs(response)
{ssn(11,1);var mylogs=response.mylogs;var total=pnt(response.total);var start=pnt(response.skip);var count=pnt(response.returned);var txt=getLogUploadForm();var pages=resultHeader(start,count,total,"GeoLogs");var page_nav=getPageNav(start,count,total,"fmyl(0)","fmyl("+((start-15)>=0?(start-15):0)+" )","fmyl("+(start+count)+" )");txt+=rth(pages,page_nav,2);var timeoutfunc=htmlesc("fmyl("+start+" )");pushBackFunc(timeoutfunc,true);var allrows=new Array();for(var i=0;i<mylogs.length;i++)
{var pfn="";var cap="";if(mylogs[i].parent_post_id<=0){pfn="fnp(\"title="+eu(mylogs[i].name)+"&lid="+mylogs[i].path_id+"\")";cap="Publish To Group";}
else{pfn="fetchEditPostHtml("+mylogs[i].parent_post_id+")";cap="Edit Publish Details";}
var crow="";crow+="<tr>"+"<td class='ctrack' style='font-size:90%;font-weight: heavy;width:100%;border-bottom: 1px solid #44cc44;border-top: 1px solid #44cc44;padding: 2px;' "+" onmouseover='hl(this.parentNode, \"brown\", \"#f2EA7D\");' "+" onmouseout='uhl(this.parentNode); onMouseoutInfo(event,this);' "+" >"+"<span style='float:right' class='button' "+" onclick='showLog("+i+")' title='Click To See GeoLog On Map' "+" >Map</span>"+
mylogs[i].name+"&nbsp;&nbsp;"+"<img style='cursor:pointer' src='/images/remove-16.png' title='Delete This GeoLog' "+" onclick='askLogDel("+i+");return false;' />"+"<br/>&nbsp;<span style='color: black'>"+mylogs[i].num_points+" Points, "+mylogs[i].distance+" miles</span>"+"<br/>"+"<span class='caction'><a target='_log' class='caction' href='/geogroups/downloadcsv.php?id="+mylogs[i].upload_id+"&u="+username+"&t="+token+"' title='Click To Download'>Download &#187;</a></span>&nbsp;&nbsp;"+"<span class='caction'><a target='_log' class='caction' href='/geogroups/downloadlog.php?lid="+mylogs[i].path_id+"&format=gpx&u="+username+"&t="+token+"' title='Click To Download'>GPX &#187;</a></span>"+"&nbsp;&nbsp;<span class='caction' onclick='"+pfn+"' title='Publish'>"+cap+" &#187;</a></span>";crow+="</td>"+"<td></td>";crow+="</tr>";allrows.push(crow);}
txt+=allrows.join("\n");txt+=rtf(count,page_nav,2);display_logs=mylogs;dd("contentarea").innerHTML=txt;scm("<span style='text-align:center;display:block'>My GeoLogs</span>"+"<span style='cursor:pointer' onclick='goBack(1)'>&#171; Back</span>");rel();}
function fetchLog(name,path_id,nocenter)
{if(!nocenter)nocenter=false;function popLogCallback(response){popLog(name,response,nocenter);}
if(path_id==curlogid&&curlogplot)
{if(curlogplot.length>0&&curlogplot[0].getVertexCount()>0)
mpc(curlogplot[0].getVertex(0));}
else
eaq("/geogroups/getlog.php","lid="+path_id+"&encode=1",popLogCallback,false);}
function showLog(i)
{fetchLog(display_logs[i].name,display_logs[i].path_id)}
function getArrowHead(ll)
{var p1=map.fromLatLngToDivPixel(ll[1]);var p2=map.fromLatLngToDivPixel(ll[0]);var d={x:p2.x-p1.x,y:p2.y-p1.y};var l=Math.sqrt((d.x*d.x)+(d.y*d.y));if(l<10)return null;var un=(l<0.001)?{x:1,y:1}:{x:d.x/l,y:d.y/l};var ap=[];ap[0]={x:(p1.x+p2.x)/2,y:(p1.y+p2.y)/2};var a={x:ap[0].x-(10*un.x),y:ap[0].y-(10*un.y)};ap[1]={x:a.x+(7*un.y),y:a.y-(7*un.x)};ap[2]={x:a.x-(7*un.y),y:a.y+(7*un.x)};var pp=new Array();for(i=0;i<3;i++)
pp.push(map.fromDivPixelToLatLng(ap[i]));pp.push(pp[0]);var gon=new GPolygon(pp,"#ff0000",1,0.5,"#ff0000",0.5);gon.isgon=true;return gon;}
var curhistline=null;var curhistid=-1;function removeCurHistLine(){if(curhistline!=null)
{for(var i=0;i<curhistline.length;i++)if(curhistline[i])map.removeOverlay(curhistline[i]);curhistline=null;}
curhistid=-1;}
function showPostHist(post)
{if(post.is_user_location=="1")
{removeCurHistLine();if(typeof post.history!="undefined"&&post.history.length>0)
{var ll=new Array();curhistline=new Array();ll.push(new GLatLng(post.latitude,post.longitude));var w=2+post.history.length;var k=0;var use=false;var ahead=null;for(var i=0;i<post.history.length;i++)
{use=true;ahead=null;ll.push(new GLatLng(post.history[i][0],post.history[i][1]));if(k==0){ahead=getArrowHead(ll);if(!ahead)use=false;}
if(use){curhistline.push(new GPolyline(ll,"#ff0000",w,0.5,{clickable:false}));map.addOverlay(curhistline[k]);k++;if(k==1&&ahead){curhistline.push(ahead);map.addOverlay(curhistline[k]);k++;}
ll.shift();}
else
ll.pop();w--;}
curhistid=post.post_id;}}}
function getObjectClass(obj){if(obj&&obj.constructor&&obj.constructor.toString){var arr=obj.constructor.toString().match(/function\s*(\w+)/);if(arr&&arr.length==2){return arr[1];}}
return undefined;}
function updateHistLine()
{if(curhistline!=null&&curhistline.length>=2&&curhistline[1]&&typeof curhistline[1].isgon!="undefined")
{map.removeOverlay(curhistline[1]);curhistline[1]=getArrowHead([curhistline[0].getVertex(0),curhistline[0].getVertex(1)]);if(curhistline[1])map.addOverlay(curhistline[1]);}}
var curlogplot=null;var curlogid=-1;function removeCurLogPlot(){if(curlogplot!=null)
{for(i=0;i<curlogplot.length;i++)
{map.removeOverlay(curlogplot[i]);curlogplot[i]=null;}
curlogplot=null;curlogid=-1;dd("maptrack").innerHTML="";}}
function popLog(name,response,nocenter)
{if(!nocenter)nocenter=false;var logpoints=response.logpoints;var total=pnt(response.total);var count=pnt(response.returned);removeCurLogPlot();var initpos=null;curlogplot=new Array();if(response.encoded=="1")
{for(i=0;i<logpoints.length;i++)
{curlogplot[i]=GPolyline.fromEncoded({color:"#11bb11",weight:5,opacity:0.7,opts:{clickable:false},points:logpoints[i]["Points"],levels:logpoints[i]["Levels"],numLevels:logpoints[i]["NumLevels"],zoomFactor:logpoints[i]["ZoomFactor"]});map.addOverlay(curlogplot[i]);if(i==0&&curlogplot[0].getVertexCount()>0)
initpos=curlogplot[0].getVertex(0);}}
else{var logplot=new Array();var numsegs=0;var points=new Array();for(i=0;i<logpoints.length;i+=0)
{if(i>0&&logpoints[i]==-1)
{logplot[numsegs++]=points;points=new Array();i++;continue;}
points.push(new GLatLng(logpoints[i+1],logpoints[i+2]));i+=3;}
logplot[numsegs++]=points;for(i=0;i<numsegs;i++)
{if(i==0&&logplot[0].length>0)
initpos=logplot[0][0];curlogplot[i]=new GPolyline(logplot[i],"#11bb11",5,0.7);map.addOverlay(curlogplot[i]);logplot[i]=null;}
logplot=null;logpoints=null;}
curlogid=response.path_id;var txt=getScrap("geotrack: "+name,"removeCurLogPlot()","#55aa55");dd("maptrack").innerHTML=txt;if(!nocenter&&initpos!=null)
mpc(initpos);}
function hideLog()
{for(i=0;i<curlogplot.length;i++)
curlogplot[i].hide();}
function delLog(i)
{var path_id=display_logs[i].path_id;if(!path_id)return;if(path_id==curlogid)
removeCurLogPlot();function popDelLog(response){fmyl(0);}
eaq("/geogroups/deletelog.php","lid="+path_id,popDelLog,false);}
function askLogDel(i)
{var log=display_logs[i];if(!log)return;var backfunc="fmyl()";se("");var delfn="delLog("+i+")";var txt="Are you sure you want to delete the GeoLog:<br>"+"<span class='ctrack'>"+log.name+"</span>&nbsp;?"+"<br><br><input type='button' value='Cancel' onclick='"+backfunc+"'>"+"&nbsp;&nbsp;&nbsp;<input type='button' value='Delete' "+" onclick='"+delfn+"'>";dd("contentarea").innerHTML=txt;var backlink="";if(backfunc)
backlink="<span class='link1' id='backlink' onclick='"+backfunc+"' >[Back]</span>&nbsp;";scm(backlink+"Delete GeoLog");rel();}
function delCSV(i)
{var id=display_csvs[i].upload_id;if(!id)return;function popDelCSV(response){fmycsv();}
eaq("/geogroups/deletecsv.php","id="+id,popDelCSV,false);}
function askCSVDel(i)
{var csv=display_csvs[i];if(!csv)return;var backfunc="fmycsv()";se("");var delfn="delCSV("+i+")";var txt="Are you sure you want to delete the CSV:<br>"+"<span class='ctrack'>"+csv.orig_filename+"</span>&nbsp;?"+"<br><br><input type='button' value='Cancel' onclick='"+backfunc+"'>"+"&nbsp;&nbsp;&nbsp;<input type='button' value='Delete' "+" onclick='"+delfn+"'>";dd("contentarea").innerHTML=txt;var backlink="";if(backfunc)
backlink="<span class='link1' id='backlink' onclick='"+backfunc+"' >[Back]</span>&nbsp;";scm(backlink+"Delete CSV");rel();}
function askCSVPublishDel(i)
{var csv=display_csvs[i];if(!csv)return;var backfunc="fmycsv()";se("");var delfn="deleteCSVPosts("+csv.upload_id+")";var txt="Are you sure you want to delete all "+csv.post_count+" posts published from CSV:<br>"+"<span class='ctrack'>"+csv.orig_filename+"</span>&nbsp;?"+"<br><br><input type='button' value='Cancel' onclick='"+backfunc+"'>"+"&nbsp;&nbsp;&nbsp;<input type='button' value='Delete' "+" onclick='"+delfn+"'>";dd("contentarea").innerHTML=txt;var backlink="";if(backfunc)
backlink="<span class='link1' id='backlink' onclick='"+backfunc+"' >[Back]</span>&nbsp;";scm(backlink+"Delete CSV Published Posts");rel();}
function fetchMySubGroups(render_fn,param,skip,nr,fetchPosts)
{url="/geogroups/mysubgroups.php?u="+username+"&t="+token+"&skip="+skip+"&nr="+nr;function onFetchMySubGroups(resp)
{render_fn(resp,param);if(fetchPosts)
fps(true);}
eaq("/geogroups/mysubgroups.php","skip="+skip+"&nr="+nr,onFetchMySubGroups,false);}
function popFindNearest(response)
{if(response.post_count>0)
popFindNearestInGroup(response.posts[0]);}
function findNearest(i)
{if(i==-1)
{fps(false,true);return;}
var gn=display_groups[i].group_name;if(sgs.length>0&&!nochangegroup)
addGroup(i);var latlng=map.getCenter();eaq("/geogroups/findnearest.php","gn="+eu(gn)+"&lat="+latlng.lat()+"&lon="+latlng.lng(),popFindNearestInGroup,false);}
function popFindNearestInGroup(response)
{var lat=response.latitude;var lng=response.longitude;mpc(new GLatLng(lat,lng));window.setTimeout("clickMarker( "+response.post_id+")",700);}
function myLocation()
{if(is_demo){serror("Sign-In to set your location");}
else
execAjax("/geogroups/getmylocation.php?u="+username+"&t="+token,popMyLocation);}
function popMyLocation(responseText)
{var response=eval('('+responseText+')');if(response.errcode==0)
{var post=response.post;var latlng=new GLatLng(post.latitude,post.longitude);mpc(latlng);window.setTimeout("clickMarker( "+post.post_id+")",700);}
else if(response.errcode==120)
{if(is_demo)serror("Sign In to set your location");else
signOut();}
else
{createNewMarker("mylocation");}}
var last_selected_gid="sg"+"allmysubgroups";function getGroupRow(gid)
{var node=dd(gid);if(node)
{node=node.parentNode;if(node)
{return node;}}
return null;}
function unselGroup()
{var pnode=(last_selected_gid=="")?null:getGroupRow(last_selected_gid);if(pnode)
setCls(pnode,"cgrouprow0");last_selected_gid="";}
function selGroup(gid,gname,groupid)
{if(nochangegroup&&!gname.stricmp(defgroup))
return;unselGroup();sgs.splice(0,sgs.length);uncheckAll();dd("mapgroups").innerHTML="";if(groupid!="")
addGroupE(groupid,gname);if(gid!="")
{var node=getGroupRow(gid);if(node)
setCls(node,"cgrouprowhi");}
last_selected_gid=gid;vDiscuss();}
function vDiscuss(){if(!isonegroup()&&show_discuss)hideDiscussion();}
function selectGroup(i)
{var group=(i<0)?allgroupsobj:display_groups[i];selGroup("sg"+group.group_id,group.group_name,group.group_id);}
function checkBoxGroup(obj,i)
{var group=(i<0)?allgroupsobj:display_groups[i];if(obj.checked)
addGroup(i);else
removeGroup(group.group_id);}
function origSel(obj)
{if(obj.parentNode.className=="cgrouprowhi")
obj.parentNode.className=((obj.id==last_selected_gid)?"cgrouprowhi":"cgrouprow0");}
function hl(o,f,b)
{if(!f)f="white";if(!b)b="#5890e5";o.style.backgroundColor=b;o.pc=o.style.color;o.style.color=f;}
function uhl(o)
{o.style.backgroundColor="";o.style.color=o.pc;}
function hi1(obj)
{obj.style.backgroundImage="url(/images/1ptp.png)";}
function unhi1(obj)
{obj.style.backgroundImage="";}
function checkb(id,state)
{var obj=dd("cb"+id);if(!obj)return;if(obj.checked!=state)obj.checked=state;}
function uncheckAll()
{for(i=0;i<allgroupsids.length;i++)checkb(allgroupsids[i],false);if(!display_groups)return;for(i=0;i<display_groups.length;i++)
checkb(display_groups[i].group_id,false);}
function addGroup(i)
{var group=((i<0)?allgroupsobj:display_groups[i]);addToNV(selgroups,group.group_name,{group_title:group.group_title,is_subscribed:group.is_subscribed,is_owned:((group.username==username)?1:0)});addGroupE(group.group_id,group.group_name);}
function addGroupE(groupid,groupname)
{if(nochangegroup&&!groupname.stricmp(defgroup))
return;if(groupname==demouser)return;unselGroup();var elem=dd("mapgroups");if(!elem||elem==null)return;for(child=elem.firstChild;child!=null;child=child.nextSibling)
{if(child.id==("mg"+groupid)){checkb(groupid,true);return;}}
if(-1!=arrExists(allgroupsids,groupid))
{elem.innerHTML="";sgs.splice(0,sgs.length);uncheckAll();}
var txt=getScrap(groupname,"removeGroup( \""+groupid+"\")","","mg"+groupid);elem.innerHTML+=" "+txt;checkb(groupid,true);for(i=0;i<allgroupsids.length;i++)
if(allgroupsids[i]!=groupid)
removeGroup(allgroupsids[i],true);if(arrAdd(sgs,groupname))
fps(true);rel();vDiscuss();}
var never_fetched=true;function fetchAllPosts(render_fn,lsgs,bounds,latlng,get_total,max,cluster,author,locations,poisonly,picsonly,favonly,sortby,skip)
{if(!skip)skip=0;var gns=lsgs?makelist(lsgs):"";if(never_fetched)
{never_fetched=false;}
if(gns=="")
{if(openv=='post'&&author=="")gns="none";else gns="all";}
var param="";var prange=pdaterange();if(prange.pstart!="")
param+="&start="+prange.pstart;if(prange.pend!="")
param+="&end="+prange.pend;if(bounds)
{var sw=bounds.getSouthWest();var ne=bounds.getNorthEast();param+="&swlat="+sw.lat()+"&swlon="+sw.lng()+"&nelat="+ne.lat()+"&nelon="+ne.lng();}
if(latlng)
param+="&lat="+latlng.lat()+"&lon="+latlng.lng();if(get_total&&get_total==true)
param+="&nt=1";if(cluster&&cluster==true)
param+="&clust=1";if(max&&max!="")
param+="&max="+max;if(author&&author!="")
param+="&author="+eu(author);if(locations&&locations==true)
param+="&locations=1";else if(poisonly&&poisonly==true)
param+="&locations=0";if(picsonly&&picsonly==true)
param+="&picsonly=1";if(favonly&&favonly==true)
{param+="&idlist="+(fav_list==""?"-1":fav_list);}
if(sortby&&sortby!="")
param+="&sb="+eu(sortby);if(skip&&skip>0)
param+="&skip="+eu(skip);if(is_preview)
param+="&preview=1";param+="&fields=def,speed,heading,ago";eaq("/geogroups/allposts.php","gns="+eu(gns)+param,render_fn,false,1);}
function postScrap(post)
{var txt="";if(typeof post!="undefined"&&post!=null)
txt=getScrap("post: "+(post.is_user_location=="1"?((post.username.stricmp(username)?"My":post.username+"&#39;s")+" Location"):post.post_title),"hidePostPop()");dd("mappost").innerHTML=txt;}
var sdr=false;var suspended_need_total=false;var refreshtimeout=null;function rfresh()
{if(refreshtimeout!=null)
window.clearTimeout(refreshtimeout);refreshtimeout=window.setTimeout("fps(false,false,true)",30000);}
function fps(get_total,nearest,arefresh)
{if(!arefresh)arefresh=false;if(refreshtimeout!=null)
window.clearTimeout(refreshtimeout);refreshtimeout=null;if(!get_total)get_total=false;need_total=get_total;if(sdr)
{if(need_total)suspended_need_total=true;return;}
if(sgs.length==0&&author==""&&(defpost==""||(defpost!=""&&last_poppost==-1&&needpostinit==false)))
{if(is_demo)
addGroupE(allgroupsids[1],allgroupsnames[1]);else
{addGroupE(allgroupsids[0],allgroupsnames[0]);}
return;}
var max=max_results;var sortby="";var cluster=true;var render_fn=popPosts;var bounds=map.getBounds();var latlng=null;if(nearest&&nearest==true)
{max=1;sortby="distance";render_fn=popFindNearest;cluster=false;bounds=null;latlng=map.getCenter();}
fetchAllPosts(render_fn,sgs,bounds,latlng,need_total,max,cluster,author,locations_only,pois_only,pics_only,fav_only,sortby,0);if(worldwide_posts&&(need_total||arefresh))
fpw(0,arefresh);need_total=false;rfresh();}
var last_wskip=0;function fpw(skip,arefresh)
{if(!arefresh)arefresh=false;if(!skip)skip=0;if(init_skip>0){skip=init_skip;init_skip=0;}
if(arefresh)skip=last_wskip;else last_wskip=skip;var max=15;var sortby="";var cluster=false;var render_fn=popWorldList;var bounds=null;var latlng=null;fetchAllPosts(render_fn,sgs,bounds,latlng,false,max,cluster,author,locations_only,pois_only,pics_only,fav_only,sortby,skip);}
function findGroupName(gid)
{for(var i=0;i<selgroups.length;i++)
if(selgroups[i].value.group_id==gid)
return selgroups[i].name;return"";}
function removeGroup(groupid,nocall)
{if(nochangegroup&&findGroupName(groupid).stricmp(defgroup))
return;if(!nocall)nocall=false;if(is_demo&&sgs.length==1)return;unselGroup();var elem=dd("mapgroups");if(!elem||elem==null)return false;checkb(groupid,false);for(child=elem.firstChild;child!=null;child=child.nextSibling)
{if(child.id==("mg"+groupid))
{elem.removeChild(child);if(arrRemove(sgs,child.firstChild.innerHTML))
{if(!nocall)fps(true);rel();vDiscuss();return true;}
return false;;}}
return false;}
function htmlescOrig(txt)
{var encodedHtml=escape(txt);encodedHtml=encodedHtml.replace(/\//g,"%2F");encodedHtml=encodedHtml.replace(/\?/g,"%3F");encodedHtml=encodedHtml.replace(/=/g,"%3D");encodedHtml=encodedHtml.replace(/&/g,"%26");encodedHtml=encodedHtml.replace(/@/g,"%40");return encodedHtml;}
function getGroupPopHtml(group,i,subscribed,timeoutfunc)
{last_backfunc=timeoutfunc;if(!timeoutfunc)timeoutfunc="";timeoutfunc=htmlesc(timeoutfunc);var iconimg=(group.iconimg==""?default_icon_name:group.iconimg);var perm_str="";perm_str="You can "+getMyPermStr(group);var txt="";txt+="<span ";txt+=" title='Click to Jump to the Nearest GeoPost in this Group' "+" onmouseover='this.style.borderBottom=\"1px solid blue\"; ' "+" onmouseout='this.style.borderBottom=\"\"; ' "+" onclick='findNearest("+i+")' "+" style='cursor:pointer;";txt+="position:absolute; right: 10px;width:45px;background-image:url("+shadowIcon(iconimg)+")'><img src='/geogroups/icons/"+
iconimg+".png' border='0' /></span>";txt+="<span class='cgroupnamedisp' >"+group.group_name+"</span>";if(group.group_title!="")txt+="</br><span style='font-style:italic;'>"+group.group_title+"</span>";txt+="<table border='0' style='margin:0px;padding:0px' cellspacing='0' cellpadding='0'><tr><td style='padding-right:10px;'>";txt+="<span class='cgroupattr'>"+group.member_count+"&nbsp;Member(s)</span>"+"<br><span class='cgroupattr'>"+group.post_count+"&nbsp;GeoPost(s)</span>";if(subscribed)
{txt+="&nbsp;<a class='clink' href='"+groupUrl(group.tok_group_name)+"'>View</a>&nbsp;|&nbsp;"+"<span class='clink' "+" onclick='findNearest("+i+");'>Find Nearest</span>";}
if(group.credits_needed>0)
{txt+="<br><span class='cgroupattr' style='color:brown;'>"+group.credits_needed+"&nbsp;Credits Needed To Join</span>";if(!is_demo)
txt+="&nbsp;&nbsp;<a class='link3' href='https://"+server_name+"/geoaccount/credits.php'>[Manage Your Credits]</a>";}
if(group.preview_count>0){txt+="<br/><span class='cgroupattr'>"+group.preview_count+" Preview GeoPost(s)</span> &nbsp;"+"<a class='clink' href='"+groupUrl(group.tok_group_name)+"?preview=1'>View</a>";}
txt+="</td>";if(!subscribed&&is_demo)
{txt+="<td align='center' style='padding:5px;margin-left:5px;border-left:1px solid #eeeeee;'><span class='l3title' style='cursor:pointer;font-weight:bold;text-decoration:underline;' onclick='showSignIn()' >Sign-In</span><br/><font color='#9999'>To View Posts In This Group</font></td>";}
txt+="</tr></table>";txt+="<table width='370' >";if(group.group_description!="")
{txt+="<tr>"+"<td colspan='2' style='border-top: 1px solid #eeeeee;'>"+
group.group_description+"</td>"+"</tr>";}
txt+="<tr><td class='ctagnameg' style='border-top: 1px solid #eeeeee;' >"+"Created By:"+"</td>"+"<td class='ctagval' style='border-top: 1px solid #eeeeee;'>"+"<span class='cusername'>"+group.username+"</span>"+
((group.is_anonymous=="1"&&group.username!="anonymous")?"&nbsp;(anonymous to others)":"")+"</td>"+"</tr>"+"<tr>"+"<td class='ctagnameg' >"+"Visibility: "+"</td>"+"<td class='ctagval' >"+"<span class='cgroupattr'>"+(group.is_private=="0"?"Appears in public group listings":"Private. Does not appear in public group listings")+"</span>"+"</td>"+"</tr>"+"<tr>"+"<td class='ctagnameg' >"+"Join Permission: "+"</td>"+"<td class='ctagval'>"+"<span class='cgroupattr'>"+(group.needs_permission=="0"?"Not Required":"Needs Permission To Join")+"</span>";if(subscribed&&group.username!=username)
{txt+="<tr>"+"<td class='ctagnameg' >"+"Your Permissions: "+"</td>"+"<td class='ctagval'>"+"<span class='cgroupattr'>"+perm_str+"</span>";if(!is_demo)
txt+="&nbsp;&nbsp;<span class='link3' "+ml+" title='Request a Permissions Change in this Group' "+" onclick='hip();askPermG("+i+")' >[Change]</span>";txt+="</td>"+"</tr>";}
txt+="<tr>"+"<td  class='ctagnameg'>"+"Subscription:"+"</td>"+"<td class='ctagval' >"+"<span class='link1' "+ml+" ";if(subscribed)
txt+="onclick='unsubgroup( "+i+", \""+timeoutfunc+"\");hip();'>Unsubscribe from this group";else
txt+="onclick='subgroup( "+i+", \""+timeoutfunc+"\");hip();'>Subscribe to this group";txt+="</span>"+"</td>"+"</tr>";txt+="<tr><td colspan='2' style='border-top: 1px solid #eeeeee;'>";txt+="<span class='link3' "+ml+" title='Invite User To Join this Group' "+" onclick='hip();inviteg("+i+")' >[Invite User]</span>";if(username==group.username)
txt+="&nbsp;<span class='link3' "+ml+" onclick='hip();fetchEditGroupHtml("+i+",\""+timeoutfunc+"\")' >[Edit Group]</span>"+"&nbsp;<span class='link3' "+ml+" onclick='hip();deleteGroupHtml("+i+",\""+timeoutfunc+"\")'>[Delete Group...]</span>"+"&nbsp;<span class='link3' "+ml+" onclick='hip();fulid("+i+")'>[Manage Users...]</span><br>";if(subscribed)
txt+="&nbsp;<span class='link3' "+ml+" title='Upload Bulk Data Files Into This Group' "+" onclick='hip();goMenu(12)' >[Bulk Upload]</span>";txt+="</td></tr>\n";txt+="</table>";return txt;}
function fsubg(skip,fetch_posts)
{if(!skip)skip=0;if(!fetch_posts)fetch_posts=false;var fa=fetch_posts&&(fetch_posts==true);fetchMySubGroups(popMySubGroups,"contentarea",skip,15,fa);}
function rth(pages,page_nav,numcols)
{if(!numcols)numcols=3;return"<table "+" "+" width='100%' style='border-collapse: collapse;'>\n"+"<tr>"+"<td colspan='"+numcols+"' class='cheadbar' >"+"<span style='float:right;white-space:nowrap'>"+page_nav+"</span>"+
pages+"</td>"+"</tr>";}
function resultTableStart(numcols)
{if(!numcols)numcols=3;return"<table "+" "+" width='100%' style='border-collapse: collapse;'>\n";}
function resultTableNav(pages,page_nav,numcols)
{if(!numcols)numcols=3;return"<tr>"+"<td colspan='"+numcols+"' class='cheadbar' >"+"<span style='float:right;white-space:nowrap;'>"+page_nav+"</span>"+
pages+"</td>"+"</tr>";}
function rtf(count,page_nav,numcols)
{if(!numcols)numcols=3;return(count>5?("<tr>"+"<td colspan='"+numcols+"' >"+"<span style='float:right;' >"+page_nav+"</span>"+"</td></tr>"):"")+"</table>\n";}
function addOrSelectGroup(e,i)
{if(e.ctrlKey)
addGroup(i);else
selectGroup(i);return false;}
var gtimeouts={};function sTimeout(name,fn,t)
{clTimeout(name);gtimeouts[name].mtimeout=window.setTimeout(fn,t);}
function clTimeoutN(name)
{clTimeout(name);}
function clTimeout(name)
{if(name=="")return;if(typeof gtimeouts[name]=="undefined")
gtimeouts[name]={mtimeout:null,stimeout:null};if(gtimeouts[name].mtimeout)
{window.clearTimeout(gtimeouts[name].mtimeout);gtimeouts[name].mtimeout=null;}}
function ssTimeout(name,fn,t)
{if(typeof gtimeouts[name]=="undefined")
gtimeouts[name]={mtimeout:null,stimeout:null};if(gtimeouts[name].stimeout)
window.clearTimeout(gtimeouts[name].stimeout);gtimeouts[name].stimeout=window.setTimeout(fn,t);}
var allmysubgroupsobj={"group_id":"allmysubgroups","group_name":"My Groups","group_title":"","iconimg":default_icon_name};var allgroupsobj=allmysubgroupsobj;function cancelProp(e)
{if(!e)e=window.event;e.cancelBubble=true;if(e.stopPropagation)e.stopPropagation();}
function cp(e){cancelProp(e);}
function userUrl(name)
{return"/users/"+eu(name)+"/";}
function groupUrl(name)
{return"/groups/"+eu(flattendash(name))+"/";}
function groupLink(name)
{return"<a class='l3title' "+(style=="widget"?"target='__exlink'":"")+" style='color:#5890e5;text-decoration:underline;' href='"+groupUrl(name)+"'>"+name+"</a>";}
function groupName(name)
{return"<span class='l3title'>"+name+"</span>";}
function postUrl(p){var url=window.location.protocol+"//"+window.location.host;return url+"/posts/"+((p.is_user_location=="1"&&p.username!="anonymous")?("mylocation-"+p.username):p.post_id)+"/"+flattendash(p.post_title)+"/";}
var widgeturl="http%3A%2F%2F"+server_name+"%2Fwidgets%2Fmylocation.xml";function ggPostUrl(p){return("http://www.google.com/ig/add?moduleurl="+widgeturl+"&up_user="+eu(p.username));}
function wLocUrl(p)
{return"http://"+server_name+"/widgets/testmylocation.php?user="+eu(p.username);}
var rparams=null;function procRegex(match,index)
{name=match.substr(2,match.length-3);return rparams[name];}
function popGroups(allid,response,param)
{scm("<div class='cgroupheading'>My Groups</div>");var groups=response.groups;var total=pnt(response.total);var start=pnt(response.skip);var count=pnt(response.returned);var pages=resultHeader(start,count,total);if(allid=="allmysubgroups")
{fn="fsubg";allgroupsobj=allmysubgroupsobj;}
var page_nav=getPageNav(start,count,total,fn+"(0)",fn+"("+((start-15)>=0?(start-15):0)+")",fn+"("+(start+count)+")");var txt=resultTableStart(5);var timeoutfunc=fn+"("+start+")";pushBackFunc(timeoutfunc,true);var classname="";var gid="";var allrows=new Array();var group=allgroupsobj;var crow="";allrows.push(resultTableNav(pages,page_nav,5));var i=-1;var group=allgroupsobj;gid="sg"+group.group_id;classname=(last_selected_gid==gid)?"cgrouprowhi":"cgrouprow0";var crow="<tr class='"+classname+"'>"+"<td>"+"<input type='checkbox' id='cb"+group.group_id+"' "+
(-1!=arrExists(sgs,group.group_name)?"checked":"")+" onclick='checkBoxGroup(this,"+i+");' "+"> "+"<td class='cgroupnamecell' id='"+gid+"' "+" title='Click to see posts from all "+htmlesc(group.group_name)+" on the map' "+" onclick='window.location.href=mygroupsUrl()' "+" onmouseover='this.parentNode.className = \"cgrouprowhi\";' "+" onmouseout='origSel(this);' "+" >";crow+="<span class='cgroupname' >All "+group.group_name+"</span>";crow+="</td>";crow+="<td></td>";crow+="<td></td>";crow+="<td></td>";crow+="</tr>\n";allrows[allrows.length]=crow;var rowtemplate="<tr class='${classname}'> \
    <td> \
     <input type='checkbox' id='cb${group_id}' \
     onclick='checkBoxGroup(this,${i});' ${checked} /> \
    </td> \
    <td class='cgroupnamecell' id='sg${group_id}' \
     title='Click to see posts from this group' \
     onclick='window.location.href=groupUrl(\"${tok_group_name}\")'  \
     onmouseover='this.parentNode.className=\"cgrouprowhi\";'  \
     onmouseout='origSel(this);' > \
     <img style='float:left;' src='/geogroups/icons/${icon_name}.png' > \
     <span class='cgroupname' >${group_name}\
     &nbsp;&nbsp;(${post_count})</span> \
     <br/><span class='cgrouptitle'>${group_title}</span>\
    </td>\
    <td class='cgrouprowattr' style='cursor:default;' ${private_title} >${private_img}</td> \
    <td class='cgrouprowattr' title='Jump to Nearest Geopost in this group' \
     onmouseover='hl(this);' \
     onmouseout='uhl(this);' \
     onclick='findNearest(${i})' \
    ><img src='/images/geofind16.png' /></td> \
  <td class='cgrouprowattr' \
     onmouseover='hl(this);showGroupPop(this,${is_subscribed},${i}, \"${timeoutfunc}\");' \
     onmouseout='uhl(this);onMouseoutInfo(event,this)' \
    ><img src='/images/menuright.png' /></td> \
    </tr>";var regexp=new RegExp("\\${checked}|\\${classname}|\\${group_id}"+"|\\${group_name}|\\${tok_group_name}|\\${icon_name}|\\${post_count}"+"|\\${group_title}|\\${private_title}|\\${private_img}|\\${is_subscribed}"+"|\\${timeoutfunc}|\\${i}","g");for(i=0;i<groups.length;i++)
{g=groups[i];var issub=true;if(typeof g.is_subscribed!="undefined")
issub=g.is_subscribed;if(g.group_name==username)
mygroup_id=g.group_id;gid="sg"+g.group_id;cn=(last_selected_gid==gid)?"cgrouprowhi":"cgrouprow0";rparams={classname:cn,checked:(-1!=arrExists(sgs,g.group_name)?"checked":""),group_id:g.group_id,group_name:g.group_name,tok_group_name:g.tok_group_name.replace(/\s/g,"-"),post_count:g.post_count,group_title:g.group_title,icon_name:iconName(g.iconimg),is_subscribed:issub,private_img:(g.is_private=="1"?" <img src='/images/private16.png' ":""),private_title:(g.is_private=="1"?" title='This is a private group' ":""),timeoutfunc:timeoutfunc,i:i}
crow=rowtemplate.replace(regexp,procRegex);rparam=null;delete rparam;allrows[allrows.length]=crow;}
txt+=allrows.join("\n");allrows=null;delete allrows;txt+=rtf(count,page_nav,5);txt+="<span class='button' style='margin-right:0px;' onclick='goMyPosts();' >View Posts</span>";display_groups=groups;if(start==0&&count<5)
{txt+="<br><br>Tip: "+"<span class='link1' "+" title='Browse or Search Public Groups' "+" onclick='goMenu(3);'>Find</span>"+" public groups matching your interest"+" <br>or create a <span class='link1' title='Create a new group' onclick='goMenu(4)'>New Group</span>";}
dd(param).innerHTML=txt;rel();}
function popMySubGroups(response,param)
{ssn(0,0);popGroups("allmysubgroups",response,param);}
var choose_icons=null;function setIcon(name,prefix)
{var nameobj=prefix+"icon";var imageobj=nameobj+"img";if(!name)name="";dd(nameobj).value=name==""?"default":name;if(name==""||name=="default")
{dd(imageobj).innerHTML="";dd(imageobj).style.backgroundImage="";}
else
{dd(imageobj).style.backgroundImage="url( "+shadowIcon(name)+")";dd(imageobj).innerHTML="<img src='/geogroups/icons/"+name+".png' >"+"<span class='cclosebutton' title='Remove' style='border:1px solid grey;' "+" onclick='setIcon(\"default\",\""+prefix+"\")'  >X</span><br>";}}
function sicon(i,prefix)
{setIcon(choose_icons[i].substr(0,choose_icons[i].length-4),prefix);}
function setIcon1(i){sicon(i,"na");}
function setIcon2(i){sicon(i,"ng");}
function setIcon3(i){sicon(i,"csv");}
function chooseIcon(placementobjname,callback,skip)
{if(!skip)skip=0;var param={placement:placementobjname,callback:callback};fetchIcons(popChooseIcons,param,skip,100);}
function fetchIcons(render_fn,param,skip,nr)
{eaq("/geogroups/geticons.php","skip="+skip+"&nr="+nr,function(response){render_fn(response,param);},false);}
function shadowIcon2(filename)
{return shadowIcon(filename.substr(0,filename.length-4));}
function popChooseIcons(response,param)
{var icons=response.icons;var total=pnt(response.total);var start=pnt(response.skip);var count=pnt(response.returned);var pages=resultHeader(start,count,total,"Icons");var page_nav=getPageNav(start,count,total,"chooseIcon(\""+param.placement+"\", \""+param.callback+"\", 0 )","chooseIcon(\""+param.placement+"\", \""+param.callback+"\", "+((start-100)>=0?(start-100):0)+" )","chooseIcon(\""+param.placement+"\", \""+param.callback+"\", "+(start+count)+" )");var txt=rth(pages,page_nav,10);var timeoutfunc=htmlesc("chooseIcons(\""+param.placement+"\", \""+param.callback+"\", "+start+" )");var allrows=new Array();var i=0;for(r=0;r<10;r++)
{var crow="<tr>";for(c=0;c<10;c++)
{crow+="<td class='cicon' ";if(i<count)
{crow+="style='width: 60px;min-width:60px; background-image: url("+shadowIcon2(icons[i])+");' ";}
crow+=" >";if(i<count)
crow+="<img src='/geogroups/icons/"+icons[i]+"' "+"onmouseover='hi1(this);' onmouseout='unhi1(this);' "+"onclick='"+param.callback+"("+i+")' "+"title='"+icons[i].substr(0,icons[i].length-4)+"' ";" >";crow+="</td>";i++;}
crow+="</tr>\n";allrows.push(crow);}
txt+=allrows.join("\n");allrows=null;txt+=rtf(count,page_nav,10);choose_icons=icons;showListPop(dd(param.placement),txt);}
var choose_groups=null;function addChooseGroup(i,divname)
{addChooseGroupE(divname,choose_groups[i].group_name);}
function addChooseGroupE(divname,groupname)
{var elem=dd(divname);if(!elem||elem==null)return;for(child=elem.firstChild;child!=null;child=child.nextSibling)
{if(child.firstChild&&child.firstChild.innerHTML==groupname)return;}
var txt=getScrap(groupname,"removeChooseGroup(\""+groupname+"\",\""+divname+"\")");elem.innerHTML+=(elem.innerHTML!=""?"<br>":"")+txt;}
function removeChooseGroup(groupname,divname)
{var elem=dd(divname);if(!elem||elem==null)return false;var prevchild=null;for(child=elem.firstChild;child!=null;child=child.nextSibling)
{if(child.firstChild&&child.firstChild.innerHTML==groupname)
{elem.removeChild(child);if(prevchild)elem.removeChild(prevchild);return true;}
prevchild=child;}
return false;}
function makeScrapList(divname)
{var txt="";var elem=dd(divname);for(child=elem.firstChild;child!=null;child=child.nextSibling)
{if(child.firstChild&&child.firstChild.innerHTML!="")
txt+=(txt!=""?",":"")+child.firstChild.innerHTML;}
return txt;}
function chooseGroups(displayobjname,listobjname,skip)
{if(!skip)skip=0;var param={placement:displayobjname,groupnamelist:listobjname};fetchMySubGroups(popChooseGroups,param,skip,10,false);}
function popChooseGroups(response,param)
{var groups=response.groups;var total=pnt(response.total);var start=pnt(response.skip);var count=pnt(response.returned);var pages=resultHeader(start,count,total);var page_nav=getPageNav(start,count,total,"chooseGroups(\""+param.placement+"\", \""+param.groupnamelist+"\", 0 )","chooseGroups(\""+param.placement+"\", \""+param.groupnamelist+"\", "+((start-10)>=0?(start-10):0)+" )","chooseGroups(\""+param.placement+"\", \""+param.groupnamelist+"\", "+(start+count)+" )");var txt=rth(pages,page_nav);var timeoutfunc=htmlesc("chooseGroups(\""+param.placement+"\", \""+param.groupnamelist+"\", "+start+" )");var classname="";var gid="";var allrows=new Array();for(i=0;i<groups.length;i++)
{gid="cg"+groups[i].group_id;classname="cgrouprow0";var crow="<tr class='"+classname+"'>"+"<td class='cgroupnamecell' id='"+gid+"' "+" onmouseover='this.parentNode.className = \"cgrouprowhi\";' "+" onmouseout='origSel(this);' "+" onclick='addChooseGroup("+i+", \""+param.groupnamelist+"\")' "+" >"+"<img src='/geogroups/icons16/"+iconName(groups[i].iconimg)+"-16.png' >"+"<span class='cgroupname' >"+groups[i].group_name+"&nbsp;&nbsp;("+groups[i].post_count+")</span>";if(groups[i].group_title!=""&&groups[i].group_title!=groups[i].group_name)
crow+="&nbsp;<span class='cgrouptitle'>"+groups[i].group_title+"</span>";crow+="</td>";crow+="<td class='cgrouprowattr' title='Add this group' "+" onmouseover='hl(this);' "+" onmouseout='uhl(this);' "+" onclick='addChooseGroup("+i+", \""+param.groupnamelist+"\")' "+" >+</td>";crow+="<td class='cgrouprowattr' "+" onmouseover='hl(this);showGroupPop(this, true, "+i+", \""+timeoutfunc+"\");' "+" onmouseout='uhl(this);onMouseoutInfo(event,this)' "+" ><img src='/images/menuright.png' /></td>";crow+="</tr>\n";allrows.push(crow);}
txt+=allrows.join("\n");allrows=null;txt+=rtf(count,page_nav);choose_groups=groups;showListPop(dd(param.placement),txt);}
function setChooseGrantGroup(i,divname)
{dd("ign").value=choose_groups[i].group_name;}
function chooseMyGroup(displayobjname,listobjname,skip,callbackfn)
{if(!skip)skip=0;if(!callbackfn)
callbackfn="setChooseMyGroup";var param={placement:displayobjname,groupnamelist:listobjname,callbackfn:callbackfn};fetchMyGroups(popChooseMyGroup,param,skip,10);}
function setChooseMyGroup(i,divname)
{ful(0,choose_groups[i].group_name);}
function popChooseMyGroup(response,param)
{var groups=response.groups;var total=pnt(response.total);var start=pnt(response.skip);var count=pnt(response.returned);var pages=resultHeader(start,count,total);var page_nav=getPageNav(start,count,total,"chooseMyGroup(\""+param.placement+"\", \""+param.groupnamelist+"\", 0, \""+param.callbackfn+"\" )","chooseMyGroup(\""+param.placement+"\", \""+param.groupnamelist+"\", "+((start-10)>=0?(start-10):0)+" , \""+param.callbackfn+"\")","chooseMyGroup(\""+param.placement+"\", \""+param.groupnamelist+"\", "+(start+count)+" , \""+param.callbackfn+"\" )");var txt=rth(pages,page_nav,2);var timeoutfunc=htmlesc("chooseMyGroup(\""+param.placement+"\", \""+param.groupnamelist+"\", "+start+" , \""+param.callbackfn+"\")");var classname="";var gid="";var allrows=new Array();for(i=0;i<groups.length;i++)
{gid="cg"+groups[i].group_id;classname="cgrouprow0";var crow="<tr class='"+classname+"'>"+"<td class='cgroupnamecell' id='"+gid+"' "+" onmouseover='this.parentNode.className = \"cgrouprowhi\";' "+" onmouseout='origSel(this);' "+" onclick='"+param.callbackfn+"("+i+", \""+param.groupnamelist+"\")' "+" >"+"<img src='/geogroups/icons16/"+iconName(groups[i].iconimg)+"-16.png' >"+"<span class='cgroupname' >"+groups[i].group_name+"&nbsp;&nbsp;("+groups[i].post_count+")</span>";if(groups[i].group_title!=""&&groups[i].group_title!=groups[i].group_name)
crow+="&nbsp;<span class='cgrouptitle'>"+groups[i].group_title+"</span>";crow+="</td>";crow+="<td class='cgrouprowattr' "+" onmouseover='hl(this);showGroupPop(this, true, "+i+", \""+timeoutfunc+"\");' "+" onmouseout='uhl(this);onMouseoutInfo(event,this)' "+" ><img src='/images/menuright.png' /> "+"</td>";crow+="</tr>\n";allrows.push(crow);}
txt+=allrows.join("\n");allrows=null;txt+=rtf(count,page_nav,2);choose_groups=groups;display_groups=groups;showListPop(dd(param.placement),txt);}
function fgroup(gn)
{g=gn.toLowerCase();for(i=0;i<display_groups.length;i++){if(gn==display_groups[i].group_name.toLowerCase())
return i;}
return-1;}
var nasubgroups=null;function addPostGroup(groupname)
{groupname=trim(groupname);if(groupname==""||groupname==",")
return;var prev=dd("nagn").value;prev=addIfNotExist(prev,groupname);dd("nagn").value=prev;}
function popNewPostSubGroupsFiltered(param,filter_str)
{if(nasubgroups==null)
return;var txt="<table>\n";for(i=0;i<nasubgroups.length;i++)
{if(filter_str==""||-1!=nasubgroups[i].indexOf(filter_str.toLowerCase()))
txt+="<tr><td onclick='addPostGroup( this.innerHTML )'>"+
nasubgroups[i]+"</td></tr>\n";}
txt+="</table>\n";dd(param).innerHTML=txt;}
function filterNASubGroups()
{if(nasubgroups==null)
return;var fstr=dd('nafsg').value;popNewPostSubGroupsFiltered("nagrouplist",fstr);}
function popNewPostSubGroups(groups,param)
{nasubgroups=new Array();for(i=0;i<groups.length;i++)
{nasubgroups.push(groups[i].group_name);}
popNewPostSubGroupsFiltered(param,"");}
function fetchMyGroups(render_fn,param,skip)
{if(!skip)skip=0;eaq("/geogroups/mygroups.php","skip="+skip,function(response){render_fn(response,param);},false);}
function fmyg(skip)
{if(!skip)skip=0;fetchMyGroups(popMyGroups,"contentarea",skip);}
var mygroup_id=-1;function popMyGroups(response,param)
{ssn(1,0);popGroups("allmygroups",response,param);}
function fetchAllGroups(render_fn,param,skip,searchq,excludealready)
{if(!skip)skip=0;if(!searchq)searchq="";if(!excludealready)excludealready=0;if(excludealready&&excludealready=="0")excludealready=0;var my=excludealready?"0":"1";function onFetchAllGroups(response){render_fn(response,param);}
eaq("/geogroups/findgroups.php","skip="+skip+"&nr=15"+"&q="+eu(searchq)+"&my="+my,onFetchAllGroups,false);}
function searchGroups(nosearch)
{if(!nosearch)nosearch=false;var searchq=(nosearch?"":dd("searchq").value);fetchAllGroups(popAllGroups,"contentarea",0,searchq);}
function resultHeader(start,count,total,name)
{if(!name)name="Groups";if(start==0&&count==0)
return"&nbsp;<b>0</b> "+name+" Found";else
return"&nbsp;"+name+" <b>"+(start+(count>0?1:0))+"&nbsp;-&nbsp;"+(start+count)+"</b> of "+total;}
function fallg(skip,searchq)
{if(!skip)skip=0;if(!searchq)searchq="";fetchAllGroups(popAllGroups,"contentarea",skip,searchq);}
function popAllGroups(response,param)
{ssn(3,0);var filtxt="";if(response.searchq!="")filtxt+="<img class='cpointer' title='Clear' src='/images/remove-16.png' onclick='searchGroups(true)' />";filtxt+="<input type='text' "+" id='searchq' "+" onkeypress='if (isEnter(event)) searchGroups();' "+"value='"+response.searchq+"'>&nbsp;<input type='button' value='Search' "+" onclick='searchGroups()'><br/>";var groups=response.groups;var total=pnt(response.total);var start=pnt(response.skip);var count=pnt(response.returned);var pages=resultHeader(start,count,total);var page_nav=getPageNav(start,count,total,"fallg(0, \""+response.searchq+"\" )","fallg("+
((start-15)>=0?(start-15):0)+" , \""+response.searchq+"\"  )","fallg("+(start+count)+", \""+response.searchq+"\")");var txt=filtxt+rth(pages,page_nav,2);var timeoutfunc="fallg("+start+", \""+htmlesc(response.searchq)+"\")";pushBackFunc(timeoutfunc,true);timeoutfunc=htmlesc(timeoutfunc);var classname="cgrouprow0";var gid="";var allrows=new Array();for(i=0;i<groups.length;i++)
{var group=groups[i];var issub=(group.is_subscribed=="1");var popfunc="showGroupPop(this,"+(issub?"true":"false")+", "+i+", \""+timeoutfunc+"\");";gid="sg"+group.group_id;var crow="<tr class='"+classname+"'> \
        <td class='cgroupnamecell' id='"+gid+"' \
        onmouseover='this.parentNode.className = \"cgrouprowhi\";' \
        onmouseout='origSel(this);'  \
        onclick='"+(issub?("window.location.href=groupUrl(\""+group.tok_group_name.replace(/\s/g,"-")+"\")"):popfunc)+"' \
        > \
        <img style='float:left;' src='/geogroups/icons/"+iconName(group.iconimg)+".png' >"+"<span class='cgroupname' >"+group.group_name+"&nbsp;&nbsp;("+group.post_count+")</span>";if(group.group_title!=""&&group.group_title!=group.group_name)
crow+="<br/><span class='cgrouptitle'>"+group.group_title+"</span>";crow+="</td>\n";crow+="<td class='cgrouprowattr' "+" onmouseover='hl(this);"+popfunc+"' "+" onmouseout='uhl(this);onMouseoutInfo(event,this)' "+" ><img src='/images/menuright.png' /></td>";crow+="</tr>\n";allrows.push(crow);}
txt+=allrows.join("\n");allrows=null;txt+=rtf(count,page_nav,2);display_groups=groups;dd(param).innerHTML=txt;scm("<div class='cgroupheading'>Public Groups</div>");rel();}
function fngh()
{fetchNewGroupHtml(popNewGroupHtml,"contentarea");}
function fetchNewGroupHtml(render_fn,param)
{execAjax("/geogroups/newgroup3.php",onFetchNewGroupHtml);function onFetchNewGroupHtml(responseText)
{se("");render_fn(responseText,param);this.obj=null;}}
function popNewGroupHtml(responseText,param)
{ssn(4,0);pushBackFunc("fngh()",true);dd(param).innerHTML=responseText;scm("<div class='cgroupheading'>Create New Group</div>");rel();}
function deleteGroup(groupname,backfunc)
{function onDeleteGroup(response)
{popDeleteGroup(response.errmsg,backfunc);}
eaq("/geogroups/deletegroup.php","gn="+eu(jsunesc(groupname)),onDeleteGroup,false);}
function popDeleteGroup(errmsg,timeoutfunc)
{se((errmsg=="Success")?"Group Deleted Successfully":errmsg);var dely=(errmsg=="Success")?1000:3000;timeoutfunc=jsunesc(timeoutfunc);if(timeoutfunc&&timeoutfunc!="")
window.setTimeout(timeoutfunc,dely);}
function deleteGroupHtml(i,backfunc)
{se("");var delfn="deleteGroup(\""+htmlesc(display_groups[i].group_name)+"\", \""+backfunc+"\" )";var txt="Are you <b>absolutely</b> sure you want to delete the group:<br>"+"<span class='cgroupname'>"+display_groups[i].group_name+"</span>&nbsp;?"+"<br><span class='ctiphelp'>Note that GeoPosts tagged with only this group will become \"orphaned\"</span>"+"<br><br><input type='button' value='Cancel' onclick='"+backfunc+"'>"+"&nbsp;&nbsp;&nbsp;<input type='button' value='Delete' "+" onclick='"+delfn+"'>";dd("contentarea").innerHTML=txt;var backlink="";if(backfunc)
backlink="<span class='link1' id='backlink' onclick='"+backfunc+"' >[Back]</span>&nbsp;";scm(backlink+"Delete Group");rel();}
function fetchEditGroupHtml(i,backfunc)
{execAjax("/geogroups/newgroup3.php",onFetchEditGroupHtml);function onFetchEditGroupHtml(responseText)
{se("");popEditGroupHtml(responseText,i,backfunc);this.obj=null;}}
function popEditGroupHtml(responseText,i,backfunc)
{var group=new cloneObject(display_groups[i]);dd("contentarea").innerHTML=responseText;var backlink="";if(backfunc)
backlink="<span class='link1' id='backlink' onclick='"+backfunc+"' >[Back]</span>&nbsp;";scm(backlink+"Edit Group");dd("nggn").value=group.group_name;dd("nggn").disabled=true;dd("ngcreate").value="edit";dd("groupformbutton").value="Update Group";dd("nggt").value=group.group_title;dd("nggd").value=group.group_description;dd("nggp").checked=group.is_private=="1";dd("nggnp").checked=group.needs_permission=="1";dd("ngga").checked=group.is_anonymous=="1";dd("ngrp").checked=group.rp=="1";dd("ngrl").checked=group.rl=="1";dd("ngcp").checked=group.cp=="1";dd("ngcl").checked=group.cl=="1";dd("ngcr").value=group.credits_needed;setIcon(group.iconimg,"ng");group=null;rel();}
function fetchDragPostHtml(post_id,lat,lng,addr)
{addr=jsunesc(addr);fep("edit=1&aid="+post_id+"&drag=1&lat="+lat+"&lon="+lng+"&address="+eu(addr));}
function fetchEditPostHtml(post_id)
{fep("edit=1&aid="+post_id);}
function fnah(param,editmode)
{fnp(param,editmode);}
function fep(param){fnp(param,true);}
function fnp(param,editmode)
{if(!getBackFunc())
pushBackFunc("fnah()",true);if(!editmode)editmode=false;if(!param)param="";fetchNewPostHtml(popNewPostHtml,"contentarea",param,editmode);}
function fetchNewPostHtml(render_fn,param1,param2,editmode)
{scm(editmode?"Edit GeoPost":"Create New GeoPost");if(!param2)param2="";url="/geogroups/newposthtml6.php?u="+eu(username)+"&t="+token+"&"+param2;execAjax(url,onFetchNewPostHtml);function onFetchNewPostHtml(responseText)
{render_fn(responseText,param1,editmode);this.obj=null;}}
function popNewPostHtml(responseText,param,editmode)
{se("");dd(param).innerHTML=responseText;dd("naat").focus();var islocation=dd("naiul").checked;var added=0;if(!editmode&&!islocation)
{for(var i=0;i<sgs.length;i++)
if(-1==(arrExists(allgroupsnames,sgs[i])))
{addChooseGroupE("nagn",sgs[i]);added++;}
setIcon(dd("naicon").value,"na");}
else
{setIcon(dd("naicon").value,"na");added+=addChooseGroups("nagns","nagn");}
if(added==0)
addChooseGroupE("nagn",username);ptChoose(1,true);scm();scm("<span style='text-align:center;display:block'>"+(editmode?"Edit Post":"Create Post")+"</span>"+"<span style='cursor:pointer' onclick='goBack()'>&#171; Back</span>");rel();}
function createNewGroupRequest(render_fn,param)
{var gn=dd("nggn").value;if(gn.length==0)
{se("What's a group without a name?");return;}
if(gn.length>30)
{se("Group name is longer than 30 chars");return;}
var gt=dd("nggt").value;var gd=dd("nggd").value;if(gd.length>512)
{se("Description exceeds 512 chars");return;}
var gp=dd("nggp").checked?"1":"0";var gnp=dd("nggnp").checked?"1":"0";var ga=dd("ngga").checked?"1":"0";var rp=dd("ngrp").checked?"1":"0";var rl=dd("ngrl").checked?"1":"0";var cp=dd("ngcp").checked?"1":"0";var cl=dd("ngcl").checked?"1":"0";var credits=dd("ngcr").value;var gic=dd("ngicon").value;if(gic=="default")gic="";var createmode=dd("ngcreate").value=="create";var urlparams="gn="+eu(gn)+"&gt="+eu(gt)+"&gp="+eu(gp)+"&gnp="+eu(gnp)+"&ga="+eu(ga)+"&gd="+eu(gd)+"&rp="+eu(rp)+"&rl="+eu(rl)+"&cp="+eu(cp)+"&cl="+eu(cl)+"&gic="+eu(gic)+"&credits="+eu(credits);eaq((createmode?"/geogroups/addgroup.php":"/geogroups/updategroup.php"),urlparams,function(response){render_fn(createmode);},false);}
function popCreateNewGroup(createmode)
{se("Group "+(createmode?"Created":"Updated")+" Successfully");if(!createmode)fps(true);var timeoutfunc='fetchNewGroupHtml( popNewGroupHtml, "contentarea" )';if(dd("backlink"))
timeoutfunc=dd("backlink").onclick;window.setTimeout(timeoutfunc,1000);}
function delCookies()
{var c=["err","errmsg","erru","erre"];for(i=0;i<c.length;i++)delete_cookie(c[i]);}
var fsupf=false;function fetchSignupHtml(param,errmsg,erru,erre)
{if(fsupf)return;url="/geogroups/signup.php?redir="+eu(curpageurl);execAjax(url,onFetchSignupHtml);function onFetchSignupHtml(responseText)
{fsupf=true;dd(param).innerHTML=responseText;dd("suerror").innerHTML=(typeof errmsg=='undefined')?"":errmsg;dd("suu").value=(typeof erru=='undefined')?"":erru;dd("sue").value=(typeof erre=='undefined')?"":erre;msdiv("signindiv",30);dd("signindiv").scrollTop=200;this.obj=null;}}
function subgroup(i,timeoutfunc,confirm_credits)
{if(typeof confirm_credits=="undefined"||!confirm_credits)
confirm_credits=false;subscribeGroup(popSubscribeGroup,"contentarea",display_groups[i].group_name,display_groups[i].group_id,timeoutfunc,confirm_credits);}
function subscribeGroup(render_fn,param,groupname,groupid,timeoutfunc,confirm_credits)
{if(typeof confirm_credits=="undefined"||!confirm_credits)
confirm_credits=false;var gn=groupname;function onSubscribeGroup(response)
{render_fn(param,response.errmsg,timeoutfunc);}
var params="gn="+eu(gn);if(confirm_credits)
params+="&confirm=1";eaq("/geogroups/subgroup.php",params,onSubscribeGroup,false,0,false,onSubscribeError);function onConfirmSub(confirm)
{if(confirm&&!confirm_credits)
{subscribeGroup(render_fn,param,groupname,groupid,timeoutfunc,true);}}
function onConfirmPay(confirm)
{if(confirm)
{window.location.href="https://"+server_name+"/geoaccount/credits.php";}}
function onSubscribeError(response)
{if(response.errcode==100)
{showYesNoBox(response.errmsg+". Do you want to continue?",onConfirmSub);}
else if(response.errcode==110)
{showYesNoBox(response.errmsg+". Would you like to view your credits management page?",onConfirmPay);}
else
serror(response.errmsg);}}
function popSubscribeGroup(param,errmsg,timeoutfunc)
{fps(true);serror(errmsg=="Success"?"Group subscribed":errmsg);timeoutfunc=jsunesc(timeoutfunc);if(timeoutfunc&&timeoutfunc!="")
window.setTimeout(timeoutfunc,1000);}
function unsubgroup(i,timeoutfunc)
{unsubscribeGroup(popUnsubscribeGroup,"contentarea",display_groups[i].group_name,display_groups[i].group_id,timeoutfunc);}
function unsubscribeGroup(render_fn,param,groupname,groupid,timeoutfunc)
{var gn=jsunesc(groupname);eaq("/geogroups/unsubgroup.php","gn="+eu(gn),onUnsubscribeGroup,false);function onUnsubscribeGroup(response)
{render_fn(param,response.errmsg,groupid,timeoutfunc);}}
function popUnsubscribeGroup(param,errmsg,groupid,timeoutfunc)
{if(sgs.length>0)
removeGroup(groupid,true);fps(true);serror((errmsg=="Success")?"Group unsubscribed":errmsg);timeoutfunc=jsunesc(timeoutfunc);if(timeoutfunc&&timeoutfunc!="")
window.setTimeout(timeoutfunc,1000);}
function eu(str)
{return encodeURIComponent(str);}
function geu(name,nid)
{if(nid=="")return"";return name+"="+encodeURIComponent(dd(nid).value);}
function ceu(name,nid)
{return name+"="+
(dd(nid).checked?"1":"0");}
function fetchMyPostGroups(render_fn,param,skip,nr,fetchPosts)
{eaq("/geogroups/mypostgroups.php","skip="+skip+"&nr="+nr,onFetchMyPostGroups,false);function onFetchMyPostGroups(response)
{render_fn(response,param);if(fetchPosts&&fetchPosts==true)
fps(true);}}
var marker_icons={};var gIconSize3232=new GSize(32,32);var gShadowSize=new GSize(59,32);var gIconAnchor=new GPoint(16,32);var gInfoWindowAnchor=new GPoint(16,2);var default_icon_name="flag";marker_icons["default"]=getIcon(default_icon_name);marker_icons["def"]=getIcon(default_icon_name);var default_icon=marker_icons["def"];function iconName(iconimg)
{return(iconimg=="default"||iconimg=="def"||iconimg=="")?default_icon_name:iconimg;}
function iconRule(post)
{if(post.ulocation_time&&post.ulocation_time!=null&&post.ulocation_time!="")
{if(post.is_user_location=="1"&&(post.iconimg==""||post.iconimg=="default"))
return"mylocation";}
if(post.is_home=="1"&&(post.iconimg==""||post.iconimg=="default"))
return"home";return iconName(post.iconimg);}
function shadowIcon(name)
{return"/geogroups/icons/"+name+".shadow.png";}
function getIcon(name)
{var ic=marker_icons[name];if(ic==null)
{ic=new GIcon();ic.image="/geogroups/icons/"+name+".png";ic.iconSize=gIconSize3232;ic.shadow=shadowIcon(name);ic.iconAnchor=gIconAnchor;ic.infoWindowAnchor=gInfoWindowAnchor;marker_icons[name]=ic;}
return ic;}
function addNVTag()
{var tcount=pnt(dd("nvtagcount").value);var val1=(tcount==0)?" value='&lt;Name&gt;' ":"";var val2=(tcount==0)?" value='&lt;Value&gt;' ":"";var nv=new Array();for(i=0;i<tcount;i++)
{var name=dd("nvtagname"+i).value;var value=dd("nvtagvalue"+i).value;nv.push(new Array(name,value));}
var txt="<span id='nvtag"+tcount+"'>"+"<input id='nvtagname"+tcount+"' size='14' maxlength='128' "+val1+"/>:&nbsp;"+"<input id='nvtagvalue"+tcount+"' size='14' maxlength='128' "+val2+"/>"+"</span><br>";dd("nvtags").innerHTML+=txt;for(i=0;i<tcount;i++)
{dd("nvtagname"+i).value=nv[i][0];dd("nvtagvalue"+i).value=nv[i][1];}
dd("nvtagcount").value=(tcount+1);}
function getPost(postid)
{fetchPost(popGetPost,postid,recenter);}
function goPost(postid,recenter,onlybubble,path,nobubble)
{if(typeof path=="undefined"||!path)
path=false;if(typeof recenter=="undefined"||!recenter)
recenter=false;if(typeof onlybubble=="undefined"||!onlybubble)
onlybubble=false;if(typeof nobubble=="undefined"||!nobubble)
nobubble=false;fetchPost(onlybubble?addAndPopPost:popGoPost,postid,{recenter:recenter,path:path,nobubble:nobubble});}
function clearRepopTimeout(){if(repoptimeout!=null)
{window.clearTimeout(repoptimeout);repoptimeout=null;}}
function gotoMarker(i,fromlist)
{clearRepopTimeout();var post_list=(fromlist?post_response_list:post_response_map);var post=post_list.posts[i];var postid=post.post_id;var pos=shm(mpm,postid,false);if(pos!=-1)
{onMClk(mpm[pos].gmarker);var latlng=new GLatLng(post.latitude,post.longitude);if(!map.getBounds().containsLatLng(latlng))
mpc(latlng);}
else
{hipost=post;var latlng=new GLatLng(post.latitude,post.longitude);if(map.getBounds().containsLatLng(latlng))
fps();else
mpc(latlng);}}
function clickMarker(postid)
{var pos=shm(mpm,postid,false);if(pos!=-1)
onMClk(mpm[pos].gmarker);}
function createNewPostRequest(render_fn,param,marker_id)
{var post_id=-1;var createmode=true;var val=dd("nacreate").value;if(val!="create")
{post_id=val;createmode=false;}
var ismylocation=dd("naiul").checked?true:false;var gns=makeScrapList("nagn");var iconimg=dd("naicon").value;if(iconimg=="default")iconimg="";if(ismylocation&&iconimg=="")
iconimg="mylocation";var picurl=dd("napic").value;if(picurl==null)picurl="";var tags="";var ac=0;var arr=dd("nastags").value.split(",");for(i=0;i<arr.length;i++)
{var name=trim(arr[i]);if(name!=""&&name!="<Name>")
{ac++;tags+="&n"+ac+"="+eu(name);}}
var tagcount=pnt(dd("nvtagcount").value);for(i=0;i<tagcount;i++)
{var name=trim(dd("nvtagname"+i).value);var value=trim(dd("nvtagvalue"+i).value);if(name!=""&&name!="<Name>")
{ac++;tags+="&n"+ac+"="+eu(name);if(value!=""&&value!="<Value>")
tags+="&v"+ac+"="+eu(value);}}
var servl=(ismylocation?"/geogroups/updatemylocation.php?type=add&":(createmode?"/geogroups/addpost.php?":"/geogroups/updatepost.php?"));var url=servl+"u="+eu(username)+"&t="+eu(token)+
(createmode?"":("&ai="+post_id))+
geu("&at","naat")+
geu("&ad","naad")+
ceu("&iul","naiul")+
ceu("&ih","naih")+
geu("&lat","nalat")+
geu("&lon","nalon")+
geu("&alt","naalt")+
geu("&sp","nasp")+
geu("&hd","nahd")+
ceu("&aan","naan")+
geu("&url","naurl")+"&gns="+eu(gns)+
geu("&addr","naaddress")+
geu("&phone","naphone")+"&icon="+eu(iconimg)+"&pic="+eu(picurl)+
geu("&lid","nalid")+"&ntags="+ac+
tags;execAjax(url,onCreateNewPost);function onCreateNewPost(responseText)
{var response=eval('('+responseText+')');if(response.errcode==0)
{map.closeInfoWindow();deleteNewMarker(marker_id);render_fn(param,createmode,post_id);}
else if(response.errcode==120)
{if(is_demo)serror("Sign-In To create or edit posts");else signout();}
else
{se(response.errmsg);}
this.obj=null;}}
function popCreateNewPost(param,createmode,post_id)
{if(!createmode&&post_id!=-1)
{var pos=shm(mpm,post_id,false);if(pos!=-1)
{mpm[pos].gmarker.disableDragging();mpm[pos].gmarker.indrag=false;mpm[pos].gmarker.prevLatLng=null;onMClk(mpm[pos].gmarker);}}
se("GeoPost "+(createmode?"Created":"Edited")+" Successfully");nasubgroups=null;fhal();window.setTimeout('goBack()',1000);}
var mpm=new Array();function shm(arr,newidstr,insert){var newid=pnt(newidstr);var h=arr.length,l=-1,m;while(h-l>1)
if(arr[m=h+l>>1].post_id<newid)l=m;else h=m;return h>=arr.length?(insert?h:-1):(arr[h].post_id!=newid?(insert?h:-1):h);}
function decrRefCurrentMarkers()
{for(var i=0;i<mpm.length;i++)
{if(defpost==mpm[i].post_id)
continue;if(!mpm[i].gmarker.indrag)
mpm[i].refcount--;}}
function deleteMarker(i)
{GEvent.clearInstanceListeners(mpm[i].gmarker);if(mpm[i].gmarker.mpop&&markerpopvisible)
hidePostPop();if(mpm[i].post_id==curhistid)
removeCurHistLine();map.removeOverlay(mpm[i].gmarker);mpm[i].gmarker=null;mpm[i]=null;mpm.splice(i,1);}
function deleteUnusedMarkers()
{for(var i=0;i<mpm.length;i++)
{if(mpm[i].refcount<=0)
{deleteMarker(i);i--;}}}
function resetIndices()
{for(var i=0;i<mpm.length;i++)
{mpm[i].gmarker.myindex=i;}}
function addPostMarker(id,iconimg,is_cluster)
{var pos=shm(mpm,id,true);if(mpm.length==0||pos>=mpm.length||mpm[pos].post_id!=id)
{var PostMarker={post_id:pnt(id),gmarker:null,refcount:1,iconimg:iconimg,is_cluster:is_cluster};mpm.splice(pos,0,PostMarker);return{created:true,position:pos};}
mpm[pos].refcount=1;return{created:false,position:pos};}
function procCluster(post,post_marker)
{var gmarker=post_marker.gmarker;post_marker.post_count=post.post_count;post_marker.bounds=new GLatLngBounds(new GLatLng(post.minlat,post.minlng),new GLatLng(post.maxlat,post.maxlng));}
var curlabelvisibility=false;function locElevate(gmarker)
{return GOverlay.getZIndex(gmarker.getLatLng().lat())+100;}
var repoptimeout=null;function addUpdateMarker(post)
{post.iconimg=iconRule(post);var addobj=addPostMarker(post.post_id,post.iconimg,post.is_cluster);var pos=addobj.position;var ret=true;if(addobj.created)
{var draggable=(username==post.username);var opts={icon:getIcon(post.iconimg),title:post.post_title,draggable:draggable};var gmarker=null;if(post.is_user_location=="1")
{opts.zIndexProcess=locElevate;if(post.picurl=="")
opts.labelText=post.username;else
opts.labelText="<img src='/images/camera16.png' >"+post.username;if(post.username.length<=5)opts.labelClass="LabeledMarker_SmallName";gmarker=new LabeledMarker(new GLatLng(post.latitude,post.longitude),opts);}
else if(poinames>0)
{opts.labelClass="LabeledMarker_POI";if(post.picurl=="")
opts.labelText=post.post_title;else
opts.labelText="<img src='/images/camera16.png' >"+post.post_title;gmarker=new LabeledMarker(new GLatLng(post.latitude,post.longitude),opts);if(poinames<=0||map.getZoom()<poinames)
gmarker.setLabelVisibility(false);}
else
{if(post.picurl!="")
{opts.labelClass="LabeledMarker_picture";gmarker=new LabeledMarker(new GLatLng(post.latitude,post.longitude),opts);}
else
gmarker=new GMarker(new GLatLng(post.latitude,post.longitude),opts);}
post.gmarker=gmarker;if(draggable)gmarker.disableDragging();gmarker.indrag=false;gmarker.ismarker="Marker";GEvent.addListener(gmarker,"mouseover",function(latlng)
{onMMOver(gmarker);});GEvent.addListener(gmarker,"mouseout",function(latlng)
{onMMOut(gmarker);});GEvent.addListener(gmarker,"dblclick",function(latlng)
{onMDblClk(gmarker);});mpm[pos].gmarker=gmarker;if(post.is_cluster=="1")
{procCluster(post,mpm[pos]);}
map.addOverlay(mpm[pos].gmarker);}
else
{if(poinames>0){var nvis=(poinames>0&&map.getZoom()>=poinames);if(nvis!=curlabelvisibility&&post.is_user_location=="0")
{mpm[pos].gmarker.setLabelVisibility(nvis);}}
if(post.iconimg!=mpm[pos].iconimg)
{if(hipost==null&&markerpopvisible&&last_poppost==post.post_id)
{clearRepopTimeout();repoptimeout=window.setTimeout("clickMarker("+post.post_id+")",500);}
deleteMarker(pos);ret=false;}
else if(!mpm[pos].gmarker.indrag)
{var moved=false;var latlng=new GLatLng(post.latitude,post.longitude);if(!mpm[pos].gmarker.getLatLng().equals(latlng))
{if(post.post_id==curhistid)
removeCurHistLine();mpm[pos].gmarker.setLatLng(latlng);moved=true;}
if(hipost==null)
{if(markerpopvisible&&last_poppost==post.post_id)
{clearRepopTimeout();if(moved||last_poplocation)
{if(moved)hidePostPop();repoptimeout=window.setTimeout("clickMarker("+post.post_id+")",500);}}
else if(moved&&follow_post==post.post_id)
{window.setTimeout("goPost(follow_post,true,true,false,true)",100);}}}
if(ret&&mpm[pos].is_cluster=="1"&&mpm[pos].post_count!=post.post_count)
{deleteMarker(pos);ret=false;}}
return ret;}
function fhal()
{fetchMyHomePost(popMyHomePost);}
function fetchMyHomePost(render_fn)
{eaq("/geogroups/myhomepost.php","",render_fn,false);}
var home_marker=null;function popMyHomePost(response)
{var post=response.post;if(home_marker)
{GEvent.clearInstanceListeners(home_marker);map.removeOverlay(home_marker);home_marker=null;}
if(post.post_id>0)
{var latlng=new GLatLng(post.latitude,post.longitude);home_marker=new GMarker(latlng,{icon:getIcon("home"),title:post.post_title,draggable:true});home_marker.disableDragging();home_marker.indrag=false;home_marker.ishomemarker=true;home_marker.post_id=post.post_id;map.addOverlay(home_marker);if(!home_load_checked&&start_at_home)
{mpc(latlng);}}
if(!home_load_checked)
{home_load_checked=true;}}
var reqs=0;function popFetchedPosts(posts)
{var hifound=false;var prevmpop=markerpopvisible;var prevlastpopid=last_poppost;var prevpoplocation=last_poplocation;var prevfollowpost=follow_post;var changed_markers=new Array();decrRefCurrentMarkers();for(i=0;i<posts.length;i++)
{if(hipost!=null&&hipost.post_id==posts[i].post_id)hifound=true;if(!addUpdateMarker(posts[i]))
changed_markers.push(i);}
deleteUnusedMarkers();curlabelvisibility=(poinames>0&&map.getZoom()>=poinames);for(i=0;i<changed_markers.length;i++)
addUpdateMarker(posts[changed_markers[i]]);if(hipost!=null&&!hifound&&map.getBounds().containsLatLng(new GLatLng(hipost.latitude,hipost.longitude)))
{addUpdateMarker(hipost);hifound=true;}
resetIndices();if(hifound)
{clickMarker(hipost.post_id);hipost=null;}
else if(prevmpop&&prevlastpopid!=-1&&prevpoplocation&&(-1==shm(mpm,prevlastpopid,false)||defpost==prevlastpopid))
{goPost(prevlastpopid,true,!(selectedTab==13&&selectedNav==3&&lastgopost==prevlastpopid),false);}
else if(follow_post!=-1&&(-1==shm(mpm,follow_post,false)))
{goPost(follow_post,true,true,false,true);}}
function addGroupByName(groupname)
{url="/geogroups/getgroupid.php?u="+username+"&t="+token+"&gn="+eu(groupname);execAjax(url,onGetGroupId,1);function onGetGroupId(rtxt)
{var r=eval('('+rtxt+')');if(r.errcode==0)
{addToNV(selgroups,r.group_name,r.group);addGroupE(r.group.group_id,r.group.group_name);if(r.group.default_post_id!=0)
goPost(r.group.default_post_id,true,true,true);}
else if(r.errcode==120)
{if(is_demo)serror("Sign-In to access this group");else
signOut();}
else
{addGroupE(allgroupsids[is_demo?1:0],allgroupsnames[is_demo?1:0]);se(r.errmsg+", searching in public groups..");window.setTimeout("fallg( 0, '"+groupname+"')",3000);}
this.obj=null;}}
var last_world_total=-1;var demouser="webuser";var demotoken="c63d2dec2882a407e0e6bf192b700f036cce25f5e6c57612f6b4cec3f01ce2c1";var post_response_map=null;var last_selected_pid="";var browse_post=-1;function nextPost(fromlist)
{var response=(fromlist?post_response_list:post_response_map);if(!response)return;var posts=response.posts;if(posts.length==0)return;if(browse_post!=-1)
{posthi(dd("pl"+posts[browse_post].post_id),false);;}
browse_post++;if(browse_post>=posts.length)browse_post=0;selPost(posts[browse_post].post_id);gotoMarker(browse_post,fromlist);}
function prevPost(fromlist)
{var response=(fromlist?post_response_list:post_response_map);if(!response)return;var posts=response.posts;if(posts.length==0)return;if(browse_post!=-1)
{var lastid="pl"+posts[browse_post].post_id;posthi(dd(lastid),false);}
browse_post--;if(browse_post<0)browse_post=posts.length-1;if(browse_post>=posts.length)browse_post=0;selPost(posts[browse_post].post_id);gotoMarker(browse_post,fromlist);}
function selPost(post_id)
{var pid="pl"+post_id;if(pid!=last_selected_pid)
posthi(dd(last_selected_pid),false);last_selected_pid=pid;var obj=dd(last_selected_pid);if(obj)
{posthi(obj,true);var maxy=getClientHeight();var pos=findPos(obj);var container=dd("contentarea");var contpos=findPos(container);if((pos.top+obj.offsetHeight+10)>maxy)
{var moveup=(pos.top+obj.offsetHeight+10)-maxy;container.scrollTop+=moveup;}
else if(pos.top<(contpos.top+container.scrollTop))
{var movedown=(contpos.top+container.scrollTop-pos.top);container.scrollTop-=movedown;}}}
var fav_list="";function addFavorite(pid,obj)
{var fv=get_cookie("fv");fv=addIfNotExist(fv,pid);set_cookie("fv",fv,2050,12,31,"/");fav_list=fv;serror("Added To Favorites");setNumFavs(fav_list);if(obj)
{obj.innerHTML="Remove From Favorites";obj.onclick=function(){remFavorite(pid,obj);};}}
function remFavorite(pid,obj)
{var fv=get_cookie("fv");fv=removeFromList(fv,pid);set_cookie("fv",fv,2050,12,31,"/");fav_list=fv;fps(true);setNumFavs(fav_list);serror("Removed From Favorites");if(obj)
{obj.innerHTML="Add To Favorites";obj.onclick=function(){addFavorite(pid,obj);};}}
var worldwide_posts=true;var hipost=null;function popWorldList(response)
{if(response.world_total>=0)
last_world_total=response.world_total;setAuthor(response.author,false);post_response_list=response;if(selectedNav==3&&worldwide_posts&&gpostmode=="postlist")
popPostsList(response,true);browse_post=-1;rel();}
function locCrumb(post,shist)
{var s="";if(post.speed!="")
s+="<span class='cpostl'>Speed </span>"+post.speed;if(post.heading!="")
s+=(s!=""?",&nbsp;":"")+"<span class='cpostl'>Heading </span>"+getHeading(post.heading);if(post.altitude&&post.altitude!="null"&&post.altitude!=""&&post.altitude!="0ft"&&post.altitude!="0m"&&post.altitude!="0")
s+=(s!=""?",&nbsp;":"")+"<span class='cpostl'>Altitude </span>"+post.altitude;return s;}
function popPostsList(response,world)
{if(!world)world=false;ssn(5,3);if(!response)return;post_response_list=response;var gi=-1;var dg=null;var m1head="";var mback="";var mwid="";var mpop="";var shist=false;var is1gowned=false;var gn1g="";var dpid=0;if(isonegroup())
{var gn=sgs[0];gn1g=escape(gn);gi=fgroup(gn);if(gi>=0)
{dg=display_groups[gi];shist=(dg.nspace!="");mpop="<span style='float:right;vertical-align:bottom;'  ><img onmouseover='showGroupPop(this,"+(dg.is_subscribed=="1"?"true":"false")+","+gi+",\"fps(true)\");' src='/images/menuright.png' /></span>";shobj("ldownload",shist);is1gowned=(dg.is_owned=="1");dpid=dg.default_post_id;}}
if(sgs.length>0)
{for(i=0;i<sgs.length;i++)
{if(m1head!="")m1head+=", ";m1head+="<a "+(style=="widget"?"target='__exlink'":"")+" href='"+groupUrl(sgs[i])+"' style='text-decoration:none;' class='cgroupheading'  >"+sgs[i]+"</a>";}}
else if(author!="")
m1head+="<a href='"+userUrl(author)+"' style='text-decoration:none;color:brown' class='cgroupheading'  >"+author+"</a>";m1head=mpop+m1head;if(style!="widget"&&defgroup!="syncpro")
{var surl=getStateUrl();mwid="<span style='float:right' onmouseover='this.childNodes[0].href=getWidUrl();this.childNodes[2].href=getStateUrl()' >"+"<a class='caction' title='Embed this map in other websites' href='"+getWidUrl()+"' target='__testwid' >Embed &#187;</a>&nbsp;&nbsp;"+"<a class='caction' title='Get A Link to this page configuration' href='"+surl+"' target='__exlink' >Link &#187;</a>&nbsp;";mwid+="<a href='http://www.addthis.com/bookmark.php' onmouseover='return addthis_open(this, \"\", \""+surl+"\", \"\")' onmouseout='addthis_close()' onclick='return addthis_sendto()'><img src='http://s7.addthis.com/static/btn/sm-share-en.gif' height='16' border='0' alt='Bookmark or Share' style='vertical-align:bottom;' /></a>&nbsp;"+"<a title='Subscribe To RSS Feed' href='"+getFeedUrl()+"'/><img border='0' src='/images/rssicon.gif'  style='vertical-align:bottom;' /></a>";mwid+="</span>";}
shobj("ldiscuss",isonegroup());var h="<div class='cgroupheading'>"+m1head+"</div>";t=null;if(sgs.length==1)
t=getNVVal(selgroups,sgs[0]);var ismy=false;if(!is_demo&&t)
{ismy=(t&&(t.is_subscribed==1));}
else ismy=(username!=demouser);if(!nochangegroup){if(ismy)
mback="<span style='text-decoration:none;color:#5890e5;cursor:pointer' onclick='goMyGroups()'>&#171; My Groups</span>";else
mback="<span style='text-decoration:none;color:#5890e5;cursor:pointer' onclick='fallg()'>&#171; Public Groups</span>";}
if(t)
h+="<div style='font-weight:normal;font-size:15px;color:#666666;text-align:center''>"+t.group_title+"</div>";scm(h+mwid+mback);var pcls="spic"+listsize;var postcls="cpostname";if(listsize!="large")postcls="cpostnamesmall";var posts=response.posts;var total=pnt((world?response.world_total:response.posts.length));var start=pnt(response.skip);var count=pnt(response.posts.length);var pages=resultHeader(start,count,total,"Posts");var fn="fpw";var page_nav="";if(world)
page_nav+="&nbsp;"+
getPageNav(start,count,total,"fpw(0)","fpw("+((start-15)>=0?(start-15):0)+")","fpw("+(start+count)+")");else
fn="mpMenu(0)";var navheader=resultTableStart(1);var timeoutfunc=world?("mpMenu(1,false,"+start+")"):fn;pushBackFunc(timeoutfunc,true);if(!nosignin&&!noedit)
dd("delallposts").style.visibility=((response.author==username)?'visible':'hidden');var classname="";var pid="";navheader+=(resultTableNav(pages,page_nav,1));navheader+="</table>";var txt=navheader;var allrows=new Array();allrows.push(resultTableStart(1));var selpid="";var fava=fav_list.split(",").sort();for(i=0;i<posts.length;i++)
{var post=posts[i];var owned=(post.username.toLowerCase()==username.toLowerCase());var dt=new Date((post.is_user_location=="1"?post.ulocation_time:post.ulast_modified)*1000);var sdt=months[dt.getMonth()]+" "+dt.getDate()+","+dt.getFullYear();var mt=86400000;if(defgroup=="syncpro"||(post.is_user_location=="1"&&((new Date())-dt)<mt))
sdt=getShortDate(dt);var toktitle=flattendash(post.post_title);pid="pl"+post.post_id;if(pid==last_selected_pid)
selpid=pid;var crow="<tr>"+"<td class='cpost' style='width:100%;' "+" id='"+pid+"' "+" onmouseover='onPMOver("+post.post_id+")' "+" onmouseout='onPMOut("+post.post_id+")' "+" onclick='browse_post="+i+";selPost("+post.post_id+");gotoMarker("+i+",true);' "+" ondblclick='onPDblClk("+post.post_id+");' "+" title='Click to open, dbl-click to zoom-in' "+" >";crow+="<span style='float:right;text-align:right;'>"+"<span style='font-size:90%;color:#999999' >"+sdt+"</span>"+"<br/><img src='/geogroups/icons/"+iconRule(post)+".png' />"+"</span>";var pinfo=getPostTitle(post);crow+="<span class='"+postcls+"'  >"+pinfo.title+"</span>";if(pinfo.sub_title!="")
crow+="<br/><span class='"+postcls+"'  >"+pinfo.sub_title+"</span>";if(post.address!="")
crow+="<br/>"+post.address;if(post.path_id!=0)
crow+="<br/><span class='caction' style='font-size:12px;' title='Show attached track on map' "+" onclick='fetchLog(\""+post.post_title+"\","+post.path_id+");cp(event)' "+" >Plot Track On Map&#187;</span>";var s=locCrumb(post,owned||shist);if(s!="")
crow+="<br/>"+s;mt=(pinfo.is_location?86400000:3600000);if(((new Date())-dt)<mt)
crow+="<br/>"+post.ago+" ago";if(pinfo.is_location&&(shist||owned))
crow+="&nbsp;&nbsp;&nbsp;<span class='caction' title='History &#187;' "+" onclick='showHistory(\""+post.username+"\");cp(event);' "+" >History &#187;</span>";if(post.picurl!="")
crow+="<br style='clear:both'/>"+"<img class='"+pcls+"' style='border:2px solid white;' "+" src='/pics/"+post.picurl+"/"+toktitle+"' "+"onload='if (this.width > 320 ) this.width=\"320\";' /><br style='clear:both;'/>";if(!nofilters){crow+="<br/><span class='caction cfav' style='float:right;'  title='' "+" onclick='";if(!fav_only&&-1==bsearch(fava,post.post_id))crow+="addFavorite("+post.post_id+",this)'>Add To Favorites";else crow+="remFavorite("+post.post_id+",this)'>Remove From Favorites";crow+="</span>";}
if(!noauthor)crow+="<span class='cpostl'>Posted By: </span>"+showUser(post.username);crow+="<br style='clear:both;'/><span style='float:right;'>";var sedit=((owned&&!noedit&&!nosignin)?1:0);if(sedit||(is1gowned&&!noedit&&!nosignin))
crow+="<span class='caction' title='Post Actions' "+"onclick='spa(this,"+i+");cp(event);' >More &#187;</span>&nbsp;&nbsp;";crow+=postlinks(post);crow+="</span>";crow+="<span class='ccomments' title='Comments' onclick='goPost("+post.post_id+")' >"+
(post.comment_count>0?(post.comment_count+" "):"")+"Comments &#187;</span>";if(!noauthor&&!owned&&post.username!="anonymous"&&post.username!="many"&&!nosignin)
crow+="&nbsp;&nbsp;&nbsp;<span class='caction' title='Send Private Message' onclick='msgSend(\""+post.username+"\")' >"+"Private Message &#187;</span>";crow+="</td>";crow+="</tr>\n";allrows.push(crow);}
txt+=allrows.join("\n");txt+=rtf(count,page_nav,1);allrows=null;if(total==0&&dg&&dg!=null&dg.is_subscribed!="1")
{txt+=getGroupPopHtml(dg,gi,false,"fps(true)");}
dd("contentarea").innerHTML=txt;posthi(dd(selpid),true);se("");ptChoose(0,true);if(dd('cblocationsonly'))dd('cblocationsonly').checked=locations_only;rel();}
function onAuthor()
{var empty=false;var o=dd('author');if(o.value==""||o.value=="<username>"){o.value="<username>";o.style.color="lightgrey";empty=true;}else o.style.color="brown";return empty;}
function setAuthor(lauthor,call)
{if(nochangegroup&&defauthor!=""&&lauthor!=defauthor)return;var txt="";if(lauthor!="")
{txt=getScrap("user: "+lauthor,"setAuthor(\"\",true)","#a06020","mu"+lauthor);}
dd("mapusers").innerHTML=txt;author=lauthor;if(dd('author'))
{if(author!="")
{dd('author').value=author;dd('cbauthor').checked=true;}
else
{dd('author').value="<username>";dd('cbauthor').checked=false;}
onAuthor();}
if(call&&call==true)
fps(true);}
function updatePostCount(){var c=0;for(i=0;i<mpm.length;i++)
c+=mpm[i].is_cluster=="1"?pnt(mpm[i].post_count):1;dd("mapposts").innerHTML="Showing <b>"+
c+"</b>"+
(last_world_total>0?(" of "+last_world_total):"")+" GeoPosts From";}
function popPosts(response)
{if(response.world_total>=0)
last_world_total=response.world_total;setAuthor(response.author,false);popFetchedPosts(response.posts);post_response_map=response;if(!worldwide_posts)
{post_response_list=response;if(selectedNav==3&&gpostmode=="postlist")
{popPostsList(response,false);}}
updatePostCount();rel();if(response.max_discuss_id>0&&response.max_discuss_id>max_discuss_id&&show_discuss)
discuss_timer=window.setTimeout("checkDiscussion("+response.max_discuss_id+")",3000);}
var orig_defpost=-1;function fetchPost(render_fn,postid,param)
{clearRepopTimeout();function onFetchPost(responseText)
{var response=eval('('+responseText+')');if(response.errcode==0)
{if(passes(response.post))
{if(defpost==postid)
{orig_defpost=defpost;defpost=response.post.post_id;}
render_fn(response.post,param);}}
else if(response.errcode==120)
{if(is_demo)serror("Sign-In to view this post");else
signOut();}
else if(response.errcode==4||response.errmsg.indexOf('Post Not Found')>=0)
{if(is_demo)
{serror("Please sign-in to view this post");showSignIn();}
else
{if(postid.indexOf("mylocation-")>=0)
{var r=postid.substr(11);requestUser(r);}
serror("You do not have permission to view this post");}}
if(defpost==postid||(typeof response.post!="undefined"&&defpost==response.post.post_id))
needpostinit=false;}
execAjax("/geogroups/getpost.php?"+"u="+username+"&t="+token+"&ai="+eu(postid)+"&hist=1",onFetchPost,1);}
function addLine(line)
{return(line==""||line==null)?"":("<br>"+line);}
function streetAddress(post)
{if(post.address!=null&&post.address!="")return post.address;return"";}
var ml=" onmouseover='hl(this);' onmouseout='uhl(this);' ";var last_marker_pop=null;function fetchDragPostAddress(gmarker,latlng)
{showWaitCursor(true,1);geocoder.getLocations(latlng,updateAddress);function updateAddress(response)
{showWaitCursor(false,1);if(response&&response.Status.code==200)
{gmarker.dragaddress=response.Placemark[0].address;onMClk(gmarker);}}}
function dragPost(gmarker)
{gmarker.enableDragging()
gmarker.closeInfoWindow();gmarker.indrag=true;gmarker.prevLatLng=gmarker.getLatLng();GEvent.addListener(gmarker,"dragend",function(latlng)
{fetchDragPostAddress(gmarker,latlng);});}
function cancelDragPost(gmarker)
{gmarker.disableDragging();gmarker.closeInfoWindow();gmarker.indrag=false;gmarker.setLatLng(gmarker.prevLatLng);gmarker.prevLatLng=null;onMClk(gmarker);}
function getPostNav()
{return"<span style='white-space:nowrap'>"+"<img src='/images/refresh-24.png' \
           id='refreshbutton' onclick='fps(true)' title='Refresh' \
           class='tbtn' \
           onmouseover='this.className=\"tbtnhi\"' \
           onmouseout='this.className=\"tbtn\"' \
          />"+"<img src='/images/post-back-24.png'  \
          onclick='window.setTimeout(\"prevPost(true)\", 20);' \
          title='Previous Post' \
          class='tbtn' \
          onmouseover='this.className=\"tbtnhi\"' \
          onmouseout='this.className=\"tbtn\"' \
       /> "+"<img src='/images/post-next-24.png' \
           onclick='window.setTimeout(\"nextPost(true)\", 20);' title='Next Post' \
           class='tbtn' \
           onmouseover='this.className=\"tbtnhi\"' \
           onmouseout='this.className=\"tbtn\"' \
       />"+"</span>";}
function upCase(str)
{if(!str||str=="")return str;return str.charAt(0).toUpperCase()+str.substr(1);}
function ruleValue(name,val)
{if((name.substr(0,4)=="date"||(name.length>=4&&name.substr(name.length-4,4)=="time"))&&val!="")
{var m=Date.parse(val);if(isNaN(m))
{}
else
val=getShortDate(new Date(m));}
else if(name=="Groups")
val=joinWith(val.split(","),", ",(nochangegroup?groupName:groupLink));else if((val+"").substr(0,7)=="http://"||(val+"").substr(0,8)=="https://")
val="<a target='_new' href='"+val+"' ><span class='link1'>"+val+"</span></a>";return val;}
function addNV(name,value)
{if(name&&value&&value!=""&&!(name.toLowerCase()=="altitude"&&(value=="0ft"||value=="0m")))
return"<tr><td class='ctagname' style='padding:0px;' >"+
upCase(name)+":</td><td class='ctagval' style='padding:0px;word-wrap:break-word;word-break:break-all;white-space: -moz-pre-wrap;text-wrap:unrestricted;' >"+
ruleValue(name,value)+"</td></tr>";else
return"";}
function resizeToMax(id){var img=document.getElementById(id);myImage=new Image();myImage.src=img.src;var w=myImage.width;var h=myImage.height;var asp=w/h;if(w>250)
{w=250;h=w/asp;}
if(h>250)
{h=250;w=h*asp;}
img.style.height=h;img.style.width=w;}
function passes(post)
{var fails=((locations_only&&post.is_user_location=="0")||(pois_only&&post.is_user_location=="1")||(pics_only&&post.picurl=="")||(author!=""&&author.toLowerCase()!=post.username.toLowerCase()));return(!fails);}
function popGetPost(post)
{post.is_cluster=0;addUpdateMarker(post);resetIndices();updatePostCount();}
function addAndPopPost(post,params)
{popGetPost(post);var lg=new GLatLng(post.latitude,post.longitude);if(params.recenter&&!map.getBounds().containsLatLng(lg))
mpc(lg);if(!params.nobubble)
{var pos=shm(mpm,post.post_id,false);if(pos!=-1)
popPost(post,mpm[pos].gmarker);}
else if(post.is_user_location=="1")
{showPostHist(post);if(!markerpopvisible)postScrap(post);}
if(post.path_id!=0)
window.setTimeout("fetchLog(\""+post.post_title+"\","+post.path_id+",true)",3000);}
function postlinks(post)
{var txt="";if(post.is_user_location=="1"&&post.username!="anonymous")
{txt+="<a target='__addig' class='cbaction' title='Add as Gadget To Your iGoogle Page' href='"+ggPostUrl(post)+"' ><span class='caction'>iGoogle &#187;</span></a>&nbsp;&nbsp;";txt+="<a target='__testwid' class='cbaction' title='Get copy/paste code to embed in other websites' href='"+wLocUrl(post)+"' ><span class='caction'>Embed &#187;</span></a>&nbsp;&nbsp;";}
txt+="<a class='cbaction' target='__exlink' title='Get A Link To This Post' href='"+postUrl(post)+"' ><span class='caction'>Link &#187;</span></a>";return txt;}
var lastgopost=-1;function popGoPost(post,params)
{pushBackFunc("goPost("+post.post_id+")",true);gpostmode="viewpost";ptChoose(2);post.is_cluster=0;var pcls="spic"+listsize;var postcls="cpostname";if(listsize!="large")postcls="cpostnamesmall";var isz=(listsize=="large"?320:(listsize=="med"?200:120));var cmttext="";if(lastgopost==post.post_id&&dd("ccmt")&&dd("ccmt").value!="")
{cmttext=dd("ccmt").value;}
lastgopost=post.post_id;hideSubNavs();var toktitle=flattendash(post.post_title);var pinfo=getPostTitle(post);var h="<div class='"+postcls+"' style='text-align:center'><img style='float:right' src='/geogroups/icons/"+iconRule(post)+".png' />"+
pinfo.title;if(pinfo.sub_title!="")h+="<br/>"+pinfo.sub_title;h+="</div>";if(backCount()>1)
h+="<span style='color:#5890e5;cursor:pointer;text-align:left' onclick='goBack(1)' >&#171; Back</span>";scm(h);var ptags=getPostTags(post);var owned=(post.username.toLowerCase()==username.toLowerCase());var dt=new Date((post.is_user_location=="1"?post.ulocation_time:post.ulast_modified)*1000);pid="pl"+post.post_id;if(pid==last_selected_pid)
selpid=pid;var crow="<div class='cpost'  "+" ondblclick='onPDblClk("+post.post_id+");' "+" >";crow+="<span style='float:right;text-align:right;'>"+"<span style='font-size:90%;color:#999999' >"+months[dt.getMonth()]+" "+dt.getDate()+","+dt.getFullYear()+"</span>"+"<br/>"+"</span>";if(post.address!="")
crow+=post.address+"<br/>";var s=locCrumb(post,owned);if(s!="")crow+=s+"<br/>";if(!noauthor)crow+="<span class='cpostl'>Posted By: </span>"+showUser(post.username);if(!noauthor&!owned&&post.username!="anonymous"&&post.username!="many"&&!nosignin)
crow+="&nbsp;&nbsp;&nbsp;<span class='caction' title='Send Private Message' onclick='msgSend(\""+post.username+"\")' >"+"Private Message &#187;</span>";if(post.path_id!=0)
crow+="<br/><span class='caction' style='font-size:12px;' title='Show attached track on map' "+" onclick='fetchLog(\""+post.post_title+"\","+post.path_id+");cp(event)' "+" >Plot Track On Map&#187;</span>";if(post.picurl!="")
{crow+="<br style='clear:both'/>"+"<img class='"+pcls+"' style='border:2px solid white;display:none;' "+" src='/pics/"+post.picurl+"/"+toktitle+"' "+"onload='if (this.width > "+isz+" ) this.width="+isz+";this.style.display=\"\"' /><br style='clear:both;'/>";}
if(post.url&&post.url!="")
crow+="<br/><span class='cpostl'>Website: </span><a style='font-size:90%;color:#5890e5;text-decoration:underline;word-break:break-all;word-wrap:break-word;text-wrap:unrestricted;' target='_new' "+ml+" href='"+post.url+"'>"+addBreaks(post.url)+"</a>";if(post.post_description!="")
crow+="<br/><span class='cpostl'>Notes: </span>"+post.post_description;crow+="<table>";crow+=addNV("Groups",post.group_names);if(ptags.tags!="")
crow+=addNV("Tags",ptags.tags);if(ptags.nvtags!="")
crow+=ptags.nvtags;crow+="</table>";crow+="<br /><span style='float:right;'>";if(owned&&pinfo.is_location)
crow+="<span class='caction' title='History &#187;' "+" onclick='showHistory(\""+post.username+"\");cp(event);' "+" >History &#187;</span>&nbsp;";if(owned&&!nosignin&&!noedit)
crow+="<span class='caction' "+"onclick='fetchEditPostHtml("+post.post_id+")'>Edit &#187;</span>&nbsp;&nbsp;"+"<span class='caction' "+" onclick='deletePostHtml("+
post.post_id+","+(post.is_home?"true":"false")+", \""+escape(post.post_title)+"\")' >Delete &#187;</span>&nbsp;&nbsp;";crow+=postlinks(post);crow+="</span>";crow+="<div id='commentarea'></div>";crow+="</div>";dd("contentarea").innerHTML=crow;scom(post.post_id,0,cmttext);if(params.recenter)
addAndPopPost(post,params);}
function getPostTitle(post)
{var is_location=(post.ulocation_time&&post.ulocation_time!=null&&post.ulocation_time!="");var is_my_location=(is_location&&(post.username.stricmp(username)));var obj={title:post.post_title,sub_title:"",is_location:is_location,is_my_location:is_my_location};if(is_location)
{if(is_my_location)
{if(post.post_title!="My Location")
{obj.title="My Location";obj.sub_title="("+post.post_title+")";}}
else
{obj.title=post.username+"'s Location";if(post.post_title!="My Location")
{obj.sub_title+="("+post.post_title+")";}}}
return obj;}
function getPostTags(post)
{var tags="";var nvtags="";for(var i=0;i<post.nvtags.length;i++)
{if(post.nvtags[i].value=="")
tags+=(tags==""?"":", ")+post.nvtags[i].name;else
{nvtags+=addNV(post.nvtags[i].name,post.nvtags[i].value);}}
return{tags:tags,nvtags:nvtags};}
var last_poppost=-1;var last_poplocation=false;var last_popuser="";var follow_post=-1;function addBreaks(val)
{if(val=="")return"";var len=val.length;var v="";var sep="&#8203;";var seplen=sep.length;for(var i=25;i<len;i+=(25+seplen))
{v=val.substr(0,i)+sep+val.substr(i);seplen+=sep.length;val=v;}
return val;}
function setUser(name)
{setAuthor(name,true);if(selectedTab!=5||selectedNav!=3)
goMenu(5);}
function showUser(uname)
{return"<span class='cusername' title='View Posts By This User' style='cursor:pointer;text-decoration:underline' onclick='setUser(\""+uname+"\");cp(event)' >"+uname+"</span>";}
function agoDate(dt)
{}
function toggleFollow(pid,obj)
{var f=!(follow_post==pid);obj.className=f?"cfollowon":"cfollow";obj.onclick=function(){toggleFollow(pid,obj);};follow_post=f?pid:-1;}
function popPost(post,gmarker)
{last_marker_pop=gmarker;last_poppost=post.post_id;last_poplocation=(post.is_user_location=="1");last_popuser=post.username;if(last_poplocation&&follow_post!=last_poppost)
follow_post=-1;postScrap(post);showPostHist(post);var lat=post.latitude;var lng=post.longitude;var addr=streetAddress(post);if(gmarker.indrag)
{lat=gmarker.getLatLng().lat();lng=gmarker.getLatLng().lng();addr=gmarker.dragaddress;}
else
gmarker.dragaddress=addr;var ptags=getPostTags(post);var pinfo=getPostTitle(post);var dt=new Date((post.is_user_location=="1"?post.ulocation_time:post.ulast_modified)*1000);var sdt=months[dt.getMonth()]+" "+dt.getDate()+","+dt.getFullYear();var mt=86400000;if(defgroup=="syncpro"||post.is_user_location=="1"&&((new Date())-dt)<mt)
sdt=getShortDate(dt);var mhtml="<span style='float:right;text-align:right;margin-right:10px;'>"+"<span style='font-size:90%;color:#999999' >"+sdt+"</span>";if(post.picurl=="")
mhtml+="<br/><img src='/geogroups/icons/"+iconRule(post)+".png' />";mhtml+="</span>";mhtml+="<span class='cpostnamedisp'>"+pinfo.title+"</span><br/>";if(post.picurl!="")
{mhtml+="<input id='rpic' type='hidden' value='"+post.picurl+"' />"+"<span style='float:right'><span id='cpic'>"+
postPic(post.picurl)+"</span><br/><img style='margin:3px;' title='Rotate' src='/images/rotate16.png' "+" onclick='rotateDispPic(\"rpic\");' />"+"<img style='margin:3px;' title='View Full Size' src='/images/enlarge16.png' "+" onclick='viewFullSize(\"rpic\");' />"+"</span>";}
if(pinfo.sub_title!="")
mhtml+="<span class='cpostnamedisp'>"+pinfo.sub_title+"</span><br/>";if(post.path_id!=0)
mhtml+="<span class='caction' style='font-size:12px;' title='Show attached track on map' "+" onclick='fetchLog(\""+post.post_title+"\","+post.path_id+");cp(event)' "+" >Plot Track On Map&#187;</span><br/>";if(addr!="")
mhtml+="<span style='word-break:break-all'>"+addr+"</span><br/>";mhtml+="<span class='link1' onclick='mpc(new GLatLng( "+lat+","+lng+"), 16)' "+ml+" >Zoom-In</span>&nbsp;("+
parseFloat(lat).toFixed(4)+", "+parseFloat(lng).toFixed(4)+")<br/>";if(!noauthor)mhtml+="<span class='cpostl'>Posted By: </span>"+showUser(post.username);mt=(pinfo.is_location?86400000:3600000);if(((new Date())-dt)<mt)
{mhtml+="<br/>"+post.ago+" ago";if(pinfo.is_location)
{mhtml+="&nbsp;<span class='"+(post.post_id==follow_post?"cfollowon":"cfollow")+"' "+" title='Automatically Pan Map To Keep in View' "+" onclick='toggleFollow("+post.post_id+",this)' >Follow On Map</span>";}}
var purl=post.url;if(purl&&purl!=""&purl.length>30&&post.picurl!="")
purl=purl.substr(0,30)+"...";if(purl!="")
mhtml+="<br/><a style='font-size:90%;color:blue;text-decoration:underline;word-break:break-all;word-wrap:break-word;' target='_new' "+ml+" href='"+post.url+"'>"+purl+"</a>";if(post.post_description&&post.post_description!="")
mhtml+="<br/><span class='cpostl'>Notes: </span><span style='font-size:11px;'>"+post.post_description+"</span>";mhtml+="<table cellspacing='0' cellpadding='0' >";mhtml+=addNV("Speed",post.speed)+
addNV("Altitude",post.altitude)+
addNV("Heading",getHeading(post.heading))+
addNV("Phone",post.phone);if(post.group_names!="")
mhtml+=addNV("Groups",post.group_names);if(ptags.tags!="")
mhtml+=addNV("Tags",ptags.tags);if(ptags.nvtags!="")
mhtml+=ptags.nvtags;var clink="goPost("+post.post_id+")";var comments="<span class='ccomments' onclick='"+clink+"'>Comment On This Post</span>";if(post.comment_count>0)
comments=comments+"&nbsp;&nbsp;&nbsp;<span class='ccomments' onclick='"+clink+"' >"+"View All Comments("+post.comment_count+")</span>&nbsp;"
mhtml+="</table>";mhtml+=comments;mhtml+="<br/>";if(post.username==username&&!nosignin&&!noedit)
{if(gmarker.indrag==true)
mhtml+="<span class='link3' "+ml+" onclick='fetchDragPostHtml("+post.post_id+", "+lat+", "+lng+", \""+htmlesc(addr)+"\")' >[Set As New Position]</span>&nbsp;<span class='link3' "+ml+" onclick='cancelDragPost(last_marker_pop);' >[Cancel Drag]</span>";else
mhtml+="<span class='caction' title='Edit this post' "+" onclick='fetchEditPostHtml("+post.post_id+")'>Edit</span>"+"&nbsp;<span class='caction' title='Make this marker draggable to change location' "+" onclick='dragPost(last_marker_pop);' >Drag</span>";mhtml+="&nbsp;<span class='caction' title='Delete this post..' "+" onclick='deletePostHtml("+
post.post_id+","+(post.is_home?"true":"false")+", \""+escape(post.post_title)+"\")'>Delete..</span>&nbsp;&nbsp;";if(pinfo.is_location)
{mhtml+="<span class='caction' title='History &#187;' "+" onclick='showHistory(\""+post.username+"\");' "+" >History &#187;</span>&nbsp;&nbsp;";}}
mhtml+=postlinks(post);mhtml+=(post.picurl==""?"&nbsp;":"<br/>");if(!nofilters){mhtml+="<span class='caction cfav' style='title='' "+" onclick='";if(-1==arrExists(fav_list.split(","),post.post_id))mhtml+="addFavorite("+post.post_id+",this)'>Add To Favorites";else mhtml+="remFavorite("+post.post_id+",this)'>Remove From Favorites";mhtml+="</span>";}
selPost(post.post_id);showmarkerpop(gmarker,mhtml);if(post.picurl!=""&&dd('bigpicdiv').style.visibility=='visible')
viewFullSize('rpic');else
dd('bigpicdiv').style.visibility='hidden';}
function deletePost(post_id,is_home,backfunc)
{eaq("/geogroups/deletepost.php","ai="+post_id,onDeletePost,false);function onDeletePost(response)
{popDeletePost(response.errmsg,is_home,post_id,backfunc);}}
function popDeletePost(errmsg,is_home,post_id,timeoutfunc)
{se((errmsg=="Success")?"Post Deleted Successfully":errmsg);if(last_poppost==post_id)
{last_poppost=-1;if(markerpopvisible)
hidePostPop();}
if(follow_post==post_id)follow_post=-1;if(defpost==post_id)
{defpost="";}
fps(true);if(is_home)fhal();var dely=(errmsg=="Success")?1000:3000;timeoutfunc=jsunesc(timeoutfunc);if(timeoutfunc&&timeoutfunc!="")
window.setTimeout(timeoutfunc,dely);}
function deletePostHtml(post_id,is_home,post_title)
{if(!is_home)is_home=false;post_title=unescape(post_title);var backfunc="goBack()";se("");var delfn="deletePost("+post_id+", "+(is_home?"true":"false")+", \""+backfunc+"\" )";var txt="Are you sure you want to delete the GeoPost:<br>"+"<span class='cgroupname'>"+post_title+"</span>&nbsp;?"+"<br><br><input type='button' value='Cancel' onclick='"+backfunc+"'>"+"&nbsp;&nbsp;&nbsp;<input type='button' value='Delete' "+" onclick='"+delfn+"'>";dd("contentarea").innerHTML=txt;var backlink="";if(backfunc)
backlink="<span class='link1' id='backlink' onclick='"+backfunc+"' >[Back]</span>&nbsp;";scm(backlink+"Delete GeoPost");rel();}
function setAsDefault(pid,group_name,backfunc)
{eaq("/geogroups/setgroupdefault.php","pid="+pid+"&gn="+group_name,onSetDefault,false);function onSetDefault(response)
{var errmsg=response.errmsg;serror(((errmsg=="Success")?"Default Set Successfully":errmsg),backfunc);if(response.errcode==0)
{var gn=unescape(group_name);var i=fgroup(gn);if(i>=0&&i<display_groups.length)
{display_groups[i].default_post_id=pid;}}}}
function setAsDefaultHtml(post_id,post_title,group_name,rem)
{post_title=unescape(post_title);var backfunc="goBack()";var pid=post_id;if(rem)pid=0;se("");var setfn="setAsDefault("+pid+",\""+group_name+"\",\""+backfunc+"\" );";var txt="";if(rem)
txt="Do you want to remove "+"<span class='cgroupname'>"+post_title+"</span> as the default post "+"for group <b>"+unescape(group_name)+"</b>?<br/>";else
txt="Do you want the map to automatically position to and open the post "+"<span class='cgroupname'>"+post_title+"</span>"+"</b> whenever group <b>"+unescape(group_name)+"</b> is viewed? "+"Any GeoLog attached to this post will also be automatically plotted.<br>";txt+="<br><br><input type='button' value='Cancel' onclick='"+backfunc+"'>"+"&nbsp;&nbsp;&nbsp;<input type='button' value='Submit' "+" onclick='"+setfn+"'>";dd("contentarea").innerHTML=txt;var backlink="";if(backfunc)
backlink="<span class='link1' id='backlink' onclick='"+backfunc+"' >[Back]</span>&nbsp;";scm(backlink+"Set Default Post In Group");rel();}
function deleteAllPosts(backfunc)
{var params="";if(sgs.length>0)
params+="gns="+eu(makelist(sgs));if(locations_only)
params+="&locations=1";if(!worldwide_posts)
{var bounds=map.getBounds();var sw=bounds.getSouthWest();var ne=bounds.getNorthEast();params+="&swlat="+sw.lat()+"&swlon="+sw.lng()+"&nelat="+ne.lat()+"&nelon="+ne.lng();}
eaq("/geogroups/deleteposts.php",params,onDeleteAllPosts,false);function onDeleteAllPosts(response)
{popDeleteAllPosts(response,backfunc);}}
function popDeleteAllPosts(response,timeoutfunc)
{se((response.errcode==0)?(response.post_count+" Posts Deleted Successfully"):response.errmsg);fps(true);var dely=((response.errcode==0)?2000:3000);timeoutfunc=jsunesc(timeoutfunc);if(timeoutfunc&&timeoutfunc!="")
window.setTimeout(timeoutfunc,dely);}
function deleteAllHtml()
{if(is_demo||username==demouser)return;var gnames=makelist(sgs);var backfunc="goMenu(selectedTab)";se("");var delfn="deleteAllPosts( \""+backfunc+"\" )";var txt="Are you sure you want to delete all"+
(locations_only?" user location ":" ")+"posts created by you"+
(worldwide_posts?" ":" within the current map bounds ")+"in group(s)<br>"+"<span class='cgroupname'>"+gnames+"</span>&nbsp;"+"<br><br><input type='button' value='Cancel' onclick='"+backfunc+"'>"+"&nbsp;&nbsp;&nbsp;<input type='button' value='Delete' "+" onclick='"+delfn+"'>";dd("contentarea").innerHTML=txt;var backlink="";if(backfunc)
backlink="<span class='link1' id='backlink' onclick='"+backfunc+"' >[Back]</span>&nbsp;";scm(backlink+"Delete GeoPosts");rel();}
var maphistory=new Array();var historypos=-1;function mapHistoryGetLast()
{if(historypos>-1)
return{latlng:new GLatLng(maphistory[historypos][0],maphistory[historypos][1]),zoom:maphistory[historypos][2]};return false;}
function mapHistoryAdd(latlng,zoom)
{if(cause_history)
{cause_history=false;return;}
if((historypos+1)<maphistory.length)
maphistory.splice(historypos+1,(maphistory.length-historypos-1));if(historypos>-1)
if(zoom==maphistory[historypos][2]&&latlng.equals(new GLatLng(maphistory[historypos][0],maphistory[historypos][1])))
return;maphistory.push([latlng.lat(),latlng.lng(),zoom]);historypos++;if(maphistory.length>100&&historypos>10)
{maphistory.splice(0,10);historypos-=10;}}
var cause_history=false;function mapHistoryBack()
{if(maphistory.length>0&&historypos>0)
{cause_history=true;historypos--;var mappos=maphistory[historypos];mpc(new GLatLng(mappos[0],mappos[1]),mappos[2]);}}
function mapHistoryForward()
{if((historypos+1)>=maphistory.length)return;if(maphistory.length>0)
{cause_history=true;historypos++;var mappos=maphistory[historypos];mpc(new GLatLng(mappos[0],mappos[1]),mappos[2]);}}
onMapDrag=function()
{if(dd("centerico").style.zIndex!="101")
dd("centerico").style.zIndex="101";var center=map.getCenter();var zoom=map.getZoom();var lastpos=mapHistoryGetLast();fps();mapHistoryAdd(center,zoom);set_cookie("lat",center.lat().toFixed(4),2050,12,31,"/");set_cookie("lng",center.lng().toFixed(4),2050,12,31,"/");set_cookie("zoom",zoom,2050,12,31,"/");}
var clustergon=null;var last_cbounds=null;function showClustergon(bounds)
{if(bounds)last_cbounds=bounds;else bounds=last_cbounds;if(!bounds)return;removeClusterGon();clustergon=new GPolygon([bounds.getSouthWest(),new GLatLng(bounds.getNorthEast().lat(),bounds.getSouthWest().lng()),bounds.getNorthEast(),new GLatLng(bounds.getSouthWest().lat(),bounds.getNorthEast().lng()),bounds.getSouthWest()],"#f33f00",1,0.9,"#ff0000",0.2,{clickable:false});GEvent.addListener(clustergon,"mouseover",function(latlng)
{removeClusterGon();});map.addOverlay(clustergon);}
function onPMOver(postid)
{var pos=shm(mpm,postid,false);if(pos!=-1)
onMMOver(mpm[pos].gmarker);}
function onPMOut(postid)
{if(selectedTab==5)
{var pid="pl"+postid;posthi(dd(pid),(pid==last_selected_pid));}
removeClusterGon();}
function onMMOver(gmarker)
{if(gmarker.myindex)
{var post_marker=mpm[gmarker.myindex];if(post_marker)
{if(selectedTab==5)
{posthi(dd("pl"+post_marker.post_id),true);}
if(post_marker.is_cluster=="1")
showClustergon(post_marker.bounds);}}}
function removeClusterGon()
{if(clustergon)
{GEvent.clearInstanceListeners(clustergon);map.removeOverlay(clustergon);clustergon=null;}}
function posthi(obj,hi)
{if(typeof obj!="undefined"&&obj!=null)obj.style.backgroundColor=(hi?"#f5f5ff":"");}
function onMMOut(gmarker)
{var post_marker=mpm[gmarker.myindex];if(post_marker&&post_marker.post_id)
{if(selectedTab==5)
{var pid="pl"+post_marker.post_id;posthi(dd(pid),(pid==last_selected_pid));}
if(post_marker.is_cluster=="1")
removeClusterGon();}}
function onPDblClk(postid)
{var pos=shm(mpm,postid,false);if(pos!=-1)
onMDblClk(mpm[pos].gmarker);}
function onMDblClk(gmarker)
{if(typeof gmarker.myindex!="undefined"&&mpm[gmarker.myindex].is_cluster=="1")
zoomInCluster(gmarker);else
mpc(gmarker.getLatLng(),16);}
function onMClk(gmarker)
{clearRepopTimeout();if(typeof gmarker.ishomemarker!="undefined")
onHomeMarkerClick(gmarker);else if(typeof gmarker.myindex!="undefined")
{if(mpm[gmarker.myindex].is_cluster==0)
fetchPost(popPost,mpm[gmarker.myindex].post_id,gmarker);else
popCluster(gmarker);}}
function onHomeMarkerClick(gmarker)
{fetchPost(popPost,home_marker.post_id,gmarker);}
function zoomInCluster(gmarker)
{var post_marker=mpm[gmarker.myindex];if(!post_marker)return;var lat=gmarker.getLatLng().lat();var lng=gmarker.getLatLng().lng();var swlat=post_marker.bounds.getSouthWest().lat();var swlng=post_marker.bounds.getSouthWest().lng();var nelat=post_marker.bounds.getNorthEast().lat();var nelng=post_marker.bounds.getNorthEast().lng();zoomCluster(lat,lng,swlat,swlng,nelat,nelng,gmarker);window.setTimeout("removeClusterGon()",1000);}
function zoomCluster(lat,lng,swlat,swlng,nelat,nelng,gmarker)
{var bounds=new GLatLngBounds(new GLatLng(swlat,swlng),new GLatLng(nelat,nelng));mpc(new GLatLng((swlat+nelat)/2.0,(swlng+nelng)/2.0),map.getBoundsZoomLevel(bounds));}
function popCluster(gmarker)
{var post_marker=mpm[gmarker.myindex];if(!post_marker)return;last_marker_pop=gmarker;var lat=gmarker.getLatLng().lat();var lng=gmarker.getLatLng().lng();var swlat=post_marker.bounds.getSouthWest().lat();var swlng=post_marker.bounds.getSouthWest().lng();var nelat=post_marker.bounds.getNorthEast().lat();var nelng=post_marker.bounds.getNorthEast().lng();var mhtml="<span class='cgroupnamedisp' >"+post_marker.post_count+" GeoPosts around this point"+"</span>"+"<br><span class='link1' onclick='zoomCluster("+
lat+","+lng+","+swlat+","+swlng+","+nelat+","+nelng+")' "+ml+" >Zoom-In</span>&nbsp;("+
parseFloat(lat).toFixed(4)+", "+parseFloat(lng).toFixed(4)+")";selPost(post_marker.post_id);showmarkerpop(gmarker,mhtml);}
var myNewMarkers=new Array();var nextNewMarkerId=1;function findNewMarker(id)
{var h=myNewMarkers.length,l=-1,m;while(h-l>1)
if(myNewMarkers[m=h+l>>1].post_id<id)l=m;else h=m;return h>=myNewMarkers.length?-1:(myNewMarkers[h].post_id==id?h:-1);}
function deleteNewMarker(id)
{var pos=findNewMarker(id);if(pos!=-1)
{newmarker=myNewMarkers[pos];myNewMarkers.splice(pos,1);GEvent.clearInstanceListeners(newmarker.gmarker);map.removeOverlay(newmarker.gmarker);newmarker=null;}}
var myPMs=new Array();var nextPMId=1;function msearch(arr,idname,id)
{var h=arr.length,l=-1,m;while(h-l>1)
if(arr[m=h+l>>1][idname]<id)l=m;else h=m;return h>=arr.length?-1:(arr[h][idname]==id?h:-1);}
function mget(arr,idname,id)
{var p=msearch(arr,idname,id);return(p<0)?null:arr[p];}
function mdelete(arr,idname,id)
{var pos=msearch(arr,idname,id);if(pos!=-1)
{var m=arr[pos];arr.splice(pos,1);GEvent.clearInstanceListeners(m.gmarker);map.removeOverlay(m.gmarker);m.gmarker=null;m=null;}}
function madd(arr,idname,val)
{arr.push(val);function msort(a,b)
{var c=a[idname],d=b[idname];return c<d?-1:(c>d?1:0);}
arr.sort(msort);}
function getNewPM(id,title,latlng,txt)
{var newmarker={id:id,gmarker:new GMarker(latlng,{icon:getIcon("postoffice-us"),title:title})};newmarker.gmarker.pmhtml=txt;madd(myPMs,"id",newmarker);return newmarker;}
function getNewPostHtml(point,strlocation,marker_id,purpose)
{var zin=" onclick='mpc(new GLatLng( "+point.lat()+","+point.lng()+"), 16)' "+
ml;var txt="<b>"+strlocation+"</b><br>";if(!noedit&&!nosignin){if(purpose=="mylocation")
txt+=getMyLocationHtml(point,strlocation,marker_id);else if(purpose=="home")
txt+=getMyHomeHtml(point,strlocation,marker_id);else
txt+="<span style='font-size:120%;margin-left:0px;' class='button' "+"onclick='fnp(\"lat="+point.lat().toFixed(6)+"&lon="+point.lng().toFixed(6)+"&mid="+marker_id+"&address="+htmlesc(strlocation)+"\" );' "+" >Create GeoPost Here..</span>"+"<br>"+
getMyLocationHtml(point,strlocation,marker_id);}
txt+="<br/><hr><span style='float:right;'><img title='Zoom-In' alt='Zoom-In' "+zin+" src='/images/zi32.png' width='24' />&nbsp;"+"<img "+ml+" onclick='deleteNewMarker("+marker_id+");' title='Remove From Map' "+" src='/images/close24.png' /></span>";txt+="<span class='ctiphelp'>Tip: You can drag this marker to a new location</span>";return txt;}
function getMyLocationHtml(point,strlocation,marker_id)
{return"<span style='font-size:120%;margin-left:0px;' class='button' onclick='fnp(\"sml=1&lat="+point.lat().toFixed(6)+"&lon="+point.lng().toFixed(6)+"&mid="+marker_id+"&iul=1&icon=mylocation&title=My%20Location&address="+htmlesc(strlocation)+"\" )' "+ml+" >Set As My Location..</span>";}
function getMyHomeHtml(point,strlocation,marker_id)
{return"<span style='font-size:120%;margin-left:0px;' class='button' "+"onclick='fnp(\"sh=1&lat="+point.lat().toFixed(6)+"&lon="+point.lng().toFixed(6)+"&mid="+marker_id+"&ih=1&title=Home&address="+htmlesc(eu(strlocation))+"\" )' "+" >Set As My Home Location</span>";}
function getNewMarker(latlng,strlocation,icon_name,type)
{var icon=icon_name?getIcon(icon_name):default_icon;var newmarker={post_id:nextNewMarkerId,gmarker:new GMarker(latlng,{draggable:true,icon:icon})};myNewMarkers.push(newmarker);newmarker.gmarker.type=type;newmarker.gmarker.newmarkerhtml=getNewPostHtml(latlng,strlocation,nextNewMarkerId,type);newmarker.gmarker.newaddress=strlocation;nextNewMarkerId++;return newmarker;}
function postGeoCode()
{var strlocation=dd("naaddress").value;if(strlocation=="")return;geocoder.getLatLng(strlocation,function(point)
{if(!point)
{alert(strlocation+" not found");}else
{dd("nalat").value=point.lat();dd("nalon").value=point.lng();mpc(point,14);}});}
function postRGeoCode()
{var lat=dd("nalat").value;var lng=dd("nalon").value;if(lat.length==""||lng.length=="")return;showWaitCursor(true,0);var latlng=new GLatLng(lat,lng);geocoder.getLocations(latlng,updateAddress);function updateAddress(response)
{showWaitCursor(false,0);if(response&&response.Status.code==200)
{dd("naaddress").value=response.Placemark[0].address;mpc(latlng,14);}}}
function fetchAddressFromPosition(newmarker,latlng)
{showWaitCursor(true,1);geocoder.getLocations(latlng,updateAddress);function updateAddress(response)
{showWaitCursor(false,1);if(response&&response.Status.code==200)
{var gmarker=newmarker.gmarker;gmarker.newaddress=response.Placemark[0].address;gmarker.newmarkerhtml=getNewPostHtml(latlng,gmarker.newaddress,newmarker.post_id,gmarker.type);showmarkerpop(gmarker,gmarker.newmarkerhtml);}}}
var finmarkerid=0;function findLocation(strlocation)
{if(strlocation=="<Type an Address>")return;hidePostPop();geocoder.getLatLng(strlocation,function(point)
{if(!point)
{post(strlocation+" not found");}else
{mpc(point,14);var newmarker=getNewMarker(point,strlocation,null,"post");var gmarker=newmarker.gmarker;GEvent.addListener(gmarker,"dragend",function(latlng)
{gmarker.newmarkerhtml=getNewPostHtml(latlng,gmarker.newaddress,newmarker.post_id,gmarker.type);fetchAddressFromPosition(newmarker,latlng);showmarkerpop(gmarker,gmarker.newmarkerhtml);});map.addOverlay(gmarker);showmarkerpop(gmarker,gmarker.newmarkerhtml);}});}
function getParentPos(name)
{var obj=dd(name);if(!obj)return null;return{left:obj.offsetLeft,top:obj.offsetTop,width:obj.offsetWidth,height:obj.offsetHeight}}
var slmarker={};function slideMarker(gmarker,latlng1,latlng2)
{var steps=10;var latincr=(latlng2.lat()-latlng1.lat())/steps;var lngincr=(latlng2.lng()-latlng1.lng())/steps;var lat=latlng1.lat();var lng=latlng1.lng();slmarker={gmarker:gmarker,lat:lat,lng:lng,latincr:latincr,lngincr:lngincr,cnt:0};slide();}
function slide()
{if(slmarker.cnt<10)
{slmarker.lat+=slmarker.latincr;slmarker.lng+=slmarker.lngincr;slmarker.gmarker.setLatLng(new GLatLng(slmarker.lat,slmarker.lng));slmarker.cnt++;window.setTimeout(slide,30);}
else
{GEvent.trigger(slmarker.gmarker,"dragend",new GLatLng(slmarker.lat,slmarker.lng));}}
function serror(errmsg,fn)
{if(!fn)fn="se('');";se(errmsg);window.setTimeout(fn,3000);}
function goHome()
{if(is_demo)
{serror("Sign-In To set your Home Location");}
else if(home_marker==null)
{createNewMarker("home");}
else
{mpc(home_marker.getLatLng());}}
function createNewMarker(type)
{if(type=="mylocation")
icon_name="mylocation";else if(type=="home")
icon_name="hometp32";else
icon_name="flag";var parentOffset=getParentPos("tbar2");var buttonOffset=getParentPos("newmarkerbutton");var x=10;var y=0;var point=map.fromContainerPixelToLatLng(new GPoint(x,y));var point2=map.getCenter();var newmarker=getNewMarker(point,"",icon_name,type);var gmarker=newmarker.gmarker;gmarker.type=type;GEvent.addListener(gmarker,"dragend",function(latlng)
{gmarker.newmarkerhtml=getNewPostHtml(latlng,gmarker.newaddress,newmarker.post_id,gmarker.type);fetchAddressFromPosition(newmarker,latlng);showmarkerpop(gmarker,gmarker.newmarkerhtml);});map.addOverlay(gmarker);slideMarker(gmarker,point,point2);}
var selectedNav=0;var mynavs=['showmygroups','showmymarks','showmore'];var navtimeout=null;function clearNavTimeout()
{if(navtimeout){window.clearTimeout(navtimeout);navtimeout=null;}}
function hideGroupsNav()
{if(!dd("groupnavs"))return;clearNavTimeout();hd("groupnavs");hd("marknavs");hd("morenavs");for(var i=0;i<mynavs.length;i++)
{if(i==selectedNav||(i==0&&selectedNav==3))
dd(mynavs[i]).className="gheadernavlite";else
dd(mynavs[i]).className="gheadernav";}}
function slowHideGroupsNav()
{navtimeout=window.setTimeout("hideGroupsNav();",300);}
function showGroupsNav(which)
{clearNavTimeout();shobj("groupnavs",(which==0));shobj("marknavs",(which==1));shobj("morenavs",(which==2));for(var i=0;i<mynavs.length;i++)
{if(i==which)
dd(mynavs[i]).className="gheadernavlite";else
dd(mynavs[i]).className="gheadernav";}}
var selectedTab=0;function onMouseoutNav(obj)
{if(obj.id.substr(0,6)=="subnav")
obj.className=(selectedTab==pnt(obj.id.substr(6)))?"groupnav":"groupnav";}
var last_mygroups_nav=0;var last_posts_nav=5;function getStateParams()
{var url="";if(sgs.length>0&&sgs[0]!="My Groups")
url+="group="+eu(makelist(sgs));if(author!="")
url+="&user="+eu(author);if(locations_only)
url+="&loconly=1";if(pois_only)
url+="&poionly=1";if(pics_only)
url+="&picsonly=1";if(nochangegroup)url+="&nochangegroup=1";if(listsize!="large")url+="&listsize="+listsize;if(noedit)url+="&noedit=1";if(nosignin)url+="&nosignin=1";if(nofilters)url+="&nofilters=1";if(style!="")url+="&style="+style;if(is_preview)url+="&preview=1";if(last_poppost!=-1)
{if(last_poplocation&&last_popuser!="anonymous")
url+="&post=mylocation-"+last_popuser;else
url+="&post="+last_poppost;}
return url;}
function getStateParams3()
{var url="";if(sgs.length>0&&author!="")
url+="user="+eu(author);if(locations_only)
url+="&loconly=1";if(pois_only)
url+="&poionly=1";if(pics_only)
url+="&picsonly=1";if(nochangegroup)url+="&nochangegroup=1";if(listsize!="large")url+="&listsize="+listsize;if(noedit)url+="&noedit=1";if(nosignin)url+="&nosignin=1";if(nofilters)url+="&nofilters=1";if(style!="")url+="&style="+style;if(is_preview)url+="&preview=1";if(last_poppost!=-1)
{if(last_poplocation&&last_popuser!="anonymous")
url+="&post=mylocation-"+last_popuser;else
url+="&post="+last_poppost;}
if(url!=""&url.charAt(0)=="&")url=url.substr(1);return url;}
function getStateUrl2()
{var url=getBase();var p=getStateParams3();if(p!="")url+="?"+p;return url;}
function getFeedUrl()
{var url=getBase()+"feed/";var p=getStateParams3();if(p!="")url+="?"+p;return url;}
function flatten(str)
{re=/\$|@|#|~|`|\%|\*|\^|\&|\(|\)|\+|\=|\[|\-|\_|\]|\[|\}|\{|\;|\:|\'|\"|\<|\>|\?|\||\\|\!|\$|\./g;return trim(str.toLowerCase().replace(re," ").replace(/\s+/g,' '));}
function flattendash(str)
{return flatten(str).replace(/\s/g,"-");}
function getBase()
{var url=window.location.protocol+"//"+window.location.host;if(sgs.length==0&&author!="")
{url+="/users/"+eu(author)+"/";}
else
{url+="/groups/";if(!(sgs.length==1&&sgs[0].toLowerCase()=="my groups"))
{var gns=eu(joinWith(sgs,",",flattendash));if(gns!="")
url+=gns+"/";}}
return url;}
function makeUrl(suffix)
{var b=getBase();if(suffix!="")
{if(b.charAt(b.length-1)!="/")b+="/";return b+"?"+suffix;}
return b;}
function getStateUrl()
{return makeUrl(getStateParams3());}
function getWidUrl()
{return"http://"+server_name+"/widgets/testgroups.php?"+getStateParams();}
function mygroupsUrl(){return makeUrl("open=mygroups");}
function goMyGroups()
{if(is_demo){serror("Please Sign-In");return;}
fsubg(0);}
function pubgroupsUrl(){return makeUrl("open=publicgroups");}
function goPublicGroups()
{fallg();}
function goMyStuff()
{}
function goMyPosts()
{if(is_demo)return;goMenu(last_posts_nav);hideGroupsNav();}
function selClass(obj,cname)
{if(cname)
{obj.oldcname=obj.className;obj.className=cname;}
else if(obj.oldcname)
{obj.className=obj.oldcname;obj.oldcname=null;}}
function selGroupNav()
{var which=selectedTab;if(which<3)
{last_mygroups_nav=which;setNCls("mtnav00","multinavhi");setNCls("mtnav01","multinav");setNCls("mtnav02","multinav");}
else if(which==3)
{setNCls("mtnav00","multinav");setNCls("mtnav01","multinavhi");setNCls("mtnav02","multinav");}
else if(which==4)
{setNCls("mtnav00","multinav");setNCls("mtnav01","multinav");setNCls("mtnav02","multinavhi");}}
function hideSubNavs(){for(i=0;i<4;i++)
hd("altnav"+i);}
function ssn(which,groupnav)
{for(i=0;i<4;i++)
shobj("altnav"+i,(groupnav==i));if(groupnav>=0)
selectedNav=groupnav;selectedTab=which;selGroupNav();}
function goMenu(which)
{if(which==0)
{ssn(0,0);goMyGroups();}
else if(which==3)
{ssn(3,0);goPublicGroups();}
else if(which==4)
{ssn(4,0);fngh();}
else if(which==5)
{ssn(5,3);mpMenu(worldwide_posts?1:0);}
else if(which==6)
{ssn(6,3);ptChoose(1);}
else if(which==7)
{ssn(7,2);jreqin();}
else if(which==8)
{ssn(8,2);invite();}
else if(which==9)
{ssn(9,2);requestUser();}
else if(which==10)
{ssn(10,2);ful();}
else if(which==11)
{ssn(11,1);fmyl();}
else if(which==12)
{ssn(12,1);fmycsv();}
else if(which==13)
{ssn(13,3);ptChoose(2);}
else if(which==14)
{ssn(14,2);msgSend();}}
function chooseMenu(obj)
{if(obj)
{goMenu(pnt(obj.id.substr(6)));hideGroupsNav();}}
function containsDOM(container,containee){var isParent=false;do{if((isParent=container==containee))
break;containee=containee.parentNode;}
while(containee!=null);return isParent;}
function onPostPopMouseOut(e,obj)
{var cont=dd("postpopcontent");var evt=window.event||e;if(evt.relatedTarget)
{if(containsDOM(cont,evt.relatedTarget))return false;}
if(typeof evt.toElement!="undefined"&&evt.toElement){if(cont.contains(evt.toElement))return false;}
return true;}
function onMenuMouseOut(e)
{if(e.relatedTarget)
{if(containsDOM(dd('geogroupsmenu'),e.relatedTarget))return;slowHideGroupsNav();return;}
var elem=dd('geogroupsmenu');if(!event)event=window.event;if(event.toElement){if(elem.contains(event.toElement))return;}
slowHideGroupsNav();}
function onMouseOutCont(e,contname,hidename)
{if(!hidename)hidename=contname;var elem=dd(contname);if(e.relatedTarget)
{if(containsDOM(elem,e.relatedTarget))return;sTimeout(hidename,"hd('"+hidename+"')",300);return;}
if(!event)event=window.event;if(event.toElement){if(elem.contains(event.toElement))return;}
sTimeout(hidename,"hd('"+hidename+"')",300);}
var mouseonlistpop=false;var mouseonpop=false;function showGroupPop(obj,subscribed,which,timeoutfunc)
{var txt=getGroupPopHtml(display_groups[which],which,subscribed,timeoutfunc);showInfopop(obj,txt);}
var selarr=null;function showSelPop(obj,arr,setid)
{if(!arr)return;var txt="";for(i=0;i<arr.length;i++)
{txt+="<div class='cselpop' onclick='dd(\""+setid+"\").value=this.innerHTML;hideInfoPop(true);'>"+arr[i]+"</div>";}
showInfopop(obj,txt);}
function showInfopop(obj,txt)
{if(obj==null)
return;var tip=dd('infopop');clTimeout('infopop');var pos=findPos(obj);dd("infopopcontent").innerHTML=txt;tip.style.left=(pos.left+obj.offsetWidth)+"px";var newtop=(pos.top-(pnt(tip.offsetHeight)/2)+(obj.offsetHeight/2));if((newtop+tip.offsetHeight)>getClientHeight())
{var moveup=(newtop+tip.offsetHeight)-getClientHeight();if((newtop-moveup)<0)moveup=newtop;dd("infopoparrow").style.top=(moveup-11)+"px";newtop=newtop-moveup;}
else if(newtop<0)
{dd("infopoparrow").style.top=(newtop-11)+"px";newtop=0;}
else
{dd("infopoparrow").style.top="-11px";}
tip.style.top=newtop+"px";ssTimeout('infopop',"clTimeout('infopop');dd('infopop').style.visibility = 'visible'",100);}
function hideInfoPop(force)
{var tip=dd('infopop');if(!force)force=false;if(!force&&((typeof gtimeouts['infopop']!="undefined"&&typeof gtimeouts['infopop'].stimeout!="undefined"&&gtimeouts['infopop'].stimeout!=null)||mouseonpop))
{return;}
tip.style.visibility='hidden';mouseonpop=false;clTimeout('infopop');}
function hip(f){hideInfoPop(f);}
function onMouseoutInfo(e,obj)
{var tip=dd('infopop');if(typeof gtimeouts['infopop']!="undefined"&&typeof gtimeouts['infopop'].stimeout!="undefined"&&gtimeouts['infopop'].stimeout)
{window.clearTimeout(gtimeouts['infopop'].stimeout);gtimeouts['infopop'].stimeout=null;};if(mouseonpop)return;if(e.relatedTarget)
{if(e.relatedTarget.id=="infopop"||containsDOM(obj,e.relatedTarget)||containsDOM(tip,e.relatedTarget))
return;}
else if(!e.toElement||e.toElement.id=="infopop"||tip.contains(event.toElement))
return;sTimeout('infopop',"hip()",300);}
function onMouseoutPop(e,obj)
{var tip=dd('infopop');clTimeout('infopop');if(e.relatedTarget)
{if(containsDOM(tip,e.relatedTarget))return;}
if(tip.contains&&event.toElement)
{if(tip.contains(event.toElement))return;}
mouseonpop=false;sTimeout("infopop","hip()",300);}
function showListPop(obj,txt)
{if(obj==null)
return;var tip=dd('listpop');var pos=findPos(obj);dd("listpopcontent").innerHTML="<br>"+txt;tip.style.left=(pos.left+obj.offsetWidth)+"px";var newtop=(pos.top-(pnt(tip.offsetHeight)/2)+(obj.offsetHeight/2));if((newtop+tip.offsetHeight)>getClientHeight())
{var moveup=(newtop+tip.offsetHeight)-getClientHeight();if((newtop-moveup)<0)moveup=newtop;dd("listpoparrow").style.top=(moveup-11)+"px";newtop=newtop-moveup;}
else if(newtop<0)
{dd("listpoparrow").style.top=(newtop-11)+"px";newtop=0;}
else
{dd("listpoparrow").style.top="-11px";}
tip.style.top=newtop+"px";tip.style.visibility='visible';}
var listpop_timer=null;function hideListPop(tip)
{if(!tip||tip==null)tip=dd('listpop');clTimeout('listpop');tip.style.visibility='hidden';mouseonlistpop=false;}
function delayHideListPop()
{sTimeout('listpop','if(!mouseonlistpop) hideListPop();',700);}
function onMouseoverListPop(e,obj)
{mouseonlistpop=true;clTimeout('listpop');}
function onMouseoutListPop(e,obj)
{var tip=dd('listpop');var infotip=dd('infopop');if(e.relatedTarget)
{if(containsDOM(tip,e.relatedTarget))return;if(containsDOM(infotip,e.relatedTarget))return;mouseonlistpop=false;delayHideListPop();}
if(tip.contains&&event.toElement)
{if(tip.contains(event.toElement))return;if(infotip.contains(event.toElement))return;}
mouseonlistpop=false;delayHideListPop();}
var MarkerPop=function(marker,html,oy){this.marker=marker;this.html=html;this.hidden=false;this.oy=(typeof oy=="undefined"?32:oy);}
MarkerPop.prototype=new GOverlay();var divadded=false;MarkerPop.prototype.initialize=function(map){var div=dd('postpop');dd('postpopcontent').innerHTML=this.html;this._map=map;this._div=div;if(!divadded)
{map.getPane(G_MAP_FLOAT_PANE).appendChild(div);divadded=true;}}
MarkerPop.prototype.remove=function(){this._div.style.visibility='hidden';markerpop=null;this.marker.mpop=null;this.hidden=true;markerpopvisible=false;}
MarkerPop.prototype.redraw=function(force){if(!force)return;if(this.hidden||!markerpopvisible)
{this._div.style.visibility='hidden';return;}
var pt=map.fromLatLngToDivPixel(this.marker.getLatLng());var bounds=map.getBounds();var ne=map.fromLatLngToDivPixel(bounds.getNorthEast());var sw=map.fromLatLngToDivPixel(bounds.getSouthWest());var cw=Math.abs(ne.x-sw.x);var cy=Math.abs(sw.y-ne.y);var dwidth=(listsize=="large"?400:300);if(cw<=430||cy<=300)dwidth=300;this._div.style.width=dwidth+"px";var newleft=(pt.x-(this._div.offsetWidth/2.0));var aleft=-11;if(cw<dwidth)
{this._div.style.width=(cw-16)+"px";aleft=pt.x-(sw.x+(cw/2.0))-11;newleft=sw.x;}
var newtop=pt.y-this.oy-11-11-this._div.offsetHeight;var arrow=dd('postpoparrow');if(newleft<sw.x)
{var moveright=(sw.x-newleft);if(moveright>(this._div.offsetWidth/2.0)-11)
moveright=(this._div.offsetWidth/2.0)-11;aleft=(-11-moveright);newleft+=moveright;}
if((newleft+this._div.offsetWidth)>ne.x)
{var moveleft=(newleft+this._div.offsetWidth)-ne.x;if(moveleft>(this._div.offsetWidth/2.0)-11)
moveleft=(this._div.offsetWidth/2.0)-11;aleft=(-11+moveleft);newleft-=moveleft;}
if((newtop+10)<ne.y)
{newtop=pt.y;arrow.style.top='0px';arrow.firstChild.src='/images/bubble-up.png';}
else
{arrow.style.top=(this._div.offsetHeight+9)+'px';arrow.firstChild.src='/images/bubble-down.png';}
arrow.style.left=aleft+'px';var o=dd("postpopcontent");if((newtop+this._div.offsetHeight)>sw.y)
{newtop=ne.y+20;arrow.style.display="none";o.tp="1";o.className="cpostpopcontent2";o.backgroundColor="";}
else
{arrow.style.display="";o.tp="0";o.className="cpostpopcontent";}
this._div.style.top=newtop+'px';this._div.style.left=newleft+'px';this._div.style.visibility='visible';}
var markerpop=null;var markerpopvisible=false;function showmarkerpop(gmarker,txt,oy)
{if(gmarker.mpop)
map.removeOverlay(gmarker.mpop);markerpopvisible=true;gmarker.mpop=new MarkerPop(gmarker,txt+"<br />",oy);markerpop=gmarker.mpop;map.addOverlay(gmarker.mpop);}
function hidePostPop()
{markerpopvisible=false;if(markerpop)
{markerpop.marker.mpop=null;markerpop.hidden=true;map.removeOverlay(markerpop);markerpop=null;}
dd('postpop').style.visibility='hidden';if(follow_post!=last_poppost)postScrap();last_poppost=-1;clearRepopTimeout();}
function showDebug(line)
{}
function se(line)
{var o=dd("errorinfo");if(o){dd("errortxt").innerHTML=line;o.style.display=(line=="")?"none":"";}}
var yesno={fn:null};function clickYes(yes){hd("yesnobox");if(yesno.fn)yesno.fn(yes);}
function showYesNoBox(txt,callbackfn)
{var o=dd("yesnobox");if(o){dd("yesnotxt").innerHTML=txt;o.style.display=(txt=="")?"none":"";if(typeof callbackfn=="undefined"||!callbackfn)callbackfn=null;yesno.fn=callbackfn;}}
function setContent(txt)
{dd("contentarea").innerHTML=txt;}
function scm(mode)
{if(mode=="")mode="&nbsp;";dd("curmode").innerHTML=mode;}
function isEnter(evt){var keyCode=null;if(evt.which){keyCode=evt.which;}else if(evt.keyCode){keyCode=evt.keyCode;}
return(13==keyCode);}
function showWaitCursor(show,pos)
{var o=dd((!pos||pos==0)?"waitcursor":"waitcursor1");if(o)o.innerHTML=(show?"<img src='/images/wait20.gif'>":"");}
function checkSignup(e)
{var errmsg="";if(dd("suu").value=="")
errmsg="What's a user without a name?";else if(dd("suu").value.length<3)
errmsg="Username must be at least 3 characters";else if(dd("suu").value.length>30)
errmsg="Username must not exceed 30 characters";else if(dd("sup").value=="")
errmsg="Please specify a password";else if(dd("sup").value.length<6)
errmsg="Password must be at least 6 characters";else if(dd("sup").value.length>60)
errmsg="Password must not exceed 60 characters";else if(dd("sue").value=="")
errmsg="Please specify an email address";else if(dd("sue").value.length>60)
errmsg="Email address must not exceed 60 characters";else if(dd("sue").value!=dd("suce").value)
errmsg="Please confirm your email address";if(errmsg!="")
dd("suerror").innerHTML=errmsg;e.returnValue=(errmsg=="");return(errmsg=="");}
function mrChoose(max)
{max_results=max;dd("maxresults").innerHTML=max;fps();hd('mrmenu');clTimeoutN('mrmenu');}
function mrMenu()
{var obj=dd("maxresults").parentNode;var tip=dd('mrmenu');if(!tip)return;clTimeout('mrmenu');if(tip.style.display==''){hd('mrmenu');return;}
var pos=findPos(obj);tip.style.left=pos.left+"px";tip.style.width=obj.offsetWidth+"px";var newtop=pos.top+obj.offsetHeight;tip.style.top=newtop+"px";tip.style.display='';}
function getScrap(caption,action,bgcolor,id,onclk)
{if(!bgcolor)bgcolor="#68a0f5";if(!id)id="";if(!onclk)onclk="";if(onclk!="")onclk=" onclick='"+onclk+"' ";return"<span class='cgroupscrap'  "+(id!=""?("id='"+id+"'"):"")+"  "+
(bgcolor!=""?("style='background-color:"+bgcolor+"'"):"")+" "+onclk+" >"+"<span>"+caption+"</span> "+"<span class='cclosebutton' style='background-color:white;color:"+bgcolor+"' "+"onmouseover='hl(this,\"white\",\"#e05555\"); ' onmouseout='uhl(this);' "+" onclick='"+action+"' "+">x</span>"+"</span>";}
function removeScrap(name,id)
{var elem=dd(name);var child=dd(id);if(elem&&child)
elem.removeChild(child);}
function cbAuthor(forceon)
{if(!forceon)forceon=false;var cb=dd('cbauthor');if(cb.checked||forceon)
{var au=dd('author').value;if(au==""||au=="<username>")
cb.checked=false;else
setAuthor(au,true);}
else
{if(nochangegroup&&defauthor!=""&&dd('author').value==defauthor)
return;dd('author').value='';setAuthor("",true);}}
function setPicsOnly(newval,nocall)
{if(!nocall)
nocall=false;var txt="";if(newval)
{txt=getScrap("pics-only",(nofilters?"noop()":"setPicsOnly(false)"),"#999999");}
dd("mappicsonly").innerHTML=txt;pics_only=newval;if(dd('cbpicsonly'))dd('cbpicsonly').checked=newval;if(!nocall)fps(true);}
function cbPicsOnly()
{setPicsOnly(dd('cbpicsonly').checked);}
function togglePicsOnly()
{var obj=dd('cbpicsonly');var v=!obj.checked;obj.checked=v;setPicsOnly(v);}
function setPOIsOnly(newval,nocall)
{if(!nocall)
nocall=false;var txt="";if(newval)
{txt=getScrap("pois-only",(nofilters?"noop()":"setPOIsOnly(false)"),"#999999");setLocationsOnly(false,true);}
dd("mappoisonly").innerHTML=txt;pois_only=newval;if(dd('cbpoisonly'))dd('cbpoisonly').checked=newval;if(!nocall)fps(true);}
function cbPOIsOnly()
{setPOIsOnly(dd('cbpoisonly').checked);}
function togglePOIsOnly()
{var obj=dd('cbpoisonly');var v=!obj.checked;obj.checked=v;setPOIsOnly(v);}
function setFavOnly(newval,nocall)
{if(!nocall)
nocall=false;var txt="";if(newval)
{txt=getScrap("fav-only",(nofilters?"noop()":"setFavOnly(false)"),"#999999");if(!nocall&&!fav_only&&newval)
{if(pois_only)setPOIsOnly(false,true);if(pics_only)setPicsOnly(false,true);if(locations_only)setLocationsOnly(false,true);if(author!="")setAuthor("",true);}}
dd("mapfavonly").innerHTML=txt;fav_only=newval;if(dd('cbfavonly'))dd('cbfavonly').checked=newval;if(!nocall)fps(true);}
function cbFavOnly()
{setFavOnly(dd('cbfavonly').checked);}
function toggleFavOnly()
{var obj=dd('cbfavonly');var v=!obj.checked;obj.checked=v;setFavOnly(v);}
function setPreviewOnly(newval,nocall)
{if(!nocall)
nocall=false;var txt="";if(newval)
{txt=getScrap("preview-only",(nofilters?"noop()":"setPreviewOnly(false)"),"#999999");}
dd("mappreviewonly").innerHTML=txt;is_preview=newval;if(!nocall)fps(true);}
function noop(){}
function setLocationsOnly(newval,nocall)
{if(!nocall)
nocall=false;var txt="";if(newval)
{txt=getScrap("user-locations-only",(nofilters?"noop()":"setLocationsOnly(false)"),"#999999");setPOIsOnly(false,true);}
dd("maplocationsonly").innerHTML=txt;locations_only=newval;if(dd('cblocationsonly'))dd('cblocationsonly').checked=newval;if(!nocall)fps(true);}
function cbLocationsOnly()
{setLocationsOnly(dd('cblocationsonly').checked);}
function toggleLocationsOnly()
{var obj=dd('cblocationsonly');var v=!obj.checked;obj.checked=v;setLocationsOnly(v);}
function mpMenu(i,nocall,skip)
{ptChoose(0,true);if(!skip)skip=0;if(typeof nocall=="undefined"||!nocall)
nocall=false;hd('mpmenu');if(i==0)
{worldwide_posts=false;dd('mpdisp').innerHTML="Posts Visible On Map";popPostsList(post_response_map,false);}
else if(i==1)
{worldwide_posts=true;dd('mpdisp').innerHTML="WorldWide Posts";if(!nocall)fpw(skip);}}
function doneUploadLog(errcode,errmsg){if(errcode=="0"){se("Logfile uploaded, please allow a few minutes for processing");dd("loguploadform").innerHTML=getLogUploadForm();}
else
se(errmsg);}
function doneUploadCSV(errcode,errmsg){if(errcode=="0"){se("File uploaded");dd("csvuploadform").innerHTML=getCSVUploadForm();window.setTimeout("fmycsv()",2000);}
else
se(errmsg);}
function startUploadPic(){se("Uploading Picture..");return true;}
function startUploadMsg(msg){se(msg);return true;}
function getUploadPicForm()
{return"<form action='/geogroups/uploadpic2.php' method='POST' enctype='multipart/form-data' target='upload_target' "+" accept='image/jpeg' "+" onsubmit='startUploadPic();' > "+" <input type='hidden' name='u' value='"+username+"' /> "+" <input type='hidden' name='t' value='"+token+"' /> "+"  <input name='file' id='picbrowsefile' type='file' /> "+" <input type='submit' value='Attach(Replace)' /> "+"  </form>";}
function doneUploadPic(errcode,errmsg,name){if(errcode=="0"&&name!=""){se("");dd("napic").value=name;dd("picuploadform").innerHTML="";dd("picuploadform").innerHTML=getUploadPicForm();dd("nadpic").innerHTML="<span title='Remove Picture' style='float:right;cursor:pointer' onclick='removePic()' >"+"<img src='/images/close24.png' /></span>"+"<span title='Rotate' style='margin-right: 10px;float:right;cursor:pointer' onclick='rotateAddPic()' >"+"<img src='/images/rotate16.png' /></span>"+"<img width='220' src='/pics/"+name+"/' />";}
else
se(errmsg);}
function removePic()
{dd("napic").value="";dd("nadpic").innerHTML="";}
function rotateDispPic(ename){rotatePic(dd(ename).value,onDispRotate,ename);}
function rotateAddPic(){rotatePic(dd('napic').value,onAddRotate,'napic');}
function rotatePic(name,rback,param)
{execAjax("/geogroups/rotatepic.php?"+"angle=90&pic="+name,onRotatePic);function onRotatePic(responseText)
{var response=eval('('+responseText+')');if(response.errcode==0)
rback(response,param);this.obj=null;}}
function postPic(name)
{var bounds=map.getBounds();var ne=map.fromLatLngToDivPixel(bounds.getNorthEast());var sw=map.fromLatLngToDivPixel(bounds.getSouthWest());var cw=Math.abs(ne.x-sw.x);var cy=Math.abs(sw.y-ne.y);var s=(listsize!="large"||cw<=430||cy<=300)?120:200;return"<img id='postpic' src='http://"+server_name+"/tpics/"+name+"/' "+" max-width='"+s+"' onload='maxdim(this,"+s+","+s+");if(markerpop) markerpop.redraw(true);' />";}
function onDispRotate(response,param)
{if(dd('postpic'))
{dd(param).value=response.pic;dd('cpic').innerHTML=postPic(response.pic);if(markerpop)markerpop.redraw(true);if(dd('bigpicdiv').style.visibility=="visible")
viewFullSize(param);}}
function onAddRotate(response,param)
{doneUploadPic(0,"",response.pic);}
function centerBigPic(imgobj)
{var b=dd('bigpicdiv');maxdim(imgobj,getClientWidth()-10,getClientHeight()-30);b.style.left=((getClientWidth()-b.offsetWidth)/2)+"px";b.style.top=((getClientHeight()-b.offsetHeight)/2)+"px";}
function viewFullSize(ename)
{if(dd(ename))
{ename=dd(ename).value;dd('bigpic').innerHTML="<img onload='centerBigPic(this)' src='/pics/"+ename+"/' />";dd('bigpicdiv').style.visibility="visible";}}
function getCSVSettings(id)
{var p={};p.ncols=dd("csvncols").value;p.skip=dd("csvskip").value;p.max=dd("csvmax").value;p.gns=makeScrapList("csvgn");p.iconimg=dd("csvicon").value;p.npreview=dd("csvpreview").value;if(p.iconimg=="default")p.iconimg="";for(i=0;i<p.ncols;i++)
if(dd("csvc"+(i+1)).value!="")
p["c"+(i+1)]=dd("csvc"+(i+1)).value;for(i=0;i<5;i++)
{if(dd("csvf"+(i+1)).value=="")continue;p["fn"+(i+1)]=dd("csvf"+(i+1)).value;p["fv"+(i+1)]=dd("csvv"+(i+1)).value;}
var prof="";for(k in p)
{prof+="&"+eu(k)+"="+eu(p[k]);}
return prof;}
function saveCSVSettings(id)
{var prof=getCSVSettings(id);eaq("/geogroups/savecsvprof.php","uploadid="+id+prof,function(resp){se("Settings Saved");},false);}
function publishCSV(id)
{var prof=getCSVSettings(id);dd("contentarea").innerHTML="<span class='button' onclick='configCSV("+id+")'>Back</span>"+"<br/><span class='l3title'>Output</span>"+"<br/><textarea rows='30' style='width:95%;' id='csvpublishresp'>Publishing...</textarea>";function onPopPublish(responsetext)
{dd("csvpublishresp").value=responsetext;}
var url="/geogroups/addcsv.php?u="+eu(username)+"&t="+token+"&resp=html"+"&uploadid="+id+prof;execAjax(url,onPopPublish);}
function msdiv(n,m)
{var o=dd(n);if(!m)m=0;if(o.offsetHeight>(getClientHeight()-m)){o.style.overflow="auto";o.style.height=(getClientHeight()-m)+"px";}}
function showSignIn()
{sw("signindiv");msdiv("signindiv",30);}
function ismulgroup()
{if(sgs.length!=1)return false;var gns=sgs[0].toLowerCase();return(gns=="mygroups"||gns=="my groups"||gns=="publicgroups"||gns=="public groups");}
function isonegroup()
{return(!ismulgroup()&&sgs.length==1);}
var discuss_timer=null;function checkDiscussion(nid)
{if(discuss_timer){window.clearTimeout(discuss_timer);discuss_timer=null;}
var c=(new Date()).getTime();if(show_discuss&&nid>0&&nid>max_discuss_id&&(c-discuss_fetch)>30000)
showDiscussion();}
function showDiscussion()
{if(!isonegroup())return;sw("discussdiv");msdiv("discussdiv",30);show_discuss=true;refreshDiscussion();}
function hideDiscussion()
{hd("discussdiv");show_discuss=false;max_discuss_id=0;discuss_group="";}
var discuss_group="";var max_discuss_id=0;var discuss_fetch=0;function refreshDiscussion(skip)
{if(!skip)skip=0;var gns=sgs[0].toLowerCase();if(!isonegroup())return;discuss_fetch=(new Date()).getTime();eaq("/geogroups/groupmsgs.php","&gn="+eu(gns)+"&skip="+skip+"&only=pending",popDiscussion,false,0,"Please Sign-In To Post Messages");}
function popDiscussion(response)
{var requests=response.data;var total=pnt(response.total);var start=pnt(response.skip);var count=pnt(response.returned);var pages=resultHeader(start,count,total,"Messages");var page_nav=getPageNav(start,count,total,"refreshDiscussion(0)","refreshDiscussion("+((start-15)>=0?(start-15):0)+" )","refreshDiscussion("+(start+count)+" )");discuss_group=response.group;var txt="<div class='cgroupname'>"+response.group+"</div>";txt+="<span class='l3title' style='font-size:11px;cursor:pointer;text-decoration:underline' onclick='tog(\"gmsgdiv\");'>Add Your Message &#187;</span>"+"<div id='gmsgdiv' style='display:none;font-size:11px'> \
  <textarea style='width:80%;height:50px;' id='gmsg' ></textarea><br> \
  <input type='button' value='Submit' onclick='sendGMsg(\""+htmlesc(response.group)+"\")' />(max 500 chars) \
  </div> ";txt+=rth(pages,page_nav,1);var timeoutfunc=htmlesc("refreshDiscussion("+start+" )");var allrows=new Array();for(var i=0;i<requests.length;i++)
{var request=requests[i];if(request.request_id>max_discuss_id)max_discuss_id=request.request_id;var rd=new Date(request.last_modified*1000);var ctime=getShortDate(rd);var crow="";crow+="<tr><td style='border-top: 1px solid #5890e5;' >"+"<span style='float:right;color:gray;font-size:90%' >"+ctime+"</span>"+
showUser(request.sender)+"</td>"+"</tr>";crow+="<tr class='ccommentsblock'>"+"<td style='padding-left:3px;padding-bottom:5px;border-bottom: 1px solid #dddddd;' colspan='2' >"+request.msg+"<br>";if(latlngValid(request.lat,request.lng))
{crow+="<span class='cbaction' onclick='msgMap("+i+")'>See On Map &#187;</span><br/>"}
if(request.addr!="")
{crow+="<span class='cpostl'>Address: </span><span style='color:grey'>"+request.addr+"</span><br/>";}
crow+="</td>";crow+="</tr>";allrows.push(crow);}
txt+=allrows.join("\n");txt+=rtf(count,page_nav,1);dd("discusscontentdiv").innerHTML=txt;resizeWidgets();}
function saveWidgetConfig()
{var wids=["discussdiv","historydiv","downloaddiv"];var c="";for(i=0;i<wids.length;i++)
{var o=dd(wids[i]);if(!o)continue;var pos=findPos(o);if(c!="")c+="#";c+=wids[i]+"|"+pos.left+"|"+pos.top+"|"+o.offsetWidth+"|"+o.offsetHeight;}
set_cookie("wids",c,2050,12,31,"/");}
function loadWidgetConfig()
{var c=get_cookie("wids");var w=c.split("#");for(i=0;i<w.length;i++)
{var k=w[i].split("|");var o=dd(k[0]);if(o&&!(k[1]==0&&k[2]==0&&k[3]==0&&k[4]==0))
{with(o.style){left=k[1]+"px";top=k[2]+"px";width=k[3]+"px";height=k[4]+"px";}}}
resizeWidgets();}
function sendGMsg(gname)
{var msg=dd("gmsg").value.stripHTML();if(msg=="")
{serror("Cannot send a blank message");return;}
else if(msg.length>500)
{serror("Message is too long: "+msg.length+" chars, (max 500 allowed)");return;}
eaq("/geogroups/sendmsg.php","gn="+eu(gname)+"&msg="+eu(msg),popSentGMsg,false);}
function popSentGMsg(response)
{refreshDiscussion();}
function resizeWidgets()
{var childs=["discusscontentdiv","historycontentdiv"];for(i=0;i<childs.length;i++)
{var o=dd(childs[i]);if(o)
{var nh=(pnt(o.parentNode.style.height)-o.offsetTop);o.style.height=nh+"px";}}}
function getHDate(d)
{return months[d.getMonth()]+"-"+pad(d.getDate())+"-"+d.getFullYear()+" "+pad(d.getHours())+":"+pad(d.getMinutes());}
function getUHDate(ut)
{return getHDate(new Date(ut*1000));}
function hideHistory(){hd("historydiv");}
function showHistory(uname)
{if(typeof uname!="undefined")dd("huser").value=uname;var d=new Date();if(dd('hstart').value=="")
dd('hstart').value=getHDate(new Date(d.getTime()-86400000));sw("historydiv");}
function getHistory(uname,hstart,hend,method)
{if(typeof method=="undefined"||!method)method=0;dd('huser').value=uname;dd('hstart').value=getUHDate(hstart);dd('hend').value=getUHDate(hend);fhist(method);}
function hideDownload(){hd("downloaddiv");}
function showDownload()
{var d=new Date();var pstart=dd('poststart').value;if(pstart!="")
dd('dstart').value=pstart;else
dd('dstart').value=getHDate(new Date(d.getTime()-86400000));var dend=dd('dend').value;var pend=dd('postend').value;if(pend!="")
dd('dend').value=pend;else
pend="now";sw("downloaddiv");}
function getDownload(dstart,dend)
{dd('dstart').value=getUHDate(hstart);dd('dend').value=getUHDate(hend);fdownload();}
