$(function(){
	$(".featured-post:first").show();
	$(".featured-thumb:first").addClass("selected");
	var sumWidth = 0;
	$("#main-nav li:not(.sub-menu li)").each(function () {
		$(this).outerWidth(false);
		sumWidth += $(this).outerWidth(false);
		
	});
	if($("#main-nav").width() > sumWidth) {
		var diffWidth = $("#main-nav").innerWidth()-sumWidth;
		var paddingLast = parseFloat($("#main-nav a:last").css("padding-right"))+diffWidth;
		while($("#main-nav").innerWidth() <= (sumWidth+(paddingLast-parseFloat($("#main-nav a:last").css("padding-right"))))) {
			paddingLast--;
		}
		$("#main-nav a:last").css("padding-right", paddingLast)
	}
	var sumWidth2 = 0;
	$("#side-nav a").each(function () {
		sumWidth2 += $(this).outerWidth(false);
	});
	if($("#side-nav").width() > sumWidth2) {
		var diffWidth2 = $("#side-nav").innerWidth()-sumWidth2;
		$("#side-nav a:last").css("padding-right", parseFloat($("#side-nav a:last").css("padding-right"))+diffWidth2+"px")
	}
	$("ul.menu > li").hoverIntent({
          sensitivity: 9,
          interval: 100,
          over: function () {
                  var menu = $(this).children(".sub-menu:first");
                         
                  menu.addClass("show");
          
                  var menuWidth = menu.outerWidth();
                  var offset = $(this).offset();
                  var menuPosition = offset.left + menuWidth;
          
                  if($(".ie7").length > 0) {
                        menu.css("left", offset.left).css("margin-top", "20px");
                  }
                    
                  if (menuPosition > 960) {
                      menu.css("margin-left", (menuPosition-990)*-1);
                  }
           },
           timeout: 0,
           out: function () {
                  var menu = $(this).children(".sub-menu");
                  menu.removeClass("show");
                  if($(".ie7").length > 0) {
                        menu.css("left", -99999999);
                  }
                }
    });
    $(".sub-menu").addClass("clearfix");
    if($(".home")) {
     //    $(".home nav.home li:first").addClass("first");
       //  $(".home nav.home li:last").addClass("last");
    }
	var count = 0;
	var limit = 0;
	var featured_posts = window.setInterval(function () {
		if (count >= ($(".featured-post").length-1)) {
			count = 0;
			$(".featured-post:eq(" + ($(".featured-post").length - 1) + ")").fadeOut(3000);
			$(".featured-thumb:eq(" + ($(".featured-post").length - 1) + ")").removeClass("selected");
			$(".featured-post:eq(" + count +")").delay(3000).fadeIn(3000);
			$(".featured-thumb:eq(" + count +")").delay(3000).addClass("selected");
			limit++;
		}
		else {
			$(".featured-post:eq(" + count + ")").fadeOut(3000);
			$(".featured-thumb:eq(" + count + ")").removeClass("selected");
			$(".featured-post:eq(" + (count + 1) +")").delay(3000).fadeIn(3000);
			$(".featured-thumb:eq(" + (count + 1) +")").delay(3000).addClass("selected");
			count++
		}
		if(limit >= 2) {
			clearInterval(featured_posts);
		}
	}, 20000);
	$(".featured-thumb").click(function () {
		clearInterval(featured_posts);
		var postID = $(this).attr("data-post-id");
		$(".featured-post:visible").hide();
		$(".featured-post").each(function () {
			if($(this).hasClass("post-"+postID)) {
				$(this).fadeIn("slow");
				return false;
			}
		});
		$(".featured-thumb.selected").removeClass("selected");
		$(this).addClass("selected");
		return false;
	});
	$(".quote").each(function () {
		$(this).children("blockquote").append("<cite>"+$(this).children("input[type=hidden]").val()+"</cite>");
	});
	var quote_count = 0
	$(".quote:eq("+quote_count+1+")").hide();
	var quotes = window.setInterval(function () {
		var speed = 3000
		$(".quote:eq("+quote_count+")").fadeOut(speed);
		if (quote_count >= $(".quote").length-1) {
			quote_count = 0;
		}
		else {
			quote_count++;
		}
		$(".quote:eq("+quote_count+")").delay(speed).fadeIn(speed).next(".ie7 .quote, .ie8 .quote").hide();
	}, 30000);
	$( "#product-display" ).haccordion();
//	$(".product-display:last").css("width", "463px");
	$(".ie7 .featured-thumb:first").addClass("first");
	$(".ie7 .featured-thumb:last").addClass("last");
	$(".ie7 #product-display h3:first").addClass("first");
	$(".ie8 .featured-thumb:first").addClass("first");
	$(".ie8 .featured-thumb:last").addClass("last");
	$(".ie8 #product-display h3:first").addClass("first");
});
function com_stewartspeak_replacement() {
/*
	Dynamic Heading Generator
    By Stewart Rosenberger
    http://www.stewartspeak.com/headings/

	This script searches through a web page for specific or general elements
	and replaces them with dynamically generated images, in conjunction with
	a server-side script.
*/


replaceSelector("h3.product-label",/*$("base:eq(0)").attr("href")+*/"http://gbsgroup.net/wp-content/themes/gbsgroup/text-replacement.php",false);
var testURL = /*$("base:eq(0)").attr("href")+*/"http://gbsgroup.net/wp-content/themes/gbsgroup/images/test.png" ;

var doNotPrintImages = false;
var printerCSS = "replacement-print.css";

var hideFlicker = false;
var hideFlickerCSS = "replacement-screen.css";
var hideFlickerTimeout = 1000;




/* ---------------------------------------------------------------------------
    For basic usage, you should not need to edit anything below this comment.
    If you need to further customize this script's abilities, make sure
	you're familiar with Javascript. And grab a soda or something.
*/

var items;
var imageLoaded = false;
var documentLoaded = false;

function replaceSelector(selector,url,wordwrap)
{
	if(typeof items == "undefined")
		items = new Array();

	items[items.length] = {selector: selector, url: url, wordwrap: wordwrap};
}

if(hideFlicker)
{		
	document.write('<link id="hide-flicker" rel="stylesheet" media="screen" href="' + hideFlickerCSS + '" />');		
	window.flickerCheck = function()
	{
		if(!imageLoaded)
			setStyleSheetState('hide-flicker',false);
	};
	setTimeout('window.flickerCheck();',hideFlickerTimeout)
}

if(doNotPrintImages)
	document.write('<link id="print-text" rel="stylesheet" media="print" href="' + printerCSS + '" />');

var test = new Image();
test.onload = function() { imageLoaded = true; if(documentLoaded) replacement(); };
test.src = testURL + "?date=" + (new Date()).getTime();

addLoadHandler(function(){ documentLoaded = true; if(imageLoaded) replacement(); });


function documentLoad()
{
	documentLoaded = true;
	if(imageLoaded)
		replacement();
}

function replacement()
{
	for(var i=0;i<items.length;i++)
	{
		var elements = getElementsBySelector(items[i].selector);
		if(elements.length > 0) for(var j=0;j<elements.length;j++)
		{
			if(!elements[j])
				continue ;
		
			var text = extractText(elements[j]);
    		while(elements[j].hasChildNodes())
				elements[j].removeChild(elements[j].firstChild);

			var tokens = items[i].wordwrap ? text.split(' ') : [text] ;
			for(var k=0;k<tokens.length;k++)
			{
				var url = items[i].url + "?text="+escape(tokens[k]+' ')+"&selector="+escape(items[i].selector);
				var image = document.createElement("img");
				image.className = "replacement";
				image.alt = tokens[k] ;
				image.src = url;
				elements[j].appendChild(image);
			}

			if(doNotPrintImages)
			{
				var span = document.createElement("span");
				span.style.display = 'none';
				span.className = "print-text";
				span.appendChild(document.createTextNode(text));
				elements[j].appendChild(span);
			}
		}
	}

	if(hideFlicker)
		setStyleSheetState('hide-flicker',false);
}

function addLoadHandler(handler)
{
	if(window.addEventListener)
	{
		window.addEventListener("load",handler,false);
	}
	else if(window.attachEvent)
	{
		window.attachEvent("onload",handler);
	}
	else if(window.onload)
	{
		var oldHandler = window.onload;
		window.onload = function piggyback()
		{
			oldHandler();
			handler();
		};
	}
	else
	{
		window.onload = handler;
	}
}

function setStyleSheetState(id,enabled) 
{
	var sheet = document.getElementById(id);
	if(sheet)
		sheet.disabled = (!enabled);
}

function extractText(element)
{
	if(typeof element == "string")
		return element;
	else if(typeof element == "undefined")
		return element;
	else if(element.innerText)
		return element.innerText;

	var text = "";
	var kids = element.childNodes;
	for(var i=0;i<kids.length;i++)
	{
		if(kids[i].nodeType == 1)
		text += extractText(kids[i]);
		else if(kids[i].nodeType == 3)
		text += kids[i].nodeValue;
	}

	return text;
}

/*
	Finds elements on page that match a given CSS selector rule. Some
	complicated rules are not compatible.
	Based on Simon Willison's excellent "getElementsBySelector" function.
	Original code (with comments and description):
		http://simon.incutio.com/archive/2003/03/25/getElementsBySelector
*/
function getElementsBySelector(selector)
{
	var tokens = selector.split(' ');
	var currentContext = new Array(document);
	for(var i=0;i<tokens.length;i++)
	{
		token = tokens[i].replace(/^\s+/,'').replace(/\s+$/,'');
		if(token.indexOf('#') > -1)
		{
			var bits = token.split('#');
			var tagName = bits[0];
			var id = bits[1];
			var element = document.getElementById(id);
			if(tagName && element.nodeName.toLowerCase() != tagName)
				return new Array();
			currentContext = new Array(element);
			continue;
		}

		if(token.indexOf('.') > -1)
		{
			var bits = token.split('.');
			var tagName = bits[0];
			var className = bits[1];
			if(!tagName)
				tagName = '*';

			var found = new Array;
			var foundCount = 0;
			for(var h=0;h<currentContext.length;h++)
			{
				var elements;
				if(tagName == '*')
					elements = currentContext[h].all ? currentContext[h].all : currentContext[h].getElementsByTagName('*');
				else
					elements = currentContext[h].getElementsByTagName(tagName);

				for(var j=0;j<elements.length;j++)
					found[foundCount++] = elements[j];
			}

			currentContext = new Array;
			var currentContextIndex = 0;
			for(var k=0;k<found.length;k++)
			{
				if(found[k].className && found[k].className.match(new RegExp('\\b'+className+'\\b')))
					currentContext[currentContextIndex++] = found[k];
			}

			continue;
	    }

		if(token.match(/^(\w*)\[(\w+)([=~\|\^\$\*]?)=?"?([^\]"]*)"?\]$/))
		{
			var tagName = RegExp.$1;
			var attrName = RegExp.$2;
			var attrOperator = RegExp.$3;
			var attrValue = RegExp.$4;
			if(!tagName)
				tagName = '*';

			var found = new Array;
			var foundCount = 0;
			for(var h=0;h<currentContext.length;h++)
			{
				var elements;
	        	if(tagName == '*')
					elements = currentContext[h].all ? currentContext[h].all : currentContext[h].getElementsByTagName('*');
				else
					elements = currentContext[h].getElementsByTagName(tagName);

				for(var j=0;j<elements.length;j++)
					found[foundCount++] = elements[j];
			}

			currentContext = new Array;
			var currentContextIndex = 0;
			var checkFunction;
			switch(attrOperator)
			{
				case '=':
					checkFunction = function(e) { return (e.getAttribute(attrName) == attrValue); };
					break;
				case '~':
					checkFunction = function(e) { return (e.getAttribute(attrName).match(new RegExp('\\b'+attrValue+'\\b'))); };
					break;
				case '|':
					checkFunction = function(e) { return (e.getAttribute(attrName).match(new RegExp('^'+attrValue+'-?'))); };
					break;
				case '^':
					checkFunction = function(e) { return (e.getAttribute(attrName).indexOf(attrValue) == 0); };
					break;
				case '$':
					checkFunction = function(e) { return (e.getAttribute(attrName).lastIndexOf(attrValue) == e.getAttribute(attrName).length - attrValue.length); };
					break;
				case '*':
					checkFunction = function(e) { return (e.getAttribute(attrName).indexOf(attrValue) > -1); };
					break;
				default :
					checkFunction = function(e) { return e.getAttribute(attrName); };
			}

			currentContext = new Array;
			var currentContextIndex = 0;
			for(var k=0;k<found.length;k++)
			{
				if(checkFunction(found[k]))
					currentContext[currentContextIndex++] = found[k];
			}

			continue;
		}

		tagName = token;
		var found = new Array;
		var foundCount = 0;
		for(var h=0;h<currentContext.length;h++)
		{
			var elements = currentContext[h].getElementsByTagName(tagName);
			for(var j=0;j<elements.length; j++)
				found[foundCount++] = elements[j];
		}

		currentContext = found;
	}

	return currentContext;
}


}// end of scope, execute code
if(document.createElement && document.getElementsByTagName && !navigator.userAgent.match(/opera\/?6/i))
	com_stewartspeak_replacement();

