var RNS = Class.create();
Object.extend(Object.extend(RNS.prototype,fs_ajax.prototype), {
	_parent:fs_ajax.prototype,
	debugMode:false,
	tabs:"",
	viewMode:"image",
	initialize: function(ajaxUrl,outputId,rnsName,tabsId) {
	    // call the parents initialize with params
 	    this._parent.initialize.call(this,{ajaxUrl:ajaxUrl,outputId:outputId,name:rnsName});
		this.tabs=$(tabsId);
		this.setAjaxPars("mode=rns");
	},
	setViewMode: function(viewMode,tab) {
		this.ajaxPars="mode=rns";
		this.setAjaxPars("view="+viewMode);

		this.update();
	},
	success: function(formId) {
	    this.animateOut();
		this.activateTooltips();
	},
	animateOut: function() {
		this.debug("animateOut");
		if (this.viewMode=="image"||this.viewMode=="video") {
			this.animateIn();
		} else {
			new Effect.Opacity(this.outputId,{fps:60,duration:0.5,from:1.0,to:0,queue:{position:'end',scope:this.name},afterFinish:this.animateIn.bind(this)});
		}
		// To form a queue for our animation, we use the widgets name
	},
	animateIn: function() {
		this.debug("animateIn");
		if (this.viewMode=="image"||this.viewMode=="video") {
			this.evaluateScripts();
		} else {
			new Effect.Opacity(this.outputId,{fps:60,duration:0.5,from:0,to:1.0,queue:{position:'end',scope:this.name},afterFinish:this.evaluateScripts.bind(this)});
		}
		this._parent.success.call(this);
	},
 	evaluateScripts: function() {
		this.newHtml.evalScripts();
	},
	activateTooltips: function() {
		addFSToolTips();
	},

	setMainContent: function(viewMode, nodeId) {

		this.setAjaxPars("mode=rns");
		this.setAjaxPars("mainnode="+nodeId);

		this.update();

	},

	nextArticles: function() {

		this.setAjaxPars("mode=rns");
		this.setAjaxPars("direction=next");

		this.update();

	},

	previousArticles: function() {

		this.setAjaxPars("mode=rns");
		this.setAjaxPars("direction=prev");

		this.update();

	}

});