﻿// -----------------------------------------------------------
// KULTURSPECIFIKA FELMEDDELANDEN
// -----------------------------------------------------------

// Felaktigt heltal
var ErrNaN = new Object();
ErrNaN['sv-SE']      = "Fyll i ett jämnt heltal i rutan";
ErrNaN['en-US']      = "Please enter an even integer";
ErrNaN['de-DE']      = "Please enter an even integer";

// Inga valda produkter
var ErrNoItems = new Object();
ErrNoItems['sv-SE']      = "Välj antalet av en produkt innan du fortsätter";
ErrNoItems['en-US']      = "Please choose the number of items you wish to rent";
ErrNoItems['de-DE']      = "Please choose the number of items you wish to rent";

// Felaktigt datum
var ErrNoDate = new Object();
ErrNoDate['sv-SE']      = "Datumet är inte giltigt";
ErrNoDate['en-US']      = "This is not a valid date";
ErrNoDate['de-DE']      = "This is not a valid date";

// Felaktigt datum
var ErrCompareDate = new Object();
ErrCompareDate['sv-SE']      = "Från-Datum får inte vara större än Till-Datum";
ErrCompareDate['en-US']      = "From-Date cannot be greater then To-Date";
ErrCompareDate['de-DE']      = "From-Date cannot be greater then To-Date";

// Från Datum är innan dagens datum
var ErrCompareTodayFromDate = new Object();
ErrCompareTodayFromDate['sv-SE']      = "Från-Datum får inte vara tidigare än dagens datum";
ErrCompareTodayFromDate['en-US']      = "From-Date cannot be earlier than todays date";
ErrCompareTodayFromDate['de-DE']      = "From-Date cannot be earlier than todays date";

// Till Datum är innan dagens datum
var ErrCompareTodayToDate = new Object();
ErrCompareTodayToDate['sv-SE']      = "Till-Datum får inte vara tidigare än dagens datum";
ErrCompareTodayToDate['en-US']      = "To-Date cannot be earlier than todays date";
ErrCompareTodayToDate['de-DE']      = "To-Date cannot be earlier than todays date";

// Bokningen är mer än 21 dagar
var ErrTooManyDays = new Object();
ErrTooManyDays['sv-SE']      = "Du kan max boka 21 dagar här på vår webbplats. Önskar du hyra längre ber vi dig kontakta oss";
ErrTooManyDays['en-US']      = "You can reserve a bicycle online for maximum 21 days online. For longer rents, please contact us";
ErrTooManyDays['de-DE']      = "You can reserve a bicycle online for maximum 21 days online. For longer rents, please contact us";

// Fyll i förnamn
var ErrStrFirstName = new Object();
ErrStrFirstName['sv-SE']      = "Fyll i ditt förnamn";
ErrStrFirstName['en-US']      = "Please enter your first name";
ErrStrFirstName['de-DE']      = "Please enter your first name";

// Fyll i efternamn
var ErrStrLastName = new Object();
ErrStrLastName['sv-SE']      = "Fyll i ditt efternamn";
ErrStrLastName['en-US']      = "Please enter your last name";
ErrStrLastName['de-DE']      = "Please enter your last name";

// Fyll i adress
var ErrStrAddress = new Object();
ErrStrAddress['sv-SE']      = "Fyll i din adress";
ErrStrAddress['en-US']      = "Please enter your street address";
ErrStrAddress['de-DE']      = "Please enter your street address";

// Fyll i postnummer
var ErrStrZipCode = new Object();
ErrStrZipCode['sv-SE']      = "Fyll i ditt postnummer";
ErrStrZipCode['en-US']      = "Please enter your zip code";
ErrStrZipCode['de-DE']      = "Please enter your zip code";

// Fyll i postort
var ErrStrState = new Object();
ErrStrState['sv-SE']      = "Fyll i din postort";
ErrStrState['en-US']      = "Please enter your state or region";
ErrStrState['de-DE']      = "Please enter your state or region";

// Fyll i e-psotadress
var ErrStrEmail = new Object();
ErrStrEmail['sv-SE']      = "Fyll i en giltig e-postadress.\nEn bekräftelse skickas till denna adress när du bokat så det är viktigt att du anger en korrekt adress.";
ErrStrEmail['en-US']      = "Please enter a valid email address. A confirmation of your reservation is sent to this address, so please enter a valid one";
ErrStrEmail['de-DE']      = "Please enter a valid email address. A confirmation of your reservation is sent to this address, so please enter a valid one";

// Villkoren måste godkännas
var ErrTermsAgreement = new Object();
ErrTermsAgreement['sv-SE']      = "Du måste läsa och godkänna villkoren för onlinebokning innan du fortsätter";
ErrTermsAgreement['en-US']      = "You must read and comply to the terms of online reservation before continuing";
ErrTermsAgreement['de-DE']      = "You must read and comply to the terms of online reservation before continuing";

// -----------------------------------------------------------
// FUNKTIONER
// -----------------------------------------------------------

// Validerar data i första steget för bokning
function ValidateStep1() 
{
	var totalSum = 0;

    // Hämta alla textboxar på sidan	
    var txtBoxes = GetTextBoxes();

    // Iterera genom alla textboxar och summera antal
    for (var i = 0;i < txtBoxes.length;i++)
    {
        totalSum += eval(txtBoxes[i].value);
    }
    
    // Kontrollera att antalet inte är 0
    if (totalSum == 0) 
    {
        alert(ErrNoItems[cultureSession]);
        return false;
    }
}

// Validerar data i andra steget för bokning
function ValidateStep2() 
{
    // Sätt standardformat
    var DateFormat = 'yyyy-MM-dd';
    
    // Hämta datum
    var txtFromDate = document.getElementById('ctl00_ContentContainer_txtFromDate');
    var txtToDate = document.getElementById('ctl00_ContentContainer_txtToDate');
    var Today = new Date();
        
    if (txtFromDate.value == '' || txtToDate.value == '') 
    {
        alert(ErrNoDate[cultureSession]);
        return false;
    }
                    
    // Parsa datum
    var FromDate = formatDate(parseDate(txtFromDate.value), DateFormat);
    var ToDate = formatDate(parseDate(txtToDate.value), DateFormat);
    var TodayDate = formatDate(Today, DateFormat);
    
    // Jämför datumen
    var intDateCompared = compareDates(FromDate, DateFormat, ToDate, DateFormat);
    var intCmpTodayFromDate = compareDates(TodayDate, DateFormat, FromDate, DateFormat);
    var intCmpTodayToDate = compareDates(TodayDate, DateFormat, ToDate, DateFormat);

    /*    
    * DEBUG
    alert("intDateCompared d1>d2 = 1\n" + intDateCompared);
    alert("intCmpTodayFromDate d1>d2 = 1\n" + intCmpTodayFromDate);
    alert("intCmpTodayToDate d1>d2 = 1\n" + intCmpTodayToDate);
    alert(calcDays(FromDate, ToDate));
    */

    // Jämför datumen
    if (intDateCompared == 1 || intDateCompared == -1) 
    {
        alert(ErrCompareDate[cultureSession]);
        return false;
    } 
    else if (intCmpTodayFromDate == 1 || intCmpTodayFromDate == -1) 
    {
        alert(ErrCompareTodayFromDate[cultureSession]);
        return false;
    }
    else if (intCmpTodayToDate == 1 || intCmpTodayToDate == -1) 
    {
        alert(ErrCompareTodayToDate[cultureSession]);
        return false;
    } 
    else if (calcDays(FromDate, ToDate) >= 21) 
    {
        alert(ErrTooManyDays[cultureSession]);
        return false;
    }
}

function ValidateStep3() 
{
    var txtFirstname = document.getElementById('ctl00_ContentContainer_txtFirstname');
    var txtLastname = document.getElementById('ctl00_ContentContainer_txtLastname');
    var txtAddress = document.getElementById('ctl00_ContentContainer_txtAddress');
    var txtZipCode = document.getElementById('ctl00_ContentContainer_txtZipCode');
    var txtState = document.getElementById('ctl00_ContentContainer_txtState');
    var txtEmail = document.getElementById('ctl00_ContentContainer_txtEmail');
    //var txtPhone = document.getElementById('ctl00_ContentContainer_txtPhone');
    var chkTermsAgreed = document.getElementById('ctl00_ContentContainer_chkTermsAgreed');
    
    // Kontrollera indata
    if (txtFirstname.value == '' || txtFirstname.value == ' ') 
    {
        alert(ErrStrFirstName[cultureSession]);
        txtFirstname.focus();
        return false;
    } 
    else if (txtLastname.value == '' || txtLastname.value == ' ') 
    {
        alert(ErrStrLastName[cultureSession]);
        txtLastname.focus();
        return false;
    }
    else if (txtAddress.value == '' || txtAddress.value == ' ') 
    {
        alert(ErrStrAddress[cultureSession]);
        txtAddress.focus();
        return false;    
    }
    else if (txtZipCode.value == '' || txtZipCode.value == ' ') 
    {
        alert(ErrStrZipCode[cultureSession]);
        txtZipCode.focus();
        return false;    
    }
    else if (txtState.value == '' || txtState.value == ' ') 
    {
        alert(ErrStrState[cultureSession]);
        txtState.focus();
        return false;    
    }
    else if (txtEmail.value == '' || txtEmail.value == ' ' || txtEmail.value.indexOf('@') == -1) 
    {    
        alert(ErrStrEmail[cultureSession]);
        txtEmail.focus();
        return false;    
    }
    else if (chkTermsAgreed.checked == false) 
    {
        alert(ErrTermsAgreement[cultureSession]);
        chkTermsAgreed.focus();
        return false;
    }
}

// Markerar en textbox hela innehåll när den markeras
function selectOnFocus(ctrlId) 
{
    var ctrl = document.getElementById(ctrlId);

    // Kolla om Netscape
	if (document.layers) 
	{ 
		return;
	} 
    else 
	{ 
		var txtToFind = ctrl.value;
		var range = ctrl.createTextRange();
		if (txtToFind != '' && range.findText(txtToFind)) 
		{
		    range.select();
		}
	}
}

// Om fältet har lämnats tomt, sätt en 0 som default
function zeroOnBlur(ctrlId) 
{
    // Hämta objektet
    var ctrl = document.getElementById(ctrlId);
    
    // Sätt 0 om värdet är tomt
    if (ctrl.value == '')
	{ 
	    ctrl.value = '0';
    }

    // Kontrollera om talet innehåller punkter
    var txtRange = ctrl.createTextRange();
	var txtFind = '.';
    
    // Kontrollera att det är ett tal och ett heltal
	if (isNaN(ctrl.value) == true || txtRange.findText(txtFind) == true) 
	{
	    alert(ErrNaN[cultureSession]);
	    ctrl.focus();
	    return false;
	}
}

// Öppnar detaljerad cykelinfo i ett nytt fönster
function openInfo(infoUrl, infoID) 
{
	LeftPosition = (screen.width) ? (screen.width-450)/2 : 0;
	TopPosition = (screen.height) ? (screen.height-500)/2 : 0;
	window.open(infoUrl + '?id='+infoID+'','prodinfo','width=450,height=500,top='+TopPosition+',left='+LeftPosition+',scrollbars=yes');
}

// Hämtar alla textboxar på sidan till en array
function GetTextBoxes() 
{
    // To store the textbox objects
    oTextBoxes = new Array(); 
    
    // Store collection of all text boxes
    oInputs = document.getElementsByTagName('input') 

    // Loop through and find <input type="text"/>
    for ( i = 0; i < oInputs.length; i++) 
    { 
        // Found one - store it in the oTextBoxes array
        if (oInputs[i].type == 'text') 
        {
            oTextBoxes.push(oInputs[i]); 
        }
    }

    return oTextBoxes;
}