/**
 * Mirror Values Class
 *
 * Mirrors Values in Input Field
 *
 */

var Mirror_Values = Class.create({

	initialize: function(primary_element, secondary_element, filter_string) {

        this.primary_element = primary_element;
        this.secondary_element = secondary_element;
        this.filter_string = filter_string || false;
        this.secondary_element_edited = false;
        
        if(
        	this.secondary_element.value == '' || 
        	this.filter_value(this.primary_element.value).indexOf(this.secondary_element.value)==0
        	)
        {
        	
        }
        else
        {
        	this._set_edited();
        }
        
        this.secondary_element.observe('keypress',this._set_edited.bind(this));
        new Form.Element.Observer(this.primary_element, 0.1, this._mirror_values.bind(this));
        
    },
    
    _set_edited: function () {
    
    	this.secondary_element_edited = true;
    
    },
    
    check_edited: function () {
    	if(this.secondary_element_edited.value == '')
		{
			this.secondary_element_edited = false;
		}
		return this.secondary_element_edited;
    },
    
	_mirror_values: function () {
	
		if(this.check_edited() == false)	{
			
			this.secondary_element.value = this.filter_value(this.primary_element.value);
			
		}
					
	},
	
	filter_value: function (string) {
		if(this.filter_string == true)
		{
			return string.strip().toLowerCase().gsub(/[^a-z]+/,'_');
		}
		else
		{
			return string;
		}
	}
});
