jQuery( function(){
	jQuery('.fullAccessOnly').attr('href','');
	
	pop = jQuery("<div>").attr({"id":"popupWrap"}).appendTo('body');
	jQuery(".doPopup, .makePopup, .doPopupTip").click( function( e ){ e.preventDefault(); renderPop( jQuery(this), 18, 38 ); });

	jQuery(".doPopupBudget").hover(
		function(){
			renderPop( jQuery(this), 60, 38 );
		}, function(){
			hidePop();
		}
	);

	jQuery(".doPopupSignup").hover(
		function( e ){
			renderPop( jQuery(this), 185, 38 );
		}, function(){
			hidePop();
		}
	);

	jQuery('.fullAccessOnly').attr('href','').click( function( e ){ e.preventDefault();
		opts = {
			'trig' : jQuery(this)
			, 'offset' : { 'left' : 18 , 'top' : 38 }
			, 'title' : 'upgrade your account'
			, 'body' : '<p><strong>Upgrade to a full Solutions account today and get unrestricted access.</strong> The item you are currently trying to access is restricted to full account members only. Upgrade today and enjoy the following benefits:</p><ul><li><strong>Unlimited transactions</strong> in the Transaction Register</li><li><strong>Access to Solutions Teams & Meeting Rooms</strong> in Community</li><li><strong>Unrestricted access to Articles, Videos, and Quizzes</strong> in Coaching</li><li><strong>Earn unlimited golden eggs and prizes</strong> in Rewards</li></ul><p><a class="button yellow" href="/signup/payment/"><span><img alt="Sign Up: Free Lite Account" src="/assets/images/main/btn_txt_upgrade_now.png"></span></a></p><p><a href="/signup/" class="link">View all full account benefits &raquo;</a></p>'
		}
		renderPop2( opts );
	});
	
	jQuery(".rewardsPop").click( function( e ){ e.preventDefault(); renderRewardsPop( jQuery(this), 18, 38 ); });
	jQuery(".trophyPop").click( function( e ){ e.preventDefault(); renderTrophyPop( jQuery(this), 0, 0 ); });
	
	function renderTrophyPop( trig, rightOffset, topOffset ){
		var offset = trig.offset();
		var top = offset.top;
		var left = offset.left;
		var thisWidth = trig.width();
		var rightOffset = rightOffset;
		var topOffset = topOffset;
		var wrapperBounds = jQuery(".wrapper").offset();
		var wrapperBoundsLeft = wrapperBounds.left;
		var wrapperBoundsRight = wrapperBoundsLeft + parseInt( jQuery('.wrapper').css('width'));
		
		//console.log("Wrapper Left: " + wrapperBoundsLeft + " Wrapper Right: " + wrapperBoundsRight);
		id = parseInt( trig.attr('rel'));
		
		jQuery("#popupWrap").load(
			'/templates/popups/trophy.php'
			, function(){
				jQuery(this).css({ 'top': '50%', 'left': '50%', 'margin-top' : '-' + jQuery(this).height() / 2 + 'px', 'margin-left': '-' + jQuery(this).width() / 2 + 'px' });
				
			});
				
	}
	
	function renderRewardsPop( trig, rightOffset, topOffset ){
		var offset = trig.offset();
		var top = offset.top;
		var left = offset.left;
		var thisWidth = trig.width();
		var rightOffset = rightOffset;
		var topOffset = topOffset;
		var wrapperBounds = jQuery(".wrapper").offset();
		var wrapperBoundsLeft = wrapperBounds.left;
		var wrapperBoundsRight = wrapperBoundsLeft + parseInt( jQuery('.wrapper').css('width'));
		
			if( trig.hasClass('doPopupTip')){
				var tipText = trig.next('span').text();
				var tipHeading = "Solutions Tip:";
			}
			if( trig.hasClass('doPopupBudget')){
				var tipText = jQuery('span',trig).text();
				var tipHeading = "Actual (Variance)";
			}
		
		//console.log("Wrapper Left: " + wrapperBoundsLeft + " Wrapper Right: " + wrapperBoundsRight);
		id = parseInt( trig.attr('rel'));
		
		jQuery("#popupWrap").load(
			'/templates/popups/rewards.php'
			, { id:id, left:left, top:top, tipText:tipText, tipHeading:tipHeading }
			, function(){
				var popLeft = left + rightOffset;
				var popTop =  top - topOffset;
				var popWidth = parseInt(jQuery("#popupWrap").width());
				//console.log("Pop Left: " + popLeft + " Pop Width: " + popWidth);
				jQuery(this).css({ 'top': parseInt(popTop) + 'px', 'left': parseInt(popLeft) + 'px'});
				
				if( (popLeft + popWidth) > wrapperBoundsRight ){
					popLeft = popLeft - popWidth - (rightOffset * 2) + thisWidth;
					jQuery('.popBoxOuter').removeClass().addClass('popBoxOuter popBoxRightArrow');
					jQuery(this).css('left', popLeft + 'px'); 
				}
			});
				
	}
	
	function renderPop2( opts ){
		var offset = opts.trig.offset();
		var top = offset.top;
		var left = offset.left;
		var thisWidth = opts.trig.width();
		var rightOffset = opts.offset.left;
		var topOffset = opts.offset.top;
		var wrapperBounds = jQuery(".wrapper").offset();
		var wrapperBoundsLeft = wrapperBounds.left;
		var wrapperBoundsRight = wrapperBoundsLeft + parseInt( jQuery('.wrapper').css('width'));	
		id = parseInt( opts.trig.attr('rel'));
		
		var jQuerypop = jQuery("#popupWrap").load(
			'/templates/popups/upgradePop.php'
			, function(){
				jQuery(".pop_title_here", jQuerypop ).html( opts.title );
				jQuery(".pop_content_here", jQuerypop ).html( opts.body );
				var popLeft = left + opts.offset.left;
				var popTop =  top - opts.offset.top;
				var popWidth = parseInt(jQuery("#popupWrap").width());
				jQuery(this).css({ 'top': parseInt(popTop) + 'px', 'left': parseInt(popLeft) + 'px'});
				if( (popLeft + popWidth) > wrapperBoundsRight ){
					popLeft = popLeft - popWidth - (rightOffset * 2) + thisWidth;
					jQuery('.popBoxOuter').removeClass().addClass('popBoxOuter popBoxRightArrow');
					jQuery(this).css('left', popLeft + 'px'); 
				}
			});
				
	}
	
	function renderPop( trig, rightOffset, topOffset ){
		var offset = trig.offset();
		var top = offset.top;
		var left = offset.left;
		var thisWidth = trig.width();
		var rightOffset = rightOffset;
		var topOffset = topOffset;
		var wrapperBounds = jQuery(".wrapper").offset();
		var wrapperBoundsLeft = wrapperBounds.left;
		var wrapperBoundsRight = wrapperBoundsLeft + parseInt( jQuery('.wrapper').css('width'));
		
			if( trig.hasClass('doPopupTip')){
				var tipText = trig.next('span').text();
				var tipHeading = "Solutions Tip:";
			}
			if( trig.hasClass('doPopupBudget')){
				var tipText = jQuery('span',trig).text();
				var tipHeading = "Actual (Variance)";
			}
		
		//console.log("Wrapper Left: " + wrapperBoundsLeft + " Wrapper Right: " + wrapperBoundsRight);
		id = parseInt( trig.attr('rel'));
		
		jQuery("#popupWrap").load(
			'/templates/popups/'
			, { id:id, left:left, top:top, tipText:tipText, tipHeading:tipHeading }
			, function(){
				var popLeft = left + rightOffset;
				var popTop =  top - topOffset;
				var popWidth = parseInt(jQuery("#popupWrap").width());
				//console.log("Pop Left: " + popLeft + " Pop Width: " + popWidth);
				jQuery(this).css({ 'top': parseInt(popTop) + 'px', 'left': parseInt(popLeft) + 'px'});
				
				if( (popLeft + popWidth) > wrapperBoundsRight ){
					popLeft = popLeft - popWidth - (rightOffset * 2) + thisWidth;
					jQuery('.popBoxOuter').removeClass().addClass('popBoxOuter popBoxRightArrow');
					jQuery(this).css('left', popLeft + 'px'); 
				}
			});
				
	}
	
	function hidePop(){
		jQuery("#popupWrap").css({'left':'-9999px','top':'0px'});
	}
	
	jQuery(".doPopupTip").click( function( e ){
		e.preventDefault();
	});
	
	jQuery(".doPopupClose").live( 'click', function( e ){
		e.preventDefault();
		hidePop();
	});
});
