      Ajax.currentRequests = {};
      Ajax.Responders.register({
        onCreate: function(request) {
            if (request.options.onlyLatestOfClass && Ajax.currentRequests[request.options.onlyLatestOfClass]) {
                // if a request of this class is already in progress, attempt to abort it before launching this new request
                try { Ajax.currentRequests[request.options.onlyLatestOfClass].transport.abort(); } catch(e) {}
            }
            // keep note of this request object so we can cancel it if superceded
            Ajax.currentRequests[request.options.onlyLatestOfClass] = request;
          },
        onComplete: function(request) {
            if (request.options.onlyLatestOfClass) {
                // remove the request from our cache once completed so it can be garbage collected
                  Ajax.currentRequests[request.options.onlyLatestOfClass] = null;
              }
          }
      });     

function callInProgress (xmlhttp) {
switch (xmlhttp.readyState) {
case 1: case 2: case 3:
return true;
break;
// Case 4 and 0
default:
return false;
break;
}
}
function showFailureMessage() {
alert('uh oh, it looks like the network is down. Try again shortly');
}
// Register global responders that will occur on all AJAX requests
Ajax.Responders.register({
onCreate: function(request) {
request['timeoutId'] = window.setTimeout(
function() {
// If we have hit the timeout and the AJAX request is active, abort it and let the user know
if (callInProgress(request.transport)) {
request.transport.abort();
showFailureMessage();
// Run the onFailure method if we set one up when creating the AJAX object
if (request.options['onFailure']) {
request.options['onFailure'](request.transport, request.json);
}
}
},
10000000 // Five seconds
);
},
onComplete: function(request) {
// Clear the timeout, the request completed ok
window.clearTimeout(request['timeoutId']);
}
});
      
      String.prototype.trim = function () {
        return this.replace(/^\s*/, "").replace(/\s*$/, "");
      }
      
      String.prototype.isEmpty = function () {
        return this.trim().length<=0;
      }
      
      String.prototype.pad = function(len, pad) {
        var str = this;
        if (typeof(len) == "undefined") { var len = 0; }
        if (typeof(pad) == "undefined") { var pad = ' '; }
        if (len + 1 >= str.length) {   
          str = Array(len+1 - str.length).join(pad) + str;
        }
        return str;
      }
      
      function oc(a) {
				    var o = {};
				    for(var i=0;i<a.length;i++) {
				      o[a[i]]='';
				    }
				    return o;
				  }
      
      function popDiv(cls, borderColor, height, elRel, shiftLeft, shiftTop, link, closeMsg) {
        //elRel.scrollIntoView();
        var posRel = findPos(elRel, "body");
        var elPopDiv = $("icm-booking-popdiv");
        var isNew = elPopDiv==null;
        if(isNew) {
          elPopDiv = document.createElement("div");
        }                
        elPopDiv.id = "icm-booking-popdiv";        
        elPopDiv.style.position = "absolute";        
        elPopDiv.style.left = (posRel[0]+shiftLeft)+"px";    
        elPopDiv.style.top = (posRel[1]+shiftTop)+"px";
        elPopDiv.innerHTML = "";
        
        elDiv = document.createElement("div");
        if(!height.isEmpty()) {
	        	elDiv.style.height = height;
	       } else {
			       cls = "icm-booking-layer-default-height "+cls;
	       }
	       //elDiv.style.borderColor = borderColor;
	       elDiv.className = "icm-booking-layer "+cls;                    
        
        elCDiv = document.createElement("div");        
        elCDiv.id = "icm-booking-popdivcontent";
        elCDiv.innerHTML = "<div id=\"loading\"></div>";
        elDiv.appendChild(elCDiv);
                  
        elCl = document.createElement("a");
        elCl.className = "icm-booking-layer-close";
        elCl.href = "javascript:closePopDiv()";
        elCl.innerHTML = closeMsg;
        elCl.title = closeMsg;
        elDiv.appendChild(elCl); 
        
        elPopDiv.appendChild(elDiv);
        
        if(isNew) {
          document.body.appendChild(elPopDiv);
        } else {
          Element.removeClassName(elPopDiv, "hidden");
        }
        elPopDiv.scrollIntoView();
        new Ajax.Updater("icm-booking-popdivcontent", link, {asynchronous:true, evalScripts:true, onlyLatestOfClass:"popdiv"});
      }
      
      function closePopDiv() {
        var elDiv = $("icm-booking-popdiv");
        if(elDiv!=null) {
          Element.addClassName(elDiv, "hidden");
        }
      }
      
      function showVirtualView(link) {
		      var elDiv = $("icm-booking-popdiv");
  	     if(elDiv!=null) {
          $("icm-booking-popdivcontent").innerHTML = "<iframe width='100%' height='600px' src='"+link+"'></iframe>";
		  	   }
      }
      
      function findPos(obj, toId) {     
        var curleft = curtop = 0;        
        if (obj.offsetParent) {
	        	curleft = parseInt(obj.offsetLeft);
         	curtop = parseInt(obj.offsetTop);
         	obj = obj.offsetParent;
         	while (obj && obj.id!=toId) {         			
         			offLeft = obj.offsetLeft;
         			offTop = obj.offsetTop;
		 	       	curleft += (typeof(offLeft)!="undefined"?parseInt(offLeft):0);
  	        	curtop += (typeof(offTop)!="undefined"?parseInt(offTop):0);
  	        	obj = obj.offsetParent;
         	}
      	 } else {
      	 		if(obj.x) {
												curleft = obj.x;
										} 
										if(obj.y) {
												curtop = obj.x;
										}
								}
    		  return [curleft,curtop];
      }
      
      function submitForm(formId, valFunc) {    
        if(valFunc==null || valFunc) {
          $(formId).submit();
        }   
      }    
      
  function changeSCData(name, idx, link) {    
    var el = $(name+"_"+idx);
    if(!Element.hasClassName(el, "icm-booking-current")) {
		    $("icm-booking-result-wrapper").innerHTML = "<div id=\"loading\"></div>";
		    Element.addClassName(el, "icm-booking-current");    
		    var els = document.getElementsByName(name+"_selected");
		    for(var i=0;i<els.length;i++) {      
		      Element.removeClassName(els[0], "icm-booking-current");
		      els[0].name = "";
			    }
			    el.name = name+"_selected";
			    new Ajax.Updater("icm-booking-result-wrapper", link,  {method:'post', evalScripts:true, onlyLatestOfClass:'search'});
	    }
  }
  
  function changeFilter(link) {
    $("icm-booking-result-wrapper").innerHTML = "<div id=\"loading\"></div>";
    new Ajax.Updater("icm-booking-result-wrapper", link,  {method:'post', evalScripts:true, onlyLatestOfClass:'search'});
  }
  
  var resPage = 1;
  function selectPage(pgNr, pgCnt, itemsPerPage, resCnt, basePath) {
    if(resPage!=pgNr) {
      Element.removeClassName($("icm-booking-respageselect-"+resPage), "marked");
      Element.addClassName($("icm-booking-respageselect-"+pgNr), "marked");    
      Element.addClassName($("icm-booking-resultpage-"+resPage), "hidden");
      Element.removeClassName($("icm-booking-resultpage-"+pgNr), "hidden");    
      // bottom page nav
      Element.removeClassName($("icm-booking-respageselect-bottom-"+resPage), "marked");
      Element.addClassName($("icm-booking-respageselect-bottom-"+pgNr), "marked");    
      Element.addClassName($("icm-booking-resultpage-bottom-"+resPage), "hidden");
      Element.removeClassName($("icm-booking-resultpage-bottom-"+pgNr), "hidden");
      resPage = pgNr;
      var elResOnPage = $("icm-booking-resultsonpage");
      if(elResOnPage!=null) {
        var from = ((pgNr-1)*itemsPerPage)+1;
        var to = Math.min(pgNr*itemsPerPage, resCnt);      
        elResOnPage.innerHTML = from+(to!=from?"-"+to:"");
      }
      if(pgNr>1) {
        $("icm-booking-pagination-previous").src = basePath+"img/bookingengine/prev-page-active.gif";
        $("icm-booking-pagination-first").src = basePath+"img/bookingengine/first-page-active.gif";
        $("icm-booking-pagination-previous-bottom").src = basePath+"img/bookingengine/prev-page-active.gif";
        $("icm-booking-pagination-first-bottom").src = basePath+"img/bookingengine/first-page-active.gif";
      } else {
        $("icm-booking-pagination-previous").src = basePath+"img/bookingengine/prev-page.gif";
        $("icm-booking-pagination-first").src = basePath+"img/bookingengine/first-page.gif";
        $("icm-booking-pagination-previous-bottom").src = basePath+"img/bookingengine/prev-page.gif";
        $("icm-booking-pagination-first-bottom").src = basePath+"img/bookingengine/first-page.gif";
      }
      if(pgNr<pgCnt) {
        $("icm-booking-pagination-next").src = basePath+"img/bookingengine/next-page-active.gif";
        $("icm-booking-pagination-last").src = basePath+"img/bookingengine/last-page-active.gif";
        $("icm-booking-pagination-next-bottom").src = basePath+"img/bookingengine/next-page-active.gif";
        $("icm-booking-pagination-last-bottom").src = basePath+"img/bookingengine/last-page-active.gif";
      } else {
      	$("icm-booking-pagination-next").src = basePath+"img/bookingengine/next-page.gif";
        $("icm-booking-pagination-last").src = basePath+"img/bookingengine/last-page.gif";
        $("icm-booking-pagination-next-bottom").src = basePath+"img/bookingengine/next-page.gif";        
        $("icm-booking-pagination-last-bottom").src = basePath+"img/bookingengine/last-page.gif";
      }
    }
  }
  
  function incPage(pgCnt, itemsPerPage, resCnt, basePath) {
    var pgNr = Math.min(resPage+1, pgCnt);
    selectPage(pgNr, pgCnt, itemsPerPage, resCnt, basePath);
  }
  
  function decPage(pgCnt, itemsPerPage, resCnt, basePath) {
    var pgNr = Math.max(resPage-1, 1);
    selectPage(pgNr, pgCnt, itemsPerPage, resCnt, basePath);
  }
   
  function checkPricing(sailingId, link) {
  		var elCheck = $("icm-booking-availability-check-"+sailingId);
  		//elCheck.className = "icm-booking-availability-disabled";  		
    $("icm-booking-cabin-category-price-preview-"+sailingId).innerHTML="<div id=\"loading\"></div>";
    new Ajax.Updater("icm-booking-cabin-category-price-preview-"+sailingId, link, {asynchronous:true, evalScripts:true});
  }  
  
  function toggleSearchData(baseLink) {  		
    var el = $("icm-booking-search-form-wrapper");
    var elHd = $("icm-booking-search-wrapper-headline");
    if(Element.hasClassName(el, "hidden")) {
		    new Ajax.Updater("icm-booking-msg", baseLink+"/false", {asynchronous:true, evalScripts:true});
    		Element.removeClassName(el, "hidden"); 		
    		Element.removeClassName(elHd, "icm-booking-search-wrapper-headline-closed");    		
    } else {
		    new Ajax.Updater("icm-booking-msg", baseLink+"/true", {asynchronous:true, evalScripts:true});
		    Element.addClassName(el, "hidden");
		    Element.addClassName(elHd, "icm-booking-search-wrapper-headline-closed");		    
    }
  }
  
  function getCabins(elId, checkId, link) {
    $(checkId).className = "icm-booking-cabin-availability-disabled";
    $(elId).innerHTML = "<div id=\"loading\"></div>";
    new Ajax.Updater(elId, link,  {method:'post', evalScripts:true, onlyLatestOfClass:'getCabins'});
  }
  
  function changeGuestCount(link) {
    $("icm-booking-cabins").innerHTML = "<div id=\"loading\"></div>"
    new Ajax.Updater('icm-booking-cabins', link, {asynchronous:true, evalScripts:true});
  }
  
  function chooseCabin(link, elId) {
    new Ajax.Updater(elId, link, {asynchronous:true, evalScripts:true});
  }  
  
  function openInputData(elId) {
    var el = $(elId);
    if(Element.hasClassName(el, "collapsed")) {
      var inputs = document.getElementsByName("icm-booking-inputdata");
      for(var i=0;i<inputs.length;i++) {
        var input = inputs[i];
        if(!Element.hasClassName(input, "collapsed")) {
          Element.addClassName(input, "collapsed");
        }
      }      
      Element.removeClassName(el, "collapsed");      
    }
  }    

  // define the mandatory fields
  var addrMands1 = new Array("salutation", "firstname", "lastname", "gender", "birthday", "birthmonth", "birthyear", "nationality", "email", "phone", "street", "streetnr", "zipcode", "city", "country");  
  var addrMandsLoggedIn1 = new Array("salutation", "firstname", "lastname", "gender", "birthday", "birthmonth", "birthyear");
  var addrMands2 = new Array("salutation", "firstname", "lastname", "gender", "birthday", "birthmonth", "birthyear", "nationality", "country");  
  var addrMandsLoggedIn2 = new Array("salutation", "firstname", "lastname", "gender", "birthday", "birthmonth", "birthyear");
	var addrMands2CCL = new Array("salutation", "firstname", "lastname", "gender", "birthday", "birthmonth", "birthyear", "nationality", "country");
	var addrMandsLoggedIn2CCL = new Array("salutation", "firstname", "lastname", "gender", "birthday", "birthmonth", "birthyear");
  var valFields1 = new Array("email");  
  var valFields2 = new Array("email");  
  var valFields2CCL = new Array("email");  
  
  function isemail(s) {
			 s = s.trim();
			 var a = false;
			 var res = false;
			 if(typeof(RegExp) == 'function') {
			   var b = new RegExp('abc');
			   if(b.test('abc') == true){a = true;}
		  }			
			 if(a == true) {
			   reg = new RegExp('^([a-zA-Z0-9\\-\\.\\_]+)'+
			                    '(\\@)([a-zA-Z0-9\\-\\.]+)'+
			                    '(\\.)([a-zA-Z]{2,4})$');
			   res = (reg.test(s));
			 } else {
	 		  res = (s.search('@') >= 1 &&
		 	         s.lastIndexOf('.') > s.search('@') &&
			          s.lastIndexOf('.') >= s.length-5)
			 }
			 return(res);
		} 

  function validateForm(clCode, loggedIn) {
    var guestCount = document.getElementsByName("icm-booking-guestaddress").length;
    var formIsValid = true;
    var msg = "";
    for(var i=1;i<=guestCount;i++) {
    		var addrMands = (i<=1?(loggedIn?addrMandsLoggedIn1:addrMands1):(clCode=="CCL"?(loggedIn?addrMandsLoggedIn2CCL:addrMands2CCL):addrMands2));
    		var valFields = (i<=1?valFields1:(clCode=="CCL"?valFields2CCL:valFields2));
      	for(var j=0;j<addrMands.length;j++) {
	        var elId = addrMands[j]+"-"+i;
	        var elValue = $("icm-booking-"+elId).value;
	        var elMErr = $("icm-booking-merr-"+elId);
	        var elLbl = $("icm-booking-lbl-"+elId);
	        if(elValue==null||elValue.trim().length<=0||elValue=="---") {
	          if(formIsValid) {
	            // focus on the first occuring error
	            openInputData("icm-booking-guestaddress-"+i);
	            $("icm-booking-"+elId).focus();
	          }
	          formIsValid = false;
	          Element.removeClassName(elMErr, "hidden");
	          Element.addClassName(elLbl, "icm-booking-error");
	        } else {
        		var elName = addrMands[j];
        		Element.addClassName(elMErr, "hidden");
        		if(elName in oc(valFields)) {    
        				var elMValErr = $("icm-booking-mvalerr-"+elId);
        				var valFunc = "is"+elName;
        				var isValid = eval(valFunc+"('"+elValue+"')");
        				if(!isValid) {
		        				if(formIsValid) {
				            // focus on the first occuring error
		  		          openInputData("icm-booking-guestaddress-"+i);
		    		        $("icm-booking-"+elId).focus();
				          }
		      		    formIsValid = false;
		        		  Element.removeClassName(elMValErr, "hidden");
		          		Element.addClassName(elLbl, "icm-booking-error");
        				} else {
		        				Element.addClassName(elMValErr, "hidden");
		          		Element.removeClassName(elLbl, "icm-booking-error");
  		        }
        		} else {
		        		Element.addClassName(elMErr, "hidden");
	 	       		Element.removeClassName(elLbl, "icm-booking-error");
        		}		            		      
        }
      }            
    }
    
    // selected travel agency
    var selTA = $("icm-booking-selectedta").value;
    if(selTA.trim().length<=0) {
      Element.removeClassName($("icm-booking-merr-selectedta"), "hidden");
      Element.addClassName($("icm-booking-lbl-selectedta"), "icm-booking-error");
      if(formIsValid) {
        openTASearch();
        formIsValid = false;
      }      
    } else {
      Element.addClassName($("icm-booking-merr-selectedta"), "hidden");
      Element.removeClassName($("icm-booking-lbl-selectedta"), "icm-booking-error");
    }
    
    // selected dining seating
    var selDS = null;
    var DSs = document.getElementsByName("icm-booking-diningseating");
    for(i=0;i<DSs.length;i++) {
      var elDS = DSs[i];
      if(elDS.checked) {
        selDS = elDS;
        break;
      }
    }
    if(selDS==null||selDS.value.trim().length<=0) {
      Element.removeClassName($("icm-booking-merr-diningseating"), "hidden");
      if(formIsValid) {
        openInputData("icm-booking-dining-seating-search");
        formIsValid = false;
      }      
    } else {
      Element.addClassName($("icm-booking-merr-diningseating"), "hidden");
    }
    return formIsValid;
  }    
  
  function clearTASearch() {
    $("icm-booking-agencyname").value = "";
    $("icm-booking-agencyzipcode").value = "";    
    $("icm-booking-agencycity").value = "";
    $("icm-booking-agencystreet").value = "";
  }
  
  function travelAgencySearch() {  
    resPage = 1;
    var agencyname = $("icm-booking-agencyname").value;
    var zipcode = $("icm-booking-agencyzipcode").value;
    var city = $("icm-booking-agencycity").value;
    var country = $("icm-booking-agencycountry").value;
    var street = $("icm-booking-agencystreet").value;
    var baseLink = $("icm-booking-baselink").value;
    if(agencyname.isEmpty()) { agencyname = "*"; }
    if(zipcode.isEmpty()) { zipcode = "*"; }
    if(city.isEmpty()) { city = "*"; }
    if(zipcode.isEmpty()) { zipcode = "*"; }
    if(city.isEmpty()) { city = "*"; }
    if(street.isEmpty()) { street = "*"; }
    if(country.isEmpty()) { country = "*"; }
    $("icm-booking-tasearchresult").innerHTML = "<div id=\"loading\"></div>";
    new Ajax.Updater("icm-booking-tasearchresult", Url.encode(baseLink+"/ajaxSearchTravelAgency/"+agencyname+"/"+zipcode+"/"+city+"/"+street+"/"+country), {asynchronous:true, evalScripts:true, onlyLatestOfClass:'searchta'});  
  }
  
  function openTASearch(travAgcId) {        
    if(travAgcId==null||travAgcId.isEmpty()) {
		    clearTASearch();
		    var zipcode = $("icm-booking-zipcode-1").value;
	  	  //$("icm-booking-agencyzipcode").value = zipcode;
 		   city = $("icm-booking-city-1").value;
    		//$("icm-booking-agencycity").value = city;
//	    	travelAgencySearch();
	   }
	   openInputData("icm-booking-travel-agency-search");
  }
  
  function selectAgency(id) {
    var baseLink = $("icm-booking-baselink").value;
    Element.addClassName($("icm-booking-merr-selectedta"), "hidden");
    Element.removeClassName($("icm-booking-lbl-selectedta"), "icm-booking-error");
    new Ajax.Updater("icm-booking-taselected", baseLink+"/ajaxSelectTravelAgency/"+id, {asynchronous:true, evalScripts:true, onlyLatestOfClass:'selectta'});  
  }  
  
  function setGender(idx, selectedIndex) {    
    if($("icm-booking-gender-"+idx).options.length-1>=selectedIndex) {
		    $("icm-booking-gender-"+idx).selectedIndex = selectedIndex;
		  }		  
		  if($("icm-booking-salutation-"+idx).options.length-1>=selectedIndex) {
		    $("icm-booking-salutation-"+idx).selectedIndex = selectedIndex;    
		  }
  } 
  
  function enterNumbers(evt) {
    var charCode = evt.which ? evt.which : (window.event ? window.event.keyCode : 0);
    return (charCode <= 31 || (charCode >= 48 && charCode <= 57));
  }
  
  function setNumber(el, min, max) {
    var val = el.value;
    if(!val.isEmpty()) {      
      if(Number(val)>Number(max)) {
        val = String(max);
      }
      if(Number(val)<Number(min)) {
        val = String(min);
      }
      val = val.pad(2, "0");
      el.value = val;
    }
  }
  
  function setYear(el) {
    var val = el.value;
    if(!val.isEmpty()) {
      if(val.length==1) {
        val = "200"+val;
      }
      if(val.length==2) {
        val = "19"+val;
      }
      if(val.length==3) {
        val += 0;
      }
      el.value = val;
    }
  }  
  
  document.getElementsByName=function(str){
				str=new String(str);
				var myMatches=new Array();
				var allEls=document.getElementsByTagName("*"),l=allEls.length;
				for(var i=0;i<l;i++)if(allEls[i].name==str || allEls[i].getAttribute("name")==str)myMatches[myMatches.length]=allEls[i];
				return myMatches;
		}
		
/**
*
* URL encode / decode
* http://www.webtoolkit.info/
*
**/

var Url = {

    // public method for url encoding
    encode : function (string) {
        return escape(this._utf8_encode(string));
    },

    // public method for url decoding
    decode : function (string) {
        return this._utf8_decode(unescape(string));
    },

    // private method for UTF-8 encoding
    _utf8_encode : function (string) {
        string = string.replace(/\r\n/g,"\n");
        var utftext = "";

        for (var n = 0; n < string.length; n++) {

            var c = string.charCodeAt(n);

            if (c < 128) {
                utftext += String.fromCharCode(c);
            }
            else if((c > 127) && (c < 2048)) {
                utftext += String.fromCharCode((c >> 6) | 192);
                utftext += String.fromCharCode((c & 63) | 128);
            }
            else {
                utftext += String.fromCharCode((c >> 12) | 224);
                utftext += String.fromCharCode(((c >> 6) & 63) | 128);
                utftext += String.fromCharCode((c & 63) | 128);
            }

        }

        return utftext;
    },

    // private method for UTF-8 decoding
    _utf8_decode : function (utftext) {
        var string = "";
        var i = 0;
        var c = c1 = c2 = 0;

        while ( i < utftext.length ) {

            c = utftext.charCodeAt(i);

            if (c < 128) {
                string += String.fromCharCode(c);
                i++;
            }
            else if((c > 191) && (c < 224)) {
                c2 = utftext.charCodeAt(i+1);
                string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
                i += 2;
            }
            else {
                c2 = utftext.charCodeAt(i+1);
                c3 = utftext.charCodeAt(i+2);
                string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
                i += 3;
            }

        }

        return string;
    }

}		

function showDeck(link, updElId) {
		$(updElId).innerHTML = "<div id=\"loading\"></div>";
		new Ajax.Updater(updElId, link, {method:'post', evalScripts:true, onlyLatestOfClass:'showDeck'})
}

function submitPackages(formId, msg) {		
		if(!$("noPackage").checked) {		
				var chosen = false;		
		  var els = document.getElementsByName("transfer[]");
		  for(i=0;i<els.length;i++) {
		  		if(els[i].checked) {
		  				chosen = true;
		  				break;
		  		}
		  }
		  els = document.getElementsByName("prepackage");
		  for(i=0;i<els.length;i++) {
		  		if(els[i].checked) {
		  				chosen = true;
		  				break;
		  		}
		  }		  
		  els = document.getElementsByName("postpackage");
		  for(i=0;i<els.length;i++) {
		  		if(els[i].checked) {
		  				chosen = true;
		  				break;
		  		}
		  }		
		  if(!chosen) {
		  		alert(msg);
		  } else {		  		
		  		submitForm(formId, null);
		  }
		}	else {
				submitForm(formId, null);
		}				
}

function selectNoPackage() {
		if($("noPackage").checked) {		
				var els = document.getElementsByName("transfer[]");
		 	for(i=0;i<els.length;i++) {
						els[i].checked = false;
				}
		  els = document.getElementsByName("prepackage");
		  for(i=0;i<els.length;i++) {
		  		els[i].checked = false;
		  }		  
		  els = document.getElementsByName("postpackage");
		  for(i=0;i<els.length;i++) {
		  		els[i].checked = false;
		  }						
		}
}

function selectPackage() {
		$("noPackage").checked = false;
}

function hidePages(i, pageCount){
		for (j = i; j <= pageCount; j++){ 
			strIdalt="icm-booking-td-respageselect-"+j;
			Element.addClassName($(strIdalt), "hidden");
		}	
}

function showPageSection(i, pageCount){
		hidePages(1, pageCount);
		var h=i;
		if(i<6) {
				h=6;
		}
		var st = h-5; 		
		if(i+6 > pageCount) { 
    st = pageCount-10;
  }           
		for (j = st; j <= pageCount && j< h+5; j++){ 
				strId="icm-booking-td-respageselect-"+j;
				Element.removeClassName($(strId), "hidden");
		}
}
