function blurLink(theObject){if(msie4){theObject.blur();}}
function decryptCharcode(n,start,end,offset){n=n+offset;if(offset>0&&n>end){n=start+(n-end-1);}else if(offset<0&&n<start){n=end-(start-n-1);}
return String.fromCharCode(n);}
function decryptString(enc,offset){var dec="";var len=enc.length;for(var i=0;i<len;i++){var n=enc.charCodeAt(i);if(n>=0x2B&&n<=0x3A){dec+=decryptCharcode(n,0x2B,0x3A,offset);}else if(n>=0x40&&n<=0x5A){dec+=decryptCharcode(n,0x40,0x5A,offset);}else if(n>=0x61&&n<=0x7A){dec+=decryptCharcode(n,0x61,0x7A,offset);}else{dec+=enc.charAt(i);}}
return dec;}
function linkTo_UnCryptMailto(s){location.href=decryptString(s,-1);}

var forcedRefresh = true;
var alreadyopen = new Array();
var newwin = new Array();

function openCenteredWindow(theURL, winName, features, w, h){
 var winl = parseInt((screen.width - w - 10) / 2);
 var wint = parseInt((screen.height - h - 29) / 2);
 openWindow(theURL, winName, features + ',height=' + h + ',width=' + w + ',top=' + wint + ',left=' + winl);
}

function openWindow(theURL, winName, features){
 if(forcedRefresh == false && alreadyopen[winName] && !newwin[winName].closed){
 newwin[winName].focus();
 }
 else{
 alreadyopen[winName] = 1;
 newwin[winName] = window.open(theURL, winName, features);
 newwin[winName].focus();
 }
}


// regionalized content.
function checkForRegionalizedContent(region) {
	
	var regContentID = '';	
	var regionalizedElements = getElementsByClassName('user-ovregionalization-pi1','div');
	
	if (regionalizedElements.length > 0) {
	
		var ralength = regionalizedElements.length;
	
		for (var i=0; i<ralength; i++) {
			regContentID = regionalizedElements[i].id.substr(3);
			processRegional(regContentID,region);
		}
		
		if (!document.getElementById('regionalInfo').innerHTML) {
			setRegionIndicator('us');
		}
	}
}

function regionalizedContentExists() {
	var regionalizedElements = getElementsByClassName('user-ovregionalization-pi1','div');
	if (regionalizedElements) {
		return 1;
	} else {
		return 0;
	}
}

function listOfRegions() {
	return ['us','newengland','northeast','northwest','california','midwest','rockymountains','texas','southeast'];
}
function listOfRegionNames() {
	return {
		'newengland': 		'New England Pastures',
		'northeast':		'Northeast Pastures',
		'northwest':		'Northwest Pastures',
		'california':		'California Pastures',
		'midwest':			'Heartland Pastures',
		'rockymountains':	'Rocky Mountain Pastures',
		'texas':			'Texas Pastures',
		'southeast':		'Southeast Pastures',
		'us':				'National'
	};
}

function processRegional(id,regionToShow) {
	var allRegions = listOfRegions();
	var regionNames = listOfRegionNames();
	var numRegions = allRegions.length;
	var contentString = '';
	
	for (var i=0; i<numRegions; i++) {

		if (allRegions[i] == regionToShow) {
			
			if (document.getElementById(allRegions[i]+id)) {
			
				contentString = document.getElementById(allRegions[i]+id).innerHTML;
				
				if (document.getElementById('status'+regionToShow+id).innerHTML == 'e') {
					contentString = decryptString(contentString,-1);
					contentString = contentString.replace(/\&ks\;/g,'<');
					contentString = contentString.replace(/\&fs\;/g,'>');
					contentString = contentString.replace(/\&zlo\;/g,'&');
					document.getElementById(allRegions[i]+id).innerHTML = contentString;
					document.getElementById('status'+regionToShow+id).innerHTML = 'd';
				}
				
				document.getElementById(allRegions[i]+id).style.display = 'block';
				setRegionIndicator(regionToShow);
				
			} else if (regionToShow != 'us' && document.getElementById('us'+id)) {
				document.getElementById('us'+id).style.display = 'block';
			}
			
		} else if (document.getElementById(allRegions[i]+id)) {
			document.getElementById(allRegions[i]+id).style.display = 'none';
		}
	}
	
}

function setRegionIndicator(regionName) {
	var regionNames = listOfRegionNames();
	var indicateRegion = document.getElementById('regionalInfo');	
	indicateRegion.innerHTML = 'You are viewing the ' + regionNames[regionName] + ' version of this page.';
	indicateRegion.innerHTML = indicateRegion.innerHTML + ' <span id="regionSwitcher"><a href="#" onclick="switchRegions(); return false;">Change</a></span>';
	var locationGif = location.pathname;
	if (locationGif == "/") { locationGif = '/home-'; } 
	locationGif = '/regional-'+regionName+locationGif;
	indicateRegion.innerHTML = indicateRegion.innerHTML + '<img src="'+locationGif+'spacer.gif" />';
	pageTracker._trackEvent('Regionalization',regionName,document.title);
}

function pickedRegion(selectBox) {
	var regionToSwitchTo = selectBox.options[selectBox.selectedIndex].value;
	var regionSwitcher = document.getElementById('regionSwitcher');
	if (regionToSwitchTo) {
		switchToRegion(regionToSwitchTo);
		setRegionIndicator(regionToSwitchTo);
		pageTracker._trackEvent('Regionalization','Manual Switch',regionToSwitchTo);
	}
}

function switchRegions() {
	// determine what regions to show
	var regionsToShow = availableRegions();
	var regionSwitcher = document.getElementById('regionSwitcher');
	var selectorBox = '<select id="theRegionSelectBox" onChange="pickedRegion(this)"><option>Choose one</option>';
	var regionNames = listOfRegionNames();
	
	var numRegionsToShow = regionsToShow.length;
	
	for (i=0; i<numRegionsToShow; i++) {
		selectorBox = selectorBox + '<option value="'+regionsToShow[i]+'">'+regionNames[regionsToShow[i]]+'</option>';
	}
	
	selectorBox = selectorBox + '</select>';
	
	regionSwitcher.innerHTML = selectorBox;
	
	document.getElementById('theRegionSelectBox').focus();
}

function availableRegions() {
	var regionalizedElements = getElementsByClassName('user-ovregionalization-pi1','div');
	
	var availableRegions = new Array();
	
	if (regionalizedElements) {
		var allRegions = listOfRegions();
		var currentRegion = whatRegionSelected();
		var numRegions = allRegions.length;
		var ralength = regionalizedElements.length;
	    // Loop through sets of regionalized content
		for (var i=0; i<ralength; i++) {
			regContentID = regionalizedElements[i].id.substr(3);
			// look through each region, seeing if it exists
			for (var j=0; j<numRegions; j++) {
				if (allRegions[j] != 'found' && document.getElementById(allRegions[j]+regContentID) && allRegions[j] != currentRegion) {
					availableRegions.push(allRegions[j]);
					allRegions[j] = 'found'; // don't look for it anymore.
				}
			}
		}
	}
	
	return availableRegions;
}

function switchToRegion(regionName) {
	var regContentID = '';	
	var regionalizedElements = getElementsByClassName('user-ovregionalization-pi1','div');
	
	setRegion(regionName);
	
	if (regionalizedElements) {
	
		var ralength = regionalizedElements.length;
	
		for (var i=0; i<ralength; i++) {
			regContentID = regionalizedElements[i].id.substr(3);
			processRegional(regContentID,regionName);
		}
	}
}

function getElementsByClassName(className, tag, elm){
	var testClass = new RegExp("(^|\\s)" + className + "(\\s|$)");
	var tag = tag || "*";
	var elm = elm || document;
	var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
	var returnElements = [];
	var current;
	var length = elements.length;
	for(var i=0; i<length; i++){
		current = elements[i];
		if(testClass.test(current.className)){
			returnElements.push(current);
		}
	}
	return returnElements;
}

var whichRegionCalled = false;

var whichRegion = function() {
	
	if (whichRegionCalled) {
		return false;
	}
	whichRegionCalled = true;
	
	if (regionalizedContentExists()) {
		// look for cookie
		var region = whatRegionSelected();
		
		if (region) {
			pageTracker._trackEvent('Regionalization','Cookie Switch',region);
			return checkForRegionalizedContent(region);
		} else {
			var myConn = new XHConn();
			if (myConn) {
				myConn.connect("/NetAcuity/location.php","GET","",whichRegionResponse);
			}
		}
	}
}

function whatRegionSelected() { var r = document.cookie.match(/ovregion=([a-z]{2,14});?/); if (r && r[1]) { return r[1]; } else {	return false; }}

function decryptString(enc,offset){var dec="";var len=enc.length;for(var i=0;i<len;i++){var n=enc.charCodeAt(i);if(n>=0x2B&&n<=0x3A){dec+=decryptCharcode(n,0x2B,0x3A,offset);}else if(n>=0x40&&n<=0x5A){dec+=decryptCharcode(n,0x40,0x5A,offset);}else if(n>=0x61&&n<=0x7A){dec+=decryptCharcode(n,0x61,0x7A,offset);}else{dec+=enc.charAt(i);}}
return dec;}

function decryptCharcode(n,start,end,offset){n=n+offset;if(offset>0&&n>end){n=start+(n-end-1);}else if(offset<0&&n<start){n=end-(start-n-1);}return String.fromCharCode(n);}


var whichRegionResponse = function(oXML) {
	if (oXML.responseText.match(/^[a-z]{2,14}$/)) {
		setRegion(oXML.responseText);
		checkForRegionalizedContent(oXML.responseText);
		pageTracker._trackEvent('Regionalization','AJAX Switch',oXML.responseText);
	}
}

function setRegion(regionName) {
	var expireDate = new Date();
	expireDate.setTime(expireDate.getTime()+(100*24*60*60*1000));
	document.cookie = 'ovregion='+regionName+'; expires='+expireDate.toGMTString()+'; path=/';
}



/** XHConn - Simple XMLHTTP Interface - bfults@gmail.com - 2005-04-08        **
 ** Code licensed under Creative Commons Attribution-ShareAlike License      **
 ** http://creativecommons.org/licenses/by-sa/2.0/                           **/
function XHConn()
{
  var xmlhttp, bComplete = false;
  try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); }
  catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }
  catch (e) { try { xmlhttp = new XMLHttpRequest(); }
  catch (e) { xmlhttp = false; }}}
  if (!xmlhttp) return null;
  this.connect = function(sURL, sMethod, sVars, fnDone)
  {
    if (!xmlhttp) return false;
    bComplete = false;
    sMethod = sMethod.toUpperCase();

    try {
      if (sMethod == "GET")
      {
        xmlhttp.open(sMethod, sURL+"?"+sVars, true);
        sVars = "";
      }
      else
      {
        xmlhttp.open(sMethod, sURL, true);
        xmlhttp.setRequestHeader("Method", "POST "+sURL+" HTTP/1.1");
        xmlhttp.setRequestHeader("Content-Type",
          "application/x-www-form-urlencoded");
      }
      xmlhttp.onreadystatechange = function(){
        if (xmlhttp.readyState == 4 && !bComplete)
        {
          bComplete = true;
          fnDone(xmlhttp);
        }};
      xmlhttp.send(sVars);
    }
    catch(z) { return false; }
    return true;
  };
  return this;
}


// used in select box navigation (products/recipes)
function switchpage(select) { 
    var index; 

  for(index=0; index<select.options.length; index++) 
    if(select.options[index].selected) 
      { 
        if(select.options[index].value!="") 
        	if (select.options[index].value.substr(0,4) == 'http') {
          		window.location.href=select.options[index].value; 
          	} else {
          		window.location.href='/'+select.options[index].value;
          	}
        	break; 
      } 
} 

// used to pre-load sidebar FCE 
function preloadSidebarImage(offImage) {
	if (document.images && offImage) {
		var off_name = offImage.src;
		if (off_name.search(/\_off\./) > 0) {
			var t = new Image(offImage.width,offImage.height);
			var on_name = off_name.replace(/\_off\./,'_on.');
			if (on_name) {	
				t.src = on_name;
				document.getElementById(offImage.id).onload = function() { };
			}
		}
	}
}

startList = function() {
	if (document.all && document.getElementById) {
	       navRoot = document.getElementById("main_nav");
	       for (i=0; i<navRoot.childNodes.length; i++) {
	               node = navRoot.childNodes[i];
	               if (node.nodeName=="LI") {
	                       node.onmouseover=function() {
	                               this.className+=" over";
	                       }
	                       node.onmouseout=function() {
	                               this.className=this.className.replace(" over", "");
	                       }
	               }
	       }
	}
}

function AC_AddExtension(src,ext)
{if(src.indexOf('?')!=-1)
return src.replace(/\?/,ext+'?');else
return src+ext;}
function AC_Generateobj(objAttrs,params,embedAttrs)
{var str='<object ';for(var i in objAttrs)
str+=i+'="'+objAttrs[i]+'" ';str+='>';for(var i in params)
str+='<param name="'+i+'" value="'+params[i]+'" /> ';str+='<embed ';for(var i in embedAttrs)
str+=i+'="'+embedAttrs[i]+'" ';str+=' ></embed></object>';document.write(str);}
function AC_FL_RunContent(){var ret=AC_GetArgs
(arguments,".swf","movie","clsid:d27cdb6e-ae6d-11cf-96b8-444553540000","application/x-shockwave-flash");AC_Generateobj(ret.objAttrs,ret.params,ret.embedAttrs);}
function AC_SW_RunContent(){var ret=AC_GetArgs
(arguments,".dcr","src","clsid:166B1BCA-3F9C-11CF-8075-444553540000",null);AC_Generateobj(ret.objAttrs,ret.params,ret.embedAttrs);}
function AC_GetArgs(args,ext,srcParamName,classid,mimeType){var ret=new Object();ret.embedAttrs=new Object();ret.params=new Object();ret.objAttrs=new Object();for(var i=0;i<args.length;i=i+2){var currArg=args[i].toLowerCase();switch(currArg){case"classid":break;case"pluginspage":ret.embedAttrs[args[i]]=args[i+1];break;case"src":case"movie":args[i+1]=AC_AddExtension(args[i+1],ext);ret.embedAttrs["src"]=args[i+1];ret.params[srcParamName]=args[i+1];break;case"onafterupdate":case"onbeforeupdate":case"onblur":case"oncellchange":case"onclick":case"ondblClick":case"ondrag":case"ondragend":case"ondragenter":case"ondragleave":case"ondragover":case"ondrop":case"onfinish":case"onfocus":case"onhelp":case"onmousedown":case"onmouseup":case"onmouseover":case"onmousemove":case"onmouseout":case"onkeypress":case"onkeydown":case"onkeyup":case"onload":case"onlosecapture":case"onpropertychange":case"onreadystatechange":case"onrowsdelete":case"onrowenter":case"onrowexit":case"onrowsinserted":case"onstart":case"onscroll":case"onbeforeeditfocus":case"onactivate":case"onbeforedeactivate":case"ondeactivate":case"type":case"codebase":ret.objAttrs[args[i]]=args[i+1];break;case"width":case"height":case"align":case"vspace":case"hspace":case"class":case"title":case"accesskey":case"name":case"id":case"tabindex":ret.embedAttrs[args[i]]=ret.objAttrs[args[i]]=args[i+1];break;default:ret.embedAttrs[args[i]]=ret.params[args[i]]=args[i+1];}}
ret.objAttrs["classid"]=classid;if(mimeType)ret.embedAttrs["type"]=mimeType;return ret;}
