/**
* @name Facebox Dandomain
* @version: 1.0.0 (21/04/2010)
* @requires jQuery v1.2 and facebox 1.2 (http://famspam.com/facebox/)
* @author Joachim Loevgaard (www.loevgaard.dk)
*
* Licensed under the MIT:
*   http://www.opensource.org/licenses/mit-license.php
*/

function FaceboxDandomain() {
	this._layouts = new Array();
}
FaceboxDandomain.prototype.addLayout = function(layout) {
	this._layouts.push(layout);
}
FaceboxDandomain.prototype.addLayouts = function(layouts) {
	for(var i in layouts) {
		this.addLayout(layouts[i]);
	}
}
FaceboxDandomain.prototype.toggleShow = function(elm, id) {
	if(elm.checked) {
		$.cookie('hideFacebox' + id, '1', { expires: 365, path: '/' });
	} else {
		$.cookie('hideFacebox' + id, '0', { expires: 365, path: '/' });
	}
}
FaceboxDandomain.prototype.alert = function(str) {
	//console.log('New Facebox');
	//console.log('str: '+str);
	oldstr=str;
	for (var i in this._layouts) {
		if ((!this._layouts[i].trigger || eval(this._layouts[i].trigger)) || str === this._layouts[i].str) {
			if (this._layouts[i].realContent) str = this._layouts[i].realContent;
			var cookieVal = $.cookie('hideFacebox' + i);
			if(cookieVal) return;

			if(this._layouts[i].preCallback) {
				this._layouts[i].html = this._layouts[i].preCallback(this._layouts[i].html);
			}
			//console.log('Layout: '+i);
			$.facebox.settings.faceboxHtml = this._layouts[i].html;
			//console.log('HTML: '+this._layouts[i].html);
			break;
		}
	}
	$.facebox.loading();
	$.facebox(str);
	if(oldstr=='husket'||oldstr=='variant'){
		$('#facebox').html(this._layouts[i].inhtml);
		var preload=[new Image(),new Image()];preload[0].src=$.facebox.settings.closeImage;preload[1].src=$.facebox.settings.loadingImage;

		$('#facebox').find('.b:first, .bl, .br, .tl, .tr').each(
		function(){preload.push(new Image());preload.slice(-1).src=$(this).css('background-image').replace(/url\((.+)\)/, '$1');})

		$('#facebox .close').click($.facebox.close);
		$('#facebox .close_image').attr('src', $.facebox.settings.closeImage);
		$(document).trigger('beforeReveal.facebox');
		$('#facebox .content').append(str);
		$('#facebox .loading').remove();
		$('#facebox .body').children().fadeIn('normal');
		$('#facebox').css('left',$(window).width()/2-($('#facebox table').width()/2));
		$(document).trigger('reveal.facebox').trigger('afterReveal.facebox');
	}
}
var faceboxDandomain = new FaceboxDandomain();

window.alert = function(str) {
	faceboxDandomain.alert(str);
}
