/**********************************************************************************
***********************************************************************************
                           JavaScript for ggfoundation.com

  @author       Bastian Kuberek - www.bkuberek.com                    
  @copyright    Copyright (C) 2008 gg Foundation. All rights reserved.    
                                                                                 
***********************************************************************************
**********************************************************************************/

var r_tile = 1;
var first_run = true;

// gg namespace //
var gg = { };

/* ====>  bb modal  <==== */
gg.modal = {
	
	/* initial settings */
	config: {
		overlayId: 'overlay',
		overlayClassName: '',
		overlayOpacity: 0.9,
		overlayZIndex: 999,
		className: 'modal',
		fadeIn: 0.5,
		fadeOut: 0.5
	},
	
	remove_element: false,
	
	/* methods */
	show: function (element, where) {
		try{element = $(element);}catch(e){return;};
		this.overlay.show();
		this.overlay.observe('click', function(evt) {
			gg.modal.hide();
			gg.modal.overlay.stopObserving('click');
		});
		if (where == 'center'){
			this.center(element);
			Event.observe(document, 'scroll', function() {
				gg.modal.center(element);
			});
		};
		element.addClassName(this.config.className);
		new Effect.Appear(element, {duration: gg.modal.config.fadeOut});
	},
	
	hide: function (element) {
		element = $(element);
		if (!element) {
			$$('.'+this.config.className).each(function(element) {
				new Effect.Fade(element, {duration: gg.modal.config.fadeOut, 
					afterFinish: function(){
						gg.modal.overlay.hide();
						if (gg.modal.remove_element) {
							element.remove();
							gg.modal.remove_element = false;
						};
					}});
			});
		} else {
			new Effect.Fade(element, {duration: gg.modal.config.fadeOut, 
				afterFinish: function() {
					gg.modal.overlay.hide();
					if (gg.modal.remove_element) {
						element.remove();
						epis.modal.remove_element = false;
					};
				}});
		};
		
		this.overlay.removeClassName('screen');
		
		//this.overlay.hide();
		Event.stopObserving(document, 'scroll');
	},
	
	toggle: function (element) {
		try{element = $(element);}catch(e){return;};
		if (element.visible()) {
			this.hide(element);
		} else {
			this.show(element);
		};
	},
	
	updateOverlayHeight: function () {
		this.overlay.style.height = this.getPageSizeWithScroll() + 'px';
	},
	
	center: function (element) {
		try{element = $(element);}catch(e){return;};
		this.updateOverlayHeight();
		my_width	= document.viewport.getWidth();
		my_height	= document.viewport.getHeight();
		scrollY		= document.viewport.getScrollOffsets().top;
		elementDimensions = Element.getDimensions(element);
		setX = ( my_width  - elementDimensions.width  ) / 2;
		setY = ( my_height - elementDimensions.height ) / 2 + scrollY;
		setX = ( setX < 0 ) ? 0 : setX;
		setY = ( setY < 0 ) ? 0 : setY;
		element.style.position	= 'absolute';
		element.style.zIndex	= this.config.overlayZIndex + 1;
		element.style.left		= setX + "px";
		element.style.top		= setY + "px";
	},
	
	getPageSizeWithScroll: function () {
		if (window.innerHeight && window.scrollMaxY) {// Firefox
			yWithScroll = window.innerHeight + window.scrollMaxY;
		} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
			yWithScroll = document.body.scrollHeight;
		} else { // works in Explorer 6 Strict, Mozilla (not FF) and Safari
			yWithScroll = document.body.offsetHeight;	
		}
		return yWithScroll;
	},
	
	init: function () {
		this.overlay = new Element('div', {'id': this.config.overlayId, 'class': this.config.overlayClassName, 'style': 'position:absolute; z-index:'+this.config.overlayZIndex+'; display:none;'});
		this.overlay.setOpacity(this.config.overlayOpacity);
		document.body.insert(this.overlay);
		this.updateOverlayHeight();
		
		/* observe links */
		$$('.modal-open').each(function(el) {
			el.observe('click', function() {
				element = this.readAttribute('href').substring(this.readAttribute('href').indexOf('#') + 1);
				gg.modal.show(element);
			});
		});
		$$('.modal-close').each(function(el) {
			el.observe('click', function() {
				element = this.readAttribute('href').substring(this.readAttribute('href').indexOf('#') + 1);
				gg.modal.hide(element);
			});
		});
		$$('.modal-img').each(function(el) {
			el.observe('click', function(evt) {
				evt.stop();
				src = this.readAttribute('href');
				element = new Element('div', {'class': 'white-border', 'style': 'display:none; z-index:'+gg.modal.config.overlayZIndex+1});
				img = new Element('img', {'src': src});
				element.insert(img);
				document.body.insert(element);
				gg.modal.overlay.addClassName('screen');
				gg.modal.show(element, 'center');
				gg.modal.remove_element = true;
			});
		});
	}
};


gg.init = function() {
	
	// initialize modal
	gg.modal.init();
	
	// Start slider if it exists
	if ($('slider') != null) {
		// check if there is more than one slide before callig slider script
		var sa = $('slider').childElements();
		if (sa.length > 1) {
			slider.init();
		};
	};
	
	// Date Picker
	if ($('filter_date_start') != null) {
        var dpck_start = new DatePicker({
                     relative   : 'filter_date_start',
                     language   : 'en',
                     keepFieldEmpty : true,
                     dateFormat : [['yyyy', 'mm', 'dd'], '-']
                });
	};
	if ($('filter_date_end') != null) {
        var dpck_end = new DatePicker({
                     relative   : 'filter_date_end',
                     language   : 'en',
                     keepFieldEmpty : true,
                     dateFormat : [['yyyy', 'mm', 'dd'], '-']
                });
    };
	
};


Event.observe(window, 'dom:loaded', gg.init);


function GetThis(T, C, U, L) {
	var targetUrl = 'http://www.myspace.com/Modules/PostTo/Pages/?' + 't=' + encodeURIComponent(T)
+ '&c=' + encodeURIComponent(C) + '&u=' + encodeURIComponent(U) + '&l=' + L;
	window.open(targetUrl);
};

function fbs_click() {
	u = location.href;
	t = document.title;
	window.open('http://www.facebook.com/sharer.php?u='+encodeURIComponent(u)+'&amp;t='+encodeURIComponent(t),'sharer','toolbar=0,status=0,width=626,height=436');
	return false;
};