﻿var helpLevel = "";
var contextHelp = {
	items: {},
	timer: null,
	slider: null,
	curPoint: null,
	helpStatus: true,
	pageHelpMinHeight: 15,
	addItem: function (tekst, elementId, horizontal, vertical){
		this.items[elementId] = {
			tekst: tekst,
			element: document.getElementById(elementId)
		};
		if(this.items[elementId].element){
			this.items[elementId].element.onmouseover = function () {contextHelp.showHelp(this, elementId, horizontal, vertical);};
			}
	},
	showHelp: function (point, id, horizontal, vertical){
		if (this !== contextHelp){
			contextHelp.showHelp(point, id);
			return false;
		}
		if (!this.helpDiv) {
	    this.createHelpDiv();
	}
	if (this.curPoint) {
	    this.hideHelp();
	}
	this.curPoint = point;
	var that = this;
	if (document.all) {
	    point.attachEvent("onmouseout", this.setTimer);
	    point.attachEvent("onmouseover", this.clearTimer);
	} else {
	    point.addEventListener("mouseout", this.setTimer, false);
	    point.addEventListener("mouseover", this.clearTimer, false);
	}
	var coords = this.findPos(point);
	var scrollCoords = this.scrollDim();
	
	this.helpDiv.innerHTML = this.items[id].tekst;
	
	this.helpDiv.style.display = "";
	
	var diffX = coords[0] - this.helpDiv.offsetWidth;
	var diffY = coords[1] - this.helpDiv.offsetHeight;
	
	if ((diffX > scrollCoords[0] || horizontal === "left") && horizontal !== "right") {
	    this.helpDiv.style.left = diffX + "px";
	} else {
	    this.helpDiv.style.left = (coords[0] + point.offsetWidth + "px");
	}
	if ((diffY > scrollCoords[1] || vertical === "top") && vertical !== "bottom") {
	    this.helpDiv.style.top = diffY + "px";
	} else {
	    this.helpDiv.style.top = (coords[1] + point.offsetHeight + "px");
	}
		return true;
    },		
	scrollDim: function () {
	    var x,y;
	if (self.pageYOffset) // all except Explorer
	{
		x = self.pageXOffset;
		y = self.pageYOffset;
	}
	else if (document.documentElement && document.documentElement.scrollTop)
		// Explorer 6 Strict
	{	x = document.documentElement.scrollLeft;
			y = document.documentElement.scrollTop;
	}
	else if (document.body) // all other Explorers
	{	x = document.body.scrollLeft;
			y = document.body.scrollTop;
	}
	    return [x,y];
	},
    createHelpDiv: function () {
	var div = document.createElement("div");
	this.helpDiv = div;
	div.id = "contextHelpDiv";
	div.className = "ContextHelp";
	div.style.display = "none";
	var that = this;
	div.onmouseout = function () {that.setTimer(that);};
	div.onmouseover = function () {that.clearTimer(that);};
	document.body.appendChild(div);
    },
    findPos: function (obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
	    curleft = obj.offsetLeft;
	    curtop = obj.offsetTop;
	    while (obj = obj.offsetParent) {
		    curleft += obj.offsetLeft;
		    curtop += obj.offsetTop;
	    }
	}
	return [curleft,curtop];
    },
    hideHelp: function () {
	clearTimeout(this.timer);
	this.helpDiv.style.display = "none";
	if (document.all) {
	    this.curPoint.detachEvent("onmouseout", contextHelp.setTimer);
	    this.curPoint.detachEvent("onmouseover", contextHelp.clearTimer);
	} else {
	    this.curPoint.removeEventListener("mouseout", contextHelp.setTimer, false);
	    this.curPoint.removeEventListener("mouseover", contextHelp.clearTimer, false);
	}
	this.curPoint = null;
    },	
    setTimer: function (that) {
	contextHelp.timer = setTimeout(function () {contextHelp.hideHelp();}, 300);
    },
    clearTimer: function (that) {
	clearTimeout(contextHelp.timer);
    }	
};
if (helpLevel == "1") {
	contextHelp.helpStatus = true;
}
var showHelp = contextHelp.showHelp;
var addItem = contextHelp.addItem;
var createPageHelp = contextHelp.createPageHelp;
var showPageHelp = contextHelp.showPageHelp;
var hidePageHelp = contextHelp.hidePageHelp;
var toggleHelpOff = contextHelp.toggleHelpOff;
var toggleHelpOn = contextHelp.toggleHelpOn;
var createHelpToggle = contextHelp.createHelpToggle;