﻿/*

    This script calculates great-circle distances between the two points.
    that is, the shortest distance over the earth’s surface – using the ‘Haversine’ formula.

    var R = 6371; // Radius of the earth in km
    var dLat = (lat2-lat1).toRad();  // Javascript functions in radians
    var dLon = (lon2-lon1).toRad(); 
    var a = Math.sin(dLat/2) * Math.sin(dLat/2) +
            Math.cos(lat1.toRad()) * Math.cos(lat2.toRad()) * 
            Math.sin(dLon/2) * Math.sin(dLon/2); 
    var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); 
    var d = R * c; // Distance in km
*/

var PreloadImages = new Array();
PreloadImages[0] = new Image();
PreloadImages[0].src = "/images/master/button_left_hover.gif";
PreloadImages[1] = new Image();
PreloadImages[1].src = "/images/master/button_center_hover.gif";
PreloadImages[2] = new Image();
PreloadImages[2].src = "/images/master/button_right_hover.gif";

function DisableReturn(e)
{
	var e = e || window.event;
	if (e.keyCode == 13 || e.which == 13)
	{
		e.cancelBubble = true;
		return false;
	}
	return true;
}

function KeywordSearch()
{
	var e = document.getElementById("HeaderSearch");
	if (!e)
		return;

	if (e.value.length == "")// || e.value.toLowerCase() == DefaultSearchText.toLowerCase())
		return;

	var url = Language == 2 ? "/mieten" : "/huren";
	url += "?searchtext=" + escape(e.value);

	location.href = url;
}

function AddEventListener(element, type, expression, bubbling)
{
	bubbling = bubbling ? true : false;
	if (window.addEventListener)
	{
		element.addEventListener(type, expression, bubbling);
		return true;
	}
	if (window.attachEvent)
	{
		element.attachEvent("on" + type, expression);
		return true;
	}
	return false;
}

function HttpRequest()
{
	var Callback = null;
	var Request = null;
	var Done = false;
	var SendTime = null;

	try
	{
		Request = new ActiveXObject("Msxml2.XMLHTTP");
	}
	catch (e)
	{
		try
		{
			Request = new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch (e)
		{
			try
			{
				Request = new XMLHttpRequest();
			}
			catch (e)
			{
				Request = null;
			}
		}
	}
	if (!Request)
		return null;

	if (Request.overrideMimeType)
		Request.overrideMimeType('text/html');

	this.Send = function (method, url, callback, postparams)
	{
		if (typeof (postparams) == "object")
		{
			var params = "";
			for (var k in postparams)
				params += encodeURIComponent(k) + "=" + encodeURIComponent(postparams[k]) + "&";
			postparams = params.length > 0 ? params.substr(0, params.length - 1) : null;
		}
		else
			postparams = postparams ? postparams : null;

		if (method != "POST")
		{
			method = "GET";
			url += url.indexOf('?') == -1 ? "?" + postparams : "&" + postparams;
			postparams = null;
		}

		Request.open(method, url, true);

		if (method == "POST")
		{
			Request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
			if (postparams)
				Request.setRequestHeader("Content-length", postparams.length);
		}

		if (callback)
			Request.onreadystatechange = function () { if (Request.readyState != 4 || Done) return; Done = true; callback(Request, new Date() - SendTime.getTime()); }

		SendTime = new Date();
		Request.send(postparams);
	}
}

function DisableReturn(e)
{
	var e = e || window.event;
	if (e.keyCode == 13 || e.which == 13)
	{
		e.cancelBubble = true;
		return false;
	}
	return true;
}

function ButtonOver(id)
{
	try
	{
		var row = document.getElementById(id).rows[0];
		for (var i = 0; i < row.cells.length; i++)
		{
			var cell = row.cells[i];
			if (!cell.className.match(/_hover$/))
				cell.className = cell.className + "_hover";
		}
	}
	catch (e)
	{
	}
}

function ButtonOut(id)
{
	try
	{
		var row = document.getElementById(id).rows[0];
		for (var i = 0; i < row.cells.length; i++)
		{
			var cell = row.cells[i];
			cell.className = cell.className.replace(/_hover$/, "");
		}
	}
	catch (e)
	{
	}
}

function GetDateStringYYYYMMDD(date, dashes)
{
	if (!date)
		return null;

	var str = "";

	var year = date.getFullYear();
	str += year;
	if (dashes)
		str += "-";

	var month = date.getMonth() + 1;
	if (month < 10)
		str += "0";
	str += month;
	if (dashes)
		str += "-";

	var day = date.getDate();
	if (day < 10)
		str += "0";
	str += day;

	return str;
}

function GetDateStringDDMMYYYY(date)
{
	if (!date)
		return null;

	var str = "";
	var day = date.getDate();
	if (day < 10)
		str += "0";
	str += day + "-";

	var month = date.getMonth() + 1;
	if (month < 10)
		str += "0";
	str += month + "-";

	var year = date.getFullYear();
	str += year;

	return str;
}

function GetRadioGroupValue(form, name, unselected)
{
	var value = unselected;
	var r = new RegExp(name + "$");

	for (var i = 0; i < form.elements.length; i++)
	{
		if (form.elements[i].name.match(r) && form.elements[i].checked)
			return form.elements[i].value;
	}
	return value;
}

function GetDate(str)
{
	var d = str.split("-");
	var a = parseInt(d[0]);
	var b = parseInt(d[1]);
	var c = parseInt(d[2]);

	if (a > 31)
		return new Date(a, b, c, 0, 0, 0, 0);
	else
		return new Date(c, b, a, 0, 0, 0, 0);
}
