DRAG.PartSearch = {
	segmentIds: null,
	
	init: function() {
		if ($('#partSearchSubmit').length > 0) {
			this.params = DRAG.DEF.partSearchParams;
			this.bindForms();
			this.checkedState($('#catalogFilter input:checkbox'));
		} else {
			this.bindForm();
		}
		
	},

	bindForm: function () {
		$('#top_searchText').focus(function() {
			if($('#top_searchText').val() == " Search Parts Unlimited") {
				$('#top_searchText').val('');
			}
		});
		$('#top_searchSubmit').bind('click', {_this: this}, this.formSubmitTop);
		$('#top_searchForm').bind('keypress', {_this: this}, this.formSubmitTop);
	},

	bindForms: function () {
		$('#partSearchSubmit').bind('click', {_this: this}, this.formSubmit);
		$('#partSearchForm').bind('keypress', {_this: this}, this.formSubmit);
		
		this.segmentIds = "";
		this.populateCatalogs();
		this.bindForm();
	},

	formSubmitTop: function(e) {
		var hold = false;

		if(e.type != 'click') {
			if(e.keyCode != '13') {
				hold = true;
			}
		}

		if(!hold) {
			e.data._this.initSegments();
				
			var txt = $('#top_searchForm #top_searchText').val();
			var url = "../part/searchParts.do";
			url += "?application=dragspecialties";
			url += "&regions=6";
			url += "&segmentIds=" + e.data._this.segmentIds;
			url += "&searchTerm=" + txt;
			if(e.data._this.params) {
				url += "&pageSize=" + e.data._this.params.pageSize;
			}
			
			document.location = url;
		}
	},
	
	formSubmit: function(e) {
		var hold = false;

		
		if(e.type != 'click') {
			if(e.keyCode != '13') {
				hold = true;
			}
		}
		
		if (!hold) {
			var txt = $('#partSearchForm #searchText').val();
			this.segmentIds = "";
			var boxes = $('#catalogFilter input:checkbox');
			for (a=0; a<boxes.length; a++) {
				if (boxes[a].checked == true) {
					if (this.segmentIds == "") {
						this.segmentIds += boxes[a].value;
					} else {
						this.segmentIds += ',' + boxes[a].value;
					}
				}
			}
		
			var url = "../part/searchParts.do";
			url += "?application=dragspecialties";
			url += "&regions=6";
			url += "&segmentIds=" + this.segmentIds;
			url += "&searchTerm=" + txt;
			url += "&pageSize=" + e.data._this.params.pageSize;

			document.location = url;
		}
	},
	
	initSegments: function() {
		this.segmentIds = "";
		var items = DRAG.DEF.NAVIGATION.menu;
		for (var x in items) {
			if (items[x].label == "catalogs") {
				var catalogs = items[x].menu;
				for (var y in catalogs) {
					if (this.segmentIds == "") {
						this.segmentIds += catalogs[y].id;
					} else {
						this.segmentIds += ',' + catalogs[y].id;
					}
				}
			}
		}	
	},
	
	populateCatalogs: function() {
		var items = DRAG.DEF.NAVIGATION.menu;
		for (var x in items) {
			if (items[x].label == "catalogs") {
				var ul = document.createElement("ul");
				ul.id = 'catalogFilter';
				var catalogs = items[x].menu;
					for (var y in catalogs) {
						var li = document.createElement("li");

						var i = document.createElement("input"); 
						i.type = "checkbox";
						i.className = "catalogFilter";
						i.name = "checkCatalogs";
						i.id = "checkCatalogs";
						i.value = catalogs[y].id;
						
						$(li).html(catalogs[y].label);
						$(li).append(i);
						$(i).attr('checked', false);
						$(i).bind('click', { doSelect: false, _this: this }, this.selectAll);
						
						if(typeof(DRAG.ie6) != "undefined") {
							$(i).attr('defaultChecked', false);
						}
						var segmentAry = this.params.segmentIds.split(",");
						for (var z in segmentAry) {
							if (catalogs[y].id == segmentAry[z]) {
								$(i).attr('checked', true);
								if(typeof(DRAG.ie6) != "undefined") {
									$(i).attr('defaultChecked', true);
								}
							}
						}
						$(ul).append(li);
					}
				$('#searchFilters').append(ul);
			}
		}
		
		var div = document.createElement('div');
		$(div).html('select all')
		div.id = 'selectAll';
		var box = document.createElement('input');
		box.type = "checkbox";
		box.name = "selectCatalogs";
		box.id = "selectCatalogs";
		$(div).append(box);
		$(box).bind('click', { doSelect: true, _this: this }, this.selectAll);
		
		$('#searchFilters').append(div);
	},
	
	selectAll: function(e) {
		var boxes = $('#catalogFilter input:checkbox');

		if(e.data.doSelect) {
			var checkedVar = $('#selectCatalogs').attr('checked');
			
			for (a=0; a<boxes.length; a++) {
				$(boxes[a]).attr('checked', checkedVar)
				if(typeof(DRAG.ie6) != "undefined") {
					$(boxes[a]).attr('defaultChecked', checkedVar);
				}
			}
		} else {
			e.data._this.checkedState(boxes);
		}
	},
	
	checkedState: function(b) {
		$('#selectCatalogs').attr('checked',true);
		if(typeof(DRAG.ie6) != "undefined") {
			$('#selectCatalogs').attr('defaultChecked', true);
		}
		for (a=0; a<b.length; a++) {
			if($(b[a]).attr('checked') == false) {
				$('#selectCatalogs').attr('checked',false);
				if(typeof(DRAG.ie6) != "undefined") {
					$('#selectCatalogs').attr('defaultChecked', false);
				}
			}
		}
	}
};

$(document).ready(function() {
	DRAG.PartSearch.init();	
});
