/*global-block-begin*/


var recentlyModifiedCurrentJavaClass = null,
    recentlyModifiedQueryClause = null,
    recentlyModifiedIncludeUnpublished = false,
    recentlyModifiedMaxHitCount = 20;

function getHtmlRecentlyModifiedLoadedDiv(recentlyModifiedForm) {
    var html = '', 
        javaClass = recentlyModifiedForm.getJavaClass(),
        className = barrique.getClassNameFromJavaClass(javaClass),
        recentlyModifiedArtifacts = recentlyModifiedForm.getArtifacts();
    
    if (recentlyModifiedArtifacts.length > 0) {
        for (var i = 0; i < recentlyModifiedArtifacts.length; i++) {
            var context = {};
            html += recentlyModifiedArtifacts[i].getTarget().getHtmlRecentlyModified(context);
        }
    } else {
        html += '<i>No '+className+'s</i>';
    }
    
    var id = 'RecentlyModified'+className+'Div',
        recentlyModifiedDiv = document.getElementById(id);
    if (!recentlyModifiedDiv) {
    	recentlyModifiedDiv = document.createElement('div');
    	recentlyModifiedDiv.id = id;
    	if (recentlyModifiedCurrentJavaClass == null) {
            recentlyModifiedCurrentJavaClass =  javaClass;
    	    recentlyModifiedDiv.style.display = 'block';
    	    document.getElementById('RecentlyModified'+className+'Title').className = 'recently-modified-title-active';
        } else {
    	    recentlyModifiedDiv.style.display = 'none';
	    }
    	document.getElementById('RecentlyModifiedContainer').appendChild(recentlyModifiedDiv);
	}
    recentlyModifiedDiv.innerHTML = html;
}

function onRecentlyModifiedActivate(javaClass) {
    if (javaClass == recentlyModifiedCurrentJavaClass) { return; }
    
    var className = barrique.getClassNameFromJavaClass(javaClass);
    
    var id = 'RecentlyModified'+className+'Div',
        recentlyModifiedDiv = document.getElementById(id),
        recentlyModifiedTitle = document.getElementById('RecentlyModified'+className+'Title');
    if (recentlyModifiedDiv == null) {
        recentlyModifiedDiv = document.createElement('div');
        recentlyModifiedDiv.id = id;
        recentlyModifiedDiv.innerHTML = 'Loading...';
        document.getElementById('RecentlyModifiedContainer').appendChild(recentlyModifiedDiv);
        serverManager.asyncRequest('search/RecentlyModified', null, new AsyncRequestCallback(getHtmlRecentlyModifiedLoadedDiv, function() {}), 
                {javaClass:javaClass,queryClause:recentlyModifiedQueryClause,
                 includeUnpublished:recentlyModifiedIncludeUnpublished,maxHitCount:recentlyModifiedMaxHitCount});
    }
    recentlyModifiedDiv.style.display = 'block';
    
    if (recentlyModifiedCurrentJavaClass != null) {
        var oldClassName = barrique.getClassNameFromJavaClass(recentlyModifiedCurrentJavaClass),
            oldDiv = document.getElementById('RecentlyModified'+oldClassName+'Div'),
            oldTitle = document.getElementById('RecentlyModified'+oldClassName+'Title');
        oldDiv.style.display = 'none';
        oldTitle.className = 'recently-modified-title';
    }
    if (recentlyModifiedTitle != null) { recentlyModifiedTitle.className = 'recently-modified-title-active'; }
    recentlyModifiedCurrentJavaClass = javaClass;
}

function getRecentlyModifiedTitle(javaClasses) {
    var recentlyModifiedTitle = '';
    for (var i = 0; i < javaClasses.length; i++) {
        var javaClass = javaClasses[i],
            className = barrique.getClassNameFromJavaClass(javaClass);
        
        if (recentlyModifiedTitle.length == 0) {
            recentlyModifiedTitle += 'Featured - ';
        } else {
            recentlyModifiedTitle += ' | ';
        }
        recentlyModifiedTitle += '<a onClick="onRecentlyModifiedActivate(\''+javaClass+'\')" id="RecentlyModified'+className+'Title" class="recently-modified-title">'+className+'s</a>';
    }
    return recentlyModifiedTitle;
}

function tagRecentlyModifiedDiv(args, nestedHtmlGetter) {
    var html = '',
        javaClasses = typeof(args.javaClasses) != 'undefined' ? args.javaClasses : [args.javaClass];
        javaClass = javaClasses[0];
        
    recentlyModifiedQueryClause = args.queryClause ? args.queryClause : null; 
        
    html += '<div id="RecentlyModifiedContainer">';
    if (nestedHtmlGetter != null) { html += nestedHtmlGetter(); }
    html += '</div>';
    pageContext.addOnLoad(function() {onRecentlyModifiedActivate(javaClasses[0]);});
    return html;
}

barrique.base.artifact.Item.prototype.getHtmlRecentlyModified = function(context) { 
    return '<div class="recently-modified-entry-div">'+this.getHtmlSearchHit(context)+'</div>'; 
}


/*global-block-end*/
/*function-begin (getHeadHtml2r) */
function getHeadHtml2r() {
    var html = '';
    html += '\n\n\n\n\n';
    return html;
}
/*function-end (getHeadHtml2r) */
/*function-begin (getBodyHtml2r) */
function getBodyHtml2r() {
    var html = '';
    return html;
}
/*function-end (getBodyHtml2r) */
