// this is the base file for all assessment objects
function BaseAssessmentContent()
{
    this.stem           = "";
	this.questionNumber = 0;
	// these need to be declared in the descendant, otherwise descendant's share same object
	//this.correctAnswers = new Array();
	//this.chosenAnswers	= null;
	this.contentID		= "";
	this.weight 		= 1;
	this.scoreObj       = null;
	this.result			= 0;
	this.type 			= null;

	return this;
}

// add answers to correct answer array
BaseAssessmentContent.prototype.addAnswer = function( obj )
{
	//IE 4.0 doesn't have Push function
	//this.correctAnswers.push( obj );
	this.correctAnswers[this.correctAnswers.length] = obj;
	return true;
}
BaseAssessmentContent.prototype.clearAnswers = function()
{
	this.correctAnswers = new Array();
}

BaseAssessmentContent.prototype.getContentID = function()
{
	return this.contentID;
}

BaseAssessmentContent.prototype.setContentID = function( val )
{
	this.contentID = val;
}

BaseAssessmentContent.prototype.getWeight = function()
{
	return this.weight;
}

BaseAssessmentContent.prototype.setWeight = function( val )
{
	this.weight = val;
}

BaseAssessmentContent.prototype.getType = function()
{
	return this.type;
}

BaseAssessmentContent.prototype.setType = function( type )
{
	this.type = type;
}

BaseAssessmentContent.prototype.getQuestionNumber = function()
{
	return this.questionNumber;
}

BaseAssessmentContent.prototype.setQuestionNumber = function( val )
{
	this.questionNumber = val;
}

// get a reference to the question's form
BaseAssessmentContent.prototype.getFormRef = function()
{
	// get ref to question form
	var sectionID = '';
	var contentID = '';
    var sectionContentID = eval( "QuestionArray["+ (this.getQuestionNumber()-1) +"]");
    var tempArray = sectionContentID.split("-");
    if ( tempArray.length > 1 ) {
        sectionID = tempArray[0];
        contentID = tempArray[1];
    }
    else {
        contentID = tempArray[0];
    }
    var form;
    if (document.layers)
    { 
	var prefix=this.getPrefix("Question" + sectionID + "_" + contentID + "Form"); 
	form= eval( prefix+"document.Question" + sectionID + "_" + contentID + "Form" ); 
    } 
    else
    {        
    	 form = eval( "document.Question" + sectionID + "_" + contentID + "Form" );
    }
    return form;
}

BaseAssessmentContent.prototype.getStem = function()
{
    return this.stem;
}

BaseAssessmentContent.prototype.setStem = function(newStem)
{
    this.stem = newStem;
}

BaseAssessmentContent.prototype.getScore = function()
{
    if(this.scoreObj == null)
    {
        this.scoreObj = this.score();
    }

    return this.scoreObj;
}

// this method must be overriden by subclasses
BaseAssessmentContent.prototype.score = function(obj)
{
    // create dummy score
    return new AssessmentScore(0, 0, 0);
}

BaseAssessmentContent.prototype.getResult = function()
{
	return this.result;
}

BaseAssessmentContent.prototype.setResult = function(val)
{
    this.result = val;
}

// this method must be overriden by subclasses
BaseAssessmentContent.prototype.cloneFrom = function(src) {
//    alert("BaseAssessmentContent.prototype.cloneFrom hit");
    this.stem           = src.stem;
	this.questionNumber = src.questionNumber;
	this.contentID		= src.contentID;
	this.weight 		= src.weight;
	this.result 		= src.result;
	this.type			= src.type;

	this.scoreObj = new AssessmentScore(0, 0, 0);
	this.scoreObj.cloneFrom(src.scoreObj);

//	alert("new cloned object = " + this.toString());
}

BaseAssessmentContent.prototype.toString = function() {
	return "AssessmentContent: \n"+
		   "	contentID = "+this.contentID+" \n"+
		   "	type	  = "+this.type+" \n"+
		   "	result	  = "+this.result+" \n"+
		   "	weight	  = "+this.weight;
}
BaseAssessmentContent.prototype.getPrefix = function( formname )  {
        
        var prefix = "";
        if (document.layers)  {
                var layerName = "";
                for (k=0; k<document.layers.length; k++)  {
                        
                        var form = eval("document.layers["+k+"].document."+formname);
                
                        if ( form != null )
                                layerName = document.layers[k].name;
                                
                }
                if (layerName=="")
                        return null;

                prefix = "document."+layerName+".";
        }

        return prefix;
}

