// JavaScript Document
YAHOO.namespace('WithoutPockets');

YAHOO.namespace('productOverlay');
YAHOO.productOverlay = function(){
	function fnCallback(e) {
		var productId = this.id.replace('product_image_', '');
		
	};
	return {
		init: function(){
			// Get all the product links
			var productImages = YAHOO.util.Dom.getElementsByClassName('product_image', 'img');
			for (var i=productImages.length; i>-1; i--){
				YAHOO.util.Event.addListener(productImages[i], 'mouseover', fnCallback);
			}
		}
	};
}();

// Sizing overlay
YAHOO.namespace('sizingOverlay');
YAHOO.sizingOverlay = function(){
	// Define various event handlers for Dialog
	var handleSubmit = function() {
		this.doSubmit();
	};
	var handleCancel = function() {
		this.cancel();
	};

	return {
		showOverlay: function (e, obj) {
			YAHOO.sizingOverlay.container = new YAHOO.widget.Dialog("sizing_overlay", { fixedcenter:true,
																					  visible:false,
																					  constraintoviewport : true, 
						                                                              buttons : [ { text:"Close", handler:handleCancel, isDefault:true } ],
																					  modal:true,
																					  postmethod:"form",
																					  close:false,
																					  underlay:"none",
																					  draggable:false,
																					  effect: {effect:YAHOO.widget.ContainerEffect.FADE, duration:0.5},
																					  width:"610px"} );
			// Find out which sizing chart we want
			var chart = this.href.substring(this.href.indexOf('#')+1);
			YAHOO.sizingOverlay.container.setHeader("Sizing Chart");
			YAHOO.sizingOverlay.container.setBody('<img src="' + YAHOO.WithoutPockets.base_url + '/images/sizing_chart_'+chart+'.gif" alt="Sizing Chart" /><p>Please note that a small amount of shrinkage can be expected on the first wash.</p>');
			YAHOO.sizingOverlay.container.render(document.body);
			YAHOO.sizingOverlay.container.show();
			YAHOO.util.Event.stopEvent(e);
		},
		init: function(){
			var sizingLinks = YAHOO.util.Dom.getElementsByClassName('sizing_link','a');
			YAHOO.util.Event.addListener(sizingLinks, "click", YAHOO.sizingOverlay.showOverlay);
		}
	}
	
}();
YAHOO.util.Event.addListener(window, 'load', YAHOO.sizingOverlay.init);
// Over labels
YAHOO.namespace('widget.overLabels');
YAHOO.widget.overLabels.init = function(){
	return {
		start: function(){
			var labels = YAHOO.util.Dom.getElementsByClassName('overlabel', 'label');
			for (var i = 0; i < labels.length; i++){
				id = labels[i].htmlFor || labels[i].getAttribute ('for');
				if (!id || !(field = document.getElementById(id))) {continue;} 
				// Change the applied class to hover the label 
				// over the form field.
				labels[i].className = 'overlabel-apply';
			
				// Hide any fields having an initial value.
				if (field.value !== '') {
					YAHOO.widget.overLabels.hideLabel(field.getAttribute('id'), true);
				}
			
				// Set handlers to show and hide labels.
				field.onfocus = function () {
					YAHOO.widget.overLabels.hideLabel(this.getAttribute('id'), true);
				};
				field.onblur = function () {
					if (this.value === '') {
						YAHOO.widget.overLabels.hideLabel(this.getAttribute('id'), false);
					}
				};
			
				// Handle clicks to label elements (for Safari).
				labels[i].onclick = function () {
					var id, field;
					id = this.getAttribute('for');
					if (id && (field = document.getElementById(id))) {
						field.focus();
					}
				};
			}
		}
	}
}();

YAHOO.widget.overLabels.hideLabel = function(field_id, hide) {
	var field_for;
	var labels = document.getElementsByTagName('label');
	for (var i = 0; i < labels.length; i++) {
		field_for = labels[i].htmlFor || labels[i].getAttribute('for');
		if (field_for == field_id) {
			labels[i].style.textIndent = (hide) ? '-1000px' : '0px';
			return true;
		}
	}
};

YAHOO.util.Event.addListener(window, 'load', YAHOO.widget.overLabels.init.start, YAHOO.widget.overLabels, true);

// Slideshow
YAHOO.namespace('widget.slideshow');
YAHOO.widget.slideshow.timeOut = 5;
YAHOO.widget.slideshow.currentSlide = 0;
YAHOO.widget.slideshow.slide_nodes = [];
YAHOO.widget.slideshow.play = null;

YAHOO.widget.slideshow.loadNextSlide = function() {
    var nextSlide = (YAHOO.widget.slideshow.currentSlide < YAHOO.widget.slideshow.slide_nodes.length-1) ? YAHOO.widget.slideshow.currentSlide+1 : 0;
    if (YAHOO.widget.slideshow.slide_nodes[nextSlide]) {
        var thisNode = YAHOO.widget.slideshow.slide_nodes[YAHOO.widget.slideshow.currentSlide];
        var nextNode = YAHOO.widget.slideshow.slide_nodes[nextSlide];
        var animSlide1 = new YAHOO.util.Anim(thisNode, {opacity: {from:1, to:0}}, 1, YAHOO.util.Easing.easeIn);
		var animSlide2 = new YAHOO.util.Anim(nextNode, {opacity: {from:0, to:1}}, 1, YAHOO.util.Easing.easeIn);
        animSlide1.animate();
		animSlide2.animate();
		YAHOO.widget.slideshow.currentSlide = nextSlide;
		YAHOO.widget.slideshow.play = setTimeout('YAHOO.widget.slideshow.loadNextSlide()', (YAHOO.widget.slideshow.timeOut * 1000));
    }
}

YAHOO.widget.slideshow.preloadImages = function() {
    for (var i = 0; i < YAHOO.widget.slideshow.slides.length; i++ ) {
        if (YAHOO.widget.slideshow.slides[i]) {
			if (YAHOO.util.Dom.get('slideshow_' + i)){
				var img = YAHOO.util.Dom.get('slideshow_' + i);
			}else{
				var img = document.createElement('img');
				img.id = 'slideshow_' + i;
				img.src = YAHOO.widget.slideshow.slides[i];
			}
			YAHOO.util.Dom.setStyle(img, 'opacity', 0);
			YAHOO.util.Dom.setStyle(img, 'position', 'absolute');
			YAHOO.util.Dom.setStyle(img, 'top', 0);
			YAHOO.util.Dom.setStyle(img, 'left', 0);
			YAHOO.widget.slideshow.slide_holder.appendChild(img);
			YAHOO.widget.slideshow.slide_nodes[i] = img;
        }
    }
}

YAHOO.widget.slideshow.init = function(){
	return {
		start: function(){
			YAHOO.widget.slideshow.slide_holder = YAHOO.util.Dom.get('slideshow');
			YAHOO.widget.slideshow.preloadImages();
			YAHOO.widget.slideshow.loadNextSlide();
		}
	}
}();

/*
 * Some useful cookie functions
 */
var Cookie = {
	set: function(name, value, expires, path, domain, secure) {
		if (expires) {
		  var d = new Date();
		  d.setTime(d.getTime() + (86400000 * parseFloat(expires)));
		  var expires = d;
		}
		document.cookie= name + "=" + escape(value) +
			((expires) ? "; expires=" + expires.toGMTString() : "") +
			((path) ? "; path=" + path : "") +
			((domain) ? "; domain=" + domain : "") +
			((secure) ? "; secure" : "");
	},
	get: function (name) {
		var dc = document.cookie;
		var prefix = name + "=";
		var begin = dc.indexOf("; " + prefix);
		if (begin == -1) {
			begin = dc.indexOf(prefix);
			if (begin != 0) return null;
		} else {
			begin += 2;
		}
		var end = document.cookie.indexOf(";", begin);
		if (end == -1) {
			end = dc.length;
		}
		return unescape(dc.substring(begin + prefix.length, end));
	},
	del: function (name, path, domain) {
		if (Cookie.get(name)) {
			document.cookie = name + "=" +
				((path) ? "; path=" + path : "") +
				((domain) ? "; domain=" + domain : "") +
				"; expires=Thu, 01-Jan-70 00:00:01 GMT";
		}
	}
}