/*
 * Copyright (C) 1995-2011 by 4system Polska Sp. z o.o.
 * All Rights Reserved.
 */
componentExerciseHotspot = function(name)
{
	this.__componentImage = __componentImage;
	this.__componentImage(name);

	this.howManyClicks = 0;
	this.isLocked = false;
	
	this.allowsCountPoints = false;
	this.iTimerID == null;
	
	this.interactions = true;
	this.interactionsType = "true_false";	
};

componentExerciseHotspot.prototype = new __componentImage();
componentExerciseHotspot.prototype.type = "componentExerciseHotspot";

componentExerciseHotspot.prototype.onCreate = function(obj)
{
	this.captureMouseEvents();
	
	//if page is SLW exercise check page is in other way
	//PageInterface.SetValue("setSLWSimulation", true); //pg2-removed - we can not assume that page is recorded in SLW
};

componentExerciseHotspot.prototype.componentExerciseHotspotBaseOnMouseDown = componentExerciseHotspot.prototype.onMouseDown;
componentExerciseHotspot.prototype.onMouseDown = function()
{
	if (this.isLocked || !this.allowsCountPoints) return;
	this.howManyClicks++;
	
	if (this.howManyClicks > this.maxClicks )
	{
		this.warningComponentHide();
		PageInterface.Execute("checkAnswer", this);
	}else{
		var popup = PageInterface.GetValue("getChild", this.warningComponent);
		if (popup) {
			if (popup.execution){
				var popupContent = popup.findContentObj();				
				popupContent.innerHTML = popup.text.replace("[number]", this.howManyClicks);	
			};
			popup.show();					
		};
	};

	this.componentExerciseHotspotBaseOnMouseDown();
	
};
componentExerciseHotspot.prototype.warningComponentHide = function()
{
	var popup = PageInterface.GetValue("getChild", this.warningComponent);
	if (popup) popup.hide();
}
componentExerciseHotspot.prototype.onStep = function()
{
	this.warningComponentHide();
};
componentExerciseHotspot.prototype.onRepaint = function()
{
	var pageStatus = PageInterface.GetValue("getPageStatus");
	
	if (pageStatus != 'passed')
	{
		if (this.coverElem != '-' && page.all[this.coverElem])
		{
			page.all[this.coverElem].show();
		};
	};
};
componentExerciseHotspot.prototype.actionAfterTime = function(obj)
{
	this.allowsCountPoints = true;
	if (this.hideElem != '-' && page.all[this.hideElem]){
		switch (this.hideElemAction){
			case 'show' : page.all[this.hideElem].show();break; 
			case 'hide' : page.all[this.hideElem].hide();break; 
		}
	};
};

componentExerciseHotspot.prototype.componentExerciseHotspotBaseShow = componentExerciseHotspot.prototype.show;
componentExerciseHotspot.prototype.show = function()
{	
	this.iTimerID = window.setTimeout('pc.'+this.id+'.actionAfterTime();', this.timeToCount);
	this.componentExerciseHotspotBaseShow();
};

componentExerciseHotspot.prototype.stopTimer = function() 
{
	if (this.iTimerID != null) {
		window.clearTimeout(this.iTimerID);
		this.iTimerID = null;
	}
}

componentExerciseHotspot.prototype.checkAnswer = function() 
{
	return(this.parseCheckAnswer());
};

componentExerciseHotspot.prototype.parseCheckAnswer = function() 
{	
	/* //pg2-remove entire block
	var userScore = PageInterface.GetValue("userScore");
	var masteryScore = PageInterface.GetValue("masteryScore");
	var maxScore = PageInterface.GetValue("maxScore");
	var answerWeighting = PageInterface.GetValue("answerWeighting");
	var corAns = (answerWeighting) ? (userScore >= masteryScore) : (userScore == maxScore);*/
	
	var corAns = (this.howManyClicks <= this.maxClicks); //pg2-new
	
	if (corAns){
		return true;		
	}else{
		return false;		
	};
};

componentExerciseHotspot.prototype.componentExerciseHotspotBaseResetElement = componentExerciseHotspot.prototype.resetElement;
componentExerciseHotspot.prototype.resetElement = function()
{
	this.componentExerciseHotspotBaseResetElement();
	this.stopTimer();
}

componentExerciseHotspot.prototype.getAnswer = function() 
{
	return this.howManyClicks;
};

componentExerciseHotspot.prototype.setAnswer = function(v, showCorr) 
{
	this.howManyClicks = 0;
};

componentExerciseHotspot.prototype.interactionsCorrectResponsesCount = function()
{
	return this.maxClicks+1;
};

componentExerciseHotspot.prototype.interactionsCorrectResponses = function(index)
{
	return index;
};

componentExerciseHotspot.prototype.interactionsCorrectResponsesAsText = function(index)
{
	return index.toString();
};

componentExerciseHotspot.prototype.interactionsStudentResponse = function()
{
	if (this.howManyClicks > this.maxClicks )
	{
		return this.howManyClicks;
	}else{
		return 0;		
	}
};

componentExerciseHotspot.prototype.interactionsStudentResponseAsText = function()
{
	return this.interactionsStudentResponse().toString();
};

componentExerciseHotspot.prototype.resetComponentPoints = function()
{
	this.howManyClicks = 0;
};

componentExerciseHotspot.prototype.lock = function()
{
	this.isLocked = true;
};

componentExerciseHotspot.prototype.unlock = function()
{
	this.isLocked = false;
};

componentExerciseHotspot.prototype.onFree = function() 
{
	this.stopTimer();
}
