var SITEURL = "http://"+window.location.hostname;

function ShowHide(){
  // CROSS-BROWSER, GENERIC
  // Hide or show the object - the method used depends on the user's browser.

  // First parameter: name of object to show/hide
  // Second parameter: whether to hide, show or reverse the current status of the object.
  //   Values are: 'hidden', 'visible', 'reverse'
  //   Second param is optional if a third parameter is not supplied. When left out, the
  //   second param defaults to 'reverse'
  // Third parameter: if to affect surrounding content - 'reflow' or 'fixed'
  //   Defaults to 'reflow'
  //   When 'reflow', content below the object moves up or down depending on whether
  //   the object is visible or not. This uses (for W3C) the display style property.
  //   When 'fixed', showing or hiding the object does not affect other parts of the
  //   page. This uses (for W3C) the visibility style propery.
  
  // E.g. ShowHide('divLayer1') or ShowHide('divLayer1','visible') or
  // ShowHide('divLayer1','reverse','chkBox1')

  // Get arguments
  Args = ShowHide.arguments;

  // If the first argument doesn't exist, leave function
  if(Args.length>0) Args = new Array(Args[0], Args[1], Args[2]);
  else return false;

  switch (Args[1])
  {
    case 'hidden':
      // If the second argument is 'hidden', hide the object using the method appropriate to the browser
      if(Args[2] == 'fixed')
      {
      // Use the visibility property
        if(document.getElementById) document.getElementById(Args[0]).style.visibility = 'hidden';
        else if(document.all[Args[0]]) document.all[Args[0]].style.visibility = "hidden";
        else if(document.layers) document.layers[Args[0]].visibility = "hide";
        else return false;
				
				return true;
      }
      else
      {  
        // Use the display property 
        if(document.getElementById) {document.getElementById(Args[0]).style.display = 'none';}
        else if(document.all[Args[0]]) document.all[Args[0]].style.display = "none";
        else if(document.layers) document.layers[Args[0]].visibility = "hide";
        else return false;
				
				return true;
      }
      break;
    case 'visible':
      // If the second argument is 'visible', hide the object using the method appropriate to the browser
      if(Args[2] == 'fixed')
      {  
        if(document.getElementById) document.getElementById(Args[0]).style.visibility = 'visible';
        else if(document.all[Args[0]]) document.all[Args[0]].style.visibility = "visible";
        else if(document.layers) document.layers[Args[0]].visibility = "show";
        else return false;
				
				return true;
      }
      else
      {
        if(document.getElementById) document.getElementById(Args[0]).style.display = 'block';
        else if(document.all[Args[0]]) document.all[Args[0]].style.display = "block";
        else if(document.layers) document.layers[Args[0]].visibility = "show";
        else return false;    
				
				return true;
      }
      break;
    default:
      // Else if the object is current visible set to hidden else set to visible
   
      if(document.getElementById)
      {
        // Use getElementByID method for IE5+ and NS6+ (W3C standard)
        if(Args[2] == 'fixed')
        {
          if(document.getElementById(Args[0]).style.visibility == 'visible') document.getElementById(Args[0]).style.visibility = 'hidden';
          else document.getElementById(Args[0]).style.visibility = 'visible';
					
					return true;
        }
        else
        {
          if(document.getElementById(Args[0]).style.display == 'block') document.getElementById(Args[0]).style.display = 'none';
          else document.getElementById(Args[0]).style.display = 'block';
        
					return true;
				}

      }
      else 
      {
        if(document.all[Args[0]])
        {
          if(Args[2] == 'fixed')
          {
            // Use document.all method for older IE
            if(document.all[Args[0]].style.visibility == 'visible') document.all[Args[0]].style.visibility = 'hidden';
            else document.all[Args[0]].style.visibility = 'visible';
						return true;
          }
          else
          {
            if(document.all[Args[0]].style.display == 'block') document.all[Args[0]].style.display = 'none';
            else document.all[Args[0]].style.display = 'block';    
						return true;
          }
        }
        else 
        {
          // Try to use NS4 layers
          if(document.layers[Args[0]])
          {
            if(document.layers[Args[0]].visibility = "show") document.layers[Args[0]].visibility = "hide";
            else document.layers[Args[0]].visibility = "show";
						return true;
          }
          else
          {
            // Give up
            return false;
          }  // give up
        }  // NS
      }  // IE4
    }
		return;// end of Switch
  }
	
	
function GetXmlHttpObject(handler){ 
	var objxml = null;  
	var ProgID = ["Msxml2.XMLHTTP.6.0", "Msxml2.XMLHTTP.3.0","Msxml2.XMLHTTP", "Microsoft.XMLHTTP"];               
	try {  
		objxml = new XMLHttpRequest();  
	}  
	catch(e) {  
		for (var i = 0; i < ProgID.length; i++){  
			try {  
				objxml = new ActiveXObject(ProgID[i]);  
			}  
      catch(e) {  
				continue;  
      }  
    }  
  } 
	objxml.onreadystatechange=handler;
	return objxml;
}


// ADD A SEARCH FILTER
function add_search_filter() {
	filter_type = document.getElementById('add_filter').options[document.getElementById('add_filter').selectedIndex].value;
	
	if(document.getElementById('add_filter').options[document.getElementById('add_filter').selectedIndex].disabled == true){
		alert("You cannot select a search filter more than once.");
	}
	else{
		document.getElementById('add_filter').options[document.getElementById('add_filter').selectedIndex].disabled = true;
		if(filter_type != ''){
			document.getElementById('add_filter').selectedIndex=0;
			document.getElementById('loading_holder').innerHTML = '<img src="'+SITEURL+'/imgs/ajax-loader.gif" style="vertical-align:middle"/>';
			
			var d = new Date();
			var time = d.getTime();
			var url= SITEURL + "/libs/ajax/ajax_add_filter.php?timestamp="+time;
			
			params = "filter="+filter_type;
			//alert(url);
			xmlHttp_add_search_filter = GetXmlHttpObject(add_search_filter_helper);//fails on safari 1
			xmlHttp_add_search_filter.open("POST", url , true);
			
			xmlHttp_add_search_filter.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			xmlHttp_add_search_filter.setRequestHeader("Content-length", params.length);
			xmlHttp_add_search_filter.setRequestHeader("Connection", "close");
			xmlHttp_add_search_filter.send(params);
		}
	}
}


function add_search_filter_helper() {
	if (xmlHttp_add_search_filter.readyState==4 || xmlHttp_add_search_filter.readyState=="complete") {
		document.getElementById('loading_holder').innerHTML = '';
		document.getElementById('filters').innerHTML = document.getElementById('filters').innerHTML + xmlHttp_add_search_filter.responseText;		
		document.getElementById('apply_filter_btn').disabled = false;
	}
}

function trim(str) {
  var newstr;
  newstr = str.replace(/^\s*/, "").replace(/\s*$/, ""); 
  newstr = newstr.replace(/\s{2,}/, " "); 
  return newstr;
} 


// REMOVE A SEARCH FILTER
function remove_search_filter(filter_id){
	parent = document.getElementById(filter_id).parentNode;
	element = document.getElementById(filter_id);
	parent.removeChild(element);

	filter = filter_id.split('-');
	document.getElementById('filter-add-'+filter[1]).disabled = false;
	if(trim(document.getElementById('filters').innerHTML) == ''){
		
		document.getElementById('apply_filter_btn').disabled = true;
	}
}


// ADD A SEARCH FILTER
function filter_show_hide() {
	var filter_control = document.getElementById('filter_control');
	
	ShowHide('filter_form');
	filter_status = filter_control.innerHTML;
	if(filter_status == 'Show'){
		filter_control.innerHTML = 'Hide';
	}
	else{
		filter_control.innerHTML = 'Show';
	}
	
	var d = new Date();
	var time = d.getTime();
	var url= SITEURL + "/libs/ajax/ajax_filter_show_hide.php?timestamp="+time;
	
	params = "filter="+filter_status;
	//alert(url);
	xmlHttp_show_hide_filter = GetXmlHttpObject(filter_show_hide_helper);//fails on safari 1
	xmlHttp_show_hide_filter.open("POST", url , true);
	
	xmlHttp_show_hide_filter.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp_show_hide_filter.setRequestHeader("Content-length", params.length);
	xmlHttp_show_hide_filter.setRequestHeader("Connection", "close");
	xmlHttp_show_hide_filter.send(params);
	
}



function filter_show_hide_helper() {

}