var preChosen 	= 0; //results that were previously chosen
var chosen 		= 0; //total chosen
var str			= ""; //string
var old_window_onload;


function checkboxInit() {
	if (document.all) {
		// IE only
		old_window_onload = (window.onload) ? window.onload :  function(){};
		window.onload = function() {
			old_window_onload();
			checkboxInit2();
		}
	} else {
		checkboxInit2();
	}
}

function checkboxInit2() {
	var checked;
	var checkedLids = readCookie("compare").split(",");
	if (document.search_results) {
		for (j = 0; j < document.search_results.elements.length; j++) {
			formObj = document.search_results.elements[j];
			if (formObj.type && formObj.type.toLowerCase() == "checkbox" && formObj.name.toLowerCase() == "comparecheckbox"){
				checked = false;
				for (i = 0; i < checkedLids.length; i++){
					if (checkedLids[i] == formObj.value){
						checked = true;
						break;
					}
				}
				formObj.checked = checked;
			}
		}
	}
	check(null);
}
function check(obj) {
	chosen = 0;	//reset total
	str = "";	// reset string 
	var uel = "";
	var formObj;
	var val = null;

	if (obj) {
		val = obj.value;
	}
	if (document.search_results) {
		for(j = 0; j < document.search_results.elements.length; j++) {
			formObj = document.search_results.elements[j];
			if(formObj.type && formObj.type.toLowerCase() == "checkbox" && formObj.name.toLowerCase() == "comparecheckbox"){
				if (val == formObj.value){
					formObj.checked = obj.checked;
				}
				if (formObj.checked) {
					formObjValArray = formObj.value.split("-");
					notDup = true;
					arr = str.split(",");
					for (i = 0; i < arr.length; i++){
						if (arr[i] == formObjValArray[0]){
							formObj.checked = true;
							notDup = false;
							break;
						}
					}
					if (notDup){
						str += "," + formObjValArray[0];
						uel += "," + formObj.value;
						chosen++;	
					}			
				}		
			}
		}
		if (str.length > 0) {
			if (document.compareForm) {
				str = str.substring(1,str.length);
				document.compareForm.comparelids.value = str;
			}
			uel = uel.substring(1,uel.length);
			createCookie("compare", uel, 1);
		}
		else {
			if (document.compareForm) {
				str = "";
				document.compareForm.comparelids.value = str;
			}

			deleteCookie("compare");
		}

		if (chosen > 3) {
			disableBoxes(true);
		} else {
			disableBoxes(false);
		}
	}
	return;
}
function uncheck() {
	var formObj;
	if (document.search_results) {
		for (j = 0; j < document.search_results.elements.length; j++) {
			formObj=document.search_results.elements[j];
			if (formObj.type && formObj.type.toLowerCase() == "checkbox" && formObj.name.toLowerCase() == "comparecheckbox") {
				formObj.checked = false;	
			}
		}
	}
	disableBoxes(false);
	str = "";
	if (document.compareForm) {
		document.compareForm.comparelids.value = str;
	}
	deleteCookie("compare");
}

function disableBoxes(torf) { // 'torf' is short for: true or false
	var formObj;
	if (document.search_results) {
		for (j = 0; j < document.search_results.elements.length; j++) {
			formObj = document.search_results.elements[j];
			if (formObj.type && (formObj.type.toLowerCase() == "checkbox" && formObj.name.toLowerCase() == "comparecheckbox")) {
				if (torf) {// max selections made, disable all unselected
					if (formObj.checked) {
						formObj.disabled = false;
					} else {
						formObj.disabled = true;
					}
				} else {
					// If enabling boxes, set disabled( for all elements) to false
					formObj.disabled = false;
				}
			}
		}
	}
}

function validateCompare() {
	check(null);
	if ((chosen > 1) && (chosen < 5)) {
		if (document.compareForm) {
			document.compareForm.submit();
		}
	} else if (chosen < 2){
		alert("You must choose at least 2 listings to compare.");
	} else { // added to support older browsers
		alert("You can only compare a maximum of 4 firms.");
	}	
}
function page(obj) {
	check(null);
	return true;
}
function createCookie(name, value, hours) {
	var date = new Date();
	date.setTime(date.getTime()+(hours*60*60*1000)); // 1 hour
	var expires = "; expires="+date.toGMTString();
	document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for (var i = 0; i < ca.length; i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return "";
}
function deleteCookie(name) {
	createCookie(name, "", -1);
}