$(document).ready(function() {
	// analog - login
	$('a[href$="login"], #modalLogin, .modalLock, .lock').click(function(){
		if ($(this).hasClass('logout'))
			return true;
		$("#member").dialog({
			modal: true, 
			resizable: false, 
			open:function () {
				var dialog = $('#member'),
					form = dialog.find('form.loginForm');
					
				form.submit(function () {
					$(this).find(':input').removeClass('error');
					form.find('button').attr('disabled', 'disabled');
					$.post($(this).attr('action'), $(this).serialize(), function (data) {
						form.find('button').removeAttr('disabled');
						if (data.success === false) {
							form.find(':input').addClass('error');
							dialog.find('p.error.hidden').siblings('p').fadeOut('fast', function () {
								$(this).addClass('hidden');
								dialog.find('p.error.hidden').hide().removeClass('hidden').fadeIn('fast');
							});
						} else {
							window.location.reload();
						}						
					}, 'json');
					return false;
				});
			},
			close:function (){
				$('#member').dialog('destroy');
			}
		}).dialog('open');
		$('#member').find('a.close').click(function () {
			$('#member').dialog('close');
			return false;
		});
		
		return false;
	});
	
	$('form[action$="login"]').submit(function () {
		if ($(this).closest('ui-dialog').length > 0)
			return true;
		
		$.post($(this).attr('action'), $(this).serialize(), function (data) {	
			var dialog = $('#member'),
				form = dialog.find('form.loginForm');
		
			if (data.success === false) {
				dialog = $('#member');
				form = dialog.find('form.loginForm');
				
				form.find(':input').addClass('error');
				dialog.find('p.error.hidden').removeClass('hidden').siblings('p').remove();
				dialog.dialog({
					modal: true, 
					resizable: false, 
					open:function () {
						form.submit(function () {
							$(this).find(':input').removeClass('error');
							form.find('button').attr('disabled', 'disabled');
							$.post($(this).attr('action'), $(this).serialize(), function (data) {
								form.find('button').removeAttr('disabled');
								if (data.success === false) {
									form.find(':input').addClass('error');
									dialog.find('p.error.hidden').siblings('p').fadeOut('fast', function () {
										$(this).addClass('hidden');
										dialog.find('p.error.hidden').hide().removeClass('hidden').fadeIn('fast');
									});
								} else {
									window.location.reload();
								}						
							}, 'json');
							return false;
						});
					},
					close:function (){
						$('#member').dialog('destroy');
					}
				}).dialog('open');
				
				dialog.find('a.close').click(function () {
					$('#member').dialog('close');
					return false;
				});
				
			} else {
				window.location.reload();
			}
		}, 'json');
		return false;
	});
	
	// analog - forgot password
	$('a.forgot').click(function(){
		$('#member').dialog('close');
		$( "#forgot" ).dialog({
			autoOpen: false, 
			modal: true, 
			resizable: false,
			open: function () {
				var dialog = $('#forgot'),
					form = dialog.find('form.forgotForm');
					
				form.submit(function () {
					$(this).find(':input').removeClass('error');
					form.find('button').attr('disabled', 'disabled');
					$.post($(this).attr('action'), $(this).serialize(), function (data) {
						form.find('button').removeAttr('disabled');
						if (data.success === false) {
							form.find(':input').addClass('error');
							dialog.find('span.error.hidden').siblings('span').fadeOut('fast', function () {
								$(this).addClass('hidden');
								dialog.find('span.error.hidden').hide().removeClass('hidden').fadeIn('fast');
							});
						} else {
//							window.location.reload();
							//form.find(':input, button').addClass('hidden');
							form.hide();
							dialog.find('span.success.hidden').siblings('span').fadeOut('fast', function () {
								$(this).addClass('hidden');
								dialog.find('span.success.hidden').hide().removeClass('hidden').fadeIn('fast');
							});
						}						
					}, 'json');
					return false;
				});
				
				dialog.find('a.close').click(function () {
					$('#forgot').dialog('close');
					return false;
				});
			},
			close: function () {
				var dialog = $('#forgot'), form = dialog.find('form.forgotForm');
				form.show();
				form.get(0).reset();
				dialog.find('span.success').addClass('hidden');
			}
		}).dialog('open');
		return false;
	});
	
	if ($('div.featuredConversationInfo').length > 0 && $('div.featuredConversationInfo').next().hasClass('subscribe')) {
		var featured = $('div.featuredConversationInfo');
		var subscribe = featured.next();

		subscribe.css('height', featured.css('height')).css('padding-bottom', featured.css('padding-bottom'));
	}

	$('button.fakeInput[type="submit"] a').live('click', function () {
		$(this).parents('form').submit();
		return false;
	});

	//fake dropdowns
	if ($('div.drop').length > 0) {
//		console.log($('div.drop').length+' fake dropdown menus');
//		$('div.drop').find('li, a').disableSelection().click(function (event) {event.preventDefault(); return false;});
		$('span.topics').click(function(){
			var next = $(this).next('div.drop');
			if (! next.is(':visible'))
			{
				//assume that this isn't showing... so hide all the other div.dropdown boxes
				$('div.drop').hide();

				position = $(this).position();
				next.css('top', position.top+'px')
					.css('top', position.top+'px')
					.css('left', position.left+'px')
					.css('margin-top', $(this).css('margin-top'))
					.css('margin-left', $(this).css('margin-left'))
					.css('width', $(this).css('width'))
					.show();
				next.find('li').css('width', $(this).css('width')).find('a').css('width', ($(this).width()-24) + 'px');
				next.find('li.main').css('width', ($(this).width()-28) + 'px');
			}
			else
				next.hide();
			return false;
		});
		$('div.drop ul li.main').click(function (event) {
			$(this).parents('div:first').hide();
			event.stopPropagation();
		});
		
		$('div.drop ul li a').click(function(){
			var div = $(this).parents('div:first');
			var ul = $(this).parents('ul:first');
			ul.find('a.selected').removeClass('selected');
			ul.children('li.main').html($(this).html());
			div.prev('span:first').find('a').html($(this).html());
			div.children('input[type=hidden]').val($(this).attr('value'));

			switch (div.children('input[type=hidden]').attr('name')) {
				case 'package_id':
				case 'num_people':
					var eventDiv = $(this).parents('div[event_id]');
					$.post(baseUrl+'event_registration/update_pricing', {
						event_id: eventDiv.attr('event_id'),
						event_package_id: eventDiv.find ('input[name=package_id]').val(),
						qty: eventDiv.find ('input[name=num_people]').val()}, function (data) {

						eventDiv.find ('div.wright > p.nonmember_price').html(data.nonmember_price);
						eventDiv.find ('div.wright > p.member_price').html(data.member_price);
						$('div.total > span.price').html (data.total);
					}, 'json');
					break;
				default:
					break;
			}


			$(this).addClass('selected');
			$('div.drop').hide();
			return false;
		});

		$('body').click (function () {
			if ($('div.drop').is(':visible'))
				$('div.drop').hide();
		});
	}

	if ($('#slider').length > 0) {
		$("#slider").easySlider({
				auto: true,
				nextText: '',
				prevText: '',
				continuous: true
			});
	}

	if ($('#enquiryForm').length > 0)
	{
		// analog - forgot password
		$( "#enquiryModal" ).dialog({autoOpen: false, modal: true, resizable: false});
		$('#enquiryForm').submit(function () {
			$.post(baseUrl+'contact/send_enquiry', {
				'name':$(this).find ('input[name=name]').val(),
				'email':$(this).find('input[name=email]').val(),
				'organisation':$(this).find('input[name=organisation]').val(),
				'enquiry':$(this).find('textarea[name=enquiry]').val()}, function (data) {
				if (data == true) {
					$( "#enquiryModal" ).dialog('open');
					$('#enquiryForm').find ('input, textarea').css ('border', '');
					document.getElementById("enquiryForm").reset();
				} else {
					for ( field in data) {
						if (data[field] != true) {
							$('#enquiryForm').find ('input[name='+field+'], textarea[name='+field+']').css ('border', 'solid thin red');
						}
					}
				}
			});
			return false;
		}, 'json');
	}

	// open more checkboxes
	if ($('input#sub').length > 0) {
		if ($('input#sub:checked').length > 0)
			$('div.extra').toggle();

		$('input#sub').click(function(){
			$( "div.extra" ).toggle();
		});
	}

	if ($('div[event_id] a.close').length > 0) {
/*
		$('select[name=package_id], select[name=num_people]').change(function () {
			var eventDiv = $(this).parents('div[event_id]');
			
			$.post(baseUrl+'event_registration/update_pricing', {
				event_id: eventDiv.attr('event_id'),
				event_package_id: eventDiv.find ('select[name=package_id]').val(),
				qty: eventDiv.find ('select[name=num_people]').val()}, function (data) {

				eventDiv.find ('div.wright > p.nonmember_price').html(data.nonmember_price);
				eventDiv.find ('div.wright > p.member_price').html(data.member_price);
				$('div.total > span.price').html (data.total);
			}, 'json');
		});
*/
		$('div[event_id] a.close').click (function () {
			var eventDiv = $(this).parents('div[event_id]');
			var eventId = eventDiv.attr('event_id');
			$.post(baseUrl+'event_registration/remove_pricing', {event_id: eventId}, function (data) {
				if (data.total_items == 0) {
					alert ('No events booked!');
					window.location = baseUrl+'events';
				} else {
					$('div[event_id='+eventId+']').remove();
					$('div.total > span.price').html (data.total);
				}
			}, 'json');
			return false;
		});

		$('input[type=checkbox]#check').parents('form').submit(function () {
			var checkbox = $(this).find('input[type=checkbox]#check');
			if (! checkbox.is(':checked')) {
				console.log('not checked');
				checkbox.siblings('label[for=check]').css('border', 'solid thin red');
				return false;
			}
		});
	}

	$('select[name=cc_type]').change(function () {
		var contentDiv = $(this).parents('div.datacontent:first')
		$.post(baseUrl+'event_registration/get_cc_surcharge', {cc_type:$(this).val()}, function (data) {

			contentDiv.find ('#cc_surcharge').html(data.cc_surcharge);
			contentDiv.find ('#grand_total').html(data.grand_total);
		}, 'json');
	});

//	var a = $('.smallboard').children('div.image');
	if ($('.smallboard').children('div.image').length > 1) {
		//keep track of this interval
		var smallBoardIntervalId = null;
		$('.smallboard').hover(function () {
			window.clearInterval(smallBoardIntervalId);
		}, function () {
			smallBoardIntervalId = window.setInterval(function () {
				var current = $('.smallboard').children('div.image:visible');
				var next = current.next('div.image:visible');
				if (next.length == 0)
					next = current.siblings('div.image:first');

				current.fadeOut('slow', function () {
					next.fadeIn('slow');
				});
			}, 10000);
		});
		//initialize the hover event
		$('.smallboard').hover();
	}
	
	// load fckeditor if required ...
	if($('.editor').length > 0) {
		$.getScript(baseUrl+'fckeditor/fckeditor.js', function(){
			$('.editor').each(function() {
				height = ($(this).attr('rows') > 0)?$(this).attr('rows')*40+'px':'300px';
				f = new FCKeditor($(this).attr('id'), '100%', height, 'Basic');
				f.BasePath = baseUrl+'fckeditor/';
				f.ReplaceTextarea();
			});
		});
	}

	// events submenu open
	$('a.knowledge, a.events, ul.submenu').hover(
		function () {
			var ul = $(this).parent().find('ul.submenu');
			var a = $(this).parent().find('a');
			if (ul.is(':hidden'))
				ul.show();
			if (!a.hasClass('activetwo'))
				a.addClass('activetwo');
		},
		function () {
			$(this).parent().find('ul.submenu').hide();
			$(this).parent().find('a').removeClass('activetwo');
		}
	);

	
	//user subscriptions
	$('form[action$=add_subscription]').find ('a').live('click', function () {
		var form = $(this).parents('form');
		var image = $(this).find('img');

		$.post(form.attr('action'), {
			parent_id: form.find('input[name=parent_id]').val(),
			subscription_type: form.find ('input[name=subscription_type]').val()}, function (data) {

			if (data == true) {
				if (image.length > 0) {
					if (image.attr('src').match(/favorite/i) !== null)
						image.attr('src', image.attr('src').replace(/favorite/i, 'unfavorite'));
					else
						image.attr('src', image.attr('src').replace(/subscribe/i, 'unsubscribe'));
					form.attr('action', form.attr('action').replace(/add_subscription/i, 'remove_subscription'));
				}
				else
				{
					var parent = form.parent();
					form.remove();
					if (parent.children().length == 0)
						parent.remove();
				}

				if ($('ul.mysub').length > 0) {
					$.post ('community/get_my_subscriptions', {}, function (data) {
						$('ul.mysub').html($(data).find('ul.mysub').html());
					});
				}
			} else
				$( "#member" ).dialog('open');
		}, 'json');
		return false;
	});
	$('form[action$=remove_subscription]').find ('a').live('click', function () {
		var form = $(this).parents('form'),
			image = $(this).find('img'),
			parent_id = form.find('input[name=parent_id]').val(),
			subscription_type = form.find ('input[name=subscription_type]').val();
		if ($(this).hasClass('ignore')) {
			window.location = $(this).attr('href');
			return false;
		}
			
		$.post(form.attr('action'), {parent_id: parent_id, subscription_type: subscription_type}, function (data) {
			if (data == true) {
				if (image.length > 0) {
					if (image.attr('src').match(/unfavorite/i) !== null)
						image.attr('src', image.attr('src').replace(/unfavorite/i, 'favorite'));
					else
						image.attr('src', image.attr('src').replace(/unsubscribe/i, 'subscribe'));
					form.attr('action', form.attr('action').replace(/remove_subscription/i, 'add_subscription'));
				}
				else
				{
					var parent = form.parent();
					form.remove();
					if (parent.children().length == 0)
						parent.remove();
				}
				if ($('ul.mysub').length > 0) {
					$.post ('community/get_my_subscriptions', {}, function (data) {
						$('ul.mysub').html($(data).find('ul.mysub').html());
						$('form[action$=remove_subscription]').find('input[name=parent_id]').each(function () {
							if ($(this).val() != parent_id || $(this).siblings('input[name=subscription_type]').val() != subscription_type)
								return;
							$(this).siblings ('a').click();
						});
					});
				}
			}
		}, 'json');
		return false;
	});


	if ($('#interested').length > 0) {
		//interested on events page
		$('#interested, #interest_noted').dialog({autoOpen: false, modal: true, resizable: false});
		$('a.btn.interested').click (function () {
			$('#interested').dialog('open');
		});

		$('#interested form').submit(function (data) {
			$.post ($(this).attr('action'), $(this).serialize(), function (data) {
				$('#interested').dialog('close');
				$('#interest_noted').dialog('open');
			});
			return false;
		});
		
	}

	// edit details
	$('a#opendata').click(function(){
		$('#data').slideToggle('fast', function () {
			$('html, body').animate({
			scrollTop: $('#data').offset().top
			}, 1000);
		});
		return false;
	});
	$('form[action$=upload_avatar] #upload').change(function () {
		$(this).parents('form').submit();
	});

	//within page my events loading/searching
	if ($('#myEventsForm').length > 0)
	{
		$('#myEventsForm').submit(function () {
			$.post (baseUrl+'events/'+$(this).find('input[name=past_or_future]').val(), {
				'query' : $(this).find('input[name=query]').val(),
				'topic_area_id' : $(this).find('input[name=topic_area_id]').val(),
				'per_page':2
			}, function (data) {
				var leftSide = $(data).find('div.leftside');
				$('#myEvents').fadeOut('fast', function () {
					$('#myEvents').find('div.topic').remove();
					$('#myEvents').append($(leftSide).find('div.topic'));
						// cufon replace
						Cufon.replace('.stagm', {fontFamily: 'stagm'});
						Cufon.replace('.stagb', {fontFamily: 'stagb'});
						Cufon.replace('.stagt', {fontFamily: 'stagt'});

					pagenav = $(leftSide).find('div.nav:last');
					$('#myProfilePageLinks').html('');
					if ($(pagenav).find('form').length == 0) {
						$('#myProfilePageLinks').append($(pagenav));
					}
					
					$('#myEvents').fadeIn('fast', function () {});
				});
			});

			return false;
		});

		$('#myProfilePageLinks a[href]').live('click', function () {
			var href = $(this).attr('href').replace(/\/events\//i, '/'+$('#myEventsForm').find('input[name=past_or_future]').val()+'/');
			$.post (href, {
				'per_page':2
			}, function (data) {
				var leftSide = $(data).find('div.leftside');
				$('#myEvents').fadeOut('fast', function () {
					$('#myEvents').find('div.topic').remove();
					$('#myEvents').append($(leftSide).find('div.topic'));
						// cufon replace
						Cufon.replace('.stagm', {fontFamily: 'stagm'});
						Cufon.replace('.stagb', {fontFamily: 'stagb'});
						Cufon.replace('.stagt', {fontFamily: 'stagt'});

					pagenav = $(leftSide).find('div.nav:last');
					$('#myProfilePageLinks').html('');
					if ($(pagenav).find('form').length == 0) {
						$('#myProfilePageLinks').append($(pagenav));
					}

					$('#myEvents').fadeIn('fast', function () {});
				});
			});
			return false;
		});

		//load the search....
		$('#myEventsForm').submit();
	}

	$('img.rounded').one('load',function () {
		var img = $(this);
		var img_width = img.width();
		var img_height = img.height();

		// build wrapper
		var wrapper = $('<div class="rounded_wrapper"></div>');
		wrapper.width(img_width);
		wrapper.height(img_height);

		// move CSS properties from img to wrapper
		wrapper.css('float', img.css('float'));
		img.css('float', 'none')

		wrapper.css('margin-right', img.css('margin-right'));
		img.css('margin-right', '0')

		wrapper.css('margin-left', img.css('margin-left'));
		img.css('margin-left', '0')

		wrapper.css('margin-bottom', img.css('margin-bottom'));
		img.css('margin-bottom', '0')

		wrapper.css('margin-top', img.css('margin-top'));
		img.css('margin-top', '0')

		wrapper.css('display', 'block');
		img.css('display', 'block')

		// IE6 fix (when image height or width is odd)
		if ($.browser.msie && $.browser.version == '6.0')
		{
			if(img_width % 2 != 0)
			{
				wrapper.addClass('ie6_width')
			}
			if(img_height % 2 != 0)
			{
				wrapper.addClass('ie6_height')
			}
		}

		// wrap image
		img.wrap(wrapper);

		// add rounded corners
		img.after('<div class="ttl"></div>');
		img.after('<div class="ttr"></div>');
		img.after('<div class="bbl"></div>');
		img.after('<div class="bbr"></div>');
	}).each(function(){
		if(this.complete) $(this).trigger("load");
	});


	/* gray */
	$('img.roundedg').one('load',function () {
		var img = $(this);
		var img_width = img.width();
		var img_height = img.height();

		// build wrapper
		var wrapper = $('<div class="rounded_wrapper"></div>');
		wrapper.width(img_width);
		wrapper.height(img_height);

		// move CSS properties from img to wrapper
		wrapper.css('float', img.css('float'));
		img.css('float', 'none')

		wrapper.css('margin-right', img.css('margin-right'));
		img.css('margin-right', '0')

		wrapper.css('margin-left', img.css('margin-left'));
		img.css('margin-left', '0')

		wrapper.css('margin-bottom', img.css('margin-bottom'));
		img.css('margin-bottom', '0')

		wrapper.css('margin-top', img.css('margin-top'));
		img.css('margin-top', '0')

		wrapper.css('display', 'block');
		img.css('display', 'block')

		// IE6 fix (when image height or width is odd)
		if ($.browser.msie && $.browser.version == '6.0')
		{
			if(img_width % 2 != 0)
			{
				wrapper.addClass('ie6_width')
			}
			if(img_height % 2 != 0)
			{
				wrapper.addClass('ie6_height')
			}
		}

		// wrap image
		img.wrap(wrapper);

		// add rounded corners
		img.after('<div class="ttlg"></div>');
		img.after('<div class="ttrg"></div>');
		img.after('<div class="bblg"></div>');
		img.after('<div class="bbrg"></div>');
	}).each(function(){
		if(this.complete) $(this).trigger("load");
	});

	//prevent placeholder links from going places
	$('a[href='+baseUrl+'#]').click(function () {
		if ($(this).parents('form').length == 0)
			return false;
	});

	// labels
	$("input:text, input:password, textarea").labelify();
});

