Product = function(sizes){
	this.sizes = sizes;
};
Product.prototype = {
	selectedSku:null,
	selectedColor:0,
	skus:[],
	colors:[],
	addSku:function(id, size, instock){
		var sku = {
			id:id, 
			size:size, 
			instock:instock
		};
		this.skus.push(sku);
	},
	selectSize: function(pos){
		var sku = this.colors[this.selectedColor].skus[pos];
		if(sku.instock){
			this.selectedSku = sku;
			YAHOO.util.Dom.setStyle('cartbuttonwrapper', 'opacity', 1);
			if(get('selectedsize')){
				get('selectedsize').innerHTML = this.selectedSku.size;
			}
		}else{
			this.selectedSku = null;
			YAHOO.util.Dom.setStyle('cartbuttonwrapper', 'opacity', .3);
			if(get('selectedsize')){
				get('selectedsize').innerHTML = "";
			}
			showMessage("Sorry, we're out of stock in " + sku.size);
		}
	},
	readyForCart:function(){
	//	if(!this.selectedSku && this.colors.length == 1 && this.skus.length == 1){
		return this.selectedSku;
	},
	addSku:function(id, size, instock, optionid, price, color, images){
		var option = this.getColor(optionid);
		if(!option){
			option = this.buildColor(optionid, price, color, images);
		}
		var sku = {
			id:id, 
			size:size, 
			instock:instock
		};
		option.skus.push(sku);
	},
	selectColor: function(pos){
		this.selectedColor = pos;
		for(var ii=0; ii<this.colors.length; ii++){
			if(ii == pos){
				YAHOO.util.Dom.addClass('coloroption' + ii, 'selected');
			}else{
				YAHOO.util.Dom.removeClass('coloroption' + ii, 'selected');
			}
		}
		get('selectedcolor').innerHTML = this.colors[pos].color;
		get('pricevalue').innerHTML = this.colors[pos].price;
		this.changeImages(this.colors[pos]);
	},
	changeImages: function(color){
		var imagepath = '/assets/catalog.Image/' + color.id + '/';
		//get('mainimage').src = imagepath + 'med_' + color.images[0];
		var a = get('mainimagelink');
		a.href = imagepath + color.images[0];
		a.firstChild.src = imagepath + 'med_' + color.images[0];
		var thumbs = get('thumbnails');
		thumbs.innerHTML = '';
		for(var ii=0; ii<color.images.length; ii++){
			var t = document.createElement('a');
			t.href = imagepath + color.images[ii];
			t.rev = imagepath + 'med_' + color.images[ii];
			t.rel = 'zoom-id:mainimagelink';
			var img = document.createElement('img');
			img.src = imagepath + 'th_' + color.images[ii];
			t.appendChild(img);
			thumbs.appendChild(t);
		}	
		MagicZoom.refresh();	
	},
	getColor: function(optionid){
		for(var ii=0; ii<this.colors.length; ii++){
			if(this.colors[ii].id == optionid){
				return this.colors[ii];
			}
		}
		return null;
	},
	buildColor: function(optionid, price, color, images){
		ii = this.colors.length;
		this.colors[ii] = {
			id : optionid,
			skus : [],
			price : price,
			color : color,
			images : images
		}
		return this.colors[ii];
	}
}
function showMessage(message, time){
	if(time == undefined){
		time = 3000;
	}
	var status = get('alertmessage');
	status.innerHTML = message;
	YAHOO.util.Dom.setStyle(status, 'display','block');
	var fade = new YAHOO.util.Anim(status, { opacity: { to: 1 } }, 0.5);
	fade.animate();
	if(time != 0){
		setTimeout(hideMessage, time);
	}
}
function hideMessage(){
	var fade = new YAHOO.util.Anim('alertmessage', { opacity: { to: 0 } }, 0.5);
	fade.onComplete.subscribe(clearMessage);
	fade.animate();
}
function clearMessage(){
	var status = get('alertmessage');
	status.innerHTML = '';
	YAHOO.util.Dom.setStyle(status, 'display','none');
}
