var timeoutd=undefined;
var poly;
var map2;
var POI=new Array(0);
$("#BOmenu li ul li").hover(function () {$(this).addClass("ui-state-hightlight");},function () {$(this).removeClass("ui-state-highlight");});
function getStandardTimezoneOffset() {
/*
  var date = new Date();
  var msec = date.getTime();
  var offset = 0;
  for (var j = 0; j < 24; ++j) {
    date.setTime(msec + j * 7884000000);
    offset = Math.max(offset, date.getTimezoneOffset());
  }
	alert(offset);
  return offset;
*/
   var rightNow = new Date();
   var date1 = new Date(rightNow.getFullYear(), 0, 1, 0, 0, 0, 0);
   var date2 = new Date(rightNow.getFullYear(), 6, 1, 0, 0, 0, 0);
   var temp = date1.toGMTString();
   var date3 = new Date(temp.substring(0, temp.lastIndexOf(" ")-1));
   var temp = date2.toGMTString();
   var date4 = new Date(temp.substring(0, temp.lastIndexOf(" ")-1));
   var hoursDiffStdTime = (date1 - date3) / (1000 * 60 * 60);
   var hoursDiffDaylightTime = (date2 - date4) / (1000 * 60 * 60);
	//if(hoursDiffStdTime==0) {hoursDiffStdTime=1;}
	return -1*60*hoursDiffStdTime;
	/*
   if (hoursDiffDaylightTime == hoursDiffStdTime) {
      alert("Time zone is GMT " + hoursDiffStdTime + ".\nDaylight Saving Time is NOT observed here.");
   } else {
      alert("Time zone is GMT " + hoursDiffStdTime + ".\nDaylight Saving Time is observed here.");
   }
	*/
} 
function errmsg(msg) {
        $("#dialog").dialog('close');
        $("#dialog").dialog('destroy');
        $("#dialog").html(msg);
	$(".button").hover(function () { $(this).addClass("ui-state-hover");    },function () { $(this).removeClass("ui-state-hover");  });
	var diagtop=$("body").scrollTop(); 
        $("#dialog").dialog({ buttons: { "Ok": function() { $(this).dialog("close"); } },title: 'Error', modal:false });
        $("#dialog").dialog('open');
	$("body").scrollTop(diagtop);
}
function zoomtofit(mymap) {
        var rpath=poly.getPath();
        if(rpath.length>0) {
        var latl=0;var longr=0;var latr=0;var longl=0;
        rpath.forEach(function (ele,id) {
                if(latl==0) {latl=ele.lat();latr=ele.lat();longr=ele.lng();longl=ele.lng();}
                if(ele.lat() < latl) {latl=ele.lat();}
                if(ele.lat() > latr) {latr=ele.lat();}
                if(ele.lng() < longl) {longl=ele.lng();}
                if(ele.lng() > longr) {longr=ele.lng();}
        });
        var sw=new google.maps.LatLng(latl,longr);
        var nw=new google.maps.LatLng(latr,longl);
        var boun=new google.maps.LatLngBounds(nw,sw);
	mymap.fitBounds(boun);
        }

}
function hrpreview(stid,div) {
                $.ajaxq("qu",{type:"POST",url:"ajax",data:"ajax=11&stid=" + stid + '&r=' + Math.floor(Math.random()*1000),success: function(msg) {
                        $("#" + div).html(msg + "<div id=hrchart" + stid + " style='margin:15px;width:350px;height:300px;'></div><center><button class='closeit'>Hide Chart</button>");
			$(".closeit").button();
			$(".closeit").unbind('click');
			$(".closeit").click(function () {$(this).parent().parent().html('');});
	
                        function showTooltip(x, y, contents) {
                        $('<div id="tooltip" class="ui-widget ui-widget-header ui-corner-all" >' + contents + '</div>').css( {
                                position: 'absolute', display: 'none', top: y + 5, left: x + 5, border: '1px solid #fdd', padding: '2px', opacity: 0.80, zIndex: 2000
                                }).appendTo("body").fadeIn(200);
                        }
                        var options = {
                                lines: {show: true},
                                points: {show: false},
                                legend: { noColumns: 2},
                                xaxis: { tickDecimals: 0,mode:"time" },
                                grid: { hoverable: true },
                                yaxis: { min: 60 },
                                selection: { mode: "x" }
                        };
                        var chart=$('#hrchart' + stid);
                        chart.bind("plothover", function (event,pos,item) {
                        if (item) {
                                if (previousPoint != item.datapoint) {
                                        previousPoint = item.datapoint;

                                        $("#tooltip").remove();
                                        var x = item.datapoint[0].toFixed(2),
                                        y = item.datapoint[1].toFixed(2);

                                        showTooltip(item.pageX, item.pageY,
                                        parseInt(y) + " BPM");
                                }
                        }
                        else {
                                $("#tooltip").remove();
                                previousPoint = null;
                        }
                        });

                        var previousPoint = null;
                        chart.bind("plotselected", function (event, ranges) {
                        $("#selection").text(ranges.xaxis.from.toFixed(1) + " to " + ranges.xaxis.to.toFixed(1));

                        var zoom = true;
                        if (zoom)
                                plot = $.plot(chart, data,
                                $.extend(true, {}, options, {
                                xaxis: { min: ranges.xaxis.from, max: ranges.xaxis.to }
                                  }));
                        });
                        var data=[{ label: "BPM", data: eval($('#hrdata').html()) }];
                        $.plot(chart, data, options);
                }});
}
function routepreviewinpop(rid,wid,div) {
	$("#" + div).html('<div id="themapprev' + wid + '" style="width:400px;height:400px;"><br><br><center><div class="ajax"></div></div><br><center><button wid="' + wid + '" rid="' + rid + '" class="raceroutedet racebutton">View Details</button>&nbsp;<button class="racebutton hideview">Hide Route</button></center>');
	$('.racebutton').button();
	$('.hideview').unbind('click');
	$('.hideview').click(function () { $(this).parent().parent().html('');});
	$('.raceroutedet').unbind('click');
	$('.raceroutedet').click(function () {
		if($(this).attr('wid') != '') {
			location.href='/training/routes?wid=' + wid
		}
		else {
			location.href='/training/routes?rid=' + rid
		}
	});
        $.ajaxq("qu",{type:"POST",url:"ajax",data:"ajax=153&asroute=" + 1 + "&rid=" + rid + "&wid=" + wid + "&r=" + Math.floor(Math.random()*1000),dataType:"json",success: function(msg) {
                var temppoint=new google.maps.LatLng(0,0);
                var image = new google.maps.MarkerImage('/images/mapicons/start.png',new google.maps.Size(27, 27),new google.maps.Point(0,0),new google.maps.Point(15, 20));
                var shadow = new google.maps.MarkerImage('/images/mapicons/startshadow.png',new google.maps.Size(59, 32),new google.maps.Point(0,0),new google.maps.Point(13, 22));
                var starticon=new google.maps.Marker({
                        position: temppoint,
                        icon: image,
                        shadow: shadow
                });
                image = new google.maps.MarkerImage('/images/mapicons/bluepush.png',new google.maps.Size(32, 32),new google.maps.Point(0,0),new google.maps.Point(9, 32));
                shadow = new google.maps.MarkerImage('/images/mapicons/shadowpush.png',new google.maps.Size(59, 32),new google.maps.Point(0,0),new google.maps.Point(9, 32));
                var endicon=new google.maps.Marker({
                        position: temppoint,
                        icon: image,
                        shadow: shadow
                });
                image = new google.maps.MarkerImage('/images/mapicons/arrow.png',new google.maps.Size(39, 34),new google.maps.Point(0,0),new google.maps.Point(12, 32));
                shadow = new google.maps.MarkerImage('/images/mapicons/arrowshadow.png',new google.maps.Size(39, 34),new google.maps.Point(0,0),new google.maps.Point(12, 32));
                var pointericon=new google.maps.Marker({
                        map: map,
                        position: temppoint,
                        icon: image,
                        shadow: shadow
                });
                var startloc=new google.maps.LatLng(msg.lati,msg.longi);
		var mycursor="move";
                var optsions= { zoom:14,center:startloc,mapTypeId: google.maps.MapTypeId.HYBRID,mapTypeControl:false,draggableCursor: mycursor,draggingCursor: mycursor,navigationControl:false };
                map2=new google.maps.Map(document.getElementById('themapprev' + wid),optsions);
		                routePoints=new google.maps.MVCArray();
                poly = new google.maps.Polyline({path:routePoints,strokeColor:'#ff0000',strokeOpacity:1.0,strokeWeight:2});
                poly.setMap(map2);
                if(msg.poi) {
                        var tempPOI=eval(msg.poi);
                        for(var o=0;o<tempPOI.length;o++) {
                                createpoi(tempPOI[o][0],tempPOI[o][1],tempPOI[o][2],tempPOI[o][3],map2);
                        }
                }
                        var path = msg.routepoints.split(",");
                        for (var i = 0; i < path.length / 2; i++) {
                                var rpath = poly.getPath();
                                var newpoint=new google.maps.LatLng(path[2*i], path[2*i + 1]);
                                rpath.insertAt(routePoints.length,newpoint);
                                if(i==0) {
                                        starticon.setPosition(newpoint);
                                        starticon.setMap(map2);
                                }
                        }
			zoomtofit(map2);

	}});
	if(rid != '') {var extra='rid=' + rid} else {var extra='wid=' + wid;}
}
function routepreview(rid,wid) {
        $("#dialog").dialog('destroy');
	$("#dialog").html('<div id="themapprev" style="width:700px;height:400px;"><br><br><center><div class="ajax"></div></center></div>');
        $.ajaxq("qu",{type:"POST",url:"ajax",data:"ajax=153&asroute=" + 1 + "&rid=" + rid + "&wid=" + wid + "&r=" + Math.floor(Math.random()*1000),dataType:"json",success: function(msg) {
                var temppoint=new google.maps.LatLng(0,0);
                var image = new google.maps.MarkerImage('/images/mapicons/start.png',new google.maps.Size(27, 27),new google.maps.Point(0,0),new google.maps.Point(15, 20));
                var shadow = new google.maps.MarkerImage('/images/mapicons/startshadow.png',new google.maps.Size(59, 32),new google.maps.Point(0,0),new google.maps.Point(13, 22));
                var starticon=new google.maps.Marker({
                        position: temppoint,
                        icon: image,
                        shadow: shadow
                });
                image = new google.maps.MarkerImage('/images/mapicons/bluepush.png',new google.maps.Size(32, 32),new google.maps.Point(0,0),new google.maps.Point(9, 32));
                shadow = new google.maps.MarkerImage('/images/mapicons/shadowpush.png',new google.maps.Size(59, 32),new google.maps.Point(0,0),new google.maps.Point(9, 32));
                var endicon=new google.maps.Marker({
                        position: temppoint,
                        icon: image,
                        shadow: shadow
                });
                image = new google.maps.MarkerImage('/images/mapicons/arrow.png',new google.maps.Size(39, 34),new google.maps.Point(0,0),new google.maps.Point(12, 32));
                shadow = new google.maps.MarkerImage('/images/mapicons/arrowshadow.png',new google.maps.Size(39, 34),new google.maps.Point(0,0),new google.maps.Point(12, 32));
                var pointericon=new google.maps.Marker({
                        map: map,
                        position: temppoint,
                        icon: image,
                        shadow: shadow
                });
                var startloc=new google.maps.LatLng(msg.lati,msg.longi);
		var mycursor="move";
                var optsions= { zoom:14,center:startloc,mapTypeId: google.maps.MapTypeId.HYBRID,mapTypeControl:false,draggableCursor: mycursor,draggingCursor: mycursor,navigationControl:false };
                map2=new google.maps.Map(document.getElementById('themapprev'),optsions);
		                routePoints=new google.maps.MVCArray();
                poly = new google.maps.Polyline({path:routePoints,strokeColor:'#ff0000',strokeOpacity:1.0,strokeWeight:2});
                poly.setMap(map2);
                if(msg.poi) {
                        var tempPOI=eval(msg.poi);
                        for(var o=0;o<tempPOI.length;o++) {
                                createpoi(tempPOI[o][0],tempPOI[o][1],tempPOI[o][2],tempPOI[o][3],map2);
                        }
                }
                        var path = msg.routepoints.split(",");
                        for (var i = 0; i < path.length / 2; i++) {
                                var rpath = poly.getPath();
                                var newpoint=new google.maps.LatLng(path[2*i], path[2*i + 1]);
                                rpath.insertAt(routePoints.length,newpoint);
                                if(i==0) {
                                        starticon.setPosition(newpoint);
                                        starticon.setMap(map2);
                                }
                        }
			zoomtofit(map2);

	}});
	if(rid != '') {var extra='rid=' + rid} else {var extra='wid=' + wid;}
	var diagtop=$("body").scrollTop(); 
        $("#dialog").dialog({ buttons: { "Done": function() { $(this).dialog("close"); },"View Details": function () {location.href="/training/routes?" + extra;} },width:720,title: 'Route Preview', modal:false });
        $("#dialog").dialog('open');
	$("body").scrollTop(diagtop);
}
function createpoi(poitype,poilat,poilng,poicontent,mymap) {
		//var POI=new Array(4);
                var poilatlng=new google.maps.LatLng(poilat,poilng);
                if(poitype==1) {
                        var image = new google.maps.MarkerImage('/images/mapicons/info.png');
                        var poimarker=new google.maps.Marker({
                                map: map,
                                position: poilatlng,
                                icon: image,
                                draggable: true,
                                cursor: 'move'
                        });
                        var poidisp=poicontent;
                }
                if(poitype==2) {
                        var image = new google.maps.MarkerImage('/images/mapicons/video.png');
                        var poimarker=new google.maps.Marker({
                                map: map,
                                position: poilatlng,
                                icon: image,
                                draggable: true,
                                cursor: 'move'
                        });
                        var templink=poicontent.replace("watch?v=","v/");
                        //var poidisp="<object width=\"290\" ><param name=\"movie\" value=\"" + templink + "\"></param><param name=\"allowFullScreen\" value=\"false\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"" + templink + "\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" allowfullscreen=\"false\" width=\"290\" ></embed>";                
                        var poidisp="<object width=\"290\" ><param name=\"movie\" value=\"" + templink + "&autoplay=1&rel=0\"></param><param name=\"wmode\" value=\"transparent\"><embed src=\"" + templink + "&autoplay=1&rel=0\" type=\"application/x-shockwave-flash\" width=\"290\" wmode=\"transparent\"></embed>";                
			}                
			if(poitype==3) {
                        var image = new google.maps.MarkerImage('/images/mapicons/photo.png');
                        var poimarker=new google.maps.Marker({
                                map: map,
                                position: poilatlng,
                                icon: image,
                                draggable: true,
                                cursor: 'move'
                        });
                        var poidisp='<img src=/images/poiimage/' + poicontent + '.png>';
                }
                var poiid=POI.length;
                POI.push(new Array(4));                POI[poiid][0]=poilatlng;
                POI[poiid][1]=poicontent;
                POI[poiid][2]=poimarker;
                if($("#userid").html()==$("#ownerid").html()) {
                        var poimarkerlistener=google.maps.event.addListener(poimarker,'click',function (e) {new InfoBox({latlng: poilatlng, map: mymap, offsethor:5,content:'<table width=300 class="ui-widget "><tr class="ui-widget ui-widget-header ui-corner-all" ><td width=100% align=right><table ><tr  poiid="' + poiid + '"><td style="height:20px;width:18px;"><div class="hovericon"><div class="editpoi ui-icon ui-icon-pencil " title="Edit POI"></div></div></td><td style="height:20px;width:18px;"><div class="hovericon"><div class="ui-icon deletepoi ui-icon-circle-minus" title="Delete POI"></div></div></td><td style="height:20px;width:18px;"><div class="hovericon"><div title="Close Info Window" class="ui-icon closepoi ui-icon-circle-close "></div></div></td></tr></table></td></tr><tr><td>' + poidisp + '</td></tr></table>'});});                
		}                
		else {                        
			var poimarkerlistener=google.maps.event.addListener(poimarker,'click',function (e) {new InfoBox({latlng: poilatlng, map: mymap, offsethor:5,content:'<table width=300 class="ui-widget "><tr class="ui-widget ui-widget-header ui-corner-all" ><td width=100% align=right><table ><tr  poiid="' + poiid + '"><td style="height:20px;width:18px;"><td style="height:20px;width:18px;"><div class="hovericon"><div title="Close Info Window" class="ui-icon closepoi ui-icon-circle-close "></div></div></td></tr></table></td></tr><tr><td>' + poidisp + '</td></tr></table>'});});
                }                
		POI[poiid][3]=poimarkerlistener;
                POI[poiid][4]=poitype;
                google.maps.event.addListener(poimarker,'dragend',function () {
                        POI[poiid][0]=this.getPosition();
                        google.maps.event.removeListener(POI[poiid][3])
                        if(POI[poiid][4]==1) {
                                var poidisp=POI[poiid][1];
                        }
                        if(poitype==2) {
                                var templink=POI[poiid][1].replace("watch?v=","v/");
                                var poidisp="<object width=\"290\" ><param name=\"movie\" value=\"" + templink + "\"></param><param name=\"allowFullScreen\" value=\"false\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"" + templ
ink + "\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" allowfullscreen=\"false\" width=\"290\" ></embed>";
                        }

                        if(poitype==3) {
                                poicontent=$("#response").html();
                                var poidisp='<img src=/images/poiimage/' + poicontent + '.png>';
                        }
                        if($("#userid").html()==$("#ownerid").html()) {
                                POI[poiid][3]=google.maps.event.addListener(POI[poiid][2],'click',function (e) {new InfoBox({latlng: POI[poiid][0], map: mymap, offsethor:5,content:'<table width=300 class="ui-widget "><tr class="ui-widget ui-widget-header ui-corner-all" ><td width=100% align=right><table ><tr  poiid="' + poiid + '"><td style="height:20px;width:18px;"><div class="hovericon"><div class="editpoi ui-icon ui-icon-pencil " title="Edit POI"></div></div></td><td style="height:20px;width:18px;"><div class="hovericon"><div class="ui-icon deletepoi ui-icon-circle-minus" title="Delete POI"></div></div></td><td style="height:20px;width:18px;"><div class="hovericon"><div title="Close Info Window" class="ui-icon closepoi ui-icon-circle-close "></div></div></td></tr></table></td></tr><tr><td>' + poidisp + '</td></tr></table>'});});
                        }
                        else {
                                POI[poiid][3]=google.maps.event.addListener(POI[poiid][2],'click',function (e) {new InfoBox({latlng: POI[poiid][0], map: mymap, offsethor:5,content:'<table width=300 class="ui-widget "><tr class="ui-widget ui-widget-header ui-corner-all" ><td width=100% align=right><table ><tr  poiid="' + poiid + '"><td style="height:20px;width:18px;"><td style="height:20px;width:18px;"><div class="hovericon"><div title="Close Info Window" class="ui-icon closepoi ui-icon-circle-close "></div></div></td></tr></table></td></tr><tr><td>' + poidisp + '</td></tr></table>'});});
                        }
                });
}
function searchpublic() {
	if(timeoutd!=undefined) { clearTimeout(timeoutd);}
	timeoutd=setTimeout(function() {
               	$("#guestopt2").html('<br><br><center><div class="ajax"></div></center>');;
        	$.ajaxq("qu",{type:"POST",url:"ajax",data:"ajax=2&guest=" + $("#searchpublic").attr('value') + '&r=' + Math.floor(Math.random()*1000),success: function (msg) {
                	$("#guestopt2").html(msg);
			$(".button").hover(function () { $(this).addClass("ui-state-hover");    },function () { $(this).removeClass("ui-state-hover");  });
        	}});
	}, 400);
}
function loadbox() {
        $(".freq").unbind('click');
        $(".freq").click(function () {
		var tuserid=$(this).parent().parent().parent().parent().parent().attr("uid");
                if($(this).hasClass("cancel") || $(this).hasClass("stop") || $(this).hasClass("end")) {
			var confirmtext="Are you sure you want to cancel this friend request?";
			if($(this).hasClass("stop")) {confirmtext="Are you sure you want to stop following this athlete?";}
			if($(this).hasClass("end")) {confirmtext="Are you sure you want to end this friendship?";}
                        $("#dialog").dialog('destroy');
			$("#dialog").html(confirmtext);
			var diagtop=$("body").scrollTop(); 
                        $("#dialog").dialog({buttons: {"Cancel" : function () { $(this).dialog("close");},"Yes, Do It!": function () {
				$(this).dialog("close");
                        	$(".userid" + tuserid).html('<center><br><div class=ajax>&nbsp;</div></center>');
                        	$.ajaxq("qu",{type:"POST",url:"ajax",data:"ajax=99&req=0&fid=" + tuserid + "&r=" + Math.floor(Math.random()*1000),success: function(msg) {
                                	$(".userid" + tuserid).html(msg);
					$(".button").hover(function () { $(this).addClass("ui-state-hover");    },function () { $(this).removeClass("ui-state-hover");  });
					if($('div').is('#friendpage')) {
						if(confirmtext=="Are you sure you want to cancel this friend request?") {loadrequests();}
						if(confirmtext=="Are you sure you want to stop following this athlete?") {loadfollowing();}
						if(confirmtext=="Are you sure you want to end this friendship?") {loadmyfriends();}
					}
                        	}});
                        }},title: 'Confirmation', modal:false });
                        $("#dialog").dialog('open');$("#dialog").dialog('option','width',parseInt($("#dialog")[0].scrollWidth)+50); $("#dialog").dialog('option','position','center');
			$("body").scrollTop(diagtop);
                }
                if($(this).hasClass("follow")) {
                        $(".userid" + tuserid).html('<center><br><div class=ajax>&nbsp;</div></center>');
                        $.ajaxq("qu",{type:"POST",url:"ajax",data:"ajax=99&req=1&fid=" + tuserid + "&r=" + Math.floor(Math.random()*1000),success: function(msg) {
                                $(".userid" + tuserid).html(msg);
				$(".button").hover(function () { $(this).addClass("ui-state-hover");    },function () { $(this).removeClass("ui-state-hover");  });
				if($('div').is('#friendpage')) {
					loadfollowing();
					$('#friendstructure').accordion('activate',4);
				}
                        }});
                }
                if($(this).hasClass("approve")) {
                        $(this).dialog("close");
                        $(".userid" + tuserid).html('<center><br><div class=ajax>&nbsp;</div></center>');
                        $.ajaxq("qu",{type:"POST",url:"ajax",data:"ajax=99&req=3&fid=" + tuserid + "&r=" + Math.floor(Math.random()*1000),success: function(msg) {
                                 $(".userid" + tuserid).html(msg);
				$(".button").hover(function () { $(this).addClass("ui-state-hover");    },function () { $(this).removeClass("ui-state-hover");  });
				if($('div').is('#friendpage')) {
					loadrequestsforme();
					loadmyfriends();
					$('#friendstructure').accordion('activate',0);
				}
                        }});
		}
                if($(this).hasClass("send")) {
                        $("#dialog").dialog('destroy');
                        $("#dialog").html("Request Message&nbsp;&nbsp;<br><textarea id=reqmes cols=35 class='ui-widget ui-widget-content ui-corner-all'>I'd like to be friends</textarea><br><br>");
                        $("#reqmes").textpandable();
			var diagtop=$("body").scrollTop(); 
                        $("#dialog").dialog({buttons: {"Cancel" : function () { $(this).dialog("close");},"Send Request": function () {
                                $(this).dialog("close");
                                $(".userid" + tuserid).html('<center><br><div class=ajax>&nbsp;</div></center>');
                                $.ajaxq("qu",{type:"POST",url:"ajax",data:"ajax=99&req=2&fid=" + tuserid + "&mes=" + escape($("#reqmes").val()) + "&r=" + Math.floor(Math.random()*1000),success: function(msg) {
                                         $(".userid" + tuserid).html(msg);
					$(".button").hover(function () { $(this).addClass("ui-state-hover");    },function () { $(this).removeClass("ui-state-hover");  });
					if($('div').is('#friendpage')) {
						loadrequests();
						$('#friendstructure').accordion('activate',1);
					}
                                }});
                        }},title: 'Friend Request', modal:false});
                        $("#dialog").dialog('open');$("#dialog").dialog('option','width',parseInt($("#dialog")[0].scrollWidth)+50); $("#dialog").dialog('option','position','center');
			$("body").scrollTop(diagtop);
                }
        });
}


