(function($) { // hide the namespace
var boxHeight = 800;
$.FundmadeClass = function() {
}

$.extend($.FundmadeClass.prototype, {
	topMargin: 40,
	/* copy from jquery.lightbox.js */
	repositionBoxes: function () {
		var pageScroll = this.getPageScroll();
		var nTop = pageScroll.yScroll + this.topMargin;// + ($(document.body).height() - boxHeight) / 2.5;
		var nLeft = pageScroll.xScroll;

		var css = {
			left: nLeft,
			top: nTop
		};
		$('#fundmade').css(css);

		// Done
		return [nTop, nLeft];
	},
	getPageScroll: function () {
			var xScroll, yScroll;
			if (self.pageYOffset)
			{	// Some browser
				yScroll = self.pageYOffset;
				xScroll = self.pageXOffset;
			} else if (document.documentElement && document.documentElement.scrollTop)
			{	// Explorer 6 Strict
				yScroll = document.documentElement.scrollTop;
				xScroll = document.documentElement.scrollLeft;
			} else if (document.body)
			{	// All other browsers
				yScroll = document.body.scrollTop;
				xScroll = document.body.scrollLeft;	
			}
			var arrayPageScroll = {'xScroll':xScroll,'yScroll':yScroll};
			return arrayPageScroll;
	},
	start: function() {
		//FIXME
		$('embed, object, select').css({'visibility': 'hidden'});
		this.resizeBoxes();
		var newPosition = this.repositionBoxes();

		var originalY = newPosition[0];
		var startHeight = 20;
		var startPosition = boxHeight / 2 + originalY - startHeight / 2;
		$('#fundmade-overlay').show();
		$('#fundmade').css({
				height: startHeight,
				top: startPosition
		})
		.animate({
			height: boxHeight,
			top: originalY
/*		}, 500, 'easeOutCirc', function(){ */
		}, 500, 'linear', function(){ 
			$('#fundmade-flash-container object').css({'visibility': 'visible'});
			$('#fundmade-flash-container embed').css({'visibility': 'visible'});
			$('#fundmade-flash-container').show();
			if ( !$.Fundmade.showFlash() ) {
				$.Fundmade.finish();
				return false;
			}
		});
		return true;
	},
	finish: function() {
		$('#fundmade').hide();
		$('#fundmade-overlay').hide();
		//FIXME
		$('embed, object').css({'visibility': 'visible'});
		$('select').css({'visibility': 'visible'});
		$('#fundmade-flash-container object').css({'visibility': 'hidden'});
		$('#fundmade-flash-container embed').css({'visibility': 'hidden'});
		if ( this.onClose ) {
			this.onClose();
		}
	},
	resizeBoxes: function() {
		$('#fundmade-overlay').css({
			width: $(document).width(),
			height: $(document).height()
		});
	},
	domReady: function() {
		$('head').append('<link rel="stylesheet" type="text/css" href="/js/fundmade.css" media="all" />');
		$('head').append('<script type="text/javascript" language="Javascript" src="/js/jquery.easing.1.3.js"></script>');
		$('body').append('<div id="fundmade-overlay"></div>');
		$('body').append('<div id="fundmade"><div id="fundmade-flash-box"></div></div>');
		var so = new SWFObject("/swf/fund_made.swf", "fundmade-flash", 780, 800, "8", "#ffffff");
		so.addParam("allowScriptAccess","always");
		// additional parameters
		var t1 = $('#t1').val();
		if ( t1 ) {
			so.addVariable('t1', t1);
			var t2 = $('#t2').val();
			if ( t2 ) {
				so.addVariable('t2', t2);
				var t3 = $('#t3').val();
				if ( t3 ) {
					so.addVariable('t3', t3);
				}
			}
		}
		if ( this.isLogin() ) {
			so.addVariable('loginuser', '1');
		}
		
		var swHTML = so.getSWFHTML();
		$('#fundmade-flash-box').append('<div id="fundmade-flash-container">' + swHTML + '</div>');
		this.resizeBoxes();
		this.repositionBoxes();
		$('#fundmade,#fundmade-overlay').hide();

		$(window).resize(function() { $.Fundmade.resizeBoxes(); $.Fundmade.repositionBoxes(); });
	},
	showFlash: function() {
		return true;
	},
	isLogin: function() {
		var arr = location.search.substr(1).split("&");
		for (i in arr) {
			var queryPart = arr[i].split('=');
			if ( queryPart.length > 1 && queryPart[0] == 'login' && queryPart[1] != '' ) {
				$.cookie('login_status', 'ok', { expires: 1, path: '/'});
				return true;
			}
		}
		var val = $.cookie('login_status');
		return val == 'ok';
	}
});

$.fn.closeFundMade = function() {
	$.Fundmade.finish();
	return this;
};

$.fn.addListenerForOnCloseFundMade = function(listener) {
	$.Fundmade.onClose = listener;
	return this;
};

$(function() {
	$.Fundmade = $.Fundmade || new $.FundmadeClass();
	$.Fundmade.domReady();
	$('.btnFundmaid a').click(function(e) {
		e.preventDefault();
		e.stopPropagation();
		$.Fundmade.start();
	});
	$('.showFundmaid a').click(function(e) {
		e.preventDefault();
		e.stopPropagation();
		$.Fundmade.start();
	});
});

})(jQuery);

function addListenerForOnCloseFundMade(listener) {
	$('<p />').addListenerForOnCloseFundMade(listener);
}

function closeFundMade() {
	$('#fundmade').hide();
		$('#fundmade-overlay').hide();
		//FIXME
		$('embed, object').css({'visibility': 'visible'});
		$('select').css({'visibility': 'visible'});
		$('#fundmade-flash-container object').css({'visibility': 'hidden'});
		$('#fundmade-flash-container embed').css({'visibility': 'hidden'});
		if ( this.onClose ) {
			this.onClose();
		}
//	$('<p />').closeFundMade();
}
