// Получим userAgent браузера и переведем его в нижний регистр
var jsapi_ua = navigator.userAgent.toLowerCase();
// Определим Internet Explorer<span id="more-46"></span>
var jsapi_isIE = (jsapi_ua.indexOf("msie") != -1 && jsapi_ua.indexOf("opera") == -1 && jsapi_ua.indexOf("webtv") == -1);
// Opera
var jsapi_isOpera = (jsapi_ua.indexOf("opera") != -1);
// Gecko = Mozilla + Firefox + Netscape
var jsapi_isGecko = (jsapi_ua.indexOf("gecko") != -1);
// Safari, используется в MAC OS
var jsapi_isSafari = (jsapi_ua.indexOf("safari") != -1);
// Konqueror, используется в UNIX-системах
var jsapi_isKonqueror = (jsapi_ua.indexOf("konqueror") != -1);
var inc = 0;
var regQ = /^Q[0-9]*$/;
var regQA = /^Q[0-9]*.A[0-9]*$/;
var regQC = /^Q[0-9]*.C[0-9]*$/;
var regQAC = /^Q[0-9]*.A[0-9]*.C[0-9]*$/;
var regQAA = /^Q[0-9]*.A[0-9]*.A[0-9]*$/;
var regQonly=/^Q[0-9]*/;
var regQA1 = /^Q[0-9]*.A[0-9]*/;
var regA2 = /A[0-9]*$/;

var QuestionType = [[0,"unknow"],
					[1,"Section Header"],
					[2,"Pick one without other"],
					[3,"Pick one with other"],
					[4,"Pick one with comment"],
					[5,"Check all that apply without other"],
					[6,"Check all that apply with other"],
					[7,"Drop Down Box"],
					[8,"List Box"],
					[9,"Single Line"],
					[10,"Multi Line"],
					[11,"Rate Different"],
					[12,"Compare One By One"],
					[13,"3D Matrix"],
					[14,"Numeric Allocation"]];
var AnswerType = 	[[0,"unknow"],
					[1,"Radio"],
					[2,"Check"],
					[3,"Edit"],
					[4,"Select"],
					[5,"Area"],
					[6,"Total"],
					[7,"3D"],
					[8,"RadioEdit"],
					[9,"CheckEdit"],
					[10,"RadioPOWC"],
					[11,"EditPOWC"]
					];
var ColumnType = 	[[0,"unknow"],
					[1,"Radio"],
					[2,"Check"],
					[3,"Edit"],
					[4,"Select"]];
var ElementType = 	[[0,"unknow"],
					[1,"Radio"],
					[2,"Check"],
					[3,"Edit"],
					[4,"Option"],
					[5,"Select"]];
var ElementMask = 	[[0,"unknow"],
					[1,"QuestionHeaderTableId"],
					[2,"QuestionAnchorTr"],
					[3,"QuestionAnchorTd"],
					[4,"QuestionAnchorBr"],
					[5,"Q"],
					[6,"QuestionImageTr"],
					[7,"QuestionImageTd"],
					[8,"QuestionImage"],
					[9,"QuestionLabelTr"],
					[10,"QuestionLabelTd"],
					[11,"QuestionLabel"],
					[12,"brQuestionSpace"],
					[13,"QuestionAnswersTableId"],
					[14,"AnswerTr"],
					[15,"AnswerImageTd"],
					[16,"AnswerImageAhref"],
					[17,"AnswerImage"],
					[18,"AnswerElementTd"],
					[19,"RC"],
					[20,"AnswerLabelTd"],
					[21,"AnswerLabel"],
					[22,"inputtextother"],
					[23,"AnswerImageTr"],
					[24,"AnswerLabelTr"],
					[25,"AnswerElementTr"],
					[26,"selectR"],
					[27,"AnswerOption"],
					[28,"inputtext"],
					[29,"ColumnTr"],
					[30,"ColumnImageTd"],
					[31,"ColumnLabelTd"],
					[32,"ColumnTd"],
					[33,"ColumnLabel"],
					[34,"GMH"],
					[35,"LEFT"],
					[36,"RIGHT"],
					[37,"R"],
					[38,"other"],
					[39,"radio"],
					[40,"check"],
					[41,"inputtextother"],
					[42,"selectother"]
					];

var QuestionMask = [[0,"unknow"],
					[1,"QuestionHeaderTableId"],
					[2,"QuestionAnswersTableId"],
					[3,"QuestionAnchorTr"],
					[4,"QuestionImageTr"],
					[5,"QuestionLabelTr"],
					[6,"AnswerImageTr"],
					[7,"AnswerLabelTr"],
					[8,"AnswerElementTr"],
					[9,"AnswerElementTd"],
					[10,"QuestionAnchorTd"],
					[11,"QuestionAnchorBr"],
					[12,"Q"],
					[13,"selectR"],
					[14,"QuestionImageTd"],
					[15,"QuestionImage"],
					[16,"QuestionLabelTd"],
					[17,"QuestionLabel"],
					[18,"brQuestionSpace"]
					];

var AnswerMask = 	[[0,"unknow"],
					[1,"AnswerImageTd"],
					[2,"AnswerImageAhref"],
					[3,"AnswerImage"],
					[4,"AnswerElementTd"],
					[5,"AnswerTr"],
					[6,"AnswerLabelTd"],
					[7,"AnswerLabel"],
					[8,"inputtextother"],
					[9,"inputtext"],
					[10,"R"],
					[11,"RC"]
					];
var AnswerMaskRate =[[0,"unknow"],
					[1,"AnswerImageTd"],
					[2,"AnswerImageAhref"],
					[3,"AnswerImage"],
					[4,"AnswerElementTd"],
					[5,"AnswerLabel"],
					[6,"GMH"],
					[7,"LEFT"],
					[8,"R"]
					];

var ColumnMask = 	[[0,"unknow"],
					[1,"ColumnTr"],
					[2,"ColumnImageTd"],
					[3,"ColumnLabelTd"],
					[4,"ColumnTd"]
					];

var SurveyConfig = {
	defaultId 	: inc,
	defaultName : "Survey",
	defaultDescription : "Description",
	defaultQuestions : []
};
var QuestionConfig = {
	defaultId 	: inc,
	defaultName : "Question",
	defaultHide : false,
	defaultPrefix : "Qx",
	defaultAnswers : [],
	defaultColumns : [],
	defaultElements : [],
	defaultType	: QuestionType[0]
};
var AnswerConfig = {
	defaultId 	: inc,
	defaultName : "Answer",
	defaultHide : false,
	defaultPrefix : "QxAy*",
	defaultType : AnswerType[0]
};
var ColumnConfig = {
	defaultId 	: inc,
	defaultName : "Column",
	defaultHide : false,
	defaultPrefix : "Cz",
	defaultType : ColumnType[0]
};
var ElementConfig = {
  defaultId : inc,
	defaultHide : false,
	defaultPrefix : "QxAyCz",
	defaultType : ElementType[0],
	defaultQuestion : null,
	defaultAnswer : null,
	defaultColumn : null
};
/*------------------------------------------------------------------------------------------------*/
var SurveyHandler = {
	id			: SurveyConfig.defaultId,
	name		: SurveyConfig.defaultName,
	description : SurveyConfig.defaultDescription,
	questions	: [],
	all       	: {},
	getId     	: function() {return this.id;},
	getName    	: function() {return this.name;},
	getDescription 	: function() {return this.description;},
	getQuestions 	: function() {return this.questions;}
};

var QuestionHandler = {
	id			: QuestionConfig.defaultId,
	name 	  	: QuestionConfig.defaultName,
	hide		: QuestionConfig.defaultHide,
	type		: QuestionConfig.defaultType,
	prefix		: QuestionConfig.defaultPrefix,
	answers		: [],
	columns		: [],
	elements	: [],
	all       	: {},
	getId     	: function() {return this.id;},
	getName    	: function() {return this.name;},
	isHide     	: function() {return this.hide;},
	getType		: function() {return this.type;},
	getPrefix	: function() {return this.prefix},
	getAnswers	: function() {return this.answers;},
	getColumns	: function() {return this.columns;},
	getElements	: function() {return this.elements;}

};

var AnswerHandler = {
	id			: AnswerConfig.defaultId,
	name 	  	: AnswerConfig.defaultName,
	hide		: AnswerConfig.defaultHide,
	type		: AnswerConfig.defaultType,
	prefix		: AnswerConfig.defaultPrefix,
	all       	: {},
	getId     	: function() {return this.id;},
	getName    	: function() {return this.name;},
	isHide     	: function() {return this.hide;},
	getType		: function() {return this.type;},
	getPrefix	: function() {return this.prefix;}
};

var ColumnHandler = {
	id     		: ColumnConfig.defaultId,
	name   		: ColumnConfig.defaultName,
	hide		: ColumnConfig.defaultHide,
	type   		: ColumnConfig.defaultType,
	prefix 		: ColumnConfig.defaultPrefix,
	all			: {},
	getId     	: function() {return this.id;},
	getName    	: function() {return this.name;},
	isHide     	: function() {return this.hide;},
	getType		: function() {return this.type;},
	getPrefix	: function() {return this.prefix;}
};

var ElementHandler = {
	id			: ElementConfig.defaultId,
	hide		: ElementConfig.defaultHide,
	type   		: ElementConfig.defaultType,
	prefix 		: ElementConfig.defaultPrefix,
	question	: ElementConfig.defaultQuestion,
	answer		: ElementConfig.defaultAnswer,
	column		: ElementConfig.defaultColumn,
	all			: {},
	getId     	: function() {return this.id;},
	isHide     	: function() {return this.hide;},
	getType		: function() {return this.type;},
	getPrefix	: function() {return this.prefix;},
	getQuestion : function() {return this.question;},
	getAnswer	: function() {return this.answer;},
	getColumn	: function() {return this.column;}
};
/*------------------------------------------------------------------------------------------------*/
function SurveyAbstract(id, name, description, questions) {
	this.id							= id || SurveyHandler.getId();
	this.name						= name || SurveyHandler.getName();
	this.description		= description || SurveyHandler.getDescription();
	this.questions 			= questions || [];
	SurveyHandler.all[this.id] 		= this;
};
/*------------------------------------------------------------------------------------------------*/
function QuestionAbstract(id, name, hide, type, prefix, answers, columns, elements) {
	this.id     					= id 			|| QuestionHandler.getId();
	this.name   					= name 			|| QuestionHandler.getName();
	this.hide						= hide 			|| QuestionHandler.isHide();
	this.prefix 					= prefix 		|| QuestionHandler.getPrefix();
	this.type 						= type 			|| QuestionHandler.getType();
	this.answers					= answers 		|| [];
	this.columns					= columns 		|| [];
	this.elements					= elements		|| [];
	QuestionHandler.all[this.id] 	= this;
}
/*---------------------------------------------------- Get Element ----------------------------------------------------*/
function getElement(id){
	return document.getElementById(id);
}

/*---------------------------------------------------- Question Section ----------------------------------------------------*/
function getQuestionHeaderTable(qid){
	return getElement(ElementMask[1][1]+qid);
}
function getQuestionAnchorTr(qid){
	return this.getElement(ElementMask[2][1]+qid);
}
function getQuestionAnchorTd(qid){
	return this.getElement(ElementMask[3][1]+qid);
}
function getQuestionAnchorBr(qid){
	return this.getElement(ElementMask[4][1]+qid);
}
function getQuestionAnchor(qid){
	return this.getElement(ElementMask[5][1]+qid);
}
function getQuestionImageTr(qid){
	return this.getElement(ElementMask[6][1]+qid);
}
function getQuestionImageTd(qid){
	return this.getElement(ElementMask[7][1]+qid);
}
function getQuestionImage(qid){
	return this.getElement(ElementMask[8][1]+qid);
}
function getQuestionLabelTr(qid){
	return this.getElement(ElementMask[9][1]+qid);
}
function getQuestionLabelTd(qid){
	return this.getElement(ElementMask[10][1]+qid);
}
function getQuestionLabel(qid){
	return this.getElement(ElementMask[11][1]+qid);
}
function getBrQuestionSpace(qid){
	return this.getElement(ElementMask[12][1]+qid);
}
function getQAnswerElementTr(qid){
	return this.getElement(ElementMask[25][1]+qid);
}
function getQAnswerElementTd(qid){
	return this.getElement(ElementMask[18][1]+qid);
}
function getQSelectR(qid){
	return this.getElement(ElementMask[26][1]+qid);
}

/*---------------------------------------------------- Question Section Hide ----------------------------------------------------*/
function hideQuestionSection(qid,hide){
	var disp = (hide)?"none":"";
	var obj = this.getQuestionHeaderTable(qid);
	if (obj!=null){
	 	obj.style.display=disp;
	}
 	this.hideQuestionAnchorSection(qid,hide);
 	this.hideQuestionImageSection(qid,hide);
 	this.hideQuestionLabelSection(qid,hide);
	obj = this.getBrQuestionSpace(qid);
	if (obj!=null){
	 	obj.style.display=disp;
	}
}
function hideQuestionAnchorSection(qid,hide){
	var disp = (hide)?"none":"";
	var obj = this.getQuestionAnchorTr(qid);
	if (obj!=null){
	 	obj.style.display=disp;
	}
	obj = this.getQuestionAnchorTd(qid);
	if (obj!=null){
	 	obj.style.display=disp;
	}
	obj = this.getQuestionAnchorBr(qid);
	if (obj!=null){
	 	obj.style.display=disp;
	}
	obj = this.getQuestionAnchor(qid);
	if (obj!=null){
	 	obj.style.display=disp;
	}
}
function hideQuestionImageSection(qid,hide){
	var disp = (hide)?"none":"";
	var obj = this.getQuestionImageTr(qid);
	if (obj!=null){
	 	obj.style.display=disp;
	}
	obj = this.getQuestionImageTd(qid);
	if (obj!=null){
	 	obj.style.display=disp;
	}
	obj = this.getQuestionImage(qid);
	if (obj!=null){
	 	obj.style.display=disp;
	}
}
function hideQuestionLabelSection(qid,hide){
	var disp = (hide)?"none":"";
	var obj = this.getQuestionLabelTr(qid);
	if (obj!=null){
	 	obj.style.display=disp;
	}
	obj = this.getQuestionLabelTd(qid);
	if (obj!=null){
	 	obj.style.display=disp;
	}
	obj = this.getQuestionLabel(qid);
	if (obj!=null){
	 	obj.style.display=disp;
	}
}
function hideAnswerSelectSection(qid,hide){
	var disp = (hide)?"none":"";
	var obj = this.getQAnswerElementTr(qid);
	if (obj!=null){
	 	obj.style.display=disp;
	}
	obj = this.getQAnswerElementTd(qid);
	if (obj!=null){
	 	obj.style.display=disp;
	}
	obj = this.getQSelectR(qid);
	if (obj!=null){
	 	obj.style.display=disp;
	}
}
/*------------------------------------------------------------------------------------------------*/
function AnswerAbstract(id, name, hide, type, prefix) {
	this.id     					= id 			|| AnswerHandler.getId();
	this.name   					= name 			|| AnswerHandler.getName();
	this.hide						= hide 			|| AnswerHandler.isHide();
	this.type   					= type 			|| AnswerHandler.getType();
	this.prefix 					= prefix 		|| AnswerHandler.getPrefix();
	AnswerHandler.all[this.id] 		= this;
}
var jsapi_parent = new Array();
var jsapi_displays = new Array();
var jsapi_selects = new Array();
var jsapi_select_inner = new Array();

/*---------------------------------------------------- Answer Section  ----------------------------------------------------*/
function getQuestionAnswersTable(qid){
	return this.getElement(ElementMask[13][1]+qid);
}
function getAnswerTr(qid,aid){
	return this.getElement(ElementMask[14][1]+qid+"_"+aid);
}
function getAnswerImageTd(qid,aid){
	return this.getElement(ElementMask[15][1]+qid+"_"+aid);
}
function getAnswerImageAhref(qid,aid){
	return this.getElement(ElementMask[16][1]+qid+"_"+aid);
}
function getAnswerImage(qid,aid){
	return this.getElement(ElementMask[17][1]+qid+"_"+aid);
}
function getAnswerElementTd(qid,aid){
//	if(aid==null){
//		return this.getElement(ElementMask[18][1]+qid);
//	}
	return this.getElement(ElementMask[18][1]+qid+"_"+aid);
}
function getRC(qid,aid){
	return this.getElement(ElementMask[19][1]+qid+"_"+aid);
}
function getAnswerLabelTd(qid,aid){
	return this.getElement(ElementMask[20][1]+qid+"_"+aid);
}
function getAnswerLabel(qid,aid){
	return this.getElement(ElementMask[21][1]+qid+"_"+aid);
}
function getInputTextOther(qid,aid){
	return this.getElement(ElementMask[22][1]+qid+"_"+aid);
}
function getAnswerImageTr(qid,aid){
	return this.getElement(ElementMask[23][1]+qid);
}
function getAnswerLabelTr(qid){
	return this.getElement(ElementMask[24][1]+qid);
}
function getAnswerElementTr(qid,aid){
	if(aid == null){
		return this.getElement(ElementMask[25][1]+qid);
	}
	return this.getElement(ElementMask[25][1]+qid+"_"+aid);
}
function getSelectR(qid,aid){
	if(aid == null){
		return this.getElement(ElementMask[26][1]+qid);
	}
	return this.getElement(ElementMask[26][1]+qid+"_"+aid);
}
function getAnswerOption(qid,aid){
	return this.getElement(ElementMask[27][1]+qid+"_"+aid);
}
function getInputText(qid,aid){
	return this.getElement(ElementMask[28][1]+qid+"_"+aid);
}
function getGmhLeft(aid){
	return this.getElement(ElementMask[34][1]+aid+ElementMask[35][1]);
}
function getGmhRight(aid){
	return this.getElement(ElementMask[34][1]+aid+ElementMask[36][1]);
}
function getAnswerTrCOBO(qid,aid,aid2){
	return this.getElement(ElementMask[14][1]+qid+"_"+aid+"_"+aid2);
}
function getAnswerLabelTdCOBOLeft(qid,aid,aid2){
	return this.getElement(ElementMask[20][1]+qid+"_"+aid+"_"+aid2+"_"+aid);
}
function getAnswerLabelCOBOLeft(qid,aid,aid2){
	return this.getElement(ElementMask[21][1]+qid+"_"+aid+"_"+aid2+"_"+aid);
}
function getAnswerElementTdCOBOLeft(qid,aid,aid2){
	return this.getElement(ElementMask[18][1]+qid+"_"+aid+"_"+aid2+"_"+aid);
}
function getRC_COBOLeft(qid,aid,aid2){
	return this.getElement(ElementMask[19][1]+qid+"_"+aid+"_"+aid2+"_"+aid);
}
function getAnswerLabelTdCOBOOR(qid,aid,aid2){
	return this.getElement(ElementMask[20][1]+qid+"_"+aid+"_"+aid2);
}
function getAnswerLabelCOBOOR(qid,aid,aid2){
	return this.getElement(ElementMask[21][1]+qid+"_"+aid+"_"+aid2);
}
function getAnswerElementTdCOBORight(qid,aid,aid2){
	return this.getElement(ElementMask[18][1]+qid+"_"+aid+"_"+aid2+"_"+aid2);
}
function getRC_COBORight(qid,aid,aid2){
	return this.getElement(ElementMask[19][1]+qid+"_"+aid+"_"+aid2+"_"+aid2);
}
function getAnswerLabelTdCOBORight(qid,aid,aid2){
	return this.getElement(ElementMask[20][1]+qid+"_"+aid+"_"+aid2+"_"+aid2);
}
function getAnswerLabelCOBORight(qid,aid,aid2){
	return this.getElement(ElementMask[21][1]+qid+"_"+aid+"_"+aid2+"_"+aid2);
}

/*---------------------------------------------------- Answer Section Hide ----------------------------------------------------*/
function hideAnswerSection(qid,aid,hide,trhide){
	var disp = (hide)?"none":"";
 	this.hideAnswerTr(qid,aid,hide);
 	this.hideAnswerImageTd(qid,aid,hide);
 	this.hideAnswerImageAhref(qid,aid,hide);
 	this.hideAnswerImage(qid,aid,hide);
 	this.hideAnswerElementTd(qid,aid,hide);
 	this.hideRC(qid,aid,hide);
  this.hideInputTextOther(qid,aid,hide);
  this.hideAnswerLabelTd(qid,aid,hide);
 	this.hideAnswerLabel(qid,aid,hide);
}
function hideAnswerRadioPOWCSection(qid,aid,hide){
}
function hideAnswerEditPOWCSection(qid,aid,hide){
}
function hideAnswerSectionRateDifferent(qid,aid,hide){
}
function hideAnswerSelectSection(qid,hide){
	var disp = (hide)?"none":"";
	var obj = this.getAnswerElementTr(qid);
	if (obj!=null){
     if(jsapi_isIE)obj.style.display=disp;
	}
	obj = this.getAnswerElementTd(qid);
	if (obj!=null){
     disp = (hide)?"none":"";
     obj.style.display=disp;
	}
	obj = this.getSelectR(qid);
	if (obj!=null){
     disp = (hide)?"none":"";
     obj.style.display=disp;
	}
}

function hideAnswerOptionSection(qid,aid,hide){
}
function hideAnswerTr(qid,aid,hide){
	var disp = (hide)?"none":"";
	var obj = this.getAnswerTr(qid,aid);
	if (obj!=null){
	 	obj.style.display=disp;
	}
	obj=null;
}
function hideAnswerImageTd(qid,aid,hide){
	var disp = (hide)?"none":"";
		var obj = this.getAnswerImageTd(qid,aid);
	if (obj!=null){
	 	obj.style.display=disp;
	}
}
function hideAnswerImageAhref(qid,aid,hide){
	var disp = (hide)?"none":"";
	var obj = this.getAnswerImageAhref(qid,aid);
	if (obj!=null){
	 	obj.style.display=disp;
	}
	obj=null;
}
function hideAnswerImage(qid,aid,hide){
	var disp = (hide)?"none":"";
	var obj = this.getAnswerImage(qid,aid);
	if (obj!=null){
	 	obj.style.display=disp;
	}
	obj=null;
}
function hideAnswerElementTd(qid,aid,hide){
	var disp = (hide)?"none":"";
	var obj = this.getAnswerElementTd(qid,aid);
	if (obj!=null){
	 	obj.style.display=disp;
	}
	obj=null;
}
function hideRC(qid,aid,hide){
	var disp = (hide)?"none":"";
	var obj = this.getRC(qid,aid);
	if (obj!=null){
	 	obj.style.display=disp;
	}
	obj=null;
}
function hideAnswerLabelTd(qid,aid,hide){
	var disp = (hide)?"none":"";
	var obj = this.getAnswerLabelTd(qid,aid);
	if (obj!=null){
	 	obj.style.display=disp;
	}
	obj=null;
}
function hideAnswerLabel(qid,aid,hide){
	var disp = (hide)?"none":"";
	var obj = this.getAnswerLabel(qid,aid);
	if (obj!=null){
	 	obj.style.display=disp;
	}
	obj=null;
}
function hideInputTextOther(qid,aid,hide){
	var disp = (hide)?"none":"";
	var obj = this.getInputTextOther(qid,aid);
	if (obj!=null){
	 	obj.style.display=disp;
	}
	obj=null;
}
function hideAnswerImageTr(qid,hide){
	var disp = (hide)?"none":"";
	var obj = this.getAnswerImageTr(qid);
	if (obj!=null){
	 	obj.style.display=disp;
	}
	obj=null;
}
function hideAnswerLabelTr(qid, hide){
	var disp = (hide)?"none":"";
	var obj = this.getAnswerLabelTr(qid);
	if (obj!=null){
	 	obj.style.display=disp;
	}
	obj=null;
}
function hideAnswerElementTr(qid,hide){
	var disp = (hide)?"none":"";
	var obj = this.getAnswerElementTr(qid);
	if (obj!=null){
	 	obj.style.display=disp;
	}
	obj=null;
}
function hideSelectR(qid,aid,hide){
	var disp = (hide)?"none":"";
	var obj = this.getSelectR(qid,aid);
	if (obj!=null){
	 	obj.style.display=disp;
	}
	obj=null;
}
function hideAnswerOption(qid,aid,hide){
  var disp = (hide)?"none":"";
  var obj = this.getAnswerOption(qid,aid);
  var objs = null;
  var jsapi_options = new Array();
  var jsapi_option_inner = new Array();
  var jsapi_display = new Array();
  if(jsapi_parent[qid] == null && obj != null){
    objs = obj.parentNode.getElementsByTagName("option");
    jsapi_parent[qid]=obj.parentNode;
    for(var i = 0; i<objs.length; i++){
      jsapi_options[i]=objs[i];
      jsapi_option_inner[i]=objs[i].innerHTML;
      jsapi_display[i]=false;
      if(jsapi_options[i].value==aid){
        jsapi_display[i]=hide;
      }
    }
    jsapi_displays[qid]=jsapi_display;
  }
  else{
    objs = jsapi_selects[qid];
  }
  jsapi_parent[qid].innerHTML="";
  if(jsapi_selects[qid]==null){
    jsapi_selects[qid]=jsapi_options;
  }
  if(jsapi_select_inner[qid]==null){
    jsapi_select_inner[qid]=jsapi_option_inner;
  }
  for(var k=0; k<jsapi_displays[qid].length; k++){
    if(jsapi_selects[qid][k].value==aid){
      jsapi_displays[qid][k]=hide;
    }
  }
  for(var j = 0; j < jsapi_selects[qid].length; j++){
    if(jsapi_selects[qid][j].value==aid && !hide && !jsapi_displays[qid][j] || jsapi_selects[qid][j].value==""){
      var o = jsapi_selects[qid][j];
      o.innerHTML=jsapi_select_inner[qid][j];
      jsapi_parent[qid].appendChild(o);
    }
    else if(/*jsapi_selects[qid][j].value==aid && hide ||*/ !jsapi_displays[qid][j]){
      var o = jsapi_selects[qid][j];
      o.innerHTML=jsapi_select_inner[qid][j];
      jsapi_parent[qid].appendChild(o);
    }
  }
  obj=null;
}
function hideInputText(qid,aid,hide){
	var disp = (hide)?"none":"";
	var obj = this.getInputText(qid,aid);
	if (obj!=null){
	 	obj.style.display=disp;
	}
	obj=null;
}
function hideGmhLeft(aid,hide){
	var disp = (hide)?"none":"";
	var obj = this.getGmhLeft(aid);
	if (obj!=null){
	 	obj.style.display=disp;
	}
	obj=null;
}
function hideGmhRight(aid,hide){
	var disp = (hide)?"none":"";
	var obj = this.getGmhRight(aid);
	if (obj!=null){
	 	obj.style.display=disp;
	}
	obj=null;
}
function hide3D_OtherRadio(qid,aid,num,hide){
	var disp = (hide)?"none":"";
	var obj = this.get3D_OtherRadio(qid,aid,num);
	if (obj!=null){
	 	obj.style.display=disp;
	}
	obj=null;
}
function hide3D_OtherCheck(qid,aid,num,hide){
	var disp = (hide)?"none":"";
	var obj = this.get3D_OtherCheck(qid,aid,num);
	if (obj!=null){
	 	obj.style.display=disp;
	}
	obj=null;
}
function hide3D_InputTextOther(qid,aid,num,hide){
	var disp = (hide)?"none":"";
	var obj = this.get3D_InputTextOther(qid,aid,num);
	if (obj!=null){
	 	obj.style.display=disp;
	}
	obj=null;
}
function hide3DSelectOther(qid,aid,num,hide){
	var disp = (hide)?"none":"";
	var obj = this.get3D_SelectOther(qid,aid,num);
	if (obj!=null){
	 	obj.style.display=disp;
	}
	obj=null;
}
function hide3DAnswerOption(qid,aid,num,numo,hide){
	var disp = (hide)?"none":"";
	var obj = this.get3DAnswerOption(qid,aid,num,numo);
	if (obj!=null){
	 	obj.style.display=disp;
	}
	obj=null;
}

function hideAnswerTrCOBO(qid,aid,aid2,hide){
	var disp = (hide)?"none":"";
	var obj = this.getAnswerTrCOBO(qid,aid,aid2);
	if (obj!=null){
     if(jsapi_isIE)obj.style.display=disp;
	}
	obj=null;
}
function hideAnswerLabelTdCOBOLeft(qid,aid,aid2,hide){
	var disp = (hide)?"none":"";
	var obj = this.getAnswerLabelTdCOBOLeft(qid,aid,aid2);
	if (obj!=null){
	 	obj.style.display=disp;
	}
	obj=null;
}
function hideAnswerLabelCOBOLeft(qid,aid,aid2,hide){
	var disp = (hide)?"none":"";
	var obj = this.getAnswerLabelCOBOLeft(qid,aid,aid2);
	if (obj!=null){
	 	obj.style.display=disp;
	}
	obj=null;
}
function hideRC_COBOLeft(qid,aid,aid2,hide){
	var disp = (hide)?"none":"";
	var obj = this.getRC_COBOLeft(qid,aid,aid2);
	if (obj!=null){
	 	obj.style.display=disp;
	}
	obj=null;
}
function hideAnswerLabelTdCOBOOR(qid,aid,aid2,hide){
	var disp = (hide)?"none":"";
	var obj = this.getAnswerLabelTdCOBOOR(qid,aid,aid2);
	if (obj!=null){
	 	obj.style.display=disp;
	}
	obj=null;
}
function hideAnswerLabelCOBOOR(qid,aid,aid2,hide){
	var disp = (hide)?"none":"";
	var obj = this.getAnswerLabelCOBOOR(qid,aid,aid2);
	if (obj!=null){
	 	obj.style.display=disp;
	}
	obj=null;
}
function hideAnswerElementTdCOBORight(qid,aid,aid2,hide){
	var disp = (hide)?"none":"";
	var obj = this.getAnswerElementTdCOBORight(qid,aid,aid2);
	if (obj!=null){
	 	obj.style.display=disp;
	}
	obj=null;
}
function hideRC_COBORight(qid,aid,aid2,hide){
	var disp = (hide)?"none":"";
	var obj = this.getRC_COBORight(qid,aid,aid2);
	if (obj!=null){
	 	obj.style.display=disp;
	}
	obj=null;
}
function hideAnswerLabelTdCOBORight(qid,aid,aid2,hide){
	var disp = (hide)?"none":"";
	var obj = this.getAnswerLabelTdCOBORight(qid,aid,aid2);
	if (obj!=null){
	 	obj.style.display=disp;
	}
	obj=null;
}
function hideAnswerLabelCOBORight(qid,aid,aid2,hide){
	var disp = (hide)?"none":"";
	var obj = this.getAnswerLabelCOBORight(qid,aid,aid2);
	if (obj!=null){
	 	obj.style.display=disp;
	}
	obj=null;
}
function hideAnswerSectionCOBO(qid,aid,aid2,hide){
}
/*------------------------------------------------------------------------------------------------*/
function ColumnAbstract(id, name, hide, type, prefix) {
	this.id     					= id 			|| ColumnHandler.getId();
	this.name   					= name 			|| ColumnHandler.getName();
	this.hide						= hide 			|| ColumnHandler.isHide();
	this.type   					= type 			|| ColumnHandler.getType();
	this.prefix 					= prefix 		|| ColumnHandler.getPrefix();
	ColumnHandler.all[this.id] 		= this;
};
function getColumnTr(qid){
	return this.getElement(ElementMask[29][1]+qid);
}
function getColumnImageTd(qid){
	return this.getElement(ElementMask[30][1]+qid);
}
function getColumnLabelTd(qid){
	return this.getElement(ElementMask[31][1]+qid);
}
function getColumnTd(qid,num){
	return this.getElement(ElementMask[32][1]+qid+"_"+num);
}
function getColumnLabel(qid,num){
	return this.getElement(ElementMask[33][1]+qid+"_"+num);
}
function hideColumnTr(qid,hide){
	var disp = (hide)?"none":"";
	var obj = this.getColumnTr(qid);
	if (obj!=null){
	 	obj.style.display=disp;
	}
	obj=null;
}
function hideColumnImageTd(qid,hide){
	var disp = (hide)?"none":"";
	var obj = this.getColumnImageTd(qid);
	if (obj!=null){
	 	obj.style.display=disp;
	}
	obj=null;
}
function hideColumnLabelTd(qid,hide){
	var disp = (hide)?"none":"";
	var obj = this.getColumnLabelTd(qid);
	if (obj!=null){
	 	obj.style.display=disp;
	}
	obj=null;
}
function hideColumnTd(qid,num,hide){
	var disp = (hide)?"none":"";
	var obj = this.getColumnTd(qid,num);
	if (obj!=null){
	 	obj.style.display=disp;
	}
	obj=null;
}
function hideColumnLabel(qid,num,hide){
	var disp = (hide)?"none":"";
	var obj = this.getColumnLabel(qid,num);
	if (obj!=null){
	 	obj.style.display=disp;
	}
	obj=null;
}

function hideColumnPreSection(qid,hide){
 	this.hideColumnImageTd(qid,hide);
 	this.hideColumnLabelTd(qid,hide);
}

function hideColumnSection(qid,num,hide){
 	this.hideColumnTd(qid,num,hide);
 	this.hideColumnLabel(qid,num,hide);
}
/*------------------------------------------------------------------------------------------------*/
function ElementAbstract(id, hide, type, prefix, question, answer, column) {
	this.id							= id			|| ElementHandler.getId();
	this.hide						= hide 			|| ElementHandler.isHide();
	this.type 						= type  		|| ElementHandler.getType();
	this.prefix 					= prefix 		|| ElementHandler.getPrefix();
	this.question					= question 		|| ElementHandler.getQuestion();
	this.answer						= answer 		|| ElementHandler.getAnswer();
	this.column						= column 		|| ElementHandler.getColumn();
	ElementHandler.all[this.id] 	= this;
};
/*---------------------------------------------------- Element Section  ----------------------------------------------------*/

function getRGH_R(qid,aid,num){
	return this.getElement(ElementMask[37][1]+qid+"_"+aid+"_"+num);
}
function getEAnswerElementTd(qid,aid,num){
	return this.getElement(ElementMask[18][1]+qid+"_"+aid+"_"+num);
}
function get3D_OtherRadio(qid,aid,num){
	return this.getElement(ElementMask[41][1]+qid+"_"+aid+"_"+ElementMask[39][1]+num);
}
function get3D_OtherCheck(qid,aid,num){
	return this.getElement(ElementMask[41][1]+qid+"_"+aid+"_"+ElementMask[40][1]+num);
}
function get3D_InputTextOther(qid,aid,num){
	return this.getElement(ElementMask[41][1]+qid+"_"+aid+"_"+num);
}
function get3D_SelectOther(qid,aid,num){
	return this.getElement(ElementMask[42][1]+qid+"_"+aid+"_"+num);
}
function get3DAnswerOption(qid,aid,num,numo){
	return this.getElement(ElementMask[27][1]+qid+"_"+aid+"_"+num+"_"+numo);
}
function hideEAnswerElementTd(qid,aid,num,hide,tdhide){
	var disp = (hide)?"none":"";
	var obj = this.getEAnswerElementTd(qid,aid,num,tdhide);
	if (obj!=null){
	 	obj.style.display=disp;
	}
	obj=null;
}
function hideRGH_R(qid,aid,num,hide){
	var disp = (hide)?"none":"";
	var obj = this.getRGH_R(qid,aid,num);
	if (obj!=null){
	 	obj.style.display=disp;
	}
	obj=null;
}
function hide3D_SelectOther(qid,aid,num,hide){
	var disp = (hide)?"none":"";
	var obj = this.get3D_SelectOther(qid,aid,num);
	if (obj!=null){
	 	obj.style.display=disp;
	}
	obj=null;
}
function hideElementSection(qid,aid,num,hide,tdhide){
}
/*------------------------------------------------------------------------------------------------*/
Question3dMatrix.prototype = new QuestionAbstract;

function Question3dMatrix(id, name, hide, prefix, answers, columns, elements) {
	this.base = QuestionAbstract;
	this.base(id, name, hide, QuestionType[13], prefix, answers, columns, elements);
}

Question3dMatrix.prototype.addAnswer3d = function(a) {
	if(a instanceof Answer3d)
		this.answers.push(a);
	else
		alert("Error: incorect type : {"+ a.type + "}, type must be {"+AnswerType[7]+"}");
}

Question3dMatrix.prototype.addColumnRadio = function(c) {
	if(c instanceof ColumnRadio)
		this.columns.push(c);
	else
		alert("Error: incorect type : {"+ c.type + "}, type must be {"+ColumnType[1]+"}");
}
Question3dMatrix.prototype.addColumnCheck = function(c) {
	if(c instanceof ColumnCheck)
		this.columns.push(c);
	else
		alert("Error: incorect type : {"+ c.type + "}, type must be {"+ColumnType[2]+"}");
}
Question3dMatrix.prototype.addColumnEdit = function(c) {
	if(c instanceof ColumnEdit)
		this.columns.push(c);
	else
		alert("Error: incorect type : {"+ c.type + "}, type must be {"+ColumnType[3]+"}");
}
Question3dMatrix.prototype.addColumnSelect = function(c) {
	if(c instanceof ColumnSelect)
		this.columns.push(c);
	else
		alert("Error: incorect type : {"+ c.type + "}, type must be {"+ColumnType[4]+"}");
}

Question3dMatrix.prototype.addElementRadio = function(e) {
	if(e instanceof ElementRadio)
		this.elements.push(e);
	else
		alert("Error: incorect type : {"+ e.type + "}, type must be {"+ElementType[1]+"}");
}
Question3dMatrix.prototype.addElementCheck = function(e) {
	if(e instanceof ElementCheck)
		this.elements.push(e);
	else
		alert("Error: incorect type : {"+ e.type + "}, type must be {"+ElementType[2]+"}");
}
Question3dMatrix.prototype.addElementEdit = function(e) {
	if(e instanceof ElementEdit)
		this.elements.push(e);
	else
		alert("Error: incorect type : {"+ e.type + "}, type must be {"+ElementType[3]+"}");
}
Question3dMatrix.prototype.addElementSelect = function(e) {
	if(e instanceof ElementSelect)
		this.elements.push(e);
	else
		alert("Error: incorect type : {"+ e.type + "}, type must be {"+ElementType[5]+"}");
}

Question3dMatrix.prototype.getQuestionHeaderTable = function(qid){
	this.base = QuestionAbstract;
	return getQuestionHeaderTable(qid);
}
Question3dMatrix.prototype.getQuestionAnchorTr = function(qid){
	this.base = QuestionAbstract;
	return getQuestionAnchorTr(qid);
}
Question3dMatrix.prototype.getQuestionAnchorTd = function(qid){
	this.base = QuestionAbstract;
	return getQuestionAnchorTd(qid);
}
Question3dMatrix.prototype.getQuestionAnchorBr = function(qid){
	this.base = QuestionAbstract;
	return getQuestionAnchorBr(qid);
}
Question3dMatrix.prototype.getQuestionAnchor = function(qid){
	this.base = QuestionAbstract;
	return getQuestionAnchor(qid);
}
Question3dMatrix.prototype.getQuestionImageTr = function(qid){
	this.base = QuestionAbstract;
	return getQuestionImageTr(qid);
}
Question3dMatrix.prototype.getQuestionImageTd = function(qid){
	this.base = QuestionAbstract;
	return getQuestionImageTd(qid);
}
Question3dMatrix.prototype.getQuestionImage = function(qid){
	this.base = QuestionAbstract;
	return getQuestionImage(qid);
}
Question3dMatrix.prototype.getQuestionLabelTr = function(qid){
	this.base = QuestionAbstract;
	return getQuestionLabelTr(qid);
}
Question3dMatrix.prototype.getQuestionLabelTd = function(qid){
	this.base = QuestionAbstract;
	return getQuestionLabelTd(qid);
}
Question3dMatrix.prototype.getQuestionLabel = function(qid){
	this.base = QuestionAbstract;
	return getQuestionLabel(qid);
}
Question3dMatrix.prototype.getBrQuestionSpace = function(qid){
	this.base = QuestionAbstract;
	return getBrQuestionSpace(qid);
}
Question3dMatrix.prototype.getAnswerElementTr = function(qid){
	this.base = QuestionAbstract;
	return getAnswerElementTr(qid);
}
Question3dMatrix.prototype.getAnswerElementTd = function(qid){
	this.base = QuestionAbstract;
	return getAnswerElementTd(qid);
}
Question3dMatrix.prototype.getSelectR = function(qid){
	this.base = QuestionAbstract;
	return getSelectR(qid);
}

Question3dMatrix.prototype.hideQuestionSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideQuestionSection(qid,hide);
}
Question3dMatrix.prototype.hideQuestionAnchorSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideQuestionAnchorSection (qid,hide);
}
Question3dMatrix.prototype.hideQuestionImageSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideQuestionImageSection (qid,hide);
}
Question3dMatrix.prototype.hideQuestionLabelSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideQuestionLabelSection(qid,hide);
}

Question3dMatrix.prototype.toString = function() {
	return "Question: Id="+this.id+"; Name="+this.name+"; Type={"+this.type+"}; isHide="+this.hide+"; Prefix="+this.prefix;
}

QuestionCheckAllThatApplyWithOther.prototype = new QuestionAbstract;

function QuestionCheckAllThatApplyWithOther(id, name, hide, prefix, answers) {
	this.base = QuestionAbstract;
	this.base(id, name, hide, QuestionType[6], prefix, answers, null, null);
}
QuestionCheckAllThatApplyWithOther.prototype.addAnswerCheck = function(a) {
	if(a instanceof AnswerCheck)
		this.answers.push(a);
	else
		alert("Error: incorect answer type : {"+ a.type + "}, type must be {"+AnswerType[2]+"}");
}
QuestionCheckAllThatApplyWithOther.prototype.addAnswerOther = function(a) {
	if(a instanceof AnswerCheckEdit)
		this.answers.push(a);
	else
		alert("Error: incorect answer type : {"+ a.type + "}, type must be {"+AnswerType[9]+"}");
}

QuestionCheckAllThatApplyWithOther.prototype.getQuestionHeaderTable = function(qid){
	this.base = QuestionAbstract;
	return getQuestionHeaderTable(qid);
}
QuestionCheckAllThatApplyWithOther.prototype.getQuestionAnchorTr = function(qid){
	this.base = QuestionAbstract;
	return getQuestionAnchorTr(qid);
}
QuestionCheckAllThatApplyWithOther.prototype.getQuestionAnchorTd = function(qid){
	this.base = QuestionAbstract;
	return getQuestionAnchorTd(qid);
}
QuestionCheckAllThatApplyWithOther.prototype.getQuestionAnchorBr = function(qid){
	this.base = QuestionAbstract;
	return getQuestionAnchorBr(qid);
}
QuestionCheckAllThatApplyWithOther.prototype.getQuestionAnchor = function(qid){
	this.base = QuestionAbstract;
	return getQuestionAnchor(qid);
}
QuestionCheckAllThatApplyWithOther.prototype.getQuestionImageTr = function(qid){
	this.base = QuestionAbstract;
	return getQuestionImageTr(qid);
}
QuestionCheckAllThatApplyWithOther.prototype.getQuestionImageTd = function(qid){
	this.base = QuestionAbstract;
	return getQuestionImageTd(qid);
}
QuestionCheckAllThatApplyWithOther.prototype.getQuestionImage = function(qid){
	this.base = QuestionAbstract;
	return getQuestionImage(qid);
}
QuestionCheckAllThatApplyWithOther.prototype.getQuestionLabelTr = function(qid){
	this.base = QuestionAbstract;
	return getQuestionLabelTr(qid);
}
QuestionCheckAllThatApplyWithOther.prototype.getQuestionLabelTd = function(qid){
	this.base = QuestionAbstract;
	return getQuestionLabelTd(qid);
}
QuestionCheckAllThatApplyWithOther.prototype.getQuestionLabel = function(qid){
	this.base = QuestionAbstract;
	return getQuestionLabel(qid);
}
QuestionCheckAllThatApplyWithOther.prototype.getBrQuestionSpace = function(qid){
	this.base = QuestionAbstract;
	return getBrQuestionSpace(qid);
}
QuestionCheckAllThatApplyWithOther.prototype.getAnswerElementTr = function(qid){
	this.base = QuestionAbstract;
	return getAnswerElementTr(qid);
}
QuestionCheckAllThatApplyWithOther.prototype.getAnswerElementTd = function(qid){
	this.base = QuestionAbstract;
	return getAnswerElementTd(qid);
}
QuestionCheckAllThatApplyWithOther.prototype.getSelectR = function(qid){
	this.base = QuestionAbstract;
	return getSelectR(qid);
}


QuestionCheckAllThatApplyWithOther.prototype.hideQuestionSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideQuestionSection(qid,hide);
}
QuestionCheckAllThatApplyWithOther.prototype.hideQuestionAnchorSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideQuestionAnchorSection (qid,hide);
}
QuestionCheckAllThatApplyWithOther.prototype.hideQuestionImageSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideQuestionImageSection (qid,hide);
}
QuestionCheckAllThatApplyWithOther.prototype.hideQuestionLabelSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideQuestionLabelSection(qid,hide);
}
QuestionCheckAllThatApplyWithOther.prototype.toString = function() {
	return "Question: Id="+this.id+"; Name="+this.name+"; Type={"+this.type+"}; isHide="+this.hide+"; Prefix="+this.prefix;
}

QuestionCheckAllThatApplyWithoutOther.prototype = new QuestionAbstract;

function QuestionCheckAllThatApplyWithoutOther(id, name, hide, prefix, answers) {
	this.base = QuestionAbstract;
	this.base(id, name, hide, QuestionType[5], prefix, answers, null, null);
}

QuestionCheckAllThatApplyWithoutOther.prototype.addAnswerCheck = function(a) {
	if(a instanceof AnswerCheck)
		this.answers.push(a);
	else
		alert("Error: incorect answer type : {"+ a.type + "}, type must be {"+AnswerType[2]+"}");
}

QuestionCheckAllThatApplyWithoutOther.prototype.getQuestionHeaderTable = function(qid){
	this.base = QuestionAbstract;
	return getQuestionHeaderTable(qid);
}
QuestionCheckAllThatApplyWithoutOther.prototype.getQuestionAnchorTr = function(qid){
	this.base = QuestionAbstract;
	return getQuestionAnchorTr(qid);
}
QuestionCheckAllThatApplyWithoutOther.prototype.getQuestionAnchorTd = function(qid){
	this.base = QuestionAbstract;
	return getQuestionAnchorTd(qid);
}
QuestionCheckAllThatApplyWithoutOther.prototype.getQuestionAnchorBr = function(qid){
	this.base = QuestionAbstract;
	return getQuestionAnchorBr(qid);
}
QuestionCheckAllThatApplyWithoutOther.prototype.getQuestionAnchor = function(qid){
	this.base = QuestionAbstract;
	return getQuestionAnchor(qid);
}
QuestionCheckAllThatApplyWithoutOther.prototype.getQuestionImageTr = function(qid){
	this.base = QuestionAbstract;
	return getQuestionImageTr(qid);
}
QuestionCheckAllThatApplyWithoutOther.prototype.getQuestionImageTd = function(qid){
	this.base = QuestionAbstract;
	return getQuestionImageTd(qid);
}
QuestionCheckAllThatApplyWithoutOther.prototype.getQuestionImage = function(qid){
	this.base = QuestionAbstract;
	return getQuestionImage(qid);
}
QuestionCheckAllThatApplyWithoutOther.prototype.getQuestionLabelTr = function(qid){
	this.base = QuestionAbstract;
	return getQuestionLabelTr(qid);
}
QuestionCheckAllThatApplyWithoutOther.prototype.getQuestionLabelTd = function(qid){
	this.base = QuestionAbstract;
	return getQuestionLabelTd(qid);
}
QuestionCheckAllThatApplyWithoutOther.prototype.getQuestionLabel = function(qid){
	this.base = QuestionAbstract;
	return getQuestionLabel(qid);
}
QuestionCheckAllThatApplyWithoutOther.prototype.getBrQuestionSpace = function(qid){
	this.base = QuestionAbstract;
	return getBrQuestionSpace(qid);
}
QuestionCheckAllThatApplyWithoutOther.prototype.getAnswerElementTr = function(qid){
	this.base = QuestionAbstract;
	return getAnswerElementTr(qid);
}
QuestionCheckAllThatApplyWithoutOther.prototype.getAnswerElementTd = function(qid){
	this.base = QuestionAbstract;
	return getAnswerElementTd(qid);
}
QuestionCheckAllThatApplyWithoutOther.prototype.getSelectR = function(qid){
	this.base = QuestionAbstract;
	return getSelectR(qid);
}
QuestionCheckAllThatApplyWithoutOther.prototype.hideQuestionSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideQuestionSection(qid,hide);
}
QuestionCheckAllThatApplyWithoutOther.prototype.hideQuestionAnchorSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideQuestionAnchorSection (qid,hide);
}
QuestionCheckAllThatApplyWithoutOther.prototype.hideQuestionImageSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideQuestionImageSection (qid,hide);
}
QuestionCheckAllThatApplyWithoutOther.prototype.hideQuestionLabelSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideQuestionLabelSection(qid,hide);
}

QuestionCheckAllThatApplyWithoutOther.prototype.toString = function() {
	return "Question: Id="+this.id+"; Name="+this.name+"; Type={"+this.type+"}; isHide="+this.hide+"; Prefix="+this.prefix;
}

QuestionCompareOneByOne.prototype = new QuestionAbstract;

function QuestionCompareOneByOne(id, name, hide, prefix, answers) {
	this.base = QuestionAbstract;
	this.base(id, name, hide, QuestionType[12], prefix, answers, null, null);
}

QuestionCompareOneByOne.prototype.addAnswerRadio = function(a) {
	if(a instanceof AnswerRadio || a instanceof AnswerRadioCOBO)
		this.answers.push(a);
	else
		alert("Error: incorect answer type : {"+ a.type + "}, type must be {"+AnswerType[1]+"}");
}

QuestionCompareOneByOne.prototype.getQuestionHeaderTable = function(qid){
	this.base = QuestionAbstract;
	return getQuestionHeaderTable(qid);
}
QuestionCompareOneByOne.prototype.getQuestionAnchorTr = function(qid){
	this.base = QuestionAbstract;
	return getQuestionAnchorTr(qid);
}
QuestionCompareOneByOne.prototype.getQuestionAnchorTd = function(qid){
	this.base = QuestionAbstract;
	return getQuestionAnchorTd(qid);
}
QuestionCompareOneByOne.prototype.getQuestionAnchorBr = function(qid){
	this.base = QuestionAbstract;
	return getQuestionAnchorBr(qid);
}
QuestionCompareOneByOne.prototype.getQuestionAnchor = function(qid){
	this.base = QuestionAbstract;
	return getQuestionAnchor(qid);
}
QuestionCompareOneByOne.prototype.getQuestionImageTr = function(qid){
	this.base = QuestionAbstract;
	return getQuestionImageTr(qid);
}
QuestionCompareOneByOne.prototype.getQuestionImageTd = function(qid){
	this.base = QuestionAbstract;
	return getQuestionImageTd(qid);
}
QuestionCompareOneByOne.prototype.getQuestionImage = function(qid){
	this.base = QuestionAbstract;
	return getQuestionImage(qid);
}
QuestionCompareOneByOne.prototype.getQuestionLabelTr = function(qid){
	this.base = QuestionAbstract;
	return getQuestionLabelTr(qid);
}
QuestionCompareOneByOne.prototype.getQuestionLabelTd = function(qid){
	this.base = QuestionAbstract;
	return getQuestionLabelTd(qid);
}
QuestionCompareOneByOne.prototype.getQuestionLabel = function(qid){
	this.base = QuestionAbstract;
	return getQuestionLabel(qid);
}
QuestionCompareOneByOne.prototype.getBrQuestionSpace = function(qid){
	this.base = QuestionAbstract;
	return getBrQuestionSpace(qid);
}
QuestionCompareOneByOne.prototype.getAnswerElementTr = function(qid){
	this.base = QuestionAbstract;
	return getAnswerElementTr(qid);
}
QuestionCompareOneByOne.prototype.getAnswerElementTd = function(qid){
	this.base = QuestionAbstract;
	return getAnswerElementTd(qid);
}
QuestionCompareOneByOne.prototype.getSelectR = function(qid){
	this.base = QuestionAbstract;
	return getSelectR(qid);
}

QuestionCompareOneByOne.prototype.hideQuestionSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideQuestionSection(qid,hide);
}
QuestionCompareOneByOne.prototype.hideQuestionAnchorSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideQuestionAnchorSection (qid,hide);
}
QuestionCompareOneByOne.prototype.hideQuestionImageSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideQuestionImageSection (qid,hide);
}
QuestionCompareOneByOne.prototype.hideQuestionLabelSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideQuestionLabelSection(qid,hide);
}
QuestionCompareOneByOne.prototype.toString = function() {
	return "Question: Id="+this.id+"; Name="+this.name+"; Type={"+this.type+"}; isHide="+this.hide+"; Prefix="+this.prefix;
}
QuestionDropDownBox.prototype = new QuestionAbstract;

function QuestionDropDownBox(id, name, hide, prefix, answers) {
	this.base = QuestionAbstract;
	this.base(id, name, hide, QuestionType[7], prefix, answers, null, null);
}
QuestionDropDownBox.prototype.addAnswerOption = function(a) {
	if(a instanceof AnswerOption)
		this.answers.push(a);
	else
		alert("Error: incorect answer type : {"+ a.type + "}, type must be {"+AnswerType[4]+"}");
}

QuestionDropDownBox.prototype.getQuestionHeaderTable = function(qid){
	this.base = QuestionAbstract;
	return getQuestionHeaderTable(qid);
}
QuestionDropDownBox.prototype.getQuestionAnchorTr = function(qid){
	this.base = QuestionAbstract;
	return getQuestionAnchorTr(qid);
}
QuestionDropDownBox.prototype.getQuestionAnchorTd = function(qid){
	this.base = QuestionAbstract;
	return getQuestionAnchorTd(qid);
}
QuestionDropDownBox.prototype.getQuestionAnchorBr = function(qid){
	this.base = QuestionAbstract;
	return getQuestionAnchorBr(qid);
}
QuestionDropDownBox.prototype.getQuestionAnchor = function(qid){
	this.base = QuestionAbstract;
	return getQuestionAnchor(qid);
}
QuestionDropDownBox.prototype.getQuestionImageTr = function(qid){
	this.base = QuestionAbstract;
	return getQuestionImageTr(qid);
}
QuestionDropDownBox.prototype.getQuestionImageTd = function(qid){
	this.base = QuestionAbstract;
	return getQuestionImageTd(qid);
}
QuestionDropDownBox.prototype.getQuestionImage = function(qid){
	this.base = QuestionAbstract;
	return getQuestionImage(qid);
}
QuestionDropDownBox.prototype.getQuestionLabelTr = function(qid){
	this.base = QuestionAbstract;
	return getQuestionLabelTr(qid);
}
QuestionDropDownBox.prototype.getQuestionLabelTd = function(qid){
	this.base = QuestionAbstract;
	return getQuestionLabelTd(qid);
}
QuestionDropDownBox.prototype.getQuestionLabel = function(qid){
	this.base = QuestionAbstract;
	return getQuestionLabel(qid);
}
QuestionDropDownBox.prototype.getBrQuestionSpace = function(qid){
	this.base = QuestionAbstract;
	return getBrQuestionSpace(qid);
}
QuestionDropDownBox.prototype.getAnswerElementTr = function(qid){
	this.base = QuestionAbstract;
	return getAnswerElementTr(qid);
}
QuestionDropDownBox.prototype.getAnswerElementTd = function(qid){
	this.base = QuestionAbstract;
	return getAnswerElementTd(qid);
}
QuestionDropDownBox.prototype.getSelectR = function(qid){
	this.base = QuestionAbstract;
	return getSelectR(qid);
}

QuestionDropDownBox.prototype.hideQuestionSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideQuestionSection(qid,hide);
	hideAnswerSelectSection(qid,hide);
}
QuestionDropDownBox.prototype.hideQuestionAnchorSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideQuestionAnchorSection (qid,hide);
}
QuestionDropDownBox.prototype.hideQuestionImageSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideQuestionImageSection (qid,hide);
}
QuestionDropDownBox.prototype.hideQuestionLabelSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideQuestionLabelSection(qid,hide);
}
QuestionDropDownBox.prototype.hideQuestionLabelSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideQuestionLabelSection(qid,hide);
}
QuestionDropDownBox.prototype.hideAnswerSelectSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideAnswerSelectSection(qid,hide);
}
QuestionDropDownBox.prototype.toString = function() {
	return "Question: Id="+this.id+"; Name="+this.name+"; Type={"+this.type+"}; isHide="+this.hide+"; Prefix="+this.prefix;
}
QuestionHeader.prototype = new QuestionAbstract;

function QuestionHeader(id, name, hide, prefix) {
	this.base = QuestionAbstract;
	this.base(id, name, hide, QuestionType[1], prefix, null, null, null);
}
QuestionHeader.prototype.getQuestionHeaderTable = function(qid){
	this.base = QuestionAbstract;
	return getQuestionHeaderTable(qid);
}
QuestionHeader.prototype.getQuestionAnchorTr = function(qid){
	this.base = QuestionAbstract;
	return getQuestionAnchorTr(qid);
}
QuestionHeader.prototype.getQuestionAnchorTd = function(qid){
	this.base = QuestionAbstract;
	return getQuestionAnchorTd(qid);
}
QuestionHeader.prototype.getQuestionAnchorBr = function(qid){
	this.base = QuestionAbstract;
	return getQuestionAnchorBr(qid);
}
QuestionHeader.prototype.getQuestionAnchor = function(qid){
	this.base = QuestionAbstract;
	return getQuestionAnchor(qid);
}
QuestionHeader.prototype.getQuestionImageTr = function(qid){
	this.base = QuestionAbstract;
	return getQuestionImageTr(qid);
}
QuestionHeader.prototype.getQuestionImageTd = function(qid){
	this.base = QuestionAbstract;
	return getQuestionImageTd(qid);
}
QuestionHeader.prototype.getQuestionImage = function(qid){
	this.base = QuestionAbstract;
	return getQuestionImage(qid);
}
QuestionHeader.prototype.getQuestionLabelTr = function(qid){
	this.base = QuestionAbstract;
	return getQuestionLabelTr(qid);
}
QuestionHeader.prototype.getQuestionLabelTd = function(qid){
	this.base = QuestionAbstract;
	return getQuestionLabelTd(qid);
}
QuestionHeader.prototype.getQuestionLabel = function(qid){
	this.base = QuestionAbstract;
	return getQuestionLabel(qid);
}
QuestionHeader.prototype.getBrQuestionSpace = function(qid){
	this.base = QuestionAbstract;
	return getBrQuestionSpace(qid);
}
QuestionHeader.prototype.getAnswerElementTr = function(qid){
	this.base = QuestionAbstract;
	return getAnswerElementTr(qid);
}
QuestionHeader.prototype.getAnswerElementTd = function(qid){
	this.base = QuestionAbstract;
	return getAnswerElementTd(qid);
}
QuestionHeader.prototype.getSelectR = function(qid){
	this.base = QuestionAbstract;
	return getSelectR(qid);
}

QuestionHeader.prototype.hideQuestionSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideQuestionSection(qid,hide);
}
QuestionHeader.prototype.hideQuestionAnchorSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideQuestionAnchorSection(qid,hide);
}
QuestionHeader.prototype.hideQuestionImageSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideQuestionImageSection(qid,hide);
}
QuestionHeader.prototype.hideQuestionLabelSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideQuestionLabelSection(qid,hide);
}

QuestionHeader.prototype.toString = function() {
	return "QuestionHeader: Id="+this.id+"; Name="+this.name+"; Type={"+this.type+"}; isHide="+this.hide+"; Prefix="+this.prefix;
}
QuestionListBox.prototype = new QuestionAbstract;

function QuestionListBox(id, name, hide, prefix, answers) {
	this.base = QuestionAbstract;
	this.base(id, name, hide, QuestionType[8], prefix, answers, null, null);
}

QuestionListBox.prototype.addAnswerOption = function(a) {
	if(a instanceof AnswerOption)
		this.answers.push(a);
	else
		alert("Error: incorect answer type : {"+ a.type + "}, type must be {"+AnswerType[4]+"}");
}

QuestionListBox.prototype.getQuestionHeaderTable = function(qid){
	this.base = QuestionAbstract;
	return getQuestionHeaderTable(qid);
}
QuestionListBox.prototype.getQuestionAnchorTr = function(qid){
	this.base = QuestionAbstract;
	return getQuestionAnchorTr(qid);
}
QuestionListBox.prototype.getQuestionAnchorTd = function(qid){
	this.base = QuestionAbstract;
	return getQuestionAnchorTd(qid);
}
QuestionListBox.prototype.getQuestionAnchorBr = function(qid){
	this.base = QuestionAbstract;
	return getQuestionAnchorBr(qid);
}
QuestionListBox.prototype.getQuestionAnchor = function(qid){
	this.base = QuestionAbstract;
	return getQuestionAnchor(qid);
}
QuestionListBox.prototype.getQuestionImageTr = function(qid){
	this.base = QuestionAbstract;
	return getQuestionImageTr(qid);
}
QuestionListBox.prototype.getQuestionImageTd = function(qid){
	this.base = QuestionAbstract;
	return getQuestionImageTd(qid);
}
QuestionListBox.prototype.getQuestionImage = function(qid){
	this.base = QuestionAbstract;
	return getQuestionImage(qid);
}
QuestionListBox.prototype.getQuestionLabelTr = function(qid){
	this.base = QuestionAbstract;
	return getQuestionLabelTr(qid);
}
QuestionListBox.prototype.getQuestionLabelTd = function(qid){
	this.base = QuestionAbstract;
	return getQuestionLabelTd(qid);
}
QuestionListBox.prototype.getQuestionLabel = function(qid){
	this.base = QuestionAbstract;
	return getQuestionLabel(qid);
}
QuestionListBox.prototype.getBrQuestionSpace = function(qid){
	this.base = QuestionAbstract;
	return getBrQuestionSpace(qid);
}
QuestionListBox.prototype.getAnswerElementTr = function(qid){
	this.base = QuestionAbstract;
	return getAnswerElementTr(qid);
}
QuestionListBox.prototype.getAnswerElementTd = function(qid){
	this.base = QuestionAbstract;
	return getAnswerElementTd(qid);
}
QuestionListBox.prototype.getSelectR = function(qid){
	this.base = QuestionAbstract;
	return getSelectR(qid);
}

QuestionListBox.prototype.hideQuestionSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideQuestionSection(qid,hide);
	hideAnswerSelectSection(qid,hide);
}
QuestionListBox.prototype.hideQuestionAnchorSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideQuestionAnchorSection (qid,hide);
}
QuestionListBox.prototype.hideQuestionImageSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideQuestionImageSection (qid,hide);
}
QuestionListBox.prototype.hideQuestionLabelSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideQuestionLabelSection(qid,hide);
}
QuestionListBox.prototype.hideAnswerSelectSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideAnswerSelectSection(qid,hide);
}
QuestionListBox.prototype.toString = function() {
	return "Question: Id="+this.id+"; Name="+this.name+"; Type={"+this.type+"}; isHide="+this.hide+"; Prefix="+this.prefix;
}
QuestionMultiLine.prototype = new QuestionAbstract;

function QuestionMultiLine(id, name, hide, prefix, answers) {
	this.base = QuestionAbstract;
	this.base(id, name, hide, QuestionType[10], prefix, answers, null, null);
}

QuestionMultiLine.prototype.addAnswerArea = function(a) {
	if(a instanceof AnswerArea)
		this.answers.push(a);
	else
		alert("Error: incorect answer type : {"+ a.type + "}, type must be {"+AnswerType[5]+"}");
}

QuestionMultiLine.prototype.getQuestionHeaderTable = function(qid){
	this.base = QuestionAbstract;
	return getQuestionHeaderTable(qid);
}
QuestionMultiLine.prototype.getQuestionAnchorTr = function(qid){
	this.base = QuestionAbstract;
	return getQuestionAnchorTr(qid);
}
QuestionMultiLine.prototype.getQuestionAnchorTd = function(qid){
	this.base = QuestionAbstract;
	return getQuestionAnchorTd(qid);
}
QuestionMultiLine.prototype.getQuestionAnchorBr = function(qid){
	this.base = QuestionAbstract;
	return getQuestionAnchorBr(qid);
}
QuestionMultiLine.prototype.getQuestionAnchor = function(qid){
	this.base = QuestionAbstract;
	return getQuestionAnchor(qid);
}
QuestionMultiLine.prototype.getQuestionImageTr = function(qid){
	this.base = QuestionAbstract;
	return getQuestionImageTr(qid);
}
QuestionMultiLine.prototype.getQuestionImageTd = function(qid){
	this.base = QuestionAbstract;
	return getQuestionImageTd(qid);
}
QuestionMultiLine.prototype.getQuestionImage = function(qid){
	this.base = QuestionAbstract;
	return getQuestionImage(qid);
}
QuestionMultiLine.prototype.getQuestionLabelTr = function(qid){
	this.base = QuestionAbstract;
	return getQuestionLabelTr(qid);
}
QuestionMultiLine.prototype.getQuestionLabelTd = function(qid){
	this.base = QuestionAbstract;
	return getQuestionLabelTd(qid);
}
QuestionMultiLine.prototype.getQuestionLabel = function(qid){
	this.base = QuestionAbstract;
	return getQuestionLabel(qid);
}
QuestionMultiLine.prototype.getBrQuestionSpace = function(qid){
	this.base = QuestionAbstract;
	return getBrQuestionSpace(qid);
}
QuestionMultiLine.prototype.getAnswerElementTr = function(qid){
	this.base = QuestionAbstract;
	return getAnswerElementTr(qid);
}
QuestionMultiLine.prototype.getAnswerElementTd = function(qid){
	this.base = QuestionAbstract;
	return getAnswerElementTd(qid);
}
QuestionMultiLine.prototype.getSelectR = function(qid){
	this.base = QuestionAbstract;
	return getSelectR(qid);
}

QuestionMultiLine.prototype.hideQuestionSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideQuestionSection(qid,hide);
}
QuestionMultiLine.prototype.hideQuestionAnchorSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideQuestionAnchorSection (qid,hide);
}
QuestionMultiLine.prototype.hideQuestionImageSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideQuestionImageSection (qid,hide);
}
QuestionMultiLine.prototype.hideQuestionLabelSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideQuestionLabelSection(qid,hide);
}
QuestionMultiLine.prototype.toString = function() {
	return "Question: Id="+this.id+"; Name="+this.name+"; Type={"+this.type+"}; isHide="+this.hide+"; Prefix="+this.prefix;
}
QuestionNumericAllocation.prototype = new QuestionAbstract;

function QuestionNumericAllocation(id, name, hide, prefix, answers) {
	this.base = QuestionAbstract;
	this.base(id, name, hide, QuestionType[14], prefix, answers, null, null);
}

QuestionNumericAllocation.prototype.addAnswerEdit = function(a) {
	if(a instanceof AnswerEdit)
		this.answers.push(a);
	else
		alert("Error: incorect answer type : {"+ a.type + "}, type must be {"+AnswerType[3]+"}");
}
QuestionNumericAllocation.prototype.addAnswerTotal = function(a) {
	if(a instanceof AnswerTotal)
		this.answers.push(a);
	else
		alert("Error: incorect answer type : {"+ a.type + "}, type must be {"+AnswerType[6]+"}");
}

QuestionNumericAllocation.prototype.getQuestionHeaderTable = function(qid){
	this.base = QuestionAbstract;
	return getQuestionHeaderTable(qid);
}
QuestionNumericAllocation.prototype.getQuestionAnchorTr = function(qid){
	this.base = QuestionAbstract;
	return getQuestionAnchorTr(qid);
}
QuestionNumericAllocation.prototype.getQuestionAnchorTd = function(qid){
	this.base = QuestionAbstract;
	return getQuestionAnchorTd(qid);
}
QuestionNumericAllocation.prototype.getQuestionAnchorBr = function(qid){
	this.base = QuestionAbstract;
	return getQuestionAnchorBr(qid);
}
QuestionNumericAllocation.prototype.getQuestionAnchor = function(qid){
	this.base = QuestionAbstract;
	return getQuestionAnchor(qid);
}
QuestionNumericAllocation.prototype.getQuestionImageTr = function(qid){
	this.base = QuestionAbstract;
	return getQuestionImageTr(qid);
}
QuestionNumericAllocation.prototype.getQuestionImageTd = function(qid){
	this.base = QuestionAbstract;
	return getQuestionImageTd(qid);
}
QuestionNumericAllocation.prototype.getQuestionImage = function(qid){
	this.base = QuestionAbstract;
	return getQuestionImage(qid);
}
QuestionNumericAllocation.prototype.getQuestionLabelTr = function(qid){
	this.base = QuestionAbstract;
	return getQuestionLabelTr(qid);
}
QuestionNumericAllocation.prototype.getQuestionLabelTd = function(qid){
	this.base = QuestionAbstract;
	return getQuestionLabelTd(qid);
}
QuestionNumericAllocation.prototype.getQuestionLabel = function(qid){
	this.base = QuestionAbstract;
	return getQuestionLabel(qid);
}
QuestionNumericAllocation.prototype.getBrQuestionSpace = function(qid){
	this.base = QuestionAbstract;
	return getBrQuestionSpace(qid);
}
QuestionNumericAllocation.prototype.getAnswerElementTr = function(qid){
	this.base = QuestionAbstract;
	return getAnswerElementTr(qid);
}
QuestionNumericAllocation.prototype.getAnswerElementTd = function(qid){
	this.base = QuestionAbstract;
	return getAnswerElementTd(qid);
}
QuestionNumericAllocation.prototype.getSelectR = function(qid){
	this.base = QuestionAbstract;
	return getSelectR(qid);
}


QuestionNumericAllocation.prototype.hideQuestionSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideQuestionSection(qid,hide);
}
QuestionNumericAllocation.prototype.hideQuestionAnchorSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideQuestionAnchorSection (qid,hide);
}
QuestionNumericAllocation.prototype.hideQuestionImageSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideQuestionImageSection (qid,hide);
}
QuestionNumericAllocation.prototype.hideQuestionLabelSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideQuestionLabelSection(qid,hide);
}
QuestionNumericAllocation.prototype.toString = function() {
	return "Question: Id="+this.id+"; Name="+this.name+"; Type={"+this.type+"}; isHide="+this.hide+"; Prefix="+this.prefix;
}
QuestionPickOneWithComment.prototype = new QuestionAbstract;

function QuestionPickOneWithComment(id, name, hide, prefix, answers) {
	this.base = QuestionAbstract;
	this.base(id, name, hide, QuestionType[4], prefix, answers, null, null);
}

QuestionPickOneWithComment.prototype.addAnswerRadio = function(a) {
	if(a instanceof AnswerRadioPOWC)
		this.answers.push(a);
	else
		alert("Error: incorect answer type : {"+ a.type + "}, type must be {"+AnswerType[10]+"}");
}
QuestionPickOneWithComment.prototype.addAnswerComment = function(a) {
	if(a instanceof AnswerEditPOWC)
		this.answers.push(a);
	else
		alert("Error: incorect answer type : {"+ a.type + "}, type must be {"+AnswerType[11]+"}");
}

QuestionPickOneWithComment.prototype.getQuestionHeaderTable = function(qid){
	this.base = QuestionAbstract;
	return getQuestionHeaderTable(qid);
}
QuestionPickOneWithComment.prototype.getQuestionAnchorTr = function(qid){
	this.base = QuestionAbstract;
	return getQuestionAnchorTr(qid);
}
QuestionPickOneWithComment.prototype.getQuestionAnchorTd = function(qid){
	this.base = QuestionAbstract;
	return getQuestionAnchorTd(qid);
}
QuestionPickOneWithComment.prototype.getQuestionAnchorBr = function(qid){
	this.base = QuestionAbstract;
	return getQuestionAnchorBr(qid);
}
QuestionPickOneWithComment.prototype.getQuestionAnchor = function(qid){
	this.base = QuestionAbstract;
	return getQuestionAnchor(qid);
}
QuestionPickOneWithComment.prototype.getQuestionImageTr = function(qid){
	this.base = QuestionAbstract;
	return getQuestionImageTr(qid);
}
QuestionPickOneWithComment.prototype.getQuestionImageTd = function(qid){
	this.base = QuestionAbstract;
	return getQuestionImageTd(qid);
}
QuestionPickOneWithComment.prototype.getQuestionImage = function(qid){
	this.base = QuestionAbstract;
	return getQuestionImage(qid);
}
QuestionPickOneWithComment.prototype.getQuestionLabelTr = function(qid){
	this.base = QuestionAbstract;
	return getQuestionLabelTr(qid);
}
QuestionPickOneWithComment.prototype.getQuestionLabelTd = function(qid){
	this.base = QuestionAbstract;
	return getQuestionLabelTd(qid);
}
QuestionPickOneWithComment.prototype.getQuestionLabel = function(qid){
	this.base = QuestionAbstract;
	return getQuestionLabel(qid);
}
QuestionPickOneWithComment.prototype.getBrQuestionSpace = function(qid){
	this.base = QuestionAbstract;
	return getBrQuestionSpace(qid);
}
QuestionPickOneWithComment.prototype.getAnswerElementTr = function(qid){
	this.base = QuestionAbstract;
	return getAnswerElementTr(qid);
}
QuestionPickOneWithComment.prototype.getAnswerElementTd = function(qid){
	this.base = QuestionAbstract;
	return getAnswerElementTd(qid);
}
QuestionPickOneWithComment.prototype.getSelectR = function(qid){
	this.base = QuestionAbstract;
	return getSelectR(qid);
}


QuestionPickOneWithComment.prototype.hideQuestionSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideQuestionSection(qid,hide);
}
QuestionPickOneWithComment.prototype.hideQuestionAnchorSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideQuestionAnchorSection(qid,hide);
}
QuestionPickOneWithComment.prototype.hideQuestionImageSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideQuestionImageSection(qid,hide);
}
QuestionPickOneWithComment.prototype.hideQuestionLabelSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideQuestionLabelSection(qid,hide);
}
QuestionPickOneWithComment.prototype.toString = function() {
	return "Question: Id="+this.id+"; Name="+this.name+"; Type={"+this.type+"}; isHide="+this.hide+"; Prefix="+this.prefix;
}
QuestionPickOneWithOther.prototype = new QuestionAbstract;

function QuestionPickOneWithOther(id, name, hide, prefix, answers) {
	this.base = QuestionAbstract;
	this.base(id, name, hide, QuestionType[3], prefix, answers, null, null);
}

QuestionPickOneWithOther.prototype.addAnswerRadio = function(a) {
	if(a instanceof AnswerRadio)
		this.answers.push(a);
	else
		alert("Error: incorect answer type : {"+ a.type + "}, type must be {"+AnswerType[1]+"}");

}
QuestionPickOneWithOther.prototype.addAnswerOther = function(a) {
	if(a instanceof AnswerRadioEdit)
		this.answers.push(a);
	else
		alert("Error: incorect answer type : {"+ a.type + "}, type must be {"+AnswerType[8]+"}");
}

QuestionPickOneWithOther.prototype.getQuestionHeaderTable = function(qid){
	this.base = QuestionAbstract;
	return getQuestionHeaderTable(qid);
}
QuestionPickOneWithOther.prototype.getQuestionAnchorTr = function(qid){
	this.base = QuestionAbstract;
	return getQuestionAnchorTr(qid);
}
QuestionPickOneWithOther.prototype.getQuestionAnchorTd = function(qid){
	this.base = QuestionAbstract;
	return getQuestionAnchorTd(qid);
}
QuestionPickOneWithOther.prototype.getQuestionAnchorBr = function(qid){
	this.base = QuestionAbstract;
	return getQuestionAnchorBr(qid);
}
QuestionPickOneWithOther.prototype.getQuestionAnchor = function(qid){
	this.base = QuestionAbstract;
	return getQuestionAnchor(qid);
}
QuestionPickOneWithOther.prototype.getQuestionImageTr = function(qid){
	this.base = QuestionAbstract;
	return getQuestionImageTr(qid);
}
QuestionPickOneWithOther.prototype.getQuestionImageTd = function(qid){
	this.base = QuestionAbstract;
	return getQuestionImageTd(qid);
}
QuestionPickOneWithOther.prototype.getQuestionImage = function(qid){
	this.base = QuestionAbstract;
	return getQuestionImage(qid);
}
QuestionPickOneWithOther.prototype.getQuestionLabelTr = function(qid){
	this.base = QuestionAbstract;
	return getQuestionLabelTr(qid);
}
QuestionPickOneWithOther.prototype.getQuestionLabelTd = function(qid){
	this.base = QuestionAbstract;
	return getQuestionLabelTd(qid);
}
QuestionPickOneWithOther.prototype.getQuestionLabel = function(qid){
	this.base = QuestionAbstract;
	return getQuestionLabel(qid);
}
QuestionPickOneWithOther.prototype.getBrQuestionSpace = function(qid){
	this.base = QuestionAbstract;
	return getBrQuestionSpace(qid);
}
QuestionPickOneWithOther.prototype.getAnswerElementTr = function(qid){
	this.base = QuestionAbstract;
	return getAnswerElementTr(qid);
}
QuestionPickOneWithOther.prototype.getAnswerElementTd = function(qid){
	this.base = QuestionAbstract;
	return getAnswerElementTd(qid);
}
QuestionPickOneWithOther.prototype.getSelectR = function(qid){
	this.base = QuestionAbstract;
	return getSelectR(qid);
}


QuestionPickOneWithOther.prototype.hideQuestionSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideQuestionSection(qid,hide);
}
QuestionPickOneWithOther.prototype.hideQuestionAnchorSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideQuestionAnchorSection (qid,hide);
}
QuestionPickOneWithOther.prototype.hideQuestionImageSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideQuestionImageSection (qid,hide);
}
QuestionPickOneWithOther.prototype.hideQuestionLabelSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideQuestionLabelSection(qid,hide);
}
QuestionPickOneWithOther.prototype.toString = function() {
	return "Question: Id="+this.id+"; Name="+this.name+"; Type={"+this.type+"}; isHide="+this.hide+"; Prefix="+this.prefix;
}
QuestionPickOneWithoutOther.prototype = new QuestionAbstract;

function QuestionPickOneWithoutOther(id, name, hide, prefix, answers) {
	this.base = QuestionAbstract;
	this.base(id, name, hide, QuestionType[2], prefix, answers, null, null);
}

QuestionPickOneWithoutOther.prototype.addAnswerRadio = function(a) {
	if(a instanceof AnswerRadio)
		this.answers.push(a);
	else
		alert("Error: incorect answer type : {"+ a.type + "}, type must be {"+AnswerType[1]+"}");
}

QuestionPickOneWithoutOther.prototype.getQuestionHeaderTable = function(qid){
	this.base = QuestionAbstract;
	return getQuestionHeaderTable(qid);
}
QuestionPickOneWithoutOther.prototype.getQuestionAnchorTr = function(qid){
	this.base = QuestionAbstract;
	return getQuestionAnchorTr(qid);
}
QuestionPickOneWithoutOther.prototype.getQuestionAnchorTd = function(qid){
	this.base = QuestionAbstract;
	return getQuestionAnchorTd(qid);
}
QuestionPickOneWithoutOther.prototype.getQuestionAnchorBr = function(qid){
	this.base = QuestionAbstract;
	return getQuestionAnchorBr(qid);
}
QuestionPickOneWithoutOther.prototype.getQuestionAnchor = function(qid){
	this.base = QuestionAbstract;
	return getQuestionAnchor(qid);
}
QuestionPickOneWithoutOther.prototype.getQuestionImageTr = function(qid){
	this.base = QuestionAbstract;
	return getQuestionImageTr(qid);
}
QuestionPickOneWithoutOther.prototype.getQuestionImageTd = function(qid){
	this.base = QuestionAbstract;
	return getQuestionImageTd(qid);
}
QuestionPickOneWithoutOther.prototype.getQuestionImage = function(qid){
	this.base = QuestionAbstract;
	return getQuestionImage(qid);
}
QuestionPickOneWithoutOther.prototype.getQuestionLabelTr = function(qid){
	this.base = QuestionAbstract;
	return getQuestionLabelTr(qid);
}
QuestionPickOneWithoutOther.prototype.getQuestionLabelTd = function(qid){
	this.base = QuestionAbstract;
	return getQuestionLabelTd(qid);
}
QuestionPickOneWithoutOther.prototype.getQuestionLabel = function(qid){
	this.base = QuestionAbstract;
	return getQuestionLabel(qid);
}
QuestionPickOneWithoutOther.prototype.getBrQuestionSpace = function(qid){
	this.base = QuestionAbstract;
	return getBrQuestionSpace(qid);
}
QuestionPickOneWithoutOther.prototype.getAnswerElementTr = function(qid){
	this.base = QuestionAbstract;
	return getAnswerElementTr(qid);
}
QuestionPickOneWithoutOther.prototype.getAnswerElementTd = function(qid){
	this.base = QuestionAbstract;
	return getAnswerElementTd(qid);
}
QuestionPickOneWithoutOther.prototype.getSelectR = function(qid){
	this.base = QuestionAbstract;
	return getSelectR(qid);
}

QuestionPickOneWithoutOther.prototype.hideQuestionSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideQuestionSection(qid,hide);
}
QuestionPickOneWithoutOther.prototype.hideQuestionAnchorSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideQuestionAnchorSection(qid,hide);
}
QuestionPickOneWithoutOther.prototype.hideQuestionImageSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideQuestionImageSection(qid,hide);
}
QuestionPickOneWithoutOther.prototype.hideQuestionLabelSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideQuestionLabelSection(qid,hide);
}
QuestionPickOneWithoutOther.prototype.toString = function() {
	return "Question: Id="+this.id+"; Name="+this.name+"; Type={"+this.type+"}; isHide="+this.hide+"; Prefix="+this.prefix;
}
QuestionRateDifferent.prototype = new QuestionAbstract;

function QuestionRateDifferent(id, name, hide, prefix, answers, columns, elements) {
	this.base = QuestionAbstract;
	this.base(id, name, hide, QuestionType[11], prefix, answers, columns, elements);
}

QuestionRateDifferent.prototype.addAnswerRadio = function(a) {
	if(a instanceof AnswerRadio || a instanceof AnswerRadioRateDifferent)
		this.answers.push(a);
	else
		alert("Error: incorect type : {"+ a.type + "}, type must be {"+AnswerType[1]+"}");
}
QuestionRateDifferent.prototype.addColumnRadio = function(c) {
	if(c instanceof ColumnRadio)
		this.columns.push(c);
	else
		alert("Error: incorect type : {"+ c.type + "}, type must be {"+ColumnType[1]+"}");
}
QuestionRateDifferent.prototype.addElementRadio = function(e) {
	if(e instanceof ElementRadio  || e instanceof ElementRadioRateDifferent)
		this.elements.push(e);
	else
		alert("Error: incorect type : {"+ e.type + "}, type must be {"+ElementType[1]+"}");
}

QuestionRateDifferent.prototype.getQuestionHeaderTable = function(qid){
	this.base = QuestionAbstract;
	return getQuestionHeaderTable(qid);
}
QuestionRateDifferent.prototype.getQuestionAnchorTr = function(qid){
	this.base = QuestionAbstract;
	return getQuestionAnchorTr(qid);
}
QuestionRateDifferent.prototype.getQuestionAnchorTd = function(qid){
	this.base = QuestionAbstract;
	return getQuestionAnchorTd(qid);
}
QuestionRateDifferent.prototype.getQuestionAnchorBr = function(qid){
	this.base = QuestionAbstract;
	return getQuestionAnchorBr(qid);
}
QuestionRateDifferent.prototype.getQuestionAnchor = function(qid){
	this.base = QuestionAbstract;
	return getQuestionAnchor(qid);
}
QuestionRateDifferent.prototype.getQuestionImageTr = function(qid){
	this.base = QuestionAbstract;
	return getQuestionImageTr(qid);
}
QuestionRateDifferent.prototype.getQuestionImageTd = function(qid){
	this.base = QuestionAbstract;
	return getQuestionImageTd(qid);
}
QuestionRateDifferent.prototype.getQuestionImage = function(qid){
	this.base = QuestionAbstract;
	return getQuestionImage(qid);
}
QuestionRateDifferent.prototype.getQuestionLabelTr = function(qid){
	this.base = QuestionAbstract;
	return getQuestionLabelTr(qid);
}
QuestionRateDifferent.prototype.getQuestionLabelTd = function(qid){
	this.base = QuestionAbstract;
	return getQuestionLabelTd(qid);
}
QuestionRateDifferent.prototype.getQuestionLabel = function(qid){
	this.base = QuestionAbstract;
	return getQuestionLabel(qid);
}
QuestionRateDifferent.prototype.getBrQuestionSpace = function(qid){
	this.base = QuestionAbstract;
	return getBrQuestionSpace(qid);
}
QuestionRateDifferent.prototype.getAnswerElementTr = function(qid){
	this.base = QuestionAbstract;
	return getAnswerElementTr(qid);
}
QuestionRateDifferent.prototype.getAnswerElementTd = function(qid){
	this.base = QuestionAbstract;
	return getAnswerElementTd(qid);
}
QuestionRateDifferent.prototype.getSelectR = function(qid){
	this.base = QuestionAbstract;
	return getSelectR(qid);
}

QuestionRateDifferent.prototype.hideQuestionSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideQuestionSection(qid,hide);
}
QuestionRateDifferent.prototype.hideQuestionAnchorSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideQuestionAnchorSection (qid,hide);
}
QuestionRateDifferent.prototype.hideQuestionImageSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideQuestionImageSection (qid,hide);
}
QuestionRateDifferent.prototype.hideQuestionLabelSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideQuestionLabelSection(qid,hide);
}
QuestionRateDifferent.prototype.toString = function() {
	return "Question: Id="+this.id+"; Name="+this.name+"; Type={"+this.type+"}; isHide="+this.hide+"; Prefix="+this.prefix;
}
QuestionSingleLine.prototype = new QuestionAbstract;

function QuestionSingleLine(id, name, hide, prefix, answers) {
	this.base = QuestionAbstract;
	this.base(id, name, hide, QuestionType[9], prefix, answers, null, null);
}

QuestionSingleLine.prototype.addAnswerEdit = function(a) {
	if(a instanceof AnswerEdit)
		this.answers.push(a);
	else
		alert("Error: incorect answer type : {"+ a.type + "}, type must be {"+AnswerType[3]+"}");
}

QuestionSingleLine.prototype.getQuestionHeaderTable = function(qid){
	this.base = QuestionAbstract;
	return getQuestionHeaderTable(qid);
}
QuestionSingleLine.prototype.getQuestionAnchorTr = function(qid){
	this.base = QuestionAbstract;
	return getQuestionAnchorTr(qid);
}
QuestionSingleLine.prototype.getQuestionAnchorTd = function(qid){
	this.base = QuestionAbstract;
	return getQuestionAnchorTd(qid);
}
QuestionSingleLine.prototype.getQuestionAnchorBr = function(qid){
	this.base = QuestionAbstract;
	return getQuestionAnchorBr(qid);
}
QuestionSingleLine.prototype.getQuestionAnchor = function(qid){
	this.base = QuestionAbstract;
	return getQuestionAnchor(qid);
}
QuestionSingleLine.prototype.getQuestionImageTr = function(qid){
	this.base = QuestionAbstract;
	return getQuestionImageTr(qid);
}
QuestionSingleLine.prototype.getQuestionImageTd = function(qid){
	this.base = QuestionAbstract;
	return getQuestionImageTd(qid);
}
QuestionSingleLine.prototype.getQuestionImage = function(qid){
	this.base = QuestionAbstract;
	return getQuestionImage(qid);
}
QuestionSingleLine.prototype.getQuestionLabelTr = function(qid){
	this.base = QuestionAbstract;
	return getQuestionLabelTr(qid);
}
QuestionSingleLine.prototype.getQuestionLabelTd = function(qid){
	this.base = QuestionAbstract;
	return getQuestionLabelTd(qid);
}
QuestionSingleLine.prototype.getQuestionLabel = function(qid){
	this.base = QuestionAbstract;
	return getQuestionLabel(qid);
}
QuestionSingleLine.prototype.getBrQuestionSpace = function(qid){
	this.base = QuestionAbstract;
	return getBrQuestionSpace(qid);
}
QuestionSingleLine.prototype.getAnswerElementTr = function(qid){
	this.base = QuestionAbstract;
	return getAnswerElementTr(qid);
}
QuestionSingleLine.prototype.getAnswerElementTd = function(qid){
	this.base = QuestionAbstract;
	return getAnswerElementTd(qid);
}
QuestionSingleLine.prototype.getSelectR = function(qid){
	this.base = QuestionAbstract;
	return getSelectR(qid);
}

QuestionSingleLine.prototype.hideQuestionSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideQuestionSection(qid,hide);
}
QuestionSingleLine.prototype.hideQuestionAnchorSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideQuestionAnchorSection (qid,hide);
}
QuestionSingleLine.prototype.hideQuestionImageSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideQuestionImageSection (qid,hide);
}
QuestionSingleLine.prototype.hideQuestionLabelSection = function(qid,hide){
	this.base = QuestionAbstract;
	hideQuestionLabelSection(qid,hide);
}
QuestionSingleLine.prototype.toString = function() {
	return "Question: Id="+this.id+"; Name="+this.name+"; Type={"+this.type+"}; isHide="+this.hide+"; Prefix="+this.prefix;
}
Answer3d.prototype = new AnswerAbstract;

function Answer3d(id, name, hide, prefix) {
	this.base = AnswerAbstract;
	this.base(id, name, hide, AnswerType[7], prefix);
}

Answer3d.prototype.getQuestionAnswersTable = function(qid){
	this.base = AnswerAbstract;
	return getQuestionAnswersTable(qid);
}
Answer3d.prototype.getAnswerTr = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerTr(qid,aid);
}
Answer3d.prototype.getAnswerImageTd = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerImageTd(qid,aid);
}
Answer3d.prototype.getAnswerImageAhref = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerImageAhref(qid,aid);
}
Answer3d.prototype.getAnswerImage = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerImage(qid,aid);
}
Answer3d.prototype.getAnswerElementTd = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerElementTd(qid,aid);
}
Answer3d.prototype.getRC = function(qid,aid){
	this.base = AnswerAbstract;
	return getRC(qid,aid);
}
Answer3d.prototype.getAnswerLabelTd = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerLabelTd(qid,aid);
}
Answer3d.prototype.getAnswerLabel = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerLabel(qid,aid);
}
Answer3d.prototype.getInputTextOther = function(qid,aid){
	this.base = AnswerAbstract;
	return getInputTextOther(qid,aid);
}
Answer3d.prototype.getAnswerImageTr = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerImageTr(qid,aid);
}
Answer3d.prototype.getAnswerLabelTr = function(qid){
	this.base = AnswerAbstract;
	return getAnswerLabelTr(qid);
}
Answer3d.prototype.getAnswerElementTr = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerElementTr(qid,aid);
}
Answer3d.prototype.getSelectR = function(qid,aid){
	this.base = AnswerAbstract;
	return getSelectR(qid,aid);
}
Answer3d.prototype.getAnswerOption = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerOption(qid,aid);
}
Answer3d.prototype.getInputText = function(qid,aid){
	this.base = AnswerAbstract;
	return getInputText(qid,aid);
}
Answer3d.prototype.getGmhLeft = function(aid){
	this.base = AnswerAbstract;
	return getGmhLeft(aid);
}
Answer3d.prototype.getGmhRight = function(aid){
	this.base = AnswerAbstract;
	return getGmhRight(aid);
}
Answer3d.prototype.getAnswerTrCOBO = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerTrCOBO(qid,aid,aid2);
}
Answer3d.prototype.getAnswerLabelTdCOBOLeft = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelTdCOBOLeft(qid,aid,aid2);
}
Answer3d.prototype.getAnswerLabelCOBOLeft = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelCOBOLeft(qid,aid,aid2);
}
Answer3d.prototype.getAnswerElementTdCOBOLeft = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerElementTdCOBOLeft(qid,aid,aid2);
}
Answer3d.prototype.getRC_COBOLeft = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getRC_COBOLeft(qid,aid,aid2);
}
Answer3d.prototype.getAnswerLabelTdCOBOOR = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelTdCOBOOR(qid,aid,aid2);
}
Answer3d.prototype.getAnswerLabelCOBOOR = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelCOBOOR(qid,aid,aid2);
}
Answer3d.prototype.getAnswerElementTdCOBORight = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerElementTdCOBORight(qid,aid,aid2);
}
Answer3d.prototype.getRC_COBORight = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getRC_COBORight(qid,aid,aid2);
}
Answer3d.prototype.getAnswerLabelTdCOBORight = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelTdCOBORight(qid,aid,aid2);
}
Answer3d.prototype.getAnswerLabelCOBORight = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelCOBORight(qid,aid,aid2);
}

/*---------------------------------------------------- Answer Section Hide ----------------------------------------------------*/
Answer3d.prototype.hideAnswerSection = function(qid,aid,hide,trhide){
	this.base = AnswerAbstract;
	this.hideAnswerSection3d(qid,aid,hide);
}
Answer3d.prototype.hideAnswerTr = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerTr(qid,aid,hide);
}
Answer3d.prototype.hideAnswerImageTd = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerImageTd(qid,aid,hide);
}
Answer3d.prototype.hideAnswerImageAhref = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerImageAhref(qid,aid,hide);
}
Answer3d.prototype.hideAnswerImage = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerImage(qid,aid,hide);
}
Answer3d.prototype.hideAnswerElementTd = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerElementTd(qid,aid,hide);
}
Answer3d.prototype.hideGmhLeft= function(aid,hide){
	this.base = AnswerAbstract;
	hideGmhLeft(aid,hide);
}
Answer3d.prototype.hideAnswerLabel = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerLabel(qid,aid,hide);
}

Answer3d.prototype.hideAnswerSection3d = function(qid,aid,hide){
	var disp = (hide)?"none":"";
 	this.hideAnswerTr(qid,aid,hide);
 	this.hideAnswerImageTd(qid,aid,hide);
 	this.hideAnswerImageAhref(qid,aid,hide);
 	this.hideAnswerImage(qid,aid,hide);
 	this.hideGmhLeft(aid,hide);
 	this.hideAnswerLabel(qid,aid,hide);
}

Answer3d.prototype.toString = function() {
	return "Answer: Id="+this.id+"; Name="+this.name+"; isHide="+this.hide+"; Type={"+this.type+"}; Prefix="+this.prefix;
}
AnswerArea.prototype = new AnswerAbstract;

function AnswerArea(id, name, hide, prefix) {
	this.base = AnswerAbstract;
	this.base(id, name, hide, AnswerType[5], prefix);
}
AnswerArea.prototype.getQuestionAnswersTable = function(qid){
	this.base = AnswerAbstract;
	return getQuestionAnswersTable(qid);
}
AnswerArea.prototype.getAnswerTr = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerTr(qid,aid);
}
AnswerArea.prototype.getAnswerImageTd = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerImageTd(qid,aid);
}
AnswerArea.prototype.getAnswerImageAhref = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerImageAhref(qid,aid);
}
AnswerArea.prototype.getAnswerImage = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerImage(qid,aid);
}
AnswerArea.prototype.getAnswerElementTd = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerElementTd(qid,aid);
}
AnswerArea.prototype.getRC = function(qid,aid){
	this.base = AnswerAbstract;
	return getRC(qid,aid);
}
AnswerArea.prototype.getAnswerLabelTd = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerLabelTd(qid,aid);
}
AnswerArea.prototype.getAnswerLabel = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerLabel(qid,aid);
}
AnswerArea.prototype.getAnswerImageTr = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerImageTr(qid,aid);
}
AnswerArea.prototype.getAnswerLabelTr = function(qid){
	this.base = AnswerAbstract;
	return getAnswerLabelTr(qid);
}
AnswerArea.prototype.getAnswerElementTr = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerElementTr(qid,aid);
}
AnswerArea.prototype.getSelectR = function(qid,aid){
	this.base = AnswerAbstract;
	return getSelectR(qid,aid);
}
AnswerArea.prototype.getAnswerOption = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerOption(qid,aid);
}
AnswerArea.prototype.getInputTextOther = function(qid,aid){
	this.base = AnswerAbstract;
  return getInputTextOther(qid,aid);
}
AnswerArea.prototype.getGmhLeft = function(aid){
	this.base = AnswerAbstract;
	return getGmhLeft(aid);
}
AnswerArea.prototype.getGmhRight = function(aid){
	this.base = AnswerAbstract;
	return getGmhRight(aid);
}
AnswerArea.prototype.getAnswerTrCOBO = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerTrCOBO(qid,aid,aid2);
}
AnswerArea.prototype.getAnswerLabelTdCOBOLeft = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelTdCOBOLeft(qid,aid,aid2);
}
AnswerArea.prototype.getAnswerLabelCOBOLeft = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelCOBOLeft(qid,aid,aid2);
}
AnswerArea.prototype.getAnswerElementTdCOBOLeft = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerElementTdCOBOLeft(qid,aid,aid2);
}
AnswerArea.prototype.getRC_COBOLeft = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getRC_COBOLeft(qid,aid,aid2);
}
AnswerArea.prototype.getAnswerLabelTdCOBOOR = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelTdCOBOOR(qid,aid,aid2);
}
AnswerArea.prototype.getAnswerLabelCOBOOR = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelCOBOOR(qid,aid,aid2);
}
AnswerArea.prototype.getAnswerElementTdCOBORight = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerElementTdCOBORight(qid,aid,aid2);
}
AnswerArea.prototype.getRC_COBORight = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getRC_COBORight(qid,aid,aid2);
}
AnswerArea.prototype.getAnswerLabelTdCOBORight = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelTdCOBORight(qid,aid,aid2);
}
AnswerArea.prototype.getAnswerLabelCOBORight = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelCOBORight(qid,aid,aid2);
}
/*---------------------------------------------------- Answer Section Hide ----------------------------------------------------*/
AnswerArea.prototype.hideAnswerSection = function(qid,aid,hide,trhide){
	this.base = AnswerAbstract;
	hideAnswerSection(qid,aid,hide,trhide);
}
AnswerArea.prototype.hideAnswerTr = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerTr(qid,aid,hide);
}
AnswerArea.prototype.hideAnswerImageTd = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerImageTd(qid,aid,hide);
}
AnswerArea.prototype.hideAnswerImageAhref = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerImageAhref(qid,aid,hide);
}
AnswerArea.prototype.hideAnswerImage = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerImage(qid,aid,hide);
}
AnswerArea.prototype.hideAnswerElementTd = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerElementTd(qid,aid,hide);
}
AnswerArea.prototype.hideInputTextOther = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideInputTextOther(qid,aid,hide);
}
AnswerArea.prototype.toString = function() {
	return "Answer: Id="+this.id+"; Name="+this.name+"; isHide="+this.hide+"; Type={"+this.type+"}; Prefix="+this.prefix;
}
AnswerCheck.prototype = new AnswerAbstract;

function AnswerCheck(id, name, hide, prefix) {
	this.base = AnswerAbstract;
	this.base(id, name, hide, AnswerType[2], prefix);
}
AnswerCheck.prototype.getQuestionAnswersTable = function(qid){
	this.base = AnswerAbstract;
	return getQuestionAnswersTable(qid);
}
AnswerCheck.prototype.getAnswerTr = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerTr(qid,aid);
}
AnswerCheck.prototype.getAnswerImageTd = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerImageTd(qid,aid);
}
AnswerCheck.prototype.getAnswerImageAhref = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerImageAhref(qid,aid);
}
AnswerCheck.prototype.getAnswerImage = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerImage(qid,aid);
}
AnswerCheck.prototype.getAnswerElementTd = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerElementTd(qid,aid);
}
AnswerCheck.prototype.getRC = function(qid,aid){
	this.base = AnswerAbstract;
	return getRC(qid,aid);
}
AnswerCheck.prototype.getAnswerLabelTd = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerLabelTd(qid,aid);
}
AnswerCheck.prototype.getAnswerLabel = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerLabel(qid,aid);
}
AnswerCheck.prototype.getInputTextOther = function(qid,aid){
	this.base = AnswerAbstract;
	return getInputTextOther(qid,aid);
}
AnswerCheck.prototype.getAnswerImageTr = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerImageTr(qid,aid);
}
AnswerCheck.prototype.getAnswerLabelTr = function(qid){
	this.base = AnswerAbstract;
	return getAnswerLabelTr(qid);
}
AnswerCheck.prototype.getAnswerElementTr = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerElementTr(qid,aid);
}
AnswerCheck.prototype.getSelectR = function(qid,aid){
	this.base = AnswerAbstract;
	return getSelectR(qid,aid);
}
AnswerCheck.prototype.getAnswerOption = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerOption(qid,aid);
}
AnswerCheck.prototype.getInputText = function(qid,aid){
	this.base = AnswerAbstract;
	return getInputText(qid,aid);
}
AnswerCheck.prototype.getGmhLeft = function(aid){
	this.base = AnswerAbstract;
	return getGmhLeft(aid);
}
AnswerCheck.prototype.getGmhRight = function(aid){
	this.base = AnswerAbstract;
	return getGmhRight(aid);
}
AnswerCheck.prototype.getAnswerTrCOBO = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerTrCOBO(qid,aid,aid2);
}
AnswerCheck.prototype.getAnswerLabelTdCOBOLeft = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelTdCOBOLeft(qid,aid,aid2);
}
AnswerCheck.prototype.getAnswerLabelCOBOLeft = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelCOBOLeft(qid,aid,aid2);
}
AnswerCheck.prototype.getAnswerElementTdCOBOLeft = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerElementTdCOBOLeft(qid,aid,aid2);
}
AnswerCheck.prototype.getRC_COBOLeft = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getRC_COBOLeft(qid,aid,aid2);
}
AnswerCheck.prototype.getAnswerLabelTdCOBOOR = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelTdCOBOOR(qid,aid,aid2);
}
AnswerCheck.prototype.getAnswerLabelCOBOOR = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelCOBOOR(qid,aid,aid2);
}
AnswerCheck.prototype.getAnswerElementTdCOBORight = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerElementTdCOBORight(qid,aid,aid2);
}
AnswerCheck.prototype.getRC_COBORight = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getRC_COBORight(qid,aid,aid2);
}
AnswerCheck.prototype.getAnswerLabelTdCOBORight = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelTdCOBORight(qid,aid,aid2);
}
AnswerCheck.prototype.getAnswerLabelCOBORight = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelCOBORight(qid,aid,aid2);
}
/*---------------------------------------------------- Answer Section Hide ----------------------------------------------------*/
AnswerCheck.prototype.hideAnswerSection = function(qid,aid,hide,trhide){
	this.base = AnswerAbstract;
	hideAnswerSection(qid,aid,hide,trhide);
}
AnswerCheck.prototype.hideAnswerTr = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerTr(qid,aid,hide);
}
AnswerCheck.prototype.hideAnswerImageTd = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerImageTd(qid,aid,hide);
}
AnswerCheck.prototype.hideAnswerImageAhref = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerImageAhref(qid,aid,hide);
}
AnswerCheck.prototype.hideAnswerImage = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerImage(qid,aid,hide);
}
AnswerCheck.prototype.hideAnswerElementTd = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerElementTd(qid,aid,hide);
}
AnswerCheck.prototype.hideRC = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideRC(qid,aid,hide);
}
AnswerCheck.prototype.hideAnswerLabelTd = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerLabelTd(qid,aid,hide);
}
AnswerCheck.prototype.hideAnswerLabel = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerLabel(qid,aid,hide);
}
AnswerCheck.prototype.toString = function() {
	return "Answer: Id="+this.id+"; Name="+this.name+"; isHide="+this.hide+"; Type={"+this.type+"}; Prefix="+this.prefix;
}
AnswerCheck.prototype.toString = function() {
	return "Answer: Id="+this.id+"; Name="+this.name+"; isHide="+this.hide+"; Type={"+this.type+"}; Prefix="+this.prefix;
}
AnswerCheckEdit.prototype = new AnswerAbstract;

function AnswerCheckEdit(id, name, hide, prefix) {
	this.base = AnswerAbstract;
	this.base(id, name, hide, AnswerType[9], prefix);
}
AnswerCheckEdit.prototype.getQuestionAnswersTable = function(qid){
	this.base = AnswerAbstract;
	return getQuestionAnswersTable(qid);
}
AnswerCheckEdit.prototype.getAnswerTr = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerTr(qid,aid);
}
AnswerCheckEdit.prototype.getAnswerImageTd = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerImageTd(qid,aid);
}
AnswerCheckEdit.prototype.getAnswerImageAhref = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerImageAhref(qid,aid);
}
AnswerCheckEdit.prototype.getAnswerImage = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerImage(qid,aid);
}
AnswerCheckEdit.prototype.getAnswerElementTd = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerElementTd(qid,aid);
}
AnswerCheckEdit.prototype.getRC = function(qid,aid){
	this.base = AnswerAbstract;
	return getRC(qid,aid);
}
AnswerCheckEdit.prototype.getAnswerLabelTd = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerLabelTd(qid,aid);
}
AnswerCheckEdit.prototype.getAnswerLabel = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerLabel(qid,aid);
}
AnswerCheckEdit.prototype.getInputTextOther = function(qid,aid){
	this.base = AnswerAbstract;
	return getInputTextOther(qid,aid);
}
AnswerCheckEdit.prototype.getAnswerImageTr = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerImageTr(qid,aid);
}
AnswerCheckEdit.prototype.getAnswerLabelTr = function(qid){
	this.base = AnswerAbstract;
	return getAnswerLabelTr(qid);
}
AnswerCheckEdit.prototype.getAnswerElementTr = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerElementTr(qid,aid);
}
AnswerCheckEdit.prototype.getSelectR = function(qid,aid){
	this.base = AnswerAbstract;
	return getSelectR(qid,aid);
}
AnswerCheckEdit.prototype.getAnswerOption = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerOption(qid,aid);
}
AnswerCheckEdit.prototype.getInputText = function(qid,aid){
	this.base = AnswerAbstract;
	return getInputText(qid,aid);
}
AnswerCheckEdit.prototype.getGmhLeft = function(aid){
	this.base = AnswerAbstract;
	return getGmhLeft(aid);
}
AnswerCheckEdit.prototype.getGmhRight = function(aid){
	this.base = AnswerAbstract;
	return getGmhRight(aid);
}
AnswerCheckEdit.prototype.getAnswerTrCOBO = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerTrCOBO(qid,aid,aid2);
}
AnswerCheckEdit.prototype.getAnswerLabelTdCOBOLeft = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelTdCOBOLeft(qid,aid,aid2);
}
AnswerCheckEdit.prototype.getAnswerLabelCOBOLeft = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelCOBOLeft(qid,aid,aid2);
}
AnswerCheckEdit.prototype.getAnswerElementTdCOBOLeft = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerElementTdCOBOLeft(qid,aid,aid2);
}
AnswerCheckEdit.prototype.getRC_COBOLeft = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getRC_COBOLeft(qid,aid,aid2);
}
AnswerCheckEdit.prototype.getAnswerLabelTdCOBOOR = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelTdCOBOOR(qid,aid,aid2);
}
AnswerCheckEdit.prototype.getAnswerLabelCOBOOR = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelCOBOOR(qid,aid,aid2);
}
AnswerCheckEdit.prototype.getAnswerElementTdCOBORight = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerElementTdCOBORight(qid,aid,aid2);
}
AnswerCheckEdit.prototype.getRC_COBORight = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getRC_COBORight(qid,aid,aid2);
}
AnswerCheckEdit.prototype.getAnswerLabelTdCOBORight = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelTdCOBORight(qid,aid,aid2);
}
AnswerCheckEdit.prototype.getAnswerLabelCOBORight = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelCOBORight(qid,aid,aid2);
}
/*---------------------------------------------------- Answer Section Hide ----------------------------------------------------*/
AnswerCheckEdit.prototype.hideAnswerSection = function(qid,aid,hide,trhide){
	this.base = AnswerAbstract;
	hideAnswerSection(qid,aid,hide,trhide);
	hideInputTextOther(qid,aid,hide);
}
AnswerCheckEdit.prototype.hideAnswerTr = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerTr(qid,aid,hide);
}
AnswerCheckEdit.prototype.hideAnswerImageTd = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerImageTd(qid,aid,hide);
}
AnswerCheckEdit.prototype.hideAnswerImageAhref = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerImageAhref(qid,aid,hide);
}
AnswerCheckEdit.prototype.hideAnswerImage = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerImage(qid,aid,hide);
}
AnswerCheckEdit.prototype.hideAnswerElementTd = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerElementTd(qid,aid,hide);
}
AnswerCheckEdit.prototype.hideRC = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideRC(qid,aid,hide);
}
AnswerCheckEdit.prototype.hideAnswerLabelTd = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerLabelTd(qid,aid,hide);
}
AnswerCheckEdit.prototype.hideAnswerLabel = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerLabel(qid,aid,hide);
}
AnswerCheckEdit.prototype.hideInputTextOther= function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideInputTextOther(qid,aid,hide);
}
AnswerCheckEdit.prototype.toString = function() {
	return "Answer: Id="+this.id+"; Name="+this.name+"; isHide="+this.hide+"; Type={"+this.type+"}; Prefix="+this.prefix;
}
AnswerEdit.prototype = new AnswerAbstract;

function AnswerEdit(id, name, hide, prefix) {
	this.base = AnswerAbstract;
	this.base(id, name, hide, AnswerType[3], prefix);
}
AnswerEdit.prototype.getQuestionAnswersTable = function(qid){
	this.base = AnswerAbstract;
	return getQuestionAnswersTable(qid);
}
AnswerEdit.prototype.getAnswerTr = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerTr(qid,aid);
}
AnswerEdit.prototype.getAnswerImageTd = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerImageTd(qid,aid);
}
AnswerEdit.prototype.getAnswerImageAhref = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerImageAhref(qid,aid);
}
AnswerEdit.prototype.getAnswerImage = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerImage(qid,aid);
}
AnswerEdit.prototype.getAnswerElementTd = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerElementTd(qid,aid);
}
AnswerEdit.prototype.getRC = function(qid,aid){
	this.base = AnswerAbstract;
	return getRC(qid,aid);
}
AnswerEdit.prototype.getAnswerLabelTd = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerLabelTd(qid,aid);
}
AnswerEdit.prototype.getAnswerLabel = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerLabel(qid,aid);
}
AnswerEdit.prototype.getInputTextOther = function(qid,aid){
	this.base = AnswerAbstract;
	return getInputTextOther(qid,aid);
}
AnswerEdit.prototype.getAnswerImageTr = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerImageTr(qid,aid);
}
AnswerEdit.prototype.getAnswerLabelTr = function(qid){
	this.base = AnswerAbstract;
	return getAnswerLabelTr(qid);
}
AnswerEdit.prototype.getAnswerElementTr = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerElementTr(qid,aid);
}
AnswerEdit.prototype.getSelectR = function(qid,aid){
	this.base = AnswerAbstract;
	return getSelectR(qid,aid);
}
AnswerEdit.prototype.getAnswerOption = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerOption(qid,aid);
}
AnswerEdit.prototype.getInputText = function(qid,aid){
	this.base = AnswerAbstract;
	return getInputText(qid,aid);
}
AnswerEdit.prototype.getGmhLeft = function(aid){
	this.base = AnswerAbstract;
	return getGmhLeft(aid);
}
AnswerEdit.prototype.getGmhRight = function(aid){
	this.base = AnswerAbstract;
	return getGmhRight(aid);
}
AnswerEdit.prototype.getAnswerTrCOBO = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerTrCOBO(qid,aid,aid2);
}
AnswerEdit.prototype.getAnswerLabelTdCOBOLeft = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelTdCOBOLeft(qid,aid,aid2);
}
AnswerEdit.prototype.getAnswerLabelCOBOLeft = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelCOBOLeft(qid,aid,aid2);
}
AnswerEdit.prototype.getAnswerElementTdCOBOLeft = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerElementTdCOBOLeft(qid,aid,aid2);
}
AnswerEdit.prototype.getRC_COBOLeft = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getRC_COBOLeft(qid,aid,aid2);
}
AnswerEdit.prototype.getAnswerLabelTdCOBOOR = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelTdCOBOOR(qid,aid,aid2);
}
AnswerEdit.prototype.getAnswerLabelCOBOOR = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelCOBOOR(qid,aid,aid2);
}
AnswerEdit.prototype.getAnswerElementTdCOBORight = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerElementTdCOBORight(qid,aid,aid2);
}
AnswerEdit.prototype.getRC_COBORight = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getRC_COBORight(qid,aid,aid2);
}
AnswerEdit.prototype.getAnswerLabelTdCOBORight = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelTdCOBORight(qid,aid,aid2);
}
AnswerEdit.prototype.getAnswerLabelCOBORight = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelCOBORight(qid,aid,aid2);
}
/*---------------------------------------------------- Answer Section Hide ----------------------------------------------------*/
AnswerEdit.prototype.hideAnswerSection = function(qid,aid,hide,trhide){
	this.base = AnswerAbstract;
	hideAnswerSection(qid,aid,hide,trhide);
}
AnswerEdit.prototype.hideAnswerTr = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerTr(qid,aid,hide);
}
AnswerEdit.prototype.hideAnswerImageTd = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerImageTd(qid,aid,hide);
}
AnswerEdit.prototype.hideAnswerImageAhref = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerImageAhref(qid,aid,hide);
}
AnswerEdit.prototype.hideAnswerImage = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerImage(qid,aid,hide);
}
AnswerEdit.prototype.hideAnswerElementTd = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerElementTd(qid,aid,hide);
}
AnswerEdit.prototype.hideInputTextOther = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideInputTextOther(qid,aid,hide);
}
AnswerEdit.prototype.hideAnswerLabelTd = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerLabelTd(qid,aid,hide);
}
AnswerEdit.prototype.hideAnswerLabel = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerLabel(qid,aid,hide);
}
AnswerEdit.prototype.toString = function() {
	return "Answer: Id="+this.id+"; Name="+this.name+"; isHide="+this.hide+"; Type={"+this.type+"}; Prefix="+this.prefix;
}
AnswerEditPOWC.prototype = new AnswerAbstract;

function AnswerEditPOWC(id, name, hide, prefix) {
	this.base = AnswerAbstract;
	this.base(id, name, hide, AnswerType[11], prefix);
}

AnswerEditPOWC.prototype.getQuestionAnswersTable = function(qid){
	this.base = AnswerAbstract;
	return getQuestionAnswersTable(qid);
}
AnswerEditPOWC.prototype.getAnswerTr = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerTr(qid,aid);
}
AnswerEditPOWC.prototype.getAnswerImageTd = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerImageTd(qid,aid);
}
AnswerEditPOWC.prototype.getAnswerImageAhref = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerImageAhref(qid,aid);
}
AnswerEditPOWC.prototype.getAnswerImage = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerImage(qid,aid);
}
AnswerEditPOWC.prototype.getAnswerElementTd = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerElementTd(qid,aid);
}
AnswerEditPOWC.prototype.getRC = function(qid,aid){
	this.base = AnswerAbstract;
	return getRC(qid,aid);
}
AnswerEditPOWC.prototype.getAnswerLabelTd = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerLabelTd(qid,aid);
}
AnswerEditPOWC.prototype.getAnswerLabel = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerLabel(qid,aid);
}
AnswerEditPOWC.prototype.getInputTextOther = function(qid,aid){
	this.base = AnswerAbstract;
	return getInputTextOther(qid,aid);
}
AnswerEditPOWC.prototype.getAnswerImageTr = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerImageTr(qid,aid);
}
AnswerEditPOWC.prototype.getAnswerLabelTr = function(qid){
	this.base = AnswerAbstract;
	return getAnswerLabelTr(qid);
}
AnswerEditPOWC.prototype.getAnswerElementTr = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerElementTr(qid,aid);
}
AnswerEditPOWC.prototype.getSelectR = function(qid,aid){
	this.base = AnswerAbstract;
	return getSelectR(qid,aid);
}
AnswerEditPOWC.prototype.getAnswerOption = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerOption(qid,aid);
}
AnswerEditPOWC.prototype.getInputText = function(qid,aid){
	this.base = AnswerAbstract;
	return getInputText(qid,aid);
}
AnswerEditPOWC.prototype.getGmhLeft = function(aid){
	this.base = AnswerAbstract;
	return getGmhLeft(aid);
}
AnswerEditPOWC.prototype.getGmhRight = function(aid){
	this.base = AnswerAbstract;
	return getGmhRight(aid);
}
AnswerEditPOWC.prototype.getAnswerTrCOBO = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerTrCOBO(qid,aid,aid2);
}
AnswerEditPOWC.prototype.getAnswerLabelTdCOBOLeft = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelTdCOBOLeft(qid,aid,aid2);
}
AnswerEditPOWC.prototype.getAnswerLabelCOBOLeft = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelCOBOLeft(qid,aid,aid2);
}
AnswerEditPOWC.prototype.getAnswerElementTdCOBOLeft = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerElementTdCOBOLeft(qid,aid,aid2);
}
AnswerEditPOWC.prototype.getRC_COBOLeft = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getRC_COBOLeft(qid,aid,aid2);
}
AnswerEditPOWC.prototype.getAnswerLabelTdCOBOOR = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelTdCOBOOR(qid,aid,aid2);
}
AnswerEditPOWC.prototype.getAnswerLabelCOBOOR = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelCOBOOR(qid,aid,aid2);
}
AnswerEditPOWC.prototype.getAnswerElementTdCOBORight = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerElementTdCOBORight(qid,aid,aid2);
}
AnswerEditPOWC.prototype.getRC_COBORight = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getRC_COBORight(qid,aid,aid2);
}
AnswerEditPOWC.prototype.getAnswerLabelTdCOBORight = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelTdCOBORight(qid,aid,aid2);
}
AnswerEditPOWC.prototype.getAnswerLabelCOBORight = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelCOBORight(qid,aid,aid2);
}


/*---------------------------------------------------- Answer Section Hide ----------------------------------------------------*/
AnswerEditPOWC.prototype.hideAnswerSection = function(qid,aid,hide,trhide){
	this.base = AnswerAbstract;
	this.hideAnswerEditPOWCSection(qid,aid,hide,trhide);
}
AnswerEditPOWC.prototype.hideAnswerEditPOWCSection = function(qid,aid,hide,trhide){
	var disp = (hide)?"none":"";
  if(trhide){
    this.hideAnswerImageTr(qid,hide);
  }
  this.hideAnswerImageTd(qid,aid,hide);
 	this.hideAnswerImageAhref(qid,aid,hide);
 	this.hideAnswerImage(qid,aid,hide);
 	this.hideAnswerElementTd(qid,aid,hide);
 	this.hideInputTextOther(qid,aid,hide);
 	this.hideAnswerLabelTd(qid,aid,hide);
 	this.hideAnswerLabel(qid,aid,hide);
}
AnswerEditPOWC.prototype.hideAnswerImageTr = function(qid,hide){
	this.base = AnswerAbstract;
	hideAnswerImageTr(qid,hide);
}
AnswerEditPOWC.prototype.hideAnswerImageTd = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerImageTd(qid,aid,hide);
}
AnswerEditPOWC.prototype.hideAnswerImageAhref = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerImageAhref(qid,aid,hide);
}
AnswerEditPOWC.prototype.hideAnswerImage = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerImage(qid,aid,hide);
}
AnswerEditPOWC.prototype.hideAnswerElementTr = function(qid,hide){
	this.base = AnswerAbstract;
	hideAnswerElementTr(qid,hide);
}
AnswerEditPOWC.prototype.hideAnswerElementTd = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerElementTd(qid,aid,hide);
}
AnswerEditPOWC.prototype.hideInputTextOther = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideInputTextOther(qid,aid,hide);
}
AnswerEditPOWC.prototype.hideAnswerLabelTr = function(qid,hide){
	this.base = AnswerAbstract;
	hideAnswerLabelTr(qid,hide);
}
AnswerEditPOWC.prototype.hideAnswerLabelTd = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerLabelTd(qid,aid,hide);
}
AnswerEditPOWC.prototype.hideAnswerLabel = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerLabel(qid,aid,hide);
}
AnswerEditPOWC.prototype.toString = function() {
	return "Answer: Id="+this.id+"; Name="+this.name+"; isHide="+this.hide+"; Type={"+this.type+"}; Prefix="+this.prefix;
}
AnswerOption.prototype = new AnswerAbstract;

function AnswerOption(id, name, hide, prefix) {
	this.base = AnswerAbstract;
	this.base(id, name, hide, AnswerType[4], prefix);
}

AnswerOption.prototype.getQuestionAnswersTable = function(qid){
	this.base = AnswerAbstract;
	return getQuestionAnswersTable(qid);
}
AnswerOption.prototype.getAnswerTr = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerTr(qid,aid);
}
AnswerOption.prototype.getAnswerImageTd = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerImageTd(qid,aid);
}
AnswerOption.prototype.getAnswerImageAhref = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerImageAhref(qid,aid);
}
AnswerOption.prototype.getAnswerImage = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerImage(qid,aid);
}
AnswerOption.prototype.getAnswerElementTd = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerElementTd(qid,aid);
}
AnswerOption.prototype.getRC = function(qid,aid){
	this.base = AnswerAbstract;
	return getRC(qid,aid);
}
AnswerOption.prototype.getAnswerLabelTd = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerLabelTd(qid,aid);
}
AnswerOption.prototype.getAnswerLabel = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerLabel(qid,aid);
}
AnswerOption.prototype.getInputTextOther = function(qid,aid){
	this.base = AnswerAbstract;
	return getInputTextOther(qid,aid);
}
AnswerOption.prototype.getAnswerImageTr = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerImageTr(qid,aid);
}
AnswerOption.prototype.getAnswerLabelTr = function(qid){
	this.base = AnswerAbstract;
	return getAnswerLabelTr(qid);
}
AnswerOption.prototype.getAnswerElementTr = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerElementTr(qid,aid);
}
AnswerOption.prototype.getSelectR = function(qid,aid){
	this.base = AnswerAbstract;
	return getSelectR(qid,aid);
}
AnswerOption.prototype.getAnswerOption = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerOption(qid,aid);
}
AnswerOption.prototype.getInputText = function(qid,aid){
	this.base = AnswerAbstract;
	return getInputText(qid,aid);
}
AnswerOption.prototype.getGmhLeft = function(aid){
	this.base = AnswerAbstract;
	return getGmhLeft(aid);
}
AnswerOption.prototype.getGmhRight = function(aid){
	this.base = AnswerAbstract;
	return getGmhRight(aid);
}
AnswerOption.prototype.getAnswerTrCOBO = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerTrCOBO(qid,aid,aid2);
}
AnswerOption.prototype.getAnswerLabelTdCOBOLeft = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelTdCOBOLeft(qid,aid,aid2);
}
AnswerOption.prototype.getAnswerLabelCOBOLeft = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelCOBOLeft(qid,aid,aid2);
}
AnswerOption.prototype.getAnswerElementTdCOBOLeft = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerElementTdCOBOLeft(qid,aid,aid2);
}
AnswerOption.prototype.getRC_COBOLeft = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getRC_COBOLeft(qid,aid,aid2);
}
AnswerOption.prototype.getAnswerLabelTdCOBOOR = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelTdCOBOOR(qid,aid,aid2);
}
AnswerOption.prototype.getAnswerLabelCOBOOR = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelCOBOOR(qid,aid,aid2);
}
AnswerOption.prototype.getAnswerElementTdCOBORight = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerElementTdCOBORight(qid,aid,aid2);
}
AnswerOption.prototype.getRC_COBORight = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getRC_COBORight(qid,aid,aid2);
}
AnswerOption.prototype.getAnswerLabelTdCOBORight = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelTdCOBORight(qid,aid,aid2);
}
AnswerOption.prototype.getAnswerLabelCOBORight = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelCOBORight(qid,aid,aid2);
}
/*---------------------------------------------------- Answer Section Hide ----------------------------------------------------*/
AnswerOption.prototype.hideAnswerSection = function(qid,aid,hide,trhide){
	this.base = AnswerAbstract;
	hideAnswerOption(qid,aid,hide);
	if(!hide)
		hideAnswerSelectSection(qid,hide);
}
AnswerOption.prototype.hideAnswerOption = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerOption(qid,aid,hide);
}
AnswerOption.prototype.hideAnswerSelectSection = function(qid,hide){
	this.base = AnswerAbstract;
	hideAnswerSelectSection(qid,hide);
}

AnswerOption.prototype.toString = function() {
	return "Answer: Id="+this.id+"; Name="+this.name+"; isHide="+this.hide+"; Type={"+this.type+"}; Prefix="+this.prefix;
}
AnswerRadio.prototype = new AnswerAbstract;

function AnswerRadio(id, name, hide, prefix) {
	this.base = AnswerAbstract;
	this.base(id, name, hide, AnswerType[1], prefix);
}
AnswerRadio.prototype.getQuestionAnswersTable = function(qid){
	this.base = AnswerAbstract;
	return getQuestionAnswersTable(qid);
}
AnswerRadio.prototype.getAnswerTr = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerTr(qid,aid);
}
AnswerRadio.prototype.getAnswerImageTd = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerImageTd(qid,aid);
}
AnswerRadio.prototype.getAnswerImageAhref = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerImageAhref(qid,aid);
}
AnswerRadio.prototype.getAnswerImage = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerImage(qid,aid);
}
AnswerRadio.prototype.getAnswerElementTd = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerElementTd(qid,aid);
}
AnswerRadio.prototype.getRC = function(qid,aid){
	this.base = AnswerAbstract;
	return getRC(qid,aid);
}
AnswerRadio.prototype.getAnswerLabelTd = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerLabelTd(qid,aid);
}
AnswerRadio.prototype.getAnswerLabel = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerLabel(qid,aid);
}
AnswerRadio.prototype.getInputTextOther = function(qid,aid){
	this.base = AnswerAbstract;
	return getInputTextOther(qid,aid);
}
AnswerRadio.prototype.getAnswerImageTr = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerImageTr(qid,aid);
}
AnswerRadio.prototype.getAnswerLabelTr = function(qid){
	this.base = AnswerAbstract;
	return getAnswerLabelTr(qid);
}
AnswerRadio.prototype.getAnswerElementTr = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerElementTr(qid,aid);
}
AnswerRadio.prototype.getSelectR = function(qid,aid){
	this.base = AnswerAbstract;
	return getSelectR(qid,aid);
}
AnswerRadio.prototype.getAnswerOption = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerOption(qid,aid);
}
AnswerRadio.prototype.getInputText = function(qid,aid){
	this.base = AnswerAbstract;
	return getInputText(qid,aid);
}
AnswerRadio.prototype.getGmhLeft = function(aid){
	this.base = AnswerAbstract;
	return getGmhLeft(aid);
}
AnswerRadio.prototype.getGmhRight = function(aid){
	this.base = AnswerAbstract;
	return getGmhRight(aid);
}
AnswerRadio.prototype.getAnswerTrCOBO = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerTrCOBO(qid,aid,aid2);
}
AnswerRadio.prototype.getAnswerLabelTdCOBOLeft = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelTdCOBOLeft(qid,aid,aid2);
}
AnswerRadio.prototype.getAnswerLabelCOBOLeft = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelCOBOLeft(qid,aid,aid2);
}
AnswerRadio.prototype.getAnswerElementTdCOBOLeft = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerElementTdCOBOLeft(qid,aid,aid2);
}
AnswerRadio.prototype.getRC_COBOLeft = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getRC_COBOLeft(qid,aid,aid2);
}
AnswerRadio.prototype.getAnswerLabelTdCOBOOR = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelTdCOBOOR(qid,aid,aid2);
}
AnswerRadio.prototype.getAnswerLabelCOBOOR = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelCOBOOR(qid,aid,aid2);
}
AnswerRadio.prototype.getAnswerElementTdCOBORight = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerElementTdCOBORight(qid,aid,aid2);
}
AnswerRadio.prototype.getRC_COBORight = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getRC_COBORight(qid,aid,aid2);
}
AnswerRadio.prototype.getAnswerLabelTdCOBORight = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelTdCOBORight(qid,aid,aid2);
}
AnswerRadio.prototype.getAnswerLabelCOBORight = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelCOBORight(qid,aid,aid2);
}
/*---------------------------------------------------- Answer Section Hide ----------------------------------------------------*/
AnswerRadio.prototype.hideAnswerSection = function(qid,aid,hide,trhide){
	this.base = AnswerAbstract;
	hideAnswerSection(qid,aid,hide,trhide);
}
AnswerRadio.prototype.hideAnswerTr = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerTr(qid,aid,hide);
}
AnswerRadio.prototype.hideAnswerImageTd = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerImageTd(qid,aid,hide);
}
AnswerRadio.prototype.hideAnswerImageAhref = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerImageAhref(qid,aid,hide);
}
AnswerRadio.prototype.hideAnswerImage = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerImage(qid,aid,hide);
}
AnswerRadio.prototype.hideAnswerElementTd = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerElementTd(qid,aid,hide);
}
AnswerRadio.prototype.hideRC = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideRC(qid,aid,hide);
}
AnswerRadio.prototype.hideAnswerLabelTd = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerLabelTd(qid,aid,hide);
}
AnswerRadio.prototype.hideAnswerLabel = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerLabel(qid,aid,hide);
}
AnswerRadio.prototype.toString = function() {
	return "Answer: Id="+this.id+"; Name="+this.name+"; isHide="+this.hide+"; Type={"+this.type+"}; Prefix="+this.prefix;
}
AnswerRadioCOBO.prototype = new AnswerAbstract;

function AnswerRadioCOBO(id, name, hide, prefix) {
	this.base = AnswerAbstract;
	this.base(id, name, hide, AnswerType[1], prefix);
}
AnswerRadioCOBO.prototype.getQuestionAnswersTable = function(qid){
	this.base = AnswerAbstract;
	return getQuestionAnswersTable(qid);
}
AnswerRadioCOBO.prototype.getAnswerTr = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerTr(qid,aid);
}
AnswerRadioCOBO.prototype.getAnswerImageTd = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerImageTd(qid,aid);
}
AnswerRadioCOBO.prototype.getAnswerImageAhref = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerImageAhref(qid,aid);
}
AnswerRadioCOBO.prototype.getAnswerImage = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerImage(qid,aid);
}
AnswerRadioCOBO.prototype.getAnswerElementTd = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerElementTd(qid,aid);
}
AnswerRadioCOBO.prototype.getRC = function(qid,aid){
	this.base = AnswerAbstract;
	return getRC(qid,aid);
}
AnswerRadioCOBO.prototype.getAnswerLabelTd = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerLabelTd(qid,aid);
}
AnswerRadioCOBO.prototype.getAnswerLabel = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerLabel(qid,aid);
}
AnswerRadioCOBO.prototype.getInputTextOther = function(qid,aid){
	this.base = AnswerAbstract;
	return getInputTextOther(qid,aid);
}
AnswerRadioCOBO.prototype.getAnswerImageTr = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerImageTr(qid,aid);
}
AnswerRadioCOBO.prototype.getAnswerLabelTr = function(qid){
	this.base = AnswerAbstract;
	return getAnswerLabelTr(qid);
}
AnswerRadioCOBO.prototype.getAnswerElementTr = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerElementTr(qid,aid);
}
AnswerRadioCOBO.prototype.getSelectR = function(qid,aid){
	this.base = AnswerAbstract;
	return getSelectR(qid,aid);
}
AnswerRadioCOBO.prototype.getAnswerOption = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerOption(qid,aid);
}
AnswerRadioCOBO.prototype.getInputText = function(qid,aid){
	this.base = AnswerAbstract;
	return getInputText(qid,aid);
}
AnswerRadioCOBO.prototype.getGmhLeft = function(aid){
	this.base = AnswerAbstract;
	return getGmhLeft(aid);
}
AnswerRadioCOBO.prototype.getGmhRight = function(aid){
	this.base = AnswerAbstract;
	return getGmhRight(aid);
}
AnswerRadioCOBO.prototype.getAnswerTrCOBO = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerTrCOBO(qid,aid,aid2);
}
AnswerRadioCOBO.prototype.getAnswerLabelTdCOBOLeft = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelTdCOBOLeft(qid,aid,aid2);
}
AnswerRadioCOBO.prototype.getAnswerLabelCOBOLeft = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelCOBOLeft(qid,aid,aid2);
}
AnswerRadioCOBO.prototype.getAnswerElementTdCOBOLeft = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerElementTdCOBOLeft(qid,aid,aid2);
}
AnswerRadioCOBO.prototype.getRC_COBOLeft = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getRC_COBOLeft(qid,aid,aid2);
}
AnswerRadioCOBO.prototype.getAnswerLabelTdCOBOOR = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelTdCOBOOR(qid,aid,aid2);
}
AnswerRadioCOBO.prototype.getAnswerLabelCOBOOR = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelCOBOOR(qid,aid,aid2);
}
AnswerRadioCOBO.prototype.getAnswerElementTdCOBORight = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerElementTdCOBORight(qid,aid,aid2);
}
AnswerRadioCOBO.prototype.getRC_COBORight = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getRC_COBORight(qid,aid,aid2);
}
AnswerRadioCOBO.prototype.getAnswerLabelTdCOBORight = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelTdCOBORight(qid,aid,aid2);
}
AnswerRadioCOBO.prototype.getAnswerLabelCOBORight = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelCOBORight(qid,aid,aid2);
}

/*---------------------------------------------------- Answer Section Hide ----------------------------------------------------*/
AnswerRadioCOBO.prototype.hideAnswerSectionCOBO = function(qid,aid,aid2,hide){
	this.base = AnswerAbstract;
	hideAnswerTrCOBO(qid,aid,aid2,hide);

	hideAnswerLabelTdCOBOLeft(qid,aid,aid2,hide);
	hideAnswerLabelCOBOLeft(qid,aid,aid2,hide);

	hideAnswerLabelTdCOBOLeft(qid,aid,aid2,hide);
	hideRC_COBOLeft(qid,aid,aid2,hide);

	hideAnswerLabelTdCOBOOR(qid,aid,aid2,hide);
	hideAnswerLabelCOBOOR(qid,aid,aid2,hide);

	hideAnswerLabelTdCOBORight(qid,aid,aid2,hide);
	hideRC_COBORight(qid,aid,aid2,hide);

	hideAnswerLabelTdCOBORight(qid,aid,aid2,hide);
	hideAnswerLabelCOBORight(qid,aid,aid2,hide);

}
AnswerRadioCOBO.prototype.hideAnswerTrCOBO= function(qid,aid,aid2,hide){
	this.base = AnswerAbstract;
	hideAnswerTrCOBO(qid,aid,aid2,hide);
}
AnswerRadioCOBO.prototype.hideAnswerLabelTdCOBOLeft= function(qid,aid,aid2,hide){
	this.base = AnswerAbstract;
	hideAnswerLabelTdCOBOLeft(qid,aid,aid2,hide);
}
AnswerRadioCOBO.prototype.hideAnswerLabelCOBOLeft= function(qid,aid,aid2,hide){
	this.base = AnswerAbstract;
	hideAnswerLabelCOBOLeft(qid,aid,aid2,hide);
}
AnswerRadioCOBO.prototype.hideAnswerLabelTdCOBOLeft= function(qid,aid,aid2,hide){
	this.base = AnswerAbstract;
	hideAnswerLabelTdCOBOLeft(qid,aid,aid2,hide);
}
AnswerRadioCOBO.prototype.hideRC_COBOLeft= function(qid,aid,aid2,hide){
	this.base = AnswerAbstract;
	hideRC_COBOLeft(qid,aid,aid2,hide);
}
AnswerRadioCOBO.prototype.hideAnswerLabelTdCOBOOR= function(qid,aid,aid2,hide){
	this.base = AnswerAbstract;
	hideAnswerLabelTdCOBOOR(qid,aid,aid2,hide);
}
AnswerRadioCOBO.prototype.hideAnswerLabelCOBOOR= function(qid,aid,aid2,hide){
	this.base = AnswerAbstract;
	hideAnswerLabelCOBOOR(qid,aid,aid2,hide);
}
AnswerRadioCOBO.prototype.hideAnswerElementTdCOBORight= function(qid,aid,aid2,hide){
	this.base = AnswerAbstract;
	hideAnswerElementTdCOBORight(qid,aid,aid2,hide);
}
AnswerRadioCOBO.prototype.hideRC_COBORight= function(qid,aid,aid2,hide){
	this.base = AnswerAbstract;
	hideRC_COBORight(qid,aid,aid2,hide);
}
AnswerRadioCOBO.prototype.hideAnswerLabelTdCOBORight= function(qid,aid,aid2,hide){
	this.base = AnswerAbstract;
	hideAnswerLabelTdCOBORight(qid,aid,aid2,hide);
}
AnswerRadioCOBO.prototype.hideAnswerLabelCOBORight= function(qid,aid,aid2,hide){
	this.base = AnswerAbstract;
	hideAnswerLabelCOBORight(qid,aid,aid2,hide);
}
AnswerRadioCOBO.prototype.toString = function() {
	return "Answer: Id="+this.id+"; Name="+this.name+"; isHide="+this.hide+"; Type={"+this.type+"}; Prefix="+this.prefix;
}
AnswerRadioEdit.prototype = new AnswerAbstract;

function AnswerRadioEdit(id, name, hide, prefix) {
	this.base = AnswerAbstract;
	this.base(id, name, hide, AnswerType[8], prefix);
}
AnswerRadioEdit.prototype.getQuestionAnswersTable = function(qid){
	this.base = AnswerAbstract;
	return getQuestionAnswersTable(qid);
}
AnswerRadioEdit.prototype.getAnswerTr = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerTr(qid,aid);
}
AnswerRadioEdit.prototype.getAnswerImageTd = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerImageTd(qid,aid);
}
AnswerRadioEdit.prototype.getAnswerImageAhref = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerImageAhref(qid,aid);
}
AnswerRadioEdit.prototype.getAnswerImage = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerImage(qid,aid);
}
AnswerRadioEdit.prototype.getAnswerElementTd = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerElementTd(qid,aid);
}
AnswerRadioEdit.prototype.getRC = function(qid,aid){
	this.base = AnswerAbstract;
	return getRC(qid,aid);
}
AnswerRadioEdit.prototype.getAnswerLabelTd = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerLabelTd(qid,aid);
}
AnswerRadioEdit.prototype.getAnswerLabel = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerLabel(qid,aid);
}
AnswerRadioEdit.prototype.getInputTextOther = function(qid,aid){
	this.base = AnswerAbstract;
	return getInputTextOther(qid,aid);
}
AnswerRadioEdit.prototype.getAnswerImageTr = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerImageTr(qid,aid);
}
AnswerRadioEdit.prototype.getAnswerLabelTr = function(qid){
	this.base = AnswerAbstract;
	return getAnswerLabelTr(qid);
}
AnswerRadioEdit.prototype.getAnswerElementTr = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerElementTr(qid,aid);
}
AnswerRadioEdit.prototype.getSelectR = function(qid,aid){
	this.base = AnswerAbstract;
	return getSelectR(qid,aid);
}
AnswerRadioEdit.prototype.getAnswerOption = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerOption(qid,aid);
}
AnswerRadioEdit.prototype.getInputText = function(qid,aid){
	this.base = AnswerAbstract;
	return getInputText(qid,aid);
}
AnswerRadioEdit.prototype.getGmhLeft = function(aid){
	this.base = AnswerAbstract;
	return getGmhLeft(aid);
}
AnswerRadioEdit.prototype.getGmhRight = function(aid){
	this.base = AnswerAbstract;
	return getGmhRight(aid);
}
AnswerRadioEdit.prototype.getAnswerTrCOBO = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerTrCOBO(qid,aid,aid2);
}
AnswerRadioEdit.prototype.getAnswerLabelTdCOBOLeft = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelTdCOBOLeft(qid,aid,aid2);
}
AnswerRadioEdit.prototype.getAnswerLabelCOBOLeft = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelCOBOLeft(qid,aid,aid2);
}
AnswerRadioEdit.prototype.getAnswerElementTdCOBOLeft = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerElementTdCOBOLeft(qid,aid,aid2);
}
AnswerRadioEdit.prototype.getRC_COBOLeft = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getRC_COBOLeft(qid,aid,aid2);
}
AnswerRadioEdit.prototype.getAnswerLabelTdCOBOOR = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelTdCOBOOR(qid,aid,aid2);
}
AnswerRadioEdit.prototype.getAnswerLabelCOBOOR = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelCOBOOR(qid,aid,aid2);
}
AnswerRadioEdit.prototype.getAnswerElementTdCOBORight = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerElementTdCOBORight(qid,aid,aid2);
}
AnswerRadioEdit.prototype.getRC_COBORight = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getRC_COBORight(qid,aid,aid2);
}
AnswerRadioEdit.prototype.getAnswerLabelTdCOBORight = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelTdCOBORight(qid,aid,aid2);
}
AnswerRadioEdit.prototype.getAnswerLabelCOBORight = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelCOBORight(qid,aid,aid2);
}
/*---------------------------------------------------- Answer Section Hide ----------------------------------------------------*/
AnswerRadioEdit.prototype.hideAnswerSection = function(qid,aid,hide,trhide){
	this.base = AnswerAbstract;
	hideAnswerSection(qid,aid,hide,trhide);
	hideInputTextOther(qid,aid,hide);
}
AnswerRadioEdit.prototype.hideAnswerTr = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerTr(qid,aid,hide);
}
AnswerRadioEdit.prototype.hideAnswerImageTd = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerImageTd(qid,aid,hide);
}
AnswerRadioEdit.prototype.hideAnswerImageAhref = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerImageAhref(qid,aid,hide);
}
AnswerRadioEdit.prototype.hideAnswerImage = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerImage(qid,aid,hide);
}
AnswerRadioEdit.prototype.hideAnswerElementTd = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerElementTd(qid,aid,hide);
}
AnswerRadioEdit.prototype.hideRC = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideRC(qid,aid,hide);
}
AnswerRadioEdit.prototype.hideAnswerLabelTd = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerLabelTd(qid,aid,hide);
}
AnswerRadioEdit.prototype.hideAnswerLabel = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerLabel(qid,aid,hide);
}
AnswerRadioEdit.prototype.hideInputTextOther= function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideInputTextOther(qid,aid,hide);
}
AnswerRadioEdit.prototype.toString = function() {
	return "Answer: Id="+this.id+"; Name="+this.name+"; isHide="+this.hide+"; Type={"+this.type+"}; Prefix="+this.prefix;
}
AnswerRadioPOWC.prototype = new AnswerAbstract;

function AnswerRadioPOWC(id, name, hide, prefix) {
	this.base = AnswerAbstract;
	this.base(id, name, hide, AnswerType[10], prefix);
}
AnswerRadioPOWC.prototype.getQuestionAnswersTable = function(qid){
	this.base = AnswerAbstract;
	return getQuestionAnswersTable(qid);
}
AnswerRadioPOWC.prototype.getAnswerTr = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerTr(qid,aid);
}
AnswerRadioPOWC.prototype.getAnswerImageTd = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerImageTd(qid,aid);
}
AnswerRadioPOWC.prototype.getAnswerImageAhref = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerImageAhref(qid,aid);
}
AnswerRadioPOWC.prototype.getAnswerImage = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerImage(qid,aid);
}
AnswerRadioPOWC.prototype.getAnswerElementTd = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerElementTd(qid,aid);
}
AnswerRadioPOWC.prototype.getRC = function(qid,aid){
	this.base = AnswerAbstract;
	return getRC(qid,aid);
}
AnswerRadioPOWC.prototype.getAnswerLabelTd = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerLabelTd(qid,aid);
}
AnswerRadioPOWC.prototype.getAnswerLabel = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerLabel(qid,aid);
}
AnswerRadioPOWC.prototype.getInputTextOther = function(qid,aid){
	this.base = AnswerAbstract;
	return getInputTextOther(qid,aid);
}
AnswerRadioPOWC.prototype.getAnswerImageTr = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerImageTr(qid,aid);
}
AnswerRadioPOWC.prototype.getAnswerLabelTr = function(qid){
	this.base = AnswerAbstract;
	return getAnswerLabelTr(qid);
}
AnswerRadioPOWC.prototype.getAnswerElementTr = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerElementTr(qid,aid);
}
AnswerRadioPOWC.prototype.getSelectR = function(qid,aid){
	this.base = AnswerAbstract;
	return getSelectR(qid,aid);
}
AnswerRadioPOWC.prototype.getAnswerOption = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerOption(qid,aid);
}
AnswerRadioPOWC.prototype.getInputText = function(qid,aid){
	this.base = AnswerAbstract;
	return getInputText(qid,aid);
}
AnswerRadioPOWC.prototype.getGmhLeft = function(aid){
	this.base = AnswerAbstract;
	return getGmhLeft(aid);
}
AnswerRadioPOWC.prototype.getGmhRight = function(aid){
	this.base = AnswerAbstract;
	return getGmhRight(aid);
}
AnswerRadioPOWC.prototype.getAnswerTrCOBO = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerTrCOBO(qid,aid,aid2);
}
AnswerRadioPOWC.prototype.getAnswerLabelTdCOBOLeft = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelTdCOBOLeft(qid,aid,aid2);
}
AnswerRadioPOWC.prototype.getAnswerLabelCOBOLeft = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelCOBOLeft(qid,aid,aid2);
}
AnswerRadioPOWC.prototype.getAnswerElementTdCOBOLeft = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerElementTdCOBOLeft(qid,aid,aid2);
}
AnswerRadioPOWC.prototype.getRC_COBOLeft = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getRC_COBOLeft(qid,aid,aid2);
}
AnswerRadioPOWC.prototype.getAnswerLabelTdCOBOOR = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelTdCOBOOR(qid,aid,aid2);
}
AnswerRadioPOWC.prototype.getAnswerLabelCOBOOR = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelCOBOOR(qid,aid,aid2);
}
AnswerRadioPOWC.prototype.getAnswerElementTdCOBORight = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerElementTdCOBORight(qid,aid,aid2);
}
AnswerRadioPOWC.prototype.getRC_COBORight = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getRC_COBORight(qid,aid,aid2);
}
AnswerRadioPOWC.prototype.getAnswerLabelTdCOBORight = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelTdCOBORight(qid,aid,aid2);
}
AnswerRadioPOWC.prototype.getAnswerLabelCOBORight = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelCOBORight(qid,aid,aid2);
}
/*---------------------------------------------------- Answer Section Hide ----------------------------------------------------*/
AnswerRadioPOWC.prototype.hideAnswerSection = function(qid,aid,hide,trhide){
	this.base = AnswerAbstract;
	this.hideAnswerRadioPOWCSection(qid,aid,hide,trhide);
}
AnswerRadioPOWC.prototype.hideAnswerRadioPOWCSection= function(qid,aid,hide,trhide){
	this.base = AnswerAbstract;
  var disp = (hide)?"none":"";
  if(trhide){
    this.hideAnswerImageTr(qid,hide)
  }
  this.hideAnswerImageTd(qid,aid,hide);
 	this.hideAnswerImageAhref(qid,aid,hide);
 	this.hideAnswerImage(qid,aid,hide);
  this.hideAnswerElementTd(qid,aid,hide);
 	this.hideRC(qid,aid,hide);
 	this.hideAnswerLabelTd(qid,aid,hide);
 	this.hideAnswerLabel(qid,aid,hide);
}
AnswerRadioPOWC.prototype.hideAnswerImageTr = function(qid,hide){
	this.base = AnswerAbstract;
	hideAnswerImageTr(qid,hide);
}
AnswerRadioPOWC.prototype.hideAnswerImageTd = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerImageTd(qid,aid,hide);
}
AnswerRadioPOWC.prototype.hideAnswerImageAhref = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerImageAhref(qid,aid,hide);
}
AnswerRadioPOWC.prototype.hideAnswerImage = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerImage(qid,aid,hide);
}
AnswerRadioPOWC.prototype.hideAnswerElementTr = function(qid,hide){
	this.base = AnswerAbstract;
	hideAnswerElementTr(qid,hide);
}
AnswerRadioPOWC.prototype.hideAnswerElementTd = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerElementTd(qid,aid,hide);
}
AnswerRadioPOWC.prototype.hideRC = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideRC(qid,aid,hide);
}
AnswerRadioPOWC.prototype.hideAnswerLabelTr = function(qid,hide){
	this.base = AnswerAbstract;
	hideAnswerLabelTr(qid,hide);
}
AnswerRadioPOWC.prototype.hideAnswerLabelTd = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerLabelTd(qid,aid,hide);
}
AnswerRadioPOWC.prototype.hideAnswerLabel = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerLabel(qid,aid,hide);
}
AnswerRadioPOWC.prototype.toString = function() {
	return "Answer: Id="+this.id+"; Name="+this.name+"; isHide="+this.hide+"; Type={"+this.type+"}; Prefix="+this.prefix;
}
AnswerRadioRateDifferent.prototype = new AnswerAbstract;

function AnswerRadioRateDifferent(id, name, hide, prefix) {
	this.base = AnswerAbstract;
	this.base(id, name, hide, AnswerType[1], prefix);
}
AnswerRadioRateDifferent.prototype.getQuestionAnswersTable = function(qid){
	this.base = AnswerAbstract;
	return getQuestionAnswersTable(qid);
}
AnswerRadioRateDifferent.prototype.getAnswerTr = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerTr(qid,aid);
}
AnswerRadioRateDifferent.prototype.getAnswerImageTd = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerImageTd(qid,aid);
}
AnswerRadioRateDifferent.prototype.getAnswerImageAhref = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerImageAhref(qid,aid);
}
AnswerRadioRateDifferent.prototype.getAnswerImage = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerImage(qid,aid);
}
AnswerRadioRateDifferent.prototype.getAnswerElementTd = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerElementTd(qid,aid);
}
AnswerRadioRateDifferent.prototype.getRC = function(qid,aid){
	this.base = AnswerAbstract;
	return getRC(qid,aid);
}
AnswerRadioRateDifferent.prototype.getAnswerLabelTd = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerLabelTd(qid,aid);
}
AnswerRadioRateDifferent.prototype.getAnswerLabel = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerLabel(qid,aid);
}
AnswerRadioRateDifferent.prototype.getInputTextOther = function(qid,aid){
	this.base = AnswerAbstract;
	return getInputTextOther(qid,aid);
}
AnswerRadioRateDifferent.prototype.getAnswerImageTr = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerImageTr(qid,aid);
}
AnswerRadioRateDifferent.prototype.getAnswerLabelTr = function(qid){
	this.base = AnswerAbstract;
	return getAnswerLabelTr(qid);
}
AnswerRadioRateDifferent.prototype.getAnswerElementTr = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerElementTr(qid,aid);
}
AnswerRadioRateDifferent.prototype.getSelectR = function(qid,aid){
	this.base = AnswerAbstract;
	return getSelectR(qid,aid);
}
AnswerRadioRateDifferent.prototype.getAnswerOption = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerOption(qid,aid);
}
AnswerRadioRateDifferent.prototype.getInputText = function(qid,aid){
	this.base = AnswerAbstract;
	return getInputText(qid,aid);
}
AnswerRadioRateDifferent.prototype.getGmhLeft = function(aid){
	this.base = AnswerAbstract;
	return getGmhLeft(aid);
}
AnswerRadioRateDifferent.prototype.getGmhRight = function(aid){
	this.base = AnswerAbstract;
	return getGmhRight(aid);
}
AnswerRadioRateDifferent.prototype.getAnswerTrCOBO = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerTrCOBO(qid,aid,aid2);
}
AnswerRadioRateDifferent.prototype.getAnswerLabelTdCOBOLeft = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelTdCOBOLeft(qid,aid,aid2);
}
AnswerRadioRateDifferent.prototype.getAnswerLabelCOBOLeft = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelCOBOLeft(qid,aid,aid2);
}
AnswerRadioRateDifferent.prototype.getAnswerElementTdCOBOLeft = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerElementTdCOBOLeft(qid,aid,aid2);
}
AnswerRadioRateDifferent.prototype.getRC_COBOLeft = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getRC_COBOLeft(qid,aid,aid2);
}
AnswerRadioRateDifferent.prototype.getAnswerLabelTdCOBOOR = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelTdCOBOOR(qid,aid,aid2);
}
AnswerRadioRateDifferent.prototype.getAnswerLabelCOBOOR = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelCOBOOR(qid,aid,aid2);
}
AnswerRadioRateDifferent.prototype.getAnswerElementTdCOBORight = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerElementTdCOBORight(qid,aid,aid2);
}
AnswerRadioRateDifferent.prototype.getRC_COBORight = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getRC_COBORight(qid,aid,aid2);
}
AnswerRadioRateDifferent.prototype.getAnswerLabelTdCOBORight = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelTdCOBORight(qid,aid,aid2);
}
AnswerRadioRateDifferent.prototype.getAnswerLabelCOBORight = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelCOBORight(qid,aid,aid2);
}
/*---------------------------------------------------- Answer Section Hide ----------------------------------------------------*/
AnswerRadioRateDifferent.prototype.hideAnswerSection = function(qid,aid,hide,trhide){
	this.base = AnswerAbstract;
	this.hideAnswerSectionRateDifferent(qid,aid,hide);
}
AnswerRadioRateDifferent.prototype.hideAnswerTr = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerTr(qid,aid,hide);
}
AnswerRadioRateDifferent.prototype.hideAnswerImageTd = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerImageTd(qid,aid,hide);
}
AnswerRadioRateDifferent.prototype.hideAnswerImageAhref = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerImageAhref(qid,aid,hide);
}
AnswerRadioRateDifferent.prototype.hideAnswerImage = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerImage(qid,aid,hide);
}
AnswerRadioRateDifferent.prototype.hideAnswerElementTd = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerElementTd(qid,aid,hide);
}
AnswerRadioRateDifferent.prototype.hideGmhLeft= function(aid,hide){
	this.base = AnswerAbstract;
	hideGmhLeft(aid,hide);
}
AnswerRadioRateDifferent.prototype.hideAnswerLabel = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerLabel(qid,aid,hide);
}

AnswerRadioRateDifferent.prototype.hideAnswerSectionRateDifferent = function(qid,aid,hide){
 	this.hideAnswerTr(qid,aid,hide);
 	this.hideAnswerImageTd(qid,aid,hide);
 	this.hideAnswerImageAhref(qid,aid,hide);
 	this.hideAnswerImage(qid,aid,hide);
 	this.hideGmhLeft(aid,hide);
 	this.hideAnswerLabel(qid,aid,hide);
}
AnswerRadioRateDifferent.prototype.toString = function() {
	return "Answer: Id="+this.id+"; Name="+this.name+"; isHide="+this.hide+"; Type={"+this.type+"}; Prefix="+this.prefix;
}
AnswerTotal.prototype = new AnswerAbstract;

function AnswerTotal(id, hide, prefix) {
	this.base = AnswerAbstract;
	this.base(id, "Total", hide, AnswerType[6], prefix);
}
AnswerTotal.prototype.getQuestionAnswersTable = function(qid){
	this.base = AnswerAbstract;
	return getQuestionAnswersTable(qid);
}
AnswerTotal.prototype.getAnswerTr = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerTr(qid,aid);
}
AnswerTotal.prototype.getAnswerImageTd = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerImageTd(qid,aid);
}
AnswerTotal.prototype.getAnswerImageAhref = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerImageAhref(qid,aid);
}
AnswerTotal.prototype.getAnswerImage = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerImage(qid,aid);
}
AnswerTotal.prototype.getAnswerElementTd = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerElementTd(qid,aid);
}
AnswerTotal.prototype.getRC = function(qid,aid){
	this.base = AnswerAbstract;
	return getRC(qid,aid);
}
AnswerTotal.prototype.getAnswerLabelTd = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerLabelTd(qid,aid);
}
AnswerTotal.prototype.getAnswerLabel = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerLabel(qid,aid);
}
AnswerTotal.prototype.getInputTextOther = function(qid,aid){
	this.base = AnswerAbstract;
	return getInputTextOther(qid,aid);
}
AnswerTotal.prototype.getAnswerImageTr = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerImageTr(qid,aid);
}
AnswerTotal.prototype.getAnswerLabelTr = function(qid){
	this.base = AnswerAbstract;
	return getAnswerLabelTr(qid);
}
AnswerTotal.prototype.getAnswerElementTr = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerElementTr(qid,aid);
}
AnswerTotal.prototype.getSelectR = function(qid,aid){
	this.base = AnswerAbstract;
	return getSelectR(qid,aid);
}
AnswerTotal.prototype.getAnswerOption = function(qid,aid){
	this.base = AnswerAbstract;
	return getAnswerOption(qid,aid);
}
AnswerTotal.prototype.getInputText = function(qid,aid){
	this.base = AnswerAbstract;
	return getInputText(qid,aid);
}
AnswerTotal.prototype.getGmhLeft = function(aid){
	this.base = AnswerAbstract;
	return getGmhLeft(aid);
}
AnswerTotal.prototype.getGmhRight = function(aid){
	this.base = AnswerAbstract;
	return getGmhRight(aid);
}
AnswerTotal.prototype.getAnswerTrCOBO = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerTrCOBO(qid,aid,aid2);
}
AnswerTotal.prototype.getAnswerLabelTdCOBOLeft = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelTdCOBOLeft(qid,aid,aid2);
}
AnswerTotal.prototype.getAnswerLabelCOBOLeft = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelCOBOLeft(qid,aid,aid2);
}
AnswerTotal.prototype.getAnswerElementTdCOBOLeft = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerElementTdCOBOLeft(qid,aid,aid2);
}
AnswerTotal.prototype.getRC_COBOLeft = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getRC_COBOLeft(qid,aid,aid2);
}
AnswerTotal.prototype.getAnswerLabelTdCOBOOR = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelTdCOBOOR(qid,aid,aid2);
}
AnswerTotal.prototype.getAnswerLabelCOBOOR = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelCOBOOR(qid,aid,aid2);
}
AnswerTotal.prototype.getAnswerElementTdCOBORight = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerElementTdCOBORight(qid,aid,aid2);
}
AnswerTotal.prototype.getRC_COBORight = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getRC_COBORight(qid,aid,aid2);
}
AnswerTotal.prototype.getAnswerLabelTdCOBORight = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelTdCOBORight(qid,aid,aid2);
}
AnswerTotal.prototype.getAnswerLabelCOBORight = function(qid,aid,aid2){
	this.base = AnswerAbstract;
	return getAnswerLabelCOBORight(qid,aid,aid2);
}

AnswerTotal.prototype.hideAnswerSection = function(qid,aid,hide,trhide){
	this.base = AnswerAbstract;
	hideAnswerSection(qid,aid,hide,trhide);
}
AnswerTotal.prototype.hideAnswerTr = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerTr(qid,aid,hide);
}
AnswerTotal.prototype.hideAnswerImageTd = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerImageTd(qid,aid,hide);
}
AnswerTotal.prototype.hideAnswerImageAhref = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerImageAhref(qid,aid,hide);
}
AnswerTotal.prototype.hideAnswerImage = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerImage(qid,aid,hide);
}
AnswerTotal.prototype.hideAnswerElementTd = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerElementTd(qid,aid,hide);
}
AnswerTotal.prototype.hideInputTextOther = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideInputTextOther(qid,aid,hide);
}
AnswerTotal.prototype.hideAnswerLabelTd = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerLabelTd(qid,aid,hide);
}
AnswerTotal.prototype.hideAnswerLabel = function(qid,aid,hide){
	this.base = AnswerAbstract;
	hideAnswerLabel(qid,aid,hide);
}

AnswerTotal.prototype.toString = function() {
	return "Answer: Id="+this.id+"; Name="+this.name+"; isHide="+this.hide+"; Type={"+this.type+"}; Prefix="+this.prefix;
}

ColumnCheck.prototype = new ColumnAbstract;

function ColumnCheck(id, name ,hide, prefix) {
	this.base = ColumnAbstract;
	this.base(id, name, hide, ColumnType[2], prefix);
}
ColumnCheck.prototype.getColumnTr = function(qid){
	this.base = ColumnAbstract;
	return getColumnTr(qid);
}
ColumnCheck.prototype.getColumnImageTd = function(qid){
	this.base = ColumnAbstract;
	return getColumnImageTd(qid);
}
ColumnCheck.prototype.getColumnLabelTd = function(qid){
	this.base = ColumnAbstract;
	return getColumnLabelTd(qid);
}
ColumnCheck.prototype.getColumnTd = function(qid,num){
	this.base = ColumnAbstract;
	return getColumnTd(qid,num);
}
ColumnCheck.prototype.getColumnLabel = function(qid,num){
	this.base = ColumnAbstract;
	return getColumnLabel(qid,num);
}
ColumnCheck.prototype.hideColumnSection= function(qid,num,hide){
	this.base = ColumnAbstract;
	hideColumnSection(qid,num,hide);
}
ColumnCheck.prototype.hideColumnPreSection= function(qid,hide){
	this.base = ColumnAbstract;
	hideColumnPreSection(qid,hide);
}
ColumnCheck.prototype.hideColumnTd= function(qid,num,hide){
	this.base = ColumnAbstract;
	hideColumnTd(qid,num,hide);
}
ColumnCheck.prototype.hideColumnLabel= function(qid,num,hide){
	this.base = ColumnAbstract;
	hideColumnLabel(qid,num,hide);
}
ColumnCheck.prototype.toString = function() {
	return "Column: Id="+this.id+"; Name="+this.name+"; isHide="+this.hide+"; Type={"+this.type+"}; Prefix="+this.prefix;
}
ColumnEdit.prototype = new ColumnAbstract;

function ColumnEdit(id, name ,hide, prefix) {
	this.base = ColumnAbstract;
	this.base(id, name, hide, ColumnType[3], prefix);
}
ColumnEdit.prototype.getColumnTr = function(qid){
	this.base = ColumnAbstract;
	return getColumnTr(qid);
}
ColumnEdit.prototype.getColumnImageTd = function(qid){
	this.base = ColumnAbstract;
	return getColumnImageTd(qid);
}
ColumnEdit.prototype.getColumnLabelTd = function(qid){
	this.base = ColumnAbstract;
	return getColumnLabelTd(qid);
}
ColumnEdit.prototype.getColumnTd = function(qid,num){
	this.base = ColumnAbstract;
	return getColumnTd(qid,num);
}
ColumnEdit.prototype.getColumnLabel = function(qid,num){
	this.base = ColumnAbstract;
	return getColumnLabel(qid,num);
}
ColumnEdit.prototype.hideColumnSection= function(qid,num,hide){
	this.base = ColumnAbstract;
	hideColumnSection(qid,num,hide);
}
ColumnEdit.prototype.hideColumnPreSection= function(qid,hide){
	this.base = ColumnAbstract;
	hideColumnPreSection(qid,hide);
}
ColumnEdit.prototype.hideColumnTd= function(qid,num,hide){
	this.base = ColumnAbstract;
	hideColumnTd(qid,num,hide);
}
ColumnEdit.prototype.hideColumnLabel= function(qid,num,hide){
	this.base = ColumnAbstract;
	hideColumnLabel(qid,num,hide);
}
ColumnEdit.prototype.toString = function() {
	return "Column: Id="+this.id+"; Name="+this.name+"; isHide="+this.hide+"; Type={"+this.type+"}; Prefix="+this.prefix;
}

ColumnRadio.prototype = new ColumnAbstract;

function ColumnRadio(id, name ,hide, prefix) {
	this.base = ColumnAbstract;
	this.base(id, name, hide, ColumnType[1], prefix);
}
ColumnRadio.prototype.getColumnTr = function(qid){
	this.base = ColumnAbstract;
	return getColumnTr(qid);
}
ColumnRadio.prototype.getColumnImageTd = function(qid){
	this.base = ColumnAbstract;
	return getColumnImageTd(qid);
}
ColumnRadio.prototype.getColumnLabelTd = function(qid){
	this.base = ColumnAbstract;
	return getColumnLabelTd(qid);
}
ColumnRadio.prototype.getColumnTd = function(qid,num){
	this.base = ColumnAbstract;
	return getColumnTd(qid,num);
}
ColumnRadio.prototype.getColumnLabel = function(qid,num){
	this.base = ColumnAbstract;
	return getColumnLabel(qid,num);
}
ColumnRadio.prototype.hideColumnSection= function(qid,num,hide){
	this.base = ColumnAbstract;
	hideColumnSection(qid,num,hide);
}
ColumnRadio.prototype.hideColumnPreSection= function(qid,hide){
	this.base = ColumnAbstract;
	hideColumnPreSection(qid,hide);
}
ColumnRadio.prototype.hideColumnTd= function(qid,num,hide){
	this.base = ColumnAbstract;
	hideColumnTd(qid,num,hide);
}
ColumnRadio.prototype.hideColumnLabel= function(qid,num,hide){
	this.base = ColumnAbstract;
	hideColumnLabel(qid,num,hide);
}
ColumnRadio.prototype.toString = function() {
	return "Column: Id="+this.id+"; Name="+this.name+"; isHide="+this.hide+"; Type={"+this.type+"}; Prefix="+this.prefix;
}


ColumnSelect.prototype = new ColumnAbstract;

function ColumnSelect(id, name ,hide, prefix) {
	this.base = ColumnAbstract;
	this.base(id, name, hide, ColumnType[4], prefix);
}
ColumnSelect.prototype.getColumnTr = function(qid){
	this.base = ColumnAbstract;
	return getColumnTr(qid);
}
ColumnSelect.prototype.getColumnImageTd = function(qid){
	this.base = ColumnAbstract;
	return getColumnImageTd(qid);
}
ColumnSelect.prototype.getColumnLabelTd = function(qid){
	this.base = ColumnAbstract;
	return getColumnLabelTd(qid);
}
ColumnSelect.prototype.getColumnTd = function(qid,num){
	this.base = ColumnAbstract;
	return getColumnTd(qid,num);
}
ColumnSelect.prototype.getColumnLabel = function(qid,num){
	this.base = ColumnAbstract;
	return getColumnLabel(qid,num);
}
ColumnSelect.prototype.hideColumnSection= function(qid,num,hide){
	this.base = ColumnAbstract;
	hideColumnSection(qid,num,hide);
}
ColumnSelect.prototype.hideColumnPreSection= function(qid,hide){
	this.base = ColumnAbstract;
	hideColumnPreSection(qid,hide);
}
ColumnSelect.prototype.hideColumnTd= function(qid,num,hide){
	this.base = ColumnAbstract;
	hideColumnTd(qid,num,hide);
}
ColumnSelect.prototype.hideColumnLabel= function(qid,num,hide){
	this.base = ColumnAbstract;
	hideColumnLabel(qid,num,hide);
}

ColumnSelect.prototype.toString = function() {
	return "Column: Id="+this.id+"; Name="+this.name+"; isHide="+this.hide+"; Type={"+this.type+"}; Prefix="+this.prefix;
}

ElementCheck.prototype = new ElementAbstract;

function ElementCheck(id, hide, prefix, question, answer, column) {
	this.base = ElementAbstract;
	this.base(id, hide, ElementType[2], prefix, question, answer, column);
}
ElementCheck.prototype.get3D_OtherCheck = function(qid,aid,num){
	this.base = ElementAbstract;
	return get3D_OtherCheck(qid,aid,num);
}

ElementCheck.prototype.hideElementSection = function(qid,aid,num,hide,tdhide){
	this.base = ElementAbstract;
  if(tdhide){
    hideEAnswerElementTd(qid,aid,num,hide);
  }
	hide3D_OtherCheck(qid,aid,num,hide);
}
ElementCheck.prototype.AnswerElementTd = function(qid,aid,num,hide){
	this.base = ElementAbstract;
	AnswerElementTd(qid,aid,num,hide);
}
ElementCheck.prototype.hide3D_OtherCheck= function(qid,aid,num,hide){
	this.base = ElementAbstract;
	hide3D_OtherCheck(qid,aid,num,hide);
}

ElementCheck.prototype.toString = function() {
	return "Element: Id="+this.id+"; isHide="+this.hide+"; Type={"+this.type+"}; Prefix="+this.prefix+";";
}


ElementEdit.prototype = new ElementAbstract;

function ElementEdit(id, hide, prefix, question, answer, column) {
	this.base = ElementAbstract;
	this.base(id, hide, ElementType[3], prefix, question, answer, column);
}
ElementEdit.prototype.get3D_InputTextOther= function(qid,aid,num){
	this.base = ElementAbstract;
	return get3D_InputTextOther(qid,aid,num);
}

ElementEdit.prototype.hideElementSection = function(qid,aid,num,hide,tdhide){
	this.base = ElementAbstract;
  if(tdhide){
    hideEAnswerElementTd(qid,aid,num,hide);
  }
	hide3D_InputTextOther(qid,aid,num,hide);
}
ElementEdit.prototype.AnswerElementTd = function(qid,aid,num,hide){
	this.base = ElementAbstract;
	AnswerElementTd(qid,aid,num,hide);
}
ElementEdit.prototype.hide3D_InputTextOther= function(qid,aid,num,hide){
	this.base = ElementAbstract;
	hide3D_InputTextOther(qid,aid,num,hide);
}

ElementEdit.prototype.toString = function() {
	return "Element: Id="+this.id+"; isHide="+this.hide+"; Type={"+this.type+"}; Prefix="+this.prefix+";";
}
ElementRadio.prototype = new ElementAbstract;

function ElementRadio(id, hide, prefix, question, answer, column) {
	this.base = ElementAbstract;
	this.base(id, hide, ElementType[1], prefix, question, answer, column);
}
ElementRadio.prototype.get3D_OtherRadio = function(qid,aid,num){
	this.base = ElementAbstract;
	return get3D_OtherRadio(qid,aid,num);
}

ElementRadio.prototype.hideElementSection = function(qid,aid,num,hide,tdhide){
	this.base = ElementAbstract;
  if(tdhide){
    hideEAnswerElementTd(qid,aid,num,hide);
  }
  hide3D_OtherRadio(qid,aid,num,hide);
}
ElementRadio.prototype.AnswerElementTd = function(qid,aid,num,hide){
	this.base = ElementAbstract;
	AnswerElementTd(qid,aid,num,hide);
}
ElementRadio.prototype.hide3D_OtherRadio = function(qid,aid,num,hide){
	this.base = ElementAbstract;
	hide3D_OtherRadio(qid,aid,num,hide);
}

ElementRadio.prototype.toString = function() {
	return "Element: Id="+this.id+"; isHide="+this.hide+"; Type={"+this.type+"}; Prefix="+this.prefix+";";
}
ElementRadioRateDifferent.prototype = new ElementAbstract;

function ElementRadioRateDifferent(id, hide, prefix, question, answer, column) {
	this.base = ElementAbstract;
	this.base(id, hide, ElementType[1], prefix, question, answer, column);
}

ElementRadioRateDifferent.prototype.getRGH_R = function(qid,aid,num){
	this.base = ElementAbstract;
	return getRGH_R(qid,aid,num);
}

ElementRadioRateDifferent.prototype.getAnswerElementTd = function(qid,aid,num,hide){
	this.base = ElementAbstract;
	return getAnswerElementTd(qid,aid,num,hide);
}

ElementRadioRateDifferent.prototype.hideElementSection = function(qid,aid,num,hide,tdhide){
	this.base = AnswerAbstract;
  if(tdhide){
    hideEAnswerElementTd(qid,aid,num,hide);
  }
  else if(!hide){
    hideEAnswerElementTd(qid,aid,num,hide);
  }
  hideRGH_R(qid,aid,num,hide);
}
ElementRadioRateDifferent.prototype.hideRGH_R = function(qid,aid,num,hide){
	this.base = ElementAbstract;
	hideRGH_R(qid,aid,num,hide);
}
ElementRadioRateDifferent.prototype.toString = function() {
	return "Element: Id="+this.id+"; isHide="+this.hide+"; Type={"+this.type+"}; Prefix="+this.prefix+";";
}
ElementSelect.prototype = new ElementAbstract;

function ElementSelect(id, hide, prefix, question, answer, column) {
	this.base = ElementAbstract;
	this.base(id, hide, ElementType[5], prefix, question, answer, column);
}
ElementSelect.prototype.get3D_SelectOther = function(qid,aid,num){
	this.base = ElementAbstract;
	return get3D_SelectOther(qid,aid,num);
}

ElementSelect.prototype.hideElementSection = function(qid,aid,num,hide,tdhide){
	this.base = ElementAbstract;
  if(tdhide){
    hideEAnswerElementTd(qid,aid,num,hide);
  }
	hide3D_SelectOther(qid,aid,num,hide);
}
ElementSelect.prototype.AnswerElementTd = function(qid,aid,num,hide){
	this.base = ElementAbstract;
	AnswerElementTd(qid,aid,num,hide);
}
ElementSelect.prototype.hide3D_SelectOther= function(qid,aid,num,hide){
	this.base = ElementAbstract;
	hide3D_SelectOther(qid,aid,num,hide);
}

ElementSelect.prototype.toString = function() {
	return "Element: Id="+this.id+"; isHide="+this.hide+"; Type={"+this.type+"}; Prefix="+this.prefix+";";
}
Survey.prototype = new SurveyAbstract;

function Survey(id, name, description, questions) {
  this.base = SurveyAbstract;
	this.base(id, name, description, questions);
}
Survey.prototype.addQuestion = function(q) {
	this.questions.push(q);
}

Survey.prototype.findQuestion = function(prefix) {
	if(prefix.search(regQ)<0 && prefix.search(regQA)<0 && prefix.search(regQC)<0 && prefix.search(regQAC)<0) return null;
	for(var i=0; i < this.questions.length; i++){
    if(regQ.exec(prefix)==this.questions[i].prefix){
			return this.questions[i];
		}
		else if(prefix.search(regQA)>-1){
			for(var j=0; j<this.questions[i].answers.length; j++){
				if(regQA.exec(prefix)== this.questions[i].answers[j].prefix){
					return this.questions[i];
				}
			}
		}
		else if(prefix.search(regQC)>-1){
			for(var j=0; j<this.questions[i].columns.length; j++){
				if(regQC.exec(prefix)== this.questions[i].columns[j].prefix){
					return this.questions[i];
				}
			}
		}
		else if(prefix.search(regQAC)>-1){
			for(var j=0; j<this.questions[i].elements.length; j++){
				if(regQAC.exec(prefix) == this.questions[i].elements[j].prefix){
					return this.questions[i];
				}
			}
		}
	}
}

Survey.prototype.findAnswer = function(prefix) {
	if(prefix.search(regQA)<0 && prefix.search(regQAC)<0) return null;
	for(var i=0; i < this.questions.length; i++){
		if(prefix.search(regQA)>-1){
			for(var j=0; j<this.questions[i].answers.length; j++){
				if(regQA.exec(prefix)== this.questions[i].answers[j].prefix){
					return this.questions[i].answers[j];
				}
			}
		}
		else if(prefix.search(regQAC)>-1){
			for(var k=0; k<this.questions[i].elements.length; k++){
				if(regQAC.exec(prefix) == this.questions[i].elements[k].prefix){
					return this.questions[i].elements[k].answer;
				}
			}
		}
	}
}

Survey.prototype.findColumn = function(prefix) {
	if(prefix.search(regQC)<0 && prefix.search(regQAC)<0) return null;
	for(var i=0; i < this.questions.length; i++){
		if(prefix.search(regQC)>-1){
			for(var j=0; j<this.questions[i].columns.length; j++){
				if(regQC.exec(prefix)== this.questions[i].columns[j].prefix){
					return this.questions[i].columns[j];
				}
			}
		}
		else if(prefix.search(regQAC)>-1){
			for(var k=0; k<this.questions[i].elements.length; k++){
				if(regQAC.exec(prefix) == this.questions[i].elements[k].prefix){
					return this.questions[i].elements[k].column;
				}
			}
		}
	}
}

Survey.prototype.findElement = function(prefix) {
	if(prefix.search(regQAC)<0) return null;
	for(var i=0; i < this.questions.length; i++){
		if(prefix.search(regQAC)>-1){
			for(var k=0; k<this.questions[i].elements.length; k++){
				if(regQAC.exec(prefix) == this.questions[i].elements[k].prefix){
					return this.questions[i].elements[k];
				}
			}
		}
	}
}
/*------------------------------- Hide section -------------------------------*/
Survey.prototype.hideQuestion = function(prefix,hide){
	var disp = (hide)?"none":"";
	var question = new Object();
	try{
		question = this.findQuestion(prefix);
		question.hideQuestionSection(question.id,hide);
		if(!(question instanceof QuestionHeader) &&
		   !(question instanceof QuestionCompareOneByOne)){
			for(var i = 0; i < question.answers.length; i++){
        question.answers[i].hideAnswerSection(question.id,question.answers[i].id,hide,true);
				if(question instanceof QuestionRateDifferent || question instanceof Question3dMatrix){
					for(var j = 0; j < question.columns.length; j++){
						question.columns[j].hideColumnPreSection(question.id,hide);
            question.columns[j].hide=hide;
            question.columns[j].hideColumnSection(question.id,question.columns[j].id,hide);
						for(var k = 0; k < question.elements.length; k++){
							if(question.elements[k].answer.id == question.answers[i].id){
                question.elements[k].hide=hide;
                question.elements[k].hideElementSection(question.id,question.answers[i].id,question.columns[j].id,hide,true);
							}
						}
					}
				}

			}
		}
		else if(question instanceof QuestionCompareOneByOne){
			for(var i = 0; i < question.answers.length; i++){
				for(var j = 0; j < question.answers.length; j++){
          question.answers[i].hideAnswerSectionCOBO(question.id,question.answers[i].id,question.answers[j].id,hide,true);
				}
			}
		}
	}
	catch(ex){}
	finally{
		question = null;
	}
}

Survey.prototype.hideAnswer = function(prefix,hide) {
	var question = new Object();
	var answer = new Object();
	try{
	  question = this.findQuestion(prefix);
	  answer = this.findAnswer(prefix);
	  if( question instanceof QuestionPickOneWithoutOther ||
		  question instanceof QuestionPickOneWithoutOther ||
		  question instanceof QuestionPickOneWithOther ||
        question instanceof QuestionPickOneWithComment ||
		   	question instanceof QuestionCheckAllThatApplyWithoutOther ||
		   	question instanceof QuestionCheckAllThatApplyWithOther ||
		   	question instanceof QuestionDropDownBox ||
		   	question instanceof QuestionListBox ||
		   	question instanceof QuestionSingleLine ||
		   	question instanceof QuestionMultiLine ||
		   	question instanceof QuestionRateDifferent ||
		   	question instanceof Question3dMatrix ||
		   	question instanceof QuestionNumericAllocation){
        if(!question instanceof QuestionPickOneWithComment){
          answer.hideAnswerSection(question.id,answer.id,hide,true);
        }
        else{
          answer.hideAnswerSection(question.id,answer.id,hide,!hide);
        }
        if(question instanceof QuestionRateDifferent ||
           question instanceof Question3dMatrix){
          if(!hide){
            hideColumnPreSection(question.id,hide);
          }
          for(var i = 0; i < question.columns.length; i++){
             if(!hide){
               hideColumnSection(question.id,i,hide);
             }
             for(var j = 0; j < question.elements.length; j++){
               if(question.elements[j].answer.id == answer.id){
                 question.elements[j].hideElementSection(question.id,answer.id,question.columns[i].id,hide,!hide);
               }
             }
           }
         }
       }
	}
	catch(ex){alert(ex);}
	finally{
		question = null;
		answer = null;
	}
}

Survey.prototype.hideAnswers = function(prefix,prefix2,hide) {
	var disp = (hide)?"none":"";
	var question = new Object();
	var answer = new Object();
	var answer2 = new Object();
	try{
		question = this.findQuestion(prefix);
		answer = this.findAnswer(prefix);
		answer2 = this.findAnswer(prefix2);
		if(question instanceof QuestionCompareOneByOne &&
			answer != null && answer2 != null){
			answer.hideAnswerSectionCOBO(question.id,answer.id,answer2.id,hide,true);
		}
	}
	catch(ex){}
	finally{
		question = null;
		answer = null;
		answer2 = null;
	}
}

Survey.prototype.hideColumn = function(prefix, hide) {
	var disp = (hide)?"none":"";
	var question = new Object();
	var column = new Object();
	try{
		question = this.findQuestion(prefix);
		column = this.findColumn(prefix);
		if(question instanceof QuestionRateDifferent || question instanceof Question3dMatrix){
			var num;
			if(!hide){
				hideColumnPreSection(question.id,hide);
			}
			for(var i = 0; i < question.columns.length; i++){
        if(!hide){
          question.columns[i].hideColumnSection(question.id,question.columns[i].id,hide);
        }
        if(column.id == question.columns[i].id){
          question.columns[i].hide=hide;
				  num = question.columns[i].id;
        }
      }
			for(var j = 0; j < question.answers.length; j++){
        if(!hide){
          hideAnswerTr(question.id,question.answers[j].id,hide);
          hideAnswerImageTd(question.id,question.answers[j].id,hide);
          hideAnswerLabel(question.id,question.answers[j].id,hide);
          hideAnswerElementTd(question.id,question.answers[j].id,hide);
        }
        for(var k = 0; k < question.elements.length; k++){
          question.elements[k].hide=hide;
          if(!hide){
            hideEAnswerElementTd(question.id,question.answers[j].id,k,hide,!hide);
          }
          question.elements[k].hideElementSection(question.id, question.answers[j].id, num, hide, !hide);
				}
			}
		}
	}
	catch(ex){}
	finally{
		question = null;
		column = null;
	}
}

Survey.prototype.hideElement = function(prefix,hide) {
	var disp = (hide)?"none":"";
	var question = new Object();
	var answer = new Object();
	var column = new Object();
	var element = new Object();
	try{
		question = this.findQuestion(prefix);
		answer = this.findAnswer(prefix);
		column = this.findColumn(prefix);
		element = this.findElement(prefix);
		if(question instanceof QuestionRateDifferent ||
	  	   question instanceof Question3dMatrix){
			element.hideElementSection(question.id, answer.id, column.id, hide, false);
      if(!hide){
        hideAnswerTr(question.id,answer.id,hide);
        hideAnswerImageTd(question.id,answer.id,hide);
        hideAnswerLabel(question.id,answer.id,hide);
        hideAnswerElementTd(question.id,answer.id,hide);
        hideColumnTr(question.id, hide);
        hideColumnPreSection(question.id,hide);
        for(var i = 0; i < question.columns.length; i++){
          if(column.id == question.columns[i].id){
            hideColumnSection(question.id,i,hide);
          }
          else{
            hideColumnTd(question.id,i,hide);
          }
        }
      }
    }
	}
	catch(ex){}
	finally{
		question = null;
		answer = null;
		column = null;
		element = null;
	}
}
/*------------------------------- Image section -------------------------------*/
Survey.prototype.getHTMLTagQuestionImage = function(prefix){
	var question = new Object();
	try{
		question = this.findQuestion(prefix);
		return question.getQuestionImage(question.id);
	}
	catch(ex){}
	finally{
		question = null;
	}
}
Survey.prototype.getHTMLTagAnswerImage = function(prefix){
	var question = new Object();
	var answer = new Object();
	try{
		question = this.findQuestion(prefix);
		answer = this.findAnswer(prefix);
		if( question instanceof QuestionPickOneWithoutOther ||
			question instanceof QuestionPickOneWithoutOther ||
			question instanceof QuestionPickOneWithOther ||
		   	question instanceof QuestionPickOneWithComment ||
		   	question instanceof QuestionCheckAllThatApplyWithoutOther ||
		   	question instanceof QuestionCheckAllThatApplyWithOther ||
		   	question instanceof QuestionDropDownBox ||
		   	question instanceof QuestionListBox ||
		   	question instanceof QuestionSingleLine ||
		   	question instanceof QuestionMultiLine ||
		   	question instanceof QuestionRateDifferent ||
		   	question instanceof Question3dMatrix ||
		   	question instanceof QuestionNumericAllocation){
			return answer.getAnswerImage(question.id,answer.id);
		}
	}
	catch(ex){}
	finally{
		question = null;
		answer = null;
	}
}

/*------------------------------- Name section -------------------------------*/
Survey.prototype.getHTMLTagQuestionName = function(prefix){
	var question = new Object();
	try{
		question = this.findQuestion(prefix);
        if(question != null){
            return question.getQuestionLabel(question.id);
        }
        else{
            return null;
        }
    }
	catch(ex){}
	finally{
		question = null;
	}
}
Survey.prototype.getHTMLTagAnswerName= function(prefix){
	var question = new Object();
	var answer = new Object();
	try{
		question = this.findQuestion(prefix);
		answer = this.findAnswer(prefix);
		if( question instanceof QuestionPickOneWithoutOther ||
			question instanceof QuestionPickOneWithoutOther ||
			question instanceof QuestionPickOneWithOther ||
		   	question instanceof QuestionPickOneWithComment ||
		   	question instanceof QuestionCheckAllThatApplyWithoutOther ||
		   	question instanceof QuestionCheckAllThatApplyWithOther ||
		   	question instanceof QuestionDropDownBox ||
		   	question instanceof QuestionListBox ||
		   	question instanceof QuestionSingleLine ||
		   	question instanceof QuestionMultiLine ||
		   	question instanceof QuestionRateDifferent ||
		   	question instanceof Question3dMatrix ||
		   	question instanceof QuestionNumericAllocation){
			return answer.getAnswerLabel(question.id,answer.id);
		}
	}
	catch(ex){}
	finally{
		question = null;
		answer = null;
	}
}

Survey.prototype.getHTMLTagColumnName= function(prefix){
	var question = new Object();
	var column = new Object();
	try{
		question = this.findQuestion(prefix);
	   	if(question instanceof QuestionRateDifferent || question instanceof Question3dMatrix){
			column = this.findColumn(prefix);
			var obj = column.getColumnLabel(question.id,column.id);
			return obj;
		}
	}
	catch(ex){}
	finally{
		question = null;
		column = null;
	}
}

/*------------------------------- Element section -------------------------------*/
Survey.prototype.getHTMLTagQuestionElement= function(prefix){
	var question = new Object();
	var results = new Array();
	try{
		question = this.findQuestion(prefix);
		if (question instanceof QuestionMultiLine){
			prefix=prefix+".A1";
			results = this.getHTMLTagAnswerElement(prefix);
		}
		return results;
	}
	catch(ex){}
	finally{
		results = null;
		question = null;
	}
}

Survey.prototype.getHTMLTagAnswerElement= function(prefix){
	var question = new Object();
	var answer = new Object();
	var results = new Array();
	try{
		question = this.findQuestion(prefix);
		answer = this.findAnswer(prefix);
		if (question instanceof QuestionPickOneWithoutOther ||
	  	 	question instanceof QuestionPickOneWithOther ||
	  	 	question instanceof QuestionPickOneWithComment ||
		   	question instanceof QuestionCheckAllThatApplyWithoutOther ||
		   	question instanceof QuestionCheckAllThatApplyWithOther ||
		   	question instanceof QuestionDropDownBox ||
		   	question instanceof QuestionListBox ||
		   	question instanceof QuestionSingleLine ||
		   	question instanceof QuestionMultiLine ||
		   	question instanceof QuestionNumericAllocation){
			if( answer instanceof AnswerRadio ||
				answer instanceof AnswerRadioPOWC ||
				answer instanceof AnswerCheck){
				results.push(answer.getRC(question.id,answer.id));
			}
			else if(answer instanceof AnswerRadioEdit ||
					answer instanceof AnswerCheckEdit){
				results.push(answer.getRC(question.id,answer.id));
				results.push(answer.getInputTextOther(question.id,answer.id));
			}
			else if(answer instanceof AnswerEditPOWC || answer instanceof AnswerEdit ||
					answer instanceof AnswerTotal){
				results.push(answer.getInputTextOther(question.id,answer.id));
			}
			else if(answer instanceof AnswerOption){
				results.push(answer.getAnswerOption(question.id,answer.id));
			}
			else if(answer instanceof AnswerArea){
				results.push(answer.getInputTextOther(question.id,answer.id));
			}
			return results;
		}
		else if(question instanceof QuestionRateDifferent ||
		   	question instanceof Question3dMatrix ||
		   	question instanceof QuestionNumericAllocation){
			return answer.getAnswerElement(question.id,answer.id);
		}
	}
	catch(ex){}
	finally{
		results = null;
		question = null;
		answer = null;
	}
}

Survey.prototype.getHTMLTagColumnElement = function(prefix){
	var question = new Object();
	var answer = new Object();
	var column = new Object();
	var element = new Object();
	var results = new Array();
	try{
		question = this.findQuestion(prefix);
   		answer = this.findAnswer(prefix);
   		column = this.findColumn(prefix);
	   	if (question instanceof QuestionRateDifferent){
			element = this.findElement(prefix);
			results.push(element.getRGH_R(question.id,answer.id,column.id));
		}
		else if(question instanceof Question3dMatrix){
			element = this.findElement(prefix);
			if(element instanceof ElementRadio){
				results.push(element.get3D_OtherRadio(question.id,answer.id,column.id));
			}
			else if(element instanceof ElementCheck){
				results.push(element.get3D_OtherCheck(question.id,answer.id,column.id));
			}
			else if(element instanceof ElementEdit){
				results.push(element.get3D_InputTextOther(question.id,answer.id,column.id));
			}
			else if(element instanceof ElementSelect){
				results.push(element.get3D_SelectOther(question.id,answer.id,column.id));

			}
		}
		return results;
	}
	catch(ex){}
	finally{
		question = null;
		answer = null;
	}
}

Survey.prototype.getHTMLTagColumnElements = function(prefix,prefix2) {
	var question = new Object();
	var answer = new Object();
	var answer2 = new Object();
	var results = new Array();
	try{
		question = this.findQuestion(prefix);
		answer = this.findAnswer(prefix);
		answer2 = this.findAnswer(prefix2);
		if(question instanceof QuestionCompareOneByOne){
			for(var i = 0; i < question.answers.length; i++){
				for(var j = 0; j < question.answers.length; j++){
					if(answer.id == question.answers[i].id &&
						answer2.id == question.answers[j].id){
						results.push(question.answers[i].getRC_COBOLeft(question.id,answer.id,answer2.id));
						results.push(question.answers[j].getRC_COBORight(question.id,answer.id,answer2.id));
						return results;
					}
				}
			}
		}
	}
	catch(ex){}
	finally{
		question = null;
		answer = null;
		answer2 = null;
	}
}

Survey.prototype.getAllQuestionRateDifferent=function(){
  var results = new Array();
  var question = new Object();
  try{
    for(var i = 0; i< this.questions.length; i++){
      if(this.questions[i] instanceof QuestionRateDifferent){
        results.push(this.questions[i]);
      }
    }
    return results;
  }
  catch(ex){}
  finally{
    results = null;
    question = null;
  }
}

Survey.prototype.getAllAnswerRateDifferent=function(question){
	var results = new Array();
  try{
    for(var i = 0; i< question.answers.length; i++){
      results.push(question.answers[i]);
    }
    return results;
  }
  catch(ex){}
  finally{
    results = null;
  }
}

Survey.prototype.getAllColumnRateDifferent=function(question){
	var results = new Array();
  try{
    for(var i = 0; i< question.columns.length; i++){
      results.push(question.columns[i]);
    }
    return results;
  }
  catch(ex){}
  finally{
    results = null;
  }
}

Survey.prototype.getAllElementsByColumnRateDifferent=function(question, column){
  var results = new Array();
  try{
    for(var i = 0; i< question.elements.length; i++){
      if(question.elements[i].column==column){
        results.push(question.elements[i]);
      }
    }
    return results;
  }
  catch(ex){}
  finally{
    results = null;
  }
}

Survey.prototype.getAllElementsByAnswerRateDifferent=function(question, answer){
	var results = new Array();
  try{
    for(var i = 0; i< question.elements.length; i++){
      if(question.elements[i].answer==answer){
        results.push(question.elements[i]);
      }
    }
    return results;
  }
  catch(ex){}
  finally{
    results = null;
  }
}

Survey.prototype.getQuestionByQuestionId=function(id){
    var question;
    try{
        for(var i = 0; i< this.questions.length; i++){
        if(this.questions[i].id==id){
            question = this.questions[i];
            break;
        }
    }
    return question;
  }
  catch(ex){}
  finally{
    question = null;
  }
}
Survey.prototype.getAnswersByQuestionId=function(id){
    var answers;
    try{
        for(var i = 0; i< this.questions.length; i++){
          if(this.questions[i].id==id){
            answers = this.questions[i].answers;
            break;
        }
    }
    return answers;
  }
  catch(ex){}
  finally{
    answers = null;
  }
}
Survey.prototype.getElementsByQuestionId=function(id){
    var elements;
    try{
        for(var i = 0; i< this.questions.length; i++){
          if(this.questions[i].id==id){
            elements = this.questions[i].elements;
            break;
        }
    }
    return elements;
  }
  catch(ex){}
  finally{
    elements = null;
  }
}


Survey.prototype.toString = function(){
	return "Survey: Id="+this.id+"; Name="+this.name+"; Description="+this.description;
}
function vpHide(prefix, hide){
	if(prefix.search(regQ)>=0 && prefix.search(regQAA)<0){
		mySurvey.hideQuestion(prefix,hide);
	}
    else if(prefix.search(regQA)>=0){
		mySurvey.hideAnswer(prefix,hide);
    }
    else if(prefix.search(regQAA)>=0){
    	var pref = ""+regQA1.exec(prefix);
    	var pref2 = ""+regQonly.exec(prefix)+"."+regA2.exec(prefix);
	    mySurvey.hideAnswers(pref,pref2,hide);
    }
    else if(prefix.search(regQC)>=0){
		mySurvey.hideColumn(prefix,hide);
    }
    else if(prefix.search(regQAC)>=0){
		mySurvey.hideElement(prefix,hide);
    }
    else{
    	alert("Prefix must be correct");
    }
}

function vpGetImage(prefix){
	if(prefix.search(regQ)>=0 && prefix.search(regQAA)<0){
		return mySurvey.getHTMLTagQuestionImage(prefix);
	}
  else if(prefix.search(regQA)>=0){
	  return mySurvey.getHTMLTagAnswerImage(prefix);
  }
  else{
   	alert("Prefix must be correct");
    return null;
  }
}

function vpGetLabel(prefix){
	if(prefix.search(regQ)>=0 && prefix.search(regQAA)<0){
		return mySurvey.getHTMLTagQuestionName(prefix);
	}
  else if(prefix.search(regQA)>=0){
	  return mySurvey.getHTMLTagAnswerName(prefix);
  }
  else if(prefix.search(regQC)>=0){
		return mySurvey.getHTMLTagColumnName(prefix);
  }
  else{
    alert("Prefix must be correct");
    return null;
  }
}

function vpGetElements(prefix){
    if(prefix.search(regQ)>=0){
		return mySurvey.getHTMLTagQuestionElement(prefix);
    }
    else if(prefix.search(regQA)>=0){
		return mySurvey.getHTMLTagAnswerElement(prefix);
    }
    else if(prefix.search(regQAC)>=0){
		return mySurvey.getHTMLTagColumnElement(prefix);
    }
    else if(prefix.search(regQAA)>=0){
    	var pref = ""+regQA1.exec(prefix);
    	var pref2 = ""+regQonly.exec(prefix)+"."+regA2.exec(prefix);
	    return mySurvey.getHTMLTagColumnElements(pref,pref2);
    }
    else{
    	alert("Prefix must be correct");
      return null;
    }
}

function vpFindQuestion(prefix){
  return mySurvey.findQuestion(prefix);
}
function vpFindAnswer(prefix){
		return mySurvey.findAnswer(prefix);
}
function vpFindColumn(prefix){
		return mySurvey.findColumn(prefix);
}
function vpFindElement(prefix){
		return mySurvey.findElement(prefix);
}

function vpGetAllQuestionRateDifferent(){
  return mySurvey.getAllQuestionRateDifferent();
}
function vpGetAllAnswerRateDifferent(question){
  return mySurvey.getAllAnswerRateDifferent(question);
}
function vpGetAllColumnRateDifferent(question){
  return mySurvey.getAllColumnRateDifferent(question);
}
function vpGetAllElementsByColumnRateDifferent(question, column){
  return mySurvey.getAllElementsByColumnRateDifferent(question, column);
}
function vpGetAllElementsByAnswerRateDifferent(question, answer){
  return mySurvey.getAllElementsByAnswerRateDifferent(question, answer);
}
function vpGetQuestionByQuestionId(id){
  return mySurvey.getQuestionByQuestionId(id);
}
function vpGetAnswersByQuestionId(id){
  return mySurvey.getAnswersByQuestionId(id);
}
function vpGetElementsByQuestionId(id){
  return mySurvey.getElementsByQuestionId(id);
}


