﻿// JScript File

function noBack() { window.history.forward(); }

function resetbookingconfirm()
{
    var r=confirm("You are about to reset your booking. If you want to do so, press 'OK', otherwise press 'Cancel'.");
    if (r==true)
      {
        return true;
      }
    else
      {
        return false;
      }
}

function quickcopydetails(sCopyFrom, sCopyTo)
{
    var copyfrom = document.getElementById(sCopyFrom);
    var copyto = document.getElementById(sCopyTo);
    
    var selectsfrom = copyfrom.getElementsByTagName("SELECT");
    var selectsto = copyto.getElementsByTagName("SELECT");
    
    if (selectsto.length == selectsfrom.length)
    {
        for (i=0;i<selectsfrom.length;i++)
        {
            selectsto[i].selectedIndex = selectsfrom[i].selectedIndex;
            if (selectsfrom[i].selectedIndex != 0)
            {
                selectsto[i].onchange();
            }
        }
    }
}
        
function copydetails(sCopyFrom, sCopyTo)
{
    var copyfrom = document.getElementById(sCopyFrom);
    var copyto = document.getElementById(sCopyTo);
    
    var divsfrom = copyfrom.getElementsByTagName("DIV");
    var divsto = copyto.getElementsByTagName("DIV");
    
    var selectsfrom = copyfrom.getElementsByTagName("SELECT");
    var selectsto = copyto.getElementsByTagName("SELECT");
    
    var inputsfrom = copyfrom.getElementsByTagName("INPUT");
    var inputsto = copyto.getElementsByTagName("INPUT");
    
    var asfrom = copyfrom.getElementsByTagName("A");
    var asto = copyto.getElementsByTagName("A");
    
    var RetID = "";
    var i=0;
    var j=0;
    
    for (i=0;i<selectsfrom.length;i++)
    {
        if ((selectsfrom[i].id).indexOf('Dep') != -1)
        {
            RetID = (selectsfrom[i].id).replace('Dep','Ret');
        }
        if ((selectsfrom[i].id).indexOf('Outward') != -1)
        {
            RetID = (selectsfrom[i].id).replace('Outward','Return');
        }
        if (RetID.indexOf('Outward') != -1)
        {
            RetID = RetID.replace('Outward','Return');
        }
        
        for (j=0;j<selectsto.length;j++)
        {
            if (selectsto[j].id == RetID)
            {
                for (var m=0;m<selectsto[j].length;m++)
                {
                    if (selectsto[j].options[m].value == selectsfrom[i].options[selectsfrom[i].selectedIndex].value)
                    {
                        selectsto[j].selectedIndex = m;
                        if (selectsto[j].selectedIndex != 0)
                        {
                            selectsto[j].onchange();
                        }
                        break;  
                    }
                }
//                if (selectsto[j].options[selectsfrom[i].selectedIndex] != null)
//                {
//                    if (selectsto[j].options[selectsfrom[i].selectedIndex].value == selectsfrom[i].options[selectsfrom[i].selectedIndex].value)
//                    {
//                        selectsto[j].selectedIndex = selectsfrom[i].selectedIndex;
////                        if (selectsfrom[i].selectedIndex != 0)
////                        {
////                            selectsto[j].onchange();
////                        }
//                        break;    
//                    }
//                }
            }
        }
    }
    
    RetID = "";
    i=0;
    j=0;
    
    for (i=0;i<inputsfrom.length;i++)
    {
        if (inputsfrom[i].type == 'text')
        {
            if ((inputsfrom[i].id).indexOf('Dep') != -1)
            {
                RetID = (inputsfrom[i].id).replace('Dep','Ret');
            }
            if ((inputsfrom[i].id).indexOf('Outward') != -1)
            {
                RetID = (inputsfrom[i].id).replace('Outward','Return');
            }
            if (RetID.indexOf('Outward') != -1)
            {
                RetID = RetID.replace('Outward','Return');
            }
            if (RetID != null && RetID != "")
            {
                for (j=0;j<inputsto.length;j++)
                {
                    if (inputsto[j].id == RetID)
                    {
                        inputsto[j].value = inputsfrom[i].value;
                        break;
                    }
                }
            }
        }
        if (inputsfrom[i].type == 'checkbox')
        {
            if ((inputsfrom[i].id).indexOf('Dep') != -1)
            {
                RetID = (inputsfrom[i].id).replace('Dep','Ret');
            }
            if ((inputsfrom[i].id).indexOf('Outward') != -1)
            {
                RetID = (inputsfrom[i].id).replace('Outward','Return');
            }
            if (RetID.indexOf('Outward') != -1)
            {
                RetID = RetID.replace('Outward','Return');
            }
            if (RetID != null && RetID != "")
            {
                for (j=0;j<inputsto.length;j++)
                {
                    if (inputsto[j].id == RetID)
                    {
                        inputsto[j].checked = inputsfrom[i].checked;
                        if (inputsto[j].checked == true)
                        {
                            inputsto[j].onclick();
                        }
                        break;
                    }
                }
            }
        }
    }
    
    RetID = "";
    i=0;
    j=0;
    
    for (i=0;i<divsfrom.length;i++)
    {
        if ((divsfrom[i].id).indexOf('Panel_') != -1)
        {
            if ((divsfrom[i].id).indexOf('Outward') != -1)
            {
                RetID = (divsfrom[i].id).replace('Outward','Return');
            }
            if (RetID != null && RetID != "")
            {
                for (j=0;j<divsto.length;j++)
                {
                    if (divsto[j].id == RetID)
                    {
                        divsto[j].style.display = divsfrom[i].style.display;
//                        if (divsfrom[i].style.display == '')
//                        {
//                            divsto[j].style.display = '';
//                            if (divsto[j-1].lastChild != null){
//                                if (j > 0 && ((divsto[j-1].lastChild).id).indexOf('vehicles') == -1)
//                                {
//                                    (divsto[j-1].lastChild).style.display = 'none';
//                                }
//                            }
//                            break;
//                        }
                    }
                }
            }
        }
    }
    
    RetID = "";
    i=0;
    j=0;
    
    for (i=0;i<asfrom.length;i++)
    {
        if ((asfrom[i].id).indexOf('Outward') != -1)
        {
            RetID = (asfrom[i].id).replace('Outward','Return');
        }
        if (RetID != null && RetID != "")
        {
            for (j=0;j<asto.length;j++)
            {
                if (asto[j].id == RetID)
                {
                    asto[j].style.display = asfrom[i].style.display;
                }
            }
        }
    }
}

function ValidateCabins() {
    var selects = document.getElementsByTagName("SELECT");
    var amountsvalid = true;
    var totaladultamount = 0;
    var totalinfants = 0;

	for (var i=0; i < FieldValidator._suppressedControlIds.length; i++) {
        if (FieldValidator.NameContainsId(FieldValidator._suppressedControlIds[i], theForm.__EVENTTARGET.value)) {
            return;
        }
    }

    for (var i=0; i < selects.length; i++) {
        if (selects[i].id.indexOf("_PassengerCabinResourceSelector_") != -1) {
            var panel = selects[i].parentNode.parentNode.parentNode;
            if (panel.style.display != "none") {
                if (selects[i].selectedIndex != -1 && selects[i].selectedIndex != 0) {
                    var panelselects = panel.getElementsByTagName("SELECT");
                    var adults = null;
                    var children = null;
                    var infants = null;
                    for (var j=0; j < panelselects.length; j++) {
                        if (panelselects[j].id.indexOf("_PassengerResourceSelector_") != -1) {
                            if (panelselects[j].id.indexOf("_drpAmountA") != -1) {
                                adults = panelselects[j];
                                if (adults.selectedIndex != -1 && adults.selectedIndex != 0) {
                                    totaladultamount += adults.options[adults.selectedIndex].value;
                                }
                            } else if (panelselects[j].id.indexOf("_drpAmountC") != -1) {
                                children = panelselects[j];
                            } else if (panelselects[j].id.indexOf("_drpAmountI") != -1) {
                                infants = panelselects[j];
                                totalinfants += infants.options[infants.selectedIndex].value;
                            }
                        }
                    }
//                    if ((adults && adults.selectedIndex != -1 && adults.selectedIndex != 0) ||
//                        (children && children.selectedIndex != -1 && children.selectedIndex != 0) ||
//                        (infants && infants.selectedIndex != -1 && infants.selectedIndex != 0)
//                        ) {
                    if ((adults && adults.selectedIndex != -1) || (children && children.selectedIndex != -1) || (infants && infants.selectedIndex != -1)) 
                    {
                        
                    } else {
                        amountsvalid = false;
                        break;
                    }
                } else {
//                   if ((adults.selectedIndex == 0) || (children.selectedIndex == 0) || (infants.selectedIndex ) == 0))
//                    {
//                        amountsvalid = true;
//                    } else {
                        amountsvalid = true;
//                    }
                    break;
                }
            }
        }
    }
    if (!amountsvalid) {
        if (typeof ProgressControllers_PostBackProgressControl != 'undefined') {
              ProgressControllers_PostBackProgressControl.stopProgress();
        }
        alert(text1);
        __formSubmitted = false;
        return false;
    } else if (totaladultamount == 0 && totalinfants > 0) {
        if (typeof ProgressControllers_PostBackProgressControl != 'undefined') {
              ProgressControllers_PostBackProgressControl.stopProgress();
        }
        alert(text2);
        __formSubmitted = false;
        return false;
    } else {
        if (submitref) {
            return submitref();
        } else {
            return true;
        }
    }
}

function initButtonVisibilty(count, totalamount, mode)
{
    var addbtnid;
    var rembtnid;

    for (var m=0;m<count;m++)
    {
        addbtnid = eval("AddBtnArray_" + mode + "[" + m + "]");
        rembtnid = eval("RemoveBtnArray_" + mode + "[" + m + "]");
        
        document.getElementById(addbtnid).style.display = 'none';
        document.getElementById(rembtnid).style.display = 'none';
    }
}

function setButtonVisibilty(btn, type, count, totalamount, mode)
{
    var sArray = eval("showArray_" + mode);
    var rArray = eval("hideArray_" + mode);

    var addbtnid;
    var rembtnid;
    var m = 0;
    if (type == 'add')
    {   
        for (m=0;m<eval(count)+1;m++)
        {
            addbtnid = eval("AddBtnArray_" + mode + "[" + count + "]");
            rembtnid = eval("RemoveBtnArray_" + mode + "[" + count + "]");
         
            if (count < totalamount)
            {
                (document.getElementById(addbtnid)).style.display = 'none';
                (document.getElementById(rembtnid)).style.display = 'none';
            }
        }
        
        if ((eval(count)+1) == totalamount)
        {
            addbtnid = eval("AddBtnArray_" + mode + "[" + (eval(count)+1) + "]");
            (document.getElementById(addbtnid)).style.display = 'none';
        }
    
        var panelid = eval("CabinSelectorArray_" + mode + "[" + (eval(count)+1) + "]"); 
        
        sArray[count] = panelid;
        rArray[count] = '';
    }
    else if (type == 'remove')
    {
        addbtnid = eval("AddBtnArray_" + mode + "[" + (eval(count)-1) + "]");
        rembtnid = eval("RemoveBtnArray_" + mode + "[" + (eval(count)-1) + "]");
        (document.getElementById(addbtnid)).style.display = '';
        if ((eval(count)-1) > 0)
        {
            (document.getElementById(rembtnid)).style.display = '';
        }
        
        var panelid = eval("CabinSelectorArray_" + mode + "[" + count + "]"); 
        
        
        var selectfrompanel = (document.getElementById(panelid)).getElementsByTagName("SELECT");
        
        var x = 0;
        for (x=0;x<selectfrompanel.length;x++)
        {
            selectfrompanel[x].selectedIndex = 0;
        }
        
        sArray[(eval(count)-1)] = '';
        rArray[(eval(count)-1)] = panelid;
    }
    
    var i=0;
    var j=0;
    
    for (i=0;i<sArray.length;i++)
    {
        if (sArray[i] != '')
        {
            if (document.getElementById(sArray[i]) != null)
            {
                (document.getElementById(sArray[i])).style.display = '';
            }
        }
    }
    
    for (j=0;j<rArray.length;j++)
    {
        if (rArray[j] != '')
        {
            if (document.getElementById(rArray[j]) != null)
            {
                (document.getElementById(rArray[j])).style.display = 'none';
            }
        }
    }
    return false;
}

function SetUpperCase()
{
    var resVal = [];
    resVal["Status"] = true;
    var elements = document.getElementsByTagName('INPUT');
    for (var i=0;i<elements.length;i++)
    {
        if (elements[i].type == 'text')
        {
            elements[i].value = elements[i].value.toUpperCase();
        }
    }
    return resVal;
}

function ValidateSpecialCharacters()
{
    var resVal = [];
    var elements = document.getElementsByTagName('INPUT');
    for (var i=0;i<elements.length;i++)
    {
        if (elements[i].type == 'text' && elements[i].id.indexOf('email') == -1)
        {
            var found = false;
            if (elements[i].id.indexOf('nl_etunimi') != -1 || elements[i].id.indexOf('nl_sukunimi') != -1)
            {
                var re = new RegExp('[^A-Z ]');
                if (elements[i].value.match(re)) 
                {
                    resVal["Status"] = false;
                    resVal["Message"] = "Invalid character in field!\n Field only allows characters A-Z and space.";
                    resVal["Element"] = elements[i];
                    return resVal;
                } 
                else 
                {
                    resVal["Status"] = true;
                }
            }
            else if (elements[i].id.indexOf('nl_syntyaika') != -1)
            {
                found = true;
            }
            else if (elements[i].id.indexOf('nl_syntypaikka') != -1)
            {
                var re = new RegExp('[^A-Z ]');
                if (elements[i].value.match(re)) 
                {
                    resVal["Status"] = false;
                    resVal["Message"] = "Invalid character in field!\n Field only allows characters A-Z and space.";
                    resVal["Element"] = elements[i];
                    return resVal;
                } 
                else 
                {
                    resVal["Status"] = true;
                }
            }
            else if (elements[i].id.indexOf('nl_passport') != -1)
            {
                found = true;
            }
            else if (elements[i].id.indexOf('nl_passivanhenee') != -1)
            {
                found = true;
            }
            else if (elements[i].id.indexOf('txtRegNr') != -1)
            {
                found = true;
            }
            else if (elements[i].id.indexOf('txtMake') != -1)
            {
                found = true;
            }
            else if (elements[i].id.indexOf('txtModel') != -1)
            {
                found = true;
            }
            else if (elements[i].id.indexOf('mobipuh') != -1 || elements[i].id.indexOf('kotipuh') != -1)
            {
                var re = new RegExp('[^0-9+]');
                if (elements[i].value.match(re)) 
                {
                    resVal["Status"] = false;
                    resVal["Message"] = "Invalid character in field!\n Field only allows characters 0-9.";
                    resVal["Element"] = elements[i];
                    return resVal;
                } 
                else 
                {
                    resVal["Status"] = true;
                }
            }
            
            if (found)
            {
                var re = new RegExp('[^A-Z0-9]');
                if (elements[i].value.match(re)) 
                {
                    resVal["Status"] = false;
                    resVal["Message"] = "Invalid character in field!\n Field only allows characters A-Z and 0-9.";
                    resVal["Element"] = elements[i];
                    return resVal;
                } 
                else 
                {
                    resVal["Status"] = true;
                }
            }
        }
    }
    return resVal;
}
