

jQuery(function($) {

	var Page = {

		_htmlclass: "js",
		_selectedclass: "selected",
		_activeclass: "active",
		_inactiveclass: "inactive",

		init: function() {
			$('div#wrapper').addClass(Page._htmlclass);
			Page.initForms();
		},

		initForms: function() {
			Page.initInputs('div#site-login');
			Page.initInputs('div#black-book-navigation');
			Page.initEnterTrap();
		},
		
		initInputs: function(id) {
			var inputs = $(id+' input[type=text]');
			var labels = $(id+' label');
			for (var i=0;i<inputs.length;i++) {
				Page.initInput(inputs[i], $(labels[i]).html());
			}
		},

		initInput: function(obj, str) {
			$(obj).attr("value", str)
						.addClass(Page._inactiveclass)
						.focus(function() {
							Events.evtInputFocus(this, str);
						})
						.blur(function() {
							Events.evtInputBlur(this, str);
						})
		},

		initEnterTrap: function() {
			var arrForms = $("fieldset input[type=text],input[type=password]")
			arrForms.each(function() {
				$(this).keypress(function(e) {
					Events.evtInputEnter(this, e)
				});
			});
		}
		
	};
	
	var Scrollbars = {
		
		_defaultselector: 'div.scroll',
		_assetlistingselector: 'div.asset-listing',
		_options: {
			dragMinHeight	: 20,
			dragMaxHeight	: 20,
			showArrows		: true,
			scrollbarWidth	:	20,
			scrollbarMargin	:	10
		},
		
		init: function() {
			$(Scrollbars._defaultselector).jScrollPane(Scrollbars._options);
			$(Scrollbars._assetlistingselector).jScrollPane(Scrollbars._options);
		}
		
	};
	
	var BlackBook = {
		
		init: function() {
			var options = Popup._options;
			options.onStart = function(e){
				BlackBook.evtBlackBookPopupClick(e);
			};
			$('div#black-book-listing').find("td a").fancybox(options);
		},
		
		evtBlackBookPopupClick: function(e) {
			var _html = $(e).parent('td').siblings('td.bb-furtherinfo').html();
			Popup.populate(_html)
		}
		
	};
	
	var Attendees = {
		
		init: function() {
			var options = Popup._options;
			options.onStart = function(e){
				Attendees.evtAttendeePopupClick(e);
			};
			$('div#event-asset-listing').find("li a").fancybox(options);
		},
		
		evtAttendeePopupClick: function(e) {
			var _html = $(e).parent().siblings('div.att-furtherinfo').html();
			Popup.populate(_html)
		}
		
	};
	
	var EventListing = {
		
		_rsvpurl: '/index.php/ajax/rsvp',
		
		init: function() {
			var inputs = $('div#event-listing').find("div.event-rsvp div.field input");
			inputs.click(function(){
				EventListing.evtEventListingClick(this);
			});
			var inputs = $('div#next-event').find("div.event-rsvp div.field input");
			inputs.click(function(){
				EventListing.evtEventListingClick(this);
			});
		},
		
		evtEventListingClick: function(obj) {
			
			var form = $(obj).parents('form');
			var data = $(form).serialize()
			$.fancybox.showActivity();
			$.ajax({
				type:"POST",
				cache: false,
				url: EventListing._rsvpurl,
				data: data,
				success: function(data) {
					EventListing.evtEventListingPopup(data)
				},
				error: function(data) {
					EventListing.evtEventListingPopup(data)
				}
			})
			
		},
		
		evtEventListingPopup: function(data) {
			if (!data) {
				data = '<p><strong>Sorry there has been a problem</strong><br />Please try resubmitting</p>'
			}
			var options = Popup._options;
			options.onClosed = function() {
				var location = unescape(window.location.pathname);
				window.location.href = location;
			}
			$(Popup._popupcontent).html(data)
			$.fancybox($("div#popup-container"),options);
		}
		
	}
	
	var Popup = {
		
		_close: 'a#popup-close',
		_popupcontent: 'div#popup',
		_options: {
			showCloseButton		: false,
			titleShow			: false,
			overlayColor		: '#000',
			overlayOpacity		: '0.6'
		},
		
		init: function() {
			$(Popup._close).click(function(){
				$.fancybox.close();
				return false;
			})
		},
		
		populate: function(html) {
			$(Popup._popupcontent).html(html);
		}
		
	}

	var Utils = {

		activateElement: function(obj) {
			$(obj).removeClass(Page._inactiveclass)
			$(obj).addClass(Page._activeclass)
		},

		deactivateElement: function(obj) {
			$(obj).removeClass(Page._activeclass)
			$(obj).addClass(Page._inactiveclass)
		},

		activateAll: function(arr) {
			$(arr).each(function(index) {
				Utils.activateElement(this);
			});
		},

		deactivateAll: function(arr) {
			$(arr).each(function(index) {
				Utils.deactivateElement(this);
			});
		},

		openElement: function(obj) {
			$(obj).addClass(Page._selectedclass)
		},

		closeElement: function(obj) {
			$(obj).removeClass(Page._selectedclass)
		},

		openAll: function(arr) {
			$(arr).each(function(index) {
				Utils.openElement(this);
			});
		},

		closeAll: function(arr) {
			$(arr).each(function(index) {
				Utils.closeElement(this);
			});
		}
	};

	var Tabinator = {

		_tabsclass: "tabs",
		_tabsnavigationclass: "tabs-navigation",
		_tabscontainerclass: "tabs-container",
		_tabclass: "tab-content",

		init: function() {
			var tabinators = $('div.' + Tabinator._tabsclass);
			tabinators.each(function(i) {
				var tabs = $(this).find(' div.' + Tabinator._tabsnavigationclass + ' ul li a');
				tabs.each(function(p) {
					p == 0 ? Tabinator.openTab(this, 0) : null;
					$(this).click(function() {
						Tabinator.evtTabClick(this, p);
						return false;
					});
				});
			});
		},

		openTab: function(obj, index) {
			var navigation = $(obj).parents('div.' + Tabinator._tabsnavigationclass)
			var tabs = $(navigation).find('li')
			var parent = $(obj).parent('li')
			Utils.closeAll(tabs)
			Utils.openElement(parent);

			var content = $(navigation).next('div.' + Tabinator._tabscontainerclass)
			var contents = $(content).find('div.' + Tabinator._tabclass)
			var tab = $(contents)[index];
			Utils.deactivateAll(contents);
			Utils.activateElement(tab);
		},

		evtTabClick: function(obj, index) {
			Tabinator.openTab(obj, index);
		}

	};

	var Events = {

		evtInputEnter: function(obj, key) {
			if (key.which == 13) {
				var submit = $(obj).parent("li").nextAll("li.submit").children("input");
				submit[0].click();
			}
		},

		evtInputFocus: function(obj, str) {
			var txt = $(obj).attr("value");
			if (txt == "" || txt == str)
				$(obj).attr("value", "");
			$(obj).removeClass(Page._inactiveclass)
							.addClass(Page._activeclass);
		},

		evtInputBlur: function(obj, str) {
			var txt = $(obj).attr("value");
			if (txt == "" || txt == str)
				$(obj).attr("value", str)
			$(obj).removeClass(Page._activeclass)
							.addClass(Page._inactiveclass);
		}

	};

	var Profile = {
		
		init: function() {
		},
		
		evtFileSelect: function(e) {
			alert(e)
		}
		
	};

	init = function() {
		Page.init();
		Popup.init();
		Scrollbars.init();
	};
	
	initPages = function() {
		if ($('div#profile').length > 0) {
			Profile.init();
		}
		if ($('div.tabs').length > 0) {
			Tabinator.init();
		}
		if ($('div#black-book-listing').length > 0) {
			BlackBook.init();
		}
		if ($('div#event-asset-listing').length > 0) {
			Attendees.init();
		}
		if ($('div#event-listing').length > 0) {
			EventListing.init();
		}		
		if ($('div#next-event').length > 0) {
			EventListing.init();
		}	
	}

	init();
	initPages();
	
});

function evtFileUpload() {
	var input = $('li#photo-upload input[type=file]')
	var form = input.parents('form')[0];
	form.submit();
}

function evtFileUploadSubmit() {
}
