	// Trigger DOMWindow function
	function triggerOverlay(level){
		$.openDOMWindow({
			height:420,
			width:790,
			windowSource:'ajax',
			windowSourceURL:'ajax_levelup.php?cache=false&level=' + level	// This will help clear the cache
		});
	}
	
	// Trigger DOMWindow function - Mission Master
	function triggerOverlayNotification(level){
		$.openDOMWindow({
			height:420,
			width:790,
			windowSource:'ajax',
			windowSourceURL:'ajax_notification.php?cache=false&level=' + level	// This will help clear the cache
		});
	}
	
	// Built in callback from Bunchball
	// @TODO: Build in badge calls
	function bunchballShowNotificationCallback(notificationName, userId){
		//console.log(notificationName);
		if(notificationName == 'Level Up - L1'){
			triggerOverlay(1);
		} else if (notificationName == 'Level Up - L2'){
			triggerOverlay(2);
		} else if (notificationName == 'Level Up - L3'){
			triggerOverlay(3);
		} else if (notificationName == 'Level Up - L4'){
			triggerOverlay(4);
		} else if (notificationName == 'Badge - Mission Master'){
			triggerOverlayNotification(1);
		} else if (notificationName == 'Badge - Sharing Bird'){
			triggerOverlayNotification(2);
		} else if (notificationName == 'Badge - Giving Guru'){
			triggerOverlayNotification(3);
		} else {
			//console.log('no triggers defined');
		}
	}

$(function() {
	
	// Footer FB link logic
	$('.connectpod .facebook a, .socialList .fb a').click(function(){
		bunchballLogAction('1love_like_1love, 1love_mission_attribute');
	});
	
	// Twitter link logic
	$('.connectpod .twitter a, .socialList .tw a').click(function(){
		bunchballLogAction('1love_twitter_follow, 1love_mission_attribute');
	});
	
	// Attach redeem button logic
	/*
$('.redeem').click(function(e){
		if(!$(this).hasClass('locked') && $(this).attr('rel') != ''){
			bunchballLogAction('1love_download_level3_photos, 1love_mission_attribute');
			//console.log($(this).attr('rel'));
		} else {
			//e.preventDefault();
		}
		// @TODO: ONCLICK THESE THINGS
		//return false;
	});
*/
	
	// Attach tweet button logic 
	twttr.events.bind('tweet', function(event) {
		bunchballLogAction('1love_share_content, 1love_twitter_tweet, 1love_mission_attribute');
	});
	
	// Twitter follow links
	$('ul.socialList .tw a, ul.connectpod .twitter a').click(function(){
		bunchballLogAction('1love_twitter_follow, 1love_mission_attribute');
	});
	
	// Charity link out
	$('.charityLinkOut').click(function(){
		bunchballLogAction('1love_charity_link, 1love_mission_attribute');
	});
	
	// Charity video
	if($('#playerCharity').length > 0){
		bunchballLogAction('1love_charity_video, 1love_mission_attribute');
	}
	
	// Home slider hero pod
	var cycleLoad = 0;
	$('.home #hero').cycle({
		fx: 'fade',
		timeout: 7000,
		pause: true,
		speed: 2000,
		pager: '#pager .pager',
		cleartype: true,
		cleartypeNoBg: true,
		after: function(){ if(cycleLoad == 0){cycleLoad = 1; cycleLoadCallback();}}	// Impromptu onload function
	});
	function cycleLoadCallback(){
		$('#pager .pause').toggle(
		function(){
			$('#hero').cycle('pause');
			$(this).addClass('paused');	
			return false;
		},
		function(){
			$('#hero').cycle('resume');
			$(this).removeClass('paused');	
			return false;
		}
		);
	}
	
	// Partner slider
	var cycleLoad2 = 0;
	$('.partnerCycle').cycle({
		fx: 'fade',
		timeout: 7000,
		pause: true,
		speed: 2000,
		pager: '.partnerPager',
		after: function(){ if(cycleLoad2 == 0){cycleLoad2 = 1; cycleLoadCallback2();}}	// Impromptu onload function
	});
	function cycleLoadCallback2(){
		
	}
	
	// Tabs for redemption page
	$('.redemption ul.subnav li a').click(function(){
		if(!$(this).hasClass('active')){
			$('.redemption ul.subnav li a').removeClass('active');
			$(this).addClass('active');
			var active = $(this);
			$('.redemption ul.subnav').removeClass('level1');
			$('.redemption ul.subnav').removeClass('level2');
			$('.redemption ul.subnav').removeClass('level3');
			$('.redemption ul.subnav').removeClass('level4');
			$('.redemption ul.subnav').addClass(active.attr('rel'));
			
			$('.tabs .tab:not(.' + active.attr('rel') + ')').fadeOut('1000', function(){
				$('.tabs .' + active.attr('rel')).fadeIn('1000');
			})
		}
		
		return false;
	});

	// Collapsible Earn Rewards functionality
	$('h4.collapsible').toggle(
		function(){
			$(this).addClass('collapsed');
			$(this).next('ul').slideUp('700');
			return false;
		},
		function(){
			$(this).removeClass('collapsed');
			$(this).next('ul').slideDown('700');
			return false;
		}
	);

	$(document).click(function(){	
		$("#loginFormWrapper").hide();
	});
	$('#btnOkResetDone').click(function(){	
		$("#loginFormWrapper").hide();
	});
	$("#loginFormWrapper").click(function(e){
	    e.stopPropagation();
	});
	
	//
	// More news feed information
	//
	$('.more-news-feed').click(function(ev)
	{
		ev.preventDefault();
		
		var type          = $(this).attr('data-feed-type');
		var pageBlocksNum = $('#newsfeed_' + type + ' .messages .page').length;
		var feedUrlPart   = $(this).attr('data-url-part');
		var userId        = $(this).attr('data-user-id');
		
		conduit.exchangeHTML({
			url     : 'html/' + feedUrlPart
		,   params  : { 'news-feed-type' : type, '_page' : pageBlocksNum, 'user_id' : userId }
		,   success : function( data ) {
				$('#newsfeed_' + type + ' .messages').append('<div class="page">' + data + '</div>');
			}
		,   error   : function(data) {
				$('#newsfeed_' + type + ' .messages').append('<div class="page">' + data + '</div>');
			}
		});
	});
});

/* TODO: Bad practice! Replace it!*/
//form field clear default text //	
function clearText(a)	{if(a.defaultValue==a.value){a.value=""}else{if(a.value==""){a.value=a.defaultValue}}};


//* -- GENERAL OVERLAY CLOSE BUTTON ---- *//
// -- don't need to specify which div to close each time --//
$(function() {
	$('.popupWindow .btnClose, .popupWindow .btn_inlineclose').click(function(e) {
		$(this).closest('.popupWindow').hide();
		return false;
	})
	
	/* ---- if click anywhere outside of the lightbox it closes ---- */
	$('.overlay').click(function(){	
		$(".popupWindow").hide();
	});
	
	$(".lightBox").click(function(e){
		    e.stopPropagation();
	});
	
	// give links overlay class use href as target//
	$('a.overlay_inline').click(function(){
		var overlay_id = $(this).attr("href"); 
		var margin_top = $(document).scrollTop();
		$(overlay_id).show();
		$(overlay_id).css('margin-top', margin_top+'px');
		
		return false;
	})
});

/* Singup Widget */
$(function () {
	com.principle.Validation.init({
		'form': $('#signupWidget'),
		'url': 'register.do.php'
	});
});

$(function () {
	com.principle.ContactFormValidation.init({
		'form': $('#contactForm'),
		'url': 'contact.do.php'
	});
});

/* Login Widget */

$(function () {
	com.principle.ajaxLogin.init({
		'form': $('#loginForm'),
		'url': 'login.do.php'
	});
	
	com.principle.ajaxResetPassword.init({
		'form': $('#resetPwForm'),
		'url': 'lm/password-reset-init.do.php'
	});
});

$(function() {
	$('#btnLogin').click(function(e) {
		$('#loginFormWrapper #resetPwForm').hide();
		$('#loginFormWrapper #resetPwDone').hide();
		$('#loginFormWrapper #loginForm').show();
		$('#loginFormWrapper').css({'margin-left':'665px', 'margin-top':'0'});
		$('#loginFormWrapper').show();
		return false;
	})

	$('#textLogin').click(function(e) {
		$('#loginFormWrapper #resetPwForm').hide();
		$('#loginFormWrapper #resetPwDone').hide();
		$('#loginFormWrapper #loginForm').show();
		$('#loginFormWrapper').css({'margin-left':$(this).position().left, 'margin-top': $(this).position().top});
		$('#loginFormWrapper').show();
		return false;
	})

	$('#loginForm #loginForgotPw').click(function(e) {
		$('#loginFormWrapper #loginForm').hide();
		$('#loginFormWrapper #resetPwDone').hide();
		$('#resetPwForm .errMsg').hide();
		$('#loginFormWrapper #resetPwForm').show();
		return false;
	})
});

/* Date Widget */
$(function() {
	com.principle.Date.init({
		view: {
			year: $('#year'),
			month: $('#month'),
			date: $('#date')
		},
		month: com.principle.onelove.Config.date.month
   	});
});

/* Videos Switch */
$(function() {
   	$('.videoThumb').click(function() {
   	   	var url = $(this).attr('source');
   	   	var player = $('#' + $(this).attr('player'));
		$.get(url, function(d) {
			$(player).html(d);
		});
		return false;
   	})
});

$(function() {
	
	//
	// Main Level Tabs
	//
	$(".profile_welcome_contentcontainer .tabs li a").click( function(ev)
	{
		var cssClass = $(this).attr('class');
		$( '#profile_' + cssClass ).find('.content-link:eq(0)').trigger('click');
	});
	
	//
	// Switching between content links
	//
	$('.content-link').click(function() {
		$('.content-link').removeClass('selected');
		$('.content-body').hide();
		var data = $(this).addClass('selected').attr('data-container');
		$('#' + data).show();
		return false;
	});
	
	$(".profile_welcome_contentcontainer .tabs li a:eq(0)").trigger('click');
	
	$('.thumb').click(function(e) {
		var href = $(this).find('a').attr('href');
		if (href) {
			window.location.href = href;
			e.stopPropagation();
		}
	});

	$('#linkFbInviteFriends').click(function(e) {
		newwindow=window.open('fb-invite-friends.php','facebook','height=610,width=775');
		if (window.focus) newwindow.focus();
		return false;
	});
	
});


$(function() {
	
	$('.scrollPane.photo').each(function(i, el) {
		com.principle.Scrollable.create().init({
			'scrollPane' : $(el),
			'duration' : 1000,
			'itemsInView' : 5,
			'itemPaddingR' : 92,
			'maxPosLeft' : 1
		});
	})

	$('.scrollPane.video').each(function(i, el) {
		com.principle.Scrollable.create().init({
			'scrollPane' : $(el),
			'duration' : 1000,
			'itemsInView' : 4,
			'itemPaddingR' : 40,
			'maxPosLeft' : 1
		});
	})
})

$(function() {
	
	$('.rating').each(function(i, el) {
		com.principle.RatingStar.create().init({
			'ratingBar': $(el)
		});
	})
	
})

$(function() {
	// Missions setup

	if($('a#missionBtn').hasClass('start')){
		$('#missionText').html('<strong>Ready to go?</strong>');
		$('#missionBtn span').html('Take It Up');
	}
	if($('a#missionBtn').hasClass('accepted')){
		$('#missionText').html('<strong>Mission Accepted</strong>');
		$('#missionBtn span').html('Complete Mission');
	}
	if($('a#missionBtn').hasClass('completed')){
		$('#missionText').html('<strong>Do it again?</strong>');
		$('#missionBtn span').html('Do It Again?');
	}
	
	$("a.missionPopup").fancybox({
		'zoomSpeedIn': 300,
		'zoomSpeedOut': 300,
		'overlayShow': true,
		'onStart': function(){
			$("#uploadPhoto").resetForm();
			$("#uploadVideo").resetForm();
			$("#uploadText").resetForm();
			$("#passItOn").resetForm();
			$(".missionPopupAlert").html('');
			$(".missionPopupAlert").css({"visibility":"hidden"});
		}
	});

	$("a#missionBtn").click(function(){ 
		var status = this.className;
		if (status == 'start' || status == 'completed') {
			var mission_id = this.rel;
			update_mission_status(mission_id, status);
		}
		return false;
	});
	
	$('.missionPopup #video_key').focus(function() {
		if ($(this).val() == 'Paste YouTube video link.') {
			$(this).toggleClass('active');
			$(this).val('');
		}
	});

	$('.missionPopup #video_key').blur(function() {
		if ($(this).val() == '') {
			$(this).toggleClass('active');
			$(this).val('Paste YouTube video link.');
		}
	});
	$('.missionPopup #title').focus(function() {
		if ($(this).val() == 'Enter a title for your submission.') {
			$(this).toggleClass('active');
			$(this).val('');
		}
	});

	$('.missionPopup #title').blur(function() {
		if ($(this).val() == '') {
			$(this).toggleClass('active');
			$(this).val('Enter a title for your submission.');
		}
	});
	$('.missionPopup #photoDescription').focus(function() {
		if ($(this).val() == 'Enter a caption for your photo.') {
			$(this).toggleClass('active');
			$(this).val('');
		}
	});

	$('.missionPopup #photoDescription').blur(function() {
		if ($(this).val() == '') {
			$(this).toggleClass('active');
			$(this).val('Enter a caption for your photo.');
		}
	});
	$('.missionPopup #videoDescription').focus(function() {
		if ($(this).val() == 'Enter a caption for your video.') {
			$(this).toggleClass('active');
			$(this).val('');
		}
	});

	$('.missionPopup #videoDescription').blur(function() {
		if ($(this).val() == '') {
			$(this).toggleClass('active');
			$(this).val('Enter a caption for your video.');
		}
	});
	$('.missionPopup #textDescription').focus(function() {
		if ($(this).val() == 'Enter a description of what happened.') {
			$(this).toggleClass('active');
			$(this).val('');
		}
	});

	$('.missionPopup #textDescription').blur(function() {
		if ($(this).val() == '') {
			$(this).toggleClass('active');
			$(this).val('Enter a description of what happened.');
		}
	});
	
	$('.comments #comment_msg').focus(function() {
		if ($(this).val() == 'Enter a comment.') {
			$(this).toggleClass('active');
			$(this).val('');
		}
	});

	$('.comments #comment_msg').blur(function() {
		if ($(this).val() == '') {
			$(this).toggleClass('active');
			$(this).val('Enter a comment.');
		}
	});
})

$(function() {
	// Comments setup

	$('.comments #comment_msg').focus(function() {
		if ($(this).val() == 'Enter a comment.') {
			$(this).toggleClass('active');
			$(this).val('');
		}
	});

	$('.comments #comment_msg').blur(function() {
		if ($(this).val() == '') {
			$(this).toggleClass('active');
			$(this).val('Enter a comment.');
		}
	});
})

function update_mission_status(mission_id, status) {
	$.post("profile.update.mission.status.php", {status: status, mission_id: mission_id}, function(data){
		if (data.length > 0 && data != '0'){
            $('#missionBtn').removeClass(status);
            $('#missionBtn').addClass('accepted missionPopup');
        	$("a.missionPopup").fancybox({
        		'zoomSpeedIn': 300,
        		'zoomSpeedOut': 300,
        		'overlayShow': true,
        		'onStart': function(){
        			$("#uploadPhoto").resetForm();
        			$("#uploadVideo").resetForm();
        			$("#uploadText").resetForm();
					$("#passItOn").resetForm();
        			$(".missionPopupAlert").html('');
        			$(".missionPopupAlert").css({"visibility":"hidden"});
        		}
        	});
		}
	});
}

function validate_photo_upload(formData, jqForm, options){
	var form = jqForm[0];

	if (form.title.value == 'Enter a title for your submission.') {
		$("#missionPopupErrMsg-Photo").html("You must enter a title for your submission, please try again.");
		$("#missionPopupErrMsg-Photo").css({"visibility":"visible"});
 		return false;
 	} else if (!form.before_photo.value) {
		$("#missionPopupErrMsg-Photo").html("You must select a Before Photo, please try again.");
		$("#missionPopupErrMsg-Photo").css({"visibility":"visible"});
 		return false;
 	} else if (!form.after_photo.value) {
		$("#missionPopupErrMsg-Photo").html("You must select an After Photo, please try again.");
		$("#missionPopupErrMsg-Photo").css({"visibility":"visible"});
 		return false;
 	}
	return true;
}

function validate_video_upload(formData, jqForm, options){
	var form = jqForm[0];
	var youtube = /^[^v]+v.(.{11}).*/i;
	var res = form.video_key.value.match(youtube);

	if (form.title.value == 'Enter a title for your submission.') {
		$("#missionPopupErrMsg-Video").html("You must enter a title for your submission, please try again.");
		$("#missionPopupErrMsg-Video").css({"visibility":"visible"});
 		return false;
 	} else if (!form.video_key.value.match(youtube)) {
		$("#missionPopupErrMsg-Video").html("Your URL was invalid, please try again.");
		$("#missionPopupErrMsg-Video").css({"visibility":"visible"});
 		return false;
 	}
//	alert($.param(formData));
	return true;
}

function validate_text_upload(formData, jqForm, options){
	var form = jqForm[0];

	if (form.title.value == 'Enter a title for your submission.') {
		$("#missionPopupErrMsg-Text").html("You must enter a title for your submission, please try again.");
		$("#missionPopupErrMsg-Text").css({"visibility":"visible"});
 		return false;
 	} else if (form.textDescription.value == 'Enter a description of what happened.') {
		$("#missionPopupErrMsg-Text").html("You must enter a description of what happened, please try again.");
		$("#missionPopupErrMsg-Text").css({"visibility":"visible"});
 		return false;
 	}
//	alert($.param(formData));
	return true;
}

function validate_share_upload(formData, jqForm, options){
	var form = jqForm[0];

	if (emailcount = 0) {		
 		return false;
 	} 
//	alert($.param(formData));
	return true;
}

function validate_comment(formData, jqForm, options){
	var form = jqForm[0];

	if (form.comment_msg.value == 'Enter a comment.') {
		$("#commentErrMsg").html("You must enter a comment before you can submit, please try again.");
		$("#commentErrMsg").css({"visibility":"visible"});
 		return false;
 	}
	return true;
}


function mission_upload_success(data) {
	if (data.status == "success") {
		location.href=data.url;
	} else {
		$("#missionPopupErrMsg-Photo").html(responseText);
		$("#missionPopupErrMsg-Photo").css({"visibility":"visible"});
		$("#missionPopupErrMsg-Video").html(responseText);
		$("#missionPopupErrMsg-Video").css({"visibility":"visible"});
		$("#missionPopupErrMsg-Text").html(responseText);
		$("#missionPopupErrMsg-Text").css({"visibility":"visible"});
	}
//	alert('status: ' + statusText + '\n\nresponseText: \n' + responseText);
}

$(document).ready(function() {
   $('#LiveForeverVideo').hide();
 });

function LiveForeverPlay() {
	$('#LiveForeverOverlay').hide();
	$('#LiveForeverVideo').show();
	/* document.LiveForever.Play(); */
	
}

// ---- Photo Mission ---- //
$(function() {
   $('.photoTooltip').tooltip();
});
// ---- Pass it on ----

// Create array of Facebook friends IDs
var FbFriendsIDs=new Array();
var fbFriendCount = 0;

function clearFbFriends() {
	//$('.fbFriendBox').hide();
	
}

function filterFbFriends() {
	var friend = $('#friendSearch').val();
	$("p:contains(friend)").css('color:green');
	//var friendname = $('p' + )
	//alert(friend);
	/*
	var friend = $('#friendSearch').val();
	for(var i = FbFriendsIDs.length-1; i >= 0; i--){  
		if(FbFriendsIDs[i] == friend){             
			$('#' + friend, '.fbFriendBox').show();  
			}
		}
	*/
}

// Add Facebook friends ID to selected array
function addFbFriendsID(friend) {
	FbFriendsIDs.push(friend);
	fbFriendCount = FbFriendsIDs.length;
	$('.fbFriendSelectedCount').text('Selected (' + fbFriendCount + ')');
	$('#fbfids').val(FbFriendsIDs);
	/* alert(friend + ' added'); */
	//alert(FbFriendsIDs + ' total');
}

// Remove Facebook friends ID from selected array
function removeFbFriendsID(friend) {
	for(var i = FbFriendsIDs.length-1; i >= 0; i--){  
		if(FbFriendsIDs[i] == friend){             
			FbFriendsIDs.splice(i,1); 
			fbFriendCount = FbFriendsIDs.length;
			$('.fbFriendSelectedCount').text('Selected (' + fbFriendCount + ')');
			$('#fbfids').val(FbFriendsIDs);
			/* alert(friend + ' removed'); */  
			}
		}	
}

// Toggle friend click, selects or removes depending on current state
function selectFbFriend(friend)
{
	if ($('#' + friend).hasClass('fbFriendSelected')) {
		$('#' + friend).removeClass('fbFriendSelected');
		removeFbFriendsID(friend);
	} else {
		$('#' + friend).addClass('fbFriendSelected');
		addFbFriendsID(friend);
	}
	/*alert(friend + " selected");*/
}

// Enter FaceBook step 1, log into FB connect, select friends
function PassitonFacebookStep1() {
	$('#passItOnThanks').hide();
	$('#fbTab').addClass(' ui-tabs-selected ui-state-active');
	$('#emailTab').removeClass(' ui-tabs-selected ui-state-active');
	$('#eMail').addClass(' ui-tabs-hide');
	$('#facebook').removeClass(' ui-tabs-hide');
	$('#eMailStep2').hide();
	$('#eMailStep1').show();
	
}

// Move to FaceBook step 2, customize email message
function PassitonFacebookStep2() {
	$('#emailTab').addClass(' ui-tabs-selected ui-state-active');
	$('#fbTab').removeClass(' ui-tabs-selected ui-state-active');
	$('#facebook').addClass(' ui-tabs-hide');
	$('#eMail').removeClass(' ui-tabs-hide');
	$('#eMailStep1').hide();
	$('#eMailStep2').show();
	
}

// Enter email step 1, enter 10 emails
function PassitonEmailStep1() {
	$('#eMailStep1').show();
	$('#eMailStep2').hide();
		if (emailcount < 9) {
		$('#eMailStep1BtnActive').hide();
		}
}

// Move to email step 2, customize email message
function PassitonEmailStep2() {
	$('#eMailStep1').hide();
	$('#eMailStep2').show();
	
}

function PassitonThanks() {
	$('#tabList').hide();
	$('#PassItOnMenu').hide();
	$('#facebook').hide();
	$('#introMessage').hide();
	$('#passItOnHeading').hide();
	$('#eMail').hide();
	$('#passItOnThanks').show();
	$('#share').scrollTop();
	
}

// Create list of valid emails
var validEmails=new Array();

// Count valid emails
var emailcount = 0;

// Validate email, accepts email address
function validateEmail(emailId)
{
var emailPattern = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;


var emailToValidate = $('#' + emailId).val();
    
	// Add email to list if valid
	function addEmailToArray(emailToAdd)
	{		
		validEmails.push(emailToAdd); 
		emailcount = validEmails.length;
		$('#validEmailsList').val(validEmails);
	}
    
	// If email field is not empty, validate the email
	if (emailToValidate != "") {
		if (emailPattern.test(emailToValidate)) { 
			$('#' + emailId + 'Result').addClass('emailValid');
			addEmailToArray(emailToValidate);		  
		} else { 
			//$('#' + emailId).val('Type email here'); 
			$('#' + emailId + 'Result').removeClass('emailValid'); }
	}
	
	// If 10 emails have been entered, show next step buttun
	if (emailcount >= 1) {
		/*alert("congrats!" + validEmails);*/
		$('#eMailStep1BtnNonActive').hide();
		$('#eMailStep1BtnActive').show();
	}
	
}
