Event.observe(window, 'load', function()
{
	var nederland = new country(30,85,203,218,262);  // PIXELS AANPASSEN AAN PLAATSEN (x middelburg, y middelburg, x winschoten, y winschoten, hoogte plaatje) vanaf linksonder
	
	nederland.retrieveCities();
	
	nederland.MaakCodePlaatsen();
});

/////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////

var city = Class.create(
		{
			initialize: function(x, y, city, name, link) 
			{
				this.x = x;
				this.y = y;
				this.name = name;				
				this.link = link;
				this.city = city;
			}
});


var country = Class.create(
		{
			initialize: function(xpixmiddelburg, ypixmiddelburg, xpixwinschoten, ypixwinschoten, height)
			{
				this.xpixmiddelburg = xpixmiddelburg;
				this.ypixmiddelburg = ypixmiddelburg;
				this.xpixwinschoten = xpixwinschoten;
				this.ypixwinschoten = ypixwinschoten;
				this.height 		= height;
				
				this.jsontempcities = new Array;
				
				this.xabsmiddelburg = 31865;		// OFFICIELE COORDINATEN
				this.yabsmiddelburg = 391583;		// OFFICIELE COORDINATEN
				
				this.xabswinschoten = 265189;		// OFFICIELE COORDINATEN
				this.yabswinschoten = 574213;		// OFFICIELE COORDINATEN
				

				
				this.cities = [new city(118097,440414,'Schoonhoven','http://www.reprovinci.nl/'), 	// OFFICIELE COORDINATEN
					           new city(31865,391583,'Middelburg','http://www.reprovinci.nl/'),		// OFFICIELE COORDINATEN
					           new city(265189,574213,'Winschoten','http://www.reprovinci.nl/'),	// OFFICIELE COORDINATEN
					           new city(136421,455618,'Utrecht','http://www.reprovinci.nl/'),		// OFFICIELE COORDINATEN
					           new city(124000,480000,'Amsterdam','http://www.ajax.nl/')
					           ];
			},
			
			retrieveCities: function()
			{
				// hier komt mijn ajax request en ik return een variabele array die ik gebruik in mijn initialize
				var url = '/ajax/landmap?kind=udo&type=activity&path=/activiteiten';
				
		        var self = this;
		        
			    var AllOptions = 
			    {
			        method: 'get',
			        asynchronous: false,
			        parameters: { }, 
			        onSuccess: function(oXHR, oJson)
			        {	         
			            var jsobj     		= oXHR.responseText.evalJSON();
			            self.jsontempcities = jsobj;
//			            
//			            makeReadyCities(jsobj);
			             //$('cover').style.display='none';
			        },
			        onFailure: function(oXHR, oJson)
			        {
			            alert('error helaas geen succes');
			        }
			    }
			    
		        var myAjax = new Ajax.Request(url, AllOptions);
			    
			    this.makeReadyCities();
				
			},
			
			makeReadyCities: function()
			{
				var tempcities = new Array();
				
				this.jsontempcities.each(function(cityeach)
				{
					var dottedcity = new city(cityeach.x,cityeach.y,cityeach.city,cityeach.name,cityeach.link);
					tempcities.push(dottedcity);
				}.bind(this));
				
				this.cities = tempcities;
			},
			
			coorperpixel: function(pixwin,pixmid,abswin,absmid)
			{
				diffrel = pixwin - pixmid;
				diffabs = abswin - absmid;
				return pixel = diffrel/diffabs;
			},
						
			xpositiebepalen: function(x) //returned de x pixelwaarde van het punt t o v middelburg
			{
				xdiffrel = x - this.xabsmiddelburg;
				xcpp = this.coorperpixel(this.xpixwinschoten, this.xpixmiddelburg, this.xabswinschoten, this.xabsmiddelburg);
				xrel = xdiffrel*xcpp;
				return (this.xpixmiddelburg + xrel);
			},

			ypositiebepalen: function(y) //returned de y pixelwaarde van het punt t o v middelburg
			{
				ydiffrel = y - this.yabsmiddelburg;
				ycpp = this.coorperpixel(this.ypixwinschoten, this.ypixmiddelburg, this.yabswinschoten, this.yabsmiddelburg);
				yrel = ydiffrel*ycpp;
				return (this.ypixmiddelburg + yrel);
			},
			
			ArrayMetPixels: function()	
			{	
				var citiespixel = new Array();
				for (var i = 0; i < this.cities.length; ++i) 
				{
					  var q = new city(this.xpositiebepalen(this.cities[i].x),this.ypositiebepalen(this.cities[i].y),this.cities[i].city,this.cities[i].name,this.cities[i].link);
					  citiespixel[i] = q;
				}
				return citiespixel;
			},
			
			MaakCodePlaatsen: function()
			{
				var citiespixel = this.ArrayMetPixels();
				var image		= new Array();
				
				
				for(var i = 0; i < citiespixel.length; i++)
				{
					
						
					x = citiespixel[i].x;
					y = citiespixel[i].y;  
					
					
					image[i] = Builder.node('img', {
						src: '/images/point.png',
						width: '5',
						height: '5',
						style: 'position: absolute; bottom:'+y+'px; left:'+x+'px; border:none; cursor:pointer;',
						alt: citiespixel[i].city + ' - ' + citiespixel[i].name,
						title: citiespixel[i].city + ' - ' + citiespixel[i].name
						
					});
					
					if(citiespixel[i].link != null)
					{
					
						var rlink = Builder.node('a', { 
							href: citiespixel[i].link,
							title: citiespixel[i].city + ' - ' + citiespixel[i].name
 							}, image[i]);
	
						
						$('points').appendChild(rlink);	
					}
										
					else
						$('points').appendChild(image[i]);	
				}
			}
});
