
$(function(){
	pic.load();
	map.load();
})

var pic = {
	zIndex:100,
	hl:0,
	load:function(){
		for(var i = 0 ; i < zpq.length;i++){
			var p = zpq[i];
			pic.setup(p,i);
			
		}
		window.setInterval(function(){
		//window.setTimeout(function(){
		pic.toMoveLeft();
		},1);
	},
	setup:function(p,i){
			var cnt = $("#zpq");
			var img = new Image();
			img.src = p.min;
			img.onload=function(){
				//var top = parseInt(i/8) * 95 ;
				//var left = i%8*95  -2;
				var top = parseInt(i/15) * 91;
				var left = parseInt(i%15)*91;
				$("<a  title='" +p.nick+ ":"+(p.notes == "" ? p.time : p.notes)+"' id='a_" +i+ "' href='picture.do?pid=" +p.id+ "'><img src='" +p.min+ "'/></a>").css("top",top+"px").css("left",left+"px").appendTo(cnt);
				pic.hl++;
			}
	},
	curCols:0,
	toMoveLeft:function(){
		if(pic.hl == zpq.length){
			
			$("#zpq>a").each(function(i){
				var left = $(this).css("left");
				if(left == "-91px"){
					$(this).css("left","1274px");
				}
				$(this).css("left","-=1px");
			});
		}
	}
}
var map = {
	mks:new Array(),
	index:0,
	obj:"",
	load:function(){
		var init = new Array();
		var lat = {max:0,min:900};
		var lon = {max:0,min:900};
		for(var i = 0 ; i < 30 ; i++){
			var mi =  map.getP();
			if(mi.lat > lat.max){
				lat.max = mi.lat;
			}
			if(mi.lon > lon.max){
				lon.max = mi.lon;
			}
			if(mi.lat < lat.min){
				lat.min = mi.lat;
			}
			if(mi.lon < lon.min){
				lon.min = mi.lon;
			}
		 	init.push(mi);
		}
		var myOptions = {
		    zoom:4,
		    center: new google.maps.LatLng(35.911678,105.457396),
		    disableDefaultUI: true,
      		mapTypeId: google.maps.MapTypeId.ROADMAP,
      		scrollwheel:false,
      		disableDoubleClickZoom:true,
      		draggable:false

		}
		map.obj = new google.maps.Map(document.getElementById("map_canvas"),myOptions);
		
		//map.obj.fitBounds(new google.maps.LatLngBounds(new google.maps.LatLng(lat.min,lon.min),new google.maps.LatLng(lat.max,lon.max)));
		
		
		
		for(var i = 0 ; i < init.length ; i++){
			var mi =  init[i];
		 	map.setMarker(mi);
		}
	 	//map.setMess(init[init.length - 1]);
	 	
	 	setTimeout(function(){map.addTimer()},map.randSleep());	
	},
	randSleep:function(){
	   // var i = Math.random() * 7000;
		//return i;
		return 4000;
	},
	addTimer:function(){
		if(!map.lock){
			$("#message").hide();
			$("#message_b").hide();
			var mi =  map.getP();
			//map.obj.panTo(new google.maps.LatLng(mi.lat,mi.lon));
			map.setMarker(mi);
			//map.setMess(mi);
		}
		setTimeout(function(){map.addTimer()},map.randSleep());	
	},
	_zindex:100,
	setMarker:function(mi){
			map._zindex = map._zindex + 10;
		   var image = new google.maps.MarkerImage(mi.map,
		    new google.maps.Size(52, 67));
		   
		    var myLatLng = new google.maps.LatLng(mi.lat, mi.lon);
		   
		    var marker = new google.maps.Marker({
		        position: myLatLng,
		        map: map.obj,
		        icon: image,
		        c_logo: mi.logo,
		        c_nick:mi.nick,
		        c_time:mi.time,
		        zindex:map._zindex
		    });
		    marker.setZIndex(map._zindex);
		    map._zindex++;
		    google.maps.event.addListener(marker, 'click', function() {
			  
			});
			google.maps.event.addListener(marker, 'mouseover', function() {
				marker.setZIndex(map._zindex);
			  	map._zindex++;
				map.setMess(mi);
			  	map.lock = true;
			});
			google.maps.event.addListener(marker, 'mouseout', function() {
			  map.lock = false;
			});
			map.mks.push(marker);
			
			var maxhav = 49;
			if(map.mks.length == maxhav){
				if(map.mks[map.mks.length - maxhav]){
					map.mks[map.mks.length - maxhav].setMap(null);
				}
			}
		    
	},
	lock:false,
	setMess:function(mi){
	
		var myLatLng = new google.maps.LatLng(mi.lat, mi.lon);
		var overlay = new MyOverlay(map.obj);
		var projection = overlay.getProjection();
		if(projection){
			var pp = projection.fromLatLngToContainerPixel(myLatLng)
	
			var _r = "SX";//é»è®¤ä¸ä¸å³ç³»
			
			var l = pp.x + 140;
			var t = pp.y - 235;
			
			if(t <= 0){
				t = pp.y + 10;
				
				_r = "SX";//ä¸ä¸å³ç³»
			}
			
			$("#u_l").html("<a href='picture.do?pid="+mi.pid+"'><img src='" +mi.pic+ "'/></a>").mouseover(function(){
				map.lock = true;
			}).mouseout(function(){
				map.lock = false;
			});
			
			$("#u_i").html("<span class='ui0l'>" +mi.nick+ "</span><span class='ui0r'>" +mi.time+ "</span>");
			$("#message_b").css("z-index",map._zindex).css("top",t + "px").css("left",l+"px").css("opacity","0.8").show();
			$("#message").css("z-index",map._zindex).css("top",t + "px").css("left",l+"px").show();
			
		}else{
			window.setTimeout(function(){
				map.setMess(mi);
			},1000);
		}
	},
	getP:function(){
		if(beachs[map.index]){
			var mi = beachs[map.index];
			map.index++;
			return mi;
		}else{
			map.index = 0;
			return beachs[0];
		}
	}
};
MyOverlay.prototype = new google.maps.OverlayView();
MyOverlay.prototype.onAdd = function() { }
MyOverlay.prototype.onRemove = function() { }
MyOverlay.prototype.draw = function() { }
function MyOverlay(map) { this.setMap(map); }

