// text replacment
Cufon.replace('#topnav > li > a, #kb_tabs > a', { fontFamily: 'lato-bold' } );
Cufon.replace('.callout h1, body.secondary #content .mainContent h1, body.secondary #content .mainContent h2, .left-col .callout h2, body.products #content .mainContent h1, body.products #content .mainContent h2, #productPDFs h3, body.products #content .mainContent h3, body.products #content .mainContent h4, #hdr_landingPage h1, .callout-box-201w h3, .callout-box-noBG h3, body.popup h1, body.popup h2, body.popup h3', { fontFamily: 'lato-light' } );
Cufon.replace('#tabs > ul li a, body.products #content .mainContent h3 strong, #content .mainContent h2 strong, #content .mainContent h1 strong', { fontFamily: 'lato-bold' } );
Cufon.replace('#hdr_landingPage h2, #content .mainContent h1.regular', { fontFamily: 'lato-regular' } );
// end text replacement

$(window).load(function() {
	$('.thumbnail').each(function () {
		/*
		if ($('img', this).attr('src') !== undefined) {
			alert('good');
		} else {
			alert('bad');
		}
		*/
		var imgSrc = $('img', this).attr('src');
		//alert(imgSrc);
		var imgHref = imgSrc.replace('thumb', 'large');
		$(this).attr('href', imgHref);

		var overlayWidth = $('img', this).width();
		var overlayHeight = $('img', this).height();
		var theLink = $(this);
		theLink.attr('style', 'height:' + overlayHeight + 'px;width:' + overlayWidth + 'px;');
		var overlay = $('.highlight', this);
		overlay.attr('style', 'height:' + overlayHeight + 'px;width:' + overlayWidth + 'px;');
	});

	$('.thumbnail').mouseenter(function () {
		var overlay = $('.highlight', this);
		overlay.show();
	});

	$('.thumbnail').mouseleave(function () {
		$('.highlight', this).hide();
	});

});

$(document).ready(function() {
	
	// init clear default textboxes
	$('input.input-text').clearDefault();

	// selectbox replacement
	$("select.styled-173w").selectbox({
		effect: "slide",
		classHolder: 'sbHolder h-173w',
		classSelector: 'sbSelector s-173w',
		classOptions: 'sbOptions o-173w'
	});
	$("select.styled-202w").selectbox({
		effect: "slide",
		classHolder: 'sbHolder h-202w',
		classSelector: 'sbSelector s-202w',
		classOptions: 'sbOptions o-202w'
	});
	$("select.styled-90w").selectbox({
		effect: "slide",
		classHolder: 'sbHolder h-90w',
		classSelector: 'sbSelector s-90w',
		classOptions: 'sbOptions o-90w'
	});
	$("select.styled-243w").selectbox({
		effect: "slide",
		classHolder: 'sbHolder h-243w',
		classSelector: 'sbSelector s-243w',
		classOptions: 'sbOptions o-243w'
	});
	$("select.styled-164w").selectbox({
		effect: "slide",
		classHolder: 'sbHolder h-164w',
		classSelector: 'sbSelector s-164w',
		classOptions: 'sbOptions o-164w'
	});
	$("select.styled-black-243w").selectbox({
		effect: "slide",
		classHolder: 'sbHolder black-h-243w',
		classSelector: 'sbSelector black-s-243w',
		classOptions: 'sbOptions black-o-243w'
	});
	var selectboxTimer;
	$(".sbHolder").mouseleave(function() {		
		selectboxTimer = setTimeout(closeSelectboxes, 800);
	});
	$(".sbHolder").mouseenter(function() {
		clearTimeout(selectboxTimer);
	});
	// end selectbox replacement

	function closeSelectboxes() {
		$("select.styled").selectbox('close');
	}

	// twitter 
	$('#tweets').jTweetsAnywhere({
        username: 'dynavoxtech',
        count: 5,
		showTweetFeed: { 
			showTimestamp: true, 
			showSource:true,
			includeRetweets:false
		}
    });
	$('#community-tweets').jTweetsAnywhere({
        username: 'dynavoxtech',
        count: 6,
		showTweetFeed: { 
			showTimestamp: true, 
			showSource:true,
			includeRetweets:false
		}
    });
	
	var Twitter = function() {
		var init = function() {
			$('#tweets ul li').hide();
			$('#tweets ul li:first').show();
			$('#tweets ul').show();
			Rotate();
	
			function Rotate(){
				var current = jQuery('#tweets ul li:visible');
				var next = current.next().length ? current.next() : current.parent().children(':first'); 
				current.hide();
				next.show();
				setTimeout(Rotate, 8000);
			} 
		};
		return {
			init: init
		};
	}();

	Twitter.init();
	
	// end twitter
	
	
	// prettyPhoto init
	var pp_dvoxMarkup = '<div class="pp_pic_holder"> \
					<div class="ppt">&nbsp;</div> \
					<div class="pp_top"> \
						<div class="pp_left"></div> \
						<div class="pp_middle"></div> \
						<div class="pp_right"></div> \
					</div> \
					<div class="pp_content_container"> \
						<div class="pp_left"> \
						<div class="pp_right"> \
							<div class="pp_content"> \
								<div class="pp_loaderIcon"></div> \
								<div class="pp_fade"> \
								<a class="pp_close" href="#">Close</a> \
									<a href="#" class="pp_expand" title="Expand the image">Expand</a> \
									<div class="pp_hoverContainer"> \
										<a class="pp_next" href="#">next</a> \
										<a class="pp_previous" href="#">previous</a> \
									</div> \
									<div id="pp_full_res"></div> \
									<div class="pp_details"> \
										<div class="pp_nav"> \
											<a href="#" class="pp_arrow_previous">Previous</a> \
											<p class="currentTextHolder">0/0</p> \
											<a href="#" class="pp_arrow_next">Next</a> \
										</div> \
										<p class="pp_description"></p> \
										{pp_social} \
									</div> \
								</div> \
							</div> \
						</div> \
						</div> \
					</div> \
					<div class="pp_bottom"> \
						<div class="pp_left"></div> \
						<div class="pp_middle"></div> \
						<div class="pp_right"></div> \
					</div> \
				</div> \
				<div class="pp_overlay"></div>';
		
	$("a.lightwindow").prettyPhoto({
        theme: 'pp_dvox',
		deeplinking: false,
		social_tools: '',
		markup: pp_dvoxMarkup,
		modal: false,
		horizontal_padding: 16
    });

    $("a[rel^='pp_login']").prettyPhoto({
        theme: 'pp_dvox',
		deeplinking: false,
		social_tools: '',
		markup: pp_dvoxMarkup,
		modal: true,
		horizontal_padding: 16
    });

    $("a[rel^='pp_register']").prettyPhoto({
        theme: 'pp_dvox',
		deeplinking: false,
		social_tools: '',
		markup: pp_dvoxMarkup,
		modal: true,
		horizontal_padding: 16,
        callback: function () { window.location.reload(); }
    });

    $("a[rel^='pp_profile']").prettyPhoto({
        theme: 'pp_dvox',
		deeplinking: false,
		social_tools: '',
		markup: pp_dvoxMarkup,
		modal: true,
		horizontal_padding: 16,
        callback: function () { window.location.reload(); }
    });

    $("a[rel^='pp_logout']").prettyPhoto({
        theme: 'pp_dvox',
		deeplinking: false,
		social_tools: '',
		markup: pp_dvoxMarkup,
		modal: true,
		horizontal_padding: 16,
        callback: function () { window.location.reload(); }
    });


	
	$("a[rel^='pp_wufoo']").prettyPhoto({
		theme: 'pp_dvox',
		deeplinking: false,
		social_tools: '',
		markup: pp_dvoxMarkup,
		horizontal_padding: 20		
	});
	
	
	$("a[rel^='pp_accessoryDetail']").prettyPhoto({
		theme: 'pp_dvox',
		deeplinking: false,
		social_tools: '',
		markup: pp_dvoxMarkup,
		horizontal_padding: 20		
	});

	// slickWrap (wraps image around text in HTML5 browsers) 
	$('.wrapReady').slickWrap();
   
   
   
   // data table styling 
   $(".trainingTable tr:last").addClass("last");
   $(".trainingTable tr:nth-child(2)").addClass("first");
   
   
   // submenu styles
   // hide submenu secondary
   
   /*
   
   $('#subnav ul > ul').hide();
   
   var currentURL = window.location.pathname;
   currentURL = currentURL.replace(/(\/?default.aspx.*|\/?)$/g, '');
   var navLinkURL = "";
   $('#subnav li').each(function() {
	 //$("> ul", this).hide();  
	 navLink = $("> a",this);
	 navLinkURL = navLink.attr('href');
	 //alert(navLinkURL);
	 if(currentURL.indexOf(navLinkURL) != -1) {
		 $("> ul", this).show();
		 styleSubNav(navLink);
	 }
   });
   */
  
	$(function(){
		var currentURL = window.location.pathname;
		currentURL = currentURL.replace(/(\/?default.aspx.*|\/?)$/g, '');
		//alert(currentURL);
		if(currentURL) {
			//$('#subnav a[href$="' + currentURL + '"]').attr('class', 'currentPage').parent('li').children('ul').first().show();
			//$('#subnav a[href$="' + currentURL + '"]').attr('class', 'currentPage').siblings('ul').first().show();
			$('#subnav a[href$="' + currentURL + '"]').addClass('currentPage').siblings('ul').first().show();
			$('#subnav a[href$="' + currentURL + '"]').parent().parent('ul').show();
			//$('#subnav a[href$="' + currentURL + '/"]').attr('class', 'currentPage').siblings('ul').first().show();
			$('#subnav a[href$="' + currentURL + '/"]').addClass('currentPage').siblings('ul').first().show();
			$('#subnav a[href$="' + currentURL + '/"]').parent().parent('ul').show();
			
		}
	});




});

function styleSubNav(e_navLink){
	e_navLink.addClass("currentPage");
	
};

function closePrettyPhotoBox(redirectUrl) {
    $.prettyPhoto.close();
    window.location = redirectUrl;
}


// product accessories switching
function initAccessories() {
	$('.current').click(function (event) {
		event.preventDefault();
	});
	
	
	$('.accessories-panel > div').hide();
	$('#switches, .default').show();
	
	$('.floatLeft a').not('.floatLeft a.current').click(function (event) {
		event.preventDefault();
		var idToShow = this.hash;
	
		// hide all sections
		$('.accessories-panel > div').hide();
	
	
		// show selected
		$(idToShow).show();
		$('.floatLeft a.default').removeClass('default');
		$('.floatLeft a.current').toggleClass('current');
		$(this).toggleClass('current');
	});	
}

// product accessories switching
function initFAQ() {
	$('.current').click(function (event) {
		event.preventDefault();
	});
	
	
	$('#faqList > div').hide();
	$('.default').show();
	
	$('.faqNav a').not('.faqNav a.current').click(function (event) {
		event.preventDefault();
		var idToShow = this.hash;
	
		// hide all sections
		$('#faqList > div').hide();
	
	
		// show selected
		$(idToShow).show();
		$('.faqNav a.default').removeClass('default');
		$('.faqNav a.current').toggleClass('current');
		$(this).toggleClass('current');
	});	
}

// community social tabs 
function initSocialTabs() {
	$('#tabs > div.default').show();
	$('#tabs ul li a').click(function(event){
		event.preventDefault();
		var panelToShow = $(this).attr('href');
		
		// hide other panels
		$('#tabs > div').hide();
		$('#tabs li > a.default').removeClass('default');
		$('#tabs li > a.current').toggleClass('current');
		//show selected
		$(this).toggleClass('current');
		$(panelToShow).show();
	});
}



function showDialog(whatToOpen, title) {
	$('param[name="wmode"]').attr('value','transparent');
	$(whatToOpen).dialog( 
	{ 
		buttons: 
		{ 
			'Ok': function() 
			{ 
				$(this).dialog('close'); 
			} 
		},
		modal: true,
		title: title
		
	});  
		
}


$(document).ready(function () {
	 $('#galleryThumbs a').click(function (event) {
		event.preventDefault();
		event.stopPropagation();
		var currentSelection = this;

		var newImgSrc = $('img', this).attr('src');
		newImgSrc = newImgSrc.replace('thumb', 'large');

		// hide current image
		// change imgage source
		// show new image
		$('#galleryMain .activeElement').removeClass('activeElement').fadeOut(function () {
			// if type is video
			if ($(currentSelection).hasClass('video')) {				
				var path = $(currentSelection).attr('href');
				var caption = "<strong>" + $(currentSelection).attr('title') + "</strong> &mdash; " + $(currentSelection).attr('description');
				playGalleryVideo(path, caption, '');
				$('#galleryVideoHolder').addClass('activeElement').delay(500).fadeIn(function () {
					$(this).addClass('activeElement');
				});
			}else {
				//assume image
				$('#galleryMain img').attr('src', newImgSrc).delay(500).fadeIn(function () {
					$(this).addClass('activeElement');
				});
			} 
		});

		$('#galleryThumbs a').removeClass('highlight');
		$(currentSelection).addClass('highlight');

	});
});





// clears default text from textbox
(function($){
	$.fn.clearDefault = function(){
		return this.each(function(){
			var default_value = $(this).val();
			$(this).focus(function(){
				if ($(this).val() == default_value) $(this).val("");
			});
			$(this).blur(function(){
				if ($(this).val() == "") $(this).val(default_value);
			});
		});
	};
})(jQuery);










// JQuery URL Parser plugin - https://github.com/allmarkedup/jQuery-URL-Parser
// Written by Mark Perkins, mark@allmarkedup.com
// License: http://unlicense.org/ (i.e. do what you want with it!)

;(function($, undefined) {
    
    var tag2attr = {
        a       : 'href',
        img     : 'src',
        form    : 'action',
        base    : 'href',
        script  : 'src',
        iframe  : 'src',
        link    : 'href'
    },
    
	key = ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","fragment"], // keys available to query
	
	aliases = { "anchor" : "fragment" }, // aliases for backwards compatability

	parser = {
		strict  : /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,  //less intuitive, more accurate to the specs
		loose   :  /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ // more intuitive, fails on relative paths and deviates from specs
	},
	
	querystring_parser = /(?:^|&|;)([^&=;]*)=?([^&;]*)/g, // supports both ampersand and semicolon-delimted query string key/value pairs
	
	fragment_parser = /(?:^|&|;)([^&=;]*)=?([^&;]*)/g; // supports both ampersand and semicolon-delimted fragment key/value pairs
	
	function parseUri( url, strictMode )
	{
		var str = decodeURI( url ),
		    res   = parser[ strictMode || false ? "strict" : "loose" ].exec( str ),
		    uri = { attr : {}, param : {}, seg : {} },
		    i   = 14;
		
		while ( i-- )
		{
			uri.attr[ key[i] ] = res[i] || "";
		}
		
		// build query and fragment parameters
		
		uri.param['query'] = {};
		uri.param['fragment'] = {};
		
		uri.attr['query'].replace( querystring_parser, function ( $0, $1, $2 ){
			if ($1)
			{
				uri.param['query'][$1] = $2;
			}
		});
		
		uri.attr['fragment'].replace( fragment_parser, function ( $0, $1, $2 ){
			if ($1)
			{
				uri.param['fragment'][$1] = $2;
			}
		});
				
		// split path and fragement into segments
		
        uri.seg['path'] = uri.attr.path.replace(/^\/+|\/+$/g,'').split('/');
        
        uri.seg['fragment'] = uri.attr.fragment.replace(/^\/+|\/+$/g,'').split('/');
        
        // compile a 'base' domain attribute
        
        uri.attr['base'] = uri.attr.host ? uri.attr.protocol+"://"+uri.attr.host + (uri.attr.port ? ":"+uri.attr.port : '') : '';
        
		return uri;
	};
	
	function getAttrName( elm )
	{
		var tn = elm.tagName;
		if ( tn !== undefined ) return tag2attr[tn.toLowerCase()];
		return tn;
	}
	
	$.fn.url = function( strictMode )
	{
	    var url = '';
	    
	    if ( this.length )
	    {
	        url = $(this).attr( getAttrName(this[0]) ) || '';
	    }
	    
        return $.url( url, strictMode );
	};
	
	$.url = function( url, strictMode )
	{
	    if ( arguments.length === 1 && url === true )
        {
            strictMode = true;
            url = undefined;
        }
        
        strictMode = strictMode || false;
        url = url || window.location.toString();
        	    	            
        return {
            
            data : parseUri(url, strictMode),
            
            // get various attributes from the URI
            attr : function( attr )
            {
                attr = aliases[attr] || attr;
                return attr !== undefined ? this.data.attr[attr] : this.data.attr;
            },
            
            // return query string parameters
            param : function( param )
            {
                return param !== undefined ? this.data.param.query[param] : this.data.param.query;
            },
            
            // return fragment parameters
            fparam : function( param )
            {
                return param !== undefined ? this.data.param.fragment[param] : this.data.param.fragment;
            },
            
            // return path segments
            segment : function( seg )
            {
                if ( seg === undefined )
                {
                    return this.data.seg.path;                    
                }
                else
                {
                    seg = seg < 0 ? this.data.seg.path.length + seg : seg - 1; // negative segments count from the end
                    return this.data.seg.path[seg];                    
                }
            },
            
            // return fragment segments
            fsegment : function( seg )
            {
                if ( seg === undefined )
                {
                    return this.data.seg.fragment;                    
                }
                else
                {
                    seg = seg < 0 ? this.data.seg.fragment.length + seg : seg - 1; // negative segments count from the end
                    return this.data.seg.fragment[seg];                    
                }
            }
            
        };
        
	};
	
})(jQuery);
