//JQuery Setup
$(function(){

//Cufon + jQuery
	//--- requires:
	//--- <script type="text/javascript" src="scripts/jquery.fontavailable-1.1.min.js"></script>
	//--- <script type="text/javascript" src="scripts/cufon-yui.js"></script>
	if (!$.fontAvailable('Humnst777BTRoman,CenturyGothicRegular')) {
		// load the cufon library
		$.ajax({
			type: 'GET',
			url: 'humanist_400.font.js',
			cache: true,
			success: 
				function() { //Cufon rule block
	            			Cufon.replace('#content h1, .homeuppercase',{
	            				fontFamily:'Humnst777BTRoman'
	           			 });//end cufon rule
			},
			dataType: 'script',
			data: null
		});
		// load the cufon library
		$.ajax({
			type: 'GET',
			url: 'gothic_400.font.js',
			cache: true,
			success: 
				function() { //Cufon rule block
	            			Cufon.replace('#content h2',{
	            				fontFamily:'CenturyGothicRegular'
	           			 });//end cufon rule
			},
			dataType: 'script',
			data: null
		});
	}

// Superfish Menu
        $("ul.sf-menu").superfish({ 
            animation: {height:'show'},   // slide-down effect without fade-in 
            delay:     200               // 1.2 second delay on mouseout 
        }); 
	 
	 // jQuery Cycle Plugin
    $('.slideshow').cycle({
		fx: 'fade' // choose your transition type, ex: fade, scrollUp, shuffle, etc...
	});
	
	 // jQuery Cycle Plugin
    $('.homeslideshow').cycle({
		fx: 'fade' // choose your transition type, ex: fade, scrollUp, shuffle, etc...
	});

//prepend span tag to photo div
  $(".photo").prepend("<span></span>");
  $(".staffphoto").prepend("<span></span>");
	 
	//png fix
	//must reference jquery.pngFix1.2.js in order to work
	//$(document).pngFix();
	
	//IE6 Upgrade Warning
//set cookie handler
var alertBox = $.cookie('ie_alert');
//if cookie val "noshow" then hide message - user has already seen this message!
if(alertBox == 'noshow') {
$('#alert').css('display', 'none');
}else{
$('#alert').css('display', 'block');
}

//click to close behavior
$('.ie-alert-link').click(function() {
$('#alert').slideToggle("slow");
$.cookie('ie_alert', 'noshow', { expires: 14 });
});

//-- /end ie6 warning

// Utilities
//-------------------------------------------------------------------------------
//jcIR
 //check if images are enabled then run replacement
// $('<img src="images/pixel.gif'+ '#' + Math.random() + '"/>').load(function() {
//  $('.jcir').jcIR({
//   image_dir: 'titles',
//   image_ext: '.jpg',
//   elem_width: '926',
//   elem_height: '260'
//  });
// });

//qtip - jQ tooltips
//qtip global styles
$.fn.qtip.styles.affiliations = { // Last part is the name of the style
   width: 200,
   background: '#d5bb79',
   color: '#7d333f',
   textAlign: 'left',
   border: {
      width: 3,
      radius: 9,
      color: '#b59d5e'
   },
   tip: 'leftMiddle',
   name: 'dark' // Inherit the rest of the attributes from the preset dark style
}
$('#affiliations li a').qtip({
	content: false,
	show: 'mouseover',
	hide: 'mouseout',
	style: 'affiliations',
		position: {
			corner: {
				target: 'rightMiddle',
				tooltip: 'leftMiddle'
			}
		}

})


// Standard Flash Modules
//-------------------------------------------------------------------------------
	
	// Define the default configuation values
	// followed by individual module configuration.
	// Values for individual modules will override the defaults
	var flashModules = {
		
		defaults: {			
			width: 480,
			height: 288,
			wmode: 'transparent',
			flashvars: {
				autoPlay: 'false', // change value to 'true' to play on start
				thisColor: '0x' + '434343' // change global hex color (default=639CCE)
			},
			pluginOptions: {version: 9}
		},
	
	modules: [
	  // Define the configuration values for each flash module.
	  // Change item values in any 'flashvars' section to false to omit,
	  // Add any value to override the default value in flashModuleDefaults.
	  
	  {name: 'homepage', config: {width:330, height:330}},
	  {name: 'braces-diagram', config: {height: 375}},
	  {name: 'brace-painter', config: {height: 430, wmode:'opaque'}},
	  
	  	
	  {name: 'brushing-and-flossing-ortho',
	    config: {
	      flashvars: {
	        brushing: 'true',
	        flossing: 'true'
	      }
	    }
	  },
	
		{name: 'brushing-and-flossing-dental',
	    config: {
	      flashvars: {
	        brushing: 'true',
	        flossing: 'true'
	      }
	    }
	  },
	
		{name: 'clarity', config: {width: 520, height: 390}},
	
		{name: 'clarity-smart-clip', config: {width: 520, height: 390}},
	  
	  {name: 'color-your-retainer', config: {width: 300, height: 300}},
	  
	  {name: 'common-treatments',
	    config: {
	      flashvars: {
	        crowding: 'true',
	        openbite: 'true',
	        deepOverbite: 'true',
	        missing: 'true',
	        underbite: 'true',
	        spacing: 'true',
	        overbite: 'true',
	        nonBraces: 'true',
	        phaseI: 'true'
	      }
	    }
	  },
	
		{name: 'damon-system-comparison', config: {width:250, height:165, wmode:'opaque'}},
	  
	  {name: 'emergency-care',
	    config: {
	      flashvars: {
	        pokingWire: 'true',
	        bracket: 'true',
	        looseWire: 'true',
	        appliance: 'true',
	        headgear: 'true',
	        soreness: 'true'
	      }
	    }
	  },	
	  {name: 'ibraces-logo', config: {width:200, height:135, wmode:'opaque'}},
	  
	  {name: 'know-your-teeth', config: {width:500, height:400}},
	  
	  {name: 'office-tour',
	    config: {width:500, height:375, wmode:'opaque',
		  flashvars: { 
			caption01: 'Outside Office',
			caption02: 'Outside Office',
			caption03: 'Front Desk',
			caption04: '',
			caption05: 'Consultation Room',
			caption06: '',
			caption07: 'Game Room',
			caption08: 'Waiting Room',
			caption09: 'Consultation Room',		  
			caption10: 'Exam Room',		  
			caption11: 'Exam Room',
			caption12: '',
			caption13: '',
			caption14: '',
			caption15: '',
			caption16: ''		  
	      }	  
	    }
	  },
	
	  {name: 'palatal-expander', config: {width: 200, height: 150}},
	  {name: 'video-player', 
	  	config: {
			width: 600,
			height: 500,
			flashvars: {
				autoPlay: true, // change value to 'true' to play on start
				playlistFile: 'video/playlist.xml'
			}
		}
	  },

	{name: 'smile-gallery',
	    config: {
	      flashvars: {
	        bonding: "true",
	        bridges: "true",
	        crowns: "true",
	        fillings: "true",
	        implants: "true",
	        invisalign: "true",
	        veneers: "true",
	        whitening: "true"
	      }
	    }
	  },

		{name: 'types-of-appliances',
	    config: {
	      flashvars: {
	        elastics: 'true',
	        headgear: 'true',
	        herbst: 'true',
	        palatal: 'true',
	        positioners: 'true',
	        separators: 'true'
	      }
	    }
	  },

	  {name: 'types-of-braces',
	    config: {width: 480, height: 288,
	      flashvars: {
	        metal: 'true',
	        gold: 'false',
	        ceramic: 'true',
	        invisible: 'true',
	        lingual: 'false'
	      }
	    }
	  }

	]
	};
	
	// Loop through the defined modules 
	// and do flash replacement for any that are on the current page
	for (var j = flashModules.modules.length - 1; j >= 0; j--){
		var module = flashModules.modules[j];
		// combine default config settings with individual module config settings
		var modConfig = $.extend({}, flashModules.defaults, module.config);
		// combine default flashvars with module flashvars
		modConfig.flashvars = $.extend({}, flashModules.defaults.flashvars, module.config.flashvars);
		modConfig.src = 'flash/' + module.name + '.swf';
		$('#flash-' + module.name).flash(modConfig, flashModules.defaults.pluginOptions);
	}

// Flash Video functions
//-------------------------------------------------------------------------------

var flashVideos = {
	
		defaults: {
		  // Define the configuation values applied to each module.
		  // Each module in flashModules can override these values.
		  
		  src: 'video/flvPlayer.swf',
		  width: 320,
		  height: 266, // Must add 26px to height to accomodate for the UI controls
		  wmode: 'transparent',
		  menu: false,
		  allowFullScreen: true,
		  flashvars: {
		    autoStart: "false", // change value to true to play on start
		    showScaleModes: "false", //set to false to disable scale modes menu
		    smoothVideo: "true", //set to false to disable video smoothing 
		  	hiddenGui: "false"
			},
		  pluginOptions: {version: 9}
		},
	
		videos: [
			{name: 'the-damon-system',config:{width: 240, height: 206}},
			{name: 'the-damon-system-2',config:{width: 400, height: 330}},
			{name: 'in-ovation',config:{}},
			{name: 'invisalign',config:{height: 239}},
			{name: 'ibraces-1',config:{}},
			{name: 'ibraces-2', config: {width: 352}},
			{name: 'ibraces-3', config: {width: 352}},
			{name: 'opalescense', config: {width: 400, height: 251}},
			{name: 'suresmile', config: {height: 206}}
		]
	};
	for (var j=0; j < flashVideos.videos.length; j++) {
		var video = flashVideos.videos[j];
		// combine default config settings with module config settings
		var vidConfig = $.extend({}, flashVideos.defaults, video.config);
		// combine default flashvars with module flashvars
		vidConfig.flashvars = $.extend({}, flashVideos.defaults.flashvars, video.config.flashvars);
		vidConfig.flashvars.flvToPlay = video.name + '.flv';
		vidConfig.flashvars.startImage = 'video/' + video.name + '.jpg';
		$('#video-' + video.name).flash(vidConfig, flashVideos.defaults.pluginOptions);
	};

// Game room
//-------------------------------------------------------------------------------
	
	// list the games that we want activated on click
	var games = Array('asteroids', 'frogger', 'pong', 'simon', 'snake', 'space-invaders', 'tetris', 'tic-tac-toe');
	
	// set the click behavior for a game link
	var setGameClick = function(game){
	$("a." + game).click(function(){
	  $('#sesame-game').flash(  // #sesame-game is the empty div that will contain the active game
	    {
	    src: 'games/' + game + '.swf',
	    width: 400,
	    height: 300,
	    wmode: 'transparent'
	    },
	    { version: 8 }
	  );
	});
	};
	
	// loop through the games array and
	// set the click behavior for each game link
	for (var j=0; j<games.length; j++){
	setGameClick(games[j]);
	};

//Toggle functions
//---------------------------------------------------------------------------------
	
	// Show only when javascript is available
	$('.toggle-link').css('display','block');

	//hide lists first!
	$('#toggle-content div').css('display','none');	

	//toggle
	function toggleInfoContent(id){
		if($('#' + id).css('display') != 'none'){
		  $('#' + id).hide();
		}else{
		  $("#toggle-content div").hide();
		  $('#' + id).show();
		}
	}
	$(".toggle-anatomy").click(function(){
	    toggleInfoContent('anatomy-of-a-tooth');
	    return false;
	});
	
	$(".toggle-teeth").click(function(){
	    toggleInfoContent('flash-know-your-teeth');
	    return false;
	});
	//------
	
	

//Basic HTML functions
//---------------------------------------------------------------------------------

	// add 'back to top' link when the content is taller than the window
	// this has to be done after flash replacement because the content height changes
	if ($('#content').height() > $(window).height()) {
		$('.back-to-top').removeClass('hide');
	}
	
	// Some effects rely on an element to be initially hidden,
	// but we only hide them if the user has javascript
	$('.jshide').addClass('hide');
	
	
	//clear form fields
	$('.clearme').one("focus", function() {
			$(this).val("");
	});

	//fade labels 
	$('#smallcontact input, #smallcontact textarea').one("focus", function() {
		$(this).prev('label').fadeTo(240,0.45);
	});
	
	// Open external links in new windows
	$('a[href^="http://"]').not('[href*="orthosesame.com"]').addClass('external').attr('target', '_blank');
	
	// Open pdf links in new windows
	$('a[href$=".pdf"]').addClass('pdf').attr('target', '_blank');

//Home Page Flip Animation
//---------------------------------------------------------------------------------
	window.$collage = 
	{
		//initialize all the queries to reuse below
		container			:	$('#content div.homecollage ul'),
		grid_background		:	$('#grid'),
		instructions		:	$('#instructions')

	};
	//Add array of 18 li's with images
	
	//insert 18 floated li's with thumb nail images
	for (var i = 1; i < 19; i++)
		$collage.container.append('<li class="thumb"><img src="images/photo/home/thumb'+i+'.jpg" width="118" height="129" class="flip" /></li>');
	
	//div background image
	//define grid as jQ object
	$collage.grid_background.fadeIn(1000, function() {
		$collage.instructions.fadeIn(1500);
	});
		
		
		

	//flip activated by :hover
	//hover	for li's
	$collage.li_thumbs = $('li.thumb');
	
	$collage.li_thumbs.hover( function(){
		$collage.images = $(this).children('img.flip');
		$collage.images.stop().animate({width:'118px',height:'129px',marginLeft:'0px',opacity:'1'},{duration:240});
	}, function() {
		$collage.images.stop().animate({width: '0px',height: '129px',marginLeft: '59px',opacity: '0'}, {duration:240});
	});
	
//end

	// Anti-spam email obfuscator
	//-- requires <script type="text/javascript" src="http://10.scripts.sesamehost.com/scripts/jquery.jcAntiSpam.js"></script>
	//-- change the ('.my-email-address') to to the class of the container which holds your email
	$('.emailinfo').jcAntiSpam({
	emailCommonName: 'E-mail Weiss and Luccarelli Orthodontics',//Name displayed in link text, e.g., 'Email So-And-So'
	emailName: 'info',//First half of primary email address; before "@" symbol
	emailDomain: 'longislandbraces.com',// Full Primary email domain name
	emailCcName: '',//First half of CC email address; before "@" symbol
	emailCcDomain: ''//CC email domain name
	}); 

//PrettyPhoto
//---------------------------------------------------------------------------------
 //Load prettyPhoto
 // check if rel=prettyphoto exists (plugin trigger)
 if ($("a[rel^='prettyPhoto']").length > 0 ) {
 
  // load pretty photo css
  $('<link>').attr({
   'rel': 'stylesheet',
   'type': 'text/css',
   'href': 'css/prettyPhoto.css',
   'media': 'screen'
  }).appendTo(document.getElementsByTagName('head')[0]);
 
  // load prettyphoto js (getscript of jQuery prevents caching so using ajax)
  $.ajax({
   type: 'GET',
   url: 'scripts/jquery.prettyPhoto.js',
   cache: true,
   success: function() {
    $("a[rel^='prettyPhoto']").prettyPhoto({
     animationSpeed: 'normal', /* fast/slow/normal */
     padding: 36, /* padding for each side of the picture */
     opacity: 0.45, /* Value between 0 and 1 */
     showTitle: true, /* true/false */
     allowresize: true, /* true/false */
     counter_separator_label: '/', /* The separator for the gallery counter 1 "of" 2 */
     theme: 'light_rounded', /* light_rounded / dark_rounded / light_square / dark_square */
     hideflash: false /* Hides all the flash object on a page, set to TRUE if flash appears over prettyPhoto */
    });
   },
   dataType: 'script',
   data: null
  });
 }
//---------------------------------------------------------------------------------
//	$("a[rel^='prettyPhoto']").prettyPhoto({
//		animationSpeed: 'normal', /* fast/slow/normal */
//		padding: 36, /* padding for each side of the picture */
//		opacity: 0.45, /* Value betwee 0 and 1 */
//		showTitle: true, /* true/false */
//		allowresize: true, /* true/false */
//		counter_separator_label: '/', /* The separator for the gallery counter 1 "of" 2 */
//		theme: 'light_rounded', /* light_rounded / dark_rounded / light_square / dark_square */
//		callback: function(){}
//	});


//Form Functions
//---------------------------------------------------------------------------------
		//Hide all items with class of "hidden-content"
		$('.hidden-content').css('display', 'none');
		
		//Sequential numbering of comment form li's
		$(".sequential-list li").each( function(i) {
		    i = i+1;
		    $(this).prepend('<span class="comment-number">' + i + '. </span>');
		});
		
		//toggle hidden fields on Appointment Request Form
		//New Patient Toggle...
		$("input[name^='Current_Patient']").click( function() {
			 if ($("input[name^='Current_Patient']:checked").val() == 'No')
			 	//not current patient, ask where they found us
			 	$('.hidden-content').fadeIn('slow');
			else 
				//current patient, hide content
				$('.hidden-content').fadeOut();
					if($('#found-other').css('display') != 'none') {
						$('#found-other').fadeOut();
					}
		});
		//Where did you hear about us toggle 
		$('#Found').change(function() {
			var selected = $('#Found option:selected');
			if(selected.val() == 'Other') {
				$('#found-other').fadeIn('slow');
			} else {
				$('#found-other').fadeOut();
			}
		});  

		//Comment form "May We Contact You" toggle
		$("input[name^='Contact_Me']").click( function() {
			 if ($("input[name^='Contact_Me']:checked").val() == 'Yes')
			 	//not current patient, ask where they found us
			 	$('.hidden-content')
			 		.fadeIn('slow');
			else 
				//current patient, hide content
				$('.hidden-content').fadeOut();
		});

		//Referral form "Radiographs Sent" toggle
		$("input[name^='Radiographs_Sent']").click( function() {
			 if ($("input[name^='Radiographs_Sent']:checked").val() == 'Yes')
			 	//not current patient, ask where they found us
			 	$('.hidden-content')
			 		.fadeIn('slow');
			else 
				//current patient, hide content
				$('.hidden-content').fadeOut();
		});
		
		/* Toggle Submit after Agreeing to Terms */
		$('input[name^="Disclaimer"]').click( function() {
			 if ($("input[name^='Disclaimer']:checked").val() == 'I Agree')
			 	//not current patient, ask where they found us
			 	$('.hidden-content').fadeIn('slow');
			else 
				//current patient, hide content
				$('.hidden-content').fadeOut();
		});
		
		//clear form fields with "clearme" class when clicked
		$('.clearme').one("focus", function() {
				$(this).val("");
		});
	
		//add red asterisk to label of required fields
		$('label.required').each(function(i) {
			$(this).append('<em> * </em>');
		});
		
		//Form validation
		//---------------------------------------------------------------------------------
			
		//masked input
		$(".date-mask").mask("99/99/9999");
		$(".phone-mask").mask("(999) 999-9999");
	
		//additional validation methods
		$.validator.addMethod("phone", function(phone_number, element) {
		    phone_number = phone_number.replace(/\s+/g, ""); 
			return this.optional(element) || phone_number.length > 9 &&
				phone_number.match(/^(1-?)?(\([2-9]\d{2}\)|[2-9]\d{2})-?[2-9]\d{2}-?\d{4}$/);
		}, "Please specify a valid phone number");
	
		//validator
		$(".validate").each(function() {
			$(this).validate({
				errorElement: "div",
					success: function(label) {
						label.text("ok!").addClass("success");
					},
				rules: {
					Contact_Name: {
						required:true,
						minlength: 5
					},
					Contact_Phone: {
						required: true,
						phone: true
					},
					Contact_Email: {
						required: true,
						email:true
					},
					Contact_Comment: {
						required:true,
						minlength: 12
					},
					First_Name: {
						required:true,
						minlength: 2
					},
					Last_Name: {
						required:true,
						minlength: 2
					},
					Doctor_First_Name: {
						required:true,
						minlength: 2
					},
					Doctor_Last_Name: {
						required:true,
						minlength: 2
					},
					Patient_First_Name: {
						required:true,
						minlength: 2
					},
					Patient_Last_Name: {
						required:true,
						minlength: 2
					},
					Patient_Email: {
						required: true,

						email:true
					},
					Referred_Patient_First_Name: {
						required:true,
						minlength: 5
					},
					Referred_Patient_Last_Name: {
						required:true,
						minlength: 5
					},
					Doctor_Patient_Referring: {
						required:true,
						minlength: 5
					},
					Doctor_Email: {
						required: true,
						email:true
					},
					Appointment_Email: {
						required: true,
						email:true
					},
					Daytime_Phone: {
						required: true,
						phone: true	
					},
					Alternate_Phone: {
						phone: true
					},
					Patient_Phone: {
						required: true,
						phone: true	
					},
					Message: {
						required:true,
						minlength: 12
					},
					Would_Like_To: {
						required: true
					},
					User_Name: {
						required: true
					},
					Password: {
						required: true
					},
					Question_1: {
						required: true
					},
					Question_2: {
						required: true
					},
					Question_3: {
						required: true
					},
					Question_4: {
						required: true
					},
					Question_5: {
						required: true
					},
					Question_6: {
						required: true
					},
					Question_7: {
						required: true
					},
					Question_8: {
						required: true
					},
					Question_9: {
						required: true
					},
					Question_10: {
						required: true
					},
					Patient_Name: {
						minlength: 5,
						required: "#Contact_Me_Yes:checked"
					},
					Email: {
						email:true,
						required: "#Contact_Me_Yes:checked"
					},
					txtNumber: {
						required:true,
						minlength: 5
					}
				}
			});
		});


});//end document.ready