jQuery(function() {

/* Searchform events */
$j("#bx_hf_tf_vertrek_heen").keyup(function() {

    i = $j("#bx_hf_tf_vertrek_heen").val().length

    if (i > 2) {
        $j("#bx_hf_hf_vertrek_heen").val($j("#bx_hf_tf_vertrek_heen").val());
        $j("#bx_hf_tf_bestemming_terug").val($j("#bx_hf_tf_vertrek_heen").val());
        
        //Fill hidden inputs
        $j("#bx_hf_hf_vertrek_heen").val($j("#bx_hf_tf_vertrek_heen").val());
        $j("#bx_hf_hf_bestemming_terug").val($j("#bx_hf_tf_vertrek_heen").val());
    }
});


$j("#bx_hf_tf_bestemming_heen").keyup(function() {

i = $j("#bx_hf_tf_bestemming_heen").val().length

    if (i > 2) {
        $j("#bx_hf_tf_bestemming_heen").val($j("#bx_hf_tf_bestemming_heen").val());
        $j("#bx_hf_tf_vertrek_terug").val($j("#bx_hf_tf_bestemming_heen").val());
        
        //Fill hidden inputs
        $j("#bx_hf_hf_bestemming_heen").val($j("#bx_hf_tf_bestemming_heen").val());
        $j("#bx_hf_hf_vertrek_terug").val($j("#bx_hf_tf_bestemming_heen").val());
    }
});

});
    


function sv(inId, inVal){
	if (document.getElementById) document.getElementById(inId).value = inVal;
}

function setDestination()
{
    //e.preventDefault();

    $j("#sample").modal({position: [50],  onOpen: function(dialog) {
        dialog.overlay.fadeIn('fast', function() {
            dialog.data.hide();
            dialog.container.fadeIn('fast', function() {
                dialog.data.fadeIn('fast');

                $j(this).oneTime(2000, function() {
                    dialog.data.fadeOut('fast', function() {
                        dialog.container.fadeOut('fast', function() {
                            $j.modal.close();
                        });
                    });
                });
            });
        });
    }
    });
     //addToBasket('search-vliegen-reis', id); // de flyToBasket
     /*$j("#bx_hf_tf_bestemming_heen").effect("highlight",{color:"#84be31"}, 2000);
     $j("#bx_hf_tf_vertrek_terug").effect("highlight",{color:"#84be31"}, 2000);*/

}

function ShowAutocomplete(tt, fld, fld_hf)
{
    var options = {
        script: flightticketautocomplete,
        varname: 'zk',
        json: true,
        shownoresults: false,
        minchars: 3,
        setWidth: true,
        minWidth: 250,
        maxWidth: 300,
        callback: function(obj) {
        if (obj.info == 'Land') bxb_initBXBautofill(tt, obj.waarde); $(fld_hf).value = obj.id; d_fcS_copydestination(fld);

            switch (fld) {
                case 'bx_hf_tf_vertrek_heen':
                    $j("#bx_hf_tf_bestemming_heen").focus();
                    break;
                case 'bx_hf_tf_bestemming_heen':
                    $j("#bx_hf_tf_datumvertrek").focus();
                    break;
//                case 'bx_hf_tf_vertrek_terug':
//                    $j("#bx_hf_tf_bestemming_terug").focus();
//                    break;
//                case 'bx_hf_tf_bestemming_terug':
//                    $j("#bx_hf_tf_datumvertrek").focus();
//                    break;
                   
                default:
                    return false;
            }

        }
    };
		var json = new AutoComplete(fld, options);return true;
}


function gv(inId){
	if (document.getElementById) {
		return document.getElementById(inId).value;
	}else{
		return '';
    }
}


function d_bx_hf_Validate(inDebug){
	if (document.getElementById) {
		var i		= 0	;
		var d_tmp 	= '';
		var i_chk 	= 0	;
		var i_vld 	= '';

		if(!gv('bx_hf_tf_vertrek_heen')){
			i_chk ++;
			i_vld = i_vld + ' - Van [leeg] \n';
		}

		if(!gv('bx_hf_tf_bestemming_heen')){
			i_chk ++; 
			i_vld = i_vld + ' - Naar [leeg]\n';
		}
		
		if(gv('bx_hf_tf_datumvertrek')){
			var d_v = gv('bx_hf_tf_datumvertrek');
		}else{
			i_chk ++;
			i_vld = i_vld + ' - Vertrekdatum [leeg]\n';
		}
		
		if(gv('bx_hf_tf_datumretour')){
			var d_r = gv('bx_hf_tf_datumretour');
		}else{	
			i_chk ++;
			i_vld = i_vld + ' - Retourdatum [leeg]\n';
		}
		
		if (d_v && d_r){
			//zet vreemde seperators om in /
			d_vS = d_v.replace(/-|;|:|\\|\.|,/g,'/');
			d_rS = d_r.replace(/-|;|:|\\|\.|,/g,'/');
			//zet datumsegmenten in een array
			var d_vA = new Array();
			var d_rA = new Array();
			for(i=0; i < d_vS.split("/").length; i++) {
				d_tmp  = d_vS.split("/")[i];
				if (!d_tmp == '') d_vA[i] = d_tmp;
			}
			for(i=0; i < d_rS.split("/").length; i++) {
				d_tmp  = d_rS.split("/")[i];
				if (!d_tmp == '') d_rA[i] = d_tmp;
			}
			
			//als elk datumveld drie datumsegementen kent
			if (d_vA[2] && d_rA[2]){
				//maak van de waarden integers zonder leading zero
				// de 10 in parseInt zorgt dat een leading zero geaccepteerd wordt. 
				var d_vDag 		= parseInt(d_vA[0],10);
				var d_vMaand 	= parseInt(d_vA[1],10);
				var d_vJaar 	= parseInt(d_vA[2],10);
				var d_rDag 		= parseInt(d_rA[0],10);
				var d_rMaand 	= parseInt(d_rA[1],10);
				var d_rJaar 	= parseInt(d_rA[2],10);
				
				//retourdatum niet eerder dan vertrekdatum
				/*var d_vertrekTest = new Date();
				var d_retourTest = new Date();
				d_vertrekTest.setYear(d_vJaar);
				d_vertrekTest.setDate(d_vDag);
				d_vertrekTest.setMonth(d_vMaand-1);
				var t_vertrekcheck = d_vertrekTest.getTime();
				d_retourTest.setYear(d_rJaar);
				d_retourTest.setDate(d_rDag);
				d_retourTest.setMonth(d_rMaand-1);
				var t_retourcheck = d_retourTest.getTime();
				var earlyDate = (t_vertrekcheck <= t_retourcheck);
				if (earlyDate == false){
					i_chk ++; 
					i_vld = i_vld + ' - Retourdatum [eerder gepland dan vertrekdatum] : ' + d_r + '\n';
				}*/
				
				
				intDepDate = parseInt(d_vA[2] + d_vA[1] + d_vA[0]);
				intRetDate = parseInt(d_rA[2] + d_rA[1] + d_rA[0]);
				
				
				if(intRetDate < intDepDate)
				{
				    i_chk ++; 
					i_vld = i_vld + ' - Retourdatum [eerder gepland dan vertrekdatum] : ' + d_r + '\n';
				}

				//plaats leading zeros terug
				if (d_vDag < 10) d_vDag = '0' + d_vDag;
				if (d_vMaand < 10) d_vMaand = '0' + d_vMaand;
				if (d_rDag < 10) d_rDag = '0' + d_rDag;
				if (d_rMaand < 10) d_rMaand = '0' + d_rMaand;
				
			var d_newV = d_vDag + "/" + d_vMaand + "/" + d_vJaar;
			var d_newR = d_rDag + "/" + d_rMaand + "/" + d_rJaar;
			
			}
		}
		
		//verwerk de test
		if (inDebug == 0) i_chk = 0;
		if (i_chk == 0 ){
			//alert('klik \n' + d_newV + '\n' + d_newR)
			//trackerCode();
			document.getElementById('bx_hf_form').submit();
		}else{
			alert(' (' + i_chk + ') Het formulier is niet correct of niet volledig ingevuld! \n Veld(en) om te controleren: \n' + i_vld);
			return false;
		}
	}
}

function trackerCode(){
	//gjalt tbv GA
	//pageTracker._setVar('/search_from/' + document.getElementById('bx_hf_tf_vertrek_heen').value + '/search_to/' + document.getElementById('bx_hf_tf_bestemming_heen').value);
	pageTracker._trackPageview('/zoek/?q=' + document.getElementById('bx_hf_tf_vertrek_heen').value + '-' + document.getElementById('bx_hf_hf_bestemming_heen').value + '&cat=fc');
}

function d_fcS_copydestination(inId){
	if (document.getElementById) {
		switch (inId){
			case 'bx_hf_tf_vertrek_heen':
				sv('bx_hf_tf_bestemming_terug',gv('bx_hf_tf_vertrek_heen'));
				sv('bx_hf_hf_bestemming_terug',gv('bx_hf_hf_vertrek_heen'));
				break;
			case 'bx_hf_tf_bestemming_heen':
				sv('bx_hf_tf_vertrek_terug',gv('bx_hf_tf_bestemming_heen'));
				sv('bx_hf_hf_vertrek_terug',gv('bx_hf_hf_bestemming_heen'));
				break;
			default:
				return false;
		}
	}
}

function d_fcS_crsSwitch(inVal){
	// perform CRS Switch on callback bx_hf_tf_bestemming_heen
	sv('bx_hf_hf_crs_switch','WORLDTICKETCENTER');
	//if (inVal == 'NAM') sv('bx_hf_hf_crs_switch','WORLDTICKETCENTERWSP');
}

function d_fcS_DisableFields(enabled){
	var fldLst='bx_hf_tf_vertrek_terug,bx_hf_tf_bestemming_terug,bx_hf_tf_datumretour'
	var fields=fldLst.split(","), i;
	for (i=0; i<fields.length; i++){
		field = document.getElementById(fields[i]);
		if (enabled){
			field.disabled = true;
			field.style.backgroundColor = "CCCCCC";
		}else{
			field.disabled = false;
			field.style.backgroundColor = "FFFFFF";
		}
	}
}

// landen-bestemming selectie

var bxb_aLanden = new Array('Afghanistan','Albanie','Algerije','Amerikaanse Maagdeneilanden','Andorra','Angola','Anguilla','Antarctica','Antigua en Barbuda','Antillen','Argentinie','Armenie','Aruba','Australie','Azerbeidzjan','Azoren','Bahamas','Bahrein','Bangladesh','Barbados','Belgie','Belize','Benin','Bermuda','Bhutan','Boeroendi','Bolivia','Bolivie','Bophuthatswana','Bosnie-Herzegovina','Botswana','Brazilie','Brunei','Bulgarije','Burkina Faso','Cambodja','Canada','Canarische Eilanden','Cayman Eilanden','Centraal Afrika','Centraal Afrikaanse Republiek','Chili','China','Cocos Eilanden','Colombia','Comoren','Congo','Cook Eilanden','Costa Rica','Cuba','Cyprus','Denemarken','Djibouti','Dominica','Dominicaanse Republiek','Duitsland','Ecuador','Egypte','El Salvador','Equatorial Guinea','Estland','Ethiopie','Falkland Eilanden','Faroe Eilanden','Fiji','Filipijnen','Finland','Frankrijk','Frans Guyana','Frans Polynesie','Gabon','Gambia','Georgie','Ghana','Grenada','Griekenland','Groenland','Groot-Brittanie','Guadeloupe','Guatemala','Guinea','Guyana','Haiti','Honduras','Hongarije','Hongkong','Ierland','Ijsland','India','Indonesie','Irak','Iran','Israel','Italie','Ivoorkust','Jamaica','Japan','Jemen','Joegoslavie','Jordanie','Kaapverdie','Kameroen','Kazachstan','Kenia','Kiribati','Koeweit','Korea','Kroatie','Laos','Latvia','Leeward Eilanden','Lesotho','Letland','Libanon','Liberia','Libie','Litouwen','Luxemburg','Maagdeneilanden','Macau','Macedonie','Madagascar','Malawi','Malediven','Maleisie','Mali','Malta','Mariana Eilanden','Marokko','Marshall Eilanden','Mauritanie','Mauritius','Mayotte','Mexico','Micronesie','Midway Eilanden','Moldavie','Monaco','Mongolie','Montenegro','Montserrat Eilanden','Mozambique','Myanmar','Namibie','Nauru','Nederland','Nepal','Nicaragua','Nieuw Caledonie','Nieuw Zeeland','Niger','Nigeria','Niue','Noord Ierland','Noorwegen','Oeganda','Oekraine','Oezbekistan','Oman','Oostenrijk','Pakistan','Palau Eiland','Palestina','Panama','Papua Nieuw Guinea','Paraguay','Peru','Phoenix Eilanden','Polen','Portugal','Puerto Rico','Qatar','Reunion Eilanden','Roemenie','Rusland','Rwanda','Saint Kitts & Nevis','Salamons Eilanden','Samoa','San Marino','Sao Tome & Principe','Saoedi-Arabie','Senegal','Servie-Montenegro','Seychellen','Shetland Eilanden','Sierra Leone','Singapore','Sint Kitts & Nevis','Sint Lucia Eiland','Sint Pierre & Miquelon','Sint Vincent Grenadines','Sint-Helena','Slovenie','Slowakije','Solomon Eilanden','Somalie','Spanje','Sri Lanka','Sudan','Suriname','Svalbard & Jan Mayen Eilanden','Swaziland','Syrie','Taiwan','Tajikistan','Tanzania','Tavalu Eiland','Thailand','Timor-Leste','Togo','Tonga','Trinidad & Tobago','Tsjaad','Tsjechie','Tuamotu Eilanden','Tunesie','Turkije','Turkmenistan','Turks & Caicos Eilanden','Uruguay','Vanuatu','Venezuela','Verenigde Arabische Emiraten','Verenigde Staten','Verenigde Staten, Hawaii','Vietnam','Wallis & Futuna','Wit-Rusland','Zambia','Zimbabwe','Zuid-Afrika','Zweden','Zwitserland');

var bxb_aBest	= new Array;
var bxb_setFld	= '';

function bxb_initBXB(inFld){
	bxb_setFld = inFld;
	bxb_setLetterLijst('L');
	bxb_initLanden();
	$('fccontainer').setStyle({display: 'none'});
	$('contcont').setStyle({display: 'none'});
	$('bxb_container').setStyle({display: 'block'});
}

function bxb_initBXBautofill(inFld,inLand){
	bxb_setFld = inFld;
	$('bxb_autofill_land').innerHTML = inLand
	bxb_setLetterLijst('B');
	bxb_setLand('bxb_autofill_land');
	$('fccontainer').setStyle({display: 'none'});
	$('contcont').setStyle({display: 'none'});
	$('bxb_container').setStyle({display: 'block'});
}

function bxb_setLetterLijst(inType){
	var lis	= '';
	var let	= 'A';
	var fun = 'bxb_initLanden';
	if (inType == 'B') fun = 'bxb_initBest';
	(26).times(function(x) {
		lis = lis + '<li onclick="' + fun + '(this);">' + let + '<\/li>';
		let = let.succ();
	});
	lis = lis + '<li onclick="' + fun + '(this);">*<\/li>';
	$('bxb_letter_lijst').update(lis);
}

function bxb_initLanden(inEl){
	var getLet	= '';
	if (inEl) getLet = $(inEl).innerHTML;
	if (getLet == '*' || getLet == ''){
		var bLanden	= bxb_aLanden.clone();
		$('bxb_msgbox').update('Kies een land of verfijn de selectie door een beginletter te selecteren.');
	}else{
		var bLanden	= bxb_aLanden.grep(new RegExp('^' + getLet,'i'));
	}
	var alSize 	= bLanden.size();
	var alKols 	= 4;
	var alRows 	= Math.ceil(alSize/alKols);
	var uls 	= '';
	(alKols).times(function(x) {
		var lis 	= '';
		var alCnt	= x*alRows;
		(alRows).times(function(n) {
			var aNode = bLanden[n+alCnt];
			if (aNode != null) lis = lis + '<li onclick="bxb_setLand(this);">' + aNode + '<\/li>';
		});
		uls = uls + '<ul class="bxb_landen_lijst">' + lis + '<\/ul>';
	});
	uls = uls + '<div class="break"><\/div>';
	$('bxb_resultbox').update(uls);
}

function bxb_setLand(inEl){
	bxb_setLetterLijst('B');
	var getLand = $(inEl).innerHTML;
	bxb_aBest.clear();
	$('bxb_resultbox').update('<div id="bxb_progress"><img src="http://www.worldticketcenter.nl/backoffice/image/web/ajax-loader.gif" alt="" /><\/div>');
	$('bxb_msgbox').update('Kies uit bestemmingen in: ' + getLand);
	var oUrl 	= 'http://www.worldticketcenter.nl/two/ws/bxb.asp'
	var oPar 	= 'bxb=' + getLand;
	var myAjax 	= new Ajax.Request(	oUrl, {
					method		: 'get', 
					parameters	: oPar, 
					onSuccess	: function(resultaat){
						
						var json = eval('(' + resultaat.responseText + ')');
						aSug = json.results;
						(aSug.length).times(function(x){ bxb_aBest.push(aSug[x].city); });
						bxb_initBest();
					
					}
				});
}

function bxb_initBest(inEl){
	var getLet	= '*';
	if (inEl) getLet = $(inEl).innerHTML;
	if (getLet == '*' || getLet == ''){
		var bBest	= bxb_aBest.clone();
	}else{
		var bBest	= bxb_aBest.grep(new RegExp('^' + getLet,'i'));
	}
	var alSize 	= bBest.size();
	var alKols 	= 4;
	var alRows 	= Math.ceil(alSize/alKols);
	var uls 	= '';
	(alKols).times(function(x) {
		var lis 	= '';
		var alCnt	= x*alRows;
		(alRows).times(function(n) {
			var aNode 		= bBest[n+alCnt];
			var injClass 	= '';
			if (aNode != null) {
				if(aNode.include('all airports')) injClass = 'class="bxb_mainairport"';
				lis = lis + '<li ' + injClass + ' onclick="bxb_setBest(this);">' + aNode + '<\/li>';
			}
		});
		uls = uls + '<ul class="bxb_landen_lijst">' + lis + '<\/ul>';
	});
	uls = uls + '<div class="break"><\/div>';
	$('bxb_resultbox').update(uls);
}

function bxb_setBest(inEl){
	bxb_setLetterLijst('B');
	var getLand = $(inEl).innerHTML;
	bxb_aBest.clear();
	$('bxb_resultbox').update('<div id="bxb_progress"><img src="http://www.worldticketcenter.nl/backoffice/image/web/ajax-loader.gif" alt="" /><\/div>');
	var oUrl 	= 'http://www.worldticketcenter.nl/two/ws/bxb.asp'
	var oPar 	= 'type=best&bxb=' + getLand;
	var myAjax 	= new Ajax.Request(	oUrl, {
					method		: 'get', 
					parameters	: oPar, 
					onComplete	: function(resultaat){
						
						var json = eval('(' + resultaat.responseText + ')');
						aSug = json.results;
						switch(bxb_setFld){
							case 'hv':
								$('bx_hf_tf_vertrek_heen').value = aSug[0].city;
								$('bx_hf_hf_vertrek_heen').value = aSug[0].iata;
								$('bx_hf_tf_bestemming_terug').value = aSug[0].city;
								$('bx_hf_hf_bestemming_terug').value = aSug[0].iata;
							  	break;    
							case 'hb':
								$('bx_hf_tf_bestemming_heen').value = aSug[0].city;
								$('bx_hf_hf_bestemming_heen').value = aSug[0].iata;
								$('bx_hf_tf_vertrek_terug').value = aSug[0].city;
								$('bx_hf_hf_vertrek_terug').value = aSug[0].iata;
							  	break;
							case 'rv':
								$('bx_hf_tf_vertrek_terug').value = aSug[0].city;
								$('bx_hf_hf_vertrek_terug').value = aSug[0].iata;
							  	break;
							case 'rb':
								$('bx_hf_tf_bestemming_terug').value = aSug[0].city;
								$('bx_hf_hf_bestemming_terug').value = aSug[0].iata;
							  	break;
							default:
								//none
						}
						$('bxb_container').setStyle({display: 'none'});
						$('fccontainer').setStyle({display: 'block'});
						$('contcont').setStyle({display: 'block'});
					}
				});
}

function bxb_resetBXB(){
	bxb_aBest.clear();
	$('bxb_container').setStyle({display: 'none'});
	$('fccontainer').setStyle({display: 'block'});
	$('contcont').setStyle({display: 'block'});
}
