DoPositionFaqAjax = Class.create();
DoPositionFaqAjax.prototype = {

	id: null,
	page: projectUrl +'/admin/contentFaq/doPosition',

	execute: function(object) {
		this.content();
	}

}

Object.extend(DoPositionFaqAjax.prototype, CommonAjax);

DoPositionManualAjax = Class.create();
DoPositionManualAjax.prototype = {

	id: null,
	page: projectUrl +'/admin/contentManual/doPosition',

	execute: function(object) {
		this.content();
	}

}

Object.extend(DoPositionManualAjax.prototype, CommonAjax);

var Content = Class.create();
Content.prototype = {

	type: '',

	initialize: function() { },

	markViewed: function(id) {
		new Ajax.Request(this.markPage, {
			"method": 'get',
			"parameters": { 'content': id },
			"onSuccess": function(request) {
				return true;
			},
			"onFailure": function(request) {
				return false;
			}
		});
	}
}

var ContentTutorial = Class.create();
ContentTutorial.prototype = Object.extend(new Content(), {

	divId: 'tutorial',
	markPage: projectUrl +'/site/help/doTutorial',
	egContentTutorial: new Hash(),
	currentTutorial: null,
	autoSlide: false,

	initialize: function(userId) {
		this.type = 'tutorial';
	},

	display: function(qName, options) {
		options = options || { };

		var divId = options.divId || this.divId;
		var contentId = options.contentId || this.contentId || divId;
		var highlightId = options.highlightId || undefined;
		this.autoSlide = options.autoSlide || false;

		var tutorial = this.getTutorial(qName);

		if(tutorial) {

			if(tutorial.displayAfter != null) {
				this.autoSlide = true;
			}

			if(highlightId !== undefined) {
				if(highlightId instanceof Array) {
					for (var i = 0; i < highlightId.length; ++i) {
						if (this.highlight(highlightId[i])) {
							Event.observe(highlightId[i], 'click', this.unHighlight.bind($(highlightId[i])), false);
						}
					}
				} else if(highlightId instanceof Object) {
					for (var i in highlightId) {
						if (this.highlight(highlightId[i])) {
							Event.observe(highlightId[i], 'click', this.unHighlight.bind($(highlightId[i])), false);
						}
					}
				} else {
					if (this.highlight(highlightId)) {
						Event.observe(highlightId, 'click', this.unHighlight.bind($(highlightId)), false)
					}
				}
			}

			$(contentId).innerHTML = tutorial.content;
			showBox(divId);

			this.markViewed(tutorial.id);
			this.unsetTutorial(qName);
			this.currentTutorial = tutorial;

			return true;
		}

		return false;
	},

	getTutorial: function(qName) {
		var tutorial = false;

		if(this.egContentTutorial.keys().include(qName)) {
			tutorial = this.egContentTutorial.get(qName);
		} else if(this.egContentTutorial.keys().include(this.type+'-'+qName)) {
			tutorial = this.egContentTutorial.get(this.type+'-'+qName);
		}

		return tutorial;
	},

	unsetTutorial: function(qName) {

		if(this.egContentTutorial.unset(qName) == undefined) {
			this.egContentTutorial.unset(this.type+'-'+qName);
		}
	},

	highlight: function(e) {
		var id = e +'Div';

		if ($(e)) {
			$(e).innerHTML = '<div id="'+ id +'">'+ $(e).innerHTML +'</div>';

			var containerHeight = $(e).getHeight() - 4;
			var containerWidth = $(e).getWidth() - 4;
			$(id).setStyle({ margin: '0', padding: '0', border: '2px solid #f00', width: containerWidth +'px', height: containerHeight +'px' });

			return true;
		}

		return false;
	},

	unHighlight: function() {
		this.innerHTML = $(this.id +'Div').innerHTML;
	},

	currentclose: function() {
		if(this.autoSlide) {
			this.display(this.currentTutorial.qName.succ());
		} else {
			this.currentTutorial = null;
		}
	}

});
