var allflights=new Array();

function monatnameTonumber(name)
{
	var monat_n=new Array();
	var monat_z=new Array();
	monat_n[0]='Jan';
	monat_n[1]='Feb';
	monat_n[2]='Mar';
	monat_n[3]='Apr';
	monat_n[4]='May';
	monat_n[5]='Jun';
	monat_n[6]='Jul';
	monat_n[7]='Aug';
	monat_n[8]='Sep';
	monat_n[9]='Oct';
	monat_n[10]='Nov';
	monat_n[11]='Dec';
	//
	monat_z[0]='01';
	monat_z[1]='02';
	monat_z[2]='03';
	monat_z[3]='04';
	monat_z[4]='05';
	monat_z[5]='06';
	monat_z[6]='07';
	monat_z[7]='08';
	monat_z[8]='09';
	monat_z[9]='10';
	monat_z[10]='11';
	monat_z[11]='12';
	for(i=0;i<monat_n.length;i++) if(monat_n[i]==name) return monat_z[i];
		return "00";
	}
function tokDate(dt)
{				
	var result=dt.split(" ");
	//alert("Gut1");
	var ret=result[5]+"-"+monatnameTonumber(result[1])+"-"+result[2];
	//alert("Gut2");
	return ret;

}

//Kontrolliert den eingegeben Zeitraum
function checkDate(objID1, objID2)
{
	
	var one_day=1000*60*60*24;
	//Objekt 1
	var obj1=document.getElementById(objID1);
	//Object 2
	var obj2=document.getElementById(objID2);
	if(obj1.value=="" || obj2.value=="")
	{
		return true;
	}
	
	//alert(obj1);
	var dt1=obj1.value;
	var result1=dt1.split("-");
	var o_year1=result1[0];
	var o_mon1=result1[1];
	var o_day1=result1[2];
	var o_date1=new Date(o_year1,o_mon1-1,o_day1);
	//alert(obj2);
	var dt2=obj2.value;
	var result12=dt2.split("-");
	var o_year2=result12[0];
	var o_mon2=result12[1];
	var o_day2=result12[2];
	var o_date2=new Date(o_year2,o_mon2-1,o_day2);
	
	//var df1=Math.ceil((o_date2.getTime()-o_date1.getTime())/one_day); //Differenz in Tagen
	var df1=Math.ceil((o_date2.getTime()-o_date1.getTime())); //Differenz
	if(df1<0) {
		alert("The Date for option Befor must be later then that of After!\n The values have been swaped!");
		var temp=obj2.value;
		obj2.value=obj1.value;
		obj1.value=temp;
		return false;
	}
	return true;
	
}
//Kontrolliert die eingegeben Zeit
function checkDate(objID,df)//Objekt-id mit dem Datum und die Differenz zu Heute
{
	//alert("checkdate");
	var one_day=1000*60*60*24;
	var obj0=document.getElementById(objID);
	//alert(obj0);
	var dt=obj0.value;
	var result=dt.split("-");
	var o_year=result[0];
	var o_mon=result[1];
	var o_day=result[2];
	var o_date=new Date(o_year,o_mon-1,o_day);
	
	var now = new Date();
	/*var monat=now.getMonth();
	var day=now.getDay();
	var year=now.getYear();
	*/
	var df1=Math.ceil((o_date.getTime()-now.getTime())/one_day); //Differenz in Tagen
	if(df1<0) {alert("The selected date is in the past!");return false;}
	if(df1<df) {alert("The selected date is not allowed!");return false;}
	//alert("checkdate Ende");
	return true;
	
}
function getDiff(dt1,dt2)//Objekt-id mit dem Datum und die Differenz zu Heute
{
	//alert("checkdate");
	var one_day=1000*60*60*24;
	var result=dt1.split("-");
	var o_year=result[0];
	var o_mon=result[1];
	var o_day=result[2];
	var o_date1=new Date(o_year,o_mon-1,o_day);
	//
	result=dt2.split("-");
	o_year=result[0];
	o_mon=result[1];
	o_day=result[2];
	var o_date2=new Date(o_year,o_mon-1,o_day);
	
	var df1=Math.ceil((o_date2.getTime()-o_date1.getTime())/one_day); //Differenz in Tagen
	return df1;
	
}
//Funktionen für den die Kopfbuttons
function next()//Vorwärz blättern
{
	var obj=document.getElementById("NextVor");
	//alert(obj);
	obj.value='next';
	document.forms['tablenavi'].submit();
}
function prev()//Rückwärz blättern
{
	var obj=document.getElementById("NextVor");
	//alert(obj);
	obj.value='prev';
	var obj2=document.getElementById('nextbutton');
	if(obj2.disabled==true)obj2.disabled=false;
	document.forms['tablenavi'].submit();
}
//Funktionen für den die Fußbuttons
function next_f()//Vorwärz blättern
{
	var obj=document.getElementById("NextVor");
	//alert(obj);
	obj.value='next';
	document.forms['tablenavi_f'].submit();
}
function prev_f()//Rückwärz blättern
{
	var obj=document.getElementById("NextVor");
	//alert(obj);
	obj.value='prev';
	var obj2=document.getElementById('nextbutton_f');
	if(obj2.disabled==true)obj2.disabled=false;
	document.forms['tablenavi_f'].submit();
}

function getSelectedButton(buttonGroup){
    for (var i = 0; i < buttonGroup.length; i++) {
        if (buttonGroup[i].checked) {
            return buttonGroup[i];
        }
    }
    return null;
}

// KQ changed ,26.10.2007
function regNewFlight()
{
   //alert (" I'm checking your data input for anew flight");
	var obj2=document.getElementById("from");
	if(obj2.value==""){alert("The start airport is empty!");return false;}
	
	var obj3=document.getElementById("to");
	if(obj3.value==""){alert("The destination airport is empty!");return false;}
	if(obj3.value==obj2.value){alert("Start and Destination Airports are identical . Please correct!");return false;}
		
	var obj4=document.getElementById("max_seats_no");
	if(obj4.value==""){alert("Please check the number of Max. Passengers Number!");return false;}
	
	var obj1=document.getElementById("dep_date");
	if(obj1.value==""){alert("The departure date is empty!");return false;}
	if(checkDate("dep_date",1)==false)//Ein Flugzeug darf spätestens 1 Tage vor dem Flug hinzugefügt werden
	{
		obj1.value ="";
		return false;
	}
  var obj5=document.getElementById("flight_no");
	if(obj5.value==""){alert("Please Input Flight Number!");return false;}
	
	return true;
}

function regNewPassenger()//
{
	// alert("  hallo regNewPassenger");
	var obj0=document.forms['newpassenger'].flight_check;
	var bchecked=getSelectedButton(obj0);
	if(bchecked==null){alert("Please check one of the planes listed\nin the table above!");return false;}
	var obj1=document.getElementById("familyname");
	if(obj1.value==""){alert("Family Name is empty!");return false;}
	var obj2=document.getElementById('firstname');
	if(obj2.value==""){alert("First Name is empty!");return false;}
	var obj3=document.getElementById('gender');
	if(obj3.value==""){alert("Gender is empty!");return false;}
	var obj4=document.forms['newpassenger'].retoption;
	var obj4_1=document.getElementById('depfl_id');
	var obj4_2=document.getElementById('returnoptions');
	var obj4_3=document.getElementById('return_value');
	var ob_res=getSelectedButton(obj4);
	//alert(ob_res.value);
	obj4_3.value=obj4_1.value;
	if(ob_res.value=='others')//Nur ein Variable wird später abgefragt
	{
		//alert(obj4_3.value+"="+obj4_2.value);
		obj4_3.value=obj4_2.value;
		//alert(obj4_3.value);

	}
	
	var obj5=document.getElementById('phone');
	//if(obj5.value==""){alert("Phone Number is empty!");return false;}
	var obj6=document.getElementById('tkno');
	//if(obj6.value==""){alert("Ticket Number is empty!");return false;}
	var g_names=document.getElementById("group_names");
	if(g_names.options.length==0)
	{
		conf=confirm("Would you like to enter a group accompanying the main person?");
		if(conf== true) return false;//Doch eingeben
	}
	var acc_p=document.getElementById("accomp_pa");
	var g_names_str="";
	var i=0;
	for(i=0;i<g_names.options.length;i++)
	{
		if(i>0) g_names_str+=";"; 
		g_names_str+=g_names.options[i].value;
		g_names.options[i].selected=true;
	}
	acc_p.value=g_names_str;
	
	return true;
}

function checkAirports()     // KQ new function 11.08.07
{
	var obj2=document.getElementById("from");
	if(obj2.value==""){alert("start airport is empty!");return false;}
	
	var obj3=document.getElementById("to");
	if(obj3.value==""){alert("destination airport is empty!");return false;}
	if(obj3.value==obj2.value){alert("Start and Destination Airports are the same !!! ");return false;}
		
	var obj4=document.getElementById("passengers_no");
	if(obj4.value=="" ||obj4.value=="0" ){alert("Please check number of passengers!");return false;}
	
	return true;
}

function changeFromTo(from,to)
{
	//alert("changeFromTo("+from+","+to+")");
	var obj0=document.forms['newpassenger'].backfrom;
	var obj1=document.forms['newpassenger'].backto;
	obj0.value=to;
	obj1.value=from;
	
}
//Update Passenger
function updatePassenger()
{
	var obj1=document.getElementById("FAMILY_NAME");
	if(obj1.value==""){alert("Family Name is empty!");return false;}
	var obj2=document.getElementById('FIRST_NAME');
	if(obj2.value==""){alert("First Name is empty!");return false;}
	//var obj3=document.getElementById('gender');
	//if(obj3.value==""){alert("Gender is empty!");return false;}
	var obj4=document.getElementById('RETURN_DATE');
	/*if(obj4.value==""){alert("Return Date is empty!");return false;}
	if(checkDate("RETURN_DATE",2)==false)//Ein Passagier darf spätestens in 2 Tagen zurück
	{
		obj4.value ="";
		return false;
	}
	*/
	var obj5=document.getElementById('TELE');
	//if(obj5.value==""){alert("Phone Number is empty!");return false;}
	var obj6=document.getElementById('TK_No');
	//if(obj6.value==""){alert("Ticket Number is empty!");return false;}
	var g_names=document.getElementById("group_names");
	if(g_names.options.length==0)
	{
		conf=confirm("Would you like to enter a group accompanying the main person?");
		if(conf== true) return false;//Doch eingeben
	}
	var acc_p=document.getElementById("accomp_pa");
	var g_names_str="";
	var i=0;
	for(i=0;i<g_names.options.length;i++)
	{
		if(i>0) g_names_str+=";"; 
		g_names_str+=g_names.options[i].value;
		g_names.options[i].selected=true;
	}
	acc_p.value=g_names_str;
	
	return true;
}
//Kontrolliert die Searchoptionen
function checkFormSearch()
{
}
function deleteSelection()
{
	var obj0=document.getElementById("group_names");
	var index=obj0.selectedIndex;
	if(index>=0) {
		obj0.options.remove(index);
	}
}
function addToGroupList()
{
	var obj_gngend=document.getElementById("gngender");
	var obj0=document.getElementById("group_names");
	var fname_o=document.getElementById("familyname");
	var val1=document.getElementById("g_fname");
	var val2=document.getElementById("g_name");
	if(val1.value=="" && fname_o.value=="" && val2.value!="")
	{
		alert("Please enter the familly name!");
		return false;
	}	
	if(val1.value!= "" && val2.value=="")
	{
		alert("Please enter the name of the Passenger!");
		return false;
	}
	if(val1.value=="") val1.value=fname_o.value;
	var theValue=obj_gngend.value+":"+val1.value+":"+val2.value;
	var index=obj0.options.length;
	for(i=0;i<index;i++)
	{
		if(obj0.options[i].value==theValue)
		{
			alert("This person is already in the list!");
			return false;
		}
	}
	
	var newOpt = new Option(theValue, theValue);
	var selLength = obj0.length;
  	obj0.options[selLength] = newOpt;
	return true;
}
//Funktion für die das Updaten der Gruppe
function addToGroupList_u()
{
	var obj_gngend=document.getElementById("gngender");
	var obj0=document.getElementById("group_names");
	var val1=document.getElementById("g_fname");
	var val2=document.getElementById("g_name");
	if(val1.value=="")
	{
		alert("Please enter the familly name!");
		return false;
	}	
	if(val2.value=="")
	{
		alert("Please enter the name of the Passenger!");
		return false;
	}
	var theValue=obj_gngend.value+":"+val1.value+":"+val2.value;
	var index=obj0.options.length;
	for(i=0;i<index;i++)
	{
		if(obj0.options[i].value==theValue)
		{
			alert("This person is already in the list!");
			return false;
		}
	}
	
	var newOpt = new Option(theValue, theValue);
	var selLength = obj0.length;
  	obj0.options[selLength] = newOpt;
	return true;
}

//Kontrolliert die Searchoptionen
function checkFormSearch()
{
	
	var obj1_1_ck=document.getElementById("familyname_ck");
	var obj1_2_ck=document.getElementById("familyname_exact_ck");
	var obj1_t=document.getElementById("familyname_t");
	if(obj1_1_ck.checked==true && obj1_t.value=="")
	{
		alert("The  family name is empty!");
		return false;
	}
	
	var obj2_1_ck=document.getElementById("name_ck");
	var obj2_2_ck=document.getElementById("name_exact_ck");
	var obj2_t=document.getElementById("name_t");
	if(obj2_1_ck.checked==true && obj2_t.value=="")
	{
		alert("The name is empty!");
		return false;
	}
	var obj3_ck=document.getElementById("afterdate_ck");
	var obj3_t=document.getElementById("after_t");
	
	var obj4_ck=document.getElementById("befordate_ck");
	var obj4_t=document.getElementById("befor_t");


	if(obj2_t.value=="" && obj2_t.value=="")
	{
		
		if(obj3_ck.checked==false && obj4_ck.checked==true && obj4_t.value=="")
		{
			alert("The  befor date is empty!");
			return false;
		}
		else if(obj3_ck.checked==false && obj4_ck.checked==true && obj4_t.value!="") return true;
		if(obj3_ck.checked==true && obj4_ck.checked==false && obj3_t.value=="")
		{
			alert("The  after date is empty!");
			return false;
		}
		else if(obj3_ck.checked==true && obj4_ck.checked==false && obj3_t.value!="") return true;
		
	}
	if(obj3_ck.checked==true && obj3_t.value=="")
	{
		alert("The  after date is empty!");
		return false;
	}
	
	if(obj4_ck.checked==true && obj4_t.value=="")
	{
		alert("The  befor date is empty!");
		return false;
	}
	if(obj3_ck.checked==false && obj4_ck.checked==false && obj1_1_ck.checked==false && obj2_1_ck.checked==false)
	{
		alert("The search process withaout any search-option is not allowed!");
		return false;
	}  
	return true;
}

function changePlaneID()
{
	var obj_planeid=document.forms['update_passenger'].PLANE_ID;
	//alert(obj_planeid);
	var obj_radio=document.forms['update_passenger'].flight_check;
	//alert(obj_radio);
	for(i=0;i<obj_radio.length;i++) 
		if(obj_radio[i].checked==true)	
		{
			obj_planeid.value=obj_radio[i].value;
		}
}
//Returndate wird apgedated falls ein Eintrag aus dem Select gewählt wurde
function updateRetrnDate()
{
	var selct_o=document.getElementById("returnoptions");
	var retDate_o=document.getElementById("returndate");
	if(selct_o.options[selct_o.selectedIndex].value=="Date")
	{
		retDate_o.value="";
		alert("Please Select a new Date with the Date peacker! ");
	}
	else retDate_o.value=selct_o.options[selct_o.selectedIndex].value;
	
}
function flightData(ID,depart,from,to,freeplaces,wl_no,fl_no)
{
	var ID,depart,from,to,freeplaces;
	this.ID=ID;
	this.depart=depart;
	this.from=from;
	this.to=to;
	this.freeplaces=freeplaces;
	this.wl_no=wl_no;
	this.fl_no=fl_no;
}
function flights()
{
	var data=new Array();
	function insert(ID,depart,from,to,freeplaces,wl_no,fl_no)
	{
		alert("hallo aa 1");
		var nf=new flightData(ID,depart,from,to,freeplaces,wl_no,fl_no);
		this.data.push(nf);
	}
	function getFrom(from)
	{
		var result=new Array();
		for(i=0;i<this.data.length;i++)
		{
			if((this.data[i]).from==from) result.insert(this.data[i]);
		}
		return result;
	}
	function getTo(to)
	{
		var result=new Array();
		for(i=0;i<this.data.length;i++)
		{
			if((this.data[i]).to==to) result.insert(this.data[i]);
		}
		return result;
	}
	function getBackToID(ID)
	{
		alert("hallo aa");
		var result=new Array();
		var from="-1";
		var to="-1";
		
		for(i=0;i<this.data.length;i++)
		{
			if((this.data[i]).ID==ID) 
			{
				from=(this.data[i]).from;
				to=(this.data[i]).to;
				break;
			}
		}
		alert("hallo bb");
		if(from!="-1")
		{
			for(i=0;i<this.data.length;i++)
			{
				if((this.data[i]).to==from && (this.data[i]).from==to) result.insert(this.data[i]);
			}
		}
		return result;
	}
	
}


function updateFromTo(id)
{
	alert("hallo 0");
	var result=allflights.getBackToID(id);
	alert("hallo 1");
	//alert("changeFromTo("+from+","+to+")");
	var obj0=document.getElementById('depfl_id');
	var obj1=document.getElementById('depfl_date');
	var obj2=document.getElementById('depfl_from');
	var obj3=document.getElementById('depfl_to');
	var obj4=document.getElementById('depfl_av_seats');
	//free all options
	alert("hallo");
	for(i=0;i<obj0.options.length;i++)
	{
		obj0.options[i]=null;
		obj1.options[i]=null;
		obj2.options[i]=null;
		obj3.options[i]=null;
		obj4.options[i]=null;
	}
	
	for(i=0;i<obj0.options.length;i++)
	{
		obj0.options[i]=new option(result[i].ID,result[i].ID);
		obj1.options[i]=new option(result[i].depart,result[i].depart);
		obj2.options[i]=new option(result[i].from,result[i].from);
		obj3.options[i]=new option(result[i].to,result[i].to);
		obj4.options[i]=new option(result[i].freeplaces,result[i].freeplaces);
	}
}

function getBackToID(ID)
	{
	  var result=new Array();
		var from="-1";
		var to="-1";
		var dt;
		
		for(i=0;i<allflights.length;i++)
		{
			if(allflights[i].ID==ID) 
			{
				
				from=allflights[i].from;
				to=allflights[i].to;
				dt=allflights[i].depart;
				break;
			}
		}
		//alert("hallo bb");
		if(from!="-1")
		{
			for(i=0;i<allflights.length;i++)
			{
		
				if(allflights[i].to==from && allflights[i].from==to && getDiff(dt,allflights[i].depart)>1) result.push(allflights[i]);
		    alert(" allflights --->  "+allflights[i].from);
			}
		}
		
		return result;
	}

	
function updateFromTo(id)
{
	  alert("L1: "+allflights.length+"  plane ID: "+id);
	
	var result=getBackToID(id);
	//alert("Ergebnis: "+result.length);
	//alert("changeFromTo("+from+","+to+")");
	var obj0=document.getElementById('depfl_id');
	var obj1=document.getElementById('depfl_date');
	var obj2=document.getElementById('depfl_from');
	var obj3=document.getElementById('depfl_to');
	var obj4=document.getElementById('depfl_av_seats');
	
	
	
	//free all options
	for(i=obj0.options.length-1;i>=0;i--)
	{
		obj0.options.remove(i);
		obj1.options.remove(i);
		obj2.options.remove(i);
		obj3.options.remove(i);
		obj4.options.remove(i);
	}
	
	for(i=0;i<result.length;i++)
	{
		alert("Halllooo: "+i);
		obj0.options[i]=new Option(result[i].ID,result[i].ID);
		obj1.options[i]=new Option(result[i].depart,result[i].depart);
		obj2.options[i]=new Option(result[i].from,result[i].from);
		obj3.options[i]=new Option(result[i].to,result[i].to);
		obj4.options[i]=new Option(result[i].freeplaces,result[i].freeplaces);
	}
}


function Change_return(obj)
{
	var selectedIndex=obj.selectedIndex;
	//alert(selectedIndex);
	var obj0=document.getElementById('depfl_id');
	obj0.selectedIndex=selectedIndex;
	var obj1=document.getElementById('depfl_date');
	obj1.selectedIndex=selectedIndex;
	var obj2=document.getElementById('depfl_from');
	obj2.selectedIndex=selectedIndex;
	var obj3=document.getElementById('depfl_to');
	obj3.selectedIndex=selectedIndex;
	var obj4=document.getElementById('depfl_av_seats');
	obj4.selectedIndex=selectedIndex;
}

function selectOthers()
{
	document.forms['newpassenger'].retoption[1].checked=true;
}
function selectDate()
{
	var obj0=document.getElementById('depfl_id');
	if(obj0.options.length>0){
		document.forms['newpassenger'].retoption[0].checked=true;
	}
}

function confirmation()
{
	check=confirm("Are you sure? you want to cancel the flight\n and the passengers depending on it (if there are some)?");
	return check;
}

//----------------------------------------------------------------------------------------------------
//--------------------------------- KQ new functions and Modifications -------------------------------
//----------------------------------------------------------------------------------------------------

function checkResvData()     //KQ function
{
	var obj0=document.forms['newpassenger'].flight_check;
	var fl_checked=getSelectedButton(obj0);
	if(fl_checked==null){alert("Please select a Flight!");return false;}
	
	var obj1=document.forms['newpassenger'].ret_flight_check;
	if (obj1 == undefined) {/*no return Flight selected,  do nothing */ }
	else {
	       var bchecked=getSelectedButton(obj1);
	       if(bchecked==null){alert("Please select a Return Flight!");return false;}
	     }
		
	// check familyname(s) and firstnames
	var obj11=document.forms['newpassenger'].familyname;
	var obj12=document.forms['newpassenger'].firstname;
	
  if (obj11.length > 1)  // there are more than one passenger
	  for(i=0;i<obj11.length;i++){
		  if(obj11[i].value==""){alert("Family Name of passenger No. "+(i+1)+" is empty!");return false;}
      if(obj12[i].value==""){alert("First Name of passenger No. "+(i+1)+" is empty!");return false;}
     }
  else {
  	if (obj11.value==""){alert("Family Name of passenger is empty!");return false;};
		if (obj12.value==""){alert("First Name of passenger is empty!");return false;};
	 }	 

 //check gender(s)
	var ogender=document.forms['newpassenger'].gender;
  if (obj11.length > 1)  // there are more than one passenger
	  for(i=0;i<obj11.length;i++){
		  	var gi = ogender[i].selectedIndex;
	      if(ogender[i].options[gi].value==""){alert(" Please select Gender of passenger No. "+(i+1)+" !!!");return false;}
     }
  else { var gi2 = ogender.selectedIndex;
         if (ogender.options[gi2].value=="")
            {alert("Please select Gender of passenger !!!");
  	         return false;};
        }

	return true;
}

//--------------------------------------------------------------------------------------------------

function getBackToIDkq(ID)
	{
	  var result=new Array();
		var from="-1";
		var to="-1";
		var dt;
		
		for(i=0;i<allflights.length;i++)
		{
			if(allflights[i].ID==ID) 
			{
				
				from=allflights[i].from;
				to=allflights[i].to;
				dt=allflights[i].depart;
				break;
			}
		}
		//alert("hallo bb");
		if(from!="-1")
		{
			for(i=0;i<allflights.length;i++)
			{
				if(allflights[i].to==from && allflights[i].from==to && getDiff(dt,allflights[i].depart)>1) result.push(allflights[i]);
	
			}
		}
	return result;
	}
//------------------------------------------------------------------------------------------------
function findFlightIndex(id)
 {
		var f_index="-1";
		
		for(i=0;i<allflights.length;i++)
		{
				if(allflights[i].ID==id) 
	    		{ f_index=i;
			    	break;  
		 	    }		
		} 
		//alert(" finished findFlightIndex");
		return f_index;
  }
//---------------------------- KQ --------------------------------------------------------------------	
function updateDepFlData(id)
{
	var p_index=findFlightIndex(id);
			
	var obj0=document.getElementById('depfl_id');
	var depfl_date=document.getElementById('depfl_date');
	var obj2=document.getElementById('depfl_from');
	var obj3=document.getElementById('depfl_to');
	var obj4=document.getElementById('depfl_av_seats');
	var obj5=document.getElementById('depfl_no');
  var obj6=document.getElementById('depwl_no'); //added 08.11.2008 for flight control status
  
//.. Extension to check if the depfl_date is befor retfl_date in case 
//   of changing depfl after selecting of retfl.  KQ 30.09.2007
    if ((document.getElementById('retfl_date')) && (document.getElementById('retfl_date')).value !="" )
      {  
      	var retfl_date=document.getElementById('retfl_date');
        if (allflights[p_index].depart > retfl_date.value)
          {
      	    alert ("!! Departure Flight Date must be befor Return Flight Date !!");
      	    obj0.value="";
		        depfl_date.value="";
		        obj2.value="";
		        obj3.value="";
		        obj4.value="";
            obj5.value="";
            obj6.value="";
      	    return false;
          }
      }  	 	 						
//alert ("!! HELLO5, updateDepFlData ");
//... Extension end........................
	
	  obj0.value=allflights[p_index].ID;
		depfl_date.value=allflights[p_index].depart;
		obj2.value=allflights[p_index].from;
		obj3.value=allflights[p_index].to;
		obj4.value=allflights[p_index].freeplaces;
    obj5.value=allflights[p_index].fl_no;
    obj6.value=allflights[p_index].wl_no; //added 08.11.2008 for flight control status
}
//---------------------------- KQ --------------------------------------------------------------------	
function updateRetFlData(id)
{
	var p_index=findFlightIndex(id);
		
	var obj0=document.getElementById('retfl_id');
	var retfl_date=document.getElementById('retfl_date');
	var obj2=document.getElementById('retfl_from');
	var obj3=document.getElementById('retfl_to');
	var obj4=document.getElementById('retfl_av_seats');
	var obj5=document.getElementById('retfl_no');
	var obj6=document.getElementById('retwl_no'); //added 08.11.2008 for flight control status

//.. Extension to check if the retfl_date is after depfl_date.  KQ 30.09.2007
	var depfl_date=document.getElementById('depfl_date'); 						
	  
	  if ( allflights[p_index].depart < depfl_date.value) // if retfl_date < depfl_date
	     { alert ("!! Return Flight Date must be after Departure Flight Date !!! ");
	     	 
	     	 obj0.value="";
		     retfl_date.value="";
		     obj2.value="";
		     obj3.value="";
    		 obj4.value="";
		     obj5.value="";
		     obj6.value="";
	     	 
	     	 return false;  //here no selection will be done and the function will be terminated
	     }	
	  obj0.value=allflights[p_index].ID;
		retfl_date.value=allflights[p_index].depart;
		obj2.value=allflights[p_index].from;
		obj3.value=allflights[p_index].to;
		obj4.value=allflights[p_index].freeplaces;
		obj5.value=allflights[p_index].fl_no;
		obj6.value=allflights[p_index].wl_no; //added 08.11.2008 for flight control status
		
}
//---------------------------- KQ --------------------------------------------------------------------	
// K.Q function , 20.09.2007
function checkPasList()
 {
 	return true;
 }	
 
//---------------------------- KQ --------------------------------------------------------------------	
function addToGroupListkq()
{ 
	var p_familyname=document.getElementById('familyname');
	var p_firstname=document.getElementById('firstname');  
	var p_gender=document.getElementById('gender');
	var p_nameslist=document.getElementById('group_names');
			
	if(p_familyname.value=="")
	 {		alert("Please enter the familly name!");
		  return false;}	
	
	if(p_familyname.value!= "" && p_firstname.value=="")
	{alert("Please enter the name of the Passenger!");
		return false;}
		
	// if(val1.value=="") val1.value=fname_o.value;
	
	var p_data=p_gender.value+" "+p_familyname.value+", "+p_firstname.value;
		
	var index=p_nameslist.options.length;
	
	for(i=0;i<index;i++)
	{
		if(p_nameslist.options[i].value==p_data)
		{
			alert("This person is already in the list!");
			return false;
		}
	}
	
	var newOpt = new Option(p_data, p_data);
	var select_length = p_nameslist.length;
 	p_nameslist.options[select_length] = newOpt;


	return true;

}

//-------------------------------------------------------------------------------------------------
function checkSearchData()     //KQ function
{
	// check Passenger_id, familyname and firstnames

	var obj0=document.forms['searchPas'].familyname;
	var obj1=document.forms['searchPas'].firstname;
	var obj2=document.forms['searchPas'].b_date;
	var sv_obj=document.forms['searchPas'].search_val;
	
  var field0,field1,field2;
	field0=trim_string(obj0.value);
	field1=trim_string(obj1.value);
	field2=obj2.value;
	
  var search_value = 0;
  
  if (field0 != "") {search_value += 1;}
  if (field1 != "") {search_value += 2;}
  if (field2 != "") {search_value += 4;}
	

	if ((search_value == 4) || (search_value == 0))  // (4) date alone is not allowed 
	  {alert("-- Please specify Family or First Name !!");
	   sv_obj.value=0;
	   return false;}
  else {sv_obj.value=search_value;}

  //alert("-- serach_value = "+search_value);  
}
//-------------------------------------------------------------------------------------------------

function checkSearchpid()     //KQ function 12.10.2007
{

	// check Passenger_id

	var obj_pid=document.forms['searchPasID'].pid;
	var sv_obj=document.forms['searchPasID'].search_val;
	
  var pid;
	pid = trim_string(obj_pid.value);
	
	
  if (pid == "")
	  {alert("-- Please input Passenger ID 'PID'  !!");
	   sv_obj.value=0;
	   return false;}
  else {sv_obj.value=9;
  	    return true;}

  //alert("-- serach_value = "+search_value);  
} 
//--------------------------------------------------------------------------------------------------
// K.Q function from internet, delete space befor and after strings
function trim_string(tString)  
{
 while (tString.substring(0,1) == ' ')
  { tString = tString.substring(1, tString.length);}

while (tString.substring(tString.length-1, tString.length) == ' ')
  {tString = tString.substring(0,tString.length-1);}

return tString;
}
//--------------------------------------------------------------------------------------------------
//---------------------------- KQ --------------------------------------------------------------------	
function changeDepFlData(id)  // K.Q function 01.09.2007
{
	var p_index=findFlightIndex(id);
			
	var obj0=opener.document.getElementById('depfl_id');
	var obj1=opener.document.getElementById('depfl_date');
	var obj2=opener.document.getElementById('depfl_from');
	var obj3=opener.document.getElementById('depfl_to');
	var obj4=opener.document.getElementById('status_depfl');
	var obj5=opener.document.getElementById('depfl_no');
	 
//.. Extension to check if the depfl_date is befor retfl_date in case,  KQ 16.10.2007
    if ((opener.document.getElementById('retfl_date')) && (opener.document.getElementById('retfl_date')).value !="" )
      {  
      	var retfl_date = opener.document.getElementById('retfl_date');
        // alert (" Return flight date = "+retfl_date.value);
        if (allflights[p_index].depart > retfl_date.value)
          {
      	    alert ("!! Departure Flight Date must be befor Return Flight Date "+retfl_date.value+" !!");
      	    return false;
          }
      }  	 	 						
//... Extenssion end........................
	 
	var av_seats=allflights[p_index].freeplaces;
	var wl_no=allflights[p_index].wl_no;  	 
	 
	// now write new data
	  obj0.value=allflights[p_index].ID;
		obj1.value=allflights[p_index].depart;
		obj2.value=allflights[p_index].from;
		obj3.value=allflights[p_index].to;
    obj4.value=decide_status(av_seats,wl_no); // OK or WL
	  obj5.value=allflights[p_index].fl_no;
	}

//---------------------------- KQ --------------------------------------------------------------------	
function changeRetFlData(id) // K.Q function 01.09.2007
{
	var p_index=findFlightIndex(id);
		
	var obj0=opener.document.getElementById('retfl_id');
	var obj1=opener.document.getElementById('retfl_date');
	var obj2=opener.document.getElementById('retfl_from');
	var obj3=opener.document.getElementById('retfl_to');
  var obj4=opener.document.getElementById('status_retfl');
	var obj5=opener.document.getElementById('retfl_no');
						
	var av_seats=allflights[p_index].freeplaces;
	var wl_no=allflights[p_index].wl_no;  	 	  
	
	//.. Extension to check if the retfl_date is after depfl_date ,  KQ 16.10.2007
    if ((opener.document.getElementById('depfl_date')) && (opener.document.getElementById('depfl_date')).value !="" )
      {  
      	var depfl_date = opener.document.getElementById('depfl_date');
        // alert (" Departure flight date = "+depfl_date.value);
        if (allflights[p_index].depart < depfl_date.value)
          {
      	    alert (" !! Return Flight Date must be after Departur Flight Date "+depfl_date.value+" !!");
      	    return false;
          }
      }  	 	 						
//... Extenssion end........................
	  
	  obj0.value=allflights[p_index].ID;
		obj1.value=allflights[p_index].depart;
		obj2.value=allflights[p_index].from;
		obj3.value=allflights[p_index].to;
		
    obj4.value=decide_status(av_seats,wl_no); // OK or WL
    obj5.value=allflights[p_index].fl_no;
  
}

//---------------------------- KQ --------------------------------------------------------------------	
function changeRetStatus_to_ONEWAY(retfl_status) // K.Q function 24.03.2008
{
	var obj0=opener.document.getElementById('retfl_id');
	var obj1=opener.document.getElementById('retfl_date');
	var obj2=opener.document.getElementById('retfl_from');
	var obj3=opener.document.getElementById('retfl_to');
  var obj4=opener.document.getElementById('status_retfl');
	var obj5=opener.document.getElementById('retfl_no');
						
	if (retfl_status == "YE2M")  
	  obj0.value=0  //fl_id = 0 , because status is YE2M
	else
		obj0.value="";  //fl_id ="" , empty because status is ONEWAY or PAXHOLD  
	  
		
		obj1.value="";
		obj2.value="";
		obj3.value="";
    obj4.value=retfl_status; // ONEWAY or PAXHOLD
    obj5.value="";

}

//---------------------------- KQ --------------------------------------------------------------------	
function decide_status(av_seats,wl_no)  // K.Q function 03.09.2007
{
	
	var obj1=opener.document.getElementById('needed_seats'); //is = 1 in editPasData.php bei default
	var obj2=opener.document.getElementById('max_wl_no');
	
	var needed_seats= parseInt(obj1.value);
	var max_wl_no=parseInt(obj2.value);
	
	av_seats=parseInt(av_seats);
	wl_no=parseInt(wl_no);
	
	//alert("- needed_seats = "+needed_seats+"- av_seats= "+av_seats+"- wl_no= "+wl_no+"- max_wl_no= "+max_wl_no);

		if (av_seats >= needed_seats) return "OK";
		else 
		  {
		    if ((wl_no + needed_seats)<=max_wl_no ) return "WL";  //waiting_list
		    else return "no_reservation"  ;
		  }

}

//---------------------------- KQ --------------------------------------------------------------------	
function checkEditPasData()  // K.Q function 04.09.2007
{
	var pdata_change = 0; // change_index for personal data
	var cdata_change = 0; // change_index for contact data
  var fdata_change = 0; // change_index for flight data
  
	// check familyname(s) and firstnames are not empty
	var fm_name = trim_string((document.forms['editPasData'].familyname).value);
	var fi_name = trim_string((document.forms['editPasData'].firstname).value);
 	
 	if (fm_name==""){alert("Family Name of passenger is empty!");return false;};
	if (fi_name==""){alert("First Name of passenger is empty!");return false;};

//........................ test if any Data modification .......................................	 
   var gender_o=(document.forms['editPasData'].gender).value;
   var bdate_o=trim_string((document.forms['editPasData'].birthdate).value);
   var tkno_o = trim_string((document.forms['editPasData'].ticket_no).value);
   
   var depfl_id_o =(document.forms['editPasData'].depfl_id).value;
   var retfl_id_o =(document.forms['editPasData'].retfl_id).value;
   var gid_o =(document.forms['editPasData'].group_id).value;
   var rgid_o =(document.forms['editPasData'].ret_group_id).value;
   var status_depfl_o =(document.forms['editPasData'].status_depfl).value;
   var status_retfl_o =(document.forms['editPasData'].status_retfl).value;
 
   //.. KQ 02.11.2008, if status_depfl changed from "CAN" to "OK", "WL" or any other valid Status
   //, so status_retfl has to be changed from "CAN" to valid Status. And vice versa
   if( status_depfl_o != "CAN" && status_retfl_o == "CAN") 
        {alert("Return Flight is still canceled, change it to a valid status!");return false;}
   if( status_retfl_o != "CAN" && status_depfl_o == "CAN") 
        {alert("Departure Flight is still canceled, change it to a valid status!");return false;}


  //... check personal data first  and notice the change in pdata_change 
   if (fm_name != allGrPassengers[0].familyname) pdata_change += 1;  // 2^0
   if (fi_name != allGrPassengers[0].firstname) pdata_change += 2;   // 2^1
   if (gender_o != allGrPassengers[0].gender) pdata_change += 4;
   if (bdate_o != allGrPassengers[0].birthdate) pdata_change += 8;
   if (tkno_o != allGrPassengers[0].ticket_no) pdata_change += 16;

  //... check flight data  and notice the change in fdata_change 
   if ((depfl_id_o != allGrPassengers[0].depfl_id) || (status_depfl_o != allGrPassengers[0].status_depfl)) fdata_change += 1;
   if ((retfl_id_o != allGrPassengers[0].retfl_id) || (status_retfl_o != allGrPassengers[0].status_retfl)) fdata_change += 2;
   //if (gid_o != allGrPassengers[0].group_id) fdata_change += 4;
   //if (rgid_o != allGrPassengers[0].ret_group_id) fdata_change += 8;


//... check contact data and notice the change in cdata_change       
   var phone =trim_string((document.forms['editPasData'].phone).value);
   var fax =trim_string((document.forms['editPasData'].fax).value);
   var email =trim_string((document.forms['editPasData'].email).value);
   var street =trim_string((document.forms['editPasData'].street).value);
   var postcode =trim_string((document.forms['editPasData'].postcode).value);   
   var city =trim_string((document.forms['editPasData'].city).value);
   var country =trim_string((document.forms['editPasData'].country).value);
   
   if (phone != allGrPassengers[0].phone) cdata_change += 1;  // 2^0
   if (fax != allGrPassengers[0].fax) cdata_change += 2;   // 2^1
   if (email != allGrPassengers[0].email) cdata_change += 4;
   if (street != allGrPassengers[0].street) cdata_change += 8;
   if (postcode != allGrPassengers[0].postcode) cdata_change += 16;
   if (city != allGrPassengers[0].city) cdata_change += 32;
   if (country != allGrPassengers[0].country) cdata_change += 64;
   
//................ write the changed indexs in to the document .................
   var pdc = document.forms['editPasData'].pdata_change;
   var cdc = document.forms['editPasData'].cdata_change;   
   var fdc = document.forms['editPasData'].fdata_change;
   pdc.value = pdata_change;
   cdc.value = cdata_change;
   fdc.value = fdata_change;
//..............................................................................   
   
  //alert ("pdata_change = "+pdata_change+"   cdata_change = "+cdata_change+"   fdata_change = "+fdata_change);
  /*alert (" birthdate = "+bdate_o+" =?= "+allGrPassengers[0].birthdate+
         "\n depfl_id = "+gender_o+" -- "+allGrPassengers[0].gender+
         "\n depfl_id = "+depfl_id_o+" -- "+allGrPassengers[0].depfl_id+
         "\n status_depfl = "+status_depfl_o+" -- "+allGrPassengers[0].status_depfl+
         "\n retfl_id = "+retfl_id_o+" -- "+allGrPassengers[0].retfl_id+
         "\n status_retfl = "+status_retfl_o+" -- "+allGrPassengers[0].status_retfl+
         "\n gid = "+gid_o+" -- "+allGrPassengers[0].group_id+
         "\n rgid = "+rgid_o+" -- "+allGrPassengers[0].ret_group_id+
         "\n phone = "+phone+" -- "+allGrPassengers[0].phone+
         "\n fax = "+fax+" -- "+allGrPassengers[0].fax+
         "\n email = "+email+" -- "+allGrPassengers[0].email+
         "\n street = "+street+" -- "+allGrPassengers[0].street+
         "\n post_code = "+postcode+" -- "+allGrPassengers[0].postcode+
         "\n city = "+city+" -- "+allGrPassengers[0].city+
         "\n country = "+country+" -- "+allGrPassengers[0].country);
    */     
//	alert (" modified Name : "+fm_name+" orig Name is :"+allGrPassengers[0].familyname+" PData_change = "+PData_change);
	
return true;
}
//---------------------------- KQ --------------------------------------------------------------------	

function checkEditGrData(group_kind)  // K.Q function 07.09.2007 , add group_kind 18.10.2007
{
	
	var pdc_flag = false;  //Flag to show if any change in Personal data
	var pdata_change = 0;
  var cdata_change = 0;
  var fdata_change = 0;

	// check familyname(s) and firstnames
	var  fm_name=document.forms['editGrData'].familyname;
	var  fi_name=document.forms['editGrData'].firstname;
  
		
  for(i=0;i<fm_name.length;i++){
  	if(trim_string(fm_name[i].value)==""){alert("Family Name of passenger No. "+(i+1)+" is empty!");return false;}
    if(trim_string(fi_name[i].value)==""){alert("First Name of passenger No. "+(i+1)+" is empty!");return false;}
     }

  /*KQC , added 17.03.2008*/
  var status_depfl_o =(document.forms['editGrData'].status_depfl).value;
  var status_retfl_o =(document.forms['editGrData'].status_retfl).value;
  
  //.. KQ 02.11.2008, if status_depfl changed from "CAN" to "OK", "WL" or any other valid Status
  //, so status_retfl has to be changed from "CAN" to valid Status. And vice versa
  if( status_depfl_o != "CAN" && status_retfl_o == "CAN") 
      {alert("Return Flight is still canceled, change it to a valid status!");return false;}
  if( status_retfl_o != "CAN" && status_depfl_o == "CAN") 
      {alert("Departure Flight is still canceled, change it to a valid status!");return false;}
      


//........................ test if any Data modification .......................................	 

   var gender = document.forms['editGrData'].gender;   //is an array
   var bdate = document.forms['editGrData'].birthdate; //is an array
   var tkno = document.forms['editGrData'].ticket_no; //is an array
   var flag = document.forms['editGrData'].change_flag; //is an array to notice the number of passenger whom pData is changed
   
   var pd_changed = document.forms['editGrData'].pd_changed;
  //... check personal data first  and notice the change in pd_change_ar 

  for(i=0;i<fm_name.length;i++)
  {
   pdata_change = 0;
   if (trim_string(fm_name[i].value) != allGrPassengers[i].familyname) pdata_change += 1;  // 2^0
   if (trim_string(fi_name[i].value) != allGrPassengers[i].firstname) pdata_change += 2;   // 2^1
   if (trim_string(gender[i].value) != allGrPassengers[i].gender) pdata_change += 4;
   if (trim_string(bdate[i].value) != allGrPassengers[i].birthdate) pdata_change += 8;
   if (trim_string(tkno[i].value) != allGrPassengers[i].ticket_no) pdata_change += 16;
   
   if (pdata_change>0)
     {
     	flag[i].value = true;
     	pdc_flag = true;
     	pd_changed.value = true;
     }	 
    else flag[i].value = false;
  }

 // alert (" pdc_flag = "+pdc_flag);

//... check contact data and notice the change in CData_change       
   var phone =trim_string((document.forms['editGrData'].phone).value);
   var fax =trim_string((document.forms['editGrData'].fax).value);
   var email =trim_string((document.forms['editGrData'].email).value);
   var street =trim_string((document.forms['editGrData'].street).value);
   var postcode =trim_string((document.forms['editGrData'].postcode).value);   
   var city =trim_string((document.forms['editGrData'].city).value);
   var country =trim_string((document.forms['editGrData'].country).value);
   
   cdata_change = 0;
   if (phone != allGrPassengers[0].phone) cdata_change += 1;  // 2^0
   if (fax != allGrPassengers[0].fax) cdata_change += 2;   // 2^1
   if (email != allGrPassengers[0].email) cdata_change += 4;
   if (street != allGrPassengers[0].street) cdata_change += 8;
   if (postcode != allGrPassengers[0].postcode) cdata_change += 16;
   if (city != allGrPassengers[0].city) cdata_change += 32;
   if (country != allGrPassengers[0].country) cdata_change += 64;
   

   var depfl_id =(document.forms['editGrData'].depfl_id).value;
   var retfl_id =(document.forms['editGrData'].retfl_id).value;
   var gid =(document.forms['editGrData'].group_id).value;
   var rgid =(document.forms['editGrData'].ret_group_id).value;

  // KQC , modified 17.03.2008
  //... check flight data  and notice the change in fdata_change 
  //. It to check the change of flight_id and the status of reservation, corrected 17.03.2008
   fdata_change = 0;
   // dependend on group_kind, one or both checks below wil be done. If same_gr then both, if dep_gr then just the first one  
   if (group_kind != 'dep_gr')
     { if ( (depfl_id != allGrPassengers[0].depfl_id) || (status_depfl_o != allGrPassengers[0].status_depfl) ) fdata_change += 1 ;};
   
   if (group_kind != 'ret_gr')  
     { if ( (retfl_id != allGrPassengers[0].retfl_id) || (status_retfl_o != allGrPassengers[0].status_retfl) ) fdata_change += 2;};
            
   //if (gid != allGrPassengers[0].group_id) fdata_change += 4;
   //if (rgid != allGrPassengers[0].ret_group_id) fdata_change += 8
   
   
  /*alert ("pdc_flag = "+pdc_flag+"   cdata_change = "+cdata_change+"   fdata_change = "+fdata_change);
  alert (" birthdate = "+bdate[0].value+" =?= "+allGrPassengers[0].birthdate+
         "\n depfl_id = "+depfl_id+" -- "+allGrPassengers[0].depfl_id+
         "\n retfl_id = "+retfl_id+" -- "+allGrPassengers[0].retfl_id+
         "\n gid = "+gid+" -- "+allGrPassengers[0].group_id+
         "\n rgid = "+rgid+" -- "+allGrPassengers[0].ret_group_id+
         "\n phone = "+phone+" -- "+allGrPassengers[0].phone+
         "\n fax = "+fax+" -- "+allGrPassengers[0].fax+
         "\n email = "+email+" -- "+allGrPassengers[0].email+
         "\n street = "+street+" -- "+allGrPassengers[0].street+
         "\n post_code = "+postcode+" -- "+allGrPassengers[0].postcode+
         "\n city = "+city+" -- "+allGrPassengers[0].city+
         "\n country = "+country+" -- "+allGrPassengers[0].country);
 
 */ 
   var pdata_change_flag = document.forms['editGrData'].pdata_change_flag;  
   var pdc = document.forms['editGrData'].pdata_change;
   var cdc = document.forms['editGrData'].cdata_change;   
   var fdc = document.forms['editGrData'].fdata_change;
   pdata_change_flag.value = pdc_flag;
   pdc.value = pdata_change;
   cdc.value = cdata_change;
   fdc.value = fdata_change;


return true;
}

//---------------------------- KQ ---------------------------------------------------------------
//---------------------------- KQ --------------------------------------------------------------------	
// K.Q function and Array , 04.09.2007
var allGrPassengers = new Array();

function PasData(familyname,firstname,gender,birthdate,ticket_no,group_id,ret_group_id,depfl_id,retfl_id,status_depfl,status_retfl,phone,fax,email,street,postcode,city,country)
{
 var familyname,firstname,gender,birthdate,ticket_no,group_id,ret_group_id,depfl_id,retfl_id,status_depfl,status_retfl,phone,fax,email,street,postcode,city,country;
 
	this.familyname=familyname;
	this.firstname=firstname;
	this.gender=gender;
	this.birthdate=birthdate;
	this.ticket_no=ticket_no;
	this.group_id=group_id;
	this.ret_group_id=ret_group_id;
	this.depfl_id=depfl_id;
	this.retfl_id=retfl_id;
	this.status_depfl=status_depfl;
	this.status_retfl=status_retfl;
	this.phone=phone;
	this.fax=fax;
	this.email=email;
	this.street=street;
	this.postcode=postcode;
	this.city=city;
	this.country=country;
}	
//---------------------------- KQ --------------------------------------------------------------------	
function DelFlightConf()   // KQ , 21.10.2007
{
	check=confirm("Are you sure? you want to cancel the Flight ?");
	return check;
}

//---------------------------- KQ --------------------------------------------------------------------	
// KQ ,01.04.2008
function checkNumber (nr) {
  if (isNaN(nr))
   {
    alert(nr + " is not a valid number !!");
   };
}
//---------------------------- KQ --------------------------------------------------------------------	
// KQ ,01.04.2008
//this function will be asked from "edit_all_price_lists.php" to check the modifications or
//  the data of a new added price list
function check_newp_list()
{
   //alert (" I'm checking the new price list");
	var obj_sd=document.getElementById("start_date");
	var obj_ed=document.getElementById("end_date");
	
	var pl_id=document.getElementById("pl_id");
	var pl_nr=document.getElementById("pl_nr"); //number of now modified price list
	var lastpl_id=document.getElementById("lastpl_id");
	var lastpl_nr=document.getElementById("lastpl_nr");
	
	//alert ("price_list ID ="+pl_id.value);
	
  if ( ! check_date(obj_sd,'Start Date')) return false;
  
  // check end date, if price list is not the last one
  // the end date of the last price list is always open ( ="")
  if ((pl_id.value != lastpl_id.value) && (pl_id.value != "new")) 
   {
     if ( ! check_date(obj_ed,'End Date')) return false;
     
     //.. check if there is no conflicts with start and and end date
     if (obj_ed.value < obj_sd.value)
         {
         	alert (" There is a date conflict, End Date is befor Start Date !!!");
         	return false;
         };	
   };  
 
 // check date conflicts of new added price list .........
 if (pl_id.value == "new") 
  {
  	var obj_lastpl_sd=document.getElementById("lastpl_start_date");
  	
  	if (obj_sd.value <= obj_lastpl_sd.value)
     {
     	 alert (" Date conflict !!, Start Date of new price list must be after"+"\n Start Date of last price list !");
       return false;
     };
   };
 //........................................................    	 

//..... check new price inputs ..............
	var obj_p1=document.getElementById("adult_rt");
	var obj_p2=document.getElementById("chd_rt");
	var obj_p3=document.getElementById("inf_rt");
	var obj_p4=document.getElementById("adult_ow");
	var obj_p5=document.getElementById("chd_ow");
	var obj_p6=document.getElementById("inf_ow");
	
	if ((obj_p1.value=="") || (obj_p2.value=="") || (obj_p3.value==""))
	 {alert("Please input all prices !!!");return false;}
	 
	if ((obj_p4.value=="") || (obj_p5.value=="") || (obj_p6.value==""))
	 {alert("Please input all prices !!!");return false;} 

	if ( isNaN(obj_p1.value) || isNaN(obj_p2.value) || isNaN(obj_p3.value) )
	 {alert("Please input valid numbers !!!");return false;}
	 
	if ( isNaN(obj_p4.value) || isNaN(obj_p5.value) || isNaN(obj_p6.value) )
	 {alert("Please input valid numbers !!!");return false;}
	 
	return true;
}

//---------------------------- KQ --------------------------------------------------------------------	
// KQ ,08.04.2008
function check_date(DateField, date_name)
 {
  var checkstr = "0123456789";
  var sparate_str = ".\\/-";  // all possible sparaters
  var sparater;
  var Datevalue = "";
  var leap = 0;
  var err = 0;
  var i;
   
  //alert (" Date : "+DateField.value);

  DateValue = DateField.value;
  
  // find which sparater is used 
  for (i = 0; i < DateValue.length; i++) 
    {
       if (sparate_str.indexOf(DateValue.substr(i,1)) >= 0) 
         {
           sparater = DateValue.substr(i,1);
         };
    };
   //alert (" used sparater is "+sparater);

  var date_ar=DateValue.split(sparater);
	var year=date_ar[0];
	var month=date_ar[1];
	var day=date_ar[2];
  
 // alert (" Year = "+year+" ---- Month: "+month+" ---- Day: "+day);

  // year validation
  if ((year < 1900) || (year > 3000) || isNaN(year) )
   {alert(date_name+" Error !! Invalid Year or Date format"+
   	      "\n Right Format: yyyy-mm-dd , example 2008-05-31");return false;};

  // month validation
  if ((month < 1) || (month > 12) || isNaN(month)) 
   {alert(date_name+" Error !! Invalid Month or Date format"+
   	      "\n Right Format: yyyy-mm-dd , example 2008-05-31");return false;};
   
  // day validation
  if ( (day < 1) || (day > 31) || isNaN(day) ) 
   {alert(date_name+" Error !! Invalid Day or Date format"+
   	      "\n Right Format: yyyy-mm-dd , example 2008-05-31");return false;};
   
  // check if leap-year (Schaltjahr), february / day 
  if ( (year % 4 == 0) || (year % 100 == 0) || (year % 400 == 0) ) 
    { leap = 1; };

  if ( (month == 2) && (leap == 1) && (day > 29) ) 
    { alert(date_name+" Error !! Invalid February Date"); return false;};

  if ((month == 2) && (leap != 1) && (day > 28))
    { alert(date_name+" Error !! Invalid February Date"); return false;};
     
  // Validation of other months
  if ((day > 31) && ((month == "01") || (month == "03") || (month == "05") || (month == "07") || (month == "08") || (month == "10") || (month == "12")))
    { alert(date_name+" Error !! Invalid Date Day"); return false;};
     
  if ((day > 30) && ((month == "04") || (month == "06") || (month == "09") || (month == "11")))
    { alert(date_name+" Error !! Invalid Date Day"); return false;};
  
 // if no error, write the completed date to Input-Field (e.g. 2008-03-29)
 DateField.value = year+"-"+month+"-"+day ; // in case other sparater used, over right wit MySQL format
// alert(" Date is OK ");

 return true;
}

//---------------------------- KQ --------------------------------------------------------------------	
// KQ ,14.06.2008
//this function will be asked from "edit_fl_scheduels.php" to check the modifications or
//  the data of a new added flight schedule
function check_newfl_schedule ()
{
   //alert (" I'm checking the new flight schedule");
	var fl_no = document.getElementById("fl_no");
	var from = document.getElementById("from");
	
	var to = document.getElementById("to");
	var dep_time = document.getElementById("dep_time"); 
	var arr_time = document.getElementById("arr_time");
	var via = document.getElementById("via");
	var op_day = document.getElementById("op_day");
  var aircraft = document.getElementById("aircraft");
 	
	//alert ("price_list ID ="+pl_id.value);
	
  if ( from.value == to.value)
    {
    	 alert (" Please select differnet Departure and destination Airports !!");
    	 return false;
    };
    
  if ( fl_no.value == '')
    { alert (" Please input a Flight Number !!");  return false;  }; 
  
  if ( ( dep_time.value == '') || ( arr_time.value == ''))
    { alert (" Please input Departure and Arrival time !!");  return false;  }; 
    
  if ( op_day.value == '')
    { alert (" Please input day of Week for this Flight !!");  return false;  };

  if ( aircraft.value == '')
    { alert (" Please input Aircraft type !!");  return false;  };     

 
	return true;
}


//---------------------------- KQ --------------------------------------------------------------------	
// K.Q function and Array , 22.10.2008
// writes the info of all Flight scheduels in the array, preparing them for selection

var allflsched = new Array();

function flsched_Data(ID,flight_no,from,to,dep_time,arr_time,via,op_day,aircraft)
{
	var ID,flight_no,from,to,dep_time,arr_time,via,op_day,aircraft;
	
	this.ID=ID;
	this.flight_no=flight_no;
	this.from=from;
	this.to=to;
	this.dep_time=dep_time;
	this.arr_time=arr_time;
	this.via=via;
	this.op_day=op_day;
	this.aircraft=aircraft;
}

//........................................................................................
// K.Q 22.10.2008, to fill the data for new flight from selected Flight schedule 
function fill_flight_data(fl_index)
{
	var obj0=document.getElementById('from');
	var obj1=document.getElementById('to');
	var obj2=document.getElementById('flight_no');
	
  //alert (" fill data of id !!  --> "+fl_index); 
	obj0.value=allflsched[fl_index].from;
	obj1.value=allflsched[fl_index].to;
	obj2.value=allflsched[fl_index].flight_no;
}
//---------------------------- KQ --------------------------------------------------------------------	
// KQ 06.11.2008, placed from moduls to this central file
function winOpen(urlink, breite, hoehe)
 {
  // Errechnet Koordinaten, um das Popup zentriert zu platzieren
  links = (screen.width/2)-(breite/1);
  oben = (screen.height/2)-(hoehe/1);
  fenster = window.open(urlink,"popup","height="+hoehe+",width="+breite+",status = no,toolbar = no,menubar = no,location = no,resizable = no,titlebar = no,scrollbars = yes,fullscreen = no,top ="+oben+",left ="+links);
  fenster.focus();
 }
//---------------------------- KQ --------------------------------------------------------------------	
// KQ ,22.02.2009
//this function will be asked from "edit_user_form_in.php" to check the modifications or
//  the data of a new added user
function check_new_user ()
{
  // alert (" I'm checking the new User data");
	var first_name = trim_string(document.getElementById("u_firstname").value);
	var upw = trim_string(document.getElementById("upw").value);
	var username = trim_string(document.getElementById("username").value);
	var u_cat_id = trim_string(document.getElementById("u_cat_id").value);
	var sec_level = trim_string(document.getElementById("sec_level").value);

 	//alert (" User name : "+first_name + first_name.length);
  if ( first_name == '')
    { alert (" Please input user first name  !!!");  return false;  }; 
   
  if (( username == '') || ( username.length < 3))
    { alert (" Please input a valid user name (Login-ID) !!!\n Login-ID must consist of 3 characters at least");  return false;  };

 // check if Login-ID (username) already exist or not
  for(i=0; i<usernames_arr.length; i++ )
  { 
  	if (username == usernames_arr[i].username) 
  	  {
  	  	window.document.getElementById("username").focus(); // set cursor to desired field
  	  	//window.document.update_user.username.select(); // mark desired field
  	  	alert ("   User's Login name already exist  !!! \n Please chose an other 'Login-ID' (user name)");
  	  	return false;
  	  }
  };

 //alert (" Password : "+upw +"  -  "+ upw.length);
  if ( ( upw == '') || ( upw.length < 6))
    { alert (" Please insert a valid password !!! \n Password must consist of 6 characters at least");  return false;  }; 

  if (( u_cat_id == '') || ( u_cat_id < 1) || ( u_cat_id > 5))
    { alert (" Please input a valid user category id !!!  Range 1..5 ");  return false;  };
    
  if ( sec_level == '' || sec_level < 1 )
    { alert (" Specifiy a valid security level !!! Range 1..3 ");  return false;  };  
    
	return true;
}
//---------------------------- KQ --------------------------------------------------------------------	
// K.Q function and Array , 25.02.2009
// writes the all usernames in the array to be checked when adding new user into the system

var usernames_arr = new Array();

function unames_Data(ID,username)
{
	var ID,username;
	
	this.ID=ID;
	this.username=username;
}

//........................................................................................
// K.Q 03.10.2009, Checks the given date 
function checkSelectDate()
{
	var dep_date=document.getElementById('dep_date');
	var error_msg=document.getElementById('error_msg');
	
	var tdate = today_date();
	//alert (" kq today = "+tdate);
	
	var date2 = new Date();
	var dd = date2.getDate();
	
	var m= 365 + dd;
	var date3 = date2.setDate(m);
	
	
	//alert (" Date in one year = "+ date2 +" ------"+ date3);
	
	
	//check_date(dep_date, 'dep_date');
	
	if ( trim_string(dep_date.value) == "")
	 {
	 	error_msg.value = "please enter departer Date";
	 	alert (" Departure date is empty");
	 }
	else if ( dep_date.value < tdate)
	  { 
		  error_msg.value = "!! Invalid departure Date (in the past)"	;
		  //alert (" !! Invalid departure Date (in the past)");
	  };	
	 	
	return true
}

//........................................................................................
// K.Q 03.10.2009, returns date of today in format (dd.mm.yyyy) 
function today_date()
 {
  var today = new Date();
  var dd = today.getDate();
  var mm = today.getMonth()+1;//January is 0!
  var yyyy = today.getFullYear();
  if(dd<10){dd='0'+dd};
  if(mm<10){mm='0'+mm};
  
  var tdate = dd+'.'+mm+'.'+yyyy;
  return tdate;
}


//==============================================================================================