jQ(document).ready(function() {
   
    var formInternetCheckIn = new CheckForm('#flightCheckIn');
    formInternetCheckIn.isEmpty('sourceOrigin', '#sourceOriginCheckIn');
    formInternetCheckIn.checkReg('ticketNumber', '#ticketNumberCheckin', '[0-9]{13,14}$');
    formInternetCheckIn.checkReg('flightNumber', '#nameFlightNumber', '^[0-9]{2,4}$');
    
    var paperCheckin = new CheckForm('#paperCheckin');
    paperCheckin.isEmpty('sourceOrigin', '#sourceOriginPaper');
    paperCheckin.checkReg('flightNumber', '#flightNumberPaper', '^[0-9]{2,4}$');
    paperCheckin.isEmpty('firstName', '#firstName');
    paperCheckin.isEmpty('lastName', '#lastName');
    paperCheckin.isEmpty('departure_date', '#bookingDeparture');
    paperCheckin.setCheckFunction(function() {
        return setFlightDate();
    });
    
    var formFFCheckIn = new CheckForm('#checkinFF');
    formFFCheckIn.checkReg('sourceOrigin', '#sourceOriginFF', '^[A-Z]{3}$');
    formFFCheckIn.checkReg('ffqCardAirline', '#ffqCardAirline', '^[A-Z]{2}$');
    formFFCheckIn.checkReg('ffqCardNo', '#ffqCardNo', '^[0-9]+$');
    
    
    
});

function setFlightDate() {
    var flightDate = '';
    
    //set date input
    sDate = jQ('#departure_date').val();

    dateSplit = sDate.split('.');
    if(dateSplit[0].length == 1) dateSplit[0] = '0'+dateSplit[0];
    if(dateSplit[1].length == 1) dateSplit[1] = '0'+dateSplit[1];
    flightDate = dateSplit[2]+'-'+dateSplit[1]+'-'+dateSplit[0];
    jQ('#flightDate').val(flightDate);
    
    return true;
}


/*** Pro stary layout ***/
var regTicketNumber = new RegExp("^[0-9]{13,14}$");
var regFlightCode = new RegExp("^[A-Z]{2}$");
var regFlightNumber = new RegExp("^[0-9]{2,4}$");
var regAirpotIATA = new RegExp("^[A-Z]{3}$");

var ici_form = new Array();
ici_form[ici_form.length] = new Array("sourceOrigin", "value > ''", "Prosím, zadejte místo odletu");
ici_form[ici_form.length] = new Array("flightCode", "testFlightCode('flightCode')", "Select carrier code");
ici_form[ici_form.length] = new Array("flightNumber", "regFlightNumber.test(value)", "Prosím, zadejte číslo letu");
ici_form[ici_form.length] = new Array("ticketNumber", "regTicketNumber.test(value)", "Prosím vyplňte číslo elektronické letenky!");

var paperCheckinNonR = new Array();
paperCheckinNonR[paperCheckinNonR.length] = new Array("sourceOrigin", "value > ''", "Prosím, zadejte místo odletu");
paperCheckinNonR[paperCheckinNonR.length] = new Array("carrierCode", "testFlightCode('carrierCode')", "Select carrier code");
paperCheckinNonR[paperCheckinNonR.length] = new Array("flightNumber", "regFlightNumber.test(value)", "Prosím, zadejte číslo letu");
paperCheckinNonR[paperCheckinNonR.length] = new Array("firstName", "value > ''", "Prosím, zadejte křestní jméno\r\n");
paperCheckinNonR[paperCheckinNonR.length] = new Array("lastName", "value > ''", "Prosím, zadejte příjmení\r\n");


var checkinFF = new Array();
checkinFF[checkinFF.length] = new Array("sourceOrigin", "value > ''", "Please enter a From!");
checkinFF[checkinFF.length] = new Array("ffqCardAirline", "testFlightCode('ffqCardAirline')", "Please enter a Frequent flyer programme!");
checkinFF[checkinFF.length] = new Array("ffqCardNo", "value > ''", "Please enter a Frequent flyer number!");

function formManage(formName) {
    var returnVal = false;
    var flightDate = '';
    
    if(check_Form(formName)) {
        //set date input
        sDay = jQ('#dayFromID_paperCheckin').val();
        sMonthYear = jQ('#monthYearFromID_paperCheckin').val();
        dateSplit = sMonthYear.split('/');
        if(sDay.length == 1) sDay = '0'+sDay;
        if(dateSplit[0].length == 1) dateSplit[0] = '0'+dateSplit[0];
        flightDate = dateSplit[1]+'-'+dateSplit[0]+'-'+sDay;
        jQ('#paperCheckinNonR').append('<input type="hidden" name="flightDate" value="'+flightDate+'" />');
       
        returnVal = true;
    }

    return returnVal;
}

function testFlightCode(eleName) {
    var flightCode = jQ("select[@name = '"+eleName+"']").val();
    if(regFlightCode.test(flightCode)) return true;
    else return false;
}

var cancel_sms_form = new Array();
cancel_sms_form[cancel_sms_form.length] = new Array("ticketNumber", "regTicketNumber.test(value)", "Prosím vyplňte číslo elektronické letenky!");

/**** funkce pro new calendar_3 *****/
function openCalendar(id,inp1,inp2){
	var obj = arrayCalendars[id];
	var d1=document.getElementById(inp1);
	var d2=document.getElementById(inp2);
    var s = new Date();
    if(d1.value) s.setDate(d1.value);
    if(d2.value){
        d2Conv=d2.value.split("/");
        s.setMonth(d2Conv[0]-1);
        s.setFullYear(d2Conv[1]);
    }
    obj.value.setTime(s.getTime());
    obj.returnBack="doFromCalendar('"+id+"','"+inp1+"','"+inp2+"')";	
	obj.runCalendar();
}
function doFromCalendar(id,inp1,inp2){
	var calend = arrayCalendars[id];
	var d1 = document.getElementById(inp1);
	var d2 = document.getElementById(inp2);	    
    setDateToInputs(inp1,inp2,calend.value); // nastavi inputy 
	if(id=='clnd_hpTermFrom'){
	    var calendTo=arrayCalendars['clnd_hpTermTo'];
        calendTo.setMindate(calend.value);
        if(calend.value > calendTo.value || calendTo.value == null){
	        calendTo.value = calend.value;
	        setDateToInputs('dayToID'+inp1.substr(inp1.indexOf("_")),'monthYearToID'+inp2.substr(inp2.indexOf("_")),calendTo.value);
	    }	
	}
}
function setDateToInputs(inp1,inp2,dateVal){
    document.getElementById(inp1).value = dateVal.getDate();
    var d2=document.getElementById(inp2);
    var d2val=(dateVal.getMonth()+1)+"/"+dateVal.getFullYear();
    for(var n = 0; n < d2.options.length; n++)  d2.options[n].selected = false;
    for(n = 0; n < d2.options.length; n++){
	    if(d2.options[n].value == d2val){
	        d2.options[n].selected = true;
	        break;
	    }
	}
}
function checkDatesWithCalend(type,id_from,id_to,day_from,month_from,day_to,month_to){
    var calFrom = arrayCalendars[id_from];
    var calTo = arrayCalendars[id_to];
    var dayFrom = document.getElementById(day_from);
    var monthFrom = document.getElementById(month_from);
    var dayTo = document.getElementById(day_to);
    var monthTo = document.getElementById(month_to);
    var d1=monthFrom.value.split("/");
    var d2=monthTo.value.split("/");    
    var dFrom = new Date();    
        dFrom.setDate(dayFrom.value);
        dFrom.setMonth(d1[0]-1);
        dFrom.setFullYear(d1[1]);
    var dTo = new Date();
        dTo.setDate(dayTo.value);
        dTo.setMonth(d2[0]-1);
        dTo.setFullYear(d2[1]);        
    if(type=='from'){
        if(dFrom >= calFrom.mindate && dFrom <= calFrom.maxdate)    calFrom.value=dFrom;
        else if(dFrom > calFrom.maxdate) calFrom.value=calFrom.maxdate;
        else calFrom.value=calFrom.mindate;
        doFromCalendar(id_from,day_from,month_from);
    }else if(type=='to'){
        if(dTo >= calTo.mindate && dTo <= calTo.maxdate && dTo >= dFrom) calTo.value=dTo;
        else if(dTo > calTo.maxdate) calTo.value=calTo.maxdate;        
        else calTo.value=calTo.mindate;
        setDateToInputs(day_to,month_to,calTo.value);
    }        
}

function onEnterpress(e, elForm) {

    //define any varible

    var KeyPress;



    //if which property of event object is supported 



    if(e && e.which) {

        e = e;

        //character code is contained in NN4's which property

        KeyPress = e.which;

    } else {

        KeyPress = e.keyCode;

    }

      

    //13 is the key code of enter key

    if(KeyPress == 13) {

        //alert(navigator.userAgent.toLowerCase().indexOf('msie'));

        if (navigator.userAgent.toLowerCase().indexOf('msie') != '-1') {

            e.returnValue = false;

        } else {

            e.preventDefault();

        }

        /* e.preventDefault();

        if(document.preventDefault)

            e.preventDefault();

        else

            e.returnValue = false;*/

        return false;

    } else {

        return true

    }

}
