function hide(id) {
    $(id).css('display', 'none');
}
function show(id) {
    $(id).css('display', 'inherit');
}

function getURLParameter(name) {
    return decodeURI(
            (RegExp(name + '=' + '(.+?)(&|$)').exec(location.search) || [, null])[1]
            );
}

function getIntro() {
    var iNrtRoJs = introJs();
    iNrtRoJs.setOptions({
        nextLabel: "Næste",
        prevLabel: "Tilbage",
        skipLabel: "Afbryd",
        showStepNumbers: false,
        doneLabel: "Afslut"
    });
    return iNrtRoJs;
}

var introJsMemory;
var pageHelp;
function startIntro(intro) {
    if (introJsMemory != null) {
        introJsMemory.exit();
    }
    introJsMemory = intro;
    introJsMemory.start();
}

function initIcefacesLocales() {
    // Danish initialization
    ice.ace.locales['da'] = {
        closeText: 'Luk',
        prevText: 'Forrige',
        nextText: 'Næste',
        currentText: 'I dag',
        monthNames: ['Januar', 'Februar', 'Marts', 'April', 'Maj', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'December'],
        monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'Maj', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dec'],
        dayNames: ['Søndag', 'Mandag', 'Tirsdag', 'Onsdag', 'Torsdag', 'Fredag', 'Lørdag'],
        dayNamesShort: ['Søn', 'Man', 'Tir', 'Ons', 'Tor', 'Fre', 'Lør'],
        dayNamesMin: ['Sø', 'Ma', 'Ti', 'On', 'To', 'Fr', 'Lø'],
        weekHeader: 'Uge',
        dateFormat: 'dd/mm/yy',
        firstDay: 1,
        isRTL: false,
        showMonthAfterYear: false,
        yearSuffix: '',
        timeOnlyTitle: 'Vælg tidspunkt',
        timeText: 'Klokken:',
        hourText: 'Time',
        minuteText: 'Minut',
        secondText: 'Sekund',
        millisecText: 'Millisekund',
        timezoneText: 'Tidszone'
    };
    ice.ace.locales['fr'] = {
        closeText: 'Fermer',
        prevText: 'Précédent',
        nextText: 'Suivant',
        currentText: 'Courant',
        monthNames: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'],
        monthNamesShort: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'],
        dayNames: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi'],
        dayNamesShort: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'],
        dayNamesMin: ['Di', 'Lu', 'Ma', 'Me', 'Je', 'Ve', 'Sa'],
        weekHeader: 'Sm',
        dateFormat: 'dd/mm/yy',
        firstDay: 1,
        isRTL: false,
        showMonthAfterYear: false,
        yearSuffix: '',
        timeOnlyTitle: 'Choisir le Temps',
        timeText: 'Temps',
        hourText: 'Heure',
        minuteText: 'Minute',
        secondText: 'Second',
        millisecText: 'Milliseconde',
        timezoneText: 'Fuseau Horaire'
    };
    // Spanish initialization
    ice.ace.locales['es'] = {
        closeText: 'Cerrar',
        prevText: 'Previo',
        nextText: 'Próximo',
        currentText: 'Corriente',
        monthNames: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'],
        monthNamesShort: ['ene', 'feb', 'mar', 'abr', 'may', 'jun', 'jul', 'ago', 'sep', 'oct', 'nov', 'dic'],
        dayNames: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', 'viernes', 'sábado'],
        dayNamesShort: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'],
        dayNamesMin: ['Do', 'Lu', 'Ma', 'Mi', 'Ju', 'Vi', 'Sá'],
        weekHeader: 'Sm',
        dateFormat: 'dd/mm/yy',
        firstDay: 1,
        isRTL: false,
        showMonthAfterYear: false,
        yearSuffix: '',
        timeOnlyTitle: 'Elige tiempo',
        timeText: 'Tiempo',
        hourText: 'Hora',
        minuteText: 'Minuto',
        secondText: 'Segundo',
        millisecText: 'Milisegundo',
        timezoneText: 'Huso horario'
    };
}

function validatePaginatorText() {
    if ($('.ui-paginator-current').html().indexOf('null') > 0) {
        $('.ui-paginator-current').html('');
    }
}

function showDialog(id) {
    var dialog = ice.ace.instance(id);
    if (dialog != null) {
        dialog.show();
    } else {
        console.log("Error showing dialog. '" + id + "' NOT found!");
    }
}

function hideDialog(id) {
    var dialog = ice.ace.instance(id);
    if (dialog != null) {
        dialog.hide();
    } else {
        console.log("Error hiding dialog '" + id + "' NOT found!");
    }
}

function GoInFullscreen(element) {
    if (element.requestFullscreen)
        element.requestFullscreen();
    else if (element.mozRequestFullScreen)
        element.mozRequestFullScreen();
    else if (element.webkitRequestFullscreen)
        element.webkitRequestFullscreen();
    else if (element.msRequestFullscreen)
        element.msRequestFullscreen();
}

function GoOutFullscreen() {
    if (document.exitFullscreen)
        document.exitFullscreen();
    else if (document.mozCancelFullScreen)
        document.mozCancelFullScreen();
    else if (document.webkitExitFullscreen)
        document.webkitExitFullscreen();
    else if (document.msExitFullscreen)
        document.msExitFullscreen();
}

// Returns the DOM Node of the element which is in full-screen
// Returns null if no element in full-screen
function CurrentFullScreenElement() {
    return (document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement || null);
}

function IsFullScreenCurrently() {
    var full_screen_element = document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement || null;

    // If no element is in full-screen
    if (full_screen_element === null)
        return false;
    else
        return true;
}