﻿function _listValue(obj) {
	return obj.options[obj.selectedIndex].value;
}

function _createHidden(name, value){
    var hidden = document.createElement("input");
    hidden.setAttribute("type", "hidden");
    hidden.setAttribute("name", name);
    hidden.setAttribute("id", name);
    hidden.setAttribute("value", value);
    return hidden;
}

function Location_OnChange(sender) {
}

function Location_OnError(sender, error) {
}

function Legs_OnChange(sender) {

	PageReferences.Legs=sender.value;

	var style = PageReferences.Legs == 2 ? 'block' : 'none';
	var enable = PageReferences.Legs == 2;
	
	$get('lyrRDate').style.display = style;
	$get('lyrRTime').style.display = style;
	
	if (Page_Validators) {
		for (var i = 0; i < Page_Validators.length; i++)
        {
        	var validator = Page_Validators[i];
        	if (validator.controltovalidate.search(/tkDateReturn/i)) {
        		ValidatorEnable(validator, enable);	
        	}
        }
	}
}

function Default_OnShowWait(element) {
	if (typeof ShowWait == 'function')
		ShowWait(element);
}

function Default_OnHideWait() {
	if (typeof HideWait == 'function')
		HideWait();
}
												
function ValidateSearch() {

	var adults = parseInt(_listValue(PageReferences.ListA), 10);
	var senior = parseInt(_listValue(PageReferences.ListS), 10);
	var child  = parseInt(_listValue(PageReferences.ListC), 10);
	
	var appearance = get_SCappearance();
	var removeHTML = function(input) {
		var div = document.createElement('div');
		div.innerHTML = input;
		return div.innerHTML.replace(/(<([^>]+)>)/ig,""); 
	};
	
	if ((adults == 0 && senior == 0) && child > 0) {
        alert(removeHTML(appearance.UnaccompainedChildrenMsg));
        return false;
    }
	
	if (adults + senior + child > 5) {
		alert(String.format(removeHTML(appearance.MaxPassengersMsg), 5));
		return false;
	}
    
	var vO = AC_Validate($find(PageReferences.ListO.id));
	var vD = AC_Validate($find(PageReferences.ListD.id));
	
	var vC = Page_ClientValidate('');
	
	return vO && vD && vC;	
}

function SubmitForm(element) {
	
	Default_OnShowWait(element.id);
	
	if (ValidateSearch()) {
		var o1 = PageReferences.Origin.value.split('|');
		var d1 = PageReferences.Destination.value.split('|');
		
		var o2 = o1[1].split('/');
		var d2 = d1[1].split('/'); 
		
		var origin = { ID : parseInt(o1[0], 10), City : o2[0], State : o2[1] };
		var destination = { ID : parseInt(d1[0], 10), City : d2[0], State : d2[1] };
		
		var context = { Origin : origin, Destination : destination };
		
		HomePage.GetSearchDestination(window.location.href, context.Origin.ID, context.Destination.ID, OnGetDestinationComplete, OnGetDestinationError, context);
	} else {
		Default_OnHideWait();
	}
}

function OnGetDestinationError(error) {
	Default_OnHideWait();
	alert(error.get_message());
}

function OnGetDestinationComplete(result, context) {
	var hide = true;
	
	if (context) {
		if ((result != null) && (result.length > 0)) {
            
            var form = document.getElementById("submitform");
            
            if (form)
				document.body.removeChild(form);
            		
			form = document.createElement("form");
    
			form.setAttribute("id", "submitform");
			form.setAttribute("action", result);
			form.style.display = 'none';
		    
		    if (result.search(/ticketcenter/i) > 0) {
			    form.setAttribute("method", "post");
	            form.appendChild(_createHidden("FormVersion", "1.0"));


				form.appendChild(_createHidden("OriginCity", context.Origin.City + ", " + context.Origin.State));
				form.appendChild(_createHidden("DestinationCity", context.Destination.City + ", " + context.Destination.State));
								
				form.appendChild(_createHidden("Child2", "0"));
				form.appendChild(_createHidden("Child5", _listValue(PageReferences.ListC)));				
		    } 
		    else {
			    form.setAttribute("method", "get");
	            form.appendChild(_createHidden("Redirect", "Y"));
	            form.appendChild(_createHidden("Version", "1.0"));

				form.appendChild(_createHidden("OriginID", context.Origin.ID));
				form.appendChild(_createHidden("OriginCity", context.Origin.City));
				form.appendChild(_createHidden("OriginState", context.Origin.State));
	            
				form.appendChild(_createHidden("DestinationID", context.Destination.ID));
				form.appendChild(_createHidden("DestinationCity", context.Destination.City));
				form.appendChild(_createHidden("DestinationState", context.Destination.State));

				form.appendChild(_createHidden("Children", _listValue(PageReferences.ListC)));
            }
            
            form.appendChild(_createHidden("Legs", PageReferences.Legs));
            
            var dD = $find(PageReferences.DDate).get_selectedDate();
             
            form.appendChild(_createHidden("Adults", _listValue(PageReferences.ListA)));
			form.appendChild(_createHidden("Seniors", _listValue(PageReferences.ListS)));
			
			form.appendChild(_createHidden("DYear", dD.getYear().toString()));	
            form.appendChild(_createHidden("DMonth", (dD.getMonth() + 1).toString()));
			form.appendChild(_createHidden("DDay", dD.getDate().toString()));
			form.appendChild(_createHidden("DHr", _listValue(PageReferences.DHr)));
            
            if (PageReferences.Legs == "2") {
				var rD = $find(PageReferences.RDate).get_selectedDate();
	            
	            form.appendChild(_createHidden("RYear", rD.getYear().toString()));
				form.appendChild(_createHidden("RMonth", (rD.getMonth() + 1).toString()));
				form.appendChild(_createHidden("RDay", rD.getDate().toString()));
				
				var rH = _listValue(PageReferences.RHr);
				
				if (dD == rD) {
					if (PageReferences.RHr.selectedIndex < PageReferences.DHr.selectedIndex)
						rH = "";
				}
								
				form.appendChild(_createHidden("RHr", rH));
			}
				
			document.body.appendChild(form);
			form.submit();
			
			hide = false;
		}
	}
	
	if (hide)
		Default_OnHideWait();
}

function goQL(url) {
	var o = $get(PageReferences.FromQL);
	var d = $get(PageReferences.ToQL);

	if (o.selectedIndex && d.selectedIndex && (o.selectedIndex > 0) && (d.selectedIndex > 0)) {						
		window.location = url + '?from=' + escape(o.options[o.selectedIndex].value) + '&to=' + escape(d.options[d.selectedIndex].value);
	}
}

function showReturnFields(){
    if (document.getElementsByName(PageReferences.TripType.id.replace(/_/g, "$") )[1].checked) {
 	    var style = 'block';
	    var enable = true;
    	
	    $get('lyrRDate').style.display = style;
	    $get('lyrRTime').style.display = style;
    	
	    if (Page_Validators) {
		    for (var i = 0; i < Page_Validators.length; i++)
            {
        	    var validator = Page_Validators[i];
        	    if (validator.controltovalidate.search(/tkDateReturn/i)) {
        		    ValidatorEnable(validator, enable);	
        	    }
            }
	    }       
    }
}

$(document).ready(function() {
	showReturnFields();	
});