$(document).ready(function(){

	
	var loader = jQuery('<div id="loader"><img src="/images/loading.gif" alt="loading..." /></div>')
			.css({position: "relative", top: "1em", left: "25em"})
			.hide()
			.appendTo("body");
		jQuery().ajaxStart(function() {
			loader.show();
		}).ajaxStop(function() {
			loader.hide();
		}).ajaxError(function(a, b, e) {
			throw e;
		});
	
	var Ps_datacache = new Array();
	
	$("#span_return").hide();

	$("#depart_date").datepicker({ 
	minDate: 0,
	dateFormat: "yy-m-d", 
    numberOfMonths: 2, 
    showOn: "both", 
    buttonImage: "/images/calendar.gif", 
    buttonImageOnly: true 
   });
   $("#return_date").datepicker({ 
	minDate: 0,
	dateFormat: "yy-m-d", 
    numberOfMonths: 2, 
    showOn: "both", 
    buttonImage: "/images/calendar.gif", 
    buttonImageOnly: true 
   });
  /** 
   	$("#form_order").validate({
		rule:{
			contactemail:{
			  required:true
			}
			
		},
		message:{
			contactemail:{
				required:'<font color=red>required</font>'		
			}
		}
		
	});
   */
   $("#onewayticket").click(function(){
   		$("#span_return").hide();
   });
   $("#roundtripticket").click(function(){
   		$("#span_return").show();
   });
    
   $("#div_newpassenger").dialog({autoOpen:false,modal:true,overlay: { opacity: 0.5, background: "#efefef"},width:600,height:500});
   $("#div_addpassenger").dialog({autoOpen:false,modal:true,overlay: { opacity: 0.5, background: "#efefef" },width:600,height:500});
   $("#newpassenger").click(function(){
		$("#div_newpassenger").dialog("open");
		$("#form_order select").css("display","none");
		//$("#form_newpassenger").reset();
	});
	$("#addpassenger").click(function(){
		$("#div_addpassenger").dialog("open");
		$("#form_order select").css("display","none");
	});
	var fill_form = function(data_cache){
		$("#form_newpassenger #f_name").val(data_cache[1]);
		$("#form_newpassenger #m_name").val(data_cache[2]);
		$("#form_newpassenger #l_name").val(data_cache[3]);
		$("#form_newpassenger #ptype").val(data_cache[4]);
		$("#form_newpassenger #idtype").val(data_cache[5]);
		$("#form_newpassenger #idnumber").val(data_cache[6]);
		$("#form_newpassenger #birth").val(data_cache[7]);
		$("#form_newpassenger #phone").val(data_cache[8]);
		$("#form_newpassenger #email").val(data_cache[9]);
		$("#form_newpassenger #passenger_id").val(data_cache[0]);
		$("#form_newpassenger #sex").val(data_cache[10]);
		$("#form_order select").css("display","none");
		$("#div_newpassenger").dialog("open");
	}
	var add_to_contact = function(value,text){
			$("#contactperson").addOption(value,text,false);	
	}
	var remove_from_contact = function(value){
			$("#contactperson").removeOption(value);	
	}
	var store_ps_datacache = function(cache){
		Ps_datacache[cache[0]] = {"email":cache[9],"phone":cache[8]};
	}
	$("#contactperson").change(function(){
		if($("#contactperson").val()!="0"){
		$("#contactemail").val(Ps_datacache[$("#contactperson").val()].email);					
		$("#contactphone").val(Ps_datacache[$("#contactperson").val()].phone);
		}else{
			$("#contactemail").val();
			$("#contactphone").val();
		}
	});
	
	
	var newOption = {
		url: '/flights/newpassenger.php',
		dataType: 'json',
		resetForm: true,
		success: function(data){
			var html = "";
			/*$.each(data,function(){

				html+=this["f_name"]+"--";
			});*/
			if(data["result"]=="0"){
			    var insertTr = "";
				var insertTd = "";
				var data_cache = new Array( );
				$.each(data["data"],function(){
					insertTd += "<td>"+this["f_name"]+"-"+this["l_name"]+"</td>";
					insertTd += "<td>"+this["idtype"]+"</td>";
					insertTd += "<td>"+this["ptype"]+"</td>";;
					insertTd += "<td>"+this["birth"]+"</td>";
					insertTd += "<td>"+this["idnumber"]+"</td>";
					insertTd += "<td><input type=button name=btn_edit class='btn_edit_fun' value=edit> <input type=button name=btn_remove value=remove class='btn_remove_fun'><input type=hidden name=pids[] value='"+this["passengerid"]+"'/></td>";
					data_cache[0] = this["passengerid"];
					data_cache[1] = this["f_name"];
					data_cache[2] = this["m_name"];
					data_cache[3] = this["l_name"];
					data_cache[4] = this["ptype"];
					data_cache[5] = this["idtype"];
					data_cache[6] = this["idnumber"];
					data_cache[7] = this["birth"];
					data_cache[8] = this["phone"];
					data_cache[9] = this["email"];
					data_cache[10]= this["sex"];
				});
				insertTr = "<tr id='bank_tr_"+data_cache[0]+"'>"+insertTd+"</tr>";
				$("#passengerlist tbody").append(insertTr);
				add_to_contact(data_cache[0],data_cache[1]);
				store_ps_datacache(data_cache);
				var update_element = "#bank_tr_"+data_cache[0];
				var current_btn_edit = "#bank_tr_"+ data_cache[0] + " .btn_edit_fun";
				$(current_btn_edit).click(
										function(){
											fill_form(data_cache);
										}
								);
				var current_btn_remove = "#bank_tr_"+data_cache[0]+" .btn_remove_fun";
				$(current_btn_remove).click(function(){
					$(update_element).remove();
					remove_from_contact(data_cache[0]);
				});
				$("#passengerlist tbody tr:even").attr("class","even");
				$("#passengerlist tbody tr:odd").attr("class","odd");
			}else if(data["result"]=="2"){
				var update_element = "#passengerlist #bank_tr_";
				var updateTd="";
				var data_cache = new Array( );
				$.each(data["data"],function(){
					updateTd += "<td>"+this["f_name"]+"-"+this["l_name"]+"</td>";
					updateTd += "<td>"+this["idtype"]+"</td>";
					updateTd += "<td>"+this["ptype"]+"</td>";;
					updateTd += "<td>"+this["birth"]+"</td>";
					updateTd += "<td>"+this["idnumber"]+"</td>";
					updateTd += "<td><input type=button name=btn_edit class='btn_edit_fun' value=edit> <input type=button name=btn_remove value=remove class='btn_remove_fun'><input type=hidden name=pids[] value='"+this["passengerid"]+"'/></td>";
					update_element+=this["passengerid"];
					data_cache[0] = this["passengerid"];
					data_cache[1] = this["f_name"];
					data_cache[2] = this["m_name"];
					data_cache[3] = this["l_name"];
					data_cache[4] = this["ptype"];
					data_cache[5] = this["idtype"];
					data_cache[6] = this["idnumber"];
					data_cache[7] = this["birth"];
					data_cache[8] = this["phone"];
					data_cache[9] = this["email"];
					data_cache[10]= this["sex"];
				});
				$(update_element).html(updateTd);
				add_to_contact(data_cache[0],data_cache[1]);
				store_ps_datacache(data_cache);
				var current_btn_edit = "#bank_tr_"+ data_cache[0] + " .btn_edit_fun";
				$(current_btn_edit).click(
										function(){
											fill_form(data_cache);
										}
				);
				var current_btn_remove = "#bank_tr_"+data_cache[0]+" .btn_remove_fun";
				$(current_btn_remove).click(function(){
					$(update_element).remove();
					remove_from_contact(data_cache[0]);
				});
				
			}else{
				alert(data["msg"]);
			}
			$("#depart_hour").css('display','');
			$("#div_newpassenger").dialog("close");
		}
	};
	
	$("#form_newpassenger").validate({
			rules: {
				f_name: "required",				
				l_name: "required" /*,
				idnumber: "required",
				phone: "required",
				birth: {
					required: true,
					dateISO: true
				},
				email: {
					required: true,
					email: true
				}	*/		
			},
			
			submitHandler: function(form){
				$("#form_newpassenger").ajaxSubmit(newOption);
			}
	});	
	
	/**
	var formOrderOption = {
		url: 'confirm.php',
		target: "confirmstep",
		success: function(data){
			alert('ok');	
		}
	};*/
	$("#form_order").validate({  	
							/**	submitHandler: function(form){
									$("#form_order").ajaxSubmit(formOrderOption);	
								},*/
								rules: {
									contactemail: "required",
									contactphone: "required"
									
								}
								
							  });
		
	//retrive passengers and display in table
	


	$.getJSON("/flights/getpassenger.php",function(data){
		//$('#passengerbank').dataTable(data);
		$('#passengerbank').dataTable({
				"fnRowCallback": function( nRow, aData, iDisplayIndex ) {
						/* Append the grade to the default row class name */
					    $(nRow).click(function(){
							 var htmlelement="#bank_tr_"+aData[0];
							 if(!$(htmlelement).attr("id")){
							  
										 var insertTr = "<tr id='bank_tr_"+aData[0]+"'>";
										 insertTr += "<td>"+aData[1]+"."+aData[3]+"</td>";
											insertTr += "<td>"+aData[5]+"</td>";
											insertTr += "<td>"+aData[4]+"</td>";;
											insertTr += "<td>"+aData[7]+"</td>";
											insertTr += "<td>"+aData[6]+"</td>";											
											insertTr += "<td><input type=button id='"+aData[0]+"' class='btn_edit_fun' name=btn_edit value=edit> <input type=button class='btn_remove_fun' name=btn_remove value=remove><input type=hidden name=pids[] value='"+aData[0]+"'/></td>";
											insertTr += "</tr>";
											$("#passengerlist tbody").append(insertTr);
											add_to_contact(aData[0],aData[1]);
											store_ps_datacache(aData);
											$("#passengerlist tbody tr:even").attr("class","even");
											$("#passengerlist tbody tr:odd").attr("class","odd");
											var current_btn_edit = "#bank_tr_"+aData[0] + " .btn_edit_fun";
											$(current_btn_edit).click(
													function(){
														fill_form(aData);
													}
											);
											var current_btn_remove = "#bank_tr_"+aData[0]+" .btn_remove_fun";
											$(current_btn_remove).click(function(){
												$(htmlelement).remove();
												remove_from_contact(aData[0]);
											});
								}
						});
						return nRow;
					},
				"aaData":data,
				"aoColumns":[
									{"sTitle": "ID","bVisible": false}	,
									{"sTitle": "FirstName"},
									{"sTitle": "MiddleName","bVisible": false},
									{"sTitle": "LastName"},
									{"sTitle": "Passenger Type"},
									{"sTitle": "ID type"},
									{"sTitle": "Id number","bVisible": false},										
									{"sTitle": "Birthdate"},
									{"sTitle": "Phone","bVisible": false},
									{"sTitle": "Email","bVisbile": false},
									{"sTitle": "Nationality","bVisbile": true},
							],
				
				"asStripClasses":["odd","even"]
		});
		
	});

	
   
});
