/*
*************************************************

FOGBUGZ
JavaScript Functions

Created by the wacky troop at Happy Cog
http://www.happycog.com/

*************************************************
*/


/*--------------------------------------------------------
			Global variables
--------------------------------------------------------*/

var currentIndex = 0;
	
var sections = new Array(); // assemble array of sections

var learn_subnav_a;

var firstRun = true;

var accordianHeaders = [];
var accordianSections = [];
var accordianSectionIndex = -1;


/*--------------------------------------------------------
			Global functions
--------------------------------------------------------*/
/**
 * trybuy
 *
 * @access public
 * @params NULL 	 
 * @return NULL
 */
 
function trybuy(){    

	// create toggle
	$('<ul id="toggle"><li id="trylink"><a href="#try" onclick="toggleTryBuy(\'try\'); return false;">Try it</a></li>' +
	    '<li id="buylink"><a href="#buy" onclick="toggleTryBuy(\'buy\'); return false;">Buy it</a></li>' +
	    '<li id="webinarlink"><a href="#webinar" onclick="toggleTryBuy(\'webinar\'); return false;">Webinar</a></li></ul>').insertBefore($("#try"));
	
	// initialize
	$("#trylink a").addClass("current"); //selected state
	
	$("#try-buy fieldset dd").append('<img src="' + sImagePath + 'screen/pointer.gif" class="pointer" alt="" />'); 
}

/**
 * toggleTryBuy
 *
 * @access public
 * @params:
 	- section:String = "try" or "buy" 	 
 * @return NULL
 */
 
function toggleTryBuy(section){    
	if(section == "try"){
		$("#buy, #webinar").css("display", "none");
		$("#try").css("display", "block");
		$("#buylink > a, #webinarlink > a").removeClass("current"); 
		$("#trylink > a").addClass("current");
	}else if (section == "buy"){
		$("#try, #webinar").css("display", "none");
		$("#buy").css("display", "block");
		$("#trylink > a, #webinarlink > a").removeClass("current"); 
		$("#buylink > a").addClass("current");
	}else{
		$("#try, #buy").css("display", "none");
		$("#webinar").css("display", "block");
		$("#trylink > a, #buylink > a").removeClass("current"); 
		$("#webinarlink > a").addClass("current");	
	}
}

/**
 * vidcats
 *
 * @access public
 * @params NULL 	 
 * @return NULL
 */
 
function vidcats(){

	// create toggle
	$('<ul id="toggle"><li id="featuredlink"><a href="#catFeatured" onclick="toggleVidCats(\'catFeatured\'); return false;">Featured</a></li>' +
	    '<li id="fogbugzlink"><a href="#catFogBugz" onclick="toggleVidCats(\'catFogBugz\'); return false;">FogBugz</a></li>' +
	    '<li id="kilnlink"><a href="#catKiln" onclick="toggleVidCats(\'catKiln\'); return false;">Kiln</a></li></ul>').insertBefore($("#catFeatured"));
	 $("#featuredlink a").addClass("current");   
}

/**
 * toggleVidCats
 *
 * @access public
 * @params:
 	- section:String = "try" or "buy" 	 
 * @return NULL
 */
 
function toggleVidCats(section){    
	if(section == "catFeatured"){
		$("#catFogBugz, #catKiln").css("display", "none");
		$("#catFeatured").css("display", "block");
		$("#fogbugzlink > a, #kilnlink > a").removeClass("current"); 
		$("#featuredlink > a").addClass("current");
	}else if (section == "catFogBugz"){
		$("#catFeatured, #catKiln").css("display", "none");
		$("#catFogBugz").css("display", "block");
		$("#featuredlink > a, #kilnlink > a").removeClass("current"); 
		$("#fogbugzlink > a").addClass("current");
	}else{
		$("#catFeatured, #catFogBugz").css("display", "none");
		$("#catKiln").css("display", "block");
		$("#featuredlink > a, #fogbugzlink > a").removeClass("current"); 
		$("#kilnlink > a").addClass("current");	
	}
}


/**
 * findSelected
 *
 * @access public
 * @params NULL
 * @return i = index of selected <option>
 */
 
function findSelected(){
	
	var options = $("#lang-switcher select").children();
	
	for(var i = 0; i < options.length; i++){
		if(options[i].getAttribute("selected")){
			return i;
		}
	}
}

/**
 * prepareSearchForm
 *
 * @access public
 * @params NULL
 * @return NULL
 */

function prepareSearchForm(){
	var oLabel = $("#search label");
	var oSearch = $("#search-field");
	var oForm = $("#search");
	if (!oLabel.length || !oForm.length || !oSearch.length) return;
	
	clearOnFocus(oSearch, oLabel.html());
	oForm.submit(function(){if (!oSearch.val() || oSearch.val() == oLabel.html()) return false;});
}


/**
 * greyInitialValues
 *
 * @access public
 * @params NULL
 * @return NULL
 */

function greyInitialValues(){
	
	var filled = $(".filled");
	
	if(filled.length > 0){
		for(var i = 0; i < filled.length; i++){
			filled[i].className = "empty";
			filled[i].initialValue = filled[i].value;
			
			filled[i].onclick = filled[i].onfocus = function(){
				this.className = "filled";
				if(this.value == this.initialValue){
					this.value= "";
				}
			}
			
			filled[i].onblur = function(){
				if(this.value == this.initialValue || this.value == ""){
					this.className = "empty";
					this.value = this.initialValue;
				}else{
					this.className = "filled";
				}
			}
		}
	}else{ 
		return; 
	}
}


/*--------------------------------------------------------
			"Learn More" section
--------------------------------------------------------*/


/**
 * buildTour
 *
 * @access public
 * @params NULL
 * @return NULL
 */


function buildTour(){
	
	learn_subnav_a.each(function(i, link){ 
		sections.push($(link)); //stores as a jQuery object
		$(link).attr("sectionI", i);
	});
	
	$('#learn-subnav').children().each(function(i, element)
	{
		if(element.nodeName.toLowerCase() == 'dt')
		{
			accordianSectionIndex++;
			
			$(element).attr('accordianSectionIndex', accordianSectionIndex);
			
			$(element).hover(
				function() {
					if (typeof($) != "undefined") $(this).addClass('hover');
				}
				,function() {
					if (typeof($) != "undefined") $(this).removeClass('hover');
				}
			);
			$(element).click(function() {
				openAccordian($(this).attr('accordianSectionIndex') || 0);
			});
			accordianSections[accordianSectionIndex] = [];
			accordianHeaders[accordianSectionIndex] = $(element);
		}
		else if(element.nodeName.toLowerCase() == 'dd')
		{
			$('a', element).attr('accordianSectionIndex', accordianSectionIndex);
			accordianSections[accordianSectionIndex].push($(element));
		}
	});
	
	firstRun = false;
}


/**
 * selectSection
 *
 * @access public
 * @params
 	- x:Number = index of array
 * @return NULL
 */


function selectSection(x){

	if (!x) x = 0; // jQuery is known to return undefined for element attributes that are actually 0
	
	if(x < 0 || x > learn_subnav_a.length-1 ){ return; }
	
	var accordianSection = sections[x].attr('accordianSectionIndex') || 0;
	openAccordian(accordianSection);
	
	// deselect old 
	if (currentIndex)
		$(sections[currentIndex]).parent().removeClass("current");
	else
		$("a.sectionlink").parent().removeClass("current");
	
	// select new
	$(sections[x]).parent().addClass("current"); //sets nav state
	currentIndex = x; // stores array index
}

/**
 * openAccordian
 *
 * @access public
 * @params
 	- x:Number = index of array
 * @return NULL
 */


function openAccordian(x)
{
	for(var i=0; i<accordianSections.length; i++)
	{
		if(i == x)
		{
			for(var j=0; j<accordianSections[i].length; j++)
			{
				accordianSections[i][j].slideDown();
			}
			accordianHeaders[i].addClass("opened");
		}
		else
		{
			for(var j=0; j<accordianSections[i].length; j++)
			{
				if (accordianSections[i][j].css("display") != "none")
					accordianSections[i][j].slideUp();
			}
			accordianHeaders[i].removeClass("opened");
		}
	}
}


/*--------------------------------------------------------
			Actions
--------------------------------------------------------*/

$(document).ready(function() {
	
	learn_subnav_a = $('#learn-subnav a');
	if(document.body.className == 'learn'){ buildTour(); }
	
	if($("#try-buy")){ trybuy(); }	
	
	prepareSearchForm();
});
