var map = null;
var polys;
var poly;
var opa;
var player = null;
var status = null;
var id;
var pe = null;
var zeit = new Date;
function playerReady(thePlayer) {
	player = window.document[thePlayer.id];
	dbg('ObjectID: ' +player.id);
}
function addListeners() {
	if (player) { 
		player.addModelListener("STATE", "stateListener");
	} else {
		setTimeout("addListeners()",100);
	}
}
function stateListener(obj) { //IDLE, BUFFERING, PLAYING, PAUSED, COMPLETED
	status = obj.newstate; 
	vorher = obj.oldstate;
	dbg(status);
	if (status == 'PLAYING') {
     	pe = new PeriodicalExecuter(function() {
     				var zeit = new Date();
     				var ms = zeit.getTime()/600;
       				polys[id].gpoly.opacity = (Math.sin(ms) +1.3)/3;
       				polys[id].gpoly.redraw(true);
    			}, .07);       	
 	   polys[id].gpoly.opacity = 0;
	}
	if (status == 'COMPLETED') {
    	pe.stop();
		dbg('Blinken gestoppt.')
		polys[id].gpoly.opacity = 0.8;
		$('title').innerHTML ='Prima &ndash; jetzt die n&auml;chste Strecke &hellip;';
		$('title').style.backgroundColor='silver';
        $('player').style.border='1px silver solid';
        $('player').innerHTML = '<img src="ringbahn.jpg" height="170" width="240" />';
        
	}
}

function dbg(t) {
	$('dbg').innerHTML += t +'<br/>';
}
var rules= {
	'#dbgstart' : function(el) {
		el.onclick= function() {
			Effect.Appear('dbg');
			Element.setOpacity($('dbg'),.77);	
			Element.hide(el);
			dbg('Debugausgabe gestartet.')
		}
	},
	'#map' : function(el) {
		map = new GMap2($("map"));
  		map.setMapType(G_SATELLITE_MAP);
  		map.setCenter(new GLatLng( 53.585493, 10), 11);
 		window.setTimeout(function(){GDownloadUrl("strecken.js", parseJSON);},1);
 		new Draggable('wrapplayer');
 		GEvent.addListener(map, "click", function(overlay,point) {
	    if (!overlay) {
        
          for (var i=0; i<polys.length; i++) {
              if (polys[i].bounds.containsPoint(point)) {
              	id = i;
              	dbg('Strecke '  + i + ' gew&auml;hlt.');
              	$('title').innerHTML = polys[i].name + ' (' + Math.round(polys[i].gpoly.getLength()) +'m)';
              	
              	$('title').style.backgroundColor=polys[i].color;
              	$('player').style.border='1px ' + polys[i].color + ' solid';
       			poly = polys[i].gpoly;
              	var flv = '/mm/hhfilme/' + polys[i].name + '.flv';
              	if (player) player = undefined;
  				var so = new SWFObject('lib/player.swf','player_'+i,'240','170','8'); 
				so.addVariable('file',flv);
				so.addVariable('width','240');
				so.addVariable('height','170');
				so.addVariable('autostart','true');
				so.addVariable('backcolor',polys[i].color);
				so.addVariable('frontcolor',polys[i].name);
				so.addVariable('lightcolor',polys[i].name);
				so.addVariable('allowscriptaccess','always');  
				so.addVariable('bufferlength','3');
				so.addVariable('image','./ringbahn.jpg');
				so.addVariable('icons','false');
				so.addVariable('stretching','fit');
				so.write('player');
				dbg('Flash gestartet.');
				addListeners();
	
	         }
          }
        } else {
        	$('player').innerHTML = '';
        }
      });
	}
};

function blinker() {
	
}


Event.observe(window, 'load', init_app);
Event.observe(window, 'unload', GUnload);

function init_app(event) {
 	Behaviour.register(rules);
 	Behaviour.apply(rules);
}

parseJSON = function(doc,code) {
	var data = eval("(" + doc + ")");
	polys = new Array();
	for (var i=0; i<data.length; i++) {
    	var item = data[i];
    	var poly = new Object;
 		var points = [];
 		var bounds = null;
    	for(var j=0;j<item.strecke.length;j++) {
    	    points.push(new GLatLng(item.strecke[j].la,item.strecke[j].ln));
    	}
    	poly.name = item.name;
    	poly.color = item.color;
		// Punkte einfŸgen:
		poly.gpoly = new GPolyline(points,item.color,4,.8,{clickable:false});
   		// Grenzen:
   		poly.bounds = new GBounds();
   		poly.bounds.extend(poly.gpoly.getBounds().getSouthWest());
		poly.bounds.extend(poly.gpoly.getBounds().getNorthEast());
   		polys.push(poly);
   		map.addOverlay(poly.gpoly);
    }

}          


