8e09c298-8ef2-4c32-bff4-c8108a35f9f1195c7575-c240-4707-8796-3ddc5e27e57aCustomFieldsSampleTrueanata636213640216100000636213735933049249636213735971400000TrueFalse9False0SurveyToGo.UserLogic.Creator.SurveyLogicTempl<?xml version="1.0" encoding="utf-16"?>
<UserLogicContents xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Items>
<HData>
<HTp>ehtQuestion</HTp>
<STp>estLast</STp>
<CTp>echtLast</CTp>
<QTp>eqhtExpression</QTp>
<Key>6</Key>
<Name>QuestionExpression_6</Name>
<Behv>ecsbDefault</Behv>
<QDep>
<int>1</int>
<int>2</int>
<int>3</int>
<int>5</int>
</QDep>
<CDep />
</HData>
<HData>
<HTp>ehtQuestion</HTp>
<STp>estLast</STp>
<CTp>echtLast</CTp>
<QTp>eqhtEnd</QTp>
<Key>4</Key>
<Name>QuestionEnd_4</Name>
<Behv>ecsbDefault</Behv>
<QDep>
<int>5</int>
</QDep>
<CDep />
</HData>
</Items>
<Source>// Question symbols
var Q_1 = null;var Q_2 = null;var Q_3 = null;var Q_4 = null;var Q_5 = null;var Q_6 = null;var Q_7 = null;var Q_8 = null;
function StartSurvey()
{
/*_@_SS_START_@*/
/*_@_SS_END_@*/
}
/*_@_USERCODE_START_@*/
function GetMainVersion (inVersion)
{
var retVal = "";
var versionSplit = inVersion.split(".");
if (versionSplit.length >= 3)
{
var retVal = versionSplit[2];
}
return retVal;
}
function isDeviceVersionUpdated (inUpdatedVersion)
{
var retVal = false;
var deviceVersion = GetMainVersion(DeviceVersion);
var mainVersion = GetMainVersion(inUpdatedVersion);
if (parseInt(mainVersion) <= parseInt(deviceVersion))
{
retVal = true;
}
return retVal
}
function GetChapterIdxFromName (inChapterName)
{
var retVal = -1;
var chapterInfos = GetAllChapters();
for(var i=0;i<chapterInfos.length;i++) {
if (chapterInfos[i].Name == inChapterName) {
retVal = chapterInfos[i].Idx;
break;
}
}
return retVal;
}
function dblSetDCBRRelationship(inQStatements,inQSubStatements){
var outText = "";
outText+= AnswerText(inQStatements,9) + "|" + AnswerText(inQSubStatements,9) + "|" + "9" + ";";
outText+= AnswerText(inQStatements,7) + "|" + AnswerText(inQSubStatements,7) + "|" + "7" + ";";
outText+= AnswerText(inQStatements,5) + "|" + AnswerText(inQSubStatements,5) + "|" + "5" + ";";
outText+= AnswerText(inQStatements,8) + "|" + AnswerText(inQSubStatements,8) + "|" + "8" + ";";
outText+= AnswerText(inQStatements,3) + "|" + AnswerText(inQSubStatements,3) + "|" + "3" + ";";
outText+= AnswerText(inQStatements,6) + "|" + AnswerText(inQSubStatements,6) + "|" + "6" + ";";
outText+= AnswerText(inQStatements,1) + "|" + AnswerText(inQSubStatements,1) + "|" + "1" + ";";
outText+= AnswerText(inQStatements,2) + "|" + AnswerText(inQSubStatements,2) + "|" + "2" + ";";
outText+= AnswerText(inQStatements,4) + "|" + AnswerText(inQSubStatements,4) + "|" + "4" + ";";
return outText;
}
function dblSetDCBRBrands(inQBrands,inQBrandsImages,intOrderArray){
var outText = "";
var i=1;
for(i=0;i<intOrderArray.length;i++){
if(Contains(inQBrands,intOrderArray[i])){
outText+= AnswerText(inQBrands,intOrderArray[i]) + "|" + AnswerText(inQBrandsImages,intOrderArray[i]) + "|" + intOrderArray[i] + ";"
}
}
return outText;
}
function dblSetDCBRTexts(inQInfoText,inQFinishText,inQFinishedInfo,inQQuestionText){
var outText = "";
outText = GetText(inQInfoText) + "|" + GetText(inQFinishText) + "|" + GetText(inQFinishedInfo) + "|" + GetText(inQQuestionText);
return outText;
}
function dblSetDCBRAnswers(inQ,inQVars){
//reading inQVars and setting up inQ (which is a grid)
var i=0;
var j=0;
var result;
var answerDCBR = new Array();
answerDCBR = stringSplit(inQVars,";")
var tmpAnswer = new Array();
for(i=0;i<answerDCBR.length;i++){
if(answerDCBR[i]!=""){
tmpAnswer = stringSplit(answerDCBR[i],"|")
result = SetAnswerChoice(inQ,intParse(tmpAnswer[1]),intParse(tmpAnswer[0]));
}
}
}
function dblValidateDCBR(inQ,inQVars){
//check no. of brands qualified for DCBR are all answered
var retVal = false;
var brandCount = NumOfSelectedChoices(inQ);
var answerDCBR = stringSplit(inQVars,";")
if(brandCount !=answerDCBR.length){
retVal = true;
}
return retVal;
}
function setAnswerByParentAnswers(inQTarget, inQidsParent)
{
var numOfQues = inQidsParent.length;
var numOfAnswers = Parent.GetAnswerCount(inQidsParent[0]);
var contained;
var i;
var j;
for (i=1;i<= numOfAnswers;i++) {
contained = false;
for (j=0; j<numOfQues;j++) {
contained = Parent.Contains(inQidsParent[j],i);
if (contained) {
break;
}
}
if (contained) {
dblSetSpecificAnswer(inQTarget, i,true);
}
}
}
function dblSelectConXBrands(inQ,BrandArray){
//This function setup 3 brands to inQ randomly or based on BrandArray
var BrandsToSet = new Array();
var BrandPosArray = CreateRandomArray(BrandArray.length);
var i=0;
if(BrandArray.length >0){
//Setup using brand array
for(i=0;i<BrandArray.length;i++){
BrandsToSet[i] = BrandArray[BrandPosArray[i]-1];
if(i>2){
break;
}
}
}
SetAnswer(inQ,BrandsToSet);
}
function dblSetConXXP1Brands(inQBrands,BrandOrder,BrandOrderQ){
var outText = "";
var i=1;
var brandArray = new Array();
var selectedBrandOrder = ""
brandArray = stringSplit(BrandOrder,",");
for(i=1;i<GetAnswerCount(inQBrands);i++){
if(Contains(inQBrands,intParse(brandArray[i-1]))){
selectedBrandOrder = selectedBrandOrder + brandArray[i-1] + ",";
outText+= "<span class='mrGridQuestionText'>" + AnswerText(inQBrands,intParse(brandArray[i-1])) + "</span>";
}
}
outText+= "<span class='mrGridQuestionText'>" + AnswerText(inQBrands,GetAnswerCount(inQBrands)) + "</span>";
SetAnswer(BrandOrderQ,selectedBrandOrder);
return outText;
}
function dblSetConXXPs(inQXPs,XP_Order){
var outText = "";
var i=1;
var XPOrder = new Array();
XPOrder = stringSplit(XP_Order,",");
for(i=1;i<=GetAnswerCount(inQXPs);i++){
if(Contains(inQXPs,XPOrder[i-1])){
outText+= "<span class='mrGridCategoryText'>" + AnswerText(inQXPs,XPOrder[i-1]) + "</span>";
if(i>2){
break;
}
}
}
return outText;
}
/*
dblSetConX_XP1Answers(inQ,inQVars,BrandOrder,XPOrder)
inQ = Question to setup based on the Global Vars setup by CQRP. inQ question is Multiple Response Grid
inQVars = Global Variable setup by CQRP. The format would be: 0|0;0|1;0|2;1|1;2|3
in 0|1; 0 is the Topic number and 1 is the answer number NOTE: This is not the topic index or the answer index. We'll have to match this with the BrandOrder and XPOrder
XPOrder=Stores the topic index in the order in which the topics are shown at CQRP
The format would be: 30,28,1
BrandOrder: Stores the brand index in the order in which brands (answers)are shown at CQRP
The format would be: 1,5,7
*/
function dblSetConX_XP1Answers(inQ,inQVars,BrandOrder,XPOrder){
//reading inQVars and setting up inQ (which is a grid)
var i=0;
var j=0;
var result;
var BrandArray = new Array();
//Split the brand array to get the array of brands shown
BrandArray = stringSplit(BrandOrder,",");
var XPArray = new Array();
//Split the Topic array (XPOrder) to get the array of topics shown
XPArray = stringSplit(XPOrder,",");
var answerXP1 = new Array();
//Split the answer Array to get answer given for each topic this will give answerXP1[0] = 0|1 answerXP1[1] = 0|2 etc.
answerXP1 = stringSplit(inQVars,";");
var AnsArray = new Array();
var k=0;
var tmpXP=0;
var tmpAnswer = new Array();
//clear previous answers
ClearAnswer(inQ);
for(i=0;i<answerXP1.length;i++){
if(answerXP1[i]!=""){
//Split the answer by | to get topic and answer (brand)
tmpAnswer = stringSplit(answerXP1[i],"|")
//If the topic is same for example 0|0;0|1 we'll keep on updating AnsArray. Once the Topic number is different, we'll set the answer of multi response grid
// Set the value of j=Topic number
if(j!=intParse(tmpAnswer[0]))
{
j=intParse(tmpAnswer[0]);
//As the topics are shown in random order, we are using XPArray[TopicNumber] where XPArray contains the actual topic index at TopicNumber Location
result = SetAnswerChoice(inQ,intParse(XPArray[tmpXP]),AnsArray);
k=0;
AnsArray = new Array();
}
if(intParse(tmpAnswer[1])==3){
//If the answer is none (which will always be the last answer. We'll set it here
AnsArray[k] = GetAnswerCount(inQ);
}
else
{
//Else setup the answer array with Actual brand index from BrandArray
AnsArray[k] = intParse(BrandArray[intParse(tmpAnswer[1])]);
}
k = k + 1;
tmpXP = intParse(tmpAnswer[0]);
}
}
// To handle the last iteration / topic
result = SetAnswerChoice(inQ,intParse(XPArray[tmpXP]),AnsArray);
}
function dblAskXP3(inQ){
var retVal=0;
var i=0;
for(i=1;i<=GetTopicCount(inQ);i++){
if(ContainsChoice(inQ,i,11)==false && IsTopicVisible(inQ,i)){
retVal=1;
break;
}
}
return retVal;
}
function dblSetConX_XP1_Selected(inQ,resultQ){
var tempArray = new Array();
var resultArray = new Array();
var i=0;
var j=0;
var k=0;
for(i=1;i<=GetTopicCount(inQ);i++){
if(IsTopicVisible(inQ,i)){
tempArray = GetAnswersChoice(inQ,i)
for(j=0;j<tempArray.length;j++){
resultArray[k]=tempArray[j];
k++;
}
}
}
SetAnswer(resultQ,resultArray);
}
function dblGetXPs(inQ,resultQ,brandIndex){
var i=0;
var j=0;
var resultArray = new Array();
for(i=1;i<=GetTopicCount(inQ);i++){
if(ContainsChoice(inQ,i,brandIndex) && IsTopicVisible(inQ,i)){
resultArray[j] = i;
j++;
}
}
SetAnswer(resultQ,resultArray);
}
function dblSetupGlobalVarsFromEmpty(inQ){
return GetText(inQ);
};
function dblfnRenderConXDemo(inQArray,delimChar){
//This function generates global variable to be used to draw ConX demo
var retVal="";
var i=1;
for(i=0;i<inQArray.length;i++){
if(i==11){
//setting up the vertical text
retVal+=AnswerText(inQArray[i],1) + delimChar + AnswerText(inQArray[i],2) + delimChar + AnswerText(inQArray[i],3) + delimChar + AnswerText(inQArray[i],4) + delimChar;
}
else if (i==12){
//setting up the horizontal text
retVal+=AnswerText(inQArray[i],1) + delimChar + AnswerText(inQArray[i],2) + delimChar + AnswerText(inQArray[i],3) + delimChar + AnswerText(inQArray[i],4) + delimChar;
}
else{
retVal+=GetText(inQArray[i]) + delimChar;
}
}
return retVal;
}
function dblSetRBXBrands(inQBrands,inQBrandsImages,intOrderArray){
var outText = "";
var i=0;
for(i=0;i<intOrderArray.length;i++){
if(Contains(inQBrands,intOrderArray[i])){
outText+= AnswerText(inQBrandsImages,intOrderArray[i]) + "|";
}
}
return outText;
}
function dblSetConXBrands(inQBrands,inQBrandsImages,intOrderArray){
var outText = "";
var i=0;
for(i=0;i<intOrderArray.length;i++){
if(Contains(inQBrands,intOrderArray[i])){
outText+= AnswerText(inQBrands,intOrderArray[i]) + "|" + AnswerText(inQBrandsImages,intOrderArray[i]) + "|" + intOrderArray[i] + ";"
}
}
return outText;
}
function dblValidateAnswers(inQArray,minAnsCount)
{
var retVal=false;
var ansCount=0;
var i=0;
for(i=0;i<inQArray.length;i++){
if(Answered(inQArray[i])){
ansCount+=1;
}
}
if(ansCount < minAnsCount){
retVal = true;
}
return retVal;
}
function dblSetRBXAnswers(inQVars,inBrandVars,inTargetQues){
//reading inQVars and setting up inQ (which is a grid)
var numOfQues = inTargetQues.length;
var i=0;
var j=0;
var answerRBX = stringSplit(inQVars,";");
var brandArray = stringSplit(inBrandVars,";");
var tmpAnswer = new Array();
var tmpBrand = new Array();
for(i=0;i<answerRBX.length;i++){
if(answerRBX[i]!=""){
tmpAnswer = stringSplit(answerRBX[i],"|")
tmpBrand = stringSplit(brandArray[i],"|")
//Set pos X
SetAnswerIter(inTargetQues[0], intParse(tmpBrand[2]),tmpAnswer[1]);
//Set pos Y
SetAnswerIter(inTargetQues[1],intParse(tmpBrand[2]),tmpAnswer[2]);
//Set % X
SetAnswerIter(inTargetQues[2],intParse(tmpBrand[2]),tmpAnswer[3]);
//Set % Y
SetAnswerIter(inTargetQues[3],intParse(tmpBrand[2]),tmpAnswer[4]);
}
}
}
function dblValidateRBX(inQVars,inQBrands){
var retVal = false;
var answerRBX = stringSplit(inQVars,";")
var i=0;
var numOfBrands=0;
for(i=0;i<answerRBX.length;i++){
if(answerRBX[i]!=""){
numOfBrands++;
}
}
if(numOfBrands!=NumOfSelectedChoices(inQBrands)){
retVal = true;
}
return retVal;
}
function dblSetXPAsked(inQ){
//Used to set LST_XP
var i=0;
var resultArray = new Array();
for(i=1;i<=GetAnswerCount(inQ);i++){
resultArray[i-1] = i;
}
SetAnswer(inQ,resultArray);
}
function dblsbPosReturn(GridQx,QGridy,QAsk,TypeAsk){
var xMax = 0;
var yMax = 0;
var yArray = new Array(GetAnswerCount(QAsk));
var xArray = new Array(GetAnswerCount(QAsk));
var ansArray = new Array();
var tempAnsArray1 = new Array();
var tempAnsArray2 = new Array();
var index;
var k=0;
var i=0;
var j=0;
var x=0;
var y=0;
var z=0;
for(i=0;i<yArray.length;i++){
yArray[i] = new Array(2);
xArray[i] = new Array(2);
}
//Clears answers
ClearAnswer(QAsk);
if(TypeAsk==2){
for(i=1;i<=GetAnswerCount(QAsk);i++){
if(AnsweredIter(GridQx,i) && AnsweredIter(QGridy,i) && AnswerIter(GridQx,i)>69 && AnswerIter(QGridy,i)>69){
if(AnswerIter(QGridy,i)>yMax){
yMax = AnswerIter(QGridy,i);
}
ansArray[k] = i;
yArray[k][0] = i;
yArray[k][1] = AnswerIter(QGridy,i);
xArray[k][0] = i;
xArray[k][1] = AnswerIter(GridQx,i);
k++;
}
}
//if more than 1 ans >69% i.e. k>1
if(k>1){
for(i=0;i<ansArray.length;i++){
if(yArray[i][1]>=yMax){
xMax = xArray[i][1];
tempAnsArray1[j] = ansArray[i];
j++;
}
}
if(j>1){
for(i=0;i<ansArray.length;i++){
for(y=0;y<tempAnsArray1.length;y++){
if(xArray[i][1]>=xMax && tempAnsArray1[y]==ansArray[i]){
tempAnsArray2[x] = tempAnsArray1[y];
x++;
}
}
}
if(x>1){
//more than 1 XP with highest rating
var finalBrandArray = RandomizeArray(tempAnsArray2);
SetAnswer(QAsk,finalBrandArray[0]);
}
else
{
SetAnswer(QAsk,tempAnsArray2[0]);
}
}
else{
SetAnswer(QAsk,tempAnsArray1);
}
}
else{
SetAnswer(QAsk,ansArray)
}
}
else{
for(i=1;i<=GetAnswerCount(QAsk);i++){
if(AnsweredIter(GridQx,i) && AnsweredIter(QGridy,i) && AnswerIter(GridQx,i)>50 && AnswerIter(QGridy,i)>50){
ansArray[k] = i;
k++;
}
}
SetAnswer(QAsk,ansArray);
}
}
function dblsbNegReturn(GridQx,QGridy,QAsk,TypeAsk){
var xMin = 0;
var yMax = 0;
var yArray = new Array(GetAnswerCount(QAsk));
var xArray = new Array(GetAnswerCount(QAsk));
var ansArray = new Array();
var tempAnsArray1 = new Array();
var tempAnsArray2 = new Array();
var index;
var k=0;
var i=0;
var j=0;
var x=0;
var y=0;
var z=0;
for(i=0;i<yArray.length;i++){
yArray[i] = new Array(2);
xArray[i] = new Array(2);
}
//Clears answers
ClearAnswer(QAsk);
if(TypeAsk==2){
for(i=1;i<=GetAnswerCount(QAsk);i++){
if(AnsweredIter(GridQx,i) && AnsweredIter(QGridy,i) && AnswerIter(GridQx,i)<31 && AnswerIter(QGridy,i)>69){
if(AnswerIter(QGridy,i)>yMax){
yMax = AnswerIter(QGridy,i);
}
ansArray[k] = i;
yArray[k][0] = i;
yArray[k][1] = AnswerIter(QGridy,i);
xArray[k][0] = i;
xArray[k][1] = AnswerIter(GridQx,i);
k++;
}
}
//if more than 1 ans >69% i.e. k>1
if(k>1){
for(i=0;i<ansArray.length;i++){
if(yArray[i][1]>=yMax){
xMin = xArray[i][1];
tempAnsArray1[j] = ansArray[i];
j++;
}
}
if(j>1){
for(i=0;i<ansArray.length;i++){
for(y=0;y<tempAnsArray1.length;y++){
if(xArray[i][1]<=xMin && tempAnsArray1[y]==ansArray[i]){
tempAnsArray2[x] = tempAnsArray1[y];
x++;
}
}
}
if(x>1){
//more than 1 XP with highest rating
var finalBrandArray = RandomizeArray(tempAnsArray2);
SetAnswer(QAsk,finalBrandArray[0]);
}
else
{
SetAnswer(QAsk,tempAnsArray2[0]);
}
}
else{
SetAnswer(QAsk,tempAnsArray1);
}
}
else{
SetAnswer(QAsk,ansArray)
}
}
else{
for(i=1;i<=GetAnswerCount(QAsk);i++){
if(AnsweredIter(GridQx,i) && AnsweredIter(QGridy,i) && AnswerIter(GridQx,i)<50 && AnswerIter(QGridy,i)>50){
ansArray[k] = i;
k++;
}
}
SetAnswer(QAsk,ansArray);
}
}
function dblGetBrandText(inQ){
var retVal="";
var i=0;
for(i=1;i<=GetAnswerCount(inQ);i++){
if(Contains(inQ,i)){
retVal = AnswerText(inQ,i);
}
}
return retVal;
}
function dblSetMultipleAnswer(inQ,outQ){
var i;
var j=0;
var AnswerArray = new Array();
for(i=1;i<=GetAnswerCount(inQ);i++){
if(Contains(inQ,i)){
AnswerArray[j] = i;
j++;
}
}
SetAnswer(outQ,AnswerArray);
}
function RunOnAndroidOnly()
{
if (!IsPlatform(32))
{
Prompt("The survey should only be run on Android devices");
ExecutionMgr.CancelSubject();
}
}
function IsSetMultipleAnswers(IndiceQuestao, InAnswers, InCheck) {
for (var j=0;j<InAnswers.length;j++) {
dblSetSpecificAnswer(IndiceQuestao, InAnswers[j], InCheck);
}
}
function dblCheckAudioAttachmentLength(inQ,lenToCheck){
var retVal = true;
var FileNameArray = new Array();
var i=0;
FileNameArray = GetAttachedFilesNames(inQ);
for(i=0;i<FileNameArray.length;i++){
Prompt(FileNameArray[i]);
if(GetRecordingLengthInSeconds(FileNameArray[i]) < lenToCheck){
retVal = false;
}
}
return retVal;
}
//################################ Prince ######################################
function MultiSetVisible(curQues,Qsoc,tick,start,end,e)
{
if(Contains(Qsoc,tick))
{
for(var i = start ; i<=end ;i++)
{
SetAnswerVisible(curQues,true,false,i)
}
}
}
function SetAnswerVisibleByCode(qIdx,inShow,code)
{
if(inShow==true)
{
var l = arguments.length-1
var i
for( i=2 ; i<=l ; i++)
SetAnswerVisible(qIdx,true,false,GetAnswerChoiceIdxByCode(qIdx,arguments[i]))
}
else
{
var l = arguments.length-1
var i
for( i=2 ; i<=l ; i++)
SetAnswerVisible(qIdx,false,false,GetAnswerChoiceIdxByCode(qIdx,arguments[i]))
}
}
function CheckIDPSU()
{
Vars["idInvRegEx"]="^......$";
if (!dblIsRegEx(Vars["idInvRegEx"],Answer(CurrQues)))
{
return true;
}
}
// ใช้สำหรับดึงอื่นๆที่พิมพ์ 5 บรรทัดมาไว้ในข้อปัจจุบัน
function SetOther(other,openEnd,start)
{
SetAnswerVisible(CurrQues, false, false, start,start+1,start+2,start+3,start+4);
if (ContainsOneOf(QRef(other),start))
{
var topic;
var answer;
for (topic = 1, answer = start; topic <= 5; answer++, topic++)
{
var text = AnswerChoice(QRef(openEnd), topic);
if (text != "")
{
SetAnswerVisible(CurrQues, true, false, answer);
SetAnswerTextFormat(CurrQues, answer, text);
}
}
}
}
function SetOtherV2(other,openEnd,start)
{
SetAnswerVisible(CurrQues, false, false, start,start+1,start+2,start+3,start+4);
if (ContainsOneOf(QRef(other),start))
{
var topic;
var answer;
for (topic = 1, answer = start+1; topic <= 5; answer++, topic++)
{
var text = AnswerChoice(QRef(openEnd), topic);
if (text != "")
{
SetAnswerVisible(CurrQues, true, false, answer);
SetAnswerTextFormat(CurrQues, answer, text);
}
}
}
}
function SetTopicOther(other,openEnd,start)
{
SetTopicVisible(CurrQues, false, false, start,start+1,start+2,start+3,start+4);
if (ContainsOneOf(QRef(other),start))
{
var topic;
var answer;
for (topic = 1, answer = start; topic <= 5; answer++, topic++)
{
var text = AnswerChoice(QRef(openEnd), topic);
if (text != "")
{
SetTopicVisible(CurrQues, true, false, answer);
SetTopicTextFormat(CurrQues, answer, text);
}
}
}
}function SetTopicOther2(other,openEnd,start)
{
SetTopicVisible(CurrQues, false, false, start,start+1,start+2,start+3,start+4);
if (ContainsOneOf(QRef(other),start))
{
var topic;
var answer;
for (topic = 1, answer = start+1; topic <= 5; answer++, topic++)
{
var text = AnswerChoice(QRef(openEnd), topic);
if (text != "")
{
SetTopicVisible(CurrQues, true, false, answer);
SetTopicTextFormat(CurrQues, answer, text);
}
}
}
}
// วิธีใช้ ถ้าหน้า 1 ตอบโค้ด 998 999 ContainsOneOfByCode(Qref(1),["998","999"])
function ContainsOneOfByCode(qIdx, codeArr)
{
var retVal = false;
for(var i=1; i <=codeArr.length; i++)
{
if(ContainsByCode(qIdx,codeArr[i-1]))
{
retVal = true;
break;
}
}
return retVal;
}
function ContainsByCode(qIdx, code)
{
var retVal = Contains(qIdx,GetAnswerChoiceIdxByCode(qIdx,code));
return retVal;
}
//เอ๋ยเอง ไป โชว์การ์ด MultiContainsOneOf([QRef(20),QRef(21)....],1)
function MultiContainsOneOf(QRefArr,Idx)
{
var retVal = false;
for(var i=1 ; i<=QRefArr.length ; i++)
{
if(Contains(QRefArr[i-1],Idx))
{
retVal = true
return retVal
}
}
return retVal
}
// การดึงคำตอบโดยเรียงลำดับจากความถี่ ใช้ได้แค่กรณีที่ index ที่1 คือ ไปบ่อยสุด จนถึง ไม่ไปเลย
function FilterFrequency(curr,qref)
{
for(var i = 1; i <= GetAnswerCount(CurrQues) ; i++)
{
if(ContainsOneOf(QRef(qref),i))
{
FilterAnswersByTopics(QRef(curr),QRef(qref),i)
break
}
}
}
//Rotate answer ตามหมายเลขแบบสอบถาม EX AnswerRotateByNo(QRef(QnaNumber),[Other,noanswer])
function AnswerRotateByNo(Qne,cons)
{
var countMod = GetAnswerCount(CurrQues) - cons.length
var newAnswers=new Array();
var t = Answer(Qne)%countMod
var k
if(t == 0)
{
t = countMod;
}
for(k = t ; k <= countMod ; k++ )
{
newAnswers.push(k)
}
if(newAnswers.length != countMod)
{
for(var j = 1 ; j < t ; j++ )
{
newAnswers.push(j)
}
//newAnswers.push(1)
}
for(var i = 0 ; i+1 <= cons.length ; i++)
newAnswers.push(cons[i])
RandomizeAnswers(CurrQues,newAnswers);
}
function SortRotateByNo(Qin,cons) // Rotate Answer By No
{
var newAnswers=new Array();
if(Answer(Qin) % 2 == 1)
{
for(var i = 1; i <= GetAnswerCount(CurrQues) ; i++)
{
newAnswers.push(i);
}
RandomizeAnswers(CurrQues,newAnswers);
}
if(Answer(Qin) % 2 == 0)// sort descending
{
for(var i = GetAnswerCount(CurrQues)-cons.length ; i >= 1 ; i--)
{
newAnswers.push(i);
}
for(var i = 0 ; i+1 <= cons.length ; i++)
newAnswers.push(cons[i])
RandomizeAnswers(CurrQues,newAnswers);
}
}
function ConvertToDp(a1,a2)
{
for(var j = 0; j <=GetAnswerCount(QRef(a1));j++)
{
for (var i=0; i <=GetAnswerCount(QRef(a2)); i++)
{
if (ContainsOneOf(QRef(a1+i),j+1 ))
{
dblSetSpecificAnswer(QRef(a2+j),i+1,true);
}
}
}
}
function SetOsf(CurrQuee,QSouce,AnswerIndex)
{
var l = arguments.length-1
var i
for( i=2 ; i<=l ; i++)
SetAnswerText(CurrQuee,arguments[i],AdditionalAnswerText(QSouce,arguments[i]))
}
function SetOsfTopic(CurrQuee,QSouce,AnswerIndex)
{
var l = arguments.length-1
var i
for( i=2 ; i<=l ; i++)
SetTopicText(CurrQuee,arguments[i],AdditionalAnswerText(QSouce,arguments[i]))
}
function FilterAnswersByAnswersIncTopics(a)
{
FilterAnswersByAnswers(CurrQues,QRef(a))
var b = getNet()
var Ans = GetAnswers(a)
b[b.length] = GetAnswerCount(a)+1
for(var j = 0 ; j<=Ans.length ; j++)
for(var i = 0 ; i<=b.length-2 ; i++)
{
if(Ans[j]>b[i] && Ans[j]<b[i+1])
{
SetAnswerVisible(CurrQues,true,false,b[i])
}
}
}
function getNet()
{
var Net = []
var q=0
for(var i = 1 ; i <= GetAnswerCount(CurrQues) ; i++)
{
if(AnswerCode(CurrQues,i)=="0")
{
Net[q] = i
q++
}
}
return Net
}
//################################ End Prince ######################################
function dblToJSArray(inArray){
var retVal = new Array();
for(var i=0; i<inArray.length; i++){
retVal.push(inArray[i]);
}
return retVal;
}
function dblColorFromRGB(red, green, blue){
return (255<<24)+ (red<<16) + (green<<8) + blue;
}
function dblDistanceFromGPSFence (fenceLat, fenceLon)
{
var pi = Math.PI;
var fenceLatInRad=fenceLat* pi / 180;
var fenceLonInRad=fenceLon* pi / 180;
var targetLatInRad = GetGPSLocation().Latitude * pi / 180;
var targetLonInRad = GetGPSLocation().Longitude * pi / 180;
var dist = Math.acos(Math.sin(targetLatInRad) * Math.sin(fenceLatInRad) + Math.cos(targetLatInRad) * Math.cos(fenceLatInRad) * Math.cos(targetLonInRad - fenceLonInRad)) * 6371;
return dist;
}
function dblIsInGPSFence (fenceLat, fenceLon, distInKM)
{
var dist = dblDistanceFromGPSFence(fenceLat, fenceLon);
var retVal = false;
if(dist<distInKM){
retVal=true;}
else{
retVal=false;
}
return retVal;
}
function dblDistanceBetweenTwoLocations (firstLat, firstLon, secondLat, secondLon)
{
var pi = Math.PI;
var firstLatInRad=firstLat* pi / 180;
var firstLonInRad=firstLon* pi / 180;
var targetLatInRad = secondLat * pi / 180;
var targetLonInRad = secondLon * pi / 180;
var dist = Math.acos(Math.sin(targetLatInRad) * Math.sin(firstLatInRad) + Math.cos(targetLatInRad) * Math.cos(firstLatInRad) * Math.cos(targetLonInRad - firstLonInRad)) * 6371;
return dist;
}
function dblSumNumericGrid(inQ)
{
var retVal=0;
var numOfTopics=GetTopicCount(inQ);
var i;
for(i=1; i<=numOfTopics; i++)
{
if (IsTopicVisible(inQ,i)) {
retVal+=AnswerChoice(inQ,i);
}
}
return retVal;
}
function dblContainsOneOf(inQTarget,inAnswers)
{
var retVal = false;
var numOfAnswers = inAnswers.length;
var i;
for (i=0;i< numOfAnswers;i++) {
if (Contains(inQTarget,inAnswers[i])) {
retVal = true;
break;
}
}
return retVal;
}
//function dblContainsAll(inQTarget,inAnswers)
//{
// var retVal = true;
// var numOfAnswers = arguments.length-1;
// var i;
// for (i=0;i< numOfAnswers;i++) {
// retVal = retVal && Contains(inQTarget,arguments[i+1]);
// }
// return retVal;
//}
function dblContainsAllOf(inQTarget,inAnswers)
{
var retVal = true;
var numOfAnswers = inAnswers.length;
var i;
for (i=0;i< numOfAnswers;i++) {
retVal = retVal && Contains(inQTarget,inAnswers[i]);
}
return retVal;
}
function dblNumOfTopicsContains(inQ, inValueToCheck)
{
var retVal = 0;
var i=0;
for (i=1; i<=GetTopicCount(inQ);i++){
if (IsTopicVisible(inQ,i) && AnswerChoice(inQ,i) == inValueToCheck) {
retVal++;
}
}
return retVal;
}
function dblNumOfTopicsContainsChoice(inQ, inValueToCheck)
{
var retVal = 0;
var i=0;
for (i=1; i<=GetTopicCount(inQ);i++){
if (IsTopicVisible(inQ,i) && ContainsChoice(inQ,i,inValueToCheck)) {
retVal++;
}
}
return retVal;
}
function dblNumOfIterContains(inQ, inValueToCheck)
{
var retVal = 0;
var i=0;
for (i=1; i<IterationIndex;i++){
if (ContainsIter(inQ,inValueToCheck,i)) {
retVal++;
}
}
return retVal;
}
function dblSetSpecificTopic(inQ, inTopicIndex, inValue)
{
var curTopics = GetTopicCount(inQ);
var newAnswers=new Array();
var newArIdx=0;
var i;
for (i=0;i< curTopics;i++) {
var actualTopic = i+1;
if (actualTopic == inTopicIndex) {
newAnswers[i] = inValue;
}
else {
newAnswers[i] = AnswerChoice(inQ,actualTopic);
}
}
SetAnswer(inQ,newAnswers);
}
function dblSetSpecificTopicChoice(inQ, inTopicIndex, inValue)
{
var curTopics = GetTopicCount(inQ);
var newAnswers=new Array();
newAnswers.push(inValue);
var i;
var ansArr = GetAnswersChoice(inQ, inTopicIndex);
for (i=0;i < ansArr.length;i++)
{
newAnswers.push(ansArr[i]);
}
SetAnswerChoice(inQ, inTopicIndex, newAnswers);
}
function dblSetSpecificAnswer(inQ, inAnswerIdx, inChecked)
{
var curAnswers = GetAnswers(inQ);
var newAnswers=new Array();
var newArIdx=0;
var i;
for (i=0;i< curAnswers.length;i++) {
if (curAnswers[i] != inAnswerIdx) {
newAnswers[newArIdx] = curAnswers[i];
newArIdx++;
}
}
if (inChecked) {
newAnswers[newArIdx] = inAnswerIdx;
}
if (newAnswers.length > 0) {
SetAnswer(inQ,newAnswers);
}
else {
ClearAnswer(inQ);
}
}
function dblSetAnswersByAnswers(inQTarget,inQids)
{
var numOfQues = inQids.length;
var numOfAnswers = GetAnswerCount(inQids[0]);
var i;
for (i=1;i<= numOfAnswers;i++) {
var contained = false;
var j;
for (j=0; j<numOfQues;j++) {
contained = Contains(inQids[j],i);
if (contained) {
break;
}
}
if (contained) {
dblSetSpecificAnswer(inQTarget, i,true);
}
}
}
function dblSetAnswersByAnswersEx (inQTarget,inQids,inExcludeHiddenTargetAnswers)
{
var numOfQues = inQids.length;
var numOfAnswers = GetAnswerCount(inQids[0]);
var i;
// go over all answers and for each check if it exists in the source questions
for (i=1;i<= numOfAnswers;i++) {
var contained = false;
var j;
// go over all source questions and check if the answer is checked
for (j=0; j<numOfQues;j++) {
contained = Contains(inQids[j],i);
if (contained) {
break;
}
}
// in case it was contained check if need to add to target question
if (contained) {
var addAnswer = true;
if ((inExcludeHiddenTargetAnswers) && !IsAnswerVisible(inQTarget,i)) {
addAnswer = false;
}
if (addAnswer) {
dblSetSpecificAnswer(inQTarget, i,true);
}
}
}
}
function dblSumOfTopics (inQuesIdx)
{
var retVal = 0;
var i;
var numOfTopics = GetTopicCount(inQuesIdx);
for (i=0;i<numOfTopics;i++) {
var currTopic = i+1;
if (IsTopicVisible (inQuesIdx, currTopic)) {
var currValue = AnswerChoice(inQuesIdx, currTopic);
if (currValue != -99999) {
retVal += currValue;
}
}
}
return retVal;
}
function dblFormatNumberToCurrency(num) {
var retVal = "";
var num = num.toString().replace(/\$|\,/g,'');
if(isNaN(num))
num = "0";
var sign = (num == (num = Math.abs(num)));
num = Math.floor(num*100+0.50000000001);
var cents = num%100;
num = Math.floor(num/100).toString();
var addZero = "";
if(cents<10) {
addZero = "0";
}
for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++) {
num = num.substring(0,num.length-(4*i+3))+','+num.substring(num.length-(4*i+3));
}
retVal = (((sign)?'':'-') + '$' + num + '.' +addZero+ cents)
return retVal;
}
function dblToFloat(inNumber)
{
var retVal = parseFloat(inNumber.toString().replace(",", "."));
return retVal;
}
function dblSetAnswerVisible(inQTarget,inValue,inReset,inAnswers)
{
var retVal = false;
var numOfAnswers = inAnswers.length;
var i;
if (inReset) {
SetAnswerVisible(inQTarget,true);
}
for (i=0;i< numOfAnswers;i++) {
SetAnswerVisible(inQTarget, inAnswers[i], inValue);
}
return retVal;
}
function dblContainsByText(inQIdx, inText)
{
var retVal = false;
var i=0;
for (i=0; i<GetAnswerCount(inQIdx); i++){
var idx = i+1;
var text = AnswerText(inQIdx,idx);
if (text == inText) {
if (Contains(inQIdx,idx)) {
retVal = true;
break;
}
}
}
return retVal;
}
function dblFilterAnswersByAnswersByText (inTargetQ, inShow,inSourceQ)
{
SetAnswerVisible(inTargetQ,!inShow);
var i =0;
for (i=0; i<GetAnswerCount(inTargetQ);i++){
var idx = i+1;
var text = AnswerText(inTargetQ,idx);
if (dblContainsByText(inSourceQ,text)) {
SetAnswerVisible(inTargetQ,idx,inShow);
}
}
return true;
}
function dblFilterTopicsByAnswersByText (inTargetQ, inShow, inSourceQ)
{
SetTopicVisible(inTargetQ,!inShow);
var i=0;
for (i=0; i<GetTopicCount(inTargetQ); i++){
var idx = i+1;
var text = GetTopicOriginalText(inTargetQ,idx);
if (dblContainsByText(inSourceQ,text)) {
SetTopicVisible(inTargetQ,idx,inShow);
}
}
return true;
}
function dblGetSubjectStoreRow(inStoreName,inIDColumnName,inID)
{
var retVal = null;
try {
var table = GetTableFromStore(inStoreName,"","@@"+inIDColumnName+"='"+inID+"'","");
if (table != null && table.RowCount >0) {
var row = table[0];
retVal = row;
}
}
catch(err)
{
retVal = null;
}
return retVal;
}
function dblIsRegEx (pattern,value) {
var pattern = new RegExp(pattern);
return pattern.test(value);
}
function dblDateToSQLDate(inDate)
{
var retVal = "";
retVal = inDate.Year+"-"+inDate.Month+"-"+inDate.Day;
return retVal;
}
function dblOrderArray(inOrderArray, inDataArray)
{
var retVal = CreateRandomArray(inOrderArray.length);
var i = 0;
for (i = 0; i < inOrderArray.length; i++) {
retVal[i] = inDataArray[inOrderArray[i]-1];
}
return retVal;
}
function dblRespondentID ()
{
var retVal = "".concat("D", SID, "-", DeviceIndex);
return retVal;
}
/*_@_USERCODE_END_@*/
//_@_AddHandler_@{ Begin Add Handlers
//_@_AddHandler_@} End Add Handlers
//_@_HandlerZone_@{
function QuestionEnd_4()
{
var age = Answer(CurrQues);
if (age < 19) (SetAnswer (QRef(6),1));
if (age >= 20 && age <= 40) (SetAnswer (QRef(6),2));
if (age >= 41 && age <= 65) (SetAnswer (QRef(6),3));
if (age > 65) (SetAnswer (QRef(6),4));
}
function QuestionExpression_6()
{
SetInterviewExtraField(eInterviewExtraField.CustomDataInt1, Answer(QRef(2)));
SetInterviewExtraField(eInterviewExtraField.CustomData1, AnswerText(QRef(3),Answer(QRef(3))));
SetInterviewExtraField(eInterviewExtraField.CustomData2, AnswerText(QRef(4),Answer(QRef(4))));
SetInterviewExtraField(eInterviewExtraField.CustomData3, AnswerText(QRef(6),Answer(QRef(6))));
}
//_@_HandlerZone_@}
function JSDBLInitAllScript()
{
}var eJumpQuestionResult = {ejqrNext:0, ejqrSubmit:1,ejqrCancel:2,ejqrFilter:3,ejqrNone:4,ejqrIndex:5,ejqrChapter:6};
var ePlatform = {None:0, Web:1, PC:2, PDA:4, MobileWeb:8, SmartPhone:16, Android:32, AllWindows:31, AllJSEnabled: 34, All:63};
var eAttachmentSource = {easDefault:0};
var eAskButtons = {OKCancel:0, YesNoCancel:1, YesNo:2};
var eAskResult = {None:0, OK:1, Yes:2, No:3, Cancel:4};
var eQuotaFilledResult = {Default:0,Filter:1,Cancel:2,Nothing:3};
var eExtraLabel = { MatrixLower:0, MatrixMiddle:1, MatrixUpper:2, MatrixIrrelevant:3, ScaleLower:4, ScaleMiddle:5, ScaleUpper:6, CountersTotal:7,CountersRemaining:8, NumericGridTotal:9, NumericGridRemaining:10 };
var eFontSize = {XSmall:-4,Smaller:-2,Small:-1,Regular:0,Large:2,Largest:8,XLarge:14};
var eULQuestionType = {eqtYesNo: 0,
eqtAmerican: 1,
eqtNumeric: 2,
eqtFreeText: 3,
eqtMultiSelect: 4,
eqtRating: 5,
eqtScale: 6,
eqtMatrix: 7,
eqtMultiTopics: 8,
eqtNoQuestion: 9,
eqtDateTime: 10,
eqtCounters: 11,
eqtStopper: 12,
eqtMassiveMultiSelect: 13,
eqtExpression: 14,
eqtMultiText: 15,
eqtMultiNumeric: 16,
eqtMultimedia: 17,
eqtMultiTopicsSelect: 18,
eqtGPSQuestion: 19,
eqtListSource: 20,
eqtPositionTopicsOnImage: 21,
eqtNumOfTypes: 22};
var eRenderGridAlignment = {Top: 0,
Center: 1,
Bottom: 2};
var eInterviewExtraField = {AttemptsPerCompletedInterview: 0,
AdherenceToMethodology: 1,
CustomData1: 2,
CustomData2: 3,
CustomData3: 4,
CustomData4: 5,
CustomData5: 6,
CustomData6: 7,
CustomDataInt1: 8,
CustomDataInt2: 9,
CustomDataInt3: 10,
CustomDataInt4: 11,
CustomDataInt5: 12,
CustomDataInt6: 13,
InterviewStopComment: 14};
</Source>
</UserLogicContents>FalseFalseFalse-101.32.0.0AAEAAAD/////AQAAAAAAAAAMAgAAAEdVc2VyTG9naWNDcmVhdG9yLCBWZXJzaW9uPTEuMC4xLjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAKVN1cnZleVRvR28uVXNlckxvZ2ljLkNyZWF0b3IuQXNzZW1ibHlEYXRhEAAAAAZtVGFibGUNbVN1cnZleUNvbnN0cw9tU3VydmV5U25pcHBldHMNbUNoYXB0ZXJUYWJsZQ1tTGFzdEJ1Y2tldElEEW1MYXN0TWV0YUJ1Y2tldElED21TdXJ2ZXlJbml0Q29kZRBtU3VydmV5QmxvY2tDb2RlEW1MYXN0TGlzdFNvdXJjZUlEE21MYXN0Q3VzdG9tQWN0aW9uSUQHbUZsYXZvcg5tVXNlR2xvYmFsQ29kZQttVXNlT3JnQ29kZQ5tU3RyaWN0SlNDaGVjaxdtTGFzdEF0dGFjaG1lbnRTb3VyY2VJRA5tU3VydmV5TmF2Q29kZQMDAwMAAAEBAAAEAAAAAAEeU3lzdGVtLkNvbGxlY3Rpb25zLkhhc2h0YWJsZVtdHFN5c3RlbS5Db2xsZWN0aW9ucy5IYXNodGFibGUeU3lzdGVtLkNvbGxlY3Rpb25zLkhhc2h0YWJsZVtdHlN5c3RlbS5Db2xsZWN0aW9ucy5IYXNodGFibGVbXQgICAgkU3VydmV5VG9Hby5Vc2VyTG9naWMuQ3JlYXRvci5lRmxhdm9yAgAAAAEBAQgCAAAACQMAAAAJBAAAAAkFAAAACQYAAAABAAAAAgAAAAYHAAAAAAkHAAAAAQAAAAEAAAAF+P///yRTdXJ2ZXlUb0dvLlVzZXJMb2dpYy5DcmVhdG9yLmVGbGF2b3IBAAAAB3ZhbHVlX18ACAIAAAACAAAAAQEBAQAAAAkHAAAABwMAAAAAAQAAAAYAAAADHFN5c3RlbS5Db2xsZWN0aW9ucy5IYXNodGFibGUJCQAAAAkKAAAACQsAAAAJDAAAAAkNAAAACQ4AAAAEBAAAABxTeXN0ZW0uQ29sbGVjdGlvbnMuSGFzaHRhYmxlBwAAAApMb2FkRmFjdG9yB1ZlcnNpb24IQ29tcGFyZXIQSGFzaENvZGVQcm92aWRlcghIYXNoU2l6ZQRLZXlzBlZhbHVlcwAAAwMABQULCBxTeXN0ZW0uQ29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0ZXJ2aWV3RXh0cmFGaWVsZChlSW50ZXJ2aWV3RXh0cmFGaWVsZC5DdXN0b21EYXRhMywgQW5zd2VyVGV4dChRUmVmKDYpLEFuc3dlcihRUmVmKDYpKSkpOwAFRQAAACtTdXJ2ZXlUb0dvLlVzZXJMb2dpYy5DcmVhdG9yLlF1ZXN0aW9uQWN0aW9uBQAAABlRdWVzdGlvbkluZm8rbVF1ZXN0aW9uSWR4FlF1ZXN0aW9uSW5mbyttSGFzRXJyb3IiUXVlc3Rpb25JbmZvK21RdWVzdGlvbkRlcGVuZGVuY2llcyFRdWVzdGlvbkluZm8rbUNoYXB0ZXJEZXBlbmRlbmNpZXMGQWN0aW9uAAADAwEIARxTeXN0ZW0uQ29sbGVjdGlvbnMuQXJyYXlMaXN0HFN5c3RlbS5Db2xsZWN0aW9ucy5BcnJheUxpc3QCAAAABAAAAAAJSQAAAAlKAAAABksAAADdAQl2YXIgYWdlID0gQW5zd2VyKEN1cnJRdWVzKTsNCglpZiAoYWdlIDwgMTkpIChTZXRBbnN3ZXIgKFFSZWYoNiksMSkpOw0KCWlmIChhZ2UgPj0gMjAgJiYgYWdlIDw9IDQwKSAoU2V0QW5zd2VyIChRUmVmKDYpLDIpKTsNCglpZiAoYWdlID49IDQxICYmIGFnZSA8PSA2NSkgKFNldEFuc3dlciAoUVJlZig2KSwzKSk7DQoJaWYgKGFnZSA+IDY1KSAoU2V0QW5zd2VyIChRUmVmKDYpLDQpKTsJBEYAAAAcU3lzdGVtLkNvbGxlY3Rpb25zLkFycmF5TGlzdAMAAAAGX2l0ZW1zBV9zaXplCF92ZXJzaW9uBQAACAgJTAAAAAQAAAABAAAAAUcAAABGAAAACU0AAAAAAAAAAAAAAAFJAAAARgAAAAlOAAAAAQAAAAMAAAABSgAAAEYAAAAJTQAAAAAAAAAAAAAAEEwAAAAEAAAACAgBAAAACAgCAAAACAgDAAAACAgFAAAAEE0AAAAAAAAAEE4AAAAEAAAACAgFAAAADQML-1412726297721-111196011-1-165792-1-1-10-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