window.addEvent('domready', function() {

	var pageBody       = $(document.body);
	var isMR           = pageBody.hasClass('MR');
	var isHome         = pageBody.hasClass('home');
	var isAdmin        = pageBody.hasClass('admin');
	var isProject      = pageBody.hasClass('projecten');
	var isSubProject   = false;
	var isIntro        = pageBody.hasClass('intro');
	var isInfo         = pageBody.hasClass('achtergrondinfo');
	var isEnglish      = pageBody.hasClass('english');
	var isFinal        = pageBody.hasClass('finale');
	var isIE           = Browser.Engine.trident ? true : false;
	var isIE6          = Browser.Engine.trident && Browser.Engine.version <= 4 ? true : false;
	var flashWidth     = 0;
	var wprCttNav1     = $('wpr_ctt_nav1');
	var wprCttMain     = $('wpr_ctt_main');
	var wprCttNav2     = $('wpr_ctt_nav2');
	var cnrContentMain = $('cnr_ctt_main');
	var cnrSubmenu     = $('cnr_submenu');
	var cnrPagemenu    = $('cnr_pagemenu');

	var marginBottom   = 40;
	var stageWidth     = wprCttMain.getWidth();
	var stageHeight    = getHeight() - $('cnr_header').getHeight() - marginBottom;
	var maxCircleSize  = (stageWidth >= stageHeight) ? stageHeight : stageWidth;

	if (isIE6 && Cookie.read('ie6') != 'true') {

		var IE6Warning = new Element('div', {
		 'id': 'wpr_ie6_warning'
		});

		IE6Warning.set('html', '<p>U maakt gebruik van een erg verouderde browser (Internet Explorer 6 of lager). Deze site is wel te bekijken met uw browser, maar hij kan helaas niet optimaal worden weergegeven. Wij raden u aan om uw browser te upgraden via Windows Update, of om een modernere browser zoals Firefox te installeren. Firefox is gratis te downloaden van <a href="http://www.firefox.com" target="_blank">www.firefox.com</a>.</p>');
		IE6Warning.inject($('cnr_all'), 'top');

		Cookie.write('ie6', 'true', { duration: 1, path: '/' });
	}

	// add project navigation
	var currentProject = cnrSubmenu.getElement('li.current ul li.current ul li.current ul li.current');

	if (cnrPagemenu && currentProject) {

		var introProject = currentProject.getParent('li').getElement('li.intro');
		var previousProject = currentProject.getPrevious('li');
		var nextProject = currentProject.getNext('li');

		if (introProject) {

			var btnIntro = new Element('a', {
				'html': 'intro',
				'class': 'intro',
				'href': introProject.getElement('a').href
			});
			btnIntro.inject(cnrPagemenu);
		}

		if (previousProject && !previousProject.hasClass('intro')) {

			var btnPreviousProject = new Element('a', {
				'html' : 'Vorige',
				'class' : 'previous',
				'href': previousProject.getElement('a').href
			} );
			btnPreviousProject.inject(cnrPagemenu);
		}

		if (nextProject) {

			var btnNextProject = new Element('a', {
				'html' : 'Volgende',
				'class' : 'next',
				'href': nextProject.getElement('a').href
			} );
			btnNextProject.inject(cnrPagemenu);
		}

		if (currentProject.hasClass('intro')) {
			cnrPagemenu.addClass('intro');

			// pak juiste link
			var url = nextProject.getElement('a').href;
			var img      = $('cnr_ctt_main').getElement('p img');
			var img_link = new Element('a', {'href' : url } );
			img_link.replaces(img);
			img.inject(img_link, 'inside');

		} else if (previousProject && previousProject.hasClass('intro')) {
			cnrPagemenu.addClass('first-project');
		} else if (!nextProject) {
			cnrPagemenu.addClass('final');
		}
	}

	function imgLowResName(hr) {

		var lowRes = hr;

		lowRes = lowRes.replace(".jpg",".gif");
		lowRes = lowRes.replace(".JPG",".GIF");
		lowRes = lowRes.replace("_b","");
		lowRes = lowRes.replace("_w","");
		lowRes = lowRes.replace("_hr","_lr");
		lowRes = lowRes.replace("_B","");
		lowRes = lowRes.replace("_W","");
		lowRes = lowRes.replace("_HR","_LR");

		return lowRes;
	}

	function replaceHomepage() {

		var circles = $$("div#cnr_ctt_main a img");

		// show only the first circle
		$$("div#cnr_ctt_main a img").each(function(cnr_circle, index) {
			if (index == 0) {
				cnr_circle.setStyle('visibility', 'visible');
			} else {
				cnr_circle.setStyle('display', 'none');
			}
		});

		// move circles from cnr_ctt_nav_2 to cnr_ctt_main (homepage)
		if (!isAdmin) {

			var images = $('cnr_ctt_nav2').getElements('p img');
			var titles = $('cnr_ctt_nav2').getElements('p a');

			var imgHighRes       = [];
			var projectTitles    = [];
			var projectSubtitles = [];
			var projectLinks     = [];

			images.each(function(image, index) {
				imgHighRes[index] = image.src;
			});

			titles.each(function(projectTitle, index) {
				var titleText = projectTitle.get('text');
				var titleArray = titleText.split('::');

				projectTitles[index]    = titleArray[0];
				projectSubtitles[index] = titleArray[1];
				projectLinks[index]     = projectTitle.href;
			});

			var flashvarsHome     = {
				imgHighRes_1:      imgHighRes[0],
				imgHighRes_2:      imgHighRes[1],
				imgHighRes_3:      imgHighRes[2],
				imgHighRes_4:      imgHighRes[3],
				imgHighRes_5:      imgHighRes[4],
				projectTitle_1:    projectTitles[0],
				projectTitle_2:    projectTitles[1],
				projectTitle_3:    projectTitles[2],
				projectTitle_4:    projectTitles[3],
				projectTitle_5:    projectTitles[4],
				projectSubtitle_1: projectSubtitles[0],
				projectSubtitle_2: projectSubtitles[1],
				projectSubtitle_3: projectSubtitles[2],
				projectSubtitle_4: projectSubtitles[3],
				projectSubtitle_5: projectSubtitles[4],
				projectLink_1:     projectLinks[0],
				projectLink_2:     projectLinks[1],
				projectLink_3:     projectLinks[2],
				projectLink_4:     projectLinks[3],
				projectLink_5:     projectLinks[4]
			};
			var paramsHome      = { menu: "false" };
			var attributesHome  = false;

			var contentHome = $('cnr_ctt_main').getElement("div.content");
			wprCttNav2.setStyle('display', 'none');

			contentHome.setProperty('id', 'flashContent');

			var imageFlashViewerHome = new Swiff('/swf/home_pie.swf', {
				width: stageWidth,
				height: stageHeight,
				params: paramsHome,
				vars: flashvarsHome
			});
			imageFlashViewerHome.inject(contentHome, 'top');

		}
	}

	function resizeCircles() {

		stageWidth     = wprCttMain.getWidth();
		stageHeight    = getHeight() - $('cnr_header').getHeight() - marginBottom;
		maxCircleSize  = (stageWidth >= stageHeight) ? stageHeight : stageWidth;

		// set size circle containers
		pageBody.getElements('div.cnr_circle').each( function(cnr_circle) {
			cnr_circle.setStyles({
			   width: maxCircleSize,
			   height: maxCircleSize
			});
		});

		// resize images idCircels
		if ((isProject && !isFinal)) {
			var circles = $('cnr_ctt_main').getElements('img');
			if (isIntro) {
				circles.each(function(circle) {
					circle.setStyles({
					   width: (stageWidth * 2) + 'px',
					   height: (stageWidth * 2) + 'px',
					   marginLeft: (-0.5 * (stageWidth * 2)) + 'px'
					});
				});
			} else {
				circles.each(function(circle) {
					circle.setStyles({
					   width: (stageWidth) + 'px',
					   height: (stageWidth) + 'px'
					});
				});
			}
		}

		if ($('flashContent') && !isAdmin) {
			var flashMovie = $('flashContent').getElement('object');

			if (flashMovie) {
				flashMovie.setAttribute('width', stageWidth);
				flashMovie.setAttribute('height', stageHeight);
			}
		}
	}

	// set homepage items
	if (isHome) {
		replaceHomepage();
	}

	// resize circles here to prefent "jumping"
	resizeCircles();
	window.addEvent('resize', resizeCircles);

	// change class of projecten into subprojecten if necessary
	if (isMR) {

		var subProjectArr = ["1_dag(deel)", "2_dagen_tot_een_week", "een_week_tot_3_maanden", "3_maanden_tot_een_jaar", "0-12_jaar", "13-20_jaar", "21-55_jaar", "56-120_jaar"];

		subProjectArr.each( function(sc) {
			if ($(document.body).hasClass(sc)) {
				isSubProject = true;
			}
		});

		if (isSubProject) {
			if (isProject) {
				pageBody.addClass('subprojecten');
				pageBody.removeClass('projecten');
				isProject = false;
			}
		}
	}

	// add round corners
	var content_ul = $('cnr_ctt_nav1').getElement('ul');

	if (isHome) {
		var submenu_top;
		var submenu_bottom;

		if (content_ul) {
			var ul_top    = new Element('div', { 'class': 'ul_top' });
			var ul_bottom = new Element('div', { 'class': 'ul_bottom' });

			ul_top.injectBefore(content_ul);
			ul_bottom.injectAfter(content_ul);
		}

		// rounded corners submenu
		var cnr_ctt_nav2 = $('cnr_ctt_nav2');

		submenu_top    = new Element('div', { 'class': 'submenu_top' });
		submenu_bottom = new Element('div', { 'class': 'submenu_bottom' });

		submenu_top.injectBefore(cnr_ctt_nav2);
		submenu_bottom.injectAfter(cnr_ctt_nav2);
	}

	if (isProject) {
		submenu_top    = new Element('div', { 'class': 'submenu_top' });
		submenu_bottom = new Element('div', { 'class': 'submenu_bottom' });
		submenu_top.injectBefore(cnrSubmenu);
		submenu_bottom.injectAfter(cnrSubmenu);
	}

	if (isInfo || isEnglish || isSubProject) {

		content_top    = new Element('div', { 'id': 'content_top' });
		content_bottom = new Element('div', { 'id': 'content_bottom' });
		content_top.injectBefore(cnrContentMain);
		content_bottom.injectAfter(cnrContentMain);
	}

	// show lowres circles while loading
	var circles = isHome ? $('cnr_ctt_nav2').getElements('p img') : cnrContentMain.getElements("img");

	circles.each(function(circle) {
		var highRes   = circle.src;
		var lowRes    = imgLowResName(highRes);
		circle.lowsrc = lowRes;
	});

 	// split links wich contain "::"
	var links   = $('cnr_ctt_nav2').getElements('p a');
	var hrefs   = new Array();

	if (!isHome && !isAdmin) {
		links.each(function(item, index) {

			hrefs[index] = $(item).href;
			var itemText = $(item).get('text');

			if (itemText.contains('::')) {

				var splitText = itemText.split('::');

				$(item).setText(splitText[0]);
				$(item).addClass('cirkel_' + index);

				// show current image, hide others
				$(item).addEvent('mouseover', function() {

					$$("div#cnr_ctt_main a img").each(function(cnr_circle, index) {

						if ($(item).hasClass('cirkel_' + index)) {
							cnr_circle.setStyle('visibility', 'visible');
						} else {
							cnr_circle.setStyle('visibility', 'hidden');
						}
					});
				});

				// create container wich contains the second part of the link
				var cnrLink = new Element('div', { 'class': 'extra_a' });
				cnrLink.injectInside(item);
				cnrLink.setText(splitText[1]);
			}
	  	});
	}

	// page menu: if next=finale, show also the next button (with last url)
	var finale = $('cnr_pagemenu').getElement('ul li ul li ul li ul li.finale');
	if (finale!=null && finale.hasClass('next')) {
		finaleUrl=$E('ul li ul li ul li ul li.finale a','cnr_pagemenu').getProperty('href');
		$('cnr_pagemenu').getElement('ul li ul li ul li ul li.current a').setProperty('href',finaleUrl);
		$('cnr_pagemenu').getElement('ul li ul li ul li ul li.current').addClass('next');
	}


	// breadcrumbs split
	var li_split = $('cnr_breadcrumbs').getElements('a');

	if (li_split) {

		li_split.each( function(li_item) {

			var new_li_text;
			var extra_crumb;
			var li_text     = $(li_item).get('text');
			var mustBeSplit = li_text.contains('__');

			if (mustBeSplit) {
				new_li_text = li_text.split('__');
				$(li_item).setText(new_li_text[0]);
				extra_crumb = new Element('span', { 'id': 'extra_crumb' });
				extra_crumb.injectInside(li_item);
				$(extra_crumb).set('text', new_li_text[1]);

			} else {

				var mustBeSplitOld = li_text.contains('::');

				if (mustBeSplitOld) {
					new_li_text = li_text.split('::');
					$(li_item).set('text', new_li_text[0]);
					extra_crumb = new Element('span', { 'id': 'extra_crumb' });
					extra_crumb.injectInside(li_item);
					$(extra_crumb).set('text', new_li_text[1]);
				}
			}
	  	});
	}

	// submenu items split
	li_split = false;

	if (isSubProject) {
		li_split = $('cnr_ctt_main').getElements('li a','cnr_ctt_main');
	} else {
		li_split = $('cnr_submenu').getElements('li ul li ul li a','cnr_submenu');
	}

	if (!isHome) {
		li_split.each(function(li_item) {
			var new_li_text;
			var extra_span;
			var li_text = $(li_item).get('text');
			var mustBeSplit = li_text.contains('__');

			if (mustBeSplit) {
				new_li_text = li_text.split('__');
				$(li_item).set('text', new_li_text[0]);
				extra_span = new Element('div', { 'id': 'extra_li' });
				extra_span.injectInside(li_item);
				$(extra_span).set('text', new_li_text[1]);

			} else {
				var mustBeSplitOld = li_text.contains('::');

				if (mustBeSplitOld) {
					new_li_text = li_text.split('::');
					$(li_item).set('text', new_li_text[0]);
					extra_span = new Element('div', { 'id': 'extra_li' });
					extra_span.injectInside(li_item);
					$(extra_span).set('text', new_li_text[1]);
				}
			}
	  	});
	}

	// submenu: zie ook, add zie_ook class
	var zie_ook = $('cnr_submenu').getElements('li');
	zie_ook.each( function(value,key) {
		ZieOokClass = value.getProperty('class');
		var ZieOok = ZieOokClass.contains('zie_ook');
		if (ZieOok) {
			ZieOokClass = ZieOokClass + ' zie_ook ';
			value.removeProperty('class');
			value.setProperty('class',ZieOokClass);
		}
	});

	var highResCircle = $('cnr_ctt_main').getElement("p img");

	if (isProject && !isIntro && highResCircle && !isAdmin) {

		var flashvars     = { imageSource: highResCircle.src };
		var params        = { menu: "false" };
		var attributes    = false;

		var content = $('cnr_ctt_main').getElement('div.content');

		content.setProperty('id', 'flashContent');

		stageWidth     = wprCttMain.getWidth();
		stageHeight    = getHeight() - $('cnr_header').getHeight() - marginBottom;
		maxCircleSize  = (stageWidth >= stageHeight) ? stageHeight : stageWidth;

		var imageFlashViewer = new Swiff('/swf/controller.swf', {
			width: stageWidth,
			height: stageHeight,
			params: params,
			vars: flashvars
		});
		imageFlashViewer.inject(content, 'top');
	}

	// open links to downloadable files or other sites in a new window
	Array.prototype.f_contains = function(s) {
		for (var i = 0; i < this.length; i++) {
			if (this[i] == s) return true;
		}
		return false;
	};

	// known extensions for downloadable files
	var exts = ['png', 'jpg', 'jpeg', 'gif', 'pdf', 'doc', 'xls', 'ppt', 'zip', 'gz', 'mpg', 'mpeg', 'mov', 'mp4', 'avi', 'wmv', 'mp3', 'wav', 'swf', 'bmp', 'tif', 'tiff', 'svg'];

	var pageLinks = document.getElementsByTagName('a');

	for (var i = 0; i < pageLinks.length; i++) {
		var link  = pageLinks[i];

		// find extension
		var split_slash = link.href.split('/');
		var split_ext   = split_slash[split_slash.length - 1].split('.');
		var ext = split_ext[split_ext.length - 1];

		// check if extension indicates a downloadable file
		if (split_ext.length > 1) {
			if (exts.f_contains(ext)) {
				pageLinks[i].target = '_blank';
			}
		}

		// look for links to other sites
		if (link.href.substring(0, 7) == 'http://') {
			if (link.href.substring(7, 7 + window.location.hostname.length) != window.location.hostname) {
				pageLinks[i].target = '_blank';
			}
		}
	}
});
