addEvent(window, 'load', setupImagePopping, false);
addEvent(window, 'load', Slideshow_init, false);

var photobar;
var contentpadding;

function setupImagePopping()
{
	var divs=document.getElementsByTagName('div');

	for (var i=0; i < divs.length; i++)
	{
		var div=divs[i];

		if (inClass(div, 'photobar') && !inClass(div, 'nohover'))
		{
			photobar=div;
			var ims=div.getElementsByTagName('img');

			for (var j=0; j <ims.length; j++)
			{
				if (ims[j].src.indexOf('/forsale/') != -1)
					continue;
				if (ims[j].src.indexOf('current_schemes') != -1)
					continue;
				addEvent(ims[j], 'click', popupImage, false);
				addEvent(ims[j], 'mouseover', hoverPopImage, false);
				addEvent(ims[j], 'mousemove', hoverPopImage, false);
				addEvent(ims[j], 'mouseout', unhoverPopImage, false);
			}
		}
		else if (inClass(div, 'contentpadding'))
		{
			contentpadding=div;
		}
	}

	var transbar=document.getElementById('transbar');
	if (transbar)
	{
		if (navigator.appName == 'Microsoft Internet Explorer' && !window.opera)
			transbar.style.right=(document.documentElement.offsetWidth*0.035+1)+'px';
		else transbar.style.right=(document.documentElement.offsetWidth*0.035)+'px';

		var content=document.getElementById('content');
	//	content.style.backgroundImage='none';
	}
}

function popupImage(e)
{
	if (window.event)
	{
		window.event.returnValue=false; 
	}
	else if (e)
		e.preventDefault();

	var largeimdiv=document.getElementById('largeimdiv');
	if (largeimdiv)
	{
		largeimdiv.parentNode.removeChild(largeimdiv);
	}

	var target=ascendDOM(getEventSource(e), 'img');

	var src=target.src;

	src=src.replace(/(.*)\/([^\/]*)/, '$1/large/$2');

	var newim=document.createElement('img');
	newim.src=src;
	newim.alt="Enlarged image";
	newim.className='enlarged';
	//newim.style.height=696/(target.offsetWidth/target.offsetHeight);
	newim.style.width=(contentpadding.offsetWidth-250)+'px';
	newim.style.height=(contentpadding.offsetWidth-250)/(target.offsetWidth/target.offsetHeight);

	var imdiv=document.createElement('div');
	imdiv.id='largeimdiv';
	
	imdiv.appendChild(newim);

/*	var aspect=target.offsetWidth/target.offsetHeight;
	var preferredtop=(target.offsetTop-document.getElementById('contentframe').scrollTop);
	if (preferredtop < 76)
	{
		preferredtop = 76;
	}
	
	var largeheight=500/aspect;
	var windowheight;
	if (document.documentElement.clientHeight)
		windowheight=document.documentElement.clientHeight;
	else if (document.documentElement.offsetHeight)
	{
		windowheight=document.documentElement.offsetHeight;
	}
	else if (document.clientHeight)
	{
		windowheight=document.clientHeight;
	}

	if ((preferredtop + largeheight) > (windowheight-25))
	{
		imdiv.style.bottom="25px";
	}
	else
	{
		imdiv.style.top=preferredtop+'px';
	}*/

	var close=document.createElement('img');
	close.src='assets/close.png';
	close.style.position='absolute';
	close.style.top='15px';
	close.style.left='15px';

	imdiv.appendChild(close);

	if (photobar.offsetLeft != 0)
	{
		imdiv.style.left='60px';
	}


	document.body.appendChild(imdiv);

	addEvent(close, 'click', unpopImage, false);

	return false;
}

function unpopImage(e)
{
	var imdiv=document.getElementById('largeimdiv');

	if (!imdiv)
		return;

	document.body.removeChild(imdiv);
}

var zoomel=null;

function highlightImage(im)
{
	if (navigator.appName == 'Microsoft Internet Explorer' && !window.opera)
	{	
		im.style.filter='alpha(Opacity=70)';
	}
}

function hoverPopImage(e)
{
	if (document.getElementById('largeimdiv'))
		return;

	var e=(e)?e:window.event;

	var target=ascendDOM(getEventSource(e), 'img');

	highlightImage(target);
}


function unhoverPopImage(e)
{
	var target=ascendDOM(getEventSource(e), 'img');
	target.hidetimer=setTimeout(function() {hidePopImage(target)}, 50);
}

function hidePopImage(target)
{
	if (navigator.appName == 'Microsoft Internet Explorer' && !window.opera)
	{	
		target.style.filter='none';
	}

	if (zoomel)
	{
		zoomel.parentNode.removeChild(zoomel);
		zoomel=null;
	}
}

//the rate of scroll is max_scroll_speed*x^ramping for x in [-1,1]
//so ramping must be an odd integer
var max_scroll_speed=70;
var ramping=3;

function Slideshow_init()
{
	var slideshow=document.getElementById('slideshow');
	if (slideshow)
	{
		Slideshow_setupInfoPoints();
		var slideshow_scroller=document.getElementById('slideshow_scroller');
		
		for (var i=0; i < slideshow_scroller.childNodes.length; i++)
		{
			var n=slideshow_scroller.childNodes[i];

			if (n.nodeType == 3)
			{
				slideshow_scroller.removeChild(n);
				i--;
			}
		}
	
		Slideshow_updateFromHash();

//		slideshow.style.overflow='hidden';

		slideshow.scrollrate=-0.05;

		var SS_move=function (e) {
			var e=(e)?e:window.event;
			var x=e.clientX-findPosX(slideshow);
			slideshow.scrollrate=(x/slideshow.offsetWidth)*2-1;
			slideshow.scrollrate=Math.pow(slideshow.scrollrate, ramping);
			//window.status=slideshow.scrollrate;
/*			if (!slideshow.scroller)
			{
				slideshow.scroller=setInterval(Slideshow_update, 50);
			}*/
		};

		var SS_over=function () {
			if (slideshow.scroller)
				return;
			slideshow.scroller=setInterval(Slideshow_update, 50);
		};
		
		var SS_out= function () {
			clearInterval(slideshow.scroller);
			slideshow.scroller=null;
		};
		
		addEvent(slideshow_scroller, 'mousemove', SS_move, false);
		addEvent(slideshow_scroller, 'mouseover', SS_over, false);
		addEvent(slideshow_scroller, 'mouseout', SS_out, false);
		
		var transbar=document.getElementById('transbar');
		addEvent(transbar, 'mousemove', SS_move, false);
		addEvent(transbar, 'mouseover', SS_over, false);
		addEvent(transbar, 'mouseout', SS_out, false);

		SS_over();
	}
}

var min_scrollamount=1;

function Slideshow_update()
{
	var slideshow=document.getElementById('slideshow');
	var slideshow_scroller=document.getElementById('slideshow_scroller');
	
/*	var newpos=slideshow_scroller.offsetLeft-parseInt(slideshow.scrollrate*max_scroll_speed+0.5);
	if (newpos > 0)
		newpos = 0;
	var max=slideshow.offsetWidth - slideshow_scroller.offsetWidth;
	if (newpos < max)
		newpos=max;
	slideshow_scroller.style.left=newpos+'px';*/

	var scrollamount=-slideshow.scrollrate*max_scroll_speed;
/*	if (scrollamount < min_scrollamount && scrollamount > -min_scrollamount)
	{
		if (scrollamount > 0)
			scrollamount=min_scrollamount;
		else
			scrollamount=-min_scrollamount;
	}*/
	slideshow.scrollLeft=slideshow.scrollLeft+parseInt(scrollamount+0.5);
}

var lasthash=null;
function Slideshow_updateFromHash()
{
	if (location.hash && location.hash != lasthash)
	{
		lasthash=location.hash;
		var slideshow=document.getElementById('slideshow');
		var slideshow_scroller=document.getElementById('slideshow_scroller');

		if (slideshow.scrollLeft != 0)
		{
			/*slideshow_scroller.style.left=-slideshow.scrollLeft+'px';
			slideshow.scrollLeft=0;*/
		}
		else
		{
			var imid=location.hash.substring(1);
			//slideshow_scroller.style.left='-'+document.getElementById(imid).offsetLeft+'px';
			slideshow.scrollLeft=document.getElementById(imid).offsetLeft;
		}
	}
}

function Slideshow_setupInfoPoints()
{
	var uls=document.getElementsByTagName('ul');
	
	for (var i=0; i < uls.length; i++)
	{
		var ul=uls[i];
		if (inClass(ul, 'infopoints'))
		{
			var infps=ul.getElementsByTagName('li');
			for (var j=0; j < infps.length; j++)
			{
				var inf=infps[j];
				inf.style.visibility='hidden';
				var im=inf.getElementsByTagName('img')[0];
				if (navigator.appVersion.match(/.*MSIE [3-6].*/))
				{
					im.style.width=im.offsetWidth+'px';
					im.style.height=im.offsetHeight+'px';
					im.src='assets/blankpx.png';
					im.runtimeStyle.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod='scale', src='assets/info.png')";
				}
				addEvent(inf, 'mouseover', function (e) {
					var inf=ascendDOM(getEventSource(e), 'li');
					if (inf.htimer)
					{
						clearTimeout(inf.htimer);
						inf.htimer=null;
					}
					inf.style.zIndex=100;
					inf.style.visibility='visible';
				}, false);
				addEvent(inf, 'mouseout', function (e) {
					var inf=ascendDOM(getEventSource(e), 'li');
					inf.htimer=setTimeout(function () {inf.style.zIndex=1; inf.style.visibility='hidden';}, 50);
				}, false);
			}
		}
	}
}
