
(function($) {
	$.fn.ziggobox = function(c) {
		var elm = $(this);
		c = $.extend({
			opacity: 0.8
		}, c);
		elm.live('click', function(e) {
			e.preventDefault();
			var a_url = $(this).attr('href');
			var zbelms = _ziggobox_factory();
			var contentType = a_url.substr(strrpos(a_url, '.')+1).toLowerCase();
			console.log(contentType);
			switch (contentType) {
				case 'jpg': case 'png': case 'jpeg': case 'bmp': case 'gif':
					zbelms.loaded = $('<img src="' + a_url + '"/>')
										.bind('load', function(){
											$(zbelms.content).ziggobox_placecontent();
										})
										.appendTo(zbelms.center);
				break;
				default:
					$.ajax({
						url: a_url,
						cache: false,
						type: 'GET',
						dataType: 'html',
						success: function(response) {
							var scripts = response.match(/\<script(.*)\<\/script\>/ig); // get all javascript
							response.replace(/\<script(.*)\<\/script\>/ig, ''); // and delete from source
							zbelms.loaded = $(response).appendTo(zbelms.center);
							$(zbelms.content).ziggobox_placecontent();
						}
					});
				break;
			}
		});
		function _ziggobox_factory() {
			var _ze = {};
			var maxheight = ($(document).height()>$(window).height()) ? $(document).height() : $(window).height();
			var maxwidth = ($(document).width()>$(window).width()) ? $(document).width() : $(window).width();
			if ($('#ziggobox_wrapper').length>0) {
				_ze.center = $('#ziggobox_wrapper').find('.mod_middle_middle');
				_ze.center.css({ minHeight: _ze.center.height() });
				_ze.center.children().remove();
				_ze.content = $('#ziggobox_wrapper').find('.ziggobox_content');
			} else {
				_ze.wrapper = $('<div id="ziggobox_wrapper" style="width:' + maxwidth + 'px;" />');
				_ze.overlay = $('<div class="ziggobox_overlay" style="height:' + maxheight + 'px;" />')
									.appendTo(_ze.wrapper)
									.css({ opacity: c.opacity })
									.bind('click', function(e){
										e.cancelBubble = true;
										$('#ziggobox_wrapper').remove();
									});
				_ze.content = $('<div class="ziggobox_content" />')
									.css({ left: '-2000px' })
									.appendTo(_ze.wrapper)
									.bind('click', function(e){
										if ((e.target.nodeName!="A") && (e.target.nodeName!="INPUT")) {
											e.cancelBubble = true;
											return false;
										}
									});
									
				_ze.close = $('<a class="ziggobox_close"/>')
									.appendTo(_ze.content)
									.bind('click', function(e){
										e.cancelBubble = true;
										$('#ziggobox_wrapper').remove();
									});
				_ze.mod = $('<div class="mod mod24 mod24_notitle ziggobox" />').appendTo(_ze.content);
				_ze.top = $('<div class="top"><div class="cnt">&nbsp;</div></div>').appendTo(_ze.mod);
				_ze.middle = $('<div class="middle"><div class="cnt"><div class="mod_middle_middle"></div></div></div>').appendTo(_ze.mod);
				_ze.bottom = $('<div class="bottom"><div class="cnt">&nbsp;</div></div>').appendTo(_ze.mod);
				_ze.center = _ze.middle.find('.mod_middle_middle');		
				$(_ze.wrapper).appendTo('body');
			}
			return _ze;
		}
	};
	
	$.fn.ziggobox_placecontent = function() {
		var refElm = ($(this).find('img:last').length>0) ? $(this).find('img:last') : $(this) ;
		var posY = Math.floor(($(parent.window).height()/2) - (refElm.height() / 2));
		if (posY<0) posY = 0;
		var posX = Math.floor(($(window).width()/2) - (refElm.width() / 2));
		if (posX<0) posY = 0;
		posY = parseInt(posY) + parseInt(document.documentElement.scrollTop);
		if (posY<0) posY = 20;
		//posX = posX + parent.document.documentElement.scrollLeft; 
		
		$(this).css({
			top: posY + 'px',
			left: posX + 'px'
		});
	}
})($);
$(window).resize( function() {
	if ($('#ziggobox_wrapper').find('.ziggobox_content').length>0) {
		$('#ziggobox_wrapper').find('.ziggobox_content').ziggobox_placecontent();
	}
});
