
//****************************************************************************************************
// Grab decorating variables and get them into the query string
//****************************************************************************************************
function bgg_addQSDecorations(link) {

bgg_navigationInvoked(link);

var args = link.getAttribute('bgg_decs');

if(args)
	{
	var splitArgs = args.split(",");

	for(var index = 0; index < splitArgs.length; index++)
		{
		var variable = "";
		var value = "";
		if(splitArgs[index].indexOf("=") > -1)
			{
			variable = splitArgs[index].split("=")[0];
			value = splitArgs[index].split("=")[1];
			}
		else
			{
			variable = splitArgs[index];
			}
		bgg_decorateQS(link, variable, value);
		}
	}
}

//****************************************************************************************************
// Append a query string argument to a link's href
//****************************************************************************************************
function bgg_decorateQS(link, variable, value) {

var href = link.href;

link.href = bgg_appendQSArg(href, variable, value);
}

//****************************************************************************************************
// Append a query string argument along with its value.  Preserve anchor point, if present
//****************************************************************************************************
function bgg_appendQSArg(href, variable, value) {

var anchor = "";
if(href.indexOf("#") != -1)
	{
	var urlLength = href.length;
	var tagIndex = href.indexOf("#");
	var tagLength = urlLength - tagIndex;

	anchor = href.substring(tagIndex, urlLength);
	href = href.substring(0,tagIndex);
	}

href = href + (href.indexOf("?")==-1? "?" : "&") + variable + (value != "" ? "=" + value : "") + anchor;
return href;
}

//************************************************************************************************************************
function bgg_setupReviews() {
// stub - overridden in bgg_bv_funcs.js when using BazaarVoice
}


// ***********************************************************************************************************************
function bgg_updateReviewElements(nodeClone) {
// stub - Overridden in bgg_bv_funcs.js when using BazaarVoice
}

//************************************************************************************************************************
// Pull out the item id that was passed in.
//************************************************************************************************************************
function bgg_parseArg(argName) { 

var urlString=(location.href); 

// alert(urlString);

var itemIdString=new Array(); 
var itemIdString=urlString.split(argName + '='); 

// Look for following arguments "&" and truncate the string just prior.
var result=itemIdString[1]; 

if(result != null) 
	{
	if (result.indexOf("&") != -1)
		{
		result = result.split("&")[0];
		}
	if (result.indexOf("#") != -1)
		{
		result = result.split("#")[0];
		}
	}

// alert(result);
return result;
}

//************************************************************************************************************************
// Customer has clicked to navigate among pages.  Are there special actions to take?
//************************************************************************************************************************
function bgg_navigationInvoked(link) {

if((link.href.indexOf(OFFER_DOMAIN) > -1) || (link.href.indexOf(OFFER_DOMAIN_ALT) > -1))
	{
	presentOffer();
	}
else if((bgg_readCookie(OFFER_COOKIE) != null) && (bgg_readCookie(SHOWING_COOKIE) != null) 
	&& (bgg_readCookie(ACCEPT_COOKIE) == null) && (bgg_readCookie(REMOVE_COOKIE) == null))
	{		
	removeSubscribePopunder();
	}

if(bgg_readCookie(VISITED_COOKIE) == null)
	{
	createVisitedCookie();
	}

bgg_appendFromInfo(link);
}

//************************************************************************************************************************
function bgg_loadCookieJS() {
	  document.write('<script type="text/javascript" src="https://shop.bostongreengoods.com/includes/bgg_cookies.js"></script>'); 

}
bgg_loadCookieJS();

//************************************************************************************************************************
function bgg_loadCampaignJS() {
	  document.write('<script type="text/javascript" src="https://shop.bostongreengoods.com/includes/bgg_offers.js"></script>'); 
}
bgg_loadCampaignJS();


var browserType = "UNKN";

//************************************************************************************************************************
function bgg_detectBrowser() {

if(navigator.userAgent.indexOf('Firefox')!=-1)
	{
	browserType = "FireFox";
	}
else if (navigator.userAgent.indexOf('Netscape')!=-1)
	{
	browserType = "Netscape";
	}
else if (navigator.userAgent.indexOf('MSIE')!=-1)
	{
	browserType = "IE";
	}
}

//************************************************************************************************************************
function getInternetExplorerVersion()
// Returns the version of Internet Explorer or a -1
// (indicating the use of another browser).
{
  var rv = -1; // Return value assumes failure.
  if (navigator.appName == 'Microsoft Internet Explorer')
  {
    var ua = navigator.userAgent;
    var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
    if (re.exec(ua) != null)
      rv = parseFloat( RegExp.$1 );
  }
  return rv;
}

//************************************************************************************************************************
function bgg_checkOsForPopunder() {

var enviroStats = navigator.userAgent;
if((enviroStats.toLowerCase().indexOf("windows nt 6.0;") > -1) || (enviroStats.toLowerCase().indexOf("windows nt 6.1;") > -1))
	{
	return false;
	}
else
	{
	return true;
	}

}

var bgg_loadCommonUtils_loaded = "loaded";

//***** Drop List Selection and Left Menu Management ************************************************************************
var openDropListTrigger = null;

function bgg_toggleDropList(dropListTrigger) {

if(openDropListTrigger  != null)
	{
	if(openDropListTrigger.getAttribute('selectId') != dropListTrigger.getAttribute('selectId'))
		{
		var tempDropListTrigger = openDropListTrigger;
		bgg_toggleDropList(tempDropListTrigger);
		}

	openDropListTrigger = null;
	}

var listName = dropListTrigger.getAttribute('selectId');
if(listName)
	{
	var listObject = document.getElementById(listName);
	var listContent = document.getElementById(listName + "_content");
	var listButton = document.getElementById(listName + "_button");
	var listPrompt = document.getElementById(listName + "_prompt");
	var listToggle = true;

	if((listObject) && (listContent != null) && (listButton != null) && (listPrompt != null)) // 
		{
		listToggle = ("prompt_show" == listPrompt.className);

		listContent.left = listObject.left;
		if(listToggle)
			{
			bgg_openDropList(listPrompt, listButton, listContent);
			openDropListTrigger = dropListTrigger;
			}
		else
			{
			bgg_closeDropList(listPrompt, listButton, listContent);
			}
		}
	}
}

//************************************************************************************************************************
function bgg_openDropList(listPrompt, listButton, listContent) {
	listPrompt.className = "prompt_prep";
	listButton.className = listButton.className.replace("select_closed","select_open");
	listContent.className = "select_show";
}

//************************************************************************************************************************
function bgg_closeDropList(listPrompt, listButton, listContent) {
	listPrompt.className = "prompt_show";
	listButton.className = listButton.className.replace("select_open","select_closed");
	listContent.className = "select_prep";
}

//************************************************************************************************************************
function bgg_selectOn(selection) {
	selection.className = "select_on";
}

//************************************************************************************************************************
function bgg_selectOff(selection) {
	selection.className = "select_off";
}

//************************************************************************************************************************
function bgg_selectClicked(selection) {
//Get the child anchor object
var children = selection.childNodes;

for(var i = 0; i < children.length; i++)
	{
	if(children[i].tagName.toLowerCase() == "a")
		{
		bgg_navigationInvoked(children[i]);
		document.location = children[i].href; 
		}
	}
}

//************************************************************************************************************************
function sfHover() {
	var sfEls = null;

	var target = document.getElementById("nav")
	if(target)
		{
		sfEls = target.getElementsByTagName("LI");
		if(sfEls) {bgg_setNavBehaviors(sfEls);}
		}

	target = document.getElementById("abc-left-nav");
	if(target)
		{
		sfEls = target.getElementsByTagName("LI");
		if(sfEls) {bgg_setNavBehaviors(sfEls);}
		}

	target = document.getElementById("abc-menu-block")
	if(target)
		{
		sfEls = target.getElementsByTagName("LI");
		if(sfEls) {bgg_setNavBehaviors(sfEls);}
		}
}

//************************************************************************************************************************
function bgg_setNavBehaviors(sfEls) {
	for (var i=0; i<sfEls.length; i++) {

		sfEls[i].onmouseover=function() {
			this.className+=" sfhover";}

		sfEls[i].onmouseout=function() {
			this.className=this.className.replace(new RegExp(" sfhover\\b"), "");}

		sfEls[i].onclick=function() {
			bgg_selectClicked(this);
		}
	}
}
