// XHTML Strict External Links
function externalLinks() {
 if (!document.getElementsByTagName) return;
 var anchors = document.getElementsByTagName("a");
 for (var i=0; i<anchors.length; i++) {
   var anchor = anchors[i];
   if (anchor.getAttribute("href")&&
       anchor.getAttribute("rel")=="external")
     anchor.target = "_blank";
 }
}
window.onload = externalLinks;

// Jquery Variables
$(document).ready(function(){	   
						   
//pngFix
$(document).pngFix();

// Flash Embedding

// ***** IE6 Duct Tape *****
$.browser.msie6 = $.browser.msie && /MSIE 6\.0/i.test(window.navigator.userAgent) && !/MSIE 7\.0/i.test(window.navigator.userAgent);
if ($.browser.msie6) {
	// Hover fix, adds .sfhover class on rollover
	$('#nav li').bind('mouseenter mouseleave', function(){
		$(this).toggleClass('sfhover');
	});
	// Add other IE6 only code here
}

// ***** Utilities *****

// 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("");
});

// Open external links in new windows (remove '@' for jquery v.1.3 and up)
$('a[href^="http://"]').addClass('external').attr('target', '_blank');

// Open pdf links in new windows (remove '@' for jquery v.1.3 and up)
$('a[href$=".pdf"]').addClass('pdf').attr('target', '_blank');

// Add 'back to top' link when the content is taller than the window
if ($('#content').height() > $(window).height()) {
	$('#content').append('<p class="top-link"><a href="#header">Back to Top</a> &uarr;</p>');
}

// wrap img.caption in a div and use the title attr as a caption  
$("#content img.caption").each(function(i) {
	var $img = $(this);
	var caption = $img.attr('title');
	var width = $img.attr('width') + 10;
	$img.wrap('<div class="inset" style="width:'+width+'px;"></div>').after("<p>" + caption + "</p>");
});

// ***** Game Room *****
$('ul#sesame-games a').click(function(e){
	var game = $(e.target).attr('class'); // infers the game name from the class of the <a> tag
	// not sure why, but if the link is an image,
	// we have to get the link's class name as the parent of the <img> tag
	game = game ? game : $(e.target).parent().attr('class');
	$('#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 }
	);
});

// ***** Flash Video *****
// Enable flash video on any div whose id starts with "video-"
// Infer the name of the video clip from the rest of the id
// e.g. <div id="video-the-damon-system"> looks for the file "the-damon-system.flv"
$("div[id^='video-']").flash(null, { version: 8 }, function(opts){
	var $this = $(this);	
	var videoClip = $this.attr('id').replace(/^video-/,'');
	opts.src = 'swf/flv-player.swf'
	opts.width = 360;
	opts.height = 266;
	opts.wmode = 'transparent',
	opts.menu = false,
	opts.flashvars = {
		flvToPlay: "../video/" + videoClip + ".flv",
		smoothVideo: true,
		showScaleModes: false,
		autoStart: false,
		startImage: "video/" + videoClip + ".jpg",
		allowFullScreen: false
	}
	this.innerHTML = '<div class="alt">'+this.innerHTML+'</div>';
	$this.addClass('flash-replaced').prepend($.fn.flash.transform(opts));
});

// ***** 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: 466,
		height: 280,
		wmode: 'transparent',
		flashvars: {
			autoPlay: 'false', // change value to 'true'to play on start
			thisColor: '0x' + '6B7616' // change global hex color (default=639CCE)
		},
		pluginOptions: {version: 8}
	},
	
	modules: [
		// Change item values in any 'flashvars' section to false to omit,
		// Add any value to override the default.
		
		{name: 'home', config: {width: 500, height: 300}},
		{name: 'braces-diagram', config: {height: 375}},
		{name: 'brace-painter', config: {height: 430}},
		
		{name: 'brushing-and-flossing',
			config: {
				flashvars: {
					brushing: 'true',
					flossing: 'true'
				}
			}
		},
		
		{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: 'the-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:466, height:373}},
		
		{name: 'office-tour',
			config: {
				width: 500,
				height: 375,
				flashvars: { 
					caption01: 'Our Office',
					caption02: 'Office Exterior',
					caption03: 'Office Front Door',
					caption04: 'Waiting Room',
					caption05: 'Kids Room'
				}
			}
		},

		{name: 'palatal-expander', config: {width: 200, height: 150}},
		{name: 'patient-care-videos', config: {height: 375}},			
		
		{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: {
				flashvars: {
					metal: 'true',
					gold: 'false',
					ceramic: 'true',
					invisible: 'true',
					lingual: 'true'
				}
			}
		}
	]
};


// 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 = 'swf/' + module.name + '.swf';
	$('#flash-' + module.name).flash(modConfig, flashModules.defaults.pluginOptions);
}

// End Flash Embedding

}); // End Jquery Variables
