var selections = new Array();
var disabled = 1;
var x = 0;

function checkForm (form) {
		
	var input = document.getElementsByTagName('input');
	var ok = true;

	for (var i=0;i < input.length;i++){
		if (input[i].getAttribute('required') == 1) {
			var error = getObj(input[i].getAttribute('name') + '_error');
			if (input[i].value == "") {
				error.firstChild.data = "*This field is required.*";
				ok = false;
			} else {
				error.firstChild.data = "";
			}
		}
	}

	if (selections.length == 0) {
		alert('You did not select any products.  Please select a product before continuing.');
		ok = false;
	}

	if (ok) {
		setCookies();
		form.submit();
	}
}

function updateList (manufacturer) {
	
	var checkBox = document.getElementsByName('selection');
	var products = selections[manufacturer];	

	if (disabled) {
		for (var i=0;i<checkBox.length;i++) {
			checkBox[i].disabled = false;
		}
		disabled = 0;
	}

	for (var i=0;i<checkBox.length;i++) {
		checkBox[i].checked = false;
	}
	
	if (products) {
		for (var item in products) {
			getObj(item).checked = true;
		}
	}
	
}

function disableList () {

	var checkBox = document.getElementsByName('selection');
	disabled = 1;

	for (var i=0;i<checkBox.length;i++) {
		checkBox[i].disabled = true;
	}

}

function updateSelection (checkBox) {

	var mid = getObj('mid');
	var label = getObj('selection_count');

	if (mid.value == "") {
		alert("Please select a manufacturer before you select a product.");
		checkBox.checked = false;
	}
	
	if (checkBox.checked == true) {
		addSelection(mid.value, checkBox.value);
		x++;
	} else {
		removeSelection(mid.value, checkBox.value);
		x--;
	}

	label.firstChild.data = x;
	updateTotal(x);

}

function updateTotal (count) {

	var t = getObj('total');
	if (count <= 25) {
		t.firstChild.data = 25;
	} else {
		t.firstChild.data = count;
	}

}

function addSelection (manufacturer, product) {

	if (selections[manufacturer]) {
		selections[manufacturer][product] = product;
	} else {
		selections[manufacturer] = new Array();
		selections[manufacturer][product] = product;
	}

}

function removeSelection (manufacturer, product) {

	if (selections[manufacturer][product]) {
		delete selections[manufacturer][product];
	}

}

function getObj(id) {

	var obj = null;
	
	if (document.getElementById) {
		obj = document.getElementById(id);
	} else if (document.all) {
		obj = document.all[id];
	} else if (document.layers) {
		obj = document.layers[id];
	}

	return obj;

}

function resetForm (form) {

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

		var field_type = elements[i].type.toLowerCase();
		switch(field_type) {

			case "text":
			case "password":
			case "textarea":
			case "hidden":

				elements[i].value = "";
			break;

			case "radio":
			case "checkbox":

				if (elements[i].checked) {
					elements[i].checked = false;
				}
			break;

			case "select-one":
			case "select-multi":

				elements[i].selectedIndex = -1;
			break;

			default:
			break;
		}
	}
	
	x = 0;
	updateTotal('0');
	getObj('selection_count').firstChild.data = '0';
	selections.length = 0;	
	disableList();

}

function setCookies () {

	var input = document.getElementsByTagName('input');

	for (var i=0;i < input.length;i++){
		if (input[i].getAttribute('required')) {
			var id = input[i].getAttribute('id');
			var value = input[i].value;
			if (value != "") {
				setCookie(id, value, 10);
			}
		}
	}
	var sel = "";
	for (var y in selections) {
		var list = "";
		for (var z in selections[y]) {
			list += selections[y][z] + ",";
		}
		sel += y + " => " + list + "\n";
	}
	setCookie('selections',sel,10);

}

function setCookie (c_name,value,seconds) {

	var exdate = new Date();

	exdate.setTime(exdate.getTime() + (seconds * 1000));

	document.cookie=c_name+ "=" +escape(value)+
		((seconds==null) ? "" : ";expires="+exdate.toGMTString());
	
}

function getCookie (c_name) {

	if (document.cookie.length>0) {
  		c_start=document.cookie.indexOf(c_name + "=");
  		if (c_start!=-1) {
    			c_start=c_start + c_name.length+1;
    			c_end=document.cookie.indexOf(";",c_start);
    		if (c_end==-1) c_end=document.cookie.length;
    		return unescape(document.cookie.substring(c_start,c_end));
    		}
  	}	
	return "";
}

