var mic = 'hyts4nj';    
var autosuggest_options = {
            script:"http://gsw.bootsnall.com/ajax.php?jsjson=true&",
            varname:"input",
            json:true
    };
    
var josnx_url = 'http://gsw.bootsnall.com/ajax.php'; 
var josnx_trk = 'http://gsw.bootsnall.com/tracking/add.php?jsoncallback=?'; 
var gsw_src_img = new Image(133,32);
gsw_src_img.src = 'http://gsw.bootsnall.com/templates/default/images/searching.gif';   
var gsw_res_tpl = 'airfare-bna';

$(document).ready(function() {    
    $('.gsw_submit_but').click(gsw_submit);
    $("#depart_date, #return_date").datepicker({beforeShow: customRange});    
    $('#depart_date, #return_date').unbind('keyup').unbind('keydown');
    var as_json = new AutoSuggest('flights_from', autosuggest_options);
    var as_json2 = new AutoSuggest('flights_to', autosuggest_options); 
       
    $('#flights_from, #flights_to').blur(function(){as_json.clearSuggestions()});
    gsw_src_orig_src = jQuery('.gsw_submit_but').attr('src');        
    
    $('input[name="R1"]').change(function(){
        if($(this).val() == 'V2'){
            $('#return_date').attr('disabled','disabled');
        }else{
            $('#return_date').removeAttr('disabled');
        }
    });
    
    var gswldrimg = new Image();
    gswldrimg.src = 'http://cdn.bootsnall.com/gswst/images/progress.gif';
    var gswldrpos = navigator.userAgent.search("MSIE") > 0 ? 'absolute' : 'fixed';
    $('<div id="gsw_overlay"/>').css('z-index','999').css({
        position: gswldrpos,top: 0,left: 0,width: '100%',height: '100%',background: '#FFFFFF no-repeat center',color:'#000000', display:'none'
    }).css('background-image','url('+gswldrimg.src+')').hide().appendTo('body');
    
    
});

function customRange(input) { 
    var mDate = (input.id == "depart_date" ? new Date() : $("#depart_date").datepicker("getDate"));
    return { minDate: mDate}; 
}

function gsw_submit(){
    gsw_animate_src_but();
    
    var departure = $('#flights_from').val();
    var destination = $('#flights_to').val();
    var dep_date = $('#depart_date').val();
    var ret_date = $('#return_date').val();
    var oneway = $('input[name="R1"][value="V2"]').attr('checked') ? 1:0;
    
    departure = departure.replace(/\(([^)]+)\)(.+)/,'$1');
    destination = destination.replace(/\(([^)]+)\)(.+)/,'$1');
    
    val_err = false;
    mult_from = mult_to = false;
    fr_fix = to_fix = false;
    $('#flights_from, #flights_to, #depart_date, #return_date').css('background-color','#ffffff');    
    $.ajaxSetup({async: false});
    $.getJSON(josnx_url + '?' + 'check_air='+departure+'|'+destination + '&jsoncallback=?', function(msg){        
        spl = msg.result.split('|');
        if(spl[0]=='0'){
            if(!spl[1]){
                $('#flights_from').css('background-color','#ffd3d3');
                val_err = true;
            }else if(spl[1].charAt(0)=='@'){    
                mult_from = spl[1].substr(1);                
            }else{
                $('#flights_from').attr('value',spl[1]);
                fr_fix = true;
            }
        }
        if(spl[2]=='0'){
            if(!spl[3]){
                $('#flights_to').css('background-color','#ffd3d3');
                val_err = true;
            }else if(spl[3].charAt(0)=='@'){
                mult_to = spl[3].substr(1);                
            }else{
                $('#flights_to').attr('value',spl[3]);
                to_fix = true;
            }
        } 

        if(val_err){
            gsw_reset_src_but();
            alert('The city or airport code(s) in the highlighted fields are not recognized. Please try again and select from one of the suggested locations that appear when typing.');
            return false;
        }
        
        var val_err_date = false;
        if(!dep_date || !ret_date){
            if(!dep_date) $('#depart_date').css('background-color','#ffd3d3');
            if(!ret_date) $('#return_date').css('background-color','#ffd3d3');
            val_err_date = true;
        }else{
            var now = new Date();
            var ef_dep = new Date();
            var ef_ret = new Date();
            var spl_d = dep_date.split('/');
            var spl_r = ret_date.split('/');    
            ef_dep.setFullYear(parseInt(spl_d[2]),parseInt(spl_d[0].replace(/^0/,''))-1,parseInt(spl_d[1].replace(/^0/,'')));
            ef_ret.setFullYear(parseInt(spl_r[2]),parseInt(spl_r[0].replace(/^0/,''))-1,parseInt(spl_r[1].replace(/^0/,'')));        
            if(ef_dep < now || ef_dep > ef_ret || !dep_date.match(/\d{1,2}\/\d{1,2}\/\d{4}/)){
                $('#depart_date').css('background-color','#ffd3d3');
                val_err_date = true;
            }
            if(ef_ret < now || ef_dep > ef_ret || !ret_date.match(/\d{1,2}\/\d{1,2}\/\d{4}/)){
                $('#return_date').css('background-color','#ffd3d3');
                val_err_date = true;
            }    
        }            
        if(val_err_date){
            gsw_reset_src_but();
            alert('Please enter correct departure and return dates'); 
            return false;
        }    
        
        var URL = "http://gsw.bootsnall.com/results.php?display_inline=0&action=search_flights&oneway="+oneway+"&to=" + destination + "&from=" + departure + "&depart_date=" + dep_date + "&return_date=" + ret_date + "&mic=" + mic + '&tpl='+gsw_res_tpl;    
               
        if(mult_from){
            URL = URL + '&mult_from=' + mult_from;
        }    
        if(mult_to){
            URL = URL + '&mult_to=' + mult_to;
        } 
        
        if(fr_fix){
            URL = URL.replace(/from=([^&]+)&/,'from='+$('#flights_from').val().replace(/\(([^)]+)\)(.+)/,'$1')+'&');
        }           
        if(to_fix){
            URL = URL.replace(/to=([^&]+)&/,'to='+$('#flights_to').val().replace(/\(([^)]+)\)(.+)/,'$1')+'&');
        }                           
            
        $.ajaxSetup({async: false});
        this.req = jQuery.getJSON(josnx_trk, {ajx_action:'add_record',domain:location.host,page:location.pathname}, function(){
            $('#search_fare_action').attr('action',URL);
            $('#search_fare_action').submit();
            //top.location.href=URL; 
        });        
        $.ajaxSetup({async: true});
                
        
    });
}

function gsw_animate_src_but(){
    jQuery('#gsw_overlay').fadeIn('fast');    
}
var gsw_src_orig_src = '';
function gsw_reset_src_but(){
    jQuery('#gsw_overlay').fadeOut('fast');    
}
