$(document).ready(function(){

    /* paapalstan kuvilta pois float jos kuvan leveys yli 480 px */
    $("#mainCol p img").each(function() {
        var leveys = $(this).attr("width");
        if (leveys > 480) {
          $(this).css({float: "none", marginLeft: "0"});
        }
    });

    // safari peiskaako
    var isSafari = false;
    if(window.devicePixelRatio) isSafari = true;
    // sahkoposteille defuskaatio
    $("#copyright a").defuscate();
    // Sivuston varjot
    var pc = $("body").attr("class");
    var sh = $("#contentArea").height();
    // ie6:lta pois kanssa
    var browser = $.browser.name;
    var browserv = $.browser.versionNumber;
    //alert(browser + " " + browserv);
    //if (browser == "msie" && browserv == 6) {
           //sh -= 17;
    //}
    //if((browser == "msie" && browserv == 6) || isSafari == true) {
        //$("#copyright").prepend("<div class='btmfx'>.</div>");
    //}
    //$("#shadowleft, #shadowright").css({height: sh + "px"});
    $("#shadowleft, #shadowright").css({display:'none'});
    
    // Etusivulta etusivulinkki pois
    // Tän vois tehdä mielummin templaten {menu exclude_prefix='pagename'}
    $(".menuF li:first").remove();

    // Valikon nurkat
    $("#menuContainer > ul > li:first").addClass("first");
    $("#menuContainer > ul > li:last").addClass("last");

    // Nosteen hoveri koko alueelta
    $(".noste").hover(
        function() {
            // hoveri
            $(this).css({background: "url('img/bullet-noste.gif') no-repeat 0 3px"});
            $(this).find("a").css({textDecoration: "underline"});
            $(this).find("p").css({color: "#000000"});
            $(this).css({cursor: "pointer"});
        },
        function() {
            $(this).css({background: "url('img/bullet-noste.gif') no-repeat 0 3px"});
            $(this).find("a").css({textDecoration: "none"});
            $(this).find("p").css({color: "#4c4c4c"});
            $(this).css({cursor: "default"});
        }
    );





	// Kartta jutut    
    if (GBrowserIsCompatible())
    {

		// P-ikonin asetuksia
		var iconP = new GIcon(G_DEFAULT_ICON);
		iconP.image = "http://autoparkki.net/img/p-marker.png";
		iconP.iconSize = new GSize(39,34);
		iconP.shadowSize = new GSize(0,0);
		iconP.iconAnchor = new GPoint(10,34);
		markerOptionsP = { icon:iconP };
		
		// luodaan markkerit etusivulle ilman infoBox sisältöä
		function createMarkerFP(latlng, targetCityID) {
            //console.log(latlng+" : "+targetCityID);
            
			var marker = new GMarker(latlng, markerOptionsP);
			GEvent.addListener(marker,"click", function() {
				// tarkat tiedot -linkki
				window.location = 'http://autoparkki.net/index.php?page=pysaekoeintialueet#' + targetCityID;
				//map1.openInfoWindowHtml(latlng, myHtml);
			});
			return marker;
		}
		// metodi: luodaan markkeri infolaatikolla
		function createMarker(latlng, message, add, url, city) {
			var marker = new GMarker(latlng, markerOptionsP);
			//marker.value = message;
			GEvent.addListener(marker,"click", function() {
				// tarkat tiedot -linkki
				var linkkistr = message.split("'");
				var linkki = linkkistr[1];

				var linkkiHTML = "<h3 class='park'><a href='" + url + "'>&raquo; Tarkat tiedot</a></h3>";
                //var linkkiHTML = '';
				var myHtml = "<h2 class='park'>" + message + "</h2>" + add + ", " + city + linkkiHTML;
				//var myHtml = 'jes';
                map1.openInfoWindowHtml(latlng, myHtml);
			});
			return marker;
		}
        //Adds new uniqueArr values to temp array
        function uniqueArr(a) {
            temp = new Array();
            for(i=0;i<a.length;i++){
                if(!contains(temp, a[i])){
                temp.length+=1;
                temp[temp.length-1]=a[i];
                }
            }
            return temp;
        }
        //Will check for the Uniqueness
        function contains(a, e) {
            for(j=0;j<a.length;j++)if(a[j]==e)return true;
            return false;
        }  

        /* START MAP THINGS !!! */
		// Pysäköintikohteita, manipuloitava kartta ja listaus kaupunkikohtaisesti
        if (pc == "p")
        {
            // Hae lista mestoista
            var sites = $('#sites .city');
            // Vars
            var coords = [];
            var msg = [];
            var add = [];
            var urls = [];
            var cityNames = [];
            // Unique city names
            // loop all the cities
            $.each(sites, function()
                {
                    // add values to arrays
                    var c = $(this).find('.coordinates').html();
                    c1 = c.split(",");
                    coords[ coords.length ] = new GLatLng(c1[0], c1[1]);
                    //coords.push(coordinates1);
                    //var url = $(this).find('.url a').attr('href');
                    urls.push($(this).find('.url a').attr('href'));
                    msg.push($(this).find('.url').html());
                    add.push($(this).find('.streetAddress').html());
                    cityNames.push($(this).find('.name').html());
                }
            );
            // Get rid of duplicate values, used for city drop down
            var cityNamesUnique = uniqueArr(cityNames);
            var added = []; 
            var cityNamesUnique2 = [];
            var cityCoords = [];
            // loop all sites
            $.each(sites, function()
                {
                    var currentCity = $(this).find('.name').html();
                    var currentCoords = $(this).find('.coordinates').html();
                    //console.log(currentCity);
                    // Add first one
                    if(added.length == 0)
                    {
                        added[added.length] = currentCity;
                        cityNamesUnique2[cityNamesUnique2.length] = currentCity;
                        cityCoords[cityCoords.length] = currentCoords;
                    }
                    // loop all added through
                    for(i=0; i<added.length; i++)
                    {
                        // See if current city added already
                        if($.inArray(currentCity, added) == -1)
                        {
                            added[added.length] = currentCity;
                            cityNamesUnique2[cityNamesUnique2.length] = currentCity;
                            cityCoords[cityCoords.length] = currentCoords;
                        }

                    }
                }
            );
			// URL hash contains id to show corresponding city
			var targetLocation = window.location.hash;
            // GMAP
            var map1 = new GMap2(document.getElementById("map1"));
			map1.addControl(new GSmallZoomControl());
            map1.addControl(new GMapTypeControl());
            
            if(pc == 'p')
            {
                // add markers for subpage
                for (i=0; i<coords.length; i++)
                {
                    var c = coords[i];
                    var m = msg[i];
                    var a = add[i];
                    var city = cityNames[i];
                    var url = urls[i];
                    map1.addOverlay(createMarker(c, m, a, url, city));
        
                    if (city == "Helsinki") {
                        
                        $("#parks").append("<div>" + m + "</div>");
                    }
                    var alakorkeus = $("#parks").height();
                    varjok = sh + alakorkeus;
                    $("#shadowleft, #shadowright").css({height: varjok + "px"});
                }

				// Normaali lähtötilanne kartalle: Helsingin pysäköintialueet
				map1.setCenter(new GLatLng(60.221401,24.981537), 10);

            }

            
            // Add cities to dropdown
            for(i=0; i<cityNamesUnique2.length; i++)
            {
                $("#kaupungit").append('<div><span class="city">'+cityNamesUnique2[i]+'</span><span class="coordinates">'+cityCoords[i]+'</span></div>');
            }


			// Onko tultu etusivun kartasta?
            // Rikki toistaiseksi
			if(targetLocation.length > 1)
            {
				// Show the corresponding city based on URL hash
				// setCenter and zoom
				// Update list of parking houses based on city name
				// Remove the hash #
				targetLocation = targetLocation.substring(1);
				// siirretaan kohdistus valittuun kaupunkiin
				$("span#valittu").css("background", "url('img/citydd-closed.jpg') no-repeat");
				var targetCity = cityNamesUnique2[targetLocation];
				//console.log(add.length);
				for(i=0; i<cityNamesUnique2.length; i++)	{
					// Find coordinates for target City
					//var temp = add[(i+1)].split(",");
					var tempCityname = cityNamesUnique2[i];
					//alert(tempCityname +"i:"+i+ add[(i+1)]);
                    // If city matches, break out and set coordinates
					if(tempCityname == targetCity) {
						// found a city
						var coordinates = cityCoords[i];
						var kaupung = tempCityname;
						break;
					}
					
				}
                //console.log(cityNamesUnique2);
                //console.log(targetCity);
                //console.log(coordinates);
                var coordTemp = coordinates.split(',');
                coordinates = new GLatLng(coordTemp[0], coordTemp[1]);

				//var coordinates = cityCoords[targetLocation];
				var zoom = 0;
				// Special treatment for some cities
				switch(kaupung) {
					case 'Helsinki':
						zoom = 10;
						break;
	
					case 'Jyväskylä':
						zoom = 14;
						break;
	
					case 'Espoo':
						zoom = 14;
						break;
	
					case 'Oulu':
						zoom = 14;
						break;
				
					default:
						zoom = 15;
						break;
				}
                // Modify title, no SEO value tho
                document.title = 'AutoParkki - AutoParkki-pysäköintialueet, '+kaupung;
				// keskitys uuteen kohteeseen
				map1.setCenter(coordinates, zoom);
				// valitun kaupungin paivitys ja p-alueiden nayttaminen
				$("#valittu").text(kaupung);
				$("#kaupungit").hide();
				$("#kaupungit div").removeClass("activeP");
				//$(this).addClass("activeP");
				var kaupungin = kaupung;
				$("#parkit #areaName").text(kaupungin);
				// valitun alueen p-mestat
				var montako = coords.length;
				$("#parks").html("");
				for (i=0; i<montako; i++) {
					//var c = coords[i];
					var m = msg[i];
					var a = add[i];
					var city = a;
					var city2 = cityNames[i];
                    
                    
                    
					if (city2 == kaupung) {
                        //console.log(city2 + ":"+kaupung)
						$("#parks").append("<div>" + m + "</div>");
					}
				}

				
			}
            else
            {
				// Normaali lataus
			}

				

        }

    
    }



	$("#kaupungit div").hide();
	// naytetaan kaupunkilista dropdown
	$("#kaupunki #valittu").click(function() {
		$("#kaupungit div").show();
		$("#kaupungit").show();
		$(this).css("background", "url('img/citydd-open.jpg') no-repeat");
	});

	$("#kaupungit").hover(
		function() {
			// eikai mitaan
			
			$("#kaupungit div").hover(function(){
				$(this).css({   'background':'#f1f2f3',
								'color':'#0079C2'});
			},
			function(){
				$(this).css('color','#f1f2f3');
				$(this).css('background','none');
				
			});
			
		},
		function() {
			// mouseoutissa kaupunkivalinta piiloon
			$(this).hide();
			$("span#valittu").css("background", "url('img/citydd-closed.jpg') no-repeat");
			  $("#kaupungit div").hide();
		}
	);

	// siirretaan kohdistus valittuun kaupunkiin
	$("body.p #kaupungit div").click(function()
                                     {
		$("span#valittu").css("background", "url('img/citydd-closed.jpg') no-repeat");
		var keskita = $(this).find('.coordinates').html();
		var kaupung = $(this).find('.city').html();
		//var kaupungL = kaupung.length + 1;
		var zoom = 0;
		// pilkotaan koordinaatit
		var koords = keskita.split(",");
		// Special treatment for some cities
		switch(kaupung) {
			case 'Helsinki':
				zoom = 10;
				break;
  
			case 'Jyväskylä':
				zoom = 14;
				break;
  
			case 'Espoo':
				zoom = 14;
				break;
  
			case 'Oulu':
				zoom = 14;
				break;
		
			case 'Lahti':
				zoom = 14;
				break;
		
			default:
				zoom = 15;
				break;
		}
		// keskitys uuteen kohteeseen
		map1.setCenter(new GLatLng(koords[0], koords[1]), zoom);
		// valitun kaupungin paivitys ja p-alueiden nayttaminen
		$("#valittu").text(kaupung);
		$("#kaupungit").hide();
		$("#kaupungit div").removeClass("activeP");
		$(this).addClass("activeP");
        // Set city name to garage listing
		$("#parkit #areaName").text(kaupung);
		// valitun alueen p-mestat
		var montako = coords.length;
		$("#parks").html("");

		for (i=0; i<montako; i++)
        {
            //var c = coords[i];
            var m = msg[i];
            var a = add[i];
            //var city = a.split(",");
            //var city2 = city[1].substring(1, kaupungL);
            if (kaupung == cityNames[i]) {
                $("#parks").append("<div>" + m + "</div>");
            }
		}
		var alakorkeus = $("#parks").height();
		varjok = sh + alakorkeus;
		$("#shadowleft, #shadowright").css({height: varjok + "px"});

        // add cityID to url
        for(var i=0; i<cityNamesUnique2.length; i++)
        {
            if(cityNamesUnique2[i] == kaupung) window.location = 'http://autoparkki.net/index.php?page=pysaekoeintialueet#'+i;
        }
        
	});


    // Noste kokonaan linkiksi
    $(".noste").click(function() {
        var link = $(this).find("a").attr("href");
        window.location = link;
    });

    // Noste2 alareunan luonti + marginaalidivi jolla korkeusongelma korjaantuu
    $(".noste2").append("<div class='noste2b'></div>");
    $(".noste2").after("<div class='noste2m'></div>");


    

    

});

