var i18n = new i18n;

var fo = new SWFObject("assets/"+viewerswf+".swf", "oTopview", "100%", "100%", "7");
fo.addParam("scale", "noscale");
fo.addParam("loop","false");
fo.addParam("menu","false");
fo.addParam("quality","high");
fo.addParam("scale","noscale");
fo.addParam("swliveconnect","true");
fo.addParam("bgcolor","#969696");
fo.addParam("allowfullscreen","true");
fo.setAttribute("redirectUrl",'language/help/flash.html');

window.addEvent('load', function(){
	if ($('daBody').hasClass('iframe')) {
		loadTopview();
		return;
	}
	try {
		resizeInterface(true);
	} catch (err) {
		resizeInterface(true);
	}
	if (mod) {
		toggleModule(mod);
	}
	loadTopview();
	window.addEvent('resize', function(){resizeInterface(false)});
	if (Cookie.get('sidebar_right')=='off') toggleSidebar('right');
	// scroll resultaatscherm naar de gekozen link:
	var _GET=window.location.search.split('&');
	for (var i=0; i<_GET.length;i++) {
		if (_GET[i].match(/^y=([0-9]+)$/)) {
			var y=parseInt(RegExp.$1)-110-16;
			if (y<=0) break;
			$$('#right div.krantresultaat div.inner')[0].scrollTo(0,y);
			break;
		}
	}
});


togglers=[];

function resizeInterface(make)
{
	var hasLeft = false;
	var hasRight = false;
	var h = window.getHeight();
	var w = window.getWidth();
	var viewerWidth = w;
// 	$('header').setStyle('height', 60);
	positions.each(function(pos) {
		eval('var moduleWidth=sizes.'+pos+';');
		var modTogglerBar=$E('#'+pos+' .modTogglerBar');
		var modContent=$E('#'+pos+' .modContent');
		
		var modTogglerBarWidth=modTogglerBar.getSize().size.x;
		
		$(pos).setStyles({
			'width':moduleWidth+modTogglerBarWidth,
			'height': h,
			'margin': 0,
			'overflow': 'hidden'
		});

		modContent.setStyles({
			'width':moduleWidth,
			'height': h,
			'margin': 0,
			'float': 'left'
		});

		modTogglerBar.setStyles({
			'height':h
		});
		$$('#'+pos+' h3.toggler').each(function(toggler){
			var txt=toggler.getText();
			var modName=toggler.className.replace(/toggler /, '')
			new Element($E('#'+pos+' div.modContent div.'+modName)).setStyle('display', 'none');
			var newToggler=new Element('div', {
				'class': 'toggler '+modName,
				styles: {
					'width': modTogglerBarWidth-3
				},
				'id': 't_'+modName
			}).injectInside(modTogglerBar);
			newToggler.addEvent('click', function(ev) {
				ev = new Event(ev);
				var toggler=ev.target
				if(toggler.tagName.toLowerCase()=='img') toggler=toggler.parentNode
				toggleModule(toggler)
			});
			new Asset.image('./assets/images/labels/'+pos+'/'+txt+'-off.gif', {
				alt: txt,
				onload: function(){
					this.setStyles({
						'margin-left': (modTogglerBarWidth-this.width-3)/2,
						'margin-bottom': 5
					});
				}
			}).injectInside(newToggler);
			//preload label:
			new Asset.image('./assets/images/labels/'+pos+'/'+txt+'.gif');
			toggler.remove();
		});

		$$('#'+pos+' div.modContainer').each(function(modContainer){
			modContainer.getElement('.inner').setStyles({
				'height': h-30,
				'overflow': 'auto'
			});
			modContainer.getElement('.modContainerFooter').setStyles({
				'height': 30,
				'overflow': 'hidden'
			});
		});

		if(make) {
			var firstToggler=new Element($E('#'+pos+' .modTogglerBar .toggler'));
			if (!firstToggler.firstChild) {
				alert('unexpected error: ' + firstToggler + ' has no firstChild')
			}
			else {
				firstToggler.firstChild.src = firstToggler.firstChild.src.replace(/\-off/, '');
				var modName = firstToggler.className.replace(/toggler /, '')
				firstToggler.addClass('activeToggler');
				new Element($E('#' + pos + ' div.modContent div.' + modName)).setStyle('display', '');
				addSlider(pos, viewerWidth, moduleWidth)
			// 			$E('#'+pos+' div.modContent')
			}
		}

		viewerWidth = viewerWidth - (moduleWidth+modTogglerBarWidth);
		if (pos=='right') hasRight=true;
		else if (pos=='left') hasLeft=true;
	});
	
	$('viewerfooter').setStyle('height', 30);
	$('view').setStyles({
		height: h-60-30
	});
	$('viewer').setStyles({
		width: viewerWidth,
		margin: 0
	});
	if (hasLeft==true && hasRight==true) {
		$('left').setStyles({position: 'absolute',left: 0});
		$('right').setStyles({position: 'absolute',left: viewerWidth+moduleWidth});
		$('viewer').setStyles({position: 'absolute',left: moduleWidth});
	} else if (hasLeft) {
		$('left').setStyles({position: 'absolute',left: 0});
		$('viewer').setStyles({position: 'absolute',left: moduleWidth});
	} else if (hasRight) {
		$('right').setStyles({position: 'absolute',left: viewerWidth});
		$('viewer').setStyles({position: 'absolute',left: 0});
	}
	return;
}

function toggle(el)
{
}

function addSlider(position, viewerWidth, moduleWidth)
{
	var leftPos=parseInt($(position).getStyle('left'));
	if($('slider_ctrl_'+position)==null) {
		var control= new Element('img', {
			styles: {
				position: 'absolute',
				top: 5,
				'margin-left': '5px',
				display: 'block',
				cursor: 'pointer',
				'float': 'right'
			},
			events: {
				click: function(ev){
					toggleSidebar(new Event(ev).target.id.replace(/slider_ctrl_/, ''));
				}
			},
			id: 'slider_ctrl_'+position,
			src: './assets/images/icon_panel_hide.gif'
		});
		control.injectInside($E('#'+position+' .modTogglerBar'))
	} else {
		$('slider_ctrl_'+position).setStyle('left', leftPos);
	}
}

var mcSizes={'left':{},'right':{}};
var lastModule={'left':'','right':''};
function toggleSidebar(pos)
{
	var button=$('slider_ctrl_'+pos)
	var viewerWidth=parseInt($('viewer').getStyle('width'))
	var modContent=$E('#'+pos+' .modContent')
	var modTogglerBar=$E('#'+pos+' .modTogglerBar')
	var mod=$(pos)
	mcSize=modContent.getCoordinates()
	var mbSize=modTogglerBar.getCoordinates()
	var mSize=mod.getCoordinates()

	if (mcSize.width) {
		Cookie.set('sidebar_'+pos, 'off');
		eval('mcSizes.'+pos+'=mcSize;');
		button.src=button.src.replace(/hide/, 'show')
		modContent.setStyle('display', 'none');
		mod.setStyles({'width':mbSize.width, 'left':mSize.left+mcSize.width})
		$('viewer').setStyle('width', viewerWidth+mcSize.width)
		//turn current module off:
		var toggler=$E('#'+pos+' .modTogglerBar .activeToggler');
		modOff(toggler)
	} else {
		Cookie.set('sidebar_'+pos, 'on');
		eval('var modName=lastModule.'+pos+';');
		modOn(modName)
		eval('var mcSize=mcSizes.'+pos+';');
		button.src=button.src.replace(/show/, 'hide')
		$('viewer').setStyle('width', viewerWidth-mcSize.width)
		mod.setStyles({'width':mbSize.width+mcSize.width, 'left':mSize.left-mcSize.width})
		modContent.setStyle('display', '');
	}
}

function getToggleByModName(modName, pos)
{
	pos=typeof pos=='undefined'?'right':pos;
	return $(pos).getElement('div.modTogglerBar').getElement('div.'+modName)
}

function modOn(toggler)
{
	if(!toggler) return false;
	toggler=getToggler(toggler)
	var pos=toggler.parentNode.parentNode.id
	$(pos).getElement('div.modContent').getElement('div.'+toggler.name).setStyle('display', '');
	toggler.firstChild.src=toggler.firstChild.src.replace(/\-off/, '');
	toggler.addClass('activeToggler');
}

function modOff(toggler)
{
	if(!toggler) return false;
	toggler=getToggler(toggler)
	var pos=toggler.parentNode.parentNode.id
	toggler.removeClass('activeToggler');
	toggler.firstChild.src=toggler.firstChild.src.replace(/\.gif/, '-off.gif');
	new Element($E('#'+pos+' div.modContent div.'+toggler.name)).setStyle('display', 'none');
	eval('lastModule.'+pos+'=\''+toggler.name+'\';');
}

function getToggler(toggler)
{
	if(typeof toggler=='string') {
		var modName=toggler
		toggler = $('t_'+modName)
		if (!toggler) {
			Log('can not find module '+modName)
			return false;
		}
		toggler.name=modName
	} else {
		var modName=toggler.id.replace(/t_/,'')
		toggler.name=modName
	}
	return toggler
}

function toggleModule(toggler)
{
	toggler=getToggler(toggler)
	var pos=toggler.parentNode.parentNode.id
	eval('lastModule.'+pos+'=\''+toggler.name+'\';');
	var cur=$E('#'+pos+' .modTogglerBar .activeToggler');
	if (cur) {
		modOff(cur)
		var modNameCur=cur.id.replace(/t_/, '')
	} else {
		modNameCur=false
		toggleSidebar(pos)
	}

	if(toggler.name==modNameCur && modNameCur!==false) {
		toggleSidebar(pos)
	} else {
		modOn(toggler)
		$E('#'+pos+' div.modContent').scrollTo(0,0)
	}
}

function Log(msg) {
	if (debug) try { console.log(msg);} catch(e) {}
}

function loadTopview()
{
	var img = $('topview');
	if (img) {
		img.setStyle('display', 'none');
		/*img.addEvent('load', function(e) {*/
			var doc=img.alt
			var paragraaf = img.src.replace(/.+paragraaf=([0-9]*).+/, '$1');
			img.remove();
			var url='/service.php'+window.location.search+'&m=tjpinfo&doc='+doc+'&paragraaf='+paragraaf;
			fo.addVariable("xmlpath",escape(url));
			Log('xmlpath: '+url);
			fo.write('view');
		/*});*/
		/*
		var doc=img.alt
		var paragraaf = img.src.replace(/.+paragraaf=([0-9]*).+/, '$1');
		img.remove()
		var url='/service.php'+window.location.search+'&m=tjpinfo&doc='+doc+'&paragraaf='+paragraaf;
		fo.addVariable("xmlpath",escape(url));
		Log('xmlpath: '+url)
		fo.write('view');
		*/
	} else {
		Log('Geen afbeelding gevonden ...');
	}
}


function popupWindow(mypage, myname, w, h, scroll) {
        var winl = (screen.width - w) / 2;
        var wint = (screen.height - h) / 2;
        winprops = 'height='+h+',width='+w+',top='+wint+',left='+winl+',scrollbars='+scroll+',resizable'
        var win = window.open(mypage, myname, winprops)
        if (!win) {
        	alert(i18n.get('popupblocker'))
        } else {
        	try {
				win.window.focus();
			} catch(e) {
				
			}
        }
		return win;
}

function openTopviewCrop(files, parameters)
{
	var url='/service.php?m=tjp2jpeg&files=' + files + '&parameters=' + Json.toString(parameters);
	var win = popupWindow('', 'openTopviewCrop', 400, 80, false);
    if (!win) {
		alert(i18n.get('popupblocker'))
	}
	else {
		win.document.write('<html><head><title>Download</title></head>');
		win.document.write('<body padding=0 margin=0><table height="80" width="400"><tr><td valign="middle" align="center">');
		var url = url.replace(/"/g, '')
		win.document.write('<button style="width: 170px;" onclick="window.location.replace(\'' + url + '\');">bestand downloaden</button>');
		if (Auth==true) {
			url = url.replace(/m=tjp2jpeg/, 'm=addblock')
			win.document.write('<button style="width: 170px;" onclick="window.location.replace(\'' + url + '\');">blok markeren</button>');
		}
		win.document.write(' <button style="width: 170px;" onclick="self.close();">venster sluiten</button>');
		win.document.write('</td></tr></table></body>');
		win.document.write('</html>');
		win.document.close();
	}
}

function topview()
{
	task=arguments[0];
	if (arguments.length <= 1) files=[]
	else files = arguments[1];
	switch (task) {
		case 'crop':
			params = arguments[2];
			openTopviewCrop(files.toString(), params);
			break;
		case 'removeblocks':
			params = arguments[2];
			popupWindow('/service.php?m='+task+'&files='+files.toString(), task, 320, 240, false);
			break;
		case 'shoppingcart':
			popupWindow(
				'/shoppingcart.php?files='+files.toString(),
				'shoppingcart',
				800, 600, false
			);
			break;
		default: alert('onbekende taak: ' + task);
	}
}