/*
 * Handle on change of office dropdown
 */
function onChangeOffice(officeSelect){
  /*
   * Set office cookie and clear suburb and area cookies
   */
  
  officeLink = officeSelect[officeSelect.selectedIndex].value;
  setCookie('office', officeLink);
  clearCookie('suburb');
  clearCookie('multipleSuburb');
  clearCookie('officeArea');  
  /*
   * Redirect to office page...
   */
  document.location.href = officeLink; 
  
  return false;
}

/*
 * Handle on change of area dropdown
 */
function onChangeArea(areaSelect){
  /*
    * Clear suburb cookie and reload suburb list for this area...
    */
  if (areaSelect){
   setCookie('officeArea', areaSelect[areaSelect.selectedIndex].value);
  }  
  clearCookie('suburb');
  clearCookie('multipleSuburb');
  populateSuburbs(areaSelect);
  populateMultiSuburbBox();
  return false;
}

/*
 * Handle on change of suburb dropdown
 */
function onChangeSuburb(suburbSelect){
  if (suburbSelect){
    setCookie('suburb', suburbSelect[suburbSelect.selectedIndex].value);
  }
  return false; 
}

/*
 * Handle on change of multiple suburb dropdown
 */
function onChangeMultipleSuburb(suburb){
 
 if(suburb.name == "multiSuburb_" && suburb.checked == true){
   
  setCookie('multipleSuburb', 'all');
   
 }
 else{
   var firstLoop = true;
   var selectedSuburbs = "";
   var suburbs = getElementsByClass("suburbCheckBox");
   for(var i=0;i<suburbs.length;i++){
      if (suburbs[i].checked){
        if(firstLoop == false){
            selectedSuburbs = selectedSuburbs + ",";
        }
        selectedSuburbs = selectedSuburbs + suburbs[i].id; 
        if(firstLoop == true){
          firstLoop = false;
        }
      }  
    }
   setCookie('multipleSuburb', selectedSuburbs);
 }
 toggleDisplay();
 return true;
}

/*
 * Handle on change of min price select
 */
function onChangeMinPrice(minPriceSelect){
  if (minPriceSelect){
    setCookie('minPrice', minPriceSelect[minPriceSelect.selectedIndex].value);
  }
  return true;
}

/*
 * Handle on change of max price select
 */
function onChangeMaxPrice(maxPriceSelect){
  if (maxPriceSelect){
    setCookie('maxPrice', maxPriceSelect[maxPriceSelect.selectedIndex].value);
  }
  return true;
}

/*
 * Handle on change of category select
 */
function onChangeCategory(categorySelect){
  if (categorySelect){
    setCookie('category', categorySelect[categorySelect.selectedIndex].value);
  }
  return true;
}

/*
 * Handle on change of bedrooms select
 */
function onChangeBedrooms(bedroomsSelect){
  if (bedroomsSelect){
    setCookie('bedrooms', bedroomsSelect[bedroomsSelect.selectedIndex].value);
  }
  
  return true;
}

/*
 * Clear cookie
 */
function clearCookie(name){
  var curdate = new Date();
  setCookieFull(name, '', curdate.getFullYear() - 1, 1, 1);
  toggleDisplay();
}

/*
 * Simple wrapper for setCookieX
  */
function setCookie (name, value){
  var curdate = new Date();
  setCookieFull(name, value, curdate.getFullYear() + 10, 1, 1);
}

/*
 * Creates a cookie
 */
function setCookieFull (name, value, exp_y, exp_m, exp_d, path, domain, secure ){
  var cookie_string = name + "=" + escape ( value );
  if ( exp_y )  {
    var expires = new Date ( exp_y, exp_m, exp_d );
    cookie_string += "; expires=" + expires.toGMTString();
  }
  if ( path ){
    cookie_string += "; path=" + escape ( path );
  }
  if ( domain ){
    cookie_string += "; domain=" + escape ( domain );
  }
  if ( secure ){
    cookie_string += "; secure";
  }
  document.cookie = cookie_string;
}

/*
 * Returns a cookie
 */
function getCookie ( cookie_name ){
  var results = document.cookie.match ( cookie_name + '=(.*?)(;|$)' );
  if ( results ){
    return ( unescape ( results[1] ) );
  }
  else{
    return null;
  }
}

//grabs all elements of a specified classname and packs it into an array. 
function getElementsByClass(searchClass,node,tag) {
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}

function clearAllAreaCookies(){
  clearCookie('suburb');
  clearCookie('multipleSuburb');
  clearCookie('officeArea');
  clearCookie('office');
  populateMultiSuburbBox();
  return true;
}