CYA = {
	
	_initHooks: [],
	_initialised: false,
	
	init: function()
	{
		CYA._initHooks.each( function( fn ) { fn(); } );
		
		CYA._initialised = true;
		
		new SmoothScroll();
	},
	
	onInit: function( fn )
	{
		if ( CYA._initialised )
			fn();
		else
			CYA._initHooks.push( fn );
	}
	
}

CYA.FormTools = {
	
	removeDefaults: function( data, fields )
	{
		for ( var i in fields )
		{
			if ( data[ i ] == fields[ i ] )
				data[ i ] = '';
		}
		
		return data;
	},
	
	validateFields: function( data, fields )
	{
		var rtn = true;
		
		for ( var i in fields )
		{
			if ( !$chk( data[ i ] ) )
			{
				alert( fields[ i ] );
				rtn = false;
				break;
			}
		}
		
		return rtn;
			
	},
	
	initDefaultValueAsHint: function( field, defaultValue, passwordField )
	{
		var $field = $( field );
		
		if ( !$field )
			return;
		
		if ( !$chk( field.value ) )
			$field.value = defaultValue;
		
		$field.addEvent( 'focus', function() {
				
				if ( this.value != defaultValue )
					return;
				
				if ( passwordField && Browser.Engine.name != 'trident' )
					this.setProperty( 'type', 'password' );
				
				this.value = '';
								
				this.setStyle( 'color', '#333333' );
			
			})
			.addEvent( 'blur', function() {
				
				if ( !this.value.length )
				{
					if ( passwordField && Browser.Engine.name != 'trident' )
						this.setProperty( 'type', 'text' );
					
					this.value = defaultValue;
				}
			
			});
		
		return $field;
	},
	
	getValue: function( form, key )
	{
	    var form = $( form );
	    var inputValue = form[ key ].value; // default to the value of the field in case we sent the function a text input field or a select field
	    
	    // just return the value if its an invalid field (see above)
	    if ( !form[ key ].length )
	        return inputValue;
	
	    // otherwise loop through all the fields until we get a true value, then return it
	    for ( var i = 0; i <= form[ key ].length - 1; i++) {
	    
	        var inputValue = form[ key ][ i ].checked;
	
	        if ( inputValue )
	        {
	            // $log( 'found true value, returning: ' + inputValue )
	            
	            var inputValue = form[ key ][ i ].value;
	            
	            return inputValue; 
	        }
        
		}

	}
	
}

window.addEvent( 'domready', function() {
	
	CYA.init();
	
})