var highlightColor = '#f58024';
var colorMarker =  document.getElementById('white');

if (colorMarker){
    var noHighLightColor = 'white';
} else {
    var noHighLightColor = '#3A5474';
}

function showHide()
{	
	var selMenu = document.getElementById('airline_select');
	var airline = selMenu.options[selMenu.selectedIndex].value;
    
    var isBlocked = document.getElementById('airlineId_'+airline);

	var numPass = document.getElementById('numPass');

	var price = document.getElementById('price');
	var confCode = document.getElementById('confCode');
	var cities2 = document.getElementById('cities2');
	var cities1 = document.getElementById('cities1');
	var firstName = document.getElementById('firstName');
	var lastName = document.getElementById('lastName');
	var myDate = document.getElementById('myDate');
	var fullName = document.getElementById('fullName');
    var trackButton = document.getElementById('trackButton');
    var noSupTxt = document.getElementById('noConfSupText');
    var noSupBtn = document.getElementById('noConfSupBtn');
    var poe = document.getElementById('poe');
	//trackButton.style.display = '';


	if (airline == 'blank')
	{
		price.style.display = 'none';
		cities2.style.display = 'none';
		cities1.style.display = 'none';
		firstName.style.display = 'none';
		lastName.style.display = 'none';
		myDate.style.display = 'none';
		fullName.style.display = 'none';
        confCode.style.display = 'none';
        noSupTxt.style.display = 'none';
        noSupBtn.style.display = 'none';
        trackButton.style.display = 'none';
        poe.style.display = 'none';

	}
    // Frontier
	else if (airline == '11' || isBlocked)
        {
                price.style.display = 'none';
        cities2.style.display = 'none';
        cities1.style.display = 'none';
                firstName.style.display = 'none';
                lastName.style.display = 'none';
                myDate.style.display = 'none';
                fullName.style.display = 'none';
            confCode.style.display = 'none';
        noSupTxt.style.display = '';
        noSupBtn.style.display = '';
        trackButton.style.display = 'none';
        poe.style.display = 'none';
        }
    // ATA
    else if (airline == '4')
    {
        noSupTxt.style.display = 'none';
        noSupBtn.style.display = 'none';
        price.style.display = 'none';
        cities2.style.display = 'none';
        cities1.style.display = 'none';
        firstName.style.display = 'none';
        lastName.style.display = '';
        myDate.style.display = 'none';
        fullName.style.display = 'none';
        confCode.style.display = '';
        trackButton.style.display = '';
        poe.style.display = '';
    }
    // AirTran
    else if (airline == '13')
    {
        noSupTxt.style.display = 'none';
        noSupBtn.style.display = 'none';
        price.style.display = 'none';
        cities2.style.display = 'none';
        cities1.style.display = '';
        firstName.style.display = '';
        lastName.style.display = '';
        myDate.style.display = 'none';
        fullName.style.display = 'none';
        confCode.style.display = '';
        trackButton.style.display = '';
        poe.style.display = 'none';
    }
    // alaska or united
    else if (airline == '8' || airline == '2')
	{
        noSupTxt.style.display = 'none';
        noSupBtn.style.display = 'none';
        price.style.display = 'none';
		cities2.style.display = 'none';
		cities1.style.display = 'none';
                firstName.style.display = 'none';
                lastName.style.display = '';
                myDate.style.display = 'none';
                fullName.style.display = 'none';
	        confCode.style.display = '';
        trackButton.style.display = '';
        poe.style.display = 'none';
	}
    // Delta
	else if (airline == '6')
	{
                price.style.display = 'none';
		cities2.style.display = 'none';
		cities1.style.display = 'none';
                firstName.style.display = '';
                lastName.style.display = '';
                myDate.style.display = 'none';
                fullName.style.display = 'none';
	        confCode.style.display = '';
        noSupTxt.style.display = 'none';
        noSupBtn.style.display = 'none';
        trackButton.style.display = '';
        poe.style.display = 'none';
	}
        // 'America West' or 'US Airways'
        else if ((airline == '3' || airline == '10'))
        {
                price.style.display = 'none';
		cities2.style.display = 'none';
		cities1.style.display = 'none';
                firstName.style.display = 'none';
                lastName.style.display = 'none';
                myDate.style.display = '';
                fullName.style.display = 'none';
	        confCode.style.display = '';
        noSupTxt.style.display = 'none';
        noSupBtn.style.display = 'none';
        trackButton.style.display = '';
        poe.style.display = 'none';
        }
        // American
        else if (airline == '1')
        {
                price.style.display = '';
		cities2.style.display = 'none';
		cities1.style.display = 'none';
                firstName.style.display = '';
                lastName.style.display = '';
                myDate.style.display = 'none';
                fullName.style.display = 'none';
	        confCode.style.display = '';
        noSupTxt.style.display = 'none';
        noSupBtn.style.display = 'none';
        trackButton.style.display = '';
        poe.style.display = 'none';
        }
    //jetblue
	else if (airline == '7')
        {
                price.style.display = 'none';
		cities2.style.display = '';
		cities1.style.display = '';
                firstName.style.display = 'none';
                lastName.style.display = '';
                myDate.style.display = 'none';
                fullName.style.display = 'none';
	        confCode.style.display = '';
            noSupTxt.style.display = 'none';
            noSupBtn.style.display = 'none';
            trackButton.style.display = '';
            poe.style.display = 'none';
        }
    //nwa
	else if (airline == '9')
        {
                price.style.display = '';
		cities2.style.display = 'none';
		cities1.style.display = 'none';
                firstName.style.display = 'none';
                lastName.style.display = '';
                myDate.style.display = 'none';
                fullName.style.display = 'none';
	        confCode.style.display = '';
            noSupTxt.style.display = 'none';
            noSupBtn.style.display = 'none';
            trackButton.style.display = '';
            poe.style.display = 'none';
        }
    //swa
	else if (airline == '12')
        {
                price.style.display = '';
                cities2.style.display = 'none';
                cities1.style.display = 'none';
                firstName.style.display = '';
                lastName.style.display = '';
                myDate.style.display = 'none';
                fullName.style.display = 'none';
	        confCode.style.display = '';
            noSupTxt.style.display = 'none';
            noSupBtn.style.display = 'none';
            trackButton.style.display = '';
            poe.style.display = 'none';
        }
    //CONTINENTAL
	else if (airline == '5')
        {
                price.style.display = 'none';
 		cities2.style.display = 'none';
		cities1.style.display = 'none';
                firstName.style.display = 'none';
                lastName.style.display = '';
                myDate.style.display = 'none';
                fullName.style.display = 'none';
	        confCode.style.display = '';
            noSupTxt.style.display = 'none';
            noSupBtn.style.display = 'none';
            trackButton.style.display = '';
            poe.style.display = 'none';
        }
        //midwest
        else if (airline == '14')
        {
                price.style.display = 'none';
        cities2.style.display = 'none';
        cities1.style.display = 'none';
                firstName.style.display = '';
                lastName.style.display = '';
                myDate.style.display = 'none';
                fullName.style.display = 'none';
            confCode.style.display = '';
            noSupTxt.style.display = 'none';
            noSupBtn.style.display = 'none';
            trackButton.style.display = '';
            poe.style.display = 'none';
        }


}

function checkForValue(name)
{
	return checkForValue2(name, name + '_input', name + '_label');
}

function checkForValue2(rowId, inputId, labelId)
{
	var row = document.getElementById(rowId);
	if (row.style.display != 'none')
	{
		var input = document.getElementById(inputId);
		var label = document.getElementById(labelId);
		if (input.value == "")
		{
			label.style.color = highlightColor;
			return false;
		}
		else
		{
			label.style.color = noHighLightColor;
		}		
	}
	return true;
}



function checkConfCode(rowId, inputId, labelId)
{
	var row = document.getElementById(rowId);
	if (row.style.display != 'none')
	{
		var input = document.getElementById(inputId);
		var label = document.getElementById(labelId);
		var confCode = input.value;

		// eric - 12/28 - strip spaces
		confCode = confCode.replace(/ +/g, "");

		if (confCode == "")
		{
			label.style.color = highlightColor;
			return 1;
		}
        else if (confCode.length != 6)
        {
            label.style.color = highlightColor;
            return 2;
        }
		else
		{
			label.style.color = noHighLightColor;
		}		
	}
	return 3;
}

function checkSubmit()
{
    var valid = true;
    msgs="";
    //if 1, then not existing, if 2 then not the right length
    if (checkConfCode('confCode', 'conf_code', 'conf_code_label') == 1) {
	msgs+='<li><label for="conf_code">Enter a confirmation code.</label></li>';
	valid = false;
    } else if (checkConfCode('confCode', 'conf_code', 'conf_code_label') == 2) {
	msgs+='<li><label for="conf_code">Enter a valid (i.e. 6 digit) confirmation code.</label></li>';
        valid = false;
    }

	
    if (checkForValue('price') == false) {
	msgs+='<li><label for="price_input">Enter a price.</label></li>';
	valid = false;
    }

    if (checkForValue('firstName') == false) {
	msgs+='<li><label for="firstName_input">Enter a first name.</label></li>';
	valid = false;
    }

    if (checkForValue('lastName') == false) {
	msgs+='<li><label for="lastName_input">Enter a last name.</label></li>';
        valid = false;
    }

    if (checkForValue('fullName') == false) {
	msgs+='<li><label for="fullName_input">Enter a full name.</label></li>';
        valid = false;
    }

    if (checkForValue2('cities1', 'departCity1', 'cities1_label') == false) {
	msgs+='<li><label for="departCity1">Enter a departure airport.</label></li>';
        valid = false;
    }

    if (checkForValue2('cities2', 'arriveCity1', 'cities2_label') == false) {
	msgs+='<li><label for="arriveCity1">Enter an arrival airport.</label></li>';
        valid = false;
    }

    if (checkForValue2('myDate', 'date1', 'myDate_label') == false) {
	msgs+='<li><label for="date1">Enter a date.</label></li>';
        valid = false;
    }

    if (!valid) {
        errMsg = '<h4>Please fix the following errors.</h4><ul>'+msgs+'</ul>';
        $("#confEntryError").html(errMsg);
        $("#confEntryError").show();
    }

    return valid;
}

function changeBack() {

        var image1 = document.getElementById("searchImg1");
        var image2 = document.getElementById("searchImg2");
        var image3 = document.getElementById("liSearchImg1");
        var image4 = document.getElementById("liSearchImg2");
        if (image1)
        {
            image1.setAttribute('src','/images/btn-trackit.gif');
            //image1.onclick = clickEvent;
        }
        if (image2)
        {
            image2.setAttribute('src','/images/btn-check-price.gif');
            //image2.onclick = clickEvent;
        }
        if (image3)
        {
            image3.setAttribute('src','/images/btn-trackit-liblue.gif');
            //image3.onclick = clickEvent;

        }
        if (image4)
        {
            image4.setAttribute('src','/images/btn-checkprices-liblue.gif');
            //image4.onclick = clickEvent;
        }

        $("#submitFormLink").unbind('click').bind('click',function(event) {
            clickEvent();return false;
        });
}

function clickEvent() {
    changeImg();
    submitForm();
}


function formQueryStr() {
    // document.getElementById("trackprices").submit();
    var selMenu = document.getElementById('airline_select');
    var airline = selMenu.options[selMenu.selectedIndex].value;
    var affiliate = document.getElementById('affiliate');
    //var numPass = document.getElementById('numPass');
    var price = document.getElementById('price_input');
    var confCode = document.getElementById('conf_code');
    var cities2 = document.getElementById('arriveCity1');
    var cities1 = document.getElementById('departCity1');
    var firstName = document.getElementById('firstName_input');
    var lastName = document.getElementById('lastName_input');
    var myDate = document.getElementById('date1');
    var fullName = document.getElementById('fullName');
    var trackButton = document.getElementById('trackButton');
    var noSupTxt = document.getElementById('noConfSupText');
    var noSupBtn = document.getElementById('noConfSupBtn');
    var poe = document.getElementById('poe_input');
    
    qStr = "airline="+airline //+ "&numPass="+numPass.value
	+ "&price="+price.value
	+ "&confCode="+confCode.value
	+ "&destination="+cities2.value
	+ "&origin="+cities1.value
	+ "&firstName="+firstName.value
	+ "&lastName="+lastName.value
	+ "&deptDate="+myDate.value
	+ "&fullName="+fullName.value
	+ "&trackButton="+trackButton.value
	+ "&noSupTxt="+noSupTxt.value
	+ "&noSupBtn="+noSupBtn.value
	+ "&poe="+poe.value;


    if(affiliate) {
        qStr = qStr+"&affiliate="+affiliate.value;
    }

    return qStr;
}



function selectOption(id,val)
{
    //TODO: why does $('#'+id) return list ?
    var sel = $('#'+id)[0];
    for(var i = 0; i<sel.options.length; i++) {
	var opt=sel.options[i];
	if (opt.value==val) {
	    opt.selected = true;
	} else {
	    opt.selected = false;
	}
    }
    showHide();
}

function fillAndSubmitForm(sslEnabledTorFStr, domain, 
			   selectInputs, textInputs)
{
    // fill out form using value in query string, and submit
    // form. prefilling the vallues (instead of going from url
    // directly to ajax call) so that, in case of failure,
    // user can currect form and resubmit
    for (var i=0; i<selectInputs.length; i++) {
	selectOption(selectInputs[i].id,selectInputs[i].value);
    }
    
    for (var i=0; i<textInputs.length; i++) {
	$('#'+textInputs[i].id).val(textInputs[i].value);
    }
 
    submitForm(sslEnabledTorFStr,domain)
}

// 7/22/08 - eric - adding both params as part of making this use ssl.
// sslEnabledTorFStr is a string of the python True or False 
// ("True" or "False").  this is due to the way we just passed control
// from python to javascript (i.e. it wasn't worth putting in if 
// statements to translate between python True and javascript true).

function submitForm(sslEnabledTorFStr, domain) {
    $('#confEntryError').hide(); 
    if (checkSubmit()) {

	// 7/22/08 - eric - adding ssl code
	var sslLinkBase = "";
	// 7/30/08 - Aaron - disabling SSL for now
	sslEnabledTorFStr = false;
	if (sslEnabledTorFStr == "True") {
		sslLinkBase = "https://" + domain;
	}

        if (document.getElementById("tryFirst")) {
            var url = sslLinkBase + "/ajax/conf/?tryfirst=1&";
        }
        else {
            var url = sslLinkBase + "/ajax/conf/?";
        }

	
	url += formQueryStr();

        $("#confCodeInProgress").text('In progress...');
        $("#confCodeInProgress").slideDown();

        $('#submitFormLink').removeAttr('onclick');
 
        $.ajax({
            url: url,
            type: 'GET',
            timeout: 150000,
            error: function(req,txt){
                $("#confCodeInProgress").slideUp();
                changeBack();
                errMsg = '<h4>There was a problem with your request. Please try again.</h4>';
		$("#confEntryError").html(errMsg);
		$("#confEntryError").show();
            },
            success: function(xml){
                try {
                    if ($("status",xml).text()=="OK") {
                        $('#confCodeInProgress').text('Completed, updating...');
                        document.location = unescape($("url",xml).text());
                    } else {
                        $("#confCodeInProgress").slideUp();
                        changeBack();
			errMsg = '<h4>'+$("message",xml).text()+'</h4>';
			$("#confEntryError").html(errMsg);
			$("#confEntryError").show();
                    }
                } catch (err) {
                    $("#confCodeInProgress").slideUp();
                    changeBack();
		    errMsg = '<h4>There was an unknown error. Please try again.</h4>';
		    $("#confEntryError").html(errMsg);
		    $("#confEntryError").show();
                }
            }
        })

    }


}

function changeImg() {
    var image1 = document.getElementById("searchImg1"); 
    var image2 = document.getElementById("searchImg2");
    var image3 = document.getElementById("liSearchImg1");
    var image4 = document.getElementById("liSearchImg2");
    if (image1)
    {
        image1.setAttribute('src','/images/search_wait.gif');
        image1.onclick = null;
    }
    if (image2)
    {
        image2.setAttribute('src','/images/search_wait2.gif');
        image2.onclick = null;
    }
    if (image3)
    {
        image3.setAttribute('src','/images/search_wait2_liblue.gif');
        image3.onclick = null;
        
    }
    if (image4)
    {
        image4.setAttribute('src','/images/search_wait2_liblue.gif');
        image4.onclick = null;

    }

    //var link = document.getElementById("submitFormLink");
    //link.removeAttribute('href'); 
    $('#submitFormLink').unbind('click');
}



function goToManualEntryPage()
{
    var airline = document.getElementById('airline_select').value

    document.location="/user/enter.myt?purchased=yes&airline="+airline

}



