﻿var adnum = 0
var rotate_timer = 60000;
var focusname = null;
var form = null;
var useaction = false;
var submitted = false;

window.onload = function () {
    // centerwindow();
    focus();
    //self.setTimeout('advertise()', rotate_timer);
    form = document.getElementById('engine');
    form.action = '';
    var ad = document.getElementById('adfile');
    var adv = document.getElementById('advertise');
    if (ad.value != '') adv.src = ad.value;
    try {
        var justAVariabelToCheckFor = document.getElementById('userinfo').style.display;
    }
    catch (err) { }


    //init();
}

function centerwindow() {
	w = 580;h=750;
    nw = (screen.width - w) / 2;
    nh = (screen.height - h) / 2;
	if (window.resizeTo) window.resizeTo(w,h);
	if (document.all) { w = document.body.clientWidth; h = document.body.clientHeight; }
	else if (document.layers) { w = window.innerWidth; h = window.innerHeight; }
	if (window.moveTo) window.moveTo(nw,nh);
	init();
}

function cancel() {
    //setcommand('cancel');
    //
    
    form.command.value = 'cancel';  
    form.action = '';  
    //useaction=false;  
    form.submit();
}

function execute() {
    if(!submitted) {
        if(!useaction) {form.action = '';}
        useaction = false;
        form.submit();
        submitted = true;
        //form.disabled = true;
     } else {
         if (document.getElementById('command').value != 'verify') {
             alert('Handlingen kan ikke udføres 2 gange i træk.\n\nKlik OK for at fortsætte.');
         }
     }
 }

 function validateTerms() {
     var mTermsAccepted = document.getElementById('tocCheckbox');
     if (mTermsAccepted.checked) {
         execute();
     } else {
        document.getElementById('TocError').style.display = 'block';
         //alert('Du skal acceptere salonens betingelser for brug af online booking.');
     }
 }

function mail(obj) {
    window.location.href='mailto:'+obj.innerHTML;
}
function exportappointment(calendartype, data) {
    var filename, msg, res = false
    switch(calendartype) {
        case 1:
            filename = 'appointment.vcs'; 
            msg = 'Gem filen på din computer og åbn den derefter fra dens\nplacering på computeren, så gemmes aftalen i Outlook\n\nKlik OK for at hente filen.';
            break;
        case 2:
            filename = 'appointment.ics';
            res = true;
            msg = '';
            break;     
    }

    if(msg!='') res = confirm(msg);
    if(res) {
        if(data!='') form.calendar.value = data;
        form.action = filename;
        useaction = true;
        execute();
        submitted = false;
    }
}

function togglePIN(act) {
    obj = document.getElementById('pinarea');
    if(act==1) {
        obj.style.display = 'block';
        document.getElementById('password').focus();
    }
    else {
        document.getElementById('password').value='';
        obj.style.display = 'none';
    }
}
function setcommand(value) {
    form.command.value = value;
    execute();
}
function cancelappointment(id) {
    var res = confirm('Vil du aflyse aftalen?');
    if(res) {
        form.appointment.value = id;  
        setcommand('delete');
    }
}
function requestque() {
    setcommand('requestque');
}
function removerequestqueitem(id) {
    var res = confirm('Vil du afmelde dit ønske?');
    if(res) {
        form.requestqueitem.value = id;  
        setcommand('remove');
    }
}
function remindappointment(id) {
    form.appointment.value = id;  
    setcommand('remind');
}
function pick() {
    form.action = '';    
    form.submit();
}
function changeweek(value) {
    form.offset.value = value;    
    form.command.value = '';  
    //form.submit();
    execute();
}
function setcategory(value) {
    form.category.value = value;
    form.submit();
    form.category.value = '';
}
function setdepartment(value) {
    form.department.value = value;
    form.submit();
    form.department.value = '';
}
function setcustomer(value) {
    form.customer.value = value;
    form.submit();
    form.customer.value = '';
}
function setpackage(value, pHasRelations) {
    form._package.value = value;
    if (pHasRelations.toLowerCase() == 'false') {
        form.addonservices.value = '';
    }
    form.submit();
    form._package.value = '';
}
function setschedule(value) {
    form.command.value = 'book';
    form.schedule.value = value;
    form.submit();
}
function noinput() {
    var field = document.forms[0];
    for(i = 0; i < field.length; i++)  {
        if(field.elements[i].type == 'radio') field[i].checked = false;
        //if(field.elements[i].id == 'cat$'+value) field[i].checked = true;
    }
    //form.sort.value = value;
    form.submit();
}
function retry() {
    form.action = form.client.value;
    form.submit();
}

function advertise() {
    adnum=adnum+1    
    var img = document.getElementById('advertise');    
    var src = 'advertise.aspx?'+adnum;
    img.src = src;
    var obj = new Image;
    obj.src = src;
    img.src = obj.src;
    
    self.setTimeout('advertise()', rotate_timer);
}
function focus() {
	if (document.forms.length > 0)
 	{
 		var field = document.forms[0];
  		for (i = 0; i < field.length; i++) 
  		{
  		    if(focusname!=null) {
  		        if (field.elements[i].name == focusname) {
    				    document.forms[0].elements[i].focus();
    				    break;  		    
  		        }  		    
  		    }
  		    else {
   			    if ((field.elements[i].type == "text") || (field.elements[i].type == "password") || (field.elements[i].type == "radio") || (field.elements[i].type == "checkbox") || (field.elements[i].type == "textarea") || (field.elements[i].type.toString().charAt(0) == "s")) 
   			    {
    				    document.forms[0].elements[i].focus();
    				    break;
   			    }  		    
  		    }
  		}
 	}
}
function exit() {
    self.close();
}

function verify(pInput, pWhatToVerify) {
    var mOld;
    var mNew = pInput.value;

    switch (pWhatToVerify) {
        case 'email1':
            mOld = document.getElementById('originalEmail').value;
            break;
        case 'email2':
            mOld = document.getElementById('originalEmail2').value;
            break;
        case 'mobile':
            mOld = document.getElementById('originalPhone').value;
            break;
    }
    if (mNew == '' || !(!!mNew)) {
        if (!allowDelete(pWhatToVerify)) {
            alert('Det er ikke muligt at slette indholdet af feltet.');
            pInput.value = mOld;
        }
    }
    else {
        if (inputHasChanged(mOld, mNew)) {
            if (inputIsValid(mNew, pWhatToVerify)) {
                document.getElementById('whatToVerify').value = pWhatToVerify;
                setcommand('verify');
            }
            else {
                pInput.value = mOld;
            }
        }
    }
}

function allowDelete(pWhatToVerify) {
    var mAllow = false;

    switch (pWhatToVerify) {
        case 'email1': //Hvis e-mail-adresse 1 er tom, og e-mail-adresse 2 er udfyldt, flyttes e-mail-adresse 2 op i e-mail-adresse 1.
            if (document.getElementById('email2').value != '' && !!document.getElementById('email2').value) {
                document.getElementById('email1').value = document.getElementById('email2').value;
                document.getElementById('email2').value = '';
                mAllow = true;
            }
            break;
        case 'email2': //Hvis e-mail-adresse 1 er udfyldt, er det tilladt at slette indholdet i feltet e-mail-adresse 2.
            if (!!document.getElementById('email1').value && document.getElementById('email1').value != '') {
                mAllow = true;
            }
            break;
    }

    return mAllow;
}

function inputHasChanged(pOldValue, pNewValue) {
    var mHasChanged = false;
    if (!!pOldValue && pOldValue != '') {
        if (pOldValue.toString().toLowerCase() != pNewValue.toString().toLowerCase()) {
            mHasChanged = true;
        }
    }
    return mHasChanged;
}

function inputIsValid(pInput, pWhatToVerify) {
    var mBool = false;
    
    switch (pWhatToVerify) {
        case 'email1':
            mBool = isValidEmail(pInput);
            if (!mBool) {
                alert('email adressen du har indtastet kunne ikke godkendes.');
            }
            break;
        case 'email2':
            mBool = isValidEmail(pInput);
            if (!mBool) {
                alert('email adressen du har indtastet kunne ikke godkendes.');
            }
            break;
        case 'mobile':
            mBool = isPhoneValid(pInput);
            if (!mBool) {
                alert('Det indtastede mobilnummer er ikke gyldigt.\n\nNummeret skal bestå af 8 tal uden mellemrum.');
            }
            break;
    }
    return mBool;
}

function sendVerificationCode() {
    var mCode = document.getElementById('verificationCode').value;

    if (!!mCode && Trim(mCode) != '') {
        setcommand('verify');
    }
    else {
        alert('Du har ikke indtastet en gyldig kode.');
    }
}

function cancelVerification() {
    if (confirm('Hvis du annullerer, bliver der ikke gemt nogen af de ændringer, du har foretaget. Ønsker du at fortsætte?')) {
        document.getElementById('verifyBox').style.display = 'none';
        document.getElementById('opacityBox').style.display = 'none';
    }
}

function Trim(str, chars) {
    return LeftTrim(RightTrim(str, chars), chars);
}

function LeftTrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}

function RightTrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

function isValidEmail(pEmail) {
    var mReg = new RegExp(/^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/);

    return mReg.test(pEmail);
}

function isPhoneValid(pPhone) {
    var mReg = new RegExp(/^(\d){8}$/);

    return mReg.test(pPhone);
}

function checkForAlertDiv() {
    execute();
}

function alertBoxSwich(pSpan1, pSpan2) {
    document.getElementById('AlertSpan1').style.display = pSpan1;
    document.getElementById('AlertSpan2').style.display = pSpan2;
}
