
	//////////////////////////////////////////////////////////////////////////////
	//
	// Sofa Finder helper functions for sofasofa.com
	//
	// Copyright(c) Digivate 2007 - pAd
	//
	//////////////////////////////////////////////////////////////////////////////

	/////
	// Read all the fields with a .value member and crate a mod rewrite URL
	////
	function safeSubmit(form) {
		var url = rootdir+'';
		for(var i=0; i<form.elements.length; i++) {
			if (form.elements[i].name) {
				if (form.elements[i].type=='checkbox') {
					if (!form.elements[i].checked)
						continue;
				}
				url += form.elements[i].name+'/'+escape(form.elements[i].value.replace(/ /g, '+'))+'/';

			}
		}
		url += 'sofa-finder';
		document.location.href = url;
	}

	//////
	// set [prefix]All element if prefix named checkboxes are all checked
	///
	function setAllCheckbox(prefix) {
		var allChecked = true;
		try{
			var form = tsGetElementById('SofaFinder');

			for(var i=0; i<form.elements.length; i++) {
				if (form.elements[i].name.substr(0, prefix.length)==prefix) {
					if (form.elements[i].type!='checkbox') {
						continue;
					}
					if (form.elements[i].checked == false) {
						if (form.elements[i].name != prefix+'All') {
							allChecked = false;
							break;
						}
					}
				}
			}
		}
		finally{
			if (tsGetElementById(prefix+'All')!=null) {
				tsGetElementById(prefix+'All').checked = allChecked;
			}
		}
	}

	//////
	// set a set of checkboxes that share a name prefix
	///
	function setChecked(prefix, setting) {
		var form = tsGetElementById('SofaFinder');
		try{
			for(var i=0; i<form.elements.length; i++) {
				if (form.elements[i].type!='checkbox') {
						continue;
				}
				if (form.elements[i].name.substr(0, prefix.length)==prefix) {
					form.elements[i].checked = setting;
				}
			}
		}
		finally{
			setAllCheckbox(prefix);
		}
	}

	////
	// Short cuts...
	//////////////////////////////////////////
	function setSofasizeAllCheckbox() {
		setAllCheckbox('sofasize');
	}

	function setSofarangeAllCheckbox() {
		setAllCheckbox('sofarange');
	}

	function setSofacoverAllCheckbox() {
		setAllCheckbox('sofacover');
	}

	function setSofasizeChecked() {
		setChecked('sofasize', tsGetElementById('sofasizeAll').checked);
	}

	function setSofarangeChecked() {
		setChecked('sofarange', tsGetElementById('sofarangeAll').checked);
	}

	function setSofacoverChecked() {
		setChecked('sofacover', tsGetElementById('sofacoverAll').checked);
	}
	//////////////////////////////////////////

	//////
	// Initialise
	//
	// Assign Event Listeners
	///
	function initSofaFinder()
	{
		try {
			var form = tsGetElementById('SofaFinder');
			for(var i=0; i<form.elements.length; i++) {
				if (form.elements[i].type!='checkbox') {
						continue;
				}
				if (form.elements[i].name=='sofasizeAll') {
					tsAddEventListener(form.elements[i].name, 'click', 'setSofasizeChecked');
				}
				else if (form.elements[i].name.substr(0, 8)=='sofasize') {
					tsAddEventListener(form.elements[i].name, 'click', 'setSofasizeAllCheckbox');
				}
				else if (form.elements[i].name=='sofarangeAll') {
					tsAddEventListener(form.elements[i].name, 'click', 'setSofarangeChecked');
				}
				else if (form.elements[i].name.substr(0, 9)=='sofarange') {
					tsAddEventListener(form.elements[i].name, 'click', 'setSofarangeAllCheckbox');
				}
				else if (form.elements[i].name=='sofacoverAll') {
					tsAddEventListener(form.elements[i].name, 'click', 'setSofacoverChecked');
				}
				else if (form.elements[i].name.substr(0, 9)=='sofacover') {
					tsAddEventListener(form.elements[i].name, 'click', 'setSofacoverAllCheckbox');
				}
			}
		}


		finally {
			setAllCheckbox('sofasize');
			setAllCheckbox('sofacover');
			setAllCheckbox('sofarange');
		}

	}

	function viewAll()
	{
		tsGetElementById('sofasizeAll').checked = true;
		setChecked('sofasize', tsGetElementById('sofasizeAll').checked);
		//setAllCheckbox('sofasize');
		//tsGetElementById('SofaFinder').submit();
		safeSubmit(tsGetElementById('SofaFinder'));
	}


	////////
	//
	// Attach Event to current window
	//
	/////////////////////////////////////////////////////////////
	try {
		if( typeof(attachEvent) != "undefined" ) {
		  attachEvent('onload',initSofaFinder);
		} else if(typeof ( addEventListener ) != "undefined"  ) {
		  addEventListener('load',initSofaFinder,true);
		}
		else{
			setTimeout('initSofaFinder', 500);
		}
	}
	catch(err) {
		//alert(err.description);
	}
	/////////////////////////////////////////////////////////////


