String.prototype.trim = function() { return this.replace(/^\s+|\s+$/, ''); };

var reqXml=false;
var aicnXml = false;
var maincontent;
var textcontent;
var scrollArea;
var scroller;
var scrolldocH;
var scrollcontH;
var scrollAreaH;
var scrollH;
var scrollDist;
var interval, interval2;
var animInterval;
var IEversion = vIE();
var isHome;
var flashVersion;

if (typeof theLanguage == 'undefined') {
	var theLanguage = "nl";
}

function getCookie(name) {
    var start = document.cookie.indexOf(name+"=");
    var len = start+name.length+1;
    if ((!start) && (name != document.cookie.substring(0,name.length))) return null;
    if (start == -1) return null;
    var end = document.cookie.indexOf(";",len);
    if (end == -1) end = document.cookie.length;
    return unescape(document.cookie.substring(len,end));
}

function setCookie(name,value,expires,path,domain,secure) {
    document.cookie = name + "=" +escape(value) +
        ( (expires) ? ";expires=" + expires.toGMTString() : "") +
        ( ("/") ? ";path=" + "/" : "") +
        ( (domain) ? ";domain=" + domain : "") +
        ( (secure) ? ";secure" : "");
}

function deleteCookie(name,path,domain) {
    if (getCookie(name)) document.cookie = name + "=" +
       ( (path) ? ";path=" + path : "") +
       ( (domain) ? ";domain=" + domain : "") +
       ";expires=Thu, 01-Jan-70 00:00:01 GMT";
}

function vIE() {
	return (navigator.appName=='Microsoft Internet Explorer')?parseFloat((new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})")).exec(navigator.userAgent)[1]):-1;
}

function setStylesheet(id)
{
	if (id == undefined)
		id = "normal";
	else setCookie('stylesheet', id);

	if (navigator.appName.indexOf("NetFront") >=0 || navigator.appName.indexOf("WebTV") >=0) 
		setCookie('stylesheet','normal');
	
	if (getCookie('stylesheet'))
		var css = 'fontsize_'+(getCookie('stylesheet'))+'.css';
	else
		var css = 'fontsize_normal.css';
	
	var headID = document.getElementsByTagName("head")[0];
	var cssNode = document.createElement('link');
	cssNode.type = 'text/css';
	cssNode.rel = 'stylesheet';
	cssNode.href = '/fileadmin/templates/briljanthoutbouw/'+css;
	cssNode.media = 'screen';
	headID.appendChild(cssNode);

	interval = window.setInterval("doSetScrollBar()", 100);
	
	
	return false;
}


function insertIEcss()
{
	var headID = document.getElementsByTagName("head")[0];
	var cssNode = document.createElement('link');
	cssNode.type = 'text/css';
	cssNode.rel = 'stylesheet';
	cssNode.href = '/fileadmin/templates/briljanthoutbouw/ie.css';
	cssNode.media = 'screen';
	headID.appendChild(cssNode);
	
}


function doOnload(aIsHome)
{

    flashVersion = deconcept.SWFObjectUtil.getPlayerVersion();
	flashVersion = flashVersion["major"];

	if ((IEversion < 7) && (IEversion > 4)) {
		insertIEcss();
	}
	if (aIsHome != true) {
		isHome = false;
		
		if (xGetElementById('galleryScrollArea') != null) {
			scrollArea = xGetElementById('galleryScrollArea');
		}
		else {
			scrollArea = xGetElementById('scrollArea');
		}
		
		xDisplay(scrollArea, "none");
		
		setStylesheet();
		
		if (document.getElementById('content') != undefined) {
		
			var so = new SWFObject("/fileadmin/templates/briljanthoutbouw/flash/imagefader.swf", "homepage", "300", "375", "8", "#ffffff");
			so.addParam("quality", "high");
			so.addParam("wmode", "transparent");
			
			for (var i=1; i <= 4; i++) {
				if (document.getElementById('contentflashimage'+i) != undefined) {
					var theSrc = document.getElementById('contentflashimage'+i).src;
					so.addVariable("flashimg"+i, theSrc);
				}
			}
			
			so.write("contentimage");
		}
	}
	else {
	
		isHome = true;
				
		var flashContainer = document.getElementById("flashcontainer");
		
		var so = new SWFObject("/fileadmin/templates/briljanthoutbouw/flash/homepage.swf", "homepage", "960", "336", "8", "#ffffff");
		so.addParam("quality", "high");
		so.addParam("wmode", "transparent");
	
		var flashHeader = document.getElementById('flashheader').innerHTML;
		var flashSubheader = document.getElementById('flashsubheader').innerHTML;
		var flashContent = document.getElementById('flashcontent').innerHTML;
		
		if (typeof theLanguage != 'undefined') {
			so.addVariable("lang", theLanguage);
		}
				
		so.addVariable("flashheader", flashHeader);
		so.addVariable("flashsubheader", flashSubheader);
		if (flashContent != '') {
			so.addVariable("flashcontent", flashContent);
		}
		else {
			document.getElementById('flashcontent').style.display = 'none';
		}
		
		
		for (var i=1; i <= 4; i++) {
			if (document.getElementById('flashimage'+i) != undefined) {
				var theSrc = document.getElementById('flashimage'+i).src;
				so.addVariable("flashimg"+i, theSrc);
			}
		}
		
		so.write("flashcontainer");
		
		if (flashVersion < 8) {
			flashContainer.style.display = 'block';
			
			//replace '|' with space in non-flash version
			flashHeader = flashHeader.replace(/\|/g, '&nbsp;');
			flashSubheader = flashSubheader.replace(/\|/g, '&nbsp;');
			
			document.getElementById('flashheader').innerHTML = flashHeader;
			document.getElementById('flashsubheader').innerHTML = flashSubheader;
		}
	}
}



function escapeFlashVars(aStr)
{
	return aStr.replace("&amp;", "%26");
}

function doSetGalleryScrollbarPosition()
{
	var searchString = document.location.search;
	var photo = 0;
	var pos = 0;
	var docY = 0;
	var thumbHeight = 108;
	
	if (!searchString) return false;
	
	searchString = searchString.substring(1);
	var nvPairs = searchString.split("&");
		
	if (nvPairs.length > 0) {
		for (i = 0; i < nvPairs.length; i++) {
		     var nvPair = nvPairs[i].split("=");
			 switch(nvPair[0]) {
				case "tx_photogals_image":
					photo = nvPair[1];
					break;
			}			 
		}
	}
	
	if (photo == 0) return;
	
	pos = photo * thumbHeight;
	
	if ( (pos + scrollcontH) > scrolldocH) {
		docY = scrollcontH - scrolldocH;
	} else {
		docY = -pos;
	}
	
	var scrollerY =  -(docY / ((scrolldocH - scrollcontH) / scrollDist));
	
	xTop(textcontent, docY);
	xTop(scroller, scrollerY);
}


function doSetScrollBar()
{
	
	if (interval != undefined) {
		window.clearInterval(interval);
	}
	if (interval2 != undefined) {
		window.clearInterval(interval2);
	}
	maincontent = xGetElementById('maincontent');
	textcontent = xGetElementById('textcontent');
	scrollArea = xGetElementById('scrollArea');
	scroller = xGetElementById('scroller');
	xDisplay(scrollArea, "none");
	
	setScrollBar();
}

function setScrollBar() {

	xHeight(scroller,0);
	xTop(scroller,0);
	xTop(textcontent,0);
	xDisplay(scrollArea, "block");
	xOpacity(scrollArea,0);

	scrolldocH = xHeight(textcontent);
	scrollcontH = xHeight(maincontent);
	scrollAreaH = xHeight(scrollArea);
	
	//calculate height of scroller and resize the scroller div
	//(however, we make sure that it isn't to small for long pages)
	scrollH = Math.round((scrollcontH * scrollAreaH) / scrolldocH);
	
	if(scrollH < 15) scrollH = 15;
//	document.getElementById("scroller").style.height = Math.round(scrollH) + "px";
	xHeight(scroller,scrollH);

	
	if (scrollH < scrollAreaH) {
		xDisplay(scrollArea, "block");
		xOpacity(scrollArea,1);
	} else {
		xDisplay(scrollArea, "none");
	}

	//what is the effective scroll distance once the scoller's height has been taken into account
	scrollDist = Math.round(scrollAreaH-scrollH);

	Drag.init(scroller,null,0,0,-1,scrollDist);

	scroller.onDrag = function (x,y) {
		var scrollY = xTop(scroller);
		
		var docY = 0 - (scrollY * (scrolldocH - scrollcontH) / scrollDist);
		docY = Math.round(docY);

		xTop(textcontent,docY);
	}

	doSetGalleryScrollbarPosition();
}

/** This is high-level function.
 * It must react to delta being more/less than zero.
 */
function handle(delta) {
	var scrollY = xTop(scroller);
	var multiplier = 9;
	
	if (delta < 0) {
		if (scrollY <= scrollDist) {
			if ((scrollY + multiplier) > scrollDist) {
				scrollY = scrollDist;
			}
			else {
				scrollY -= (delta * multiplier);
			}
		}	
	} else {
		if (scrollY > 0) {
			if ((scrollY - multiplier) < 0) {
				scrollY = 0;
			}
			else {
				scrollY -= (delta * multiplier);
			}
		}
	}

	xTop(scroller, scrollY);
	
	var docY = 0 - (scrollY * (scrolldocH - scrollcontH) / scrollDist);
	docY = Math.round(docY);
	xTop(textcontent,docY);
}

/** Event handler for mouse wheel event.
 */
function wheel(event){
		if (isHome != true) {
		
	        var delta = 0;
	        if (!event) /* For IE. */
	                event = window.event;
	        if (event.wheelDelta) { /* IE/Opera. */
	                delta = event.wheelDelta/120;
	                /** In Opera 9, delta differs in sign as compared to IE.
	                 */
	                if (window.opera)
	                        delta = -delta;
	        } else if (event.detail) { /** Mozilla case. */
	                /** In Mozilla, sign of delta is different than in IE.
	                 * Also, delta is multiple of 3.
	                 */
	                delta = -event.detail/3;
	        }
	        /** If delta is nonzero, handle it.
	         * Basically, delta is now positive if wheel was scrolled up,
	         * and negative, if wheel was scrolled down.
	         */
	        if (delta)
	                handle(delta);
	   /** Prevent default actions caused by mouse wheel.
	         * That might be ugly, but we handle scrolls somehow
	         * anyway, so don't bother here..
	         */
	        if (event.preventDefault)
	                event.preventDefault();
		event.returnValue = false;
	}
}

/** Initialization code. 
 * If you use your own event management code, change it as required.
 */
if (window.addEventListener)
    /** DOMMouseScroll is for mozilla. */
	window.addEventListener('DOMMouseScroll', wheel, false);
/** IE/Opera. */
window.onmousewheel = document.onmousewheel = wheel;

