@@ -50,8 +50,8 @@ function auto_mode() {
answers = document . getElementsByClassName ( 'categories' ) [ 1 ] ;
if ( test && answers ) fill _pronunciation ( test , answers ) ;
//text input
test = document . getElementsByTag Name ( 'input' ) ;
answers = document . getElementsByTag Name ( 'b ' ) ;
test = document . getElementsByClass Name ( 'inputBox ' ) ;
answers = document . getElementsByClass Name ( 'correctAnsDiv ' ) ;
if ( test && answers ) fill _input ( test , answers ) ;
//editDiv
test = document . getElementsByClassName ( 'editableDiv' ) ;
@@ -77,11 +77,14 @@ function fill_selectbox(test,answers) {
function fill _input ( test , answers ) {
var test _arr = Array . prototype . slice . call ( test ) ;
var answers _arr = Array . prototype . slice . call ( answers ) ;
var txt _answers _arr = [ ] ;
if ( answers _arr && test _arr ) answers _arr . forEach ( function ( item , i ) {
if ( test _arr [ i ] )
if ( test _arr [ i ] . getAttribute ( "type" ) !== "radio" ) {
test _arr [ i ] . setAttribute ( "class" , "inputBox ng-scope ng-valid ng-dirty" ) ;
test _arr [ i ] . value = item . innerHTML + "-" ;
txt _answers _arr = push _answer _b ( item . getElementsByClassName ( "showAnswersentenseClass" ) [ 0 ] , txt _answers _arr ) ;
} ) ;
if ( answers _arr && test _arr ) test _arr . forEach ( function ( item , i ) {
if ( item . getAttribute ( "type" ) !== "radio" && item . getAttribute ( "class" ) !== "inputBox ng-scope ng-valid ng-dirty" ) {
item . setAttribute ( "class" , "inputBox ng-scope ng-valid ng-dirty" ) ;
item . value = txt _answers _arr [ i ] + "-" ; //.innerHTML + "-";
if ( init === 0 ) alert ( "Н е забудьте убрать знак '-' в каждом задании" ) ;
init = 1 ;
}
@@ -96,8 +99,8 @@ function fill_radio(test,answers) {
var text _answers _arr = Array . prototype . slice . call ( answers _arr [ i ] . getElementsByTagName ( 'b' ) ) ;
var answer = "" ;
if ( text _answers _arr ) text _answers _arr . forEach ( function ( item1 ) {
if ( item1 . innerHTML . search ( /[a-zA-Z]/ ) === - 1 ) answer = answer . substring ( 0 , answer . length - 1 ) ;
answer += item1 . innerHTML . replace ( /(^\s*)|(\s*)$/g , '' ) ;
if ( ! item1 . innerHTML . search ( /[a-zA-Z]/ ) === - 1 ) answer = answer . substring ( 0 , answer . length - 1 )
if ( item1 . innerHTML !== '-' ) answer += ' ' ;
} ) ;
answer = answer . replace ( /(^\s*)|(\s*)$/g , '' ) ;
@@ -153,20 +156,31 @@ function fill_phrases(test,answers) {
var test _arr = Array . prototype . slice . call ( test ) ;
var answers _arr = Array . prototype . slice . call ( answers ) ;
if ( answers _arr && test _arr ) answers _arr . forEach ( function ( item , i ) {
var lil = 0 ;
var text _answers _arr = Array . prototype . slice . call ( answers _arr [ i ] . getElementsByTagName ( 'b' ) ) ;
var a = "" ;
if ( text _answers _arr ) text _answers _arr . forEach ( function ( item1 ) { a += item1 . innerHTML } ) ;
if ( text _answers _arr ) text _answers _arr . forEach ( function ( item1 ) {
if ( item1 . innerHTML . search ( /[a-zA-Z]/ ) === - 1 ) a = a . substring ( 0 , a . length - 1 ) ;
a += item1 . innerHTML . replace ( /(^\s*)|(\s*)$/g , '' ) ;
if ( item1 . innerHTML !== '-' ) a += ' ' ;
} ) ;
a = a . replace ( /(^\s*)|(\s*)$/g , '' ) ;
if ( text _test _choises ) text _test _choises . forEach ( function ( item , j ) {
if ( item . innerHTML === a && test _choises [ j ] . getAttribute ( "class" ) !== "dragger draggable ng-scope ui-draggable cloneDropped opacityDiv" ) {
test _choises [ j ] . setAttribute ( "class" , "dragger draggable ng-scope ui-draggable cloneDropped opacityDiv" ) ;
var b = test _choises [ j ] . cloneNode ( true ) ;
test _arr [ i ] . append ( b ) ;
test _arr [ i ] . setAttribute ( "style" , b . getAttribute ( "style" ) ) ;
test _arr [ i ] . setAttribute ( "class" , "drop-dest droppable-Item all-items-drop dropped-items ui-droppable droppableWhiteBG droppableTransparentBG" ) ;
b . setAttribute ( "class" , "dragger draggable ng-scope ui-draggable cloneDropped clone" ) ;
b . setAttribute ( "style" , b . getAttribute ( "style" ) + "position: relative; left: 0px; top: 0px;" ) ;
if ( item . innerHTML . includes ( a ) ) {
var b = item . innerHTML . replace ( a , '' ) ;
if ( b . search ( /[a-zA-Z]/ ) === - 1 )
if ( lil === 0 && test _choises [ j ] . getAttribute ( "class" ) !== "dragger draggable ng-scope ui-draggable cloneDropped opacityDiv" ) {
test _choises [ j ] . setAttribute ( "class" , "dragger draggable ng-scope ui-draggable cloneDropped opacityDiv" ) ;
var b = test _choises [ j ] . cloneNode ( true ) ;
test _arr [ i ] . append ( b ) ;
test _arr [ i ] . setAttribute ( "style" , b . getAttribute ( "style" ) ) ;
test _arr [ i ] . setAttribute ( "class" , "drop-dest droppable-Item all-items-drop dropped-items ui-droppable droppableWhiteBG droppableTransparentBG" ) ;
b . setAttribute ( "class" , "dragger draggable ng-scope ui-draggable cloneDropped clone" ) ;
b . setAttribute ( "style" , b . getAttribute ( "style" ) + "position: relative; left: 0px; top: 0px;" ) ;
lil = 1 ;
}
}
} ) ;
} ) ;
}
@@ -187,4 +201,46 @@ function fill_editable(test,answers) {
if ( ! answers _arr [ i ] . innerHTML . includes ( "No change" ) )
item . innerHTML = answers _arr [ i ] . innerHTML . replace ( /<[^>]+>/g , '' ) ;
} ) ;
}
//Найти ответы в строке(для inputBox)
function push _answer _b ( answers , answers _arr ) {
if ( answers ) {
var txt = answers . innerHTML + " " ;
var answer = "" ;
var mode = 0 ;
var i = 0 ;
for ( var i = 0 ; i < txt . length ; i ++ ) {
var a = txt [ i ] ;
switch ( mode ) {
case 0 :
if ( a === "<" ) {
var b = txt . substring ( i , txt . length ) ;
if ( b . startsWith ( "<b>" ) ) {
mode = 2 ;
}
}
break ;
case 1 :
if ( a === "<" ) {
var b = txt . substring ( i , txt . length ) ;
if ( b . startsWith ( "</b>" ) ) {
mode = 0 ;
if ( ! b . startsWith ( "</b><" ) ) {
answer = answer . replace ( /(^\s*)|(\s*)$/g , '' ) ;
answers _arr . push ( answer ) ;
answer = "" ;
}
}
}
else answer += a ;
break ;
case 2 :
if ( a === ">" ) {
mode = 1 ;
}
break ;
}
}
}
return answers _arr ;
}