Farrwest.Collection = function() {

	this.current = {

		"brand":null, 

		"collection":null,

		"page":0,

		"item":null,

		"total":0,

		"color":null
		
		

	};

	this.div = {

		"collection":"collect", 

		"collection_name":"collectionNameImg",

		"collection_desc":"collectionDes",

		"list":"collectionRow", 

		"item_desc":"itemDesc", 

		"item_fiber":"itemFiber", 

		"item_size":"itemSize",

		"color_list":"itemColorRow",

		"color_name":"colorName",
		
		"colorHidden":"hiddenc",

		"main_view":"itemMainView",

		"main_view_desc":"lg-product-des",

		"pagination":"pageTable"

	};

	this.list_prefix = "list_nav_";

	this.color_prefix = "color_nav_";

	this.page_prefix = "p_nav_";

	this.collInfo = $H();

	this.listInfo = $H();

	this.colorInfo = $H();

	this.pageInfo = $H();

	this.itemPerPage = 6;

	this.isByGarmentType = false;

	

	YAHOO.util.Event.addListener("add-view-link", "click", this.popup, this);

	YAHOO.util.Event.addListener("size_chart", "click", this.showSizeChart, this);
	


}



Farrwest.Collection.prototype.setType = function(type) {

	this.isByGarmentType = type;

}



Farrwest.Collection.prototype.setBrand = function(brand) {

	this.current.page = 0;

	this.current.total = 0;

	this.current.brand = brand;

	this.load(this.current.brand, null, null, null);

}



Farrwest.Collection.prototype.setCollection = function(collection) {

	this.current.page = 0;

	this.current.total = 0;

	this.current.collection = collection;

	this.load(null, this.current.collection, null, null);

}



Farrwest.Collection.prototype.setPage = function(page) {

	this.current.page = page;

	this.load(null, this.current.collection, this.current.page, null);

}



Farrwest.Collection.prototype.setItem = function(id) {

	this.current.item = id;

	this.load(null, null, null, this.current.item);		

}



Farrwest.Collection.prototype.load = function(brand, collection, page, item) {

	var params = $H({

		"page" : "loadAll"

	});

	if (brand != null) {

		params.set("bn", brand);

	}

	if (collection != null) {

		params.set("cn", collection);

	}

	if (page != null) {

		params.set("pg", page);

	}

	if (item != null) {

		params.set("ii", item);

	}

	if (this.isByGarmentType) {

		params.set("type", "true");

	}

	params.set("count", this.itemPerPage);



	var obj = this;

	var query = params.toQueryString();

	var options = {

		onSuccess : function(transport) {

			obj.process(obj, transport);

		},

		onFailure : Farrwest.Common.onFailureRequest,

		parameters : query

	}

	var ajax = new Ajax.Request("loader.php", options);  	

}



Farrwest.Collection.prototype.process = function(obj, transport){

	var json = transport.responseText.evalJSON();

	if (json != null) {

		if (json.collection_list != null && json.collection_list.length > 0) {

			this.parseCollection(json.collection_list);

		}

		if (json.item_list != null) {

			this.parseItemList(json.item_list, json.item_total, json.collection);

		}

		if (json.item != null) {

			this.parseItem(json.item, json.item_color);

		}
		
	}

	

}



Farrwest.Collection.prototype.resetContent = function(layer) {

	var layer = $(layer);

	if (layer) {

		layer.innerHTML = "";

	}

	return layer;

}



Farrwest.Collection.prototype.parseCollection = function(collection) {

	var top = this.resetContent(this.div.collection);

		

	for (var i = 0; i < collection.length; i++) {

		var selected = false;

		if (i == 0) {

			selected = true;

			this.current.collection = collection[0].collection_name;

		}

		top.innerHTML += this.createCollectionDiv(collection[i], selected);

	}

}



Farrwest.Collection.prototype.createCollectionDiv = function(c, selected) {

	var className = selected ? "subnav1" : "subnav2";

	html = "<div class='" + className + "'>";

	html += "<a href='javascript:void(0);'>";

	var id = "coll_nav_" + c.collection_id;

	if (selected) {

		html += "<img src='images/" + c.collection_image_on + "' id='" + id + "' border='0'/>"

	}	else {

		html += "<img src='images/" + c.collection_image_off + "' id='" + id + "' border='0'/>"

	}

	html += "</a>";

	html += "</div>";



	this.collInfo.set(id, {"on":"images/"+c.collection_image_on, "off":"images/"+c.collection_image_off, "name":c.collection_name});

	Farrwest.Common.addPreload(this.collInfo.get(id).on);

	Farrwest.Common.addPreload(this.collInfo.get(id).off);



	YAHOO.util.Event.addListener(id, "mouseover", this.collOver, this);

	YAHOO.util.Event.addListener(id, "mouseout", this.collOut, this);

	YAHOO.util.Event.addListener(id, "click", this.collClick, this);



	return html;

}



Farrwest.Collection.prototype.collOver = function(evt, obj) {

	$(this.id).src = obj.collInfo.get(this.id).on;

}



Farrwest.Collection.prototype.collOut = function(evt, obj) {

	if (obj.collInfo.get(this.id).name != obj.current.collection) {

		$(this.id).src = obj.collInfo.get(this.id).off;

	}

}



Farrwest.Collection.prototype.collClick = function(evt, obj) {

	if (obj.collInfo.get(this.id).name != obj.current.collection) {

		obj.collInfo.each(function(info) {

			$(info.key).src = info.value.off;

		});

		$(this.id).src = obj.collInfo.get(this.id).on;

		obj.listInfo.each(function(info) {

			YAHOO.util.Event.removeListener(info, "mouseover", obj.itemOver);

			YAHOO.util.Event.removeListener(info, "mouseout", obj.itemOut);

			YAHOO.util.Event.removeListener(info, "click", obj.itemClick);

		});

		obj.listInfo = $H();

		obj.setCollection(obj.collInfo.get(this.id).name);

	}

}



Farrwest.Collection.prototype.parseItemList = function(list, total, collection) {

	if (this.current.page == 0) {

		$(this.div.collection_name).src = "images/t" + collection.collection_image_on;

		var desc = this.resetContent(this.div.collection_desc);

		desc.innerHTML = "<h3>" + collection.collection_description + "</h3>";

		this.itemPerPage = collection.item_per_page;

	}

	this.current.total = total;

	this.setupPagination();

	var top = this.resetContent(this.div.list);

	for (var i = 0; i < list.length; i++) {

		var selected = false;

		if (i == 0) {

			selected = true;

			this.current.item = list[0].item_id;

		}

		top.innerHTML +=  this.createList(list[i], selected);

	}

	

}



Farrwest.Collection.prototype.setupPagination = function() {

	var table = $(this.div.pagination);

	while (table.rows.length > 0) {

		table.deleteRow(0);

	}



	var pageTotal = Math.ceil(this.current.total / this.itemPerPage);

	var hasPrev = (this.current.page > 0) ? true : false;

	var hasNext = (this.current.page < pageTotal - 1) ? true : false;

	

	var fst, snd, trd = 0;

	var fstEn = false, sndEn = false, trdEn = false;

	var fstSe = false, sndSe = false, trdSe = false;

	

	if (this.current.page < 2) {

		fst = 1;

		snd = 2;

		trd = 3;

		if (pageTotal > 0) {

			fstEn = true;

		}

		if (pageTotal > 1) {

			sndEn = true;

		}

		if (pageTotal > 2) {

			trdEn = true;

		}

		if (this.current.page == 0) {

			fstSe = true;

		} else if (this.current.page == 1) {

			sndSe = true;

		} else {

			trdSe = true;

		}

	} else if (hasNext) {

		fst = this.current.page;

		snd = fst + 1;

		trd = snd + 1;

		fstEn = sndEn = trdEn = true;

		sndSe = true;

	} else {

		fst = this.current.page - 1;

		snd = fst + 1;

		trd = snd + 1;

		fstEn = sndEn = trdEn = true;

		trdSe = true;

	}

	

	var row = table.insertRow(-1);

	this.createCell(row, "<", "prev", hasPrev, false);

	this.createCell(row, fst, fst, fstEn, fstSe);

	this.createCell(row, snd, snd, sndEn, sndSe);

	this.createCell(row, trd, trd, trdEn, trdSe);

	this.createCell(row, ">", "next", hasNext, false);

	

	if (hasPrev) {

		YAHOO.util.Event.addListener(this.page_prefix + "prev", "click", this.prevClick, this);

	}

	if (fstEn) {

		this.pageInfo.set(this.page_prefix + fst, fst-1);

		YAHOO.util.Event.addListener(this.page_prefix + fst, "click", this.jumpClick, this);

	}

	if (sndEn) {

		this.pageInfo.set(this.page_prefix + snd, snd-1);

		YAHOO.util.Event.addListener(this.page_prefix + snd, "click", this.jumpClick, this);

	}

	if (trdEn) {

		this.pageInfo.set(this.page_prefix + trd, trd-1);

		YAHOO.util.Event.addListener(this.page_prefix + trd, "click", this.jumpClick, this);

	}

	if (hasNext) {

		YAHOO.util.Event.addListener(this.page_prefix + "next", "click", this.nextClick, this);

	}

}



Farrwest.Collection.prototype.createCell = function(row, display, id, isEnabled, isSelected) {

	var cell = row.insertCell(-1);

	var className = isSelected ? "class='on'" : "";

	if (isEnabled) {

		var link_id = this.page_prefix + id;

		cell.innerHTML = "<a href='javascript:void(0);' id='" + link_id + "' " + className + ">" + display + "</a>";

	} else {

		cell.innerHTML = "<span class='off'>" + display + "</span>";

	}

}



Farrwest.Collection.prototype.prevClick = function(evt, obj) {

	obj.setPage(obj.current.page-1);

}



Farrwest.Collection.prototype.nextClick = function(evt, obj) {

	obj.setPage(obj.current.page+1);

}



Farrwest.Collection.prototype.jumpClick = function(evt, obj) {

	obj.setPage(obj.pageInfo.get(this.id));

}



Farrwest.Collection.prototype.createList = function(item, selected) {

	var id = this.list_prefix + item.item_id;

	var className = "collectThumb" + this.itemPerPage;

	className += selected ? " collectThumbOn" : " collectThumbPointer";
	

	var html = "<div class='collectionProd" + this.itemPerPage + "'>";

	html += "<div class='" + className + "' id='" + id + "'>";

	html += "<img src='images/" + item.item_image + "' border='0' />";

	html += "</div>";

	html += "<div class='thumbInfo'>";
	
	html += "<p class='black'><img src='images/" + item.sale + "' border='0' />&nbsp;NO." + item.products_model + "&nbsp;<img src='images/" + item.exclusive + "' border='0' /></p>" + "<p>" + item.item_name + "</p>"; 

	html += "</div>";

	html += "</div>";
	




	this.listInfo.set(id, item.item_id);

	YAHOO.util.Event.addListener(id, "mouseover", this.itemOver, this);

	YAHOO.util.Event.addListener(id, "mouseout", this.itemOut, this);

	YAHOO.util.Event.addListener(id, "click", this.itemClick, this);



	return html;

}



Farrwest.Collection.prototype.itemOver = function(evt, obj) {

	if (obj.list_prefix + obj.current.item != this.id) {

		Element.addClassName(this.id, "collectThumbOn");

	}

}



Farrwest.Collection.prototype.itemOut = function(evt, obj) {

	if (obj.list_prefix + obj.current.item != this.id) {

		Element.removeClassName(this.id, "collectThumbOn");

	}

}



Farrwest.Collection.prototype.itemClick = function(evt, obj) {

	if (obj.list_prefix + obj.current.item != this.id) {

		obj.listInfo.each(function(item) {

			Element.removeClassName(item.key, "collectThumbOn");

			Element.addClassName(item.key, "collectThumbPointer");

		});

		Element.addClassName(this.id, "collectThumbOn");

		Element.removeClassName(this.id, "collectThumbPointer");

		obj.setItem(obj.listInfo.get(this.id));

	}

}


Farrwest.Collection.prototype.parseItem = function(item, color) {

	var desc = this.resetContent(this.div.item_desc);
	
	if (item.sale_price > 0) {

	desc.innerHTML = "<h2>NO. " + item.products_model + " | " + item.item_name + "&nbsp; <img src='images/" + item.exclusive + "' border='0' />" + "</h2>" + "<table style='font-size:9pt'><tr><td>was &nbsp;$" + item.products_price + "&nbsp;&nbsp;</td><td style='color:#FF3333'>now &nbsp;$" + item.sale_price + "</td></tr></table>";

	}

	else {desc.innerHTML = "<h2>NO. " + item.products_model + " | " + item.item_name + "&nbsp; <img src='images/" + item.exclusive + "' border='0' />" + "</h2>" + "<table style='font-size:9pt'><tr><td>$" + item.products_price + "&nbsp;&nbsp;</td></tr></table>";
	
	}
	
	desc.innerHTML += "<p>" + item.item_description + "</p>";
	
	desc.innerHTML += "<input type='hidden' name='products_id' value='" + item.item_id + "'>"
	
	$(this.div.item_fiber).innerHTML = item.item_fiber;
	
	var size = this.resetContent(this.div.item_size);
	
	if (item.item_size == 0) {
	
	size.innerHTML = "<p><select name='id[2]' size='1' style='width:100px;'><option selected value='2'>Small</option><option value='3'>Medium</option><option value='4'>Large</option><option value='5'>Extra-Large</option></select></p>";
	
	}
	
	else if (item.item_size == 2) {
	
	size.innerHTML = "<p><select name='id[2]' size='1' style='width:100px;'><option selected value='6'>1X</option><option value='7'>2X</option><option value='8'>3X</option></select></p>";
	
	}
	
	else if (item.item_size == 1) {	
	
	size.innerHTML = "<p><select name='id[2]' size='1' style='width:100px;'><option value='10'>Extra-Small</option><option selected value='11'>Small</option><option value='12'>Medium</option><option value='13'>Large</option><option value='14'>Extra-Large</option></select></p>";
	
	}
	
	else { size.innerHTML = "<p><select name='id[2]' size='1' style='width:100px;'><option value='9'>One Size Fits All</option></select></p>";
	
	}

	var image_desc = this.resetContent(this.div.main_view_desc);

	image_desc.innerHTML = "<table><tr><td width='75'></td><td valign='top' align='center' width='125'><p style='font-size:10px;color:black'><b>NO. " + item.products_model + "</b></td></p><td rowspan='3' valign='top' width='75'></td><tr><td></td><td valign='top' align='center'><p style='font-size:10px;color:black'>" + item.item_name + "</p></td></tr><tr><td></td><td align='center' valign='top'><img src='images/" + item.sale + "' border='0' /></td></tr></table><div id='seal'><img src='images/" + item.seal + "' border='0' /></div>";

	var colorList = this.resetContent(this.div.color_list);

	

	for (var i = 0; i < color.length; i++) {

		var selected = false;
		this.current.color = color[0].color_id;

		if (i == 0) {

			this.updateMainView(color[0].color_name, color[0].main_view);

			selected = true;

			this.current.color = color[0].color_id;
			

			


		}

		
		colorList.innerHTML += this.createColor(color[i], selected);


	}
	
	
}



Farrwest.Collection.prototype.createColor = function(color, selected) {

	var id = this.color_prefix + color.color_id;

	var className = selected ? "item-color-thumb item-color-thumb-on" : "item-color-thumb item-color-thumb-pointer";

	var html = "<div class='" + className + "' id='" + id + "'>";

	html += "<img src='images/" + color.color_image + "' border='0' />";
	
	html += "</div>";


	
	

	this.colorInfo.set(id, color);
	


	YAHOO.util.Event.addListener(id, "mouseover", this.colorOver, this);

	YAHOO.util.Event.addListener(id, "mouseout", this.colorOut, this);

	YAHOO.util.Event.addListener(id, "click", this.colorClick, this);
	
	

	return html;
	


}



Farrwest.Collection.prototype.updateMainView = function(name, img) {

	

	$(this.div.color_name).innerHTML =  "<b>" + "SELECT COLOR: " + "</b>" + name;
	
	$(this.div.color_name).innerHTML +=  "<input type='hidden' name='id[1]' value='" + this.current.color + "'>";

	$(this.div.main_view).src = "images/" + img;

}



Farrwest.Collection.prototype.colorOver = function(evt, obj) {

	if (obj.color_prefix + obj.current.color != this.id) {

		Element.addClassName(this.id, "item-color-thumb-on");

	}

}



Farrwest.Collection.prototype.colorOut = function(evt, obj) {

	if (obj.color_prefix + obj.current.color != this.id) {

		Element.removeClassName(this.id, "item-color-thumb-on");

	}

}



Farrwest.Collection.prototype.colorClick = function(evt, obj) {


	if (obj.color_prefix + obj.current.color != this.id) {

		obj.colorInfo.each(function(item) {

			Element.removeClassName(item.key, "item-color-thumb-on");

			Element.addClassName(item.key, "item-color-thumb-pointer");

		});

		Element.addClassName(this.id, "item-color-thumb-on");

		Element.removeClassName(this.id, "item-color-thumb-pointer");

		var color = obj.colorInfo.get(this.id);

		obj.current.color = color.color_id;

		obj.updateMainView(color.color_name, color.main_view);

	}
}



Farrwest.Collection.prototype.popup = function(evt, obj) {

	var params = $H({

		"ii" : obj.current.item,

		"ci" : obj.current.color

	});

	var query = params.toQueryString();



	window.open('detailview.php?' + query,'window','width=510,height=560');

	return false;

}




Farrwest.Collection.prototype.showSizeChart = function(evt, obj) {

	window.open('view/sizechart.html','window','width=540,height=540');

	return false;



}