var Tooltip = new ClassToolTip()

function ClassToolTip()
{
	this.HiddenMarker = false
	this.oHoverImage = false
	this.bHoverTooltip = false
	this.markerVergroot = false
	this.nCurrentHover = 0
	this.HoverText = new Array()
	
	this.Hover = function(event, arrWoningen)
	{
		if (!document.getElementById('ToolTip')) return
		this.bHoverTooltip = true
		this.markerVergroot = false
		var oMarkerImage = ( event.srcElement ? event.srcElement : event.target )
	    	var oMarkerDiv = oMarkerImage.parentNode.parentNode
		var oKaartDiv = oMarkerDiv.parentNode.parentNode
		
		this.oHoverImage = oMarkerImage
		var sSrc = oMarkerImage.src.replace('.gif', '-h.gif')

		x = oMarkerImage.offsetLeft + oMarkerDiv.offsetLeft + oKaartDiv.offsetLeft
		y = oMarkerImage.offsetTop + oMarkerDiv.offsetTop + oKaartDiv.offsetTop
		
		y = GoogleMap.getSize().height - y - 30
		
		if (this.HiddenMarker) this.HiddenMarker.style.display = 'block'
		this.HiddenMarker = oMarkerImage
		this.HiddenMarker.style.display = 'none'

		if (arrWoningen.length > 1)
		{
			var sText = Settings.MeerdereObjecten
			this.HoverText = new Array()
			for(i=0; i<arrWoningen.length; i++)
			{
				if (arrWoningen[i].indexOf(Settings.CurrentMarker) == -1 || Settings.CurrentMarker == '')
				{
					this.HoverText[this.HoverText.length] = arrWoningen[i]
				}
			}
		}
		else
		{
			this.HoverText = new Array(arrWoningen[0])
			aGegevens = this.HoverText[0].split('|')
			id			= aGegevens[0]
			adres		= aGegevens[1]
			postcode	= aGegevens[2]
			plaats		= aGegevens[3]
			foto		= aGegevens[4]
			//foto        = Settings.FotoPrefix + foto.replace('.jpg', '_klein.jpg')
			//foto        = foto.replace('.gif', '_klein.gif')
			website		= aGegevens[5]
			objecttype	= aGegevens[6]
			prijsgetal1	= aGegevens[7]
			prijstekst1	= aGegevens[8]
			prijsgetal2	= aGegevens[9]
			prijstekst2	= aGegevens[10]
			prijs1 = ''
			prijs2 = ''
			if (prijsgetal1 != '') prijs1 += '&euro; ' + prijsgetal1 + ' '
			if (prijstekst1 != '' && prijsgetal1 != '') prijs1 += prijstekst1

			if (prijsgetal2 != '') prijs2 += '&euro; ' + prijsgetal2 + ' '
			if (prijstekst2 != '' && prijsgetal2 != '') prijs2 += prijstekst2

			prijs = prijs1 + (prijs1 !='' && prijs2 != '' ? ' | ' : '') + prijs2

			sText = adres + ' ' + plaats + ' ' + prijs
		}
		sClass = Settings.Website
		sHTML = '<table cellspacing="0" cellpadding="0" height="30" class="' + sClass + '">'
		sHTML += '<td class="tooltiplinks" style="background-image:url(' + sSrc + ');"><img src="/img/spacer.gif" width="25" height="23" /></td>'
		sHTML += '<td class="tooltipmidden"><div id="ToolTipText" class="ToolTipText"><a href="javascript:void(0);">' + sText + '</a></div></td>'
		sHTML += '<td class="tooltiprechts"><img src="/img/spacer.gif" width="5" height="23" /></td>'
		sHTML += '</table>'


		document.getElementById('ToolTip').innerHTML = sHTML
		document.getElementById('ToolTip').style.left = '-4000px'
		document.getElementById('ToolTip').style.display = 'block'
		br = document.getElementById('ToolTip').clientWidth - 30
		document.getElementById('ToolTipText').style.width = '0px'
		document.getElementById('ToolTip').style.left = x + 'px'
		document.getElementById('ToolTip').style.bottom = y + 'px'
		if (sText.indexOf('<sup>') > -1)
		{
			document.getElementById('ToolTipText').style.marginTop = "-5px"
		}
		this.nCurrentHover ++
		this.Verbreed(0, br, this.nCurrentHover)
	}
	
	this.Verbreed = function(stap, br, nHover)
	{
		if (this.nCurrentHover != nHover) return
		this.markerVergroot = false
		stappen = 12
		if ( navigator.userAgent.indexOf('Firefox') > -1 ) stappen -= 6
		stap ++
		document.getElementById('ToolTipText').style.width = br * this.FactorVersnel(stap / stappen) + 'px'
		if (stap < stappen)
		{
			setTimeout('Tooltip.Verbreed(' + stap + ',' + br + ',' + nHover + ')', 15)
		}
	}
	this.FactorVersnel = function(f)
	{
		return (1-Math.cos(f * Math.PI / 2))
	}


	this.CheckMouseOut = function()
	{
		if ( this.bHoverTooltip == false )
		{
			this.nCurrentHover ++
			this.markerVergroot = false
			if (this.HiddenMarker) this.HiddenMarker.style.display = 'block'
			document.getElementById('ToolTip').style.display = 'none'
		}
	}
	this.HoverTooltip = function()
	{
		this.bHoverTooltip = true
		document.getElementById('ToolTip').style.display = 'block'
	}
	
	this.UnHover = function()
	{
		this.oHoverImage = false
		this.bHoverTooltip = false
		setTimeout('Tooltip.CheckMouseOut()', 10)
	}

	this.ClickMarker = function(event)
	{
		document.getElementById('Preview').style.left = document.getElementById('ToolTip').style.left
		document.getElementById('Preview').style.bottom = document.getElementById('ToolTip').style.bottom

		sClass = "funda"
		sHTML = '<table cellspacing="0" cellpadding="0" height="10" class="' + sClass + '">'
		sHTML += '<tr>'
		sHTML += '<td class="tooltip-nw"><img src="/img/spacer.gif" width="7" height="5" /><br/></td>'
		sHTML += '<td class="tooltip-n"></td>'
		sHTML += '<td class="tooltip-no"></td>'
		sHTML += '</tr>'
		sHTML += '<tr>'
		sHTML += '<td class="tooltip-w"></td>'
		sHTML += '<td class="tooltip-c">'
		sHTML += '<div id="tooltipcenter">'
		sHTML += '<table cellspacing="0" cellpadding="0">'
		for(i=0; (i<this.HoverText.length && i<3); i++)
		{
			aGegevens = this.HoverText[i].split('|')
			id			= aGegevens[0]
			adres		= aGegevens[1]
			postcode	= aGegevens[2]
			plaats		= aGegevens[3]
			foto		= aGegevens[4]
			//foto        = Settings.FotoPrefix + foto.replace('.jpg', '_klein.jpg')
			website		= aGegevens[5]
			objecttype	= aGegevens[6]
			prijsgetal1	= aGegevens[7]
			prijstekst1	= aGegevens[8]
			prijsgetal2	= aGegevens[9]
			prijstekst2	= aGegevens[10]

			prijs1 = ''
			prijs2 = ''

			if (prijsgetal1 != '') prijs1 += '<span class="price">&euro; ' + prijsgetal1 + '</span> '
			if (prijstekst1 != '' && prijsgetal1 != '') prijs1 += '<abbr class="price-ext">' + prijstekst1 + '</abbr>'

			if (prijsgetal2 != '') prijs2 += '<span class="price">&euro; ' + prijsgetal2 + '</span> '
			if (prijstekst2 != '' && prijsgetal2 != '') prijs2 += '<abbr class="price-ext">' + prijstekst2 + '</abbr>'

			prijs = prijs1 + (prijs1 !='' && prijs2 != '' ? ' | ' : '') + prijs2

			//foto = 'http://images.funda.nl/woningen/img/' + foto.substring(0,2) + '/' + foto.substring(0,5) + '/' + foto.replace('.jpg', '_120.jpg')

			sText = '<a class="tooltip-adres" href="' + Settings.WoningUrl + 'default.aspx?id=' + id + '&objecttype=' + objecttype + '">' + adres + '</a><br/>'
			sText += '<span class="tooltip-plaats">' + postcode + ' ' + plaats + '</span><br /><br />'
			sText += '<span class="tooltip-prijs">' + prijs + '</span>'
			sText += ' <span class="tooltip-koopconditie"></span>'

			sHTML += '<tr>'
			sHTML += '<td class="tooltip-tekst"><a href="' + Settings.WoningUrl + 'default.aspx?id=' + id + '&objecttype=' + objecttype + '"><img src="' + foto + '" class="tooltip-foto" style="width:120px;height:80px" /></a></td>'
			sHTML += '<td class="tooltip-tekst"><div class="ToolTipText">' + sText + '</div></td>'
			if (i == 0)
			{
				sHTML += '<td class="tooltip-tekst"><img width="9" height="9" src="/img/kaart/marker/map-icn-close.gif" class="tooltip-close" onclick="Tooltip.Close()"></td>'
			}
			else
			{
				sHTML += '<td class="tooltip-tekst"></td>'
			}
			sHTML += '</tr>'
		}
		ids = ''
		for(i=0; i<this.HoverText.length; i++)
		{
			aGegevens = this.HoverText[i].split('|')
			if (i != 0) ids += ','
			ids += aGegevens[0]
		}
		if (this.HoverText.length > 3)
		{
			sHTML += '<tr><td class="tooltip-tekst" colspan="3" align="right"><div class="ToolTipText" style="text-align:right;">'
			sHTML += '<a href="' + Settings.MeerdereObjectenUrl + 'default.aspx?objecttype=' + objecttype + '&ids=' + ids + '">Meer...</a>'
			sHTML += '</div></td></tr>'
		}
		sHTML += '</table>'
		sHTML += '</div>'
		sHTML += '</td>'
		sHTML += '<td class="tooltip-o"></td>'
		sHTML += '</tr>'
		sHTML += '<tr>'
		sHTML += '<td class="tooltip-zw"></td>'
		sHTML += '<td class="tooltip-z"></td>'
		sHTML += '<td class="tooltip-zo"><img src="/img/spacer.gif" width="5" height="12" /><br/></td>'
		sHTML += '</tr>'
		sHTML += '</table>'

		var Dummy = document.createElement('DIV')
		Dummy.style.position = 'absolute'
		Dummy.style.left = '-4000px'
		Dummy.style.top = '0px'
		document.getElementById('KaartContainer').appendChild(Dummy)
		Dummy.innerHTML = sHTML

		xTot = Dummy.clientWidth - 12
		if (this.HoverText.length > 3)
		{
			yTot = 2 + 88 * 3 + 20
		}
		else
		{
			yTot = 2 + 88 * this.HoverText.length
		}
		xVan = document.getElementById('ToolTip').clientWidth - 12
		yVan = 13
		document.getElementById('Preview').innerHTML = sHTML
		document.getElementById('Preview').style.display = 'block'
		document.getElementById('ToolTip').style.display = 'none'
		document.getElementById('tooltipcenter').style.width = xVan + 'px'

		if ( navigator.userAgent.indexOf('Firefox') > -1 ) 
		{
			document.getElementById('Preview').style.left = parseInt(document.getElementById('Preview').style.left) - 1 + 'px'
			document.getElementById('Preview').style.bottom = parseInt(document.getElementById('Preview').style.bottom) - 1 + 'px'
		}
		document.getElementById('tooltipcenter').style.height = yVan
		this.nCurrentHover ++
		this.Vergroot(0, xVan, xTot, yVan, yTot, this.nCurrentHover)
	}
	
	this.Vergroot = function(stap, xVan, xTot, yVan, yTot, nHover)
	{
		this.markerVergroot = true
		stappen = 8
		if ( navigator.userAgent.indexOf('Firefox') > -1 ) stappen -= 4
		stap ++
		factor = this.FactorVersnelVertraag(stap / stappen)
		document.getElementById('tooltipcenter').style.width = xVan + (xTot - xVan) * factor + 'px'
		document.getElementById('tooltipcenter').style.height = yVan + (yTot - yVan) * factor + 'px'
		if (stap < stappen)
		{
			setTimeout('Tooltip.Vergroot(' + stap + ',' + xVan + ',' + xTot + ',' + yVan + ',' + yTot + ',' + nHover + ')', 15)
		}
	}
	
	this.FactorVersnelVertraag = function(f)
	{
		return .5 - Math.cos(f * Math.PI) * .5
	}

	this.Close = function()
	{
		if (this.HiddenMarker) this.HiddenMarker.style.display = 'block'
		document.getElementById('ToolTip').style.display = 'none'
		document.getElementById('Preview').style.display = 'none'
	}
}


function Hover(event)
{
	arrWoningen = new Array()
	for (i=1; i<arguments.length; i++)
	{
		arrWoningen[arrWoningen.length] = arguments[i]
	}
	Tooltip.Hover(event, arrWoningen)
}
