try { document.execCommand("BackgroundImageCache", false, true); } catch(e) {}

Element.implement({
	hidden : function() {
		try {
			var hidden = this.getStyle('display') == 'none' || this.getStyle('visibility') == 'hidden' || this.getStyle('opacity') == 0 || this.hasClass('hide');
		} catch(e) { return true; }
		return hidden;
	},
	toggle : function() {
		return this[this.hidden() ? 'show' : 'hide']();
	},
	hide : function(display) {
		return this.addClass('hide');
	},
	show : function(display) {
		return this.removeClass('hide');
	}
});

String.implement({
	underscore: function(){
		return this.replace(/\s+/g, '_');
	},
	replaceSymbols: function(symbols) {
	    var string = escape(this);
	    if (!arguments.callee.RE) arguments.callee.RE = new RegExp('(\\' + symbols.join('|\\') + ')', 'g');
	    string = string.replace(arguments.callee.RE, '');
	    string = string.replace('%26', 'and');
	    
	    return string;
	}
});

var scj = {
	createAccordion: function(accordions) {
		var sliders = accordions.getElements('div[class^=slider]');
		accordions.each(function(accordion) {
			var height = accordion.getChildren().length/2 !== 4 ? 265 + ((4 - accordion.getChildren().length) * 35) : 265;
						
			new Accordion(accordion, 'h3.toggler', 'div.toggled', {
					opacity: false,
					fixedHeight: height,
					onActive: function(toggler, element){	
			            toggler.addClass('open');
			            element.getElement('div[class^=inner]').removeClass('closed');
			            element.getElement('div[class^=inner]').addClass('open');
			            var activateToggled = function() {
				            newScrollbar.delay(100, element, [element, toggler, height]);
			            }
						activateToggled.delay(500);
						
						// Omniture tagging for each accordion header activation
						var togglerText = toggler.innerHTML;
						var linkName = scj.omniture.section ? scj.omniture.section + '_' + togglerText : togglerText;
						var tracking_obj = {};
						if (s.channel && s.channel == 'product') {
						    tracking_obj.events = 'event5';
						    tracking_obj.prop2 = scj.omniture.pageDisplayName;
						    linkName = scj.omniture.pageDisplayName + '_' + togglerText;
						    tracking_obj.eVar3 = linkName;
						}
						if (!scj.omniture.firstTime) scj.omniture.trackLink(tracking_obj, {'linkType': 'o', 'linkName': linkName}, this);
					},
					onBackground: function(toggler, element){
						toggler.removeClass('open');
						element.getElement('div[class^=inner]').removeClass('open');
			            removeScrollbars(element, true);
						element.getElement('div[class^=inner]').addClass('closed');
					}
			});
			
			scj.toggleContent(accordion, {'single': true, 'togglerClass': 'answerToggler', 'toggledClass': 'answer', 'toggledAttribute': 'title', 'maxheight': height});
		});
	},
	fonts: {
		Dakota: {
			src: 'http://www.gladeentuhogar.com/img/glade/ES_16695.swf'
		},
		HelveticaNueExtLght: {
			src: 'http://www.glade.com/fonts/HelveticaNueExtLght.swf'
		},
		HelveticaUltraLight: {
			src: 'http://www.gladeentuhogar.com/img/glade/ES_16694.swf'		
		},
		HelveticaNeue35Thin: {
			src: 'http://www.gladeentuhogar.com/img/glade/ES_16696.swf'		
		},
		HelveticaNeue55Roman: {
			src: 'http://www.gladeentuhogar.com/img/glade/ES_16812.swf'		
		},
		
				
		HelveticaUltraLightTwo: {
			src: 'http://www.gladeentuhogar.com/img/glade/ES_16947.swf'		
		},
		HelveticaNeue55Roman: {
			src: 'http://www.gladeentuhogar.com/img/glade/ES_16812.swf'		
		},
		
		BakervilleRegular: {
		    src: 'http://www.glade.com/fonts/baskervilleurw-reg.swf'
		}		
		
	},
	toggleContent: function(scope, options) {
		if (!scope.getElements('a[class=' + options.togglerClass + ']'))
			return;
		
		var togglers = scope.getElements('a[class=' + options.togglerClass + ']');
			
		togglers.each(function(toggler) {
			var togglerParent = toggler.tagName == 'DIV' ? toggler.getParent().getParent() : toggler.getParent().getParent().getParent();
			var target = toggler.getProperty('href').replace('#', '');
			var toShow = togglerParent.getElement('div[' + options.toggledAttribute + '=' + target + ']');
			toShow.hide();
			toggler.addEvent('click', function(e) {
				e = new Event(e).stop();
				if (options.single) {
					closeOthers(toShow, togglerParent.getElements('div[class=' + options.toggledClass + ']'));
				}
				toShow.toggle();
				if (toShow == togglerParent.getLast()) {
				    togglerParent.scrollTop += 50;
				}
				location.hash = target;
    
     		    removeScrollbars(togglerParent.getParent(), false);
			    newScrollbar.delay(100, togglerParent.getParent(), [togglerParent.getParent(), toggler, options.maxheight]);

			});
		});
		
		function closeOthers(active, group) {
			group.each(function(toggled) {
				if (toggled !== active) {
					toggled.toggle();
				}
			});
		}
	}
};

scj.ScrollBar = new Class({
		scrollBar: new Object(),
		knob: new Object(),
		slider: new Object(),
		scrollOffset: 260,
		step: 0,
		initialize: function(params){
			if(params.scrollBar && params.knob && params.scrollArea && params.maxHeight) {
				this.scrollOffset = params.maxHeight;
				this.scrollBar = params.scrollBar;
				this.scrollBar.setStyles({'height': params.maxHeight});
				this.knob = params.knob;
				var scrollArea = params.scrollArea;
				this.maxHeight = params.maxHeight;
				this.step = params.step || 0;
				if(params.scrollOffset) {
					this.scrollOffset = params.scrollOffset;
				}
	
				var scrollHeight = scrollArea.getCoordinates().height;

				if(scrollHeight >= this.maxHeight - 10) {
				    this.scrollBar.setStyle('display', 'block');
					var slider = new Slider(this.scrollBar, this.knob, {	
						range: [0, scrollArea.offsetHeight - this.scrollOffset + 40],
						steps: (scrollArea.offsetHeight - this.scrollOffset),	
						mode: 'vertical',	
						onChange: function(step){
							scrollArea.style.top = - step + "px";
						}
					}).set(this.step);
				} else {
				    scrollArea.style.top = 0;
					this.hideScrollbar();
				}
			}
		},
		hideScrollbar: function() {
			this.scrollBar.setStyle('display', 'none');
		}
});

scj.omniture = {
    firstTime: true,
    section: '',
    symbols: ['&#174;', '&#8482;', '&copy;', '&trade;', '&reg;', '%AE', '%3F', '%u2122', '&#153;'],
    clear: function() {
    	s = s_gi(s_account);
	    s.events='';
    	s.products='';
    	s.pageName='';
	    s.linkTrackVars = '';
	    s.linkTrackEvents = '';

	    for (i=1; i<51; i++) {
		    s['prop' + i.toString()] = '';
		    s['eVar' + i.toString()] = '';
	    }
	    	    
	    return true;
    },
    format: function(name) {
        return name.underscore().replaceSymbols(scj.omniture.symbols).toLowerCase();
    },
    trackLink: function(obj, options, event) {
	    try {
	        //alert('Obj: ' + obj + '\n' + 'Options: ' + options + '\n' + 'Event: ' + event);
	        var event = event || this;
	        scj.omniture._updateVars(obj);
	        options.linkName = scj.omniture.format(options.linkName);
	        s.linkTrackVars = '';
	        for (key in obj) {
	            s.linkTrackVars += key + ',';
	        }
	        if (obj.events) s.linkTrackEvents = obj.events;
	        s.tl(event,options.linkType, scj.omniture.format(options.linkName), event);
	        s_objectID = '';
	        scj.omniture.clear();
	    } catch (e) {
	    
	    }
    },
    fireTag: function(obj, options) {
	    //alert('Obj: ' + obj + '\n' + 'Options: ' + options);
	    options = options || {};
	    scj.omniture._updateVars(obj, options);
        s_code=s.t();if(s_code)document.write(s_code);
	    scj.omniture.clear();
	    return false;
    },
    _updateVars: function(obj, options) {
	    var options = options || {append: {}};
	    for (key in obj) {
	        if (key == "events") {//s.events shouldn't get escaped because it will convert whitespace and commas to something we don't want
	            s[key] = obj[key];
	        } else {
	            s[key] = options.append[key] ? escape(scj.omniture.section + '_' + scj.omniture.format(obj[key])) : escape(scj.omniture.format(obj[key]));
	        }
	    }
    }
}

scj.randomize = function() {
    var now = new Date;
    var mil1970 = now.getTime();
    var datePlusRandom = mil1970 + "" + Math.floor(Math.random() * 100);
    return "?&r=" + datePlusRandom;
}


function removeScrollbars(holder, hide) {
	holder.getElement("div.knob").removeEvents();
	if (hide) holder.getElement("div.slider").setStyle('display', 'none');
	holder.getElement("div.slider").removeEvents();
}

function newScrollbar(holder, toggler, maxheight) {
    var el = holder.getElement("div[class^=slider]");
    new scj.ScrollBar({
	    scrollBar: el,
	    knob: el.getElement("div[class=knob]"),
	    scrollArea: holder.getElement("div[class=innerWrap]"),
	    maxHeight: maxheight,
	    step: el.getStyle('display') == 'none' ? 0 : toggler.offsetTop
    });
	
}

function initScrollbars(maxHeight) {
		$$('div.slider.advanced').each(function(el, index){
				new scj.ScrollBar({
					 scrollBar: el,
					 knob: el.getElement("div.knob"),
					 scrollArea: el.getParent().getElement("div.innerWrap"),
					 maxHeight: maxHeight
				});
		});
}
		
var TriggerScentOverlay = function (_scentOverlayContentId) {
    scj.overlay['scent'] = new scj['scentOverlay']('http://www.gladeentuhogar.com/img/glade/ES_16621.swf?baseurl=http://www.gladeentuhogar.com/enes/', {'source': 'http://www.gladeentuhogar.com/img/glade/ES_16621.swf?baseurl=http://www.gladeentuhogar.com/enes/', 'type': 'scentOverlay', 'flashVars': '&scentOverlayContentId=' + _scentOverlayContentId});
}

function dummyFunction() {
    alert('this is the dummy function');
}

window.addEvent('domready', function() {	
	$(document.body).addClass(window.Browser.Platform.name + ' ' + window.Browser.Engine.name + ' ' + window.Browser.Engine.name + window.Browser.Engine.version);
	if ($(document.body).getElements('div[class^=accordion ]')) {
		scj.createAccordion($(document.body).getElements('div[class^=accordion ]'));
	}
	
//set up content height if it is smaller than browser height
	var footer_logo = $defined($('footer_logo')) ? $('footer_logo').getHeight() : 0;
	if (window.getHeight() <= window.getHeight() - $('footer').getHeight() - $('header').getHeight() - footer_logo) $('content').setStyle('min-height', window.getHeight() - $('footer').getHeight() - $('header').getHeight() - footer_logo)

//set up all overlay triggers
	$$('.overlayTrigger').each(function(trigger) {
		var eventTrigger = trigger.getProperty('eventTrigger') ? trigger.getProperty('eventTrigger') : 'click';
		var flashVars = trigger.getProperty('flashVars') ? trigger.getProperty('flashVars') : '';
		var source = trigger.getProperty('href') ? trigger.getProperty('href') : trigger.getProperty('source');

		new scj.OverlayLink(trigger, {'type': trigger.getProperty('type'), 'container': trigger.getParent(), 'source': source, 'minheight': 313, 'eventTrigger': eventTrigger, 'flashVars': flashVars});
	});

//set up sifr section rollovers for IE6
    if ($('section')) {
        $('section').getElements('span').each(function(span) {
            span.addEvents({
                'click': function(e) {
                    e = new Event(e).stop();
                    var text = span.get('text');
                    if (this.hasClass('first')) text = 'back_to_' + text;
                    var trackVars = this.get('trackVars') || {};
                    scj.omniture.trackLink(trackVars, {'linkName': text, 'linkType': 'o'}, e);
                 },
                'mouseenter': function(e) {
                    e = new Event(e).stop();
                    if (span.hasClass('first')) {
                        span.addClass('firstover');
                    } else {
                        span.addClass('lastover');
                    }
                 },
                'mouseout': function(e) {
                    e = new Event(e);
                    if (e.target !== this)
                    if (span.hasClass('firstover')) {
                        span.removeClass('firstover');
                    } else {
                        span.removeClass('lastover');
                    }
                 }
            });
        });
    }

//set up click events for Omniture trackLinks
    $$('.trackLink').each(function(link) {
        link.addEvents({
            'click': function(e) {
                var linkType = this.get('target') && this.get('target') == '_blank' ? 'e' : 'o';
                var linkName = this.get('linkName') ? this.get('linkName') : this.get('text');
                var trackVars = this.get('trackVars') ? JSON.decode(this.get('trackVars')) : {};
                scj.omniture.trackLink(trackVars, {'linkName': linkName, 'linkType': linkType}, this);
                e.stopPropagation();
            }
        });
    });

	$$('a[rel=pdp]').each(function(link) {
	    link.addEvent('click', function(e) {
	        scj.omniture.trackLink({'prop2': link.get('text'), 'eVar3': scj.omniture.section + '_' + link.get('text'), 'events': 'event5'}, {'linkType': 'o', 'linkName': 'product_exploration_' + link.get('text')}, e);
	    });
	});
 
//set up click and mouseover events for the offer touts, if they exist within html pages
    if ($('touts_collapsed_holder')) {
        $('touts_collapsed_holder').getParent().open = false;

        if (window.Browser.Engine.name == 'trident' || window.Browser.Engine.name == 'webkit') {
            $('touts_collapsed_holder').getParent().addEvents({
                mouseenter: function(e) {
                    if (window.Browser.Engine.name == 'trident') {
                    	this.open = true;
                    	this.addClass('highindex');
                    }
                },
                mouseout: function(e) {
                    if(!this.open) {
                        this.removeClass('highindex');
                    }
                },
                click: function(e) {
                    if (this.open) {
                        this.open = false;
                        this.removeClass('highindex');
                    } else {
                        this.open = true;
                        this.addClass('highindex');
                    }
                }
            });
        } else {
            $('touts_collapsed_holder').left = $('touts_collapsed_holder').getCoordinates().left + 10;
            $('touts_collapsed_holder').bottom = $('touts_collapsed_holder').getStyle('bottom').toInt();
            
            $('touts_collapsed_holder').parentDim = $('touts_collapsed_holder').getParent().getCoordinates();
            $('touts_collapsed_holder').parentDim.topOffset = $(document.body).hasClass('sitemap') ? -10 : 15;
            $('touts_collapsed_holder').parentDim.height = $('touts_collapsed_holder').parentDim.height - ($('touts_collapsed_holder').getParent().getStyle('padding-top').toInt() + $('touts_collapsed_holder').getParent().getStyle('padding-bottom').toInt());
            $('touts_collapsed_holder').parentDim.width = $('touts_collapsed_holder').parentDim.width - ($('touts_collapsed_holder').getParent().getStyle('padding-left').toInt() + $('touts_collapsed_holder').getParent().getStyle('padding-right').toInt());
            $('touts_collapsed_holder').parentDim.top = $('touts_collapsed_holder').parentDim.top + $('touts_collapsed_holder').parentDim.topOffset;
            $('touts_collapsed_holder').parentDim.bottom = $('touts_collapsed_holder').parentDim.top + $('touts_collapsed_holder').parentDim.height;
            $('touts_collapsed_holder').parentDim.right = $('touts_collapsed_holder').parentDim.right - ($('touts_collapsed_holder').getStyle('left').toInt() + 20);
        
            $('touts_collapsed_holder').getParent().addEvents({
                mouseout: function(e) {
                    if (!this.open) this.removeClass('highindex');
                },
                click: function(e) {
                    e.page.y = e.page.y - $('touts_collapsed_holder').parentDim.height;
                    e.page.x = e.page.x;
                    
                    if ((e.page.x > $('touts_collapsed_holder').left && e.page.x < $('touts_collapsed_holder').parentDim.right) && (e.page.y > $('touts_collapsed_holder').parentDim.top && e.page.y < $('touts_collapsed_holder').parentDim.bottom)) {
                        if (this.open) {
                            this.open = false;
                            this.removeClass('highindex');
                        } else {
                            this.open = true;
                            this.addClass('highindex');
                        }
                    }
                }
            });
        }
    }
    
    scj.omniture.firstTime = false;

});


function omnitureTrackDemo(demo, product)
{
	var trackVars = { prop2: demo, eVar3: demo, events: 'event5'};
	var options = { 'linkType':'o', 'linkName': product + ',' + demo };
	
	scj.omniture.trackLink(trackVars, options, this);
}

function omnitureTrackScent(scent, product)
{
	var trackVars = { prop2: product + ',' + scent, eVar3: product + ',' + scent, events: 'event5'};
	var options = { 'linkType':'o', 'linkName': product + ',' + scent };
	
	scj.omniture.trackLink(trackVars, options, this);
}
