var currentTime = new Date();
var tomorrowDate = new Date();
tomorrowDate.setDate(currentTime.getDate()+1);
var departDate = new Date();
var returnDate = new Date();
var d1,d2;

window.addEvent('domready', function() {
 
    new Autocompleter.Ajax.Json('from_input', 'air.php', {
        'postVar': 'autocomplete_parameter'
    });
    
    new Autocompleter.Ajax.Json('to_input', 'air.php', {
        'postVar': 'autocomplete_parameter'
    });
    
    $('one_way').addEvent('click', function(event){  
          if (trip=='round')
          {
            $('return').fade('out');
            trip = 'one_way';
            $('Oneway').set('checked', 'checked');
          }
    });
    
    $('round_trip').addEvent('click', function(event){  
          if (trip=='one_way')
          {
            $('return').fade('in');
            trip = 'round';
            $('Roundtrip').set('checked', 'checked');
            if (d2==null)
            {
                $('tbReturn').set('value', departMonth+"/"+ departDay+"/20"+ departYear);
                d2 = new vlaDatePicker('tbReturn',{prefillDate: 'true',format: 'm/d/y', openWith: 'return', offset: { x: -140, y: -155 } });
                d2.linkedUpdate(); 
            }
          }
    });
    
    inject_parameters();
});

function submit(active)
{
    if (active==null) active=0;
    
    // Variables
    var airportCodeRegEx = '';
    var error_message = '';
    var errors = false;
    
    //num of travelers 
    travelers =  $('num_travelers').get('value');
    
    //from aireport code
    fromCode =  $('from_input').get('value');
    var match1 = /.*\s?\(...\)$/.test(fromCode);
    var match2 = /[A-Za-z][A-Za-z][A-Za-z]$/.test(fromCode);
    if (match1 || match2) 
    { 
        if (match1) fromCode = fromCode.substring(fromCode.length-4,fromCode.length-1);
    }
    else
    {
        errors = true;
        error_message+= '* From - airport code is not in the right format \r\n';
    }
    
    //to aireport code
    toCode =  $('to_input').get('value');
    var match1 = /.*\s?\(...\)$/.test(toCode);
    var match2 = /[A-Za-z][A-Za-z][A-Za-z]$/.test(toCode);
    if (match1 || match2) 
    { 
        if (match1) toCode = toCode.substring(toCode.length-4,toCode.length-1);
    }
    else
    {
        errors = true;
        error_message+= '* TO - airport code is not in the right format \r\n';
    }
    
    //depart get date
    departYear = $('tbDepart').get('value').substring(8,10);
    departMonth = $('tbDepart').get('value').substring(0,2);
    departDay = $('tbDepart').get('value').substring(3,5);
    departDate.setFullYear(20+departYear,departMonth-1,departDay);
    if (departDate<currentTime) {
        errors = true;
        error_message+= '* Depart date is eralier then Today\r\n';
    }
    
    if (errors==false)
    {
        //round trip or one-way
        if ($('Roundtrip').checked == true) 
        {
            //return get date
            ReturnYear = $('tbReturn').get('value').substring(8,10);
            ReturnMonth = $('tbReturn').get('value').substring(0,2);
            returnDay = $('tbReturn').get('value').substring(3,5);
            returnDate.setFullYear(20+ReturnYear,ReturnMonth-1,returnDay);
            if (returnDate<departDate) {
                errors = true;
                error_message+= '* Return date is eralier then Depart date.\r\n';
            }
            else window.location = 'http://www.joongel.com/search.php?cat_id=30&string=1&active='+active+'&query1='+travelers+'&query2='+fromCode+'&query3='+toCode+'&query4='+departMonth+'&query5='+departYear+'&query6='+departDay+'&query7='+ReturnMonth+'&query8='+ReturnYear+'&query9='+ returnDay;
        }
        else
        {
            window.location = 'http://www.joongel.com/search.php?cat_id=30&string=2&active='+active+'&query1='+travelers+'&query2='+fromCode+'&query3='+toCode+'&query4='+departMonth+'&query5='+departYear+'&query6='+departDay;
        }
    }
    else
    {
        alert ('Some errors was found:\r\n\n'+error_message+"\r\n\n Please recheck your input");
    }
}

function inject_parameters()
{
    var tomorrow =  (tomorrowDate.getDate());
    var thisMonth =  (tomorrowDate.getMonth()+1);
    var thisYear = (tomorrowDate.getFullYear());
    //set depart date
    if (departYear.length>0)
    {
        $('tbDepart').set('value', departMonth+'/'+departDay+"/20"+departYear);
        d1 = new vlaDatePicker('tbDepart',{prefillDate: { day: departDay, month: departMonth, year: departYear },format: 'm/d/y', openWith: 'depart', offset: { x: -140, y: -155 } }); 
    }
    else 
    {
       //$('tbDepart').set('value', thisMonth+'/'+tomorrow+"/"+thisYear);
        d1 = new vlaDatePicker('tbDepart',{prefillDate: { day: tomorrow, month: thisMonth, year: thisYear },format: 'm/d/y', openWith: 'depart', offset: { x: -140, y: -155 } });
    }
    d1.linkedUpdate();
    
    //set travelers
    if (travelers.length>0)
    {
        $('num_travelers').getElements('option[value='+travelers+']').set('selected','selected');
    }
    //set roundtrip
    if (trip == 'round') 
    {
        $('Roundtrip').set('checked', 'checked');
        if (returnYear.length>0)
        {
            $('tbReturn').set('value', returnMonth+'/'+returnDay+"/20"+returnYear);    
            d2 = new vlaDatePicker('tbReturn',{prefillDate: { day: returnDay, month: returnMonth, year: returnYear },format: 'm/d/y', openWith: 'return', offset: { x: -140, y: -155 } }); 
        }
        else d2 = new vlaDatePicker('tbReturn',{prefillDate: { day: tomorrow, month: thisMonth, year: thisYear },format: 'm/d/y', openWith: 'return', offset: { x: -140, y: -155 } });
    }
    else 
    { 
        $('Oneway').set('checked', 'checked');
        $('return').fade('out');
    }
    
    if (fromCode.length>0)
    {
        $('from_input').set('value',fromCode);
    }
    
    if (toCode.length>0)
    {
        $('to_input').set('value',toCode);
    }
}

function dateChanged(name,dDay,dMonth,dYear)
{
    if (name=="tbDepart") {
        var dateD = new Date(d1.getInputDate().substr(8,2),d1.getInputDate().substr(3,2)-1,d1.getInputDate().substr(0,2));
        var dateR = new Date(d2.getInputDate().substr(8,2),d2.getInputDate().substr(3,2)-1,d2.getInputDate().substr(0,2));
        if (dateD>dateR) $('tbReturn').set('value', dMonth+"/"+ dDay+"/"+ dYear);
        d2.linkedUpdate(); 
    }
}