/* Updates the address plugin with the appropriate parameters. 
 * Checks to make sure we keep or override old params, and 
 * remove blank ones. 
 */
function update_address( params){
	
	params = get_smart_params( params ); 
	var address = ''; 
	
	// build address
	address += '?';
	for (var name in params) {
		if (params[name] != '') { // get rid of empty params
			address += name + '=' + params[name] + '&';
		}
	}
	
	// TODO: Hack to get sorting to work
	// For some reason, IE loses the sort param. Don't know if it loses the last added param
	// or there's some other reason for the loss.
	if ( params['sort'] == 'raves' || params['sort'] == 'date') {
		if ( address.indexOf("sort") <= -1 )
			address += 'sort=' + params['sort'] + '&';
	}
	
	// remove last '&' 
	address = address.substring(0, address.lastIndexOf('&'));
	
	$.address.value(address); 
}	

/* Helper function to be smart about loading parameters. 
 * Keep old ones that aren't overwritten, replace the ones that are, 
 * and get rid of params that are blank.
 */
function get_smart_params( params ){ 

	var old_params=new Array(); // keep old params unless they are overwritten 
	var old_param_names = $.address.parameterNames(); 
	for (var old_name_index in old_param_names) {
		var old_name = old_param_names[old_name_index]; 
		old_params[old_name] = $.address.parameter(old_name); 
	} 
	
	// replace params that are the same and add new params
	for(var name in params) {
		old_params[name] = params[name]; 
	} 
	return old_params; 
}

