/* GLOBAL FUNCTIONS ******************************************************************/

// GENERIC JS COOKIE FUNCTIONS
// CREATE COOKIE with specified Domain instead of document.domain
//   Give zero days for expiration to make a session cookie, neg for delete
function createCookieDom(name,value,days,domain) {
	if (days && (days != 0)) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires=" + date.toGMTString();
	} else {
		var expires = "";
	}
	if (domain)
		document.cookie = name+"="+value + expires + "; path=/; domain="+domain;
	else
		document.cookie = name+"="+value + expires + "; path=/";	
}
function createCookie(name,value,expiredays) {
	createCookieDom(name,value,expiredays,null);
}
// READ COOKIE
function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}
// DELETE COOKIE
function eraseCookieDom(name,domain) {
	createCookieDom(name,"0",-1,domain);
}
function eraseCookie(name) {
	createCookieDom(name,"0",-1,null);
}

/**
 * Sets the Pluck Cookie that is need to identify the user
 * @see         SiteLife Single Sign On (SSO) - http://sitelifeapi.pluck.com/SiteLifeApi.htm?slApiContextId=1
 */
function createPluckCookies(u,d,e,s) {
	var userId      = u;
	var displayName = d;
	var email       = e;
	var userStatusEl = s;
	// createPluckCookies(userId, displayName, email)
	// be sure the parts are escaped(url encoded) and seperated by the 'pipe' symbol
	var val = escape(userId) + "|" + escape(displayName) + "|0|" + escape(email);
	// strip domain to country root so pluck cookie is shared between
	// sitelife.scotts.com and xxxx.scotts.com (etc.)
	var domRoot = document.domain;
	if (domRoot.indexOf(".scotts.") >= 0)
		domRoot = domRoot.substring(domRoot.indexOf(".scotts.")+1,domRoot.length);
	else
		domRoot = "scotts.com";
	createCookieDom('HD',val,0,domRoot);
}
// PLUCK COOKIE: Delete the pluck cookies
function erasePluckCookies(name) {
	var domRoot = document.domain;
	if (domRoot.indexOf(".scotts.") >= 0)
		domRoot = domRoot.substring(domRoot.indexOf(".scotts.")+1,domRoot.length);
	else
		domRoot = "scotts.com";
	eraseCookieDom(name,domRoot);
}


YAHOO.util.Event.addListener(window, "load", isShowAjax);

function closePopupWindow(){window.close();}


/**
 * Adds back button functionality to any anchor tag that has the ID 'historyback'
 * @see         Yahoo! YUI - http://developer.yahoo.com/yui/dom/
 */
function assignHistoryBackButtons() {
	var a = YAHOO.util.Dom.getElementsByClassName('historyback','a');
	for (i=0;i<a.length;i++){
		a[i].onclick = function(){ history.back(); return false;}
	}
	return false;
}
/**
 * Adds Print functionality to any anchor tag that has the class print attached to it.
 * @see         Yahoo! YUI - http://developer.yahoo.com/yui/dom/
 */
function assignPrintButtons() {
	var a = YAHOO.util.Dom.getElementsByClassName('print','a');
	for (i=0;i<a.length;i++){
		a[i].onclick = function()
		{
			if (window.print) {window.focus(); window.print(); }
			else {alert('This script does not work in your browser. Please print from File>Print.');}
			return false;
		};
	}
	return false;
}
/**
 * Adds on ENTER key functionality to any form that has the class print attached to it.
 * @see         Yahoo! YUI - http://developer.yahoo.com/yui/dom/
 */
function assignSubmitFormOnEnter(cls) {
	if(cls) { var cl = cls; } else { var cl = 'onenterkey'; }
	var f = YAHOO.util.Dom.getElementsByClassName(cl,'form');
	for (i=0;i<f.length;i++){
		//f[i].onkeypress = function(){ return submitFormOnEnter(this,event); };
		//alert("Found one " + f[i])
	}
	return false;
}
/**
 * Adds on ENTER key functionality to any form that has the class print attached to it.
  * @see         Yahoo! YUI - http://developer.yahoo.com/yui/dom/
 */
function submitFormOnEnter(el,ev) {
	//alert('Submit form on ENTER ' + el.id);
	var keycode;
	if (window.event) {
		keycode = window.event.keyCode;
	} else if (ev) {
		keycode = ev.which;
	} else {
		return true;
	}
	if (keycode == 13) {
	   el.submit();
	   return false;
	} else {
	   	return true;
	}
}

/* HOME PAGE FUNCTIONS ***************************************************************/
/**
 * Sets the button events on the page as well as sets classes for the DIV's
 * in the Most Commented/Most Recommended
 * @see         Yahoo! YUI - http://developer.yahoo.com/yui/dom/
 */
function setCommentedRecommendedTabsHome() {
	// Set Classes
	YAHOO.util.Dom.replaceClass('commented-div', 'block', 'none');
	YAHOO.util.Dom.replaceClass('recommended-div', 'block', 'block');
	YAHOO.util.Dom.addClass('comment-recommend-nav', 'recommended-nav');
	// Set Events
	YAHOO.util.Event.addListener('commented-tab', "click", setCommentedBTN);
	YAHOO.util.Event.addListener('recommended-tab', "click", setRecommendedBTN);
}

/**
 * Swaps classes with the Most Commented/Most Recommended DIVs
 * @see         Yahoo! YUI - http://developer.yahoo.com/yui/dom/
 */
function setCommentedBTN(e) {
	// Checks to see is the DIV is set first. If it is it skips.
	if(!YAHOO.util.Dom.hasClass('commented-div', 'block')) 	{
		// Swaps Classes 'none' and 'block' are class name in the 'global.css'
		YAHOO.util.Dom.replaceClass('commented-div', 'none', 'block');
		YAHOO.util.Dom.replaceClass('recommended-div', 'block', 'none');
		// Swaps the class on this DIV to change the tab selection.
		YAHOO.util.Dom.replaceClass('comment-recommend-nav', 'recommended-nav', 'commented-nav');
	}
	return false;
}

/**
 *  Swaps classes with the Most Commented/Most Recommended DIVs
 * @see         Yahoo! YUI - http://developer.yahoo.com/yui/dom/
 */
function setRecommendedBTN(e) {
	// Checks to see is the DIV is set first. If it is it skips.
	if(!YAHOO.util.Dom.hasClass('recommended-div', 'block')) {
		// Swaps Classes 'none' and 'block' are class name in the 'global.css'
		YAHOO.util.Dom.replaceClass('commented-div', 'block', 'none');
		YAHOO.util.Dom.replaceClass('recommended-div', 'none', 'block');
		// Swaps the class on this DIV to change the tab selection.
		YAHOO.util.Dom.replaceClass('comment-recommend-nav', 'commented-nav', 'recommended-nav');
	}
	return false;
}
/**
 *
 * @author      Resource Interactive
 * @param		el - The HTML element ID to assign the event too.
 * @param		func - The function to be assigned to the event.
 * @see         Yahoo! YUI - http://developer.yahoo.com/yui/event/
 */
function setAjaxOverlayLink(el,func) {
	YAHOO.util.Event.addListener(el, "click", func);return false;
	}

function setAllAjaxPanelsOff() {
	var panels = YAHOO.util.Dom.getElementsByClassName('ajax','div');
	for(i=0;i<=panels.length;i++) {
		if(YAHOO.util.Dom.hasClass(panels[i] ,'block'))	{
			YAHOO.util.Dom.replaceClass(panels[i], 'block', 'none');
		}
	}
}


/* The following follow the YUI model for popup overlays.
 * Assigns the Yahoo Widget Overlay javascript to the HTML in the page
 * and assign events to the buttons. ( Like the close and submit buttons)
 * @see         Yahoo! YUI - http://developer.yahoo.com/yui/dom/
 * @see         Yahoo! YUI - http://developer.yahoo.com/yui/event/
 * @see         Yahoo! YUI - http://developer.yahoo.com/yui/container/ */
 
function setAjaxOverlayLogin() {
	var nm = 'login';
	var ajx = String(nm + '_ajax');
	var cls = String(nm + '_close');
	var sbt = String(nm + '_submit');
	var rgn = String('registernow_link');
	var fpw = String('login_forgotpasword_link')
	var panel = new YAHOO.widget.Overlay(ajx,{fixedcenter:true});
	YAHOO.util.Event.addListener(cls, "click", loginHide);
	YAHOO.util.Event.addListener(sbt, "click", loginHide);
	YAHOO.util.Event.addListener(rgn, "click", loginHideRegistrationShow);
	YAHOO.util.Event.addListener(fpw, "click", loginHideForgotPasswordShow);
	panel.render();
}
function loginShow() {setAllAjaxPanelsOff();YAHOO.util.Dom.replaceClass('login_ajax', 'none', 'block');setAjaxOverlayLogin();return false;}
function loginHide() {YAHOO.util.Dom.replaceClass('login_ajax', 'block', 'none');return false;}

function setAjaxOverlayForgotPassword() {
	var nm = 'forgotpassword';
	var ajx = String(nm + '_ajax');
	var cls = String(nm + '_close');
	var sbt = String(nm + '_submit');
	var panel = new YAHOO.widget.Overlay(ajx,{fixedcenter:true});
	YAHOO.util.Event.addListener(cls, "click", forgotpasswordHide);
	YAHOO.util.Event.addListener(sbt, "click", forgotpasswordHide);
	panel.render();
}
function forgotpasswordShow() {setAllAjaxPanelsOff();YAHOO.util.Dom.replaceClass('forgotpassword_ajax', 'none', 'block');setAjaxOverlayForgotPassword();return false;}
function forgotpasswordHide() {YAHOO.util.Dom.replaceClass('forgotpassword_ajax', 'block', 'none');return false;}

function setAjaxOverlayCoupon() {
	var nm = 'coupon';
	var ajx = String(nm + '_ajax');
	var cls = String(nm + '_close');
	var lgn = String('login_link');
	var panel = new YAHOO.widget.Overlay(ajx,{fixedcenter:true});
	YAHOO.util.Event.addListener(cls, "click", couponHide);
	YAHOO.util.Event.addListener(lgn, "click", couponHideLoginShow);
	panel.render();
}
function couponShow() {setAllAjaxPanelsOff();YAHOO.util.Dom.replaceClass('coupon_ajax', 'none', 'block');setAjaxOverlayCoupon();return false;};
function couponHide() {YAHOO.util.Dom.replaceClass('coupon_ajax', 'block', 'none'); return false;};

function loginHideForgotPasswordShow() {
	loginHide();
	forgotpasswordShow();
	return false;
}
function couponHideLoginShow() {
	couponHide();
	loginShow();
	return false;
};


function setAjaxOverlayMustBeLoggedIn() {
	var nm = 'mustbeloggedin';
	var ajx = String(nm + '_ajax');
	var cls = String(nm + '_close');
	var ntk = String('mustbeloggedin_nothanks_close');
	var rgs = String('mustbeloggedin_register_link');
	var lgi = String('mustbeloggedin_login_link');
	var panel = new YAHOO.widget.Overlay(ajx,{fixedcenter:true});
	YAHOO.util.Event.addListener(cls, "click", mustbeloggedinHide);
	YAHOO.util.Event.addListener(ntk, "click", mustbeloggedinHide);
	//YAHOO.util.Event.addListener(rgs, "click", loginHideRegistrationShow);
	//YAHOO.util.Event.addListener(rgn, "click", loginHideRegistrationShow);
	panel.render();
}
function mustbeloggedinShow() {setAllAjaxPanelsOff();YAHOO.util.Dom.replaceClass('mustbeloggedin_ajax', 'none', 'block');setAjaxOverlayMustBeLoggedIn();return false;};
function mustbeloggedinHide() {YAHOO.util.Dom.replaceClass('mustbeloggedin_ajax', 'block', 'none'); return false;};

function setAjaxOverlayMySupplylist() {
	var nm = 'mysupplylist';
	var ajx = String(nm + '_ajax');
	var cls = String(nm + '_close');
	var panel = new YAHOO.widget.Overlay(ajx,{fixedcenter:true,zIndex:9999});
	YAHOO.util.Event.addListener(cls, "click", mysupplylistHide);
	panel.render();
}
function mysupplylistShow() {setAllAjaxPanelsOff();YAHOO.util.Dom.replaceClass('mysupplylist_ajax', 'none', 'block');setAjaxOverlayMySupplylist();return false;};
function mysupplylistHide() {YAHOO.util.Dom.replaceClass('mysupplylist_ajax', 'block', 'none'); return false;};

function setAjaxOverlayProfileUpdated() {
	var nm = 'profileupdated';
	var ajx = String(nm + '_ajax');
	var cls = String(nm + '_close');
	var panel = new YAHOO.widget.Overlay(ajx,{fixedcenter:true});
	YAHOO.util.Event.addListener(cls, "click", profileupdatedHide);
	panel.render();
}
function profileupdatedShow() {setAllAjaxPanelsOff();YAHOO.util.Dom.replaceClass('profileupdated_ajax', 'none', 'block');setAjaxOverlayProfileUpdated();return false;};
function profileupdatedHide() {YAHOO.util.Dom.replaceClass('profileupdated_ajax', 'block', 'none'); return false;};

function setAjaxOverlayEmailConfirm() {
	var nm = 'emailconfirm';
	var ajx = String(nm + '_ajax');
	var cls = String(nm + '_close');
	var panel = new YAHOO.widget.Overlay(ajx,{fixedcenter:true});
	YAHOO.util.Event.addListener(cls, "click", emailconfirmHide);
	panel.render();
}
//
function emailconfirmShow() {setAllAjaxPanelsOff();YAHOO.util.Dom.replaceClass('emailconfirm_ajax', 'none', 'block');setAjaxOverlayEmailConfirm();return false;};
function emailconfirmHide() {YAHOO.util.Dom.replaceClass('emailconfirm_ajax', 'block', 'none'); return false;};

function setAjaxOverlayEmailToFriend() {
	var nm = 'emailtofriend';
	var ajx = String(nm + '_ajax');
	var cls = String(nm + '_close');
	var panel = new YAHOO.widget.Overlay(ajx,{fixedcenter:true});
	YAHOO.util.Event.addListener(cls, "click", emailtofriendHide);
	panel.render();
}

function emailtofriendShow() {
    setAllAjaxPanelsOff();
    YAHOO.util.Dom.replaceClass('emailtofriend_ajax', 'none', 'block');
    setAjaxOverlayEmailToFriend();
    return false;
}

function emailtofriendHide() {
    YAHOO.util.Dom.replaceClass('emailtofriend_ajax', 'block', 'none');
    return false;
}

function setAjaxOverlayReturningUser() {
	var nm = 'returninguser';
	var ajx = String(nm + '_ajax');
	var cls = String(nm + '_close');
	var uyp = String('updateyourprofile_close');
	var panel = new YAHOO.widget.Overlay(ajx,{fixedcenter:true});
	YAHOO.util.Event.addListener(cls, "click", returningUserHide);
	YAHOO.util.Event.addListener(uyp, "click", returningUserHide);
	panel.render();
}
function returningUserShow() {;setAllAjaxPanelsOff();YAHOO.util.Dom.replaceClass('returninguser_ajax', 'none', 'block');setAjaxOverlayReturningUser();return false;};
function returningUserHide() {YAHOO.util.Dom.replaceClass('returninguser_ajax', 'block', 'none'); return false;};

function setAjaxOverlaySendToFriendThankYou() {
	var nm = 'sendtofriendthankyou';
	var ajx = String(nm + '_ajax');
	var cls = String(nm + '_close');
	var panel = new YAHOO.widget.Overlay(ajx,{fixedcenter:true});
	YAHOO.util.Event.addListener(cls, "click", sendToFriendThankYouHide);
	panel.render();
}
function sendToFriendThankYouShow() {setAllAjaxPanelsOff();YAHOO.util.Dom.replaceClass('sendtofriendthankyou_ajax', 'none', 'block');setAjaxOverlaySendToFriendThankYou();return false;};
function sendToFriendThankYouHide() {YAHOO.util.Dom.replaceClass('sendtofriendthankyou_ajax', 'block', 'none'); return false;};

function setAjaxOverlayDisplayTermsNConditionsShow() {
	var nm = 'displaytermsnconditions';
	var ajx = String(nm + '_ajax');
	var cls = String(nm + '_close');
	var panel = new YAHOO.widget.Overlay(ajx,{fixedcenter:true});
	YAHOO.util.Event.addListener(cls, "click", displayTermsNConditionsHide);
	panel.render();
}
function displayTermsNConditionsShow() {setAllAjaxPanelsOff();YAHOO.util.Dom.replaceClass('displaytermsnconditions_ajax', 'none', 'block');setAjaxOverlayDisplayTermsNConditionsShow();return false;};
function displayTermsNConditionsHide() {YAHOO.util.Dom.replaceClass('displaytermsnconditions_ajax', 'block', 'none'); return false;};

function SubCheckboxes(par, chi, mas, con, cls) {
	if(cls != undefined) {
		this.cn = cls;
	} else {
		this.cn = 'checkbox';
	}
	this.p = document.getElementById(par);
	this.c = YAHOO.util.Dom.getElementsByClassName(chi,'input');
	this.m = document.getElementById(mas);
	this.n = YAHOO.util.Dom.getElementsByClassName(this.cn,'input',con);
	YAHOO.util.Event.addListener(this.m, "click", this.isSubscribed, this);
	this.setSubCheckboxes();
	//alert(chi + ' : ' + this.c.length)
}
SubCheckboxes.prototype.setSubCheckboxes = function() {
	YAHOO.util.Event.addListener(this.p, "click", this.setChildren, this);
	for (i=0;i<this.c.length;i++){
		YAHOO.util.Event.addListener(this.c[i], "click", this.resetParent, this);
	}
}

SubCheckboxes.prototype.setChildren = function(e,obj) {
	if(obj.c.length != undefined && obj.c.length != null) {
		if(obj.p.checked == true) {
			for (i=0;i<obj.c.length;i++){
				obj.c[i].checked = true;
			}
		} else {
			for (i=0;i<obj.c.length;i++) {
				obj.c[i].checked = false;
			}
		}
	}
	obj.m.checked = true;
	//alert('setChildren : ');
}
SubCheckboxes.prototype.resetChildren = function(e,obj) {
	if(obj.c.length != undefined && obj.c.length != null) {
		for (i=0;i<obj.c.length;i++) {
			obj.c[i].checked = false;
		}
	}
	//alert('resetChildren : ');
}

SubCheckboxes.prototype.setParent = function(e,obj) {
	if(obj.p != undefined && obj.p != null) {
		var idSet = false;
		for (i=0;i<obj.c.length;i++){
			if(obj.c[i].checked == true) {
				idSet = true;
			}
		}
		if(idSet == true) {
			obj.p.checked = true;
		} else {
			obj.p.checked = false;
		}
	}
	if(obj.m != undefined && obj.m != null) {
		obj.m.checked = true;
	}
	//alert('setParent : ');
}
SubCheckboxes.prototype.resetParent = function(e,obj) {
	if(obj.p != undefined && obj.p != null) {
		obj.p.checked = true;
	}
	if(obj.m != undefined && obj.m != null) {
		obj.m.checked = true;
	}
	//alert('resetParent : ' + obj.p.checked);
}

SubCheckboxes.prototype.resetContainerInputs = function(e,obj) {
	if(this.n != undefined && this.n != null) {
		for (i=0;i<this.n.length;i++){
			this.n[i].checked = false;
		}
	}
	//alert('resetContainerInputs : ');
}
SubCheckboxes.prototype.isSubscribed = function(e,obj) {
	if (obj.m.checked == true) {

	} else {
		obj.resetContainerInputs();
	}
	//alert('isSubscribed : ');
}

function RadioButtons(rad, grp, mas, cls) {
	if(cls != undefined) {
		this.cn = cls;
	} else {
		this.cn = 'checkbox';
	}
	this.r = YAHOO.util.Dom.getElementsByClassName(rad,'input',grp);
	this.m = document.getElementById(mas);
	this.initRadioButtons();
	//alert('initRadioButtons : ');
}
RadioButtons.prototype.initRadioButtons = function() {
	YAHOO.util.Event.addListener(this.m, "click", this.resetRadioButton, this);
	for (i=0;i<this.r.length;i++) {
		YAHOO.util.Event.addListener(this.r[i], "click", this.setParent, this);
	}
	//alert('RadioButtons : ');
}
RadioButtons.prototype.setParent= function(e,obj) {
	if(obj.m != undefined && obj.m != null) {
			obj.m.checked = true;
	}
	obj.m.checked = true;
	//alert('setParent : ');
}
RadioButtons.prototype.resetRadioButton = function(e,obj) {
	if(obj.r.length != undefined && obj.r.length != null) {
		for (i=0;i<obj.r.length;i++){
			obj.r[i].checked = false;
		}
	}
	//alert('resetRadioButton : ');
}

function qformLocateRetailerForm() {
	// initialize the qForm object
	objForm = new qForm("locateretailerform");
	// Zip
	objForm.postal.required = true;
	objForm.postal.description = "Zip";
}
function qformRegistrationForm(formName) {
	var isPasswordRequired = true;
	if (window.disablePasswordRequired && disablePasswordRequired) {
		isPasswordRequired = false;
	}
	var isTermsCondsRequired = true;
	if (window.disableTermsCondsRequired && disableTermsCondsRequired) {
		isTermsCondsRequired = false;
	}
	// initialize the qForm object
	objForm = new qForm(formName);
	// First Name
	objForm.firstname.required = true;
	objForm.firstname.description = "First Name";
	// Last Name
	objForm.lastname.required = true;
	objForm.lastname.description = "Last Name";
	// Display Name
	objForm.displayname.required = true;
	objForm.displayname.description = "Display Name";
	// Password
	objForm.password.required = isPasswordRequired;
	objForm.password.description = "Password";
	//Confirm Password
	objForm.confirmpassword.required = isPasswordRequired;
	objForm.confirmpassword.description = "Confirm Password";
	// Email
	objForm.email.required = true;
	objForm.email.description = "Email";
	// Confrim Email
	objForm.confirmemail.required = true;
	objForm.confirmemail.description = "Confirm Email";
	// Zip
	objForm.postal.required = true;
	objForm.postal.description = "Zip";
	if (isTermsCondsRequired) {
		// Terms & Conditions
		objForm.termsconditions.required = true;
		objForm.termsconditions.description = "Terms & Conditions";
	}
}
function qformRegistrationLogInForm() {
	// initialize the qForm object
	objForm = new qForm("registrationloginform");
	// make these fields required
	objForm.required("email, password");
	// Email
	objForm.email.required = true;
	objForm.email.description = "Email";
	// Password
	objForm.password.required = true;
	objForm.password.description = "Password";
}
function qformRegistrationForgotPasswordForm() {
	// initialize the qForm object
	objForm = new qForm("registrationforgotpasswordform");
	// make these fields required
	objForm.required("email, confirmemail");
	// Email
	objForm.email.required = true;
	objForm.email.description = "Email";
	// EmailConfirm
	objForm.confirmemail.required = true;
	objForm.confirmemail.description = "Email Confirmation";
}

function qformNewSearch() {
	// initialize the qForm object
	objForm = new qForm("newsearchcriteria");
	// make these fields required
	objForm.required("search");
	objForm.search.description = "Search";
}

function PopUpWindow() {
	if ( !document.getElementsByTagName && !document.getElementById && 
		 !document.createTextNode )
		return false;
	// Set the number of list items
	var newWindow;
	var openItems;
	var closeItems;
	var _tag = 'a';
	var _closeclassname = 'closepopup';
	var _classname = 'popup';
	var _width = 350;
	var _height = 450;
	var _top = 0;
	var _left = 0;
	var _toolbar = 0;
	var _status = 0;
	var _scrollbars = 0;
	var _resizable = 0;
	var _directories = 0;
	var _menubar = 0;
	var _location = 0;
	/*=====================================================*/
	// Attach Functions to this Object to create public methods
	this.inti = inti;
	this.setClassName = setClassName;
	this.getClassName = getClassName;
	this.setWidth = setWidth;
	this.getWidth = getWidth;
	this.setHeight = setHeight;
	this.getHeight = getHeight;
	this.setTop = setTop;
	this.getTop = getTop;
	this.setLeft = setLeft;
	this.getLeft = getLeft;
	this.setToolBar = setToolBar;
	this.getToolBar = getToolBar;
	this.setScrollBars = setScrollBars;
	this.getScrollBars = getScrollBars;
	this.setResizable = setResizable;
	this.getResizable = getResizable;
	this.setDirectories = setDirectories;
	this.getDirectories = getDirectories;
	this.setMenuBar = setMenuBar;
	this.getMenuBar = getMenuBar;
	this.setLocation = setLocation;
	this.getLocation = getLocation;
	/*=====================================================*/
	// Functions like a constructor
	function main() {
		// Get the HTML object
		openItems = YAHOO.util.Dom.getElementsByClassName(_classname,_tag);
		for(i=0;openItems.length>i;i++)
		{
			intiPopUpButtons(i);
		}
		//alert('PopUpWindow main : ' + items.length);
	}
	/*=====================================================*/
	// Assign Event calls to the next and back button
	function intiPopUpButtons(n) {
		//alert('PopUpWindow intiPopUpButtons : ' + n);
		openItems[n].onclick = function() { popUpCall(this.href);return false; }
	}
	//
	function intiCloseButtons() {
	}
	//
	function closeWindow() {
		if (newWindow.opener) {newWindow.close()};
	}
	//
	function popUpCall(url) {
		// String for the window command
		var feature = "";
		// Put the Value in and array to loop through
		var features = new Array();
		features['width'] = _width;
		features['height'] = _height;
		features['top'] = _top;
		features['left'] = _left;
		features['toolbar'] = _toolbar;
		features['status'] = _status;
		features['scrollbars'] = _scrollbars;
		features['resizable'] = _resizable;
		features['directories'] = _directories;
		features['menubar'] = _menubar;
		features['location'] = _location;
		// Build the String
		for (i in features) {
			if(features[i].toString() != 'undefined') {
				//alert('Pop up i:' + i + ' feature: ' + features[i]);
				feature += i + "=" +features[i] +",";
			}
		}
		feature = feature.substring(0,feature.lastIndexOf(","));
		//alert('feature ' + feature);
		// Open the new window
		newWindow = window.open(url, _classname, feature);
		setFocus();
	}
	//
	function setFocus() {
		if (newWindow.focus) { newWindow.focus() };
	}
	// Run the animation
	function inti() {
		main();
	}
	/*=====================================================*/
	// Set & Get Methods
	// Sets and Returns the Tag value
	function setTag(s) {
		_tag = String(s);
	}
	function getTag() {
		return _tag;
	}
	// Sets and Returns the class name value
	function setClassName(s) {
		_classname = String(s);
	}
	function getClassName() {
		return _classname;
	}
	// Sets and Returns the Width value
	function setWidth(n) {
		_width = Number(n);
	}
	function getWidth() {
		return _width;
	}
	// Sets and Returns the Hieght value
	function setHeight(n) {
		_height = Number(n);
	}
	function getHeight() {
		return _height;
	}
	// Sets and Returns the top value
	function setTop(n) {
		_top = Number(n);
	}
	function getTop() {
		return _top;
	}
	// Sets and Returns the left value
	function setLeft(n) {
		_left = Number(n);
	}
	function getLeft() {
		return _left;
	}
	// Sets and Returns the Toolbar value
	function setToolBar(b) {
		_toolbar = (Boolean(b))? Number(0):Number(1);
	}
	function getToolBar() {
		return (_toolbar == 0)? 'true':'false';
	}
	// Sets and Returns the status value
	function setStatus(b) {
		_status = (Boolean(b))? Number(0):Number(1);
	}
	function getStatus() {
		return (_status == 0)? 'true':'false';
	}
	// Sets and Returns the Scrollbars value
	function setScrollBars(b) {
		_scrollbars = (Boolean(b))? Number(1):Number(0);
	}
	function getScrollBars() {
		return (_scrollbars == 0)? 'true':'false';
	}
	// Sets and Returns the Resizable value
	function setResizable(b) {
		_resizable = (Boolean(b))? Number(0):Number(1);
	}
	function getResizable() {
		return (_resizable == 0)? 'true':'false';
	}
	// Sets and Returns the Directories value
	function setDirectories(b) {
		_directories = (Boolean(b))? Number(0):Number(1);
	}
	function getDirectories() {
		return (_directories == 0)? 'true':'false';
	}
	// Sets and Returns the Menubar value
	function setMenuBar(b) {
		_menubar = (Boolean(b))? Number(0):Number(1);
	}
	function getMenuBar() {
		return (_menubar == 0)? 'true':'false';
	}
	// Sets and Returns the Location value
	function setLocation(b) {
		_location = (Boolean(b))? Number(0):Number(1);
	}
	function getLocation() {
		return (_location == 0)? 'true':'false';
	}
}

function setRetailLocatorBTN() {
	var xioneticLinks = YAHOO.util.Dom.getElementsByClassName("show-xionetics");
	for ( var i = 0; i < xioneticLinks.length; i++ ) {
		//alert('a');
		YAHOO.util.Event.addListener(xioneticLinks[i], "click", OpenXioneticsWindow);
	}
	//YAHOO.util.Event.addListener('gotostep2', "click", validateRetailLocatorZip);
	var step2 = document.getElementById('gotostep2');
	//step2.onclick = function() {
	//	validateRetailLocatorZip();return false;
//	}

}
function validateRetailLocatorZip() {
	var frm = document.getElementById('locator_form');
	var zip = document.getElementById('postalcode');
	var postalCode = zip.value;
	if(postalCode != undefined && postalCode != '') {
		zip.style.backgroundColor = "white";
		zip.style.color = "black";
		frm.submit();
		return true;
	} else {
		zip.style.backgroundColor = "red";
		zip.style.color = "white";
		alert('Please enter your zip code');
		return false;
	}
}

// DEVELOPER NOTE: The ValidateForXionetics function is already set up to be called 
//		when a user clicks on a link that opens the Xionetics window.
//		You can put any input validation code for the Xionetics form here.
//		The htmlForm var is already set to the Xionetics form's DOM object.
//		If you wish for the Xionetics window to open, simply have ValidateForXionetics 
//		return true. Otherwise, return false.
function ValidateForXionetics( htmlForm ) {
	//Do input validation here.
	var postalCode = htmlForm.postalcode.value;
	if(postalCode != undefined && postalCode != '') {
		htmlForm.postalcode.style.backgroundColor = "white";
		htmlForm.postalcode.style.color = "black";
		return true;
	} else {
		htmlForm.postalcode.style.backgroundColor = "red";
		htmlForm.postalcode.style.color = "white";
		confirm('Please enter your zip code');
		return false;
	}
}
function OpenXioneticsWindow(e) {
	YAHOO.util.Event.preventDefault(e);
//		if (! validateRetailLocatorZip(this.form)) { return; }
//	var postalCode = this.form.postalcode.value;
	var postalCode;
	var zip = document.getElementById('postalcode');
	if (zip != null) postalCode = zip.value;

	//NOTE: We assume that ValidateForXionetics has ensured that at least one product was selected!
	var productList = "";
	var products = document.getElementsByName("productid");
	for ( var i = 0, curProduct; i < products.length; i++ ) {
		curProduct = products[i];
		if (curProduct.type == "checkbox" && curProduct.checked) {
			productList = productList + "~" + products[i].value + "~,";
		} else if (curProduct.type == "select-one") {
			productList = productList + curProduct.options[curProduct.selectedIndex].value + ",";
		}
	};
	productList = productList.substr(0, productList.length - 1);
	window.open(
		"http://scotts.findlocation.com/results.aspx?search_param=R50&postalcode=" + postalCode + "\&productlist_orcontains=" + productList,
		"retailersWindow",
		"status=0, toolbar=0, location=0, menubar=0, directories=0, scrollbars=1, resizable=1, width=675, height=666, personalbar=0"
	);
}
function PrepopulateXioneticsSearch() {
	// NOTE: We could skip straight to the form by using 
	// 		document.getElementById("BridgerForm").
	//	However, since we have no guarantee that the form will always have 
	//	an id of "BridgerForm", we'll try not to rely on that.
	var forms = YAHOO.util.Dom.getElementsBy(
		function (elem) { if (elem.nodeName != "FORM") { return false; } return true; }, "", document.getElementById("body")
	);

	if (! forms) { return; }
	if ( forms.length < 1) { return; }
	var searchForm = forms[0];
	//alert("Found search form! " + searchForm.nodeName);

	/* WARNING:
	 * The form names are case-sensitive. If Xionetics does not remain consistent with
	 * the capitalization of the form names, you may have to do something like this
	 * for each form name to get the DOM object associated with it:
	 * var productlist = YAHOO.util.Dom.getElementsBy(
	 *   function (elem) { if (elem.nodeName.toLowerCase() != "productlist_orcontains") { return false; } return true; }, "", document.getElementById("body")
	 * );
	 */
	var inSearch_Param = getUrlParamByName("search_param");
	searchForm.Search_Param.value = inSearch_Param.toUpperCase();
	var inPostalCode = getUrlParamByName("postalcode");
	searchForm.postalcode.value = inPostalCode.toUpperCase();
	var inCity = getUrlParamByName("city");
	searchForm.city.value = inCity;
	var inState = getUrlParamByName("state");
	searchForm.state.value = inState;
	var inProducts = getUrlParamByName("productlist_orcontains");
	if ( inProducts && inProducts != null && 
		 inProducts != undefined && inProducts != "" ) {
	   searchForm.productlist_orcontains.value = inProducts.replace(/~/g, "");
	}
}

function getAllUrlParams() {
	var url = window.location.href;
	params = url.substring(url.indexOf('?'), url.length);
	return params;
}
function removeStringTildas(str) {
	var param = str.replace(/~/g, "");
	return param;
}
function getUrlParamByName(param) {
	param = param.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
	var regexS = "[\\?&]"+param+"=([^&#]*)";
	var regex = new RegExp( regexS );
	var results = regex.exec( window.location.href );
	if( results == null ) {
		return "";
	}
	else {
		return results[1];
	}
}
function URLDecode(psEncodeString) {
  // Create a regular expression to search all +s in the string
  var lsRegExp = /\+/g;
  // Return the decoded string
  return unescape(String(psEncodeString).replace(lsRegExp, " "));
}

function isShowAjax() {
	var jumpto = String(getUrlParamByName('ajaxpanel'));
	switch (jumpto)	{
	case "login":
		loginShow();
		break;
	case "newslettersignup":
		newslettersignupShow();
		break;
	case "forgotpassword":
		forgotpasswordShow();
		break;
	case "expressregistration":
		expressregistrationShow(false);
		break;
	case "expressregproduct":
		expressregistrationShow(true);
		break;
	case "profileupdated":
		profileupdatedShow();
		break;
	case "emailtofriend":
		emailtofriendShow();
		break;
	case "mustbeloggedin":
		mustbeloggedinShow();
		break;
	case "emailconfirm":
		emailconfirmShow();
		break;
	case "mysupplylist":
		mysupplylistShow();
		break;
	case "coupon":
		couponShow();
		break;
	}
}

function removeAjaxPanelParam() {
	var panel = URLDecode(getUrlParamByName('ajaxpanel'));
	if(panel != undefined) {
		var url = window.location.href;
		newURL = url.replace("&ajaxpanel="+panel, "");
		return newURL;
	}
}

function assignSelectBTNS() {
	var selectall = YAHOO.util.Dom.getElementsByClassName('selectall','a');
	var unselectall = YAHOO.util.Dom.getElementsByClassName('unselectall','a');
	for (i=0; i < selectall.length; i++) {
		selectall[i].onclick = function() {
			selectAllInputs('product');
		};
	}
	for (i=0; i < unselectall.length; i++) {
		unselectall[i].onclick = 
			function() {
				unSelectAllInputs('product');
			};
	}
	return false;
}

function selectAllInputs(cls) {
	var check = YAHOO.util.Dom.getElementsByClassName(cls,'input');
	for (i=0; i < check.length; i++){
		check[i].checked = true;
	}
	return false;
}
function unSelectAllInputs(cls) {
	var check = YAHOO.util.Dom.getElementsByClassName(cls,'input');
	for (i=0;i<check.length;i++){
		check[i].checked = false;
	}
	return false;
}

function onChangeEmailTypeSelect() {
	var typeSelect = document.getElementById('reqType'); 
	var cls = typeSelect.value;
	switch (cls) {
		case 'prodinfo': // re-show help/helpwith choices with Q option selected	
			var divs = YAHOO.util.Dom.getElementsByClassName('help','div');
			YAHOO.util.Dom.removeClass(divs[0],'none');
			var cls = document.getElementById('help');
			cls.options[0].selected = true  // force 1st option to be selected
			// resetAllDivs();  // may happen as secondary effect of prior line
			break;
		default:  // hide help/helpwith choices
			resetAllDivs();
			var divs = YAHOO.util.Dom.getElementsByClassName('help','div');
			for (i=0;i<divs.length;i++) {
				if(!YAHOO.util.Dom.hasClass(divs[i],'none')) {
					YAHOO.util.Dom.addClass(divs[i],'none');
				}
			}
			break;
	}
}
function onChangeEmailHelpSelect() {
	var hlp = document.getElementById('help');
	var cls = hlp.value;
	var divs = YAHOO.util.Dom.getElementsByClassName(cls,'div');
	switch (cls) {
		case 'dogdamage':
			resetAllDivs();
			break;
		case 'spreaders':
			resetAllDivs();
			break;
		case 'tools':
			resetAllDivs();
			break;
		case 'soilsmulches':
			resetAllDivs();
			break;
		case 'lawnprograms':
			resetAllDivs();
			break;
		case 'scottsproducts':
			resetAllDivs();
			break;
		default:
			resetAllDivs();
			YAHOO.util.Dom.removeClass(divs[0],'none');
			break;
	}
}
function resetAllDivs() {
	var divs = YAHOO.util.Dom.getElementsByClassName('helpwith','div');
	for (i=0;i<divs.length;i++) {
		if(!YAHOO.util.Dom.hasClass(divs[i],'none')) {
			YAHOO.util.Dom.addClass(divs[i],'none');
		}
	}
	return true;
}
function assignEmailUsBTN() {
	var helpSelect = document.getElementById('help');
	helpSelect.onchange = onChangeEmailHelpSelect;
	var typeSelect = document.getElementById('reqType'); 
	typeSelect.onchange = onChangeEmailTypeSelect;
	onChangeEmailTypeSelect();
}

function assignShowFiles() {
	var a = YAHOO.util.Dom.getElementsByClassName('showfiles','a');
	for (i=0; i < a.length; i++) {
		a[i].onclick = function(){ hideShowFiles(this.parentNode.parentNode); this.blur(); return false;}
	}
	return false;
}
function hideShowFiles(el) {
	if(YAHOO.util.Dom.hasClass(el, 'selected')) {
		YAHOO.util.Dom.replaceClass(el, 'selected', 'unselected');
	} else {
		YAHOO.util.Dom.replaceClass(el, 'unselected', 'selected');
	}
}


function printEmailFriendOnloadFunctions() {
	// Addes Print functions
	assignPrintButtons();
	// Assigns the functionality to the Profile Update AJAX popup
	setAjaxOverlayEmailToFriend();
	// Assigns show event to a ANCHOR
	setAjaxOverlayLink('emailtofriend_link',emailtofriendShow);
	setAjaxOverlayLink('emailtofriendpost_link',emailtofriendShow);
}
YAHOO.util.Event.addListener(window, "load", printEmailFriendOnloadFunctions);

function pageWidthHeight() {
	if( typeof( window.innerWidth ) == 'number' ) {
		//Non-IE
		myWidth = window.innerWidth;
		myHeight = window.innerHeight;
	} else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
		//IE 6+ in 'standards compliant mode'
		myWidth = document.documentElement.clientWidth;
		myHeight = document.documentElement.clientHeight;
	} else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
		//IE 4 compatible
		myWidth = document.body.clientWidth;
		myHeight = document.body.clientHeight;
	}
	return new Array(myWidth,myHeight);
}

function assignRollOversEnlargeThumbs(el,imgon,imgoff,imgthb) {
	if(imgthb != undefined)	{
		var obj = {id:el,on:imgon,off:imgoff,thumb:imgthb};
		var div = document.getElementById('enlargeimagediv');
		var img = document.createElement('IMG');
		img.setAttribute('src', imgthb);
		img.setAttribute('id', String(el)+'_thumb');
		img.setAttribute('class', 'none');
		img.setAttribute('className', 'none');
		div.appendChild(img);
	} else {
		var obj = {id:el,on:imgon,off:imgoff};
	}
	YAHOO.util.Event.addListener(el, "mouseover", 
		function() {
			//alert(obj.on);
			this.src = obj.on;
			if(obj.thumb){
				var div = document.getElementById('enlargeimagediv');
				var img = document.getElementById(String(obj.id)+'_thumb');
				YAHOO.util.Dom.replaceClass(div, 'none', 'block');
				YAHOO.util.Dom.replaceClass(img, 'none', 'block');
				var screenWH = pageWidthHeight();
				var xy = YAHOO.util.Dom.getXY(this);
				if((xy[0] + 100) + 267 > screenWH[0]) {
					var imageX = xy[0] - (235);
				} else {
					var imageX = xy[0] + 100;
				}
				if((xy[1] + 50) + 188 > screenWH[1]) {
					var imageY = xy[1] - (170);
				} else {
					var imageY = xy[1] + 50;
				}
				YAHOO.util.Dom.setXY(div, [imageX,imageY], true);
			}
		}, obj);
	YAHOO.util.Event.addListener(el, "mouseout", 
		function() {
			//alert(obj.off);
			this.src = obj.off;
			if(obj.thumb) {
				//alert('thumb');
				var div = document.getElementById('enlargeimagediv');
				var img = document.getElementById(el+'_thumb');
				YAHOO.util.Dom.replaceClass(div, 'block', 'none');
				YAHOO.util.Dom.replaceClass(img, 'block', 'none');
			}
		} );
}

