// JavaScript Document

var BrowserDetect = {
    init: function() {
        this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
        this.version = this.searchVersion(navigator.userAgent)
			    || this.searchVersion(navigator.appVersion)
			    || "an unknown version";
        this.OS = this.searchString(this.dataOS) || "an unknown OS";
    },
    searchString: function(data) {
        for (var i = 0; i < data.length; i++) {
            var dataString = data[i].string;
            var dataProp = data[i].prop;
            this.versionSearchString = data[i].versionSearch || data[i].identity;
            if (dataString) {
                if (dataString.indexOf(data[i].subString) != -1)
                    return data[i].identity;
            }
            else if (dataProp)
                return data[i].identity;
        }
    },
    searchVersion: function(dataString) {
        var index = dataString.indexOf(this.versionSearchString);
        if (index == -1) return;
        return parseFloat(dataString.substring(index + this.versionSearchString.length + 1));
    },
    dataBrowser: [
		    { string: navigator.userAgent,
		        subString: "OmniWeb",
		        versionSearch: "OmniWeb/",
		        identity: "OmniWeb"
		    },
		    {
		        string: navigator.vendor,
		        subString: "Apple",
		        identity: "Safari"
		    },
		    {
		        prop: window.opera,
		        identity: "Opera"
		    },
		    {
		        string: navigator.vendor,
		        subString: "iCab",
		        identity: "iCab"
		    },
		    {
		        string: navigator.vendor,
		        subString: "KDE",
		        identity: "Konqueror"
		    },
		    {
		        string: navigator.userAgent,
		        subString: "Firefox",
		        identity: "Firefox"
		    },
		    {
		        string: navigator.vendor,
		        subString: "Camino",
		        identity: "Camino"
		    },
		    {		// for newer Netscapes (6+)
		        string: navigator.userAgent,
		        subString: "Netscape",
		        identity: "Netscape"
		    },
		    {
		        string: navigator.userAgent,
		        subString: "MSIE",
		        identity: "Explorer",
		        versionSearch: "MSIE"
		    },
		    {
		        string: navigator.userAgent,
		        subString: "Gecko",
		        identity: "Mozilla",
		        versionSearch: "rv"
		    },
		    { 		// for older Netscapes (4-)
		        string: navigator.userAgent,
		        subString: "Mozilla",
		        identity: "Netscape",
		        versionSearch: "Mozilla"
		    }
	    ],
    dataOS: [
		    {
		        string: navigator.platform,
		        subString: "Win",
		        identity: "Windows"
		    },
		    {
		        string: navigator.platform,
		        subString: "Mac",
		        identity: "Mac"
		    },
		    {
		        string: navigator.platform,
		        subString: "Linux",
		        identity: "Linux"
		    }
	    ]

};
BrowserDetect.init();

// Validate the entered email
function EmailValidate(sEmail) {

    EmailError = 0;

    placering = 0;
    tekst = sEmail.toLowerCase();
    placering = tekst.indexOf("@");

    if (tekst == "") {
        errorMSG = "Der skal angives en e-mail adresse i feltet: E-mail.";
        EmailError = 1;
    }

    tegn = tekst.indexOf(" ");

    if (tegn != -1) {
        errorMSG = "Der må ikke være mellemrum i e-mail adressen.";
        EmailError = 1;
    }

    tegn3 = tekst.split('.');
    tegn2 = tekst.indexOf(".")

    if (tegn2 < 0) {
        errorMSG = "E-mail adressen skal indeholde mindst et punktum. Og have mindst en karakter før.";
        EmailError = 1;
    }

    if (tegn3[tegn3.length - 1] == '' || tegn3[tegn3.length - 1] == ' ' || tegn3[tegn3.length - 1] == null) {
        errorMSG = "E-mail adressen skal indeholde mindst et punktum. Og have mindst to karakterer efter.";
        EmailError = 1;
    } else {
        if (tegn3[tegn3.length - 1].length < 2) {
            errorMSG = "E-mail adressen skal indeholde mindst et punktum. Og have mindst to karakterer efter.";
            EmailError = 1;
        }
    }

    if (tekst.indexOf("æ") != -1 || tekst.indexOf("ø") != -1 || tekst.indexOf("å") != -1 ||
			tekst.indexOf("Æ") != -1 || tekst.indexOf("Ø") != -1 || tekst.indexOf("Å") != -1 ||
			tekst.indexOf(";") != -1 || tekst.indexOf(",") != -1) {
        errorMSG = "Der er ulovlige tegn i adressen. Må ikke indeholde: æ ø å Æ Ø Å , ;";
        EmailError = 1;
    }

    aAt = tekst.split('@');

    if (aAt.length > 2) {
        erroMSG = "E-mail adressen må kun indeholde et @.";
        EmailError = 1;
    }

    if (placering < 1 || tekst.length <= (placering + 1)) {
        errorMSG = "E-mail adressen er forkert - kontroller om @ er placeret korrekt.";
        EmailError = 1;
    } else {
        //tjek om der er et punktum efter @
        if (aAt[1].indexOf('.') < 1) {
            errorMSG = "E-mail adressen skal indeholde mindste et punktum efter @'et.";
            EmailError = 1;
        }
    }

    if (EmailError != 0) {

        return false;

    } else {

        return true;
    }
}

function NextFocus(sElement, sEvent) {

    var key;

    if (window.event) {
        key = window.event.keyCode; //IE
    } else {
        key = sEvent.which; //FF
    }

    if (key != 9 && key != 16) {
        GetId(sElement).focus();
    }

}


function CardnumberValidate(nCardNumber) {

    if (isNaN(nCardNumber) || nCardNumber.length != 16) {
        errorMSG = 'Det indtastede kortnummer er ikke gyldigt (16 cifre).';
        return false;
    } else {
        return true;
    }
}


function CardmonthValidate(nMonthvalue) {

    if (nMonthvalue < 1) {
        errorMSG = 'Du skal vælge udløbsmåned for kortet.';
        return false;
    } else {
        return true;
    }

}

function CardyearValidate(nYearvalue) {

    if (nYearvalue < 1) {
        errorMSG = 'Du skal vælge udløbsår for kortet.';
        return false;
    } else {
        return true;
    }

}

function CardcvcValidate(nCVC) {

    if (nCVC.length != 3 || isNaN(nCVC)) {
        errorMSG = 'De indtastede kontrolcifre er ikke gyldigt (3 cifre).';
        return false;
    } else {
        return true;
    }

}

function GetId(sElem) {

    if (document.getElementById(sElem)) {
        return document.getElementById(sElem);
    }

}


function disableEnterKey(sEvent) {

    var key;

    if (window.evet) {
        key = window.event.keyCode; //IE
    } else {
        key = sEvent.which; //FF
    }

    if (key == 13) {
        return false;
    } else {
        return true;
    }
}

function ChangeInputToText(obj) {

    if (obj.value == '') {
        if (BrowserDetect.browser == 'Firefox' || BrowserDetect.browser == 'Opera') {
            obj.type = 'text';
            obj.value = 'Kode';
            //GetId('username').focus();
            setTimeout("GetId('password').focus();", 50);
        } else {
            var newO = document.createElement('input');
            newO.setAttribute('type', 'text');
            newO.setAttribute('name', obj.getAttribute('name'));
            newO.setAttribute('id', obj.getAttribute('id'));
            newO.setAttribute('className', 'input_login');
            newO.setAttribute('value', 'Kode');
            newO.setAttribute('onblur', obj.getAttribute('onblur'));
            newO.setAttribute('onfocus', 'ChangeInputToText(this);');
            obj.parentNode.replaceChild(newO, obj);
            return newO;
        }
    }

}

function ClearInput(obj, default_value) {

    if (obj.value == default_value) {
        obj.value = '';
    } else if (obj.value == '') {
        obj.value = default_value;
    }

}


function Myndig(strCPRbirth) {

    var myYear = strCPRbirth.substring(4, 6);
    var myMonth = strCPRbirth.substring(2, 4);
    var myDay = strCPRbirth.substring(0, 2);

    var todayDate = new Date();
    nYear = todayDate.getYear() - 100;
    if (nYear + 100 < 2000) { nYear += 1900 };
    nYear = nYear.toString().substring(2, 4);

    if (nYear.substring(0, 1) == '0') {
        nYear = nYear.substring(1, 2);
    }

    nYear = parseFloat(nYear);

    if (myYear.length < 2) {
        myYear = '0' + myYear;
    }

    if (myYear > nYear) {
        myYear = '19' + myYear;
    } else {
        myYear = '20' + myYear;
    }

    myYear = parseFloat(myYear);

    var birthDate = new Date();
    birthDate.setFullYear(myYear, myMonth - 1, myDay);

    var todayMinus18 = new Date();
    nYear = todayDate.getYear() - 18;
    if (nYear + 18 < 2000) { nYear += 1900 };
    todayMinus18.setFullYear(nYear, todayDate.getMonth(), todayDate.getDate() + 1)

    if (birthDate < todayMinus18) {
        return true;
    } else {
        return false;
    }
}

function usernamefocus(obj) {
    if (obj.value == 'Brugernavn') { obj.value = '' }
}

function yocreplace(value) {
    do {
        value = value.replace("+", " ");
    }
    while (value.indexOf('+') > -1)

    return value
}
