

function iactTextEvaluate(string, patterns)
{
var isCorrect=false;
if ((string != "") && (patterns != "")) {
string = string.toLowerCase();
patterns = patterns.toLowerCase();
var textArray=patterns.split(",");
for (var j=0; j<textArray.length; j++) {
if (string.indexOf(textArray[j]) != -1) {
isCorrect=true;
}  else {
isCorrect=false;
break;
}
}
}
return isCorrect;
}

function iactGetMaximum(values)
{
var max=0;
for (var i=0; i<values.length; i++) {
if ( (!isNaN(values[i])) && (values[i] > max) )
max=values[i];
}
return max;
}

function iactAddScore(values)
{
var total=0;
for (var i=0; i<values.length; i++) {
if ( !isNaN(values[i]))
total+=values[i];
}
return total;
}

function iactSingleinputHrefEvaluate(input)
{
var resultData = new Array();
if (passresults == "true") {
if (api == "nav")
resultData[0]=input;
}
var answer = parseInt(input)-1;
var scoreIs=0;
if ( !isNaN(score[answer]) )
scoreIs=score[answer];
if ( api == "scorm" || api == "scorm13" ) {
iactSetScore(modify, scoreIs);
iactSetStatus(modify, scoreIs, passscore, failscore);
} else if ( api == "nav" ) {
var maxscore = iactGetMaximum(score);
iactSetPartScore(modify, name, scoreIs, maxscore, passscore, failscore, resultData);
}
}


function iactSingleinputRadioEvaluate()
{
var form=document.radio;
var answer = "";
var results="";
var resultData = new Array();
for (var i=0; i<form.input.length; i++){
if (form.input[i].checked){
if (passresults == "true") {
results="?input="+escape(form.input[i].value);
if (api == "nav")
resultData[0]=form.input[i].value;
}
answer = parseInt(form.input[i].value) -1;
break;
}
}
var scoreIs=0;
if ( !isNaN(score[answer]) )
scoreIs=score[answer];
if ( api == "scorm" || api == "scorm13" ) {
iactSetScore(modify, scoreIs);
iactSetStatus(modify, scoreIs, passscore, failscore);
} else if ( api == "nav" ) {
var maxscore = iactGetMaximum(score);
iactSetPartScore(modify, name, scoreIs, maxscore, passscore, failscore, resultData);
}
answer += "";
if ((answer == "") && (emptyhref != ""))
location.href=emptyhref;
else if ((answer != "") && (href[answer] != "") )
location.href=href[answer]+results;
}




function iactSingleinputRadioInit(name)
{
var params=new Query();
var input;
if (api == "nav") {
var resultData = iactGetPartData (name);
if (typeof(resultData[0]) != "undefined")
input=resultData[0];
}
if (typeof(params.input) != "undefined")
input=params.input;
if (typeof(input) != "undefined")
for (var i=0; i<=10; i++)
if ( (typeof(document.radio.input[i])!="undefined") && (document.radio.input[i] != null) )  {
if (document.radio.input[i].value == input) {
document.radio.input[i].checked=true;
break;
}
}
}


function iactSingleinputMenuEvaluate()
{
var form=document.menu;
var answer="";
var results="";
var resultData = new Array();
for (var i=0; i<form.input.length; i++) {
if (form.input[i].selected) {
if (passresults == "true") {
if (api == "nav")
resultData[0]=form.input[i].value;
results="?input="+escape(form.input.options[i].value);
}
answer = parseInt(form.input.options[i].value) -1;
}
}
var scoreIs=0;
if ( !isNaN(score[answer]) )
scoreIs=score[answer];
if ( api == "scorm" || api == "scorm13" ) {
iactSetScore(modify, scoreIs);
iactSetStatus(modify, scoreIs, passscore, failscore);
} else if ( api == "nav" ) {
var maxscore = iactGetMaximum(score);
iactSetPartScore(modify, name, scoreIs, maxscore, passscore, failscore, resultData);
}
answer += "";
if ((answer == "") && (emptyhref != ""))
location.href=emptyhref;
else if ((answer != "") && (href[answer] != "") )
location.href=href[answer]+results;
}


function iactSingleinputMenuInit()
{
var params=new Query();
var input = "";
if (api == "nav") {
var resultData = iactGetPartData (name);
if (typeof(resultData[0]) != "undefined")
input=resultData[0];
}
if (typeof(params.input) != "undefined")
input=params.input;
if (typeof(input) != "undefined")
for (var i=0; i<=10; i++) {
if ( (typeof(document.menu.input.options[i])!="undefined") && (document.menu.input.options[i] != null) )  {
if (document.menu.input.options[i].value == input) {
document.menu.input.options[i].selected=true;
break;
}
}
}
}

function iactSingleinputMenuDisabledWrite()
{
var params=new Query();
if (typeof(params["input"]) != "undefined")
document.write(text[ params["input"]-1 ]);
}

function iactSingleinputButtonEvaluate(input)
{
var results = "";
var resultData = new Array();
if (passresults == "true") {
results = "?input="+input;
if (api == "nav")
resultData[0]=input;
}
var answer = parseInt(input)-1;
var scoreIs=0;
if ( !isNaN(score[answer]) )
scoreIs=score[answer];
if ( api == "scorm" || api == "scorm13" ) {
iactSetScore(modify, scoreIs);
iactSetStatus(modify, scoreIs), passscore, failscore;
} else if ( api == "nav" ) {
var maxscore = iactGetMaximum(score);
iactSetPartScore(modify, name, scoreIs, maxscore, passscore, failscore, resultData);
}
if ( href[answer] != "")
location.href=href[answer]+results;

}


function iactSingleinputDisabledWrite(input, text)
{
var params=new Query();
if ( (typeof(params["input"]) != "undefined") && (params["input"] == input) )
document.write(text);
}


function iactTextinputEvaluate()
{
var form=document.text;
var string=form.input.value;
var results = (passresults=="true") ? "?input="+escape(string) : "";
var resultData = new Array();
if (passresults == "true")
resultData[0]=string;
var answer="";
if (string != ""){
for (var i=value.length-1; i>=0; i--) {
if (value[i] != "") {
if (iactTextEvaluate(string, value[i]))
answer=i;
}
}
}
var scoreIs=0;
if ( !isNaN(score[answer]) )
scoreIs=score[answer];
if ( api == "scorm" || api == "scorm13" ) {
iactSetScore(modify, scoreIs);
iactSetStatus(modify, scoreIs, passscore, failscore);
} else if ( api == "nav" ) {
var maxscore = iactGetMaximum(score);
iactSetPartScore(modify, name, scoreIs, maxscore, passscore, failscore, resultData);
}
answer += "";
if ((string == "") && (emptyhref != ""))
location.href=emptyhref;
else if ((answer != "") && (href[answer] != "") )
location.href=href[answer]+results;
else if (falsehref != "")
location.href=falsehref+results;
}


function iactTextinputInit()
{
var params=new Query();
var input = "";
if (api == "nav") {
var resultData = iactGetPartData (name);
if (typeof(resultData[0]) != "undefined")
input=resultData[0];
}
if (typeof(params.input) != "undefined")
input=params.input;
document.text.input.value=input;
}


function iactTextinputDisabledWrite()
{
var params=new Query();
if (typeof(params.input) != "undefined") {
document.write(params.input);
} else {
document.write("______");
}
}


function iactTextinputsEvaluate()
{
var form=document.text;
var isCorrect=true;
var isPartial=false;
var isEmpty = true;
var results="";
var resultData = new Array ();
var totalScore = 0;
for (var i=0; i<form.elements.length-1; i++) {
if (passresults =="true") {
if (api=="nav")
resultData[i]=form.elements[i].value;
var seperator = (results=="") ? "?" : "&" ;
results += seperator
+ escape(form.elements[i].name)
+ "="
+ escape(form.elements[i].value);
}
var formName=form.elements[i].name;
var v = parseInt(formName.substring(5,formName.length));
var string=form.elements[i].value;
var match=iactTextEvaluate(string, value[v-1]);
isCorrect = isCorrect && match;
isPartial = isPartial || match;
if (string != "") isEmpty=false;
if ( (match) && (!isNaN(score[v-1])) )
totalScore += score[v-1];
}
if ( api == "scorm" || api == "scorm13" ) {
iactSetScore(modify, totalScore);
iactSetStatus(modify, totalScore, passscore, failscore);
} else if ( api == "nav" ) {
var maxscore = iactAddScore(score);
iactSetPartScore(modify, name, totalScore, maxscore, passscore, failscore, resultData);
}
if ((isEmpty) && (emptyhref != ""))
location.href = emptyhref;
else if (isCorrect)
location.href = truehref+results;
else if ((isPartial) && (partialhref != ""))
location.href = partialhref+results;
else if (falsehref != "")
location.href = falsehref+results;
}


function iactTextinputsInit()
{
var params=new Query();
if (api == "nav") {
var resultData = iactGetPartData (name);
for (var i=1; i<=10; i++)
if ((typeof(document.text["input"+i])!="undefined") && (typeof(resultData[i-1])!="undefined") )
document.text["input"+i].value=resultData[i-1];
}
for (var i=1; i<=10; i++)
if ((typeof(document.text["input"+i])!="undefined") && (document.text["input"+i] != null))
if (typeof(params["input"+i])!="undefined")
document.text["input"+i].value=params["input"+i];
}


function iactTextinputsDisabledWrite(input, emptyString)
{
var params=new Query();
if ( (typeof(params["input"+input]) != "undefined") && (params["input"+input] != "") )
document.write(" "+params["input"+input]+" ");
else
document.write(" "+emptyString+" ");
}


function iactSelfevalTextinputsEvaluate()
{
var form=document.selfevalText;
var isCorrect=true;
var isEmpty = true;
var results="";
var resultData = new Array ();
for (var i=0; i<form.elements.length-1; i++) {
if (passresults =="true") {
if (api=="nav")
resultData[i]=form.elements[i].value;
var seperator = (results=="") ? "?" : "&" ;
results += seperator
+ escape(form.elements[i].name)
+ "="
+ escape(form.elements[i].value);
}
var formName=form.elements[i].name;
var v = parseInt(formName.substring(5,formName.length));
var string=form.elements[i].value;
if (string != "") isEmpty=false;
}
if ((isEmpty) && (emptyhref != ""))
location.href = emptyhref;
else
location.href = truehref+results;
}

function iactSelfevalTextinputsInit()
{
var params=new Query();
if (api == "nav") {
var resultData = iactGetPartData (name);
for (var i=1; i<=10; i++)
if ((typeof(document.selfevalText["input"+i])!="undefined") && (typeof(resultData[i-1])!="undefined") )
document.selfevalText["input"+i].value=resultData[i-1];
}
for (var i=1; i<=10; i++)
if ((typeof(document.selfevalText["input"+i])!="undefined") && (document.selfevalText["input"+i] != null))
if (typeof(params["input"+i])!="undefined")
document.selfevalText["input"+i].value=params["input"+i];
}

function iactSelfevalTextinputsDisabledWrite(input, emptyString)
{
var params=new Query();
if ( (typeof(params["input"+input]) != "undefined") && (params["input"+input] != "") )
document.write(" "+params["input"+input]+" ");
else
document.write(" "+emptyString+" ");
}


function iactMultipleinputEvaluate(){
var form=document.multiple;
var isCorrect=true;
var isPartial=false;
var isEmpty=true;
var results = "";
var resultData = new Array();
var totalScore = 0;
for (var i=0; i<form.elements.length-1; i++) {
if (passresults =="true") {
if (api=="nav")
if (form.elements[i].checked)
resultData[i] = "true";
else
resultData[i] = "false";
var seperator = (results=="") ? "?" : "&" ;
results += seperator
+ escape(form.elements[i].name)
+ "="
+ escape(form.elements[i].checked);
}
var actValue=parseInt(form.elements[i].value) -1;
if (form.elements[i].checked){
isEmpty=false;
if (correct[actValue] == "true") {
if ( !isNaN(score[actValue]) )
totalScore += score[actValue];
isCorrect=isCorrect && true;
isPartial=true;
} else {
if ( !isNaN(score[actValue]) )
totalScore -= score[actValue];
isCorrect=false;
}
} else {
if (correct[actValue] == "true") {
isCorrect=false;
}
}
}
if ( totalScore < 0 )
totalScore = 0;
if ( api == "scorm" || api == "scorm13" ) {
iactSetScore(modify, totalScore);
iactSetStatus(modify, totalScore, passscore, failscore);
} else if ( api == "nav" ) {
var maxscore=0;
for (var i=0; i<score.length; i++) {
if ( !isNaN(score[i]) && (correct[i] == "true") )
maxscore += score[i];
}
iactSetPartScore(modify, name, totalScore, maxscore, passscore, failscore, resultData);
}
if ((isEmpty == true) && (emptyhref!= ""))
location.href=emptyhref;
else if (isCorrect == true)
location.href=truehref+results;
else if ((isPartial == true) && (partialhref != ""))
location.href=partialhref+results;
else if (falsehref != "")
location.href=falsehref+results;
}


function iactMultipleinputInit()
{
var params=new Query();
if (api == "nav") {
var resultData = iactGetPartData (name);
if (typeof(resultData) != "undefined") {
for (var i=1; i<=10; i++) {
if (typeof(resultData[i-1]) != "undefined") {
if ((typeof(document.multiple["input"+i])!="undefined") && (resultData[i-1]=="true")) {
document.multiple["input"+i].checked=true;
}
}
}
}
}
for (var i=1; i<=10; i++)
if ( (typeof(document.multiple["input"+i])!="undefined") && (document.multiple["input"+i] != null) )
if ( (typeof(params["input"+i])!="undefined") && (params["input"+i] =="true") )
document.multiple["input"+i].checked=true;
}


function iactMultipleinputDisabledWrite(input)
{
var params=new Query();
if ( (typeof(params["input"+input]) != "undefined") && (params["input"+input] == "true") )
document.write("X");
}


function iactAssigninputEvaluate()
{
var form=document.assigninput;
var isCorrect=true;
var isEmpty=true;
var isPartial=false;
var results="";
var resultData = new Array('','','','','','','','','',':');
var totalScore=0;
for (var i=0; i<form.elements.length-1; i++) {
if (correct[i] != "") {
var selectinput = form.elements["input"+parseInt(i+1)];
var selected = selectinput.selectedIndex;
if (passresults == "true") {
if (api == "nav") {
resultData[i] = selected;
resultData[i+10] = option[selectinput.options[selected].value];
}
var seperator = (results=="") ? "?" : "&" ;
results += seperator
+ "input"+parseInt(i+1)
+ "="
+ escape(option[selectinput.options[selected].value])
+ "&"
+ "selected"+parseInt(i+1)
+ "="
+ selected;
}
if (selectinput.options[selected].value == correct[i]) {
isCorrect = isCorrect && true;
isEmpty=false;
isPartial=true;
if ( !isNaN(score[i]) )
totalScore += score[i];
} else {
isCorrect = false;
if (! selectinput.options[0].selected)
isEmpty=false;
}
}
}
if ( api == "scorm" || api == "scorm13" ) {
iactSetScore(modify, totalScore);
iactSetStatus(modify, totalScore, passscore, failscore);
} else if ( api == "nav" ) {
var maxscore = iactAddScore(score);
iactSetPartScore(modify, name, totalScore, maxscore, passscore, failscore, resultData);
}
if ((isEmpty == true) && (emptyhref != ""))
location.href=emptyhref;
else if (isCorrect == true)
location.href=truehref+results;
else if ((isPartial == true) && (partialhref != ""))
location.href=partialhref+results;
else if (falsehref != "")
location.href=falsehref+results;
}


function iactAssigninputInit()
{
if (api == "nav") {
var resultData = iactGetPartData (name);
if ((typeof(resultData) != "undefined") && (resultData != null))
for (var i=1; i<=10; i++)
if ( (typeof(document.assigninput.elements["input"+i]) != "undefined") && (document.assigninput.elements["input"+i] != null) )
if (typeof(resultData[i-1]) != "undefined")
document.assigninput.elements["input"+i].selectedIndex=resultData[i-1];
}
var params=new Query();
for (var i=1; i<=10; i++)
if (typeof(params["selected"+i]) != "undefined") {
document.assigninput.elements["input"+i].selectedIndex=params["selected"+i];
}
}


function iactAssigninputDisabledWrite(input)
{
var params=new Query();
if ( (typeof(params["input"+input]) != "undefined") && (params["input"+input] != "") )
document.write(" "+params["input"+input]+" ");
}

