iqLIB.setDefaults( {
	options: {
		autoStart: false,
		nextStart: false,
		startQuestionId: 0,
		oneQuestionVisible: false
	},
	
	layout: {
		lichtbak_max_width: 500
	}
} );

window.addEvent( 'load', function() {
	if( $('holder') ) {
		iqLIB.setWrapper( 'holder' );
	}
} );

Model.implement( {
	openSlimbox: function(src) {
		Slimbox.open(src, false, {overlayOpacity: iqOverlay.visible ? 0 : 0.4});
	},

	getImage: function() {
		var image = this.get('image');
		var position = (this.get('imagePosition') || 'top');
		var styles;

		switch( position ) {
//			case 'left':
//                image = image.replace( /s\d+x\d+_/, 's192x192_' );
//				styles = { padding: 8, 'background-color': '#e9e9e9', left: -272, width: 224, 'border-top': '1px solid #a2a2a2', position: 'absolute', 'text-align': 'center'  };
//				this.question.setDefault( 'output', 'image', $( this.question.defaults.wrapper ).getElement('.page_question_image') );
//				break;
//			case 'right':
//                image = image.replace( /s\d+x\d+_/, 's192x192_' );
//				styles = { padding: 8, 'background-color': '#e9e9e9', left: 456, width: 192, 'border-top': '1px solid #a2a2a2', position: 'absolute', 'text-align': 'center'  };
//				this.question.setDefault( 'output', 'image', $( this.question.defaults.wrapper ).getElement('.page_question_image') );
//				break;
			case 'top':
				styles = { 'margin': 0, 'padding': 0, 'margin-bottom': 4 };
				break;
            case 'left':
			case 'in_question_left':
				styles = { 'float': 'left', 'margin-right': 4 };
				break;
            case 'right':
			case 'in_question_right':
			default:
				styles = { 'float': 'right', 'margin-left': 4 };
				break;		
		}

		if( image ) {
			var cleanImage = this.cleanImage( image );
			
			//regexp toegevoegd om met verschillende popup formaten om te kunnen gaan.
			var origimage = cleanImage.src.replace( /s\d+x\d+_/, 's900x600_' );
			
			var callback = function() {
				this.openSlimbox(origimage);
			}.bind(this);
			
			var img = this.createImage( cleanImage.src, { styles: cleanImage.styles } )
				.setStyles( { cursor: 'pointer' } )
				.addEvent( 'click', callback );
			
			return this.wrapImage(img)
				.setStyles( styles )
				.setStyles( cleanImage.styles );
		}
		
		return false;
	},
	
 	getCredits: function(img, caption, dontHide) {
		var credits = new Element('div', { styles: {'background-color': '#000', 'color': '#fff', 'opacity': 0.4, 'width': '100%', 'height': '20px', 'line-height': '20px'} })
			.set('html', '&nbsp;&nbsp;' + caption)
			.setStyles( {'position': 'absolute', 'bottom': 0, 'left': 0} );
		
		var inner = new Element('div', { styles: {'position': 'relative'} } )
			.grab(img)
			.grab(credits);
		
		if(!dontHide) {
			credits.setStyle('overflow', 'hidden');
			var fx = new Fx.Tween(credits, {property: 'height', duration: 'short'});
			
			img.addEvent("mouseenter", function() { fx.cancel(); fx.start(0); });
			img.addEvent("mouseleave", function() { fx.cancel(); fx.start(20); });
		}
		
		return inner;
	},
	
	wrapImage: function(img, dontHide) {
		if(this.get('imageCredits')) {
			if(img.getElement('.smallFrame')) {
				var outer = this.wrapImage(img.getElement('.smallFrame').getElement('img'), true);
				img.getElement('.smallFrame').grab(outer, 'top');
				
				return img;
			} else {
				var outer = new Element('div', { styles: {'position': 'relative'} } );
				var inner = this.getCredits(img, this.get('imageCredits'), dontHide);
				inner.inject(outer);
				
				// hacks om alles mooier te maken
				outer.setStyle('line-height', 0);
				inner.setStyles( { 'float': 'left' } );
				new Element('div', { html: '' }).inject(outer);
				new Element('div', { styles: {'clear': 'both'} }).inject(outer);
				
				return outer;
			}
		} else {
			return img;
		}
	},
	
	wrapItem: function(img, item, dontHide) {
		if(item.pictureCredits) {
			if(img.tagName.toUpperCase() === 'TD') {
				var outer = this.wrapItem(img.getElement('div'), item);
				outer.getElement('div').setStyles( { 'width': '100%' } );
				img.grab(outer, 'top');
				
				return img;
			} else {
				var outer = new Element('div');
				
				if(img.style.position === 'absolute') {
					img.setStyle('position', 'relative');
				}
				
				var inner = this.getCredits(img, item.pictureCredits, dontHide);
				inner.inject(outer);
				
				// hacks om alles mooier te maken
				outer.setStyle('line-height', 0);
				inner.setStyles( { 'float': 'left' } );
				new Element('div', { html: '' }).inject(outer);
				new Element('div', { styles: {'clear': 'both'} }).inject(outer);
				
				return outer;
			}
		} else {
			return img;
		}
	}
} );

iqLIB.addEvent('resizeGuiCanvas', function(c, parent) {

    if( $chk(c.options.question) && c.options.question.getDefault( 'options', 'embed' ) ) {
        return;
    }
    
    if( c.options.csstype != 'popup' && ($chk(parent) && parent) ) {
        c.element.position({
                position: 'leftTop',
                relativeTo: $(parent.getElement()),
                offset: { x: 0, y: parent.getElement().getCoordinates().height }
        });
	} else {
        c.element.position({
				position: 'centerTop',
				relativeTo: $(document.body),
				offset: { x: (-c.getSize().width/2), y:  20}
		});
	}
} );


window.addEvent( 'domready', function() {
	iqLIB.addEvent( 'showQuestion', function(q) {
        if( q.getDefault( 'options', 'embed' )) {
            var wrapper = $(q.defaults.wrapper);
            wrapper.setStyles( { display: 'block', width: (wrapper.getScrollSize().x).limit( 500, 730), 'overflow-x': 'visible', 'overflow-y': 'visible', zIndex: 0} );
        }
	} );
	
	try {
		Overlay.implement( {
			showOverlay: function() {
				if( this.visible ) return;
				if(!this.overlay) {
					this.createOverlay();
				}
				this.visible = true;
				this.positionOverlay();
				iqLIB.getWrapper().setStyle( 'z-index', 999);
				this.overlay.setStyles( {
					opacity: 0,
					display: 'block',
					'z-index': 1
				} ).morph( {
					opacity: 0.4
				} );
				iqLIB.hideFlashes( true );
			}
		});
	} catch(e) {}
} );

