
	var respArray = new Array();
	function fnRangeUpdate_AJAX(obj, extraName){
		var idRangeUl = extraName + 'search_range';
		var nodeRange = document.getElementById(idRangeUl);
		var idRangeInputEl = extraName + 'range_input_hidden';
		document.getElementById(idRangeInputEl).value = parseInt(obj.id.substring(obj.id.lastIndexOf('_')+1));

		var objParent = obj;
		var count = 0;
		while (objParent.id != idRangeUl){
			if (count > 10){break;}
			objParent = objParent.parentNode;
			count ++;
		}
	
		var allHrefEls = objParent.getElementsByTagName('a');
		
		for (var i = 0; i < allHrefEls.length; i++){
			allHrefEls[i].className = fnClassNameSet(allHrefEls[i].className, 'active', '');
		}
		obj.className = fnClassNameSet(obj.className, '', 'active');
		
		document.getElementById(extraName + 'submitSearchButton').getElementsByTagName('span')[0].innerHTML = 'SEARCH';//obj.getElementsByTagName('span')[0].innerHTML;
		//Update class
		fnQuantityUpdates_AJAX(extraName);
	}
	
	
	function fnRangeUpdateRadio_AJAX(obj, extraName){
		var idRangeInputEl = extraName + 'range_input_hidden';
		document.getElementById(idRangeInputEl).value = obj.value;
		var nodeCurrentDiv = obj.parentNode;
		
		document.getElementById(extraName + 'submitSearchButton').getElementsByTagName('span')[0].innerHTML = 'SEARCH';//nodeCurrentDiv.getElementsByTagName('label')[0].innerHTML;
		//Update class
		fnQuantityUpdates_AJAX(extraName);
	}
	
	function fnCategoryUpdate_AJAX(obj, extraName){
		var idCategorySelectFix = extraName + 'c_';
		var idCategoryLiFix = extraName + 'category_';
		var idCategoryDiv = extraName + 'category';
		
		var nodeCurrent = obj;
		var nodeCurrentLi = obj.parentNode;
		var nodeCategory = obj.parentNode.parentNode;

		var allCategorySelectEls = nodeCategory.getElementsByTagName('select');
		var lastCategorySelectEl = allCategorySelectEls[allCategorySelectEls.length-1];
		var nodeLastLi = lastCategorySelectEl.parentNode;
		
		var levelCurrentCategory = parseInt(nodeCurrentLi.id.substring(nodeCurrentLi.id.lastIndexOf('_')+1));
		var levelLastCategory = parseInt(nodeLastLi.id.substring(nodeLastLi.id.lastIndexOf('_')+1));
		
		var objNextSelect;
		
		var error = true;
		if (levelCurrentCategory == levelLastCategory){
			//alert("no remove category");
			objNextSelect = lastCategorySelectEl;
			error = false;
		}else if (levelCurrentCategory < levelLastCategory){
			var i = levelLastCategory;
			if (idCategorySelectFix + nodeCurrent.value != document.getElementById(idCategoryLiFix+i).getElementsByTagName('select')[0].id){
				while(i >= levelCurrentCategory + 1){
					var tmp_node = document.getElementById(idCategoryLiFix + i);
					objNextSelect = tmp_node.getElementsByTagName('select')[0];
					fnRemoveElementsFromNode(objNextSelect, 'option');
					tmp_node.getElementsByTagName('select')[0].disabled = true;
					tmp_node.getElementsByTagName('select')[0].style.display = 'none';
					i--;
				}
				error = false;
				
			}else{
				//alert("same select");
				return;
			}
		}else{
			//alert("error ")
			return;
		}
		
		var req = 1;
		if(obj.value==''){
			req = 3;
		}
		
		if (error == false){
			var nodeAttributeUlList = document.getElementById(extraName + 'attributes').getElementsByTagName('ul');
			for (var i = levelCurrentCategory; i < nodeAttributeUlList.length; i++){
				fnRemoveElementsFromNode(nodeAttributeUlList[i] , 'li');
			}
			ajaxresp = new Ajax.Request(root + 'public_panel/ajax/advanceSearch.php?mode=a&req='+req+'&lv='+levelCurrentCategory+'&'+fnRequestBulid(extraName), {
				method: 'get',
				onSuccess: function(resp) {
					eval('respArray = '+resp.responseText);
					fnCategoryUpdate(objNextSelect, extraName);
				}
			});
		}
	}
	
	
	function fnAttributesUpdates_AJAX(obj, extraName){
		ajaxresp = new Ajax.Request(root + 'public_panel/ajax/advanceSearch.php?mode=a&req=0&'+fnRequestBulid(extraName), {
			method: 'get',
			onSuccess: function(resp) {
				eval('respArray = '+resp.responseText);
				fnQuantityUpdates(extraName);
			}
		});
	}
	
	function fnExtraUpdates_AJAX(obj, extraName){
		fnQuantityUpdates_AJAX(extraName);
	}
	function fnAllLocationUpdates_AJAX(obj, extraName){
		var allLocationFlag = false;
		var name = extraName + 'Australia Wide';
		if(obj.checked == true){
			allLocationFlag = true;
		}else{
			name = extraName + document.getElementById(extraName + 'state_hidden_selected').value;
		}
		if (document.getElementById(extraName + 'location_select_sub').options.length < 1){
			allLocationFlag = true;
		}
		document.getElementById(extraName + 'location_select_sub').disabled = allLocationFlag;
		var top = fnGetMapPosition(name.substring(extraName.length));
		document.getElementById(extraName + 'au_map_container').style.backgroundPosition = '0 '+ top +'px';
	
		ajaxresp = new Ajax.Request(root + 'public_panel/ajax/advanceSearch.php?mode=a&req=0&'+fnRequestBulid(extraName), {
			method: 'get',
			onSuccess: function(resp) {
				eval('respArray = '+resp.responseText);
				fnQuantityUpdates(extraName);
			}
		});
		
	}
	function fnStateUpdates_AJAX(name, extraName){
		document.getElementById(extraName + 'location_checkbox_all').checked = false;
		document.getElementById(extraName + 'state_hidden_selected').value = name.substring(extraName.length);
		
		fnRemoveElementsFromNode(document.getElementById(extraName + 'location_select_sub') , 'option');
		var top = fnGetMapPosition(name.substring(extraName.length));
		document.getElementById(extraName + 'au_map_container').style.backgroundPosition = '0 '+ top +'px';
	
		ajaxresp = new Ajax.Request(root + 'public_panel/ajax/advanceSearch.php?mode=a&req=2&'+fnRequestBulid(extraName), {
			method: 'get',
			onSuccess: function(resp) {
				eval('respArray = '+resp.responseText);
				fnCityUpdates(extraName);
			}
		});
	}
	
	function fnMap(name, extraName){
		var top = fnGetMapPosition(name.substring(extraName.length));
		document.getElementById(extraName + 'au_map_self').style.backgroundPosition = '0 '+ top +'px';
	}
	
	function fnOrderUpdate_AJAX(extraName){
		fnQuantityUpdates_AJAX(extraName);
	}
	function fnCityUpdates_AJAX(extraName){
		fnQuantityUpdates_AJAX(extraName);
	}
	
	function fnQuantityUpdates_AJAX(extraName){
		ajaxresp = new Ajax.Request(root + 'public_panel/ajax/advanceSearch.php?mode=a&req=0&'+fnRequestBulid(extraName), {
			method: 'get',
			onSuccess: function(resp) {
				eval('respArray = '+resp.responseText);
				fnQuantityUpdates(extraName);
			}
		});
	}
	
	function fnCategoryUpdate(obj, extraName){
		if (respArray['category']['ary'].length > 0){
			obj.id = obj.id.substring(0, obj.id.lastIndexOf('_')+1) + respArray['category']['id']
			obj.innerHTML = respArray['category']['html'];
			obj.disabled = false;
			obj.style.display = '';
			for(var i = 0; i < respArray['category']['ary'].length ; i++){
				var oOption 	= document.createElement("OPTION");
				var oText		= document.createTextNode(respArray['category']['ary'][i]['text']);
				oOption.appendChild(oText);
				oOption.value	= respArray['category']['ary'][i]['value'];
				obj.appendChild(oOption);
			}
		}
		fnAttributesUpdates(extraName);
	}
	
	function fnAttributesUpdates(extraName){
		var intNumEnd = 0;
		//set attributes;
		var nodeAttributeUlList = document.getElementById(extraName + 'attributes').getElementsByTagName('ul');
		for (var i = 0; i < nodeAttributeUlList.length; i++){
			var num = parseInt(nodeAttributeUlList[i].id.substring(nodeAttributeUlList[i].id.lastIndexOf('_')+1));
			
			if (respArray['attribute']['html'][num]){
				nodeAttributeUlList[i].innerHTML = respArray['attribute']['html'][num];
				intNumEnd = num;
			}
		}
		
		fnQuantityUpdates(extraName);
	}
	
	
	
	function fnCityUpdates(extraName){
		document.getElementById(extraName + 'location_select_sub').disabled = false;
		fnRemoveElementsFromNode(document.getElementById(extraName + 'location_select_sub') , 'option')
		//set cities;
		var allLocationFlag = false;
		//document.getElementById(extraName + 'location_select_sub').innerHTML = respArray['city']['html'];
		if (respArray['city']['ary'].length < 1){
			allLocationFlag = true;
		}
		for(var i = 0; i < respArray['city']['ary'].length ; i++){
			var oOption 	= document.createElement("OPTION");
			var oText		= document.createTextNode(respArray['city']['ary'][i]['text']);
			oOption.appendChild(oText);
			oOption.value	= respArray['city']['ary'][i]['value'];
			
			document.getElementById(extraName + 'location_select_sub').appendChild(oOption);
		}
		
		document.getElementById(extraName + 'location_select_sub').disabled = allLocationFlag;
		
		fnQuantityUpdates(extraName);
	}
	
	function fnQuantityUpdates(extraName){
		var disableOrderSelect;
		var objSubmitLink = document.getElementById(extraName + 'submitSearchButton');
		if (respArray['result']!='' && respArray['result']!='-' && respArray['result']!=0){
			disableOrderSelect = false;
			objSubmitLink.className = fnClassNameSet(objSubmitLink.className, 'noDisplay', '')
		}else{
			disableOrderSelect = true;
			objSubmitLink.className = fnClassNameSet(objSubmitLink.className, '', 'noDisplay')
		}
		var objOrderSelectEls = document.getElementById(extraName + 'orderMode').getElementsByTagName('select');
		for(var i = 0; i < objOrderSelectEls.length; i++){
			objOrderSelectEls[i].disabled = disableOrderSelect;
		}
		document.getElementById(extraName + 'search_quantity').innerHTML = respArray['result'];
		fnHiddenEmptyLi();
		fnDisableEmptyOption();
	}

	
	function fnClassNameSet(objName, orgName, replaceName){
		var aryClassName = objName.split(' ');
		objName = '';
		
		var i = 0;
		var count = 0;
		while ( i < aryClassName.length){
			if (aryClassName[i] == orgName){
				if(count == 0){
					aryClassName[i] = replaceName;
				}else{
					aryClassName[i] = '';
				}
				count++;
			}
			objName += (aryClassName[i]!='')?aryClassName[i] + ' ':'';
			i++;
		}
		objName = (count == 0)?objName + ' ' + replaceName:objName;
		return objName;
	}
	
	function fnGetMapPosition(name){
		var top;
		switch (name){
			case 'Australia Wide':
				top='0';
			break;
			case 'Queensland':
				top='-112';
			break;
			case 'Northern Territory':
				top='-224';
			break;
			case 'Western Australia':
				top='-336';
			break;
			case 'South Australia':
				top='-448';
			break;
			case 'New South Wales':
				top='-560';
			break;
			case 'Victoria':
				top='-672';
			break;
			case 'Tasmania':
				top='-784';
			break;
			default:
				top='0';
			break;
		}
		return top;
	}
	
	function fnGetStateId(name){
		var id = '0';
		switch (name){
			case 'Queensland':
				id='3';
			break;
			case 'Northern Territory':
				id='4';
			break;
			case 'Western Australia':
				id='7';
			break;
			case 'South Australia':
				id='6';
			break;
			case 'New South Wales':
				id='2';
			break;
			case 'Victoria':
				id='1';
			break;
			case 'Tasmania':
				id='5';
			break;
			case 'location_checkbox_all':
			default:
			break;
		}
		return id;
	}
	
	function fnRequestBulid(extraName){
		var idRangeUl = extraName + 'search_range';
		var nodeRange = document.getElementById(idRangeUl);
		var idRangeInputEl = extraName + 'range_input_hidden';
		var strRange = 'r=' + document.getElementById(idRangeInputEl).value;
		
		var idCategoryUl = extraName + 'category';
		var nodeCategory = document.getElementById(idCategoryUl);
		var allCategorySelectEls = nodeCategory.getElementsByTagName('select');
		var lastCategorySelectEl;
		var i = 0;
		while (i < allCategorySelectEls.length){
			if (allCategorySelectEls[i].value > 0){
				lastCategorySelectEl = allCategorySelectEls[i];
			}
			i++;
		}
		if(lastCategorySelectEl==null){
			lastCategorySelectEl = '';
		}
		var strCategory = 'category='+lastCategorySelectEl.value;
		//$('to1').innerHTML = allCategorySelectEls.length;
		var idAttributesDiv = extraName + 'attributes';
		var nodeAttributesDiv = document.getElementById(idAttributesDiv);
		var allAttributesSelectEls = nodeAttributesDiv.getElementsByTagName('select');
		
		var aryAttribute = new Array();
		i = 0;
		var strAttrCategoryId;
		var strAttrAttributeId;
		while (i < allAttributesSelectEls.length){
			var tmpAttr = allAttributesSelectEls[i].id.split('_');
			strAttrCategoryId = tmpAttr[1];
			strAttrAttributeId = tmpAttr[2];
			if(allAttributesSelectEls[i].selectedIndex > 0){
				aryAttribute.push('a['+strAttrCategoryId+']['+strAttrAttributeId+']='+encodeURIComponent(allAttributesSelectEls[i].options[allAttributesSelectEls[i].selectedIndex].value));
			}
			i++
		}
		var strAttribute = aryAttribute.join('&');
		
		var idOrderModeUl = extraName + 'orderMode';
		var nodeOrderMode = document.getElementById(idOrderModeUl);
		var allOrderModeSelectEls = nodeOrderMode.getElementsByTagName('select');
		var strOrderMode = allOrderModeSelectEls[0].value;
		
		var idExtraUl = extraName + 'extra';
		var idQualityLi = extraName + 'extra_quality';
		var nodeExtra = document.getElementById(idExtraUl);
		var nodeQuality = document.getElementById(idQualityLi);
		var allQualityInputEls = nodeQuality.getElementsByTagName('input');
		
		var strQuality = '';
		i = 0;
		while (i < allQualityInputEls.length){
			if (allQualityInputEls[i].checked == true){
				strQuality = 'q='+allQualityInputEls[i].value;
			}
			i++;
		}
		
		var idLocationAllLi = extraName + 'extra_location';
		var nodeLocationAll = document.getElementById(idLocationAllLi);
		var locationAllInputEl = document.getElementById(extraName + 'location_checkbox_all');
		
		var idStateLi = extraName + 'extra_state';
		var nodeState = document.getElementById(idStateLi);
		var stateInputEl = document.getElementById(extraName + 'state_hidden_selected');
		
		var idCityLi = extraName + 'city';
		var nodeCity = document.getElementById(idCityLi);
		var cityInputEl = document.getElementById(extraName + 'location_select_sub');
		
		var aryLocation = new Array();
		
		if (locationAllInputEl.checked == true){
			aryLocation.push('la=1');
			aryLocation.push('ls=0');
			aryLocation.push('lc=0');
		}else if(cityInputEl.value == ''){
			aryLocation.push('la=0');
			aryLocation.push('ls='+fnGetStateId(stateInputEl.value));
			aryLocation.push('lc=0');
		}else{
			aryLocation.push('la=0');
			aryLocation.push('ls='+fnGetStateId(stateInputEl.value));
			aryLocation.push('lc='+cityInputEl.value);
		}
		var strLocation = aryLocation.join('&');
		
		var sourceForm = 'sf=' + extraName;
		
		var query = sourceForm + '&' + strRange + '&' + strCategory + '&' + strAttribute + '&' + strQuality + '&' + strLocation + '&' + strOrderMode;

		return query;
	}
	
	function fnPageSearch(extraName){
		var objSubmitLink = document.getElementById(extraName + 'submitSearchButton');
		var aryClassName = objSubmitLink.className.split(' ');
		var i = 0;
		while ( i < aryClassName.length){
			if (aryClassName[i] == 'noDisplay'){
				return;
			}
			i++;
		}
		
		//var jmpUrl = document.location.protocol+'//'+document.location.hostname
		//jmpUrl += document.location.pathname.substring(0, document.location.pathname.lastIndexOf('/')+1);
		//jmpUrl += 'result_listing.php?mode=a&'+fnRequestBulid(extraName);
		var jmpUrl = root + 'public_panel/result_listing.php?mode=a&'+fnRequestBulid(extraName);
		document.location = jmpUrl;
		return ;
	}
	fnHiddenEmptyLi();
	function fnHiddenEmptyLi(){
		var aryForm = document.forms;
		for(var i = 0; i < aryForm.length; i++){
			var objForm = aryForm[i];
			var aryUl = objForm.getElementsByTagName('ul');
			for(var u = 0; u < aryUl.length; u++){
				var objUl = aryUl[u];
				var aryLi = objUl.getElementsByTagName('li');
				for(var l = 0; l < aryLi.length; l++){
					var objLi = aryLi[l];
					var arySelect = objLi.getElementsByTagName('select');
					if(arySelect[0]){
						if (arySelect[0].style.display == 'none'){
							objLi.style.display = 'none';
						}else{
							objLi.style.display = '';
						}	
					}
				}
				
				if (aryLi.length < 1){
					objUl.style.display = 'none';
				}else{
					objUl.style.display = '';
				}
				
			}
		}
	}
	fnDisableEmptyOption();
	function fnDisableEmptyOption(){
		var aryForm = document.forms;
		for(var i = 0; i < aryForm.length; i++){
			var objForm = aryForm[i];
			var arySelect = objForm.getElementsByTagName('select');
			for(var s = 0; s < arySelect.length; s++){
				var objSelect = arySelect[s];
				var aryOption = objSelect.getElementsByTagName('option');
				if(!aryOption || aryOption.length < 1){
					//alert(objSelect.id + 'disable')
					objSelect.disabled = true;
				}else{
					//alert(objSelect.id + 'enable')
					//objSelect.disabled = false;
				}
			}
		}
	}