//Array of sku and upc pairs
var skuupc= new Array(
	'599', '381513819595',
	'599C', '381519024818',
	'600', '381513819014',
	'600C', '381519024825',
	'601', '381513819618',
	'601C', '381519024832',
	'602', '381513819021',
	'603G', '381519006265',
	'603GC', '381519024849',
	'604', '381513819045',
	'604AC', '381519039805',
	'604C', '381519024856',
	'606', '381513819069',
	'607', '381513819076',
	'607C', '381519024863',
	'608', '381513819083',
	'608B', '381519006272',
	'608BC', '381519024887',
	'608C', '381519024870',
	'609', '381513819090',
	'609C', '381519024894',
	'610', '381513819106',
	'610C', '381519024900',
	'611', '381513819113',
	'611B', '381519006296',
	'611C', '381519024917',
	'612GC', '381519039775',
	'612RB', '381515392218',
	'612RBC', '381519024924',
	'612RC', '381519039768',
	'613', '381513819137',
	'613B', '381515392317',
	'613BC', '381519024948',
	'613C', '381519024931',
	'614', '381513819144',
	'614C', '381519024955',
	'615', '381513819151',
	'615C', '381519024962',
	'616C', '381519024979',
	'616NC', '381519039782',
	'617C', '381519039799',
	'618', '381513819182',
	'618C', '381519024986'
);


//Creat objects to convert sku to upc and upc 2 sku 
var sku2upc= new Object();
var upc2sku= new Object();
for (i=0; i<=skuupc.length; i=i+2) {
	sku2upc[skuupc[i]]=skuupc[i+1];
	upc2sku[skuupc[i+1]]=skuupc[i];
};
var lastHref;
var lastThumb;
var returnQuery;
var returnURL;

var ShadePalette = new Class({
	/**
	 * implements
	 */
	Implements: [Options],
	
	defaultOptions: {
		color: 'blonde'
	},
		
	initialize: function(options) {
		this.setOptions(this.defaultOptions, options, this.getQueryString(location.href));
		
		//this.options.href = $(this.options.color).getFirst("div").getFirst("div").getFirst("a").href;

		if (this.getQueryString(location.href).upc) {
			this.options.sku = upc2sku[this.getQueryString(location.href).upc];
		} else if (this.getQueryString(location.href).bvproductid) {
			this.options.sku = upc2sku[this.getQueryString(location.href).bvproductid];
		} else if (this.getQueryString(location.href).sku) {
			this.options.sku = this.getQueryString(location.href).sku;
		}
		
		this.prepareTabs();				
		this.prepareThumbs();
		
		//show default color
		$(this.options.color).removeClass('hidden');

		if (this.options.sku || this.options.upc) {
			//large preview swatch
			$("Info_"+this.options.sku).getFirst("img").addClass('hidden');
			//box
			$("Info_"+this.options.sku).getFirst("img").getNext("img").removeClass('hidden');
			//swatch and buy now
			$("Info_"+this.options.sku).getFirst("div").removeClass('hidden');
			//info
			$("Info_"+this.options.sku).removeClass('hidden');
			
			//Highlight thumb
			$$(".thumb").each(function(el) {
				if (this.getQueryString(el.href).sku == this.options.sku) {
					el.getFirst("img").addClass('on');
					lastHref = el.href;
					lastThumb = el.getFirst("img");
				}
			}, this);
		}
	},
	
	getQueryString: function(uri) {
		var o = {};
		
		$A(uri.replace(/(^.*\?)|(#.*$)/g,'').split('&')).each(function(p){
			p = p.split("=");
			o[decodeURIComponent(p[0])] = decodeURIComponent(p[1]);
		});
		
		return o;	
	},
	
	prepareTabs: function() {
		$$("ul#tabs li.tab a").each(function(el) {
			el.removeEvents();
			if (this.getQueryString(el.href).color == this.options.color) {
				el.getParent('li').addClass('on');
				this.prepareThumbs();
			} else {
				el.getParent('li').removeClass('on');
				el.addEvent('click', function() {
					if (lastThumb) {
						lastThumb.removeClass('on');
					}
					lastHref = "";
					sp.toggleTabs(this.href);
				});
			}
		}, this);
	},
	
	 prepareThumbs: function() {
		$$(".thumb").each(function(el) {
			el.removeEvents();
			el.addEvent('mouseenter', function() {
				sp.togglePreview(this.href);
			});
			el.addEvent('click', function() {
				if (lastThumb) {
					lastThumb.removeClass('on');
				}
				this.getFirst("img").addClass('on');
				$$('div#cii-store').addClass('hide');
				sp.toggleInfo(this.href);
				lastHref = this.href;
				lastThumb = this.getFirst("img");
				window.location.href="#top";
			});	
			el.addEvent('mouseleave', function() {
				if (lastHref) {
					sp.toggleInfo(lastHref);
				}
			});	
		});
	},
	
	toggleTabs: function(href) {
		$(this.options.color).addClass('hidden');
		this.options.lastColor = this.options.color;
		this.options.color = this.getQueryString(href).color;
		$(this.options.color).removeClass('hidden');
		this.prepareTabs();
		sp.toggleInfo(this.options.href);
	},

	togglePreview: function(href) {
		if (this.options.sku) {
			//info
			$("Info_"+this.options.sku).addClass('hidden');
		}
		this.options.sku = this.getQueryString(href).sku;
		//large preview swatch
		$("Info_"+this.options.sku).getFirst("img").removeClass('hidden');
		//box
		$("Info_"+this.options.sku).getFirst("img").getNext("img").addClass('hidden');
		//swatch and buy now
		$("Info_"+this.options.sku).getFirst("div").addClass('hidden');
		//info
		$("Info_"+this.options.sku).removeClass('hidden');
	},
	
	toggleInfo: function(href) {
		if ($("Info_"+this.options.sku)) $("Info_"+this.options.sku).addClass('hidden');
		
		if (href) {
			this.options.sku = this.getQueryString(href).sku;

			if (!lastHref || lastHref!=href) {
				$('cii-iframe').set('src', '/buy_it_now/product_links_bv.jsp?upc='+sku2upc[this.options.sku]);
				$('upc').value = sku2upc[this.options.sku];
			}

			//large preview swatch
			$("Info_"+this.options.sku).getFirst("img").addClass('hidden');
			//box
			$("Info_"+this.options.sku).getFirst("img").getNext("img").removeClass('hidden');
			//swatch and buy now
			$("Info_"+this.options.sku).getFirst("div").removeClass('hidden');
			//info
			$("Info_"+this.options.sku).removeClass('hidden');
		}
	}
});

function showBuyNow(el) {
	$$('div#cii-store').removeClass('hide');
	var zip = document.getElementById('zip');
	if(zip.value == "" || zip.value == undefined || zip.value == " ") {
		zip.value = "Enter Zip Code";
	}
	//urchinTracker(this.href);
	return true;
}

function checkZipField() {
	var el = document.getElementById('zip');
	el.onfocus = function() { if(this.value == "Enter Zip Code"){this.value = "";}}
}

function validateZipField() {
	var el = document.getElementById('zipcodeform');
	el.onsubmit = function() 
	{ 
		var el = document.getElementById('zip');
		var num = Number(el.value);
		if(el.value == "Enter Zip Code" || isNaN(num))
		{
			el.value = "Enter Zip Code";
			return false;
		} else {
			return true;
		}
	}
}

/*
Clear default value of text input
*/
function clearField(thefield) {
	if (thefield.defaultValue==thefield.value)
	thefield.value = ""
}


var sp;
window.addEvent('domready', function() {
	sp = new ShadePalette();
});

