
var members = new Array();
var regions = new Array();
var species = new Array();
var colors = ['#DC0B17','#AC35AC','#008EFF','#008200','#555555','#CCA300','#8D6F4E','#00B692','#3A5C16','#DA5B1F'];
var map;
var currentid = 1;

function validateonsubmit(){
	var myForm=document.getElementById("form1");
	var SS= Spry.Widget.Form.validate(myForm);
	if(SS==true){
		myForm.submit();
	}
}

function forgotpassword() {
	var myemail=document.getElementById("trackeremail");
	//alert(myemail.value); 
	var myform=document.getElementById("form2");
	if (myemail.value) {
		myform.email.value = myemail.value;
	}
	myform.submit();	
}

function setNewMap(latlng,zm) {
	$('#map_canvas').css({"height":($(window).height()-45)+"px"});

	var myOptions = {
		zoom:zm,
		center: latlng,
		disableDefaultUI: true,
		mapTypeId: google.maps.MapTypeId.TERRAIN,
		mapTypeControl: true,
		panControl: true,
		panControlOptions: {
			position: google.maps.ControlPosition.LEFT_CENTER  
		},
		zoomControl: true,
		zoomControlOptions: {
			position: google.maps.ControlPosition.LEFT_CENTER
		},
		scaleControl: true,
		scaleControlOptions: {
			position: google.maps.ControlPosition.LEFT_CENTER  
		},
		backgroundColor:'#98B3CC'
	}
	map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
	
	
	//style: google.maps.ZoomControlStyle.LARGE,
}

function showvideo(url) {
	$( "#dialog:ui-dialog" ).dialog( "destroy" );
	$( "#dialog-message" ).dialog({
		modal: true,
		minWidth: 565,
		minHeight: 405,
		buttons: {
			Ok: function() {
				$( this ).dialog( "close" );
				$("#jwplayervideo").html('');
			}
		}
	});
	var urls = unescape(url).split("+").join(" ");
	$("#jwplayervideo").css({"display":"block"});
	$("#jwplayervideo").html(urls);
}

function infomember(__id) {
	lightboxinfo(__id);
}

function initialize() {
	$("#sponsorimage").attr('src',sicon);
	$("#sponsorimage").attr('alt',sname);
	
	if (id_region != -1) {
		for (var ii=0; ii < regions.length; ii++) {
			if (regions[ii].id == id_region) {
				loadmap(ii);
				break;
			}
		}
	} else {
		setNewMap(new google.maps.LatLng(0,0),3);
		var bounds = new google.maps.LatLngBounds();
	
		$(window).resize(function() {
		  $('#map_canvas').css({"height":($(window).height()-45)+"px"});
		});
	
		for (var ii  = 0; ii < regions.length; ii++) {
			
			var myLatlng = new google.maps.LatLng(regions[ii].lat,regions[ii].lng);
			var image = new google.maps.MarkerImage(regions[ii].icon,
			// This marker is 20 pixels wide by 32 pixels tall.
			new google.maps.Size(80, 93),
			// The origin for this image is 0,0.
			new google.maps.Point(0,0),
			// The anchor for this image is the base of the flagpole at 0,32.
			new google.maps.Point(40,93));
				
			regions[ii].marker = new google.maps.Marker({
			  position: myLatlng, 
			  map: map, 
			  icon: image,
			  title:regions[ii].name,
			  zIndex:ii,
			  ii:ii
			});
			
			bounds.extend(myLatlng);
			google.maps.event.addListener(regions[ii].marker, 'click',function ()  {
				loadmap(this.ii);
			});
		}
		map.fitBounds (bounds);
	}
}

function loadmap(index) {
	
	if (regions[index].sponsor =="") {
		sicon = species[0].sicon;
		sdesc = species[0].sdesc;
		sname = species[0].sponsor;	
	} else {
		sicon = regions[index].sicon;
		sname = regions[index].sponsor;	
		sdesc = regions[index].sdesc;
	}
/*	if (console != undefined) 
		console.log("region id:"+regions[index].id);*/
	$("#sponsorimage").attr('src',sicon);
	$("#sponsorimage").attr('alt',sname);

	$('#legend').css('display','inline');
	for (var ii = 0; ii < regions.length; ii++) {
		if (regions[ii].marker != undefined) {
			regions[ii].marker.setMap(null);
		}
	}
	for (var ii = 0; ii < members.length; ii++) {
		members[ii].dot.setMap(null);
		for (var jj = 0; jj < members[ii].placemarks.length; jj++) {
			members[ii].placemarks[jj].dot.setMap(null);
		}
	}
	var myLatlng = new google.maps.LatLng(regions[index].lat,regions[index].lng);
	setNewMap(myLatlng,regions[index].zoom);

	//console.log("over:'"+regions[index].overlay+"'");
	if (regions[index].overlay != "") {
		var img_overlay = 'url('+regions[index].overlay+')';
		$(".imageoverlay").css({'background-image':img_overlay,"display":"block"}); //;.append('<img src="' + regions[index].overlay+ '" height="120" width="122" />');
		$('.imageoverlay').click(function (e) {
			$("body")
			.append('<div class="overlay"></div><div id="container"><div id="titleheader"><span class="closebutton"><img src="images/closexi.png" onClick="closedialog()"></span></div><div id="contentcontainerlarge"><img src="' + regions[index].overlay + '" width="512" height="512"></div></div>');
		
			$("#container").css({
				"top":        "50%",
				"left":       "50%",
				"width":      512,
				"height":     547,
				"margin-top": -256,
				"margin-left":-256,
				"padding":"3px",
				"background":"white"
			})
			$("#container").animate({"opacity":"1"}, 400, "linear");
			$(".overlay").animate({"opacity":"0.6"}, 200, "linear");
			removeOverlay();
		});
		
	} else {
		$(".imageoverlay").css("display","none");
	}


	$('#tabs-1').load('ajax/memberlistlegend.php?r='+regions[index].id+'&sn='+speciesname(index)+' #parse');
	
	// TODO: should blogs be regional, species or member specific?
	$('#tabs-2').rssfeed(regions[index].blog, {
		limit: 5,
		header: false,
		date: true,
		snippet:true,
		linktarget:'_blank'
	});
	$.getJSON('ajax/memberlistmap.php?r='+regions[index].id, function(data) {  
	   members = [];
		$.each(data, function(key, val) {
		  if (typeof(val) == 'object') {
			//console.log(val.region+"/"+regions[index].id);
			var member = {};
			member.visible = true;
			member.count = val.count;
			if (val.count > 0) {
				$.each(val,function(k1,v1) {
					if (typeof(v1) == 'object') {
						var placemarks = [];
						$.each(v1,function(k2,v2) {
							var placemark = {};
							if (typeof(v2) == 'object') {
								$.each(v2,function(k3,v3) {
									// placemarks
									placemark[k3] = v3;
								});
							}
							placemarks.push(placemark);
						});
						member.placemarks = placemarks;
					} else {
						// member
						//console.log(k1+":"+v1);
						member[k1] = v1;
					}
				});
			}
			members.push(member);
		  }
	  });
	  
		drawpoly();
	}); 
}


function drawinfo(aa,bb) {
	//var ttt = new Date(Date.parse(members[aa].placemarks[bb].date));
	var ttt = members[aa].placemarks[bb].date;
	var dotlatlng = new google.maps.LatLng(members[aa].placemarks[bb].lat,members[aa].placemarks[bb].lng);
	var dis = 0;
	if (members[aa].placemarks[bb-1] != undefined) {
		dis = distance(members[aa].placemarks[bb], members[aa].placemarks[bb-1]);
	}
	
	$('.infobox').parent().parent().remove();
	var pmlen = members[aa].placemarks.length; 
	if (bb >0) {
		var html = '';
		html += '<div class="infobox">';
		html += '<div class="infoboxcontent">';
		html += '<div id="memberimage"><img id="mimg" src="images/s_bear.png"></div>';
		html += '<div id="membercontent"><b>' + members[aa].name + '</b><br>';
		//html += 'Last Tracked:' + ttt.toDateString().substring(4) + '<br>';
		html += 'Last Tracked:' + ttt + '<br>';
		html += 'Distance:' + dis + ' km</div>';
		html += '</div></div>';
		var infobox = new InfoBox({latlng:dotlatlng, map:map, content:html,offsetHorizontal:-109, offsetVertical:-87,width:218,height:87});
	} else {
		lightboxinfo(members[aa].id);
	}
}

function lightboxinfo(_uid) {
	$("body")
		.append('<div class="overlay"></div><div id="container"></div>')
		.css({"overflow-y":"hidden"});
		$('#container').load('ajax/memberdetail.php?uid='+_uid+' #lbtabs',function() {
			var imgWidth = 630; // $(".container img").width();
			var imgHeight = 360; //$(".container img").height();
			$("#container")
				.css({
					"top":        "50%",
					"left":       "50%",
					"width":      imgWidth,
					"height":     imgHeight,
					"margin-top": -(imgHeight/2),
					"margin-left":-(imgWidth/2),
					"padding":"0px"
				})
				 //to position it in the middle
			.animate({"opacity":"1"}, 400, "linear");
			$('#lbtabs').tabs();
			if ($('#blogenabled').val() != '0') {
				$('#lbtabs-2').rssfeed($('#blogaddress').val(), {
					limit: 5,
					header: false,
					date: true,
					snippet:true,
					linktarget:'_blank'
				});
			}
			$('#picture_navigation').css("margin-left",300 - ($("#pcount").val()*20)-40);
			$(".picture_nav").click(function(e){
				$(".picture_group").css("display","none");
				$(".picture_nav").css("background","none");
				$("#p"+ e.target.id).css("display","block");
				$("#"+ e.target.id).css("background","#c9dadf");
				currentid = parseInt(e.target.id.substring(1));
			});
			$("#pp1").css("display","block");
			$("#p1").css("display","block");
			$("#p1").css("background","#c9dadf");
			$(".picture_nav_buttons").click(function(e){
				var totals = parseInt($('.picture_navigation').attr('id'));
				if (currentid == undefined) {
					currentid = 1;
				}
				//console.log("clicked:"+e.currentTarget.id+" currentid:"+currentid+" total:"+totals);
				if (e.currentTarget.id == 'pa') {
					currentid--;
					if (currentid < 1) {
						currentid = totals;
					}
				} else {
					currentid++;
					if (currentid > totals) {
						currentid = 1;
					}
				}
				$("#p"+ currentid).click();
			});
			$('#lbtabs').bind('tabsselect', function(event, ui) {
				//console.log(ui.panel.id);
				var iw = 630; // $(".container img").width();
				var ih = 360; //$(".container img").height();
				
				if (ui.panel.id == 'lbtabs-3') {
					
				} else if (ui.panel.id == 'lbtabs-4') {
					ih = 440;
				} else if (ui.panel.id == 'lbtabs-5') {
					iw = 820;
					ih = 550;
					
					$("#FlashID").css({"visibility":"visible"});
				}
				/*	$(this).css("width","620");
					$(ui.panel).css("width","620");
					$(ui.panel).css("height","350");
				} else if (ui.panel.id == 'lbtabs-4') {
					$(this).css("width","620");
					$(ui.panel).css("width","620");
					$(ui.panel).css("height","420");
				} else if (ui.panel.id == 'lbtabs-5') {
					$(this).css("width","830");
					$(ui.panel).css("width","830");
					$(ui.panel).css("height","550");
					$("#FlashID").css({"visibility":"visible"});
				} else {
					$(this).css("width","620");
					$(ui.panel).css("width","620");
					$(ui.panel).css("height","330");
				}*/
				$(ui.panel).css("width",iw-15);
				$(ui.panel).css("height",ih-15);
				
				$("#container")
				.animate({
					"top":        "50%",
					"left":       "50%",
					"width":      iw,
					"height":     ih,
					"margin-top": -(ih/2),
					"margin-left":-(iw/2),
				}, 300, "linear");
			});
			$("#lbtabs").after('<div id="titleheadertop"><img src="images/closexi.png" onClick="closedialog()"></div>');
			swfobject.registerObject("FlashID");
		});
		$(".overlay").animate({"opacity":"0.6"}, 200, "linear");
		removeOverlay();
}

function closedialog() {
	$("#container, .overlay").animate({"opacity":"0"}, 200, "linear", function(){
		$("#container, .overlay").remove();	
	});
}

function removeOverlay() {
// allow users to be able to close the lightbox
	$(".overlay").click(function(){
		$("#container, .overlay").animate({"opacity":"0"}, 200, "linear", function(){
			$("#container, .overlay").remove();	
		});
	});

}

function showOverlay(aURL) {
	//console.log(aURL);
	$("body")
	.append('<div class="overlay"></div><div id="container"><div id="titleheader" style="text-align:right"><img src="images/close.png"></div><div id="contentcontainer"></div></div>');
	$('#contentcontainer').load(aURL+' #presentation',function() {
		$("#container").css({
			"top":        "50%",
			"left":       "50%",
			"width":      600,
			"height":     400,
			"margin-top": -200,
			"margin-left":-300,
			"background-color":"#FFF",
			"padding":"10px"
		})
		$("#container").animate({"opacity":"1"}, 400, "linear");
		$(".overlay").animate({"opacity":"0.6"}, 200, "linear");
		removeOverlay();
	});
}

function distance(point1,point2) 
{
	var R = 6371;
	var dLat = (point2.lat-point1.lat) * Math.PI / 180;
	var dLon = (point2.lng-point1.lng) * Math.PI / 180;
	var a = Math.sin(dLat/2) * Math.sin(dLat/2) +
		Math.cos(point1.lat * Math.PI / 180 ) * Math.cos(point2.lat * Math.PI / 180 ) *
		Math.sin(dLon/2) * Math.sin(dLon/2);
	var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
	var d = R * c;
	
	/*return Math.floor(d);

	var R = 6371; // km
	var dLat = (point2.lat-point1.lat).toRad();
	var dLon = (point2.lng-point1.lng).toRad();
	var lat1 = point1.lat.toRad();
	var lat2 = point2.lat.toRad();
	
	var a = Math.sin(dLat/2) * Math.sin(dLat/2) +
			Math.sin(dLon/2) * Math.sin(dLon/2) * Math.cos(lat1) * Math.cos(lat2); 
	var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); 
	var d = R * c;*/	
	return Math.round(d*1000)/1000;
}

function drawpoly() {
	var dot = new google.maps.MarkerImage('images/dot.png',
			new google.maps.Size(10, 10),
			new google.maps.Point(0,0),
			new google.maps.Point(5, 5)
	);
	
	var bounds = new google.maps.LatLngBounds ();
	
	for (var jj = 0; jj < members.length; jj++) {
		if (members[jj].count > 0) {
	
			var myLatlng = new google.maps.LatLng(members[jj].placemarks[0].lat,members[jj].placemarks[0].lng);
			var image = new google.maps.MarkerImage('images/0'+(jj+1)+'.png',
				  new google.maps.Size(45, 52),
				  new google.maps.Point(0,0),
				  new google.maps.Point(22, 48)
			);
			var points = new Array();
			if (members[jj].placemarks.length > 0) {
				var pmlen = members[jj].placemarks.length;
				for (var ii = 0; ii < pmlen; ii++) {
					var dotlatlng = new google.maps.LatLng(
							members[jj].placemarks[ii].lat,
							members[jj].placemarks[ii].lng
					);
					points.push(dotlatlng);
					bounds.extend(dotlatlng);
					members[jj].placemarks[ii].dot = new google.maps.Marker({
					  position: dotlatlng, 
					  map: map,
					  icon: ii == 0 ? image : dot,
					  title:members[jj].placemarks[ii].date+ ' ' +members[jj].placemarks[ii].lat+ ' '+members[jj].placemarks[ii].lng,
					  ii:ii,
					  jj:jj
					});
					google.maps.event.addListener(members[jj].placemarks[ii].dot, 'click',function ()  {
						drawinfo(this.jj,this.ii);
					});
				}
				var memberpath = new google.maps.Polyline({
					path: points,
					strokeColor: colors[jj],
					strokeOpacity: .7,
					strokeWeight: 3,
				 });
				memberpath.setMap(map);
				members[jj].path = memberpath;
			}
		}
	}
	map.fitBounds (bounds);
}


function togglemember(__id) {
	for (var ii = 0; ii < members.length; ii++) {
		if (members[ii].id == __id ) {
			if (members[ii].placemarks.length > 0) {
				var maptoset = members[ii].visible ? null : map;
				members[ii].path.setMap(maptoset);
				members[ii].visible = !members[ii].visible;
				for (var jj = 0; jj < members[ii].placemarks.length; jj++) {
					members[ii].placemarks[jj].dot.setMap(maptoset);
				}
				var op = members[ii].visible ? 1 : .5;
				$('#e'+__id).fadeTo('fast', op);
			} else {
				$(function() {
					$( "#dialog:ui-dialog" ).dialog( "destroy" );
					$( "#dialog-message" ).html("No placemarks available for this member:"+members[ii].name);
					$( "#dialog-message" ).dialog({
						modal: true,
						buttons: {
							Ok: function() {
								$( this ).dialog( "close" );
							}
						}
					});
				});
			}
		}
	}
}

function dowloadKMLfile() {
	var values = document.getElementById('region').value.split(",");
	window.open("kml/region_kml.php?r="+values[0]);	
}

function speciesname(id) {
	for (var ii=0; ii < species.length; ii++) {
		if (species[ii].id == regions[id].species) {
			return species[ii].name.split(" ").join("%20");
		}
	}
	return "";
}

function loadpage() {
	var values = document.getElementById('region').value.split(",");
	var species = document.getElementById('species');
	location = "index.php?r="+values[0]+"&s="+species.value;	
}
