// replacement of submit buttons with custom submit links
function replaceSubmitButton(wrapper, cssClass)
{
	var submitBtn = wrapper.find('input:submit');
	var submitLink = jQuery('<a href="#" class="' + cssClass + '"><span>' + submitBtn.val() + '</span></a>');
	submitBtn.replaceWith(submitLink);
	submitLink
		.click(function()
				{
					var form = jQuery(this).parents('form');
					form.submit();
					return false;
				})
}

function replaceSubmitButtons()
{	
	replaceSubmitButton(jQuery('form'), 'linkButtonType2');
}

function IE()
{
	return (jQuery.browser.msie)
}

function closePopupOverlays()
{
	jQuery('body>.AJAXPopupForm').remove();
}

function showCakeOffSoonOverlay() {
					var fpForm = new AJAXForm({
									dynamicWrapperId: 'AJAXCakeOffSoonForm',
									AJAXpageUrl: getAJAXurl('/cake_off_soon.html'),
									AJAXpageElementsFilter: 'h3, .notice_error, .notice_success, .col1, .notice_warning, form[name=ForgotPasswordForm], .messages',
									successCallBack: null,
									offsetY: 400,
									centerDown: true,
									center: false,
									closeOnSuccessfulSubmit: false
								 });
					

}

function initPopupFormOverlays(wrapper)
{
	if(!wrapper)
		var wrapper = jQuery('body');
	
	wrapper.find('a.lnkForgotPassword')
		.unbind('click')
		.click(function()
				{
					var fpLink = jQuery(this);
					var fpForm = new AJAXForm({
									popupFormTrigger: fpLink,
									dynamicWrapperId: 'AJAXForgotPasswordForm',
									AJAXpageUrl: getAJAXurl(fpLink.attr('href')),
									AJAXpageElementsFilter: 'h3, .notice_error, .notice_success, .notice_warning, form[name=ForgotPasswordForm], .messages',
									formLoadCallBack: function(dynamicContentWrapper)
														{
															replaceSubmitButtons(dynamicContentWrapper);
															initPopupFormOverlays();
														},
									successCallBack: null,
									closeOnSuccessfulSubmit: false
								 });
					
					return false;
				});
		
	wrapper.find('a.lnkRegister')
		.unbind('click')
		.click(function()
				{
					closePopupOverlays();
					
					var registerLink = jQuery(this);
					var registerForm = new AJAXForm({
										popupFormTrigger: registerLink,
										dynamicWrapperId: 'AJAXRegisterForm',
										AJAXpageUrl: getAJAXurl(registerLink.attr('href')),
										AJAXpageElementsFilter: 'h3, .notice_error, .notice_success, .notice_warning, form[name=AlternativeRegisterForm], .messages',
										formLoadCallBack: function(dynamicContentWrapper){replaceSubmitButtons(dynamicContentWrapper)},
										successCallBack: null,
										closeOnSuccessfulSubmit: false
									 });
					
					return false;
				});
		
	wrapper.find('a.lnkSignIn')
		.unbind('click')
		.click(function()
				{
					closePopupOverlays();
					var signInLink = jQuery(this);
					var signInLinkForm = new AJAXForm({
										popupFormTrigger: signInLink,
										dynamicWrapperId: 'AJAXSignInForm',
										AJAXpageUrl: getAJAXurl(signInLink.attr('href')),
										AJAXpageElementsFilter: 'h3, .notice_error, .notice_success, .notice_warning, form:last, .messages',
										formLoadCallBack: function(dynamicContentWrapper)
												{
													var redirect = dynamicContentWrapper.find('input[name=redirectURL]');
													if (redirect.size() > 0)
													{
														if(jQuery.trim(redirect.val()) == '')
															location.reload()
														else
															location = redirect.val();
													}
													else
													{
														replaceSubmitButtons(dynamicContentWrapper);
														initPopupFormOverlays();
													}
												},
										successCallBack: null,
										closeOnSuccessfulSubmit: true
									 });
					
					return false;
				});
		
		
	wrapper.find('a.TeamVoteButton_Login')
		.unbind('click')
		.click(function()
				{
					closePopupOverlays()
					
					var signInToVoteLink = jQuery(this);
					var signInToVoteLinkForm = new AJAXForm({
										popupFormTrigger: signInToVoteLink,
										dynamicWrapperId: 'AJAXSignInToVoteForm',
										AJAXpageUrl: getAJAXurl(signInToVoteLink.attr('href')),
										AJAXpageElementsFilter: 'h3, .notice_error, .notice_success, .notice_warning, form:last',
										formLoadCallBack: function(dynamicContentWrapper, popupTrigger, ajaxFrm)
												{
													var redirect = dynamicContentWrapper.find('input[name=redirectURL]');
													if (redirect.size() > 0)
													{
														// login successful
														
														var TeamVoteControls = jQuery('.TeamVoteControls[rel=userVoting]');
														saveVote(TeamVoteControls.find('a.TeamVoteButton[rel=userVoting]'));
														TeamVoteControls.find('a.TeamVoteButton_Login').remove();
														
														ajaxFrm.closePopup(); //no redirect
													}
													else
													{
														replaceSubmitButtons(dynamicContentWrapper);
														initPopupFormOverlays(dynamicContentWrapper);
													}
												},
										successCallBack: function(dynamicContentWrapper, popupTrigger, ajaxFrm)
												{
													var activeTeamVoteWrapper = popupTrigger.parents('.TeamVoteControls');
													saveVote(TeamVoteControls.find('a.TeamVoteButton[rel=userVoting]'));
													
													jQuery('a.TeamVoteButton_Login').remove();
													
													initVoteControls('.TeamVoteControls').not(activeTipWrapper);
													
													ajaxFrm.closePopup();
												},
										closeOnSuccessfulSubmit: true
									 });
					
					return false;
				});
		
	wrapper.find('a.lnkTellAFriend')
		.unbind('click')
		.click(function()
				{
					var tafLink = jQuery(this);
					var tafForm = new AJAXForm({
									popupFormTrigger: tafLink,
									dynamicWrapperId: 'AJAXTellAFriendForm',
									AJAXpageUrl: getAJAXurl(tafLink.attr('href')),
									AJAXpageElementsFilter: '.PopupContent',
									formLoadCallBack: function(dynamicContentWrapper){
												replaceSubmitButtons(dynamicContentWrapper);
												initPopupFormOverlays(dynamicContentWrapper);
												initValueHints(dynamicContentWrapper);
												initFormRowClonner(dynamicContentWrapper, 'clonable', function(){jQuery('#AJAXTellAFriendForm').center()});
											},
									successCallBack: null,
									closeOnSuccessfulSubmit: true
								 });
					
					return false;
				});
	wrapper.find('a.linkCreateReminders')
		.unbind('click')
		.click(function()
				{
					closePopupOverlays();
					var crLink = jQuery(this);
					var crForm = new AJAXForm({
									popupFormTrigger: crLink,
									dynamicWrapperId: 'AJAXCreateRemindersForm',
									AJAXpageUrl: getAJAXurl(crLink.attr('href')),
									AJAXpageElementsFilter: 'h3, .notice_error, .notice_success, .notice_warning, form, .messages',
									formLoadCallBack: function(dynamicContentWrapper)
												{
													replaceSubmitButtons(dynamicContentWrapper);
													initReminderForm(dynamicContentWrapper);
													initPopupFormOverlays(dynamicContentWrapper);
												},
									successCallBack: null,
									closeOnSuccessfulSubmit: true,
									fBeforeSubmit: clearValueHints
								 });
					
					return false;
				});
		
	wrapper.find('a.linkScheduleCall')
		.unbind('click')
		.click(function()
				{
					closePopupOverlays();
					jQuery('#AJAXCreateRemindersForm').remove();
					var scLink = jQuery(this);
					var scForm = new AJAXForm({
									popupFormTrigger: scLink,
									dynamicWrapperId: 'AJAXScheduleCallForm',
									AJAXpageUrl: getAJAXurl(scLink.attr('href')),
									AJAXpageElementsFilter: 'h3, .notice_error, .notice_success, .notice_warning, form, .messages',
									formLoadCallBack: function(dynamicContentWrapper)
												{
													replaceSubmitButtons(dynamicContentWrapper);
													initScheduleCallForm(dynamicContentWrapper);
													initPopupFormOverlays(dynamicContentWrapper);
												},
									successCallBack: null,
									closeOnSuccessfulSubmit: true,
									fBeforeSubmit: clearValueHints
								 });
					
					return false;
				});
}

function sendCake(url)
{		
	closePopupOverlays();
	var cakeImageUrl = url;
	var fpLink = jQuery(this);
	var fpForm = new AJAXForm({
					popupFormTrigger: null,
					dynamicWrapperId: 'AJAXSendCakeForm',
					AJAXpageUrl: 'send_cake.html',
					AJAXpageElementsFilter: 'h3, .notice_error, .notice_success, .notice_warning, form, .messages, .imageWrapper',
					formLoadCallBack: function(dynamicContentWrapper)
								{
									var form = dynamicContentWrapper.find('form');
									if(cakeImageUrl!=null)
									{
										form.find('input[name=CakeLink]').val(cakeImageUrl);
										dynamicContentWrapper.find('.imageWrapper img').attr('src', cakeImageUrl);
									}
									
									dynamicContentWrapper
										.find('a.linkSendCake')
											.click(function()
												{
													var lnk = jQuery(this);
													sendCake(lnk.attr('rel'));
													return false;
												});
									
									replaceSubmitButtons(dynamicContentWrapper);
									initSendCakeForm(dynamicContentWrapper);
								},
					successCallBack: null,
					closeOnSuccessfulSubmit: false,
					open: true,
					center: false,
					centerDownHigh: true,
					fBeforeSubmit: clearValueHints
				 });
									
	return false;
}

function initSendFeaturedCakeEvents()
{
	jQuery('a.linkSendFeaturedCake')
		.click(function()
			{
				var lnk = jQuery(this);
				sendCake(lnk.attr('rel'));
				return false;
			})
}

function getAJAXurl(url)
{
	var ajxUrl = new String(url);
	var filter = new RegExp(".[a-zA-Z]{2,4}$", "mig");
	return ajxUrl.replace(filter, "/ajax");
}
function resizeVerticalElements(jqElements)
{
 	if(jqElements.size() > 0)
	{
		var maxH = 0;
		jqElements
			.css('height', 'auto')
			.each(function()
			{
					var eh = jQuery(this).height();
					if(eh > maxH)
					maxH = eh;

			});
			jqElements.css('height', maxH + 'px');
	}
}

function initVideoOverlays()
{
	jQuery("a.tgVideoOverlay")
		.each(function()
			{
				var videoOverlayTrigger = jQuery(this);
				var d = new Date();
				var videoOverlayId = 'VideoOverlay_' + d.getTime();
				var videoOverlay = jQuery('<div class="VideoOverlay" id="' + videoOverlayId + '"></div>');
				
				videoOverlay
					.html('<div class="contentWrap"></div>')
					.appendTo('body');
				
				videoOverlayTrigger
					.overlay({
						target: videoOverlay,
						top: 'center',
						expose: '#f1f1f1',
						onLoad: function() {
							var op = this;
							// grab wrapper element inside content
							var wrap = this.getContent().find(".contentWrap");
							
							// load the page specified in the trigger
							//wrap.load(op.getTrigger().attr("href"));
							wrap.html('<div id="movie"></div>' + 
								'<script type="text/javascript">' +
									'var flashvars = false;' +
									'var params = {wmode: "transparent"};' +
									'var attributes = false;' +
									'swfobject.embedSWF("' + op.getTrigger().attr("href") + '", "movie", "100%", "100%", "8.0", "assets/common/flash/expressInstall.swf", flashvars, params, attributes);' +
								'</script>');
						},
						onClose: function() { 
						    // grab wrapper element inside content 
						    var wrap = this.getContent().find("div.contentWrap"); 
						    // load the page specified in the trigger 
						    wrap.empty(); 
						}
					});
			});
}

function initValueHints(wrapper)
{
	wrapper.find('input:text')
		.each(function(){
				var field = jQuery(this);
				if(field.val() == '')
					field.val(field.attr('title'));
			})
		.click(function()
			{
				var field = jQuery(this);
				if(field.val() == field.attr('title'))
					field.val('');
			})
		.blur(function()
			{
				var field = jQuery(this);
				if(field.val() == '')
					field.val(field.attr('title'));
			});
}

function clearValueHints(wrapper)
{		
	wrapper.find('input:text')
		.each(function()
			{
				var field = jQuery(this);
				if(field.val() == field.attr('title'))
					field.val('');
			});	
}

function initCombos(wrapper)
{
	if (!wrapper)
		var wrapper = jQuery('body');
		
	var ComboWrappers = wrapper.find('.ComboWrapper');
	if(ComboWrappers.size() > 0)
	{
		ComboWrappers
		.each(function()
			{
				var ComboWrapper = jQuery(this);
				var comboList = ComboWrapper.find('>ul');
				jQuery.pseudoCombo(comboList, {
								defaultSelection: ComboWrapper.find('input[name^=SpecialOccasion]').val(),
								selectionCssClass: 'selected',
								valAttribute: 'rel',
								directLinks: false,
								onSelectionChange : function(oSel){oSel.parents('.ComboWrapper:first').find('input:hidden').val(oSel.attr('rel'))}
							});
			});
	}
}


function initFormRowClonner(wrapper, rowCssClass, callback)
{
	if (!wrapper)
		var wrapper = jQuery('body');
	if(!rowCssClass)
		var rowCssClass = 'clonable';
		
	var trigger = wrapper.find('a.lnkRowCloner');
	trigger.click(function()
			{
				var trigger = jQuery(this);
				var target = wrapper.find('.' + rowCssClass + ':last');
				var clone = target.clone(false);
				
				var counter = wrapper.find('input[name=FormGroupCounter]');
				var counterNewVal = parseInt(counter.val()) + 1;
				counter.val(counterNewVal);
				
				clone.find('input')
					.each(function()
						{
							var f = jQuery(this);
							var fn = new String(f.attr('name'));
							var regExFilter = /(\d+)$/;
							fn = fn.replace(regExFilter, "");
							f.attr('name',fn + counterNewVal);
						})
				target.after(clone);
				initCombos(clone);
				initValueHints(clone);
				
				clone.find('input:text')
					.each(function()
						{
							var field = jQuery(this);
							field.val(field.attr('title'));
						})
					
				callback.call();					
				return false;
			})
}

function initScheduleCallForm(wrapper)
{
	initValueHints(wrapper);
}

function initReminderForm(wrapper)
{		
	initValueHints(wrapper);
	initCombos(wrapper);
	initFormRowClonner(wrapper, 'clonable', function(){jQuery('#AJAXCreateRemindersForm').center()});
}


function initSendCakeForm(wrapper)
{		
	initValueHints(wrapper);
	initFormRowClonner(wrapper, 'clonable', function(){jQuery('#AJAXSendCakeForm').center()});
}

function trackThis(evt) {
	$.ajax({url: 'http://www.kelly-confidential.com/track/' + evt, data: 'param=XY', success: function(data){}});
}

function preloadToppings() {

	var imagesToLoad = new Array("banana_front.png","banana_back.png","icecream_vanilla-bean_C.png","icecream_vanilla-bean_B.png","icecream_vanilla-bean_A.png","bowl_white.png","bowl_yellow.png","bowl_pink.png","bowl_green.png","bowl_blue.png","icecream_strawberry_C.png","icecream_strawberry_B.png","icecream_strawberry_A.png","icecream_chocolate-fudge_C.png","icecream_chocolate-fudge_B.png","icecream_chocolate-fudge_A.png","ice-cream_vanilla-bean_C.png","ice-cream_vanilla-bean_B.png","ice-cream_vanilla-bean_A.png","ice-cream_strawberry_C.png","ice-cream_strawberry_B.png","ice-cream_strawberry_A.png","ice-cream_chocolate-fudge_C.png","ice-cream_chocolate-fudge_B.png","ice-cream_chocolate-fudge_A.png","sauce_chocolate.png","sauce_caramel.png","toppings_sprinkles.png","toppings_nuts.png","toppings_chocolate-chips.png","garnish_sparkler_whip.png","garnish_sparkler_nowhip.png","garnish_cherries-and-sparkler_whip.png","garnish_cherries-and-sparkler_nowhip.png","garnish_cherries_whip.png","garnish_cherries_nowhip.png","garnish_candle_whip.png","garnish_candle_nowhip.png","whippedcream_yes.png","whipped-cream_yes.png","th_whippedcream_yes.jpg","th_toppings_sprinkles.jpg","th_toppings_nuts.jpg","th_toppings_chocolate-chips.jpg","th_sauce_chocolate.jpg","th_sauce_caramel.jpg","th_none.jpg","th_icecream_vanilla-bean.jpg","th_icecream_strawberry.jpg","th_icecream_chocolate-fudge.jpg","th_garnish_sparkler.jpg","th_garnish_cherries.jpg","th_garnish_cherries-and%20sparkler.jpg","th_garnish_candle.jpg","th_bowl_yellow.jpg","th_bowl_white.jpg","th_bowl_pink.jpg","th_bowl_green.jpg","th_bowl_blue.jpg","sepTooltipHeader.png","sepTooltipHeader.gif","btnCloseTooltip.gif","bltRightDownArrow.gif","bltRightDownArrow_big.gif","bgTooltipTop.png","bgTooltipTop.gif","bgTooltipTop_right.png","bgTooltipTop_right.gif","bgTooltipTop_left.png","bgTooltipTop_left.gif","bgTooltipCnt.png","bgTooltipCnt.gif","bgTooltipBtm.png","bgTooltipBtm.gif","bgBuilder.jpg","ajax-loader.gif");

	if (document.images) {
		for (var i = 0; i < imagesToLoad.length; i++) {
 		 var pic1 = new Image(100,25); 
  		 pic1.src = "http://www.kelly-confidential.com/assets/modules/banana_split_builder/img/" + imagesToLoad[i];	
		}
	}


}

function shareThis(splitId) 
{
	FB.ensureInit(function () {
		FB.Bootstrap.requireFeatures(["Connect"], function() {     
			FB.Connect.requireSession( function () {                        
				trackThis("sharePrompt");
	 
				var attachment = {'name':'I just got cool for a cause.', 'description':'Build your ultimate banana split & help Kelly Ripa & Electrolux support ovarian cancer research http://www.facebook.com/KellyConfidential', 'media':[{'type':'image','src':"http://www.kelly-confidential.com/bananasplitimage/image/" + splitId,'href':'http://www.facebook.com/KellyConfidential?v=app_134395813255136'}]};
				var action_link = [{ "text": "Get Your Own", "href": "http://www.facebook.com/KellyConfidential?v=app_134395813255136"}];
				FB.Connect.streamPublish('', attachment, action_link, null, '', shareCallback);

			});
		});
	
	});
	return false;

}

function shareCallback(post_id)
{
	var obj = post_id;
	if(obj === null || obj === 'null') {
		trackThis("fbShareSkipped");
	} else {
		trackThis("fbShareSuccess");
	}
}

jQuery(function(){
	replaceSubmitButtons();
	initPopupFormOverlays();
	initSendFeaturedCakeEvents();
	initScheduleCallForm(jQuery('form.ScheduleCallForm'));
	initReminderForm(jQuery('form.CreateRemindersForm'));
	initSendCakeForm(jQuery('form.SendCakeForm'));
	initVideoOverlays();
})