var DoSearch = Class.create();

DoSearch.prototype = {
	initialize: function( el ){
		this.formEl = $(el);
		Event.observe( this.formEl, 'submit', this.cancel_submit.bind( this ) );
		var btns = this.formEl.getElementsByTagName( 'input' );
		for( asdf=0; asdf<btns.length; asdf++ )
			if( btns[asdf].type == 'button' || btns[asdf].type == 'submit' || btns[asdf].type == 'image' )
				Event.observe( btns[asdf], 'click', this.do_it.bind(this) );
	},
	cancel_submit: function( event ){
		try{
			Event.stop( event );
		}catch( e ){
			alert( e );
		}
	},
	do_it: function(){
		//var url = document.location.pathname;
		var url = '';

		this.__do_select_alls();

		var els = this.formEl.getElementsByTagName( 'input' );
		url += this.__get_url_args( els );
        url = url.replace( 'action/', '' );
        url = url.replace( 'textfield/Enter MLS Number or Any part of address/', '' );
        //url = url.replace( 'show_listings/show_listings/', '' );
		//alert(url);
		//url += this.__get_url_args_for_checkboxes( els );

		els = this.formEl.getElementsByTagName( 'select' );
		url += this.__get_url_args( els );
		url = url.replace( '//', '/' );
/*
		try{
			var viewType = this.__get_url_args_for_checkboxes( this.formEl.view ).substr( 6 );
			if( viewType != "" )
				url += "?view=" + viewType;
		}catch(e){

		}
*/
		var new_url = url.replace( '//', '/' );
		document.location = new_url;
	},
	__get_url_args: function( els ){
		var url_args = '';
		for( ec=0; ec<els.length; ec++ ){
			if( els[ec].type == 'button' )       continue;
			if( els[ec].type == 'checkbox' )     continue;
			if(els[ec].tagName.toLowerCase() != 'select' )
			     var value = $F(els[ec]);
			else
			     var value = els[ec].options[ els[ec].selectedIndex ].value;
			if( (value != null && value != '') && els[ec].name != '' )
				url_args += '/' + els[ec].name + '/' + value;
		}
		return url_args;
	},
	__get_url_args_for_checkboxes: function( els ){
		var url_args = {};
		for( ec=0; ec<els.length; ec++ ){
			if( els[ec].type != 'checkbox' && els[ec].type != 'radio' )	continue;
			if( els[ec].checked ){
				if( typeof url_args[ els[ec].name ] == "undefined" )
					url_args[ els[ec].name ] = els[ec].value;
				else
					url_args[ els[ec].name ] += ','+els[ec].value;
			}
		}
		url = '';
		for( name in url_args )
			url += '/'+name+'/'+url_args[name];
		return url;
	},
	__do_select_alls: function(){
		var selects = document.getElementsByClassName( 'SelectAll', this.formEl );
		for( sc=0; sc<selects.length; sc++ ){
			var options = selects[sc].options;
			for( oc=0; oc<options.length; oc++ )
				options[oc].selected = true;
		}
	}
}

DoSearch.InitPage = function(){
	var els = $$( '.DoSearch' );
	for( c=0; c<els.length; c++ )
		new DoSearch( els[c] );
}

Event.observe( window, 'load', DoSearch.InitPage );
