/***********************************************************************
//A TEMPORARY function for the apply form
************************************************************************/
function formSetup() {
	var self = this;
	
	self.init = function() {
		$(".partners").hide();
		$("#restaurant_type").hide();

		$("input[name='partnership']").unbind('click').click(function(){
			if ($(this).val() == 'y') {
				// Code for handling value 'y'
				$(".partners").show();
			} else if ($(this).val() == 'n') {
				// Code for handling value 'n'
				$(".partners").hide();
			}
		});		
		
	}
	
	
	self.init();

}

function climateGoals() {
	var self = this;
	self.show = false;
	
	self.init = function() {
		if($("#climate_goals").length > 0) {
			$("#climate_goals").hide();
			$(".climate_goals").prepend("<span>+ </span>");
		}
		if($("a.climate_goals").length > 0) {
			$("a.climate_goals").unbind('click').click(function() {
				if(self.show == false) {
					$("#climate_goals").show();
					$(".climate_goals span").html("- ");
					self.show = true;
				} else if(self.show == true) {
					$("#climate_goals").hide();
					$(".climate_goals span").html("+ ");
					self.show = false;
				}
				return false;
			});
		}
	}
	
	self.init();
}



/***********************************************************************
//A function for the slideshow module in the sidebar
************************************************************************/
function slideShow() {
	var self = this;
	self.slideshow = "#slideshow";
	self.slide = ".slide";
	self.slideIndex = 0;
	self.currentSlide = $(self.slide + ":eq(" + self.slideIndex + ")");
	self.nextSlide = "";
	self.slideTime = 10000;//In miliseconds
	self.fadeTime = 1000;//In miliseconds
	self.firstFire = true;//Initiate first fire variable
	self.delay = 200;
	self.position = $(".left").offset();
	self.timer_is_on = 0;
	self.t = "";
	

	self.init = function() {
		if($(self.slideshow).length > 0 && $(self.slide).length > 0) {
			self.setSlides();
			$(self.slide).hide();
			self.currentSlide.show();
			/*
			$(self.slide).unbind('mouseover').mouseover(function() {
				self.stopCount();
			});
			$(self.slide).unbind('mouseout').mouseout(function() {
				self.doTimer();
			});
			*/
		}
	}
	
	self.swapSlides = function(slideToReveal,slideToHide) {
		slideToReveal.fadeIn(self.fadeTime);
		slideToHide.fadeOut(self.fadeTime);
	}
	
	self.setSlides = function() {
		if(self.firstFire == true) {
			if($(self.slide + " a[href$='.flv']").length>0) {
				$(self.slide + " a[href$='.flv'] .img").append("<span class='play_icon'></span>");
				$(self.slide + " a[href$='.flv']").unbind("click").click(function() {
					self.openPlayer($(this).attr('href'));
					return false;
				});
			}
		}
		if(self.firstFire == false) {
			self.currentSlide = $(self.slide + ":eq(" + self.slideIndex + ")");
			if(self.slideIndex < $(self.slide).length -1) {
				self.slideIndex++;
			} else {
				self.slideIndex = 0;
			}
			self.nextSlide = $(self.slide + ":eq(" + self.slideIndex + ")");
			self.swapSlides(self.nextSlide,self.currentSlide);
		}
		self.t = setTimeout(function() { self.setSlides() }, self.slideTime);
		self.firstFire = false;
	}
	
	self.openPlayer = function(href) {
		if($('#video_player').length == 0){
			$('body').append("<div id='video_player' />");
		}
		
		$('#video_player').html("<a href='" + href + "'>video</a>");
		
		$('#video_player').dialog({
			bgColor: '#000000',
			modal: true,
			resizeable: false,
			moveable: false,
			close: self.closePlayer,
			closeText: 'Close Video Gallery'
		});
		
		$('.ui-dialog').css('overflow','visible');
		$(".ui-dialog").css('top',self.position.top-53);
		$(".ui-dialog").css('left',self.position.left-1);
		$(".ui-dialog").hide();
		
		$(".ui-dialog").fadeIn(self.delay);
		
		$('#video_player a').media();
	}

	self.closePlayer = function() {
		$(".ui-dialog").fadeOut(self.delay,function() {
			$('#video_player').remove();
		});
	}
	
	self.doTimer = function() {
		if (!self.timer_is_on) {
		  self.timer_is_on=1;
		  self.setSlides();
		}
	}
	self.stopCount = function() {
		clearTimeout(self.t);
		self.timer_is_on=0;
	}
	self.init();
}


/***********************************************************************
//A function to make all call to action buttons
************************************************************************/
function callToAction() {
	var self = this;
	self.init = function() {
		if($(".call_to_action").length>0) {
			$(".call_to_action").prepend("<span class='call_to_action_left'></span>");
			$(".call_to_action").append("<span class='call_to_action_right'></span>");
		}
	}
	self.init();
}


/***********************************************************************
//A function to add rounded corners to images and interface
************************************************************************/
function addRoundedCorners() {
	var self = this;
	self.index = 0;
	self.leftCorner = "<div class='tl'></span>";
	self.rightCorner = "<span class='tr'></span>";
	self.topCorners = "<span class='tl'></span><span class='tr'></span>";
	self.bottomCorners = "<span class='bl'></span><span class='br'></span>";
	self.fullCorners = "<span class='tl'></span><span class='tr'></span><span class='bl'></span><span class='br'></span>";
	self.init = function() {
		//First check for any sidebar modules and apply corners
		if($(".module").length>0) {
			for(var i=1; i<=$(".module").length; i++) {
				if(i==$(".module").length) {
					$(".module:eq("+ self.index +")").append(self.topCorners);
				} else {
					$(".module:eq("+ self.index +")").append(self.fullCorners);
				}
				self.index++;
			}
		}
		
		//Check that the left content area exists and apply corners
		if($(".left").length>0) {
			$(".left").append(self.topCorners);
		}
		
		//Check that the footer exists and apply corners
		if($("#footer_navigation").length>0) {
			$("#footer_navigation").append(self.bottomCorners);
		}
		
		//Check that the copyright exists and apply corners
		if($("#copyright").length>0) {
			$("#copyright").append(self.bottomCorners);
		}
		
		//Check for any images on the site and apply the rounded corners
		if($("img").length>0) {
			$("img").each(function() {
				if($(this).parents('.video').length == 0){
					$(this).wrap("<span class='img' />");
					$(this).parent("span").append(self.fullCorners);
					if($("#slideItContainer").length > 0) {
						$("#slideItContainer .tl").hide();
						$("#slideItContainer .tr").hide();
						$("#slideItContainer .bl").hide();
						$("#slideItContainer .br").hide();
					}
				}
			});
		}
	}
	self.init();
}

/***********************************************************************
//A function which adds the play icon to all videos thumbnails
************************************************************************/
function addPlayIcons() {
	var self = this;
	self.checkContainer = "#videos";
	self.init = function() {
		if($(self.checkContainer).length > 0) {
			$(self.checkContainer + " .img").append("<span class='play_icon_small'></span>");
		}
	}
	self.init();
}

/***********************************************************************
//A function for the video module in the sidebar
************************************************************************/
function videoPlayer(passLang) {
	var self = this;
	self.startPosition = 0;
	self.endPosition = -170;
	self.startZIndex = 1;
	self.endZIndex = 1002;
	self.videosContainer = $("#videos");
	self.delay = 200;
	self.position = $(".left").offset();
	self.bottomCorners = "<span class='bl'></span><span class='br'></span>";
	self.leftHeight = parseInt($(".left").height()) - 180;
	if(passLang == "") {
		self.closeText = "Close Video Gallery";
	} else {
		self.closeText = "Fermer l'album";
	}
	//self.leftHeight = 180 + 'px';
	self.init = function() {
		if(self.leftHeight < 180) {
			self.leftHeight = 180;
		}
		$(".scroller").css('height',self.leftHeight + 'px');
		if($("#videos a[href$='.flv']").length > 0){
			$("#videos a[href$='.flv']").unbind('click').click(function() {
				self.resetHighlight();
				$(this).parents(".video:eq(0)").addClass('highlight');
				self.openPlayer($(this).attr('href'));
				return false;
			});
		}
	}
	
	self.resetHighlight = function() {
		$("a[href$='.flv']").each(function() {
			$(this).parents(".video:eq(0)").removeClass('highlight');
		});
										
	}
	
	self.openPlayer = function(href){
		
		if($('#video_player').length == 0){
			$('body').append("<div id='video_player' />");
		}
		
		$('#video_player').html("<a href='" + href + "'>video</a>");
		
		
		$('#video_player').dialog({
			bgColor: '#000000',
			modal: true,
			resizeable: false,
			moveable: false,
			close: self.closePlayer,
			closeText: self.closeText
		});
		
		$('.ui-dialog').css('overflow','visible');
		$(".ui-dialog").css('top',self.position.top-53);
		$(".ui-dialog").css('left',self.position.left-1);
		$(".ui-dialog").hide();
		$('.ui-widget-overlay').css('z-index',1000);
		
		self.videosContainer.parents(".module").css('position','absolute');
		if($('#video_module').length > 0){
			$('#video_module').remove();
		}
		self.videosContainer.parents(".module").css('position','relative');
		var tmp_top = parseInt(self.videosContainer.parents(".module").offset().top);
		var tmp_left = parseInt(self.videosContainer.parents(".module").offset().left);
		var tmp_height = parseInt(self.videosContainer.parents(".module").height());
		var tmp_data = self.videosContainer.parents(".module").html();
		
		$('body').append("<div id='video_module' class='module'>" + tmp_data + "</div>");
		$("#video_module a[href$='.flv']").unbind('click').click(function() {
			self.resetHighlight();
			$(this).parents(".video:eq(0)").addClass('highlight');
			$('#video_player').html("<a href='" + $(this).attr('href') + "'>video</a>");
			//self.openPlayer($(this).attr('href'));
			$('#video_player a').media();
			return false;
		});
		
		$("#video_module").css('position', 'absolute');	
		$("#video_module").css('top', tmp_top+'px');
		$("#video_module").css('left', tmp_left+'px');	
		$("#video_module").css('width', '240px');				
		//self.videosContainer.parents(".module").attr('id','video_module');
		$("#video_module").css('z-index',parseInt($('.ui-widget-overlay').css('z-index')) + 20);
		
		
		$("#video_module .scroller").animate({height: tmp_height + Math.abs(self.endPosition) - 60 +'px'},self.delay);
		$("#video_module").animate({top: tmp_top+self.endPosition},self.delay,function() {
			$(".ui-dialog").fadeIn(self.delay);
		});
		
		$('#video_player a').media();
	}
	
	self.closePlayer = function() {
		$(".ui-dialog").fadeOut(self.delay,function() {
			self.videosContainer.parents(".module").animate({top: self.startPosition},self.delay);
			$(".highlight").removeClass('highlight');
			$('#video_player').remove();
			$('#video_module').remove();
			self.videosContainer.parents(".module").css('z-index',self.startZIndex);
		});
	}
	
	self.init(passLang);
}


/***********************************************************************
//A function used for the Restaurant types slideshows
************************************************************************/
function restSlides(passLang) {
	var self = this;
	self.closePlayer = "Close";
	self.position = $(".left").offset();
	if(passLang == "") {
		self.closeText = "Close Gallery";
	} else {
		self.closeText = "Fermer l’album"
	}
	self.init = function() {
		self.resetSlides();
		if($(".slideIt").length>0) {
			$(".slideIt").unbind('click').click(function() {
				self.resetSlides();	
				self.slideIt($(this).attr('rel'),$(this).attr('href'));
				return false;
			});
		}
	}
	
	self.resetSlides = function() {
		if($(".slideshow_restaurant_types").length > 0) {
			$(".slideshow_restaurant_types").each(function() {
				$(this).hide();
			});
		}
	}
	
	self.slideIt = function(passThis,passThisTwo) {
		self.resetSlides();
		$(".feature_image img").attr("src","");
		$(".feature_image img").attr("src",passThisTwo);
		$(".slide_" + passThis + "").show();
		self.activateThumbs();
		$('#slideItContainer').dialog({
			bgColor: '#000000',
			modal: true,
			resizeable: false,
			moveable: false,
			close: self.closePlayer,
			closeText: self.closeText
		});
		
		$('.ui-dialog').css('overflow','visible');
		$(".ui-dialog").css('top',self.position.top-80);
		$(".ui-dialog").css('left',self.position.left);
		$(".ui-dialog-titlebar-close").css('top',-25);
		$(".ui-dialog-titlebar-close").css('right',-233);
		$(".ui-dialog-titlebar-close").css('width',132);
		$(".ui-dialog").show();
	}
	
	self.activateThumbs = function() {
		$(".thumbnails a").unbind('click').click(function() {
			$(".feature_image img").attr("src",$(this).attr("href"));
			//alert($(this).attr("href"));
			return false;
		});
	}
	
	self.closePlayer = function () {
		$(".ui-dialog").remove();
	}
	
	self.init(passLang);
}



/***********************************************************************
//A function to make all links pointing to flv's open the media player
************************************************************************/
function form_swap(img) {
	var self = this;
	self.form_bg = img;
	
	self.init = function() {
		if(self.form_bg == "_fr") {
			$("#input").css("background", "rgb(255, 255, 255) url(/_cms/themes/site/default/_img/french_search_form.gif) no-repeat scroll left center");	
		}
		
	}
	self.init(img);
}

function inlineVideoLinks(passLang) {
	var self = this;
	self.position = $(".left").offset();
	if(passLang == "") {
		self.closeText = "Close Video Gallery";
	} else {
		self.closeText = "Fermer l’album";
	}
	
	self.init = function() {
		$("a[href$='.flv']").unbind('click').click(function() {
			self.openPlayer($(this).attr('href'));
			return false;
		});
	}

	self.openPlayer = function(href){
		
		if($('#video_player').length == 0){
			$('body').append("<div id='video_player' />");
		}
		
		$('#video_player').html("<a href='" + href + "'>video</a>");
		
		$('#video_player').dialog({
			bgColor: '#000000',
			modal: true,
			resizeable: false,
			moveable: false,
			close: self.closePlayer,
			closeText: self.closeText
		});
		
		$('.ui-dialog').css('overflow','visible');
		$(".ui-dialog").css('top',self.position.top-53);
		$(".ui-dialog").css('left',self.position.left-1);
		$(".ui-dialog").hide();
		$(".ui-dialog").fadeIn(self.delay);
		
		$('#video_player a').media();
	}

	self.closePlayer = function() {
		$(".ui-dialog").fadeOut(self.delay,function() {
			$('#video_player').remove();
		});
	}
	
	self.init(passLang);
}



function selectOther(input,value) {
	var self = this;
	self.input = input;
	self.value = value;
	self.name = $(input).attr('name');
	
	self.init = function() {
		if($(self.input).length > 0) {
			
			if(self.value != "") {
				$(self.input).parent('p').after('<p class="' + self.name + '_other"><label for="' + self.name + '_other">If other, please specify<br></label><input class="required" type="text" id="' + self.name + '_other" size="25" value="' + self.value + '" name="' + self.name + '_other"></p>');
			}
			$(self.input).change(function() {
				if($(this).val() == "other") {
					$(this).parent('p').after('<p class="' + self.name + '_other"><label for="' + self.name + '_other">If other, please specify<br></label><input class="required" type="text" id="' + self.name + '_other" size="25" value="' + self.value + '" name="' + self.name + '_other"></p>');
				} else {
					$(this).parent('p').siblings("p." + self.name + "_other").remove();
				}
			});
		}
	}
	
	self.init();
}




/* MEDIA PLAYER DEFAULTS
*************************************************************/
$.fn.media.defaults.flvPlayer= "/_cms/lib/player.swf";
$.fn.media.defaults.flashvars={autoplay: true,overstretch: 1, controlbar: 'over'};
$.fn.media.defaults.mp3Player= '/_cms/lib/player.swf';
$.fn.media.defaults.params= {allowFullScreen: "true"};
$.fn.media.defaults.width= 606;
$.fn.media.defaults.height= 490;

/* DOCUMENT READY FUNCTION
*************************************************************/
$(document).ready(function(){
	
	var formObj = new formSetup();
	//formObj.toggleSteps("step_one");

	var slideShowGo = new slideShow();
	var callToActionGo = new callToAction();
	if ($.browser.msie && $.browser.version <= 6 ) {
		
	} else {
		var addRoundedCornersGo = new addRoundedCorners();
	}
	var addPlayIconsGo = new addPlayIcons();
	var climateGoalsGo = new climateGoals();
	//$("#apply_form").validate();
	
	if($(".media").length > 0){
		$(".media").media();
	}	
});


