function initPopupFormOverlays(wrapper)
{
	if(!wrapper)
		var wrapper = jQuery('body');
		
	initFBShareLinks(wrapper);
	initTWShareLinks(wrapper);
	
	wrapper.find('a.lnkTellAFriend, a#lnkEmailCommit')
		.unbind('click')
		.click(function()
				{
					var sendEmailLink = jQuery(this);
					var sendEmailForm = new AJAXForm({
										popupFormTrigger: sendEmailLink,
										dynamicWrapperId: 'AJAXTellAFriendForm',
										AJAXpageUrl: getAJAXurl(sendEmailLink.attr('href')),
										AJAXpageElementsFilter: '.PopupContent',
										formLoadCallBack: function(dynamicContentWrapper)
												{
													initPopupFormOverlays(dynamicContentWrapper);
													initFormFocus(dynamicContentWrapper);
												},
										successCallBack: null,
										closeOnSuccessfulSubmit: true
									 });
					
					return false;
				});
		
	wrapper.find('a.lnkRegister')
			.unbind('click')
			.click(function()
					{
						var registerLink = jQuery(this);
						var registerForm = new AJAXForm({
											popupFormTrigger: registerLink,
											dynamicWrapperId: 'AJAXRegisterForm',
											AJAXpageUrl: getAJAXurl(registerLink.attr('href')),
											AJAXpageElementsFilter: '.RegisterContent',
											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
														{
															initPopupFormOverlays(dynamicContentWrapper);
															initFormFocus(dynamicContentWrapper)
														}
													},
											successCallBack: function(dynamicContentWrapper){
															initPopupFormOverlays(dynamicContentWrapper);
														},
											closeOnSuccessfulSubmit: false
										 });
						
						return false;
					});

	wrapper.find('a#btnCommit')
			.unbind('click')
			.click(function()
					{
						var registerLink = jQuery(this);
						var registerForm = new AJAXForm({
											popupFormTrigger: registerLink,
											dynamicWrapperId: 'AJAXRegisterForm',
											AJAXpageUrl: getAJAXurl(registerLink.attr('href')),
											AJAXpageElementsFilter: '.PopupContent',
											formLoadCallBack: function(dynamicContentWrapper)
													{
														if(dynamicContentWrapper.find('#ShareByEmailSection').size() > 0){
															initShareByEmailOverlayForm();
															initFBShareLinks(dynamicContentWrapper);
															initTWShareLinks(dynamicContentWrapper);
														}else{
															initPopupFormOverlays(dynamicContentWrapper);
															initFormFocus(dynamicContentWrapper);
														}
													},
											successCallBack: function(dynamicContentWrapper){
																	initPopupFormOverlays(dynamicContentWrapper);
														},
											closeOnSuccessfulSubmit: false
										 });
						
						return false;
					});
			
	wrapper.find('a.ReloadRegister')
			.unbind('click')
			.click(function()
					{
						var rrLink = jQuery(this);
						var registerForm = new AJAXForm({
											popupFormTrigger: rrLink,
											dynamicWrapperId: 'AJAXRegisterForm',
											AJAXpageUrl: getAJAXurl(rrLink.attr('href')),
											AJAXpageElementsFilter: '.PopupContent',
											formLoadCallBack: function(dynamicContentWrapper)
													{
														initPopupFormOverlays(dynamicContentWrapper);
														initFormFocus(dynamicContentWrapper)
													},
											successCallBack: function(dynamicContentWrapper)
													{
														initPopupFormOverlays(dynamicContentWrapper);
													},
											closeOnSuccessfulSubmit: false
										 });
						
						return false;
					});
			
	wrapper.find('a.ReloadEmailRegister')
			.unbind('click')
			.click(function()
					{
						$('#AJAXTellAFriendForm').remove();
						var rerLink = jQuery(this);
						var registerForm = new AJAXForm({
											popupFormTrigger: rerLink,
											dynamicWrapperId: 'AJAXRegisterForm',
											AJAXpageUrl: getAJAXurl(rerLink.attr('href')),
											AJAXpageElementsFilter: '.PopupContent',
											formLoadCallBack: function(dynamicContentWrapper)
													{
														initPopupFormOverlays();
														initFormFocus(dynamicContentWrapper)
													},
											successCallBack: function(dynamicContentWrapper)
													{
														initPopupFormOverlays(dynamicContentWrapper);
													},
											closeOnSuccessfulSubmit: false
										 });
						
						return false;
					});
			
	if(isInIFrame())
		wrapper.find('a#lnkRegisterSkip').attr('target', '_top');

	if(isInIFrame())
		wrapper.find('a#lnkRegisterSkip').attr('href', 'http://www.facebook.com/MakeTimeforChangebyFrigidaire?sk=app_228763610470485');


}


function getAJAXurl(url)
{
	return url; // temp
	var ajxUrl = new String(url);
	var filter = new RegExp(".[a-zA-Z]{2,4}$", "mig");
	return ajxUrl.replace(filter, "/ajax");
}

function initFormFocus(wrapper)
{
	if(!wrapper)
		var wrapper = jQuery('form:first');
		
	wrapper.find('input:text:first').focus();
}

function initPrintControls()
{
	jQuery('a.lnkPrint')
		.click(function()
			{			
				print();
				return false;
			})
}

function initRegisterStep1(regOverlayWrapper)
{
	var regOverlayWrapper = regOverlayWrapper;
	var regOverlayContent = regOverlayWrapper.find('.OverlayContent');
	
	initRegisterLogout(regOverlayWrapper, regOverlayContent);
	
	var regNowLink = jQuery("#RegistrationOverlay a.lnkRegisterNow");
	regNowLink
		.unbind('click')
		.click(function()
			{
				var lnk = jQuery(this);
				regOverlayContent.css('display', 'none');
				regOverlayWrapper.find('.loading').css('display', 'block');
				jQuery.ajax({
					url: lnk.attr('href'),
					type: 'get',
					success: function(AJAXresponse)
						{
							regOverlayContent.empty();							
							regOverlayContent.append(AJAXresponse);
							
							var step2form = regOverlayContent.find('form');
							if(step2form.size() > 0)
							{
								initRegisterStep2(regOverlayWrapper, regOverlayContent, step2form);
							}
							else
							{
								initRegisterStep2_1(regOverlayWrapper, regOverlayContent);
							}
							
							initRegisterLogout(regOverlayWrapper, regOverlayContent);
							
							regOverlayWrapper.find('.loading').css('display', 'none');
							regOverlayContent.css('display', 'block');
						},
					error: function()
						{
							alert('An unknown error has occured while performing your action. Please refresh the page an try again.');
						}
				    });
				return false;
			});
	initRegisterLogout(regOverlayWrapper, regOverlayContent);
}

function initRegisterStep2(regOverlayWrapper, regOverlayContent, step2form)
{

	var regOverlayWrapper = regOverlayWrapper;
	var regOverlayContent = regOverlayContent;
	
	step2form
		.submit(function()
			{
				var frm = jQuery(this);
				regOverlayContent.css('display', 'none');
				regOverlayWrapper.find('.loading').css('display', 'block');
				jQuery
					.ajax({
							url: frm.attr('action'),
							type: frm.attr('method'),
							data: frm.serialize(),
							success: function(AJAXresponse)
								{
									regOverlayContent.empty();
									regOverlayContent.append(AJAXresponse);
									var step2form = regOverlayContent.find('form');
									if(step2form.size() > 0) // errors on submit
									{
										initRegisterStep2(regOverlayWrapper, regOverlayContent, step2form);
									}
									else
										initRegisterStep3(regOverlayWrapper, regOverlayContent);
									
									initRegisterLogout(regOverlayWrapper, regOverlayContent);
									initPopupFormOverlays(regOverlayWrapper);
									
									regOverlayWrapper.find('.loading').css('display', 'none');
									regOverlayContent.css('display', 'block');
								},
							error: function()
								{
									alert('An unknown error has occured while performing your action. Please refresh the page an try again.');
								}
						 })
				return false;
			})
}

function initRegisterStep2_1(regOverlayWrapper, regOverlayContent)
{
	//console.log('step 1');
	var regOverlayWrapper = regOverlayWrapper;
	var regOverlayContent = regOverlayContent;
	
	var regNowLink = regOverlayContent.find("a.lnkRegisterNow");
	var regLogoutLink = regOverlayContent.find("a.ReloadRegister");
	regNowLink
		.unbind('click')
		.click(function()
			{
				var lnk = jQuery(this);
				regOverlayContent.css('display', 'none');
				regOverlayWrapper.find('.loading').css('display', 'block');
				jQuery.ajax({
					url: lnk.attr('href'),
					type: 'get',
					success: function(AJAXresponse)
						{
							regOverlayContent.empty();							
							regOverlayContent.append(AJAXresponse);
							
							var step2form = regOverlayContent.find('form');
							if(step2form.size() > 0)
							{
								initRegisterStep2(regOverlayWrapper, regOverlayContent, step2form);
							}
							else
							{
								initRegisterStep2_1(regOverlayWrapper, regOverlayContent);
								initRegisterLogout(regOverlayWrapper, regOverlayContent);
							}
							
							regOverlayWrapper.find('.loading').css('display', 'none');
							regOverlayContent.css('display', 'block');
						},
					error: function()
						{
							alert('An unknown error has occured while performing your action. Please refresh the page an try again.');
						}
				    });
				return false;
			})
}

function initRegisterStep3(regOverlayWrapper, regOverlayContent)
{
	var backLink = regOverlayContent.find("a.lnkBackToCategory");
	backLink
		.click(function()
			{
				var overlay = regOverlayWrapper.overlay();
				overlay.close();
				return false;
			});
}

function initRegisterLogout(regOverlayWrapper, regOverlayContent)
{
	var regOverlayWrapper = regOverlayWrapper;
	var regOverlayContent = regOverlayContent;
	
	var regLogoutLink = regOverlayWrapper.find("a.ReloadRegister");
	regLogoutLink
		.unbind('click')
		.click(function()
			{
				var lnk = jQuery(this);
				regOverlayContent.css('display', 'none');
				regOverlayWrapper.find('.loading').css('display', 'block');
				jQuery.ajax({
					url: lnk.attr('href'),
					type: 'get',
					success: function(AJAXresponse)
						{
							regOverlayContent.empty();							
							regOverlayContent.append(AJAXresponse);
							
							var step2form = regOverlayContent.find('form');
							if(step2form.size() > 0)
							{
								initRegisterStep2(regOverlayWrapper, regOverlayContent, step2form);
							}
							else
							{
								initRegisterStep2_1(regOverlayWrapper, regOverlayContent);
							}
							
							initRegisterLogout(regOverlayWrapper, regOverlayContent);
							
							regOverlayWrapper.find('.loading').css('display', 'none');
							regOverlayContent.css('display', 'block');
						},
					error: function()
						{
							alert('An unknown error has occured while performing your action. Please refresh the page an try again.');
						}
				    });
				return false;
			})
}

function fbs_click(msg)
{
	u=location.href;
	t=msg;//t=document.title;
	window.open('http://www.facebook.com/sharer.php?u='+encodeURIComponent(u)+'&t='+encodeURIComponent(t),'sharer','toolbar=0,status=0,width=626,height=436');
	return false;
}

function initRegThankYouOverlay()
{
	var RegThankYouOverlay = $('#RegThankYouOverlay');
	if(RegThankYouOverlay.size() > 0)
	{
		var overlay = $('#RegThankYouOverlay').overlay({api: true, top: 'center', close: '.close',

		onClose: function(event) {
			
			RegThankYouOverlay.find('a#lnkRegisterSkip').click();

		
		}

		
		});
		overlay.load();

onClose

	}
}

function isInIFrame()
{
	var res = (window.location != window.parent.location) ? true : false;
	return res;
}

function initFBShareLinks(wrapper){
	if(wrapper == null)
		var wrapper = $('body');
		

	wrapper.find('a.fb-share-website, a.btnPostToWall') // header link
		.unbind('click')
		.click(function(){
				var shareLink = $(this);
				var data = eval('(' + shareLink.attr('data') + ')');
				try {
				FB.ui(
				   {
					 method: data['method'],
					 name: data['name'],
					 link: data['link'],
					 picture: data['picture'],
					 caption: data['caption'],
					 description: data['description'],
					 message: data['message']
				   },
				   function(response) {
					 if (response && response.post_id) {
						trackThis("Facebook-Shared-" + data['source']);
					 } else {
						trackThis("Facebook-Skipped-" + data['source']);
					 }
				   }
				 );
				} catch(err) {
					return false;
				}
			return false;
		})
}

function initTracking(wrapper){

	if(!wrapper)
		var wrapper = $('body');
		
	var trackingTriggers = wrapper.find('a[track]');
	trackingTriggers.click(function(){
			trackThis($(this).attr('track'))
		})	

}

function initTWShareLinks(wrapper){
	if(wrapper == null)
		var wrapper = $('body');
		
	wrapper.find('a.tw-share-website, a.tw-share-recipe, a.btnPostToTwitter') // header link
		.unbind('click')
		.click(function(){
					var shareLink = $(this);
					window.open(shareLink.attr('href'),'TwitterShare','toolbar=0,status=0,width=626,height=436');
					trackThis("Twitter-Shared-" + shareLink.attr('rel'));

					return false
				});
}

function initShareByEmailOverlayForm(){
	var frmWrapper = $('#ShareByEmailSection');
	frmWrapper.find('form:first')
		.unbind('submit')
		.submit(function(){
				var frm = $(this);
				frmWrapper.prepend('<div class="AJAXProgressIndicator">Sending your email, please wait...</div>');
				$.ajax({
					  url: frm.attr('action'),
					  type: frm.attr('method'),
					  data: frm.serialize(),
					  success: function(HTML){
						  			frmWrapper.html(HTML);
									initShareByEmailOverlayForm()
						  		}
				});
				
				frmWrapper.find('>*').not('.AJAXProgressIndicator').css('visibility', 'hidden');
				
				return false;
		})
}

function initRecipesPage(){
	var detailLinks = $('.RecipeList a.lnkRecipeDetails');
	detailLinks.click(function(){
		var lnk = $(this);
		lnk.css('visibility', 'hidden');
		
		var recipeWrapper = lnk.parents('.ListItem:first');
		recipeDetails = recipeWrapper.find('.DetailsContent');
		
		recipeDetails.slideDown();
		
		return false;
	});
	
	var detailOffLinks = $('.RecipeList a.lnkRecipeDetailsOff');
	detailOffLinks.click(function(){
		var lnk = $(this);
		
		var recipeWrapper = lnk.parents('.ListItem:first');
		recipeDetails = recipeWrapper.find('.DetailsContent');
		
		recipeDetails.slideUp();
		recipeWrapper.find('a.lnkRecipeDetails').css('visibility', 'visible');
		
		return false;
		
	});
	
	var printLinks =  $('.RecipeList a.lnkPrintRecipe');
	printLinks.click(function(){
		var lnk = $(this);
				
		var recipeWrapper = lnk.parents('.ListItem:first');
		recipeWrapper.removeClass('DoNotPrint');
		
		var otherRecipes = $('.RecipeList .ListItem').not(recipeWrapper);
		otherRecipes.addClass('DoNotPrint');
		
		recipeWrapper.find('.DetailsContent').css('display', 'block');
		recipeWrapper.find('.lnkRecipeDetails').css('visibility', 'hidden');
		
		trackThis("RecipePrint");
		
		print();
		return false;
	});
}

function isIphone() {

	if((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i)) || (navigator.userAgent.match(/iPad/i))) {
		return true;
	} else {
		return false;
	}

}

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>');
				
				videoOverlayTrigger.attr('rel', videoOverlayId);
				
				videoOverlay
					.html('<div class="contentWrap" id="movie_' + videoOverlayId + '"></div>')
					.appendTo('body');
				
				videoOverlayTrigger
					.overlay({
						target: videoOverlay,
						top: 'center',
						expose: '#f1f1f1',
						onLoad: function() {
							trackThis("VideoView");
							var op = this;
							// grab wrapper element inside content
							var wrap = this.getOverlay().find(".contentWrap");
							
							if (isIphone()) {
							  wrap.html('<video src="http://c0660912.cdn.cloudfiles.rackspacecloud.com/' + op.getTrigger().attr("rel") + '.mp4" width="100%" height="100%" controls="controls"></video>');
							} else {
                              var so = new SWFObject("http://c0660912.cdn.cloudfiles.rackspacecloud.com/player.swf?fullscreen=true&controlbar=over&autostart=true&file=" + op.getTrigger().attr("href"), 'movie' + videoOverlayId, "100%", "100%", "8.0", "#FFFFFF");
                              so.addParam("allowScriptAccess", "always");
                              so.addParam("wmode", "transparent");
                              so.write("movie_" + op.getTrigger().attr("rel"));
							}

						  
						},
						onClose: function() { 
						    // grab wrapper element inside content 
							try{
							    var wrap = this.getOverlay().find("div.contentWrap");
								wrap.html('<p>&nbsp;</p>');
							}catch(err){}
						    // load the page specified in the trigger 
						}
					});
			});
}

jQuery(function(){
	initPopupFormOverlays();
	initPrintControls();
	initFBShareLinks();
	initTWShareLinks();
	initRecipesPage();
	initVideoOverlays();
})
