
$(document).ready(myOnDomReady);
$(window).load(myDocumentLoad);

var g=
{
	pageName	:""
	,flavour	:""
	,async		: "async.php"
	,debug		: false
	,history	: false
	,url		: ""
	,nbMenuItems: 6
	,menuLeft	: 310
	,winWMin	: 930
	,wRef		: 1020
	,cSpc		: 20/1020
	,leftSpace	: 20
	,c0w		: 260/1330
	,contentw	: 1020/1330
	,contentx	: 0,logoShift:0
	,c1w		: 500/1020
	,c2w		: 414/1020
	,c3w		: 70/1020
	,logoStartY	: 160
	,logoStartH	: 160
	,contentHeight : 684
	,italicw	: 400/1020
	,selectedImage:0
	,overImage:0,hideOver:0
	,col2w		: 0
	,thumbScroll:0
	,thumbR:0
	,thumbL:0
	,thumbW:0
	,thumbPgw:0
	,imgState:0
	,kdviW:240
	,kdviH:18
	,ovDelayTimr:0
	,toOv:0
	,menuFadedIn:0
};
var isIE,isIE6;

function RQDebug(s)
{	if(g.debug)
	{	if( !$('#debug').is("div"))
		{	$('body').append("<div id=\"debug\" style=\"z-index:1000;position:absolute;top:0;left:0;background:#000;color:#fff;font-size:9px;\"></div>");
			$('#debug').css({opacity:0.8});
		}
	
		$('#debug').append("<div>"+s+"</div>");
	
	}
}

// myOnDomReady
function myOnDomReady()
{
	//RQDebug("myOnDomReady with g.pageName="+g.pageName)

	// browser detection
	isIE = jQuery.browser.msie?true:false;
	isIE6 = (isIE && (jQuery.browser.version.charAt(0)<="6" ))?true:false;

	
	$('.all').hide();

	// store menu positions
	$('#menu li').each(function(index){ 
		$(this).data("cleft", parseInt($(this).css('left')));
		if( !$(this).find('a').attr('href')) $(this).mouseover(menuItemOver).mouseout(menuItemOut);
	});
	$(".children0").mouseover(function(){menuItemKeepUp();}).mouseout(menuItemOut);


	// init menu drop down
	gMenu.M_init();


	MakeMenuLinks();


	$('#logo, #ketDeVriesInstitute').css({cursor:"pointer"}).click(function(){FetchURL("Page/Home");});

	// init page content
	InitFoldables();
	InitGalleries();

	// user dom ready
	inlineDomReady();

	AdjustLayout();
	InitTooltips();
	gnews.M_init();
	
	// img ondemand
	$('img.ondemand').each(function(){	$(this).data('imgsrc',$(this).attr('src')); $(this).removeAttr('src'); });


	if( g.history)
	{	$.historyInit(onHistoryPage);
		// set onlick event for buttons
		$("a[rel=history]").click(function(){
				RQDebug(this.href);
				/*
				var hash = this.href;
				hash = hash.replace(/^.*#/, '');
				// moves to a new page. pageload is called at once. 
				$.historyLoad(hash);
				*/
				return true;
			});
	}
	
	// opening animation
	$('#menu,#column0,#column1,#column2,#column3,#footer').hide();
	$('#menu a span').css({opacity:0.01});
	$('#menu').css({top:40,height:0})

	var img=$("<img id='logo1' src=\"Data/Img/logoKDVIIntro.png\" />");
	g.logoStartH = parseInt(g.kdviW*160/240);
	img.css({position:"absolute",top:0,left:g.contentx+g.leftSpace+g.logoShift,height:g.logoStartH}).hide();		// dunno bout the 9 shift
	$('#whiteTop').css({height:$(window).height()});

	var isCanvas;
	if( gIntro.M_create())
	{	$('#whiteTop').prepend(img);
		img.hide();
		isCanvas=true;
	}
	else
	{	isCanvas=false;
		img.remove();
	}

	$('.all').show();
	gIntro.M_start(function(){
		RQDebug("gIntro.M_start function");
		if( isCanvas)
		{	img.show();
			$('#whiteTop').animate({height:40},{duration:1000, easing:"easeInSine" ,step:sIntroEasing,complete:function()
			{	sIntroEasing();		// to adjust logo position
				introAnimateMenu();
			}});
		}else introAnimateMenu();
	});

}
function introAnimateMenu()
{	RQDebug("introAnimateMenu");
	$('#menu').show().animate({top:24,height:16},{duration:500,easing:"easeOutElastic",complete:function()
	{	g.menuFadedIn=0
		$('#menu a span').animate({opacity:1},"slow",function()
		{	if( !g.menuFadedIn)
			{	g.menuFadedIn=1;
				$('#column0').fadeIn("slow",function(){
					$('#column1').fadeIn("slow",function(){
						$('#column2').fadeIn("slow",function(){
							$('#footer').fadeIn();
							$('#column3').fadeIn("slow");
							RQDebug("Start news");
							gnews.M_start();
						});

					});
				});					
			}
		});
	}});
}

function sIntroEasing()
{
	var imgH=g.logoStartH+40;
	var o=$('#whiteTop');
	var h=o.height();
	$('#logo1').css({top:Math.min(h-imgH,g.logoStartY) });
	$('#ketDeVriesInstitute').css({top:Math.min(h-g.kdviH, g.logoStartY+g.logoStartH+20 )})

}

// custom easing for intro
jQuery.extend( jQuery.easing,
{
	easeInSine: function (x, t, b, c, d) {
		return -c * Math.cos(t/d * (Math.PI/2)) + c + b;
	}
		,easeOutElastic: function (x, t, b, c, d) {
		var s=1.70158;var p=0;var a=c;
		if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
		if (a < Math.abs(c)) { a=c; var s=p/4; }
		else var s = p/(2*Math.PI) * Math.asin (c/a);
		return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
	}
});


// myDocumentLoad
function myDocumentLoad()
{	
	InstallResize();

	// todo: compute g.contentHeight from actual column1's content 

	AdjustLayout();
}
function onHistoryPage()
{
	RQDebug("onHistoryPage");
}

function InstallResize()
{
	$(window).resize(onWindowResize).scroll( onWindowScroll);
}

function onWindowResize()
{
	AdjustLayout();
}
function onWindowScroll()
{
	AdjustLayout();

}

function getBodyH()
{
	var bodyH=$("body").height();
	if ( $.browser.msie ) 
	{	
	}
	else if ($.browser.mozilla)
		bodyH-=17;
	else if ($.browser.safari) //If Apple's Safari *or* Google's Chrome
		bodyH-=58;
	else{}
	return bodyH;
}
function AdjustLayout()
{
	var windowWidth		= $(window).width();
	var windowHeight	= $(window).height();
	
	var bodyH = Math.max($(document).height(),getBodyH());
	var winW	= Math.max( g.winWMin-20, Math.min( windowWidth-20, 1330));
	if( windowWidth>=1350)
	{	g.contentx=(windowWidth-1350)/2;
		g.logoShift=9
	}
	else
	{	g.logoShift=0
		g.contentx=0;
	}
	$("div.all").css({left:g.contentx,width:winW});
	
	var c0w		= Math.max(200,g.c0w*winW);
	var contentX= g.leftSpace+c0w;
	var cW		= winW-contentX;

	var IE_leftCorrection=0;
	if(	isIE)	//IE Error on shift: 20x95
	{	$('#column1,#column2,#column3').css({top:0,left:0});
		IE_leftCorrection = -20;
	}


	//$('#whiteTop').css({height:40});
	
	$('#inner').css({width:winW});
	$('#column0').css({left:g.leftSpace,width:c0w});


	g.kdviW = 241*c0w/260;
	g.kdviH = g.kdviW*18/241;
	var c1w=g.c1w*cW;
	$('#ketDeVriesInstitute').css({left:g.leftSpace,width:g.kdviW,height:g.kdviH,top: 40-g.kdviH});

	var itemSize		= cW/g.nbMenuItems;
	// adjust menu position
	$('#menu li').each(function(index){ 
		var x=Math.floor($(this).data("cleft")*cW/g.wRef);
		$(this).css({left:x, width: itemSize-10});
		$('#d'+$(this).attr('id')).css({left:x+contentX});
	});


	$('#menu').css({left:contentX,width:cW+8});
	$('#column1').css({left:g.leftSpace+c0w+IE_leftCorrection,width:c1w});
	g.col2w = g.c2w*cW;
	$('#column2').css({left:g.leftSpace+c0w+c1w+g.cSpc*cW, width:g.col2w});
	$('#column3').css({left:g.leftSpace+c0w+c1w+2*g.cSpc*cW+g.c2w*cW, width:g.c3w*cW});
	$('p .italic').css({width:g.italicw*cW})
	$('#icPDF').css({left:(g.c3w*cW-23)/2});

	OrganizeThumbs();

	// Toolbar at the bottom
	var y = $(window).height() + $(document).scrollTop(); 
	$(".alignBottom").each(function(){
		var margin=0;
		if(jQuery.browser.msie) margin=0;
		else if($.browser.safari) margin=12;
		$(this).css({left:0,zIndex:100,top:y-margin-parseInt($(this).height()),width:winW});

	});

	// news
	gnews.M_resize(c1w,372*c1w/500);

}

function NewHistory(title,url)
{
	document.title=title;
	if(g.history && url) $.historyAddHistory(url);
}

function RQMelKDVI(host,ext,name,content)
{
	var mel
	mel=name+"@"+host+"."+ext;
	document.write("<a href=\""+"mailto:");
	document.write(mel);
	document.write("\"");
	document.write(">");
	if( !content) content=mel;
	document.write(content);
	document.write("</a>");
}



function MakeMenuLinks()
{	$("a").RQTransformLinks();
}

jQuery.fn.RQTransformLinks=function()
{
	return this.each(function()
		{	var ref=$(this).attr('href');
			if( ref&& ref!=undefined) 
			{
				var ind=ref.indexOf(g.url,0); // IE Fix: removes URL from ref
				if( ind==0)
					ref=ref.substring(g.url.length)
				if(ref)
				{	if( ref.indexOf("http://",0)==0 || ref.indexOf("mailto:",0)==0)
					{	// external: preserve link
						$(this).attr('target',"new");
					}
					else $(this).data('link',ref).css({cursor:"pointer"}).removeAttr('href').mousedown(onLinkClicked);
					
				}
			}
		}
	);
}
function onLinkClicked()
{
	RQDebug('click: '+$(this).data('link'));
	//gMenu.M_foldMenu(hideDropDown);
	var link=$(this).data('link');
	if( $(this).is(".unfoldable"))
	{ FetchURL(link);
	}
	else hideDropDown(function()
	{	FetchURL(link);
	});
}
function FetchURL(url)
{	if(url)
	{	RQDebug("FetchURL("+url+")");
		var c = $('#column1, #column2, #column3');
		if( c.text())
		{	$('#column1').slideUp("slow",function()
			{	doFetchURL(url);
			});
			$('#column2, #column3').slideUp("slow");
		}
		else doFetchURL(url);
	}
}
function doFetchURL(url)
{
	//document.location.href=url;
	RQDebug("doFetchURL("+url+")");
	var asncUrl =g.async+"?module=RQPages&action=fetch&url="+url;
	RQAjaxCall(asncUrl,cbLoadPage);
}
function cbLoadPage(m,e)
{
	if( !e) eval(m);
}
function SetLogo(path)
{	RQDebug("Logo="+path);
	var bg=$('#logo img').attr('src');
	if(bg) $('#logo').css({background:"url("+bg+") no-repeat top left"});

	$('#logo img').hide().attr('src',g.url+path).fadeIn();
}
function SetContent(flavour,col1,col2,col3,domReady)
{
	RQDebug("SetContent("+flavour+")");
	$('.all').attr('id',flavour);
	var c=$('#column1,#column2,#column3');
	c.hide();
	$('#column1').mySetContent(col1);
	$('#column2').mySetContent(col2);
	$('#column3').mySetContent(col3);
	
	InitFoldables();
	InitGalleries();
	InitTooltips();
	$("#column1 a").RQTransformLinks();
	gnews.M_init();
	var c1w=$('#column1').width();
	gnews.M_resize(c1w ,372*c1w/500);
	gnews.M_start();
	OrganizeThumbs();
	if(domReady)
		eval(domReady);
	
}

function onContentImgLoaded()
{	
	var c=$(this).parents(".ctntLd");
	var d=c.data("imgCnt");
	d--;c.data("imgCnt",d)
	if(d<=0)
		c.myShowContent();
}
jQuery.fn.myShowContent = function(content)
{	RQDebug("#"+$(this).attr('id')+" myShowContent");
	return this.slideDown("slow");
}

jQuery.fn.mySetContent = function(content)
{
	return this.each( function(i,e)
	{
		$(this).html(content);
		$(this).addClass('ctntLd');
		var imgCount=0;
		$(this).find('img').each(function()
			{	
				var src=$(this).attr('src');
				if( $(this).is('.ondemand'))	{	$(this).removeAttr('src'); $(this).data('imgsrc',src);	}
				else if( $(this).is('.nold'))
				{	
				}
				else
				{
					$(this).removeAttr('src');
					$(this).load(onContentImgLoaded);
					$(this).attr('src',src);				
					imgCount++;
				}
			}
		);
		$(this).data("imgCnt",imgCount);
		if( imgCount==0) $(this).myShowContent();		
	});
}



function pFold()
{	var t=$(this);
	var n=t.next();
	if(!t.is('.btnMoreO')){t.addClass('btnMoreO').text("less...");n.slideDown('fast');}
	else{t.removeClass('btnMoreO').text("more...");n.slideUp('fast');}
}
function InitFoldables()
{
	$('.paragraphFoldable .fold').hide().before("<a class=\"btnMore flavour\">more...</a>");
	$('.btnMore').click(pFold);
}
function OrganizeThumbs()
{
	g.thumbScroll = 0;
	g.thumbR=0;g.thumbL=0;
	g.thumbW=0;
	$('.scrl').css({left:0});
	var nbThumbs = parseInt((g.col2w+8)/38);
	var thumbSpc = (g.col2w-1-nbThumbs*30)/(nbThumbs-1);
	g.thumbPgw=0; //nbThumbs*(30+thumbSpc);
	$('#moreImg').hide().css({left:g.col2w,width:16});
	$('#lessImg').hide().css({width:16,left:-16});
	var x=0;
	var xi=0;
	$("#thumbs .scrl a").each(function(index)
	{	$(this).css({position:"absolute", left:xi, top:0});
		x+=30;
		g.thumbW=x;
		x+=thumbSpc;xi=parseInt(x);
		if(g.thumbPgw==0 && (xi+30)>=g.col2w)
			g.thumbPgw=xi;
		
	});
	setThumbsButtons();
}
function setThumbsButtons()
{
	var m=g.thumbW>g.col2w?1:0;
	var r=(m&&((-g.thumbScroll+g.thumbW)>g.col2w))?1:0;
	var l=(m&&(g.thumbScroll>0))?1:0;
	if( r!=g.thumbR){g.thumbR=r;if(r)$('#moreImg').fadeIn();else $('#moreImg').fadeOut(); }
	if( l!=g.thumbL){g.thumbL=l;if(l)$('#lessImg').fadeIn();else $('#lessImg').fadeOut(); }	
}
function InitGalleries()
{	
	RQDebug('InitGalleries');
	// thumbs
	g.overImage = 0;
	g.imgState	= 0;
	g.selectedImage = "g_";
	$("#thumbs a").each(function(index)
	{	$("#im"+$(this).attr('id') ).hide();
		$(this).css({opacity:0.2});
	});
	$("#img_").css({zIndex:0}).slideDown();

	$("#thumbs .scrl a").click(thumbClick).mouseover(thumbOverDelay).mouseout(thumbOut);
	
	$('#moreImg').click(function(){
		g.thumbScroll=Math.min(g.thumbW-30,g.thumbScroll+g.thumbPgw);
		$('.scrl').animate({left:-g.thumbScroll});
		setThumbsButtons();
	});
	$('#lessImg').click(function(){
		g.thumbScroll=Math.max(0,g.thumbScroll-g.thumbPgw);
		$('.scrl').animate({left:-g.thumbScroll});
		setThumbsButtons();
	});

}
jQuery.fn.loadAndFadeIn = function (fn,fnerr)
{
	return this.each(function(){
		if($(this).is('img'))
		{	$(this).error(function(){RQDebug("Error");if(fnerr)fnerr.apply(this);});
			if(!$(this).attr('src'))
			{	$(this).load(fn);
				$(this).attr('src',$(this).data('imgsrc'));
			}
			else if(fn){ RQDebug('calling function...');fn.apply(this);}

		}

	});
}
function onOverLoaded(){ if(g.imgState!=1){RQDebug('abort loading+over');return;} RQDebug('onOverLoaded');setState(2);var me=$(this).attr("id").substring(2); if(g.hideOver){$(this).css({opacity:1});$('#im'+g.hideOver).animate({opacity:0},{queue:false,duration:400,complete:function(){setState(3);$(this).hide();g.hideOver=0;}});} else $(this).css({opacity:0,zIndex:1}).animate({opacity:1},{queue:false,complete:function(){setState(3);} }); }
function onClickLoaded(){RQDebug('onClickLoaded');setState(5); showImageText(g.selectedImage);$(this).animate({opacity:1},{queue:false,duration:400,complete:function(){setState(6);}  });}
function onLoadError(){ RQDebug('load error for'+$(this).attr('id'));setState(0);if(g.hideOver)$('#im'+g.hideOver).animate({opacity:0});}
function setState(i)
{	g.imgState=i;
	//RQDebug('state:'+i);
}
function thumbClick()
{	var me=$(this).attr("id");
	switch(g.imgState)
	{
		case 0:
		case 3:
		case 6:
			setState(4);
			// hide current
			if(g.selectedImage) $("#im"+g.selectedImage).hide();
			if(g.overImage && g.overImage!=me) {$("#im"+g.overImage).hide();g.overImage=0;}
			// load click
			g.selectedImage=me;
			$("#im"+me).css({opacity:0,zIndex:0}).show().loadAndFadeIn(onClickLoaded);
			break;
		case '1':
		case '2':
			if(g.overImage){$("#im"+g.overImage).hide().stop();} g.overImage=0;
			if(g.hideOver)$("#im"+g.hideOver).hide().stop(); g.hideOver=0;
			setState(0);
			thumbClick.apply(this);
			break;

	}
}
function thumbOverDelay()
{
	if(g.ovDelayTimr)self.clearTimeout(g.ovDelayTimr);
	g.toOv=this;
	g.ovDelayTimr=self.setTimeout( function(){thumbOver.apply(g.toOv);},200 );
}
function thumbOver()
{	g.ovDelayTimr=0;
	$(this).animate({opacity:1},{queue:false}).siblings().animate({opacity:0.2},{queue:false});

	var me=$(this).attr("id");

	if( me!=g.overImage)
	{	switch(g.imgState)
		{
			case 0:
			case 3:
			case 6:
				setState(1);
				imageToHide(g.overImage); imageToOver(me);
				break;
			case 1:
				hideOver();
				imageToOver(me);
				break;
			case 2:
				hideOver();
				if(g.overImage)$("#im"+g.overImage).hide().stop();
				setState(1);
				$("#im"+me).stop();
				imageToOver(me);
				break;
		}
	}
}
function thumbOut()
{	
	if(g.ovDelayTimr)self.clearTimeout(g.ovDelayTimr);
	g.ovDelayTimr=0;

	var me=$(this).attr("id");
	
	if(g.overImage && g.overImage!=g.selectedImage)$("#im"+g.overImage).fadeOut("fast");
	g.overImage = 0;
	if(me!=g.selectedImage) $(this).animate({opacity:0.2},{queue:false});
}
function imageToHide(id)
{
	g.hideOver=id
	if(id)
		$("#im"+id).css({zIndex:2});
}
function imageToOver(id)
{
	g.overImage=id;
	if(id)
		$("#im"+id).css({opacity:0,zIndex:1}).show().loadAndFadeIn(onOverLoaded,onLoadError);			
}
function hideOver()
{	
	if(g.overImage){$("#im"+g.overImage).hide().stop();}
	g.overImage =0;
}

function showImageText(id)
{
	// text
	var t=$("#tim"+id).html();
	if(t.length)
	{
		$('#column1').stop().slideUp("fast",function()
		{
			var h = "<h1 class=\"linetop flavour\">"+document.title+"</h1>";
			h+="<div class=\"linetop\" ><p class=\"p1\">"+t+"</p></div>";
			$('#column1').html(h);
			$('#column1 a').RQTransformLinks();
			$('#column1').slideDown("slow");	
		});
	}


}
function InitTooltips()
{
	RQTooltip.M_install("p a, p acronym, #icPDF","rqtooltip");
}


function showFlashAnim()
{
	RQDebug("showFlashAnim");
	// install player
	var so = new SWFObject("Data/Flash/KDVI_holdingPage_03_simple.swf", "thePlayer", "100%", "100%", "9", "#FFFFFF");
	so.addParam('allowfullscreen',"true");
	so.addParam('allowscriptaccess','always');
	so.addVariable('width','100%');
	so.addVariable('height','100%');
	so.addVariable('backcolor','0xffffff');
	so.write('IEAnimation');

/*

	var idDiv ="IEAnimation";
	var params	= {quality:"autohigh",bgcolor:"#ffffff",allowfullscreen:"true",allowscriptaccess:"always",wmode:'transparent'};
	var fv		= {test:4}
	var attrs	= {};
	swfobject.embedSWF("Data/Flash/KDVI_holdingPage_03_simple.swf", idDiv, "100%", "100%", "9", "Data/Flash/expressInstall.swf",fv,params,attrs);
*/
}
