// return an object for a string or an object (just in case) 
var agent=navigator.userAgent.toLowerCase(); 
var isIE=(agent.indexOf('msie') != -1) ? true : false; 
var isDOM=(typeof(document.getElementById) != 'undefined' && !isIE) ? true : false; 
var isNav4=(agent.indexOf('mozilla') != -1 && !isDOM && !isIE) ? true : false; 
// return an object for a string or an object (just in case) 
function getObject(daName){ 
        var daObj; 
        if(typeof(daName) == "string"){ 
                if(isDOM){ 
                        daObj = document.getElementById(daName); 
                }else if(isIE){ 
                        daObj = eval("document.all." + daName); 
                }else{ 
                        daObj = eval("document." + daName); 
                } 
        }else{ 
                daObj = daName; 
        } 
        return daObj; 
} 

function toggleQQ(name){
	var layers = new Array(3);
	layers['RoundTrip'] = getObject('RoundTrip'); 
	layers['OneWay'] = getObject('OneWay'); 
	layers['OpenJaw'] = getObject('OpenJaw'); 
	
	var tabs = new Array(3);
	tabs['RoundTrip'] = getObject('RoundTripTab'); 
	tabs['OneWay'] = getObject('OneWayTab'); 
	tabs['OpenJaw'] = getObject('OpenJawTab');
	
	var lastItem = 'OpenJaw'; 
	
	for (var key in layers) {
		if(key == name) {
			layers[key].style.display = 'block';
			tabs[key].className = 'Tab On';
		} else {
			layers[key].style.display = 'none';
			tabs[key].className = 'Tab';
		}
		if(key == lastItem) {
			tabs[key].className = tabs[key].className+' Last';
		}
	}
}

function initQQ(tripType) {
	toggleQQ(tripType);
	document.forms[tripType+'Form'].elements['outbound[from]'].focus();
	updateCity(document.forms['RoundTripForm'].elements['outbound[from]'].value, 'RTOutboundFromCity');
	updateCity(document.forms['RoundTripForm'].elements['outbound[to]'].value, 'RTOutboundToCity');
	updateCity(document.forms['OneWayForm'].elements['outbound[from]'].value, 'OWOutboundFromCity');
	updateCity(document.forms['OneWayForm'].elements['outbound[to]'].value, 'OWOutboundToCity');
	updateCity(document.forms['OpenJawForm'].elements['outbound[from]'].value, 'OJOutboundFromCity');
	updateCity(document.forms['OpenJawForm'].elements['outbound[to]'].value, 'OJOutboundToCity');
	updateCity(document.forms['OpenJawForm'].elements['inbound[from]'].value, 'OJInboundFromCity');
	updateCity(document.forms['OpenJawForm'].elements['inbound[to]'].value, 'OJInboundToCity');
}

function toggleAdvanced(id) {
	adv = getObject(id+'Content');
	advImg = getObject(id+'Button');
	advFlag = getObject(id+'Flag');
	if(adv.style.display == 'none') {
		adv.style.display = 'block';
		advImg.src = '/images/min.gif';
		advFlag.value = 1;
	} else {
		adv.style.display = 'none';
		advImg.src = '/images/max.gif';
		advFlag.value = 0;
	}
}

function initAdvanced() {
	advFlag = getObject('RTAdvancedFlag');
	//I can use RT because OW and OJ will always have the same value.
	if(advFlag.value == 1) {
		toggleAdvanced('RTAdvanced');
		toggleAdvanced('OWAdvanced');
		toggleAdvanced('OJAdvanced');
	}
}

function updateCity(airport, id) {
	if(airport != '') {
		var http = getHTTPObject();
		http.open("GET", "/get_city.php?airport="+airport, false);
		http.send(null);
		getObject(id).innerHTML = http.responseText;
	}
 }
 
function getHTTPObject() {
	var xmlhttp = false;
	if (window.XMLHttpRequest) { //Mozilla XML request
		xmlhttp = new XMLHttpRequest();
	} else if (window.ActiveXObject) { //IE XML request
		xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	}
	return xmlhttp;
}

function toggleButton(button) {
	if(button.className != 'Button') {
		button.className = 'Button';
	} else {
		button.className = 'ButtonOn';
	}
}

function popup(name, url, width, height, scroll) {
	scrolling = (scroll==1)?'yes':'no';
	mywin = window.open(url, name,"menubar=no,resizable,scrollbars="+scrolling+",status=no,width="+width+",height="+height);
	mywin.focus();
	return false;
}

var explainedPassengers = false;
function checkPassengers(formname, changed) {
	my_form = document.forms[formname];
	updated = false;
	
	if(changed == 'ADT' && my_form.elements['passengers[ADT]'].options.selectedIndex != 0) {
		if(my_form.elements['passengers[MIS]'].options.selectedIndex != 0 || my_form.elements['passengers[STU]'].options.selectedIndex != 0) {
			my_form.elements['passengers[MIS]'].options.selectedIndex = 0;
			my_form.elements['passengers[STU]'].options.selectedIndex = 0;
			updated = true;
		}
	} else if(changed == 'CHD' && my_form.elements['passengers[CHD]'].options.selectedIndex != 0) {
		if(my_form.elements['passengers[STU]'].options.selectedIndex != 0) {
			my_form.elements['passengers[STU]'].options.selectedIndex = 0;
			updated = true;
		}
	} else if(changed == 'STU' && my_form.elements['passengers[STU]'].options.selectedIndex != 0) {
		if(my_form.elements['passengers[MIS]'].options.selectedIndex != 0 || my_form.elements['passengers[ADT]'].options.selectedIndex != 0 || my_form.elements['passengers[CHD]'].options.selectedIndex != 0) {
			my_form.elements['passengers[ADT]'].options.selectedIndex = 0;
			my_form.elements['passengers[CHD]'].options.selectedIndex = 0;
			my_form.elements['passengers[MIS]'].options.selectedIndex = 0;
			updated = true;
		}
	} else if(changed == 'MIS' && my_form.elements['passengers[MIS]'].options.selectedIndex != 0) {
		if(my_form.elements['passengers[STU]'].options.selectedIndex != 0 || my_form.elements['passengers[ADT]'].options.selectedIndex != 0) {
			my_form.elements['passengers[ADT]'].options.selectedIndex = 0;
			my_form.elements['passengers[STU]'].options.selectedIndex = 0;
			updated = true;
		}
	}
	
	if(updated && !explainedPassengers) {
		alert('Your passenger values have been changed for you to match a valid passenger combination.\nValid passenger combinations are as follows:\n\n- only Adults\n- Adults & Children\n- only Students\n- only Humanitarian\n- Humanitarian and Children\n\nThis message will only be displayed once.');
		explainedPassengers = true;
	}
}