// validateAir()
// --------------------------------------------------------------------------------
// validates air form
//
function validateAir() {
	var valid = true;
	if($F("ORvis") == "") {
		valid = false;
		$("ORvis").addClassName('highlight'); 
	}
	else {
		$("ORvis").removeClassName('highlight'); 
	}
	if($F("ARvis") == "") {
		valid = false;
		$("ARvis").addClassName('highlight'); 
	}
	else {
		$("ARvis").removeClassName('highlight'); 
	}
	if($F("FromDate1") == "dd-mon-yyyy") {
		valid = false;
		$("FromDate1").addClassName('highlight'); 
	}
	else {
		$("FromDate1").removeClassName('highlight'); 
	}
	if(document.tripdetails.trip_type[0].checked) {	
		if($F("FromDate2") == "dd-mon-yyyy") {
			valid = false;
			$("FromDate2").addClassName('highlight'); 
		}
		else {
			$("FromDate2").removeClassName('highlight'); 
		}
	}
	if(!valid) {
		$("formErrors").innerHTML = "Please enter all highlighted fields";
		Effect.Appear('formErrors', { duration: 0.5 }); 
		new Effect.Highlight("formErrors", { startcolor: '#efe1ef', endcolor: '#ffffff' });
	}
	else {			
		open_compare_window_air();		
											
	}
}

// validateHotel()
// --------------------------------------------------------------------------------
// validates hotel form
//
function validateHotel() {
	var valid = true;
	var txt = "";
	if($F("CTvis") == "") {
		valid = false;
		$("CTvis").addClassName('highlight'); 
		txt+="<br/>&nbsp;&nbsp;&bull; where field is required";
	}
	else {
		$("CTvis").removeClassName('highlight'); 
	}
	
	if($F("FromDate1") == "dd-mon-yyyy") {
		valid = false;
		$("FromDate1").addClassName('highlight');  
		txt+="<br/>&nbsp;&nbsp;&bull; check in field is required";
	}
	else { 
		$("FromDate1").removeClassName('highlight'); 
	} 
	if($F("FromDate2") == "dd-mon-yyyy") {
		valid = false;
		$("FromDate2").addClassName('highlight');  
		txt+="<br/>&nbsp;&nbsp;&bull; check out field is required";
	}
	else {
		$("FromDate2").removeClassName('highlight');  
	} 
	if(!valid) {
		$("formErrors").innerHTML = "Please enter all highlighted fields:" + txt;
		Effect.Appear('formErrors', { duration: 0.5 }); 
		new Effect.Highlight("formErrors", { startcolor: '#efe1ef', endcolor: '#ffffff' });
	}
	else {			
		open_compare_window_hotel();		
											
	}
}
// validateCar()
// --------------------------------------------------------------------------------
// validates car form
//
function validateCar() {
	var valid = true;
	if($F("ORvis") == "") {
		valid = false;
		$("ORvis").addClassName('highlight'); 
	}
	else {
		$("ORvis").removeClassName('highlight'); 
	} 
	if($F("FromDate1") == "dd-mon-yyyy") {
		valid = false;
		$("FromDate1").addClassName('highlight'); 
	}
	else {
		$("FromDate1").removeClassName('highlight'); 
	}
	if(document.tripdetails.return_type[1].checked) {
		if($F("ARvis") == "") {
			valid = false;
			$("ARvis").addClassName('highlight'); 
		}
		else {
			$("ARvis").removeClassName('highlight'); 
		} 
	}
	if($F("FromDate2") == "dd-mon-yyyy") {
		valid = false;
		$("FromDate2").addClassName('highlight'); 
	}
	else {
		$("FromDate2").removeClassName('highlight'); 
	}
		
	if(!valid) {
		$("formErrors").innerHTML = "Please enter all highlighted fields";
		Effect.Appear('formErrors', { duration: 0.5 }); 
		new Effect.Highlight("formErrors", { startcolor: '#efe1ef', endcolor: '#ffffff' });
	}
	else {			
		open_compare_window_car();			
	}
}

// directPartnerAir()
// --------------------------------------------------------------------------------
// opens  individual flights partner interstitial compare window, if the form is not valid sends parameter direct=y
//
function directPartnerAir(name){
	var popupBlockerError = false; 
	var valid = true;
	var base_url = "/includes/air/";
	if($F("ORvis") == "") {
		valid = false;
	}
	if($F("ARvis") == "") {
		valid = false;
	}
	if($F("FromDate1") == "dd-mon-yyyy") {
		valid = false;
	} 
	if(document.tripdetails.trip_type[0].checked) {	
		if($F("FromDate2") == "dd-mon-yyyy") {
			valid = false;
		}
	}
	if(!valid) {
		var url = base_url;	  
		url += name + "_inter.php?direct=y";
		if(popup_window(1, name, 1, url)==false) popupBlockerError=true;
	 	
		if (popupBlockerError == true) {
			popup('popupError', '', 'top');
		}	
	}
	else {	
		
		var trip_type = "";
		if(document.tripdetails.trip_type[0].checked)
		{
			trip_type = "round";
		}
		else if(document.tripdetails.trip_type[1].checked) {
			trip_type = "oneway";
		}
		
		var url = base_url;	  
		var to = document.tripdetails.AR.value;
		var from = document.tripdetails.OR.value;
		var departing_date = document.tripdetails.FromDate1.value;
		var departing_time = document.tripdetails.departing_time.value;
		var returning_time = document.tripdetails.returning_time.value;			
		var returning_date = document.tripdetails.FromDate2.value;
		var travellers = document.tripdetails.travellers.value;
		var children = document.tripdetails.children.value;
		var class_type = document.tripdetails.class_type.value;
		var from_date_js = document.tripdetails.FromDate1js.value;
		var departure_time = new Date(parseInt(from_date_js));
		
		url += name + "_inter.php?direct=n";
		url += "&trip_type=" + trip_type;
		url += "&to=" + to;
		url += "&from=" + from;
		url += "&departing_date=" + departing_date;
		url += "&departing_time=" + departing_time;
		url += "&returning_time=" + returning_time;
		url += "&returning_date=" + returning_date;
		url += "&travellers=" + travellers;
		url += "&children=" + children;
		url += "&class_type=" + class_type;	
		
		if(popup_window(1, name, 1, url)==false) popupBlockerError=true;
	 
		if (popupBlockerError == true) {
			popup('popupError', '', 'top');
		}	
											
	}
	
}

// directPartnerHotel()
// --------------------------------------------------------------------------------
// opens  individual hotel partner interstitial compare window, if the form is not valid sends parameter direct=y
//
function directPartnerHotel(name){
	var popupBlockerError = false; 
	var base_url = "/includes/hotel/";
	var valid = true;
	var txt = "";
	if($F("CTvis") == "") {
		valid = false;
	}
	if($F("FromDate1") == "dd-mon-yyyy") {
		valid = false;
	}
	if($F("FromDate2") == "dd-mon-yyyy") {
		valid = false;
	}
	if(!valid) {
		var url = base_url;	  
		url += name + "_hotel.php?direct=y";
		if(popup_window(1, name, 1, url)==false) popupBlockerError=true;
	 	
		if (popupBlockerError == true) {
			popup('popupError', '', 'top');
		}	
	}
	else {	
		
		var where = $F("CT"); 
		var checkin = $F("FromDate1");
		var checkout = $F("FromDate2");
		var rooms = $F("rooms");
		var guests = $F("guests");
	 
		var url = base_url;	   
	  	url += name + "_hotel.php?direct=n";
		url += "&where=" + where;
	    url += "&checkin=" + checkin;
		url += "&checkout=" + checkout;
		url += "&rooms=" + rooms;
		url += "&guests=" + guests;
		if(popup_window(1, name, 1, url)==false) popupBlockerError=true;
	 
		if (popupBlockerError == true) {
			popup('popupError', '', 'top');
		}	
											
	}
	
}

// directPartnerCar()
// --------------------------------------------------------------------------------
// opens  individual car partner interstitial compare window, if the form is not valid sends parameter direct=y
//
function directPartnerCar(name){
	var popupBlockerError = false; 
	var base_url = "/includes/car/";
	var valid = true;
	if($F("ORvis") == "") {
		valid = false;
	}
	if($F("FromDate1") == "dd-mon-yyyy") {
		valid = false;
	}
	if(document.tripdetails.return_type[1].checked) {
		if($F("ARvis") == "") {
			valid = false;
		} 
	}
	if($F("FromDate2") == "dd-mon-yyyy") {
		valid = false;
	} 
	
	if(!valid) {
		var url = base_url;	  
		url += name + "_car.php?direct=y";
		if(popup_window(1, name, 1, url)==false) popupBlockerError=true;
	 	
		if (popupBlockerError == true) {
			popup('popupError', '', 'top');
		}	
	}
	else {	
		
		var dropoff = "";
		var pickup = dropoff = $F("OR"); 
		var carType = $F("car_type"); 
		var pickupDate = $F("FromDate1"); 
		var pickupTime = $F("departing_time"); 
		var dropoffDate = $F("FromDate2"); 
		var dropoffTime = $F("arrival_time"); 
	 	if(document.tripdetails.return_type[0].checked)
		{
			return_type = "same";
		}
		else if(document.tripdetails.return_type[1].checked) {
			return_type = "different";
			dropoff = $F("AR");
		}
		
		var url = base_url;	   
	  	url += name + "_car.php?direct=n";
		url += "&pickup=" + pickup;
		url += "&dropoff=" + dropoff;
		url += "&pickupDate=" + pickupDate;
		url += "&pickupTime=" + pickupTime;
		url += "&dropoffDate=" + dropoffDate;
		url += "&dropoffTime=" + dropoffTime; 
		url += "&carType=" + carType;
		
		if(popup_window(1, name, 1, url)==false) popupBlockerError=true;
	 
		if (popupBlockerError == true) {
			popup('popupError', '', 'top');
		}	
											
	}
	
}


// days_between()
// --------------------------------------------------------------------------------
// days between two dates
//
function days_between(date1, date2) {

    // The number of milliseconds in one day
    var ONE_DAY = 1000 * 60 * 60 * 24

    // Convert both dates to milliseconds
    var date1_ms = date1.getTime()
    var date2_ms = date2.getTime()

    // Calculate the difference in milliseconds
    var difference_ms = Math.abs(date1_ms - date2_ms)
    // Convert back to days and return
    return Math.round(difference_ms/ONE_DAY)

}
  
// popup_window()
// --------------------------------------------------------------------------------
// displays dhtml partner popup windows in verticle order and right sizes
//
function popup_window(num, name, total, url)
{ 
	var wWidth = 800;
	var wHeight = 600;
	if (screen.availWidth) {
		wWidth = screen.availWidth;
		wHeight = screen.availHeight;
	} else if (document.all) {
		wWidth = window.screen.availWidth;
		wHeight = window.screen.availHeight;
	}
	var width = Math.min(800, Math.floor(wWidth/total - 10));
	var left = Math.floor(width*num + 10*num);
	try {	 
		var w = window.open(url, name,'width='+width+',height='+wHeight+',  left='+left+', top=0, resizable=1,scrollbars=1, toolbar=1');
		w.focus();
		
	} catch (ignored) {
		return false;
	}
	
	return true;
}
 
function open_compare_window_air() {
	
    try {
		var comp_array = new Array();
		
		// check if the checkbox is checked
		for (i = 0; i < document.tripdetails.match.length; i++) {
			
			if (document.tripdetails.match[i].checked){	 
					
				id = document.tripdetails.match[i].value;
				comp_array.push(
					{id: id}
				);
			}
		}
		var base_url = "/includes/air/";
		var trip_type = "";
		
		var to = document.tripdetails.AR.value;
		var from = document.tripdetails.OR.value;
		var departing_date = document.tripdetails.FromDate1.value;
		var departing_time = document.tripdetails.departing_time.value;
		var returning_time = document.tripdetails.returning_time.value;			
		var returning_date = document.tripdetails.FromDate2.value;
		var travellers = document.tripdetails.travellers.value;
		var children = document.tripdetails.children.value;
		var class_type = document.tripdetails.class_type.value;
		var from_date_js = document.tripdetails.FromDate1js.value;
		var partner_list="Compare";
		if(document.tripdetails.trip_type[0].checked)
		{
			trip_type = "round";
		}
		else if(document.tripdetails.trip_type[1].checked) {
			trip_type = "oneway";
		}
		var currentTime = new Date();
		var departure_time = new Date(parseInt(from_date_js))
		var days_in_advance = days_between(departure_time, currentTime); 
		 
		var i=0;
		windows_num = comp_array.length;
		
		
		// Loop through each partner
		var popupBlockerError = false;
		
		comp_array.each(function(obj, index) {
			partner_list += ", " + obj.id;
			var url = base_url;	   
			url += obj.id + "_inter.php?direct=n";
			url += "&trip_type=" + trip_type;
			url += "&to=" + to;
			url += "&from=" + from;
			url += "&departing_date=" + departing_date;
			url += "&departing_time=" + departing_time;
			url += "&returning_time=" + returning_time;
			url += "&returning_date=" + returning_date;
			url += "&travellers=" + travellers;
			url += "&children=" + children;
			url += "&class_type=" + class_type;	
				
			var window_name = obj.id;  
			if(popup_window(i, window_name, windows_num, url)==false) popupBlockerError=true;
			
			i++;
			
		});
 
		if (popupBlockerError == true) {
			popup('popupError', '', 'top');
		}
		// Sitecatalyst
		var _s=s_gi(s_account);       			
		_s.linkTrackVars='prop6,prop7,prop8,prop13,prop18,prop19,prop22,products,events';  		
		_s.linkTrackEvents='eventAir';						//track by event name
		_s.prop6= 'Flight – ' + trip_type + '  trip';		//flight type: roundtrip or oneway
		_s.prop7= departing_date;							//departing date
		_s.prop8= days_in_advance;							//number of days flight is from now
		_s.prop13= partner_list;							//list of air partners being compared
		_s.prop18= travellers;								//number of adults
		_s.prop19= children;								//number of children
		_s.prop22= class_type;								//type of class
		_s.events='event1';									//event name
		_s.products=';flight '+from+'-'+to;					//from and to airport codes
		_s.tl(this,'o', 'search');
	    
		return true;
	} 
	
	catch (e) {
		alert("Error");
		return true;
	}
}
function presetForm(search_type, num_travelers, departure_city, arrival_city, departure_month, departure_day, return_month, return_day){
	 if(departure_city != "")	presetCity(departure_city, 'OR');
	 if(arrival_city != "")		presetCity(arrival_city, 'AR');
	 if(departure_month != "" && departure_day != ""){
		 targetDisplayCol="FromDate1";
		 departure_month = departure_month.split(" ");
		 departure_month[0] = departure_month[0]-1;
		 var date = new Date(departure_month[1],departure_month[0],departure_day);
		 set_datetime(date , true);
	 }
	 if(return_month != "" && return_day != ""){
		 targetDisplayCol="FromDate2";
		 return_month = return_month.split(" ");
		 return_month[0] = return_month[0]-1;
		 var date = new Date(return_month[1],return_month[0],return_day);
		 set_datetime(date , true);
	 }
	 else{
		 $("returning").hide(); 
	 }
	 if(search_type == "roundtrip"){
		document.tripdetails.trip_type[0].checked = true;
		document.tripdetails.trip_type[1].checked = false;
	 }
	 else{
		document.tripdetails.trip_type[0].checked = false;
		document.tripdetails.trip_type[1].checked = true;
	 }
	 $("travellers").value = num_travelers;
}
function presetCity(city_code, div){
	 var city_param = "airport_code="+city_code+"&div="+div; 
	 var url = '/includes/air/full_airport_name.php'; 
	 var ajax = new Ajax.Request( url, {method: 'get', parameters: city_param, onComplete: updateCityInput });
}
function updateCityInput(originalRequest){
	cityAndDivArr = originalRequest.responseText.substr(2);
	cityAndDivArr = cityAndDivArr.split("|");
	$(cityAndDivArr[1]+"vis").value = cityAndDivArr[0];	
	$(cityAndDivArr[1]).value = cityAndDivArr[2];
}
function open_compare_window_hotel() {
	
    try {
		
		var comp_array = new Array();
		// check if the checkbox is checked
		
		for (i = 0; i < document.tripdetails.match.length; i++) { 
			if (document.tripdetails.match[i].checked){	 
				id = document.tripdetails.match[i].value;
				comp_array.push(
					{id: id}
				);
			}
		}
		var base_url = "/includes/hotel/"; 
		var where = $F("CT"); 
		var checkin = $F("FromDate1");
		var checkout = $F("FromDate2");
		var rooms = $F("rooms");
		var guests = $F("guests");
		var from_date_js = document.tripdetails.FromDate1js.value;
		var partner_list="Compare";
		var popupBlockerError=false;
		
		var i=0;
		windows_num = comp_array.length;
		comp_array.each(function(obj, index) {
			partner_list += ", " + obj.id;
			var url = base_url;	   
			url += obj.id + "_hotel.php?direct=n";
			url += "&where=" + where;
			url += "&checkin=" + checkin;
			url += "&checkout=" + checkout;
			url += "&rooms=" + rooms;
			url += "&guests=" + guests;
			
			var window_name = obj.id
			if(popup_window(i, window_name, windows_num, url)==false) popupBlockerError=true;
			i++;
			//var window_name = obj.id + Math.floor(Math.random()*100);
			//var w = window.open(url, window_name,'width=800,height=600,resizable=yes,scrollbars=yes,toolbar=yes,location=yes,status=yes,menubar=yes');
			
		});
		if (popupBlockerError == true) {
			popup('popupError', '', 'top');
		}
				
		return true;
		
    } catch (e) {
    	alert("Error");
	return true;
    }
}
 
// open_compare_window_car()
// --------------------------------------------------------------------------------
// sends form fields and opens new partner windows  
// 
function open_compare_window_car() {
	
    try {
		var comp_array = new Array();
		
		// check if the checkbox is checked
		for (i = 0; i < document.tripdetails.match.length; i++) {
			
			if (document.tripdetails.match[i].checked){	 
					
				id = document.tripdetails.match[i].value;
				comp_array.push(
					{id: id}
				);
			}
		}
		var base_url = "/includes/car/";
		var return_type = "";
		var dropoff = "";
		var pickup = dropoff = $F("OR"); 
		var carType = $F("car_type"); 
		var pickupDate = $F("FromDate1"); 
		var pickupTime = $F("departing_time"); 
		var dropoffDate = $F("FromDate2"); 
		var dropoffTime = $F("arrival_time"); 
		var popupBlockerError=false;
		
		if(document.tripdetails.return_type[0].checked)
		{
			return_type = "same";
		}
		else if(document.tripdetails.return_type[1].checked) {
			return_type = "different";
			dropoff = $F("AR");
		}
		
		var i=0;
		windows_num = comp_array.length;
		comp_array.each(function(obj, index) {
			var url = base_url;	   
			url += obj.id + "_car.php?direct=n";
			url += "&pickup=" + pickup;
			url += "&dropoff=" + dropoff;
			url += "&pickupDate=" + pickupDate;
			url += "&pickupTime=" + pickupTime;
			url += "&dropoffDate=" + dropoffDate;
			url += "&dropoffTime=" + dropoffTime; 
			url += "&carType=" + carType;
			 
			var window_name = obj.id
			if(popup_window(i, window_name, windows_num, url)==false) popupBlockerError=true;
			i++; 
			//var window_name = obj.id + Math.floor(Math.random()*100);
			//var w = window.open(url, window_name,'width=800,height=600,resizable=yes,scrollbars=yes,toolbar=yes,location=yes,status=yes,menubar=yes');
	
		});
		if (popupBlockerError == true) {
			popup('popupError', '', 'top');
		}
		return true;
	
    } catch (e) {
    	alert("Error");
	return true;
    }
} 
 
// getSitematchPartnersAir()
// --------------------------------------------------------------------------------
// returns relevant partners match, initialize parameter used for initial partners
//
function getSitematchPartnersAir(initialize) { 
	var params = "";
	if(!initialize && $F("AR")!="" && $F("OR")!="")  params = "to=" + $F("AR") + "&" + "from=" + $F("OR");
	
	$('smartsitematch_partners').style.display = "block";
	new Ajax.Updater('smartsitematch_partners', '/includes/partners_lookup_air.php', { method: 'get', parameters: params});
}
// getSitematchPartnersHotel()
// --------------------------------------------------------------------------------
// returns list of related partners through ajax lookup
//
function getSitematchPartnersHotel(initialize) { 
	var params = "";
	if(!initialize && $F("CT")!="") params = "where="+$F("CT");
	
	$('smartsitematch_partners').style.display = "block";
	new Ajax.Updater('smartsitematch_partners', '/includes/partners_lookup_hotel.php', { method: 'get', parameters: params});
}
// getSitematchPartnersCar()
// --------------------------------------------------------------------------------
// returns relevant partners match, initialize parameter used for initial partners
//
function getSitematchPartnersCar(initialize) { 
	var params = "";
	if(!initialize && $F("AR")!="" || $F("OR")!="")  { params = "to=" + $F("AR") + "&" + "from=" + $F("OR");}
	
	$('smartsitematch_partners').style.display = "block";
	new Ajax.Updater('smartsitematch_partners', '/includes/partners_lookup_car.php', { method: 'get', parameters: params});
}

function toggleReturn() {
	if(document.getElementById("returning").style.display == "none") {
		document.getElementById("returning").style.display = "";
	}
	else {
		document.getElementById("returning").style.display = "none";
	}
	
}
 
// getSitematchPartnersHotel()
// --------------------------------------------------------------------------------
// returns list of related partners through ajax lookup
//
function showMorePartners(){
	$('extraPartnersLink').hide();
	$('lessPartnersLink').show(); 
	Effect.Appear('extraPartners', { duration: 0.5 }); 
}
// getSitematchPartnersHotel()
// --------------------------------------------------------------------------------
// returns list of related partners through ajax lookup
//
function showLessPartners(){
	$('extraPartners').hide(); 
	$('lessPartnersLink').hide(); 
	Effect.Appear('extraPartnersLink', { duration: 0.5 }); 
}

// popup()
// --------------------------------------------------------------------------------
//shows popup with content from a file
//
function popup(file, id, where){
	var yWithScroll;
	var filename='/popups/'+file+'.php'; 
	
	$('popup').appear( {duration: 0.3} );
	if(where == 'left'){
		var x = findPosX($(id));
		var y = findPosY($(id));
		
		if(document.all){
			$("popup").style.left=x+55+"px";	
			$("popup").style.top=y-120+"px";
		}
		else {
			$("popup").style.left=x+250+"px";	
			$("popup").style.top=y-120+"px";
		}
		$("popupPointerLeft").show();
		$("popupPointerTop").hide();
		
	}
	else if(where == 'top'){
		$("popup").style.left='50px';
		$("popup").style.top='60px';
		$("popupPointerTop").show();
		$("popupPointerLeft").hide();
	}
	$('backgroundPopup').show();
	new Ajax.Updater('popupTxt', filename, { method: 'get', onComplete:showPopupCover});
	 
	if (window.innerHeight && window.scrollMaxY) {// Firefox
		yWithScroll = window.innerHeight + window.scrollMaxY;
		
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		yWithScroll = document.body.scrollHeight;
	} else { // works in Explorer 6 Strict, Mozilla (not FF) and Safari
		yWithScroll = document.body.offsetHeight;
  	}
	$('backgroundPopup').style.height = yWithScroll; 
	 
}
 
// showPopupCover()
// --------------------------------------------------------------------------------
//shows popup cover for IE 6
//
function showPopupCover(){
	$('popupCover').style.left = $('popup').style.left;
	$('popupCover').style.top = $('popup').style.top;
	$('popupCover').style.width = '300px';
	$('popupCover').style.height = $('popup').offsetHeight-24;
	$('popupCover').show();
}

// closePopup()
// --------------------------------------------------------------------------------
//closes popup
//
function closePopup(){ $('backgroundPopup').hide();$('popupCover').hide();$('popupPointerTop').hide();$('popupPointerLeft').hide();$('popup').hide();}

// submitEmail()
// --------------------------------------------------------------------------------
// submits the form
//
function submitEmail(){document.ccoptin.submit();}

// findPosX()
// --------------------------------------------------------------------------------
// Get the X Position of the object
//
function findPosX(obj) {
    var curleft = 0;
    if (obj.offsetParent) {
        while (obj.offsetParent) {
            curleft += obj.offsetLeft;
            obj = obj.offsetParent;
        }
    }
    else if (obj.x)
        curleft += obj.x;
    return curleft;
}
// findPosY()
// --------------------------------------------------------------------------------
// Get the Y Position of the object
//
function findPosY(obj) {
    var curtop = 0;
    if (obj.offsetParent) {
        while (obj.offsetParent) {
            curtop += obj.offsetTop;
            obj = obj.offsetParent;
        }
    }
    else if (obj.y)
        curtop += obj.y;
    return curtop;
}