var sammel = 0;
var faktor = 1;

var imgs = {
 'aussichtspunkt' : 'aussicht.png',
 'aussichtsturm' : 'turm.png',
 'city' : 'yellow.png',
 'collect' : 'gray.png',
 'event' : 'red.png',
 'explore' : 'green.png',
 'gastro' : 'blue.png',
 'overnight' : 'gray.png',
 'parkplatz' : 'parkplatz.png',
 'realize' : 'orange.png',
 'redaktion' : '',
 'service' : 'station.png',
 'sponsor' : '',
 'themenurlaub' : ''
}
var offs = {
	's' : 7,
	'n' : 8,
	'l' : 15,
	'xxl' : 30
}

Event.observe(window,"load",function() {
	contDim = $('container').getDimensions();
	addCardDrag();
	TooltipManager.init("tooltip", 
	  {'url': "servlets/points.php", 'options': {'method': 'post'}}, 
		{'showEffect': Element.show, 'hideEffect': Element.hide, 'className': "tooltip", 'zIndex': 90, 'delayOut': 100}
	);
	if(karte < 1) {
		TooltipManager.addAjax("bike", {'url': "servlets/points.php", 'options': {'method': 'post', 'parameters': {'action': "getTooltip", 'id': 'bike'}}});
	} else {
		$('bike').hide();
	}
	TooltipManager.addAjax("back2card", {'url': "servlets/points.php", 'options': {'method': 'post', 'parameters': {'action': "getTooltip", 'id': 'back2card'}}});
	getPoints();
});

function getPoints() {
  new Ajax.Request("servlets/points.php", {
      'method': 'post',
      'parameters': {'action': "getList", 'excepts' : 'redaktion,themenurlaub,sponsor', 'sammel': sammel,'karte': karte},
      'onSuccess': function(transport) {
      	try {
      		ajaxPunkte = eval('('+transport.responseText+')');
      	} catch(e) {
      		alert("editItem(eval) : " + e.name + ":" + e.message + "\n\n" + transport.responseText);
      	}
      	if(ajaxPunkte) {
      		$("karte").innerHTML = '';
      		ajaxPunkte.each(function(pt) {
      			pt.x = parseInt(pt.x); //das ist notwendig, weil die Koordinaten komischerweise als string per ajax kommen ....
      			pt.y = parseInt(pt.y);
      			if(typeof(imgs[pt.typ]) != 'undefined') {
	      			var path = '/img/points/'+pt.size+'/'+imgs[pt.typ];
	      			var stil = 'position: absolute; top:'+((pt.y*faktor)-offs[pt.size])+'px; left:'+((pt.x*faktor)-offs[pt.size])+'px; cursor: pointer; margin: 0px; padding: 0px; border-style: none;';
							//var punkt = Builder.node('div', {'id': "point_"+pt.id, 'class': "point "+pt.typ+"_"+pt.size+" "+pt.size, 'onclick': pt.link, 'Style': "left:"+(pt.x * faktor)+"px; top:"+(pt.y * faktor)+"px;"});
							var punkt = Builder.node('img', {'id': "point_"+pt.id, 'src': path, 'onclick': pt.link, 'Style': stil, 'border': 0, 'alt': '', 'title': ''});
							$("karte").appendChild(punkt);
							TooltipManager.addAjax("point_"+pt.id, {'url': "servlets/points.php", 'options': {'method': 'post', 'parameters': {'action': "getTooltip", 'id': pt.id, 'elist_id': pt.elist_id}}});
      			}
      		});
      	}
      },
      'onFailure': function(msg) {alert("ajax:"+msg.responseText);}
  })
}


function zoomIn(ptID) {
  $("__tooltip__").hide();
  $("karte").innerHTML = '';
	var pt = ajaxPunkte.find(function(p) {return p.id == ptID});
	sammel = pt.id;
	faktor = 3;
	savedPos = $('karte').positionedOffset();
	var np = {x: pt.x, y: pt.y};
	np.x += 31; np.y += 31;
	np.x *= faktor; np.y *= faktor;
	np.x -= contDim.width / 2;
	np.y -= contDim.height / 2;
	if(np.x < 0) {
		np.x = 0;
	} else if(np.x > 2730 - contDim.width) {
		np.x = 2730 - contDim.width;
	}
	if(np.y < 0) {
		np.y = 0;
	} else if(np.y > 2612 - contDim.height) {
		np.y = 2612 - contDim.height;
	}
	$('karte').setStyle({
		'width': '2730px',
		'height': '2612px',
		'top': '-'+np.y+'px',
		'left': '-'+np.x+'px',
		'backgroundImage': 'url(img/karten/free_300.jpg)'
	});
	$('bike').hide();
	$('back2card').show();
	getPoints();
	addCardDrag();
}
function zoomOut() {
  $("__tooltip__").hide();
  $("karte").innerHTML = '';
	sammel = 0;
	faktor = 1;
	$('karte').setStyle({
		'width': '910px',
		'height': '871px',
		'top': savedPos.top+'px',
		'left': savedPos.left+'px',
		'backgroundImage': 'url(img/karten/free_100.jpg)'
	});
	$('back2card').hide();
	if(karte < 1) $('bike').show();
	addCardDrag();
	getPoints();
}
function addCardDrag() {
	cardDragg = false;
	cardDim = $('karte').getDimensions();
	var dragParas = { starteffect: false, endeffect: false };
	dragParas.onEnd = function(card, e) {
		cardPos = card.handle.positionedOffset();
		if(cardPos.top > 0) card.handle.setStyle({'top' : '0px'});
		if(cardPos.top < contDim.height - cardDim.height) card.handle.setStyle({'top' : (contDim.height - cardDim.height)+'px'});
		if(cardPos.left > 0) card.handle.setStyle({'left' : '0px'});
		if(cardPos.left < contDim.width - cardDim.width) card.handle.setStyle({'left' : (contDim.width - cardDim.width)+'px'});
	}
	cardDragg = new Draggable('karte', dragParas);
}
function openRadwege() {
	window.open("radwege.php","radwege","left=0,top=0,width="+screen.availWidth+",height="+screen.availHeight+",resizable=yes,scrollbars=yes,menubar=no,status=no,toolbar=no");
}

