Array.prototype.contains = function (element) 
{
    for (var i = 0; i < this.length; i++) 
    {
        if (this[i] == element) 
        {
            return true;
        }
    }
    return false;
};
  

YAHOO.namespace( 'rba_corporate_helpers' );
YAHOO.rba_corporate_helpers.Helpers = function () 
{
    // handy shortcuts
    var Dom = YAHOO.util.Dom;
    var Connect = YAHOO.util.Connect ;
    
    // private members
    var _viewURL = 'rba/get_download_link';
    var _allowedTypes = [ 'pdf', 'image' ];
    
    // public methods
    return {
        buildDownloadLink : function ( arguments )
        {
            var nodeId = arguments.nodeId;
            var baseURL = arguments.baseURL + '/' + _viewURL + '/' + nodeId;
            var targetElement = Dom.get( arguments.targetElId );
            var errorMessage = arguments.errorMessage;

            if ( ! _allowedTypes.contains( arguments.type ) )
                return false;
            
            baseURL += '/' + arguments.type;
            
            var responseSuccess = function(o){
                if( o.responseText !== undefined )
                {
                    o.argument.targetElement.innerHTML = o.responseText;
                }             
            };
            
            var responseFailure = function(o)
            {
                if( o.responseText !== undefined )
                {      
                    // o.argument.targetElement.innerHTML = o.argument.errorMessage;
                }
            }

            var args = { 
                         targetElement: targetElement,
                         errorMessage: errorMessage 
                       };
                                   
            var callback =
            {
              success:responseSuccess,
              failure:responseFailure,
              cache:false,
              argument:args
            };
            
            var request = Connect.asyncRequest( 'GET', baseURL, callback );
        }
    }
}(); // Execute the function, returning the object literal
