$(document).ready(function() {
	$(document).pngFix();
	if ($.browser.msie && $.browser.version < 7) {
		$("html").css("height", "100%");
		$("#content").css("paddingBottom", 130);
		$("#nav li").click(function() {
			document.location = $(this).find("a").attr("href");
		});
	}
	openInNewWindow();
	countdown();
	$("#caroussel").jCarouselLite({
		auto: 4000,
		scroll: 1,
		speed: 1000,
		btnPrev: "#prev",
		btnNext: "#next"
	});
	$("#caroussel").css("cursor", "pointer");
	$("#caroussel").click(function() {
		document.location.href = "/reisdochters.html";
	});
	if ($("#googleMap").length > 0) {
		initialize();
		searchMap();
		socialPopup();
	}
	$("#TB_window .header a, #TB_window a.cancel").live("click", function() {
		tb_remove();
		return false;
	});
	$("#TB_window input:submit").live("click", function() {
		if (validate()) {
			// send it;
			$("#TB_window .errorNotice").hide();
			$("#TB_window .notice").show();
		} else {
			$("#TB_window .errorNotice").show();
			$("#TB_window .notice").hide();
		}
	});
	if (window.location.search.indexOf("loc=") != -1) {
		// parse loc to the iframe
		$("iframe").attr("src", $("iframe").attr("src") + "&loc=" + queryString("loc"));
	}
	if (window.location.search.indexOf("name=") != -1) {
		// personalized header
		var name = queryString("name");
		var aanhef = queryString("aanhef");
		$("#main .item h1").html("Welkom " + aanhef + " " + name + "!");
	}
});

function loadPopin(){
	tb_show('enterscreen','TB_inline?height=539&amp;width=519&amp;inlineId=enterscreen','');
}

function queryString(queryStringVar) {
	fullUrl = window.location.search.substring(1);
	stringEntrys = fullUrl.split("&");
	for (i = 0; i < stringEntrys.length; i++) {
		ft = stringEntrys[i].split("=");
		if (ft[0] == queryStringVar) {
			return ft[1];
		}
	}
}

function openInNewWindow() {
	$("a[rel='external']").each(function() {
		$(this).attr({
			//target: "_blank",
			href: "javascript:window.open('" + $(this).attr("href") + "');void(0);", 
			title: "Link opent in een nieuw venster"
		});
	});
}


function countdown() {
	var date = new Date();
	date.setFullYear(2010, 0, 3);
	var today = new Date();
	//$("#countdown").html('<a href="https://vts.inxpo.com/scripts/Server.nxp?LASCmd=L:0&AI=1&InitialDisplay=1&ClientBrowser=0&ShowKey=1885" style="color:white;">Klik hier voor de online reisbeurs</a>');
	//$("#countdown").show();
	/*if (today < date) {
		var diff = date - today; // in ms
		diff = Math.floor(diff / 1000 / 60 / 60 / 24);
		// $("#digits").text(diff);
		diff = "" + diff;
		$("#digits").html("");
		for (var i = 0; i < diff.length; i++) {
			var img = "<img src='/include/images/counter/0.png' alt='" + diff.charAt(i) + "' />";
			$("#digits").html($("#digits").html() + img);
			$("#digits").pngFix();
		}
	}*/
}

// maps
var geocoder = new google.maps.Geocoder();
var map = null;
var marker = null;

function geocodePosition(pos, remove) {
	if (remove) $("#popup").hide();
	if (remove) $.scrollTo("#googleMap", 1000);
	geocoder.geocode({
		latLng: pos
	}, function(responses) {
	if (responses && responses.length > 0) {
			var lat = responses[0].geometry.location.lat(); // narrow searches
			var lng = responses[0].geometry.location.lng();

			var minLng = Math.floor((lat) * 100) / 100;
			var maxLng = Math.ceil((lat) * 100) / 100;

			var minLat = Math.floor((lng) * 100) / 100;
			var maxLat = Math.ceil((lng) * 100) / 100;

			// console.log("getting photo's for LAT: " + lat + ", LON: " + lng);
			// panoramio
			$.getJSON("http://www.panoramio.com/map/get_panoramas.php?order=popularity&set=full&" +
					"from=0&to=10&minx=" + minLat + "&miny=" + minLng + "&maxx=" + maxLat + "&maxy=" + maxLng + "&size=small&callback=?",
					{},
					function(data) {
						$("#photos").html("");
						$(data).each(function(i, item) {
							for (var j = 0; j < item.count; j++) {
								try {
									var img = new Image();
									img.src = item.photos[j].photo_file_url;
									var currentHTML = $("#photos").html();
									$("#photos").html(currentHTML + "<img src='" + img.src + "' height='110' class='geoPhoto'/>");
								} catch (e) { }
							} if (item.count == 0) {
								$("#photos").html("");
								// update searchWindow?
							}
						});
						//tb_init("#photos");
					}
				);
			if (remove) updateMarkerAddress(formatAddress(responses[0]), true);
		} else {
			updateMarkerAddress('Geen locatie gevonden', false);
		}
	});
}

function formatAddress(address) {
	var wantedTypes = ["locality", "country"];
	var formattedAddress = [];
	for (var i = 0; i < address.address_components.length; i++) {
		var component = address.address_components[i];
		var type = component.types[0];
		if ($.inArray(type, wantedTypes) > -1) {
			formattedAddress.push(component.long_name);
		}
	}
	if (formattedAddress.length > 1) {
		return formattedAddress[0] + " - " + formattedAddress[1];
	} else {
		return formattedAddress[0];
	}
}

function updateMarkerAddress(str, isAbleToGo) {
	/* google translate *VERY SLOW*
	google.language.translate(str, "", "nl", function(result) {
		if (!result.error) {
			str = result.translation;
		}
	});
	*/
	$("#results .text").html(str);
	var fontSize = 17;
	if (str.length > 13) fontSize = 15;
	if (str.length > 23) fontSize = 13;
	if (str.length > 28) fontSize = 11;
	$("#results .text").css("fontSize", fontSize);
	$("#results a").attr("href", "step2.html?loc=" + escape(str));
	(isAbleToGo) ? $("#results a").show() : $("#results a").hide();
	$("#results").show();
}

function initialize() {
	var latLng = new google.maps.LatLng(-10, 150);
	map = new google.maps.Map(document.getElementById('googleMap'), {
		zoom: 1,
		center: new google.maps.LatLng(0, 0),
		mapTypeId: google.maps.MapTypeId.TERRAIN,
		mapTypeControl: false
	});
	/*
	var markerImg = "/include/images/koffer.png";
	marker = new google.maps.Marker({
		position: latLng,
		title: 'Sleep de koffer naar uw droombestemming',
		map: map,
		draggable: true,
		icon: markerImg
	});
	
	// Update current position info.
	geocodePosition(latLng, false);
	google.maps.event.addListener(marker, 'dragend', function() {
		geocodePosition(marker.getPosition(), true);
	});
	
	updatePos();
	*/
}
function animate(pos) {
	$("#arrowImg").animate({
		marginRight: pos
	}, 500, null, updatePos);
}
var pos = 3;
function updatePos() {
	(pos == 3) ? pos = -3 : pos = 3;
	animate(pos);
}
function searchMap() {
	$("#search input:text").textGrow({
		pad: 5,
		min_limit: 120,
		max_limit: 340
	});
	$("#search input:text").keydown(function(e) {
		if (e.keyCode == 13) {
			doSearch($(this).val());
			return false;
		}
	});
	$("#search input:submit").click(function() {
		doSearch($(this).prev().val());
		return false;
	});
}

function doSearch(str) {
	if (geocoder) {
		geocoder.geocode({ 'address': str }, function(results, status) {
			if (status == google.maps.GeocoderStatus.OK && map != null) {
				map.setCenter(results[0].geometry.location);
				switch (results[0].types[0]) {
					case "route":
						map.setZoom(12);
						break;
					case "locality":
						map.setZoom(8);
						break;
					case "country":
						map.setZoom(5);
						break;
					default:
						// console.log(results[0].types[0]);
						map.setZoom(2);
				}
				marker.setPosition(results[0].geometry.location);
				$("#popup").hide();
				geocodePosition(results[0].geometry.location, true);
			} else {
				// alert("Geocode was not successful for the following reason: " + status);
			}
		});
	}
}

function socialPopup() {
	$("#icons .social").bind("mouseenter mouseleave", function(e) {
		if (e.type == "mouseenter") {
			var txt = $(this).attr("title");
			$("#icons .popup").html(txt);
			$("#icons .popup").fadeIn();
			$("#icons .popup").css("left", $(this).offset().left - $(this).parent().parent().offset().left - 90);
		} else {
			$("#icons .popup").hide();
		}
	});
}

function validate() {
	var ret = true;
	$("input:text, input:password").each(function() {
		if ($(this).hasClass("name")) {
			// simple name validator
			$(this).removeClass("error")
			$(this).prev().removeClass("red");
			if ($(this).val() == "") {
				$(this).addClass("error");
				$(this).prev().addClass("red");
				ret = false;
			}
		}
		if ($(this).hasClass("email")) {
			// email validator
			var re = new RegExp(/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/);
			$(this).removeClass("error");
			$(this).prev().removeClass("red");
			if (!$(this).val().match(re)) {
				$(this).addClass("error");
				$(this).prev().addClass("red");
				ret = false;
			}
		}
	});
	return ret;
}