// Temporary breeding ground for CLUBHOTEL Scripts
/*|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||*/
function chInit()   {
    //correctPNG();
    MM_preloadImages('/images/template/header/home-Over.jpg','/images/template/header/hotels-Over.jpg','/images/template/header/packages-Over.jpg','/images/template/header/member-accounts-Over.jpg','/images/template/header/member-benefits-Over.jpg','/images/template/header/member-services-Over.jpg');
    var cookie = readCookie('CHHE')
    if (cookie) {
    } else {
        createCookie('CHHE', 'none', '420');
    }
    
    // this won't work for pngs defined in a style sheet
    //correctPNG();

}

// showHide(el,rem)
function showHide(el,rem){  
    // Expire cookie in 420 days
    var expDate = '420';
    // Current status of the element
    var s = $(el).style.display;
    // Cookie Name
    var h = 'CHHE';
    var cook = readCookie(h);
    // Toggles show or hide on the element
    if (s == 'none') {
        //$(el).style.display = 'block'
        Effect.BlindDown(el,{duration:.3});
    } else {
        //$(el).style.display = 'none'
        Effect.BlindUp(el,{duration:.3});
    }
    // rem is a boolean, pass a 0 to toggle the element without setting a cookie
    
    if (rem) {
        if (s == 'none') {
            //remove element from list	
            var cArray = cook.split("%2C");
            for (var j=0; j < cArray.length; j++) {
                if (cArray[j] == el) {
                    cArray.splice(j,1);                                     
                }
            }
            createCookie(h, cArray.join("%2C"), expDate);   
        } else {
            //append element to list
            
            var cArray = cook.split("%2C");
            cArray.push(el);
            createCookie(h, cArray.join("%2C"), expDate)
        }                   
    }
}
function finHotelTabSwitch(tab){
    // switches tabs in dspFindHotelCenterBox.cfm
    
	$('finHotelCenterBox_cityTab').removeClassName('active');
	//$('finHotelCenterBox_airportTab').removeClassName('active');
	$('finHotelCenterBox_mapTab').removeClassName('active');
	// $('finHotelCenterBox_favoriteDestinationsTab').removeClassName('active');
    $(tab).addClassName("active");
    
    switch (tab) {
    case "finHotelCenterBox_cityTab":
	    $('findHotelCenterBox').style.display = '';
	    $('findHotelCenterBox_MapContainer').style.display = 'none';
        $('finHotelCenterBox_countryContainer').style.display = 'block';
        $('finHotelCenterBox_cityContainer').style.display = 'block';
        //$('finHotelCenterBox_airportContainer').style.display = 'none';
        //$('finHotelCenterBox_favoriteDestinationsContainer').style.display = 'none';
        break
    case "finHotelCenterBox_airportTab":
    	$('findHotelCenterBox').style.display = '';
    	$('findHotelCenterBox_MapContainer').style.display = 'none';
        $('finHotelCenterBox_countryContainer').style.display = 'block';
        $('finHotelCenterBox_airportContainer').style.display = 'block';
        $('finHotelCenterBox_cityContainer').style.display = 'none';
       	// $('finHotelCenterBox_favoriteDestinationsContainer').style.display = 'none';
        break
    case "finHotelCenterBox_favoriteDestinationsTab":
        $('finHotelCenterBox_countryContainer').style.display = 'none';
        $('findHotelCenterBox_MapContainer').style.display = 'none';
        $('finHotelCenterBox_favoriteDestinationsContainer').style.display = 'block';
        $('finHotelCenterBox_airportContainer').style.display = 'none';
        $('finHotelCenterBox_cityContainer').style.display = 'none';
        break
    case "finHotelCenterBox_mapTab":
    	console.info('Show Map');
        $('findHotelCenterBox').style.display = 'none';
        var map = findMap('map');
        if (isMap(map))
        	startMap(map);
        $('findHotelCenterBox_MapContainer').style.display = 'block';
        break       
    }
}
// Show or hide child age drop down boxes
function childAges(set,count){
    // count = number of children selected
    // set = the div id set of child ages to show or hide
    ///alert(set);
    if (count == 0) {
        //no children selected hide all
        var i=1
        for (i=1;i<=6;i++) {
            document.getElementById(set+[i]).style.display = 'none';
        }
    } else {
        var i=1
        for (i=1;i<=count;i++) {
            
            var k=1
            for (k=1;k<=6;k++) {
                
                if (i>=k) {
                    var disp = 'block';
                } else {
                    var disp = 'none';
                }
                
                
                document.getElementById(set+[k]).style.display = disp;
                
            }                     

        }
        
    }
}
// Room configuration for homepage find hotel module
function configureHomePageRooms(count){ 
    
    var x
    var disableThese = new Array()
    disableThese[0] = "adults"
    disableThese[1] = "children"
                      
    switch (count) {
    case "1":
        Effect.SlideUp('roomConfig',{duration:.3});
        for (x in disableThese) {
            $('findHotelCenterBox_'+disableThese[x]).disabled = false;
        }
        
        break
    case "2":

        if ($('roomConfig').style.display =='none') {
            Effect.SlideDown('roomConfig',{duration:.3});
        }
        $('room2Tab').style.display = 'block';
        $('room3Tab').style.display = 'none';
        tabs.setActiveTab('Room2');
        for (x in disableThese) {
            $('findHotelCenterBox_'+disableThese[x]).disabled = true;
        }

        
        break
    case "3":
        if ($('roomConfig').style.display =='none') {
            Effect.SlideDown('roomConfig',{duration:.3});
        }
        $('room2Tab').style.display = 'block';
        $('room3Tab').style.display = 'block';
        tabs.setActiveTab('Room3'); 
        for (var j=0; j<valueArray.length; j++) {
            $('findHotelCenterBox_'+valueArray).disabled = true;
        }
        
        break           
    }
}   
// Gets the hieght in pixes of the element passed in
function getHeight(el){ 
    var dimensions = $(el).getDimensions();
    return dimensions.height + 'px'
}
function validateForm(){
    return true;
}

function showErrorMsg(f){
    Effect.Appear(f+'_e')
}
function mCheck(z){
    if ($(z+'Display').checked==false) {
        $(z+'Edit').checked=false
        //alert('was checked');
    }

    else {
        $(z+'Edit').checked=true
        //alert('wasnt checked')
    }
    
}
// Updates display mode content
function updateDisplay(f){
    switch (f) {
    case "destinationsCity":
        $('destinationsCityDisplayData').innerHTML = $('country').value + ', ' + $('city').value;
        break
    case "destinationsAirport":
        $('destinationsAirportDisplayData').innerHTML = $('destinationsAirportDisplay_txt').value;
        break
    case "destinationsFavorite":
        $('destinationsFavoriteDisplayData').innerHTML = $('destinationsFavorite_sel').value;
        break
    case "dates":
        $('checkInDate').innerHTML = $('datesCheckIn_in').value;
        $('destinationCenterHeaderCheckInDate').innerHTML = $('datesCheckIn_in').value;
        
        $('checkOutDate').innerHTML = $('datesCheckIn_out').value;
        $('destinationCenterHeaderCheckOutDate').innerHTML = $('datesCheckIn_out').value;
        break   
    case "guestsRoom1":
        //adults
        $('guestRoom1AdultsData').innerHTML = $('guestsAdults1_sel').value;
        //senior discount
        if ($('seniorDiscountRoom1_chkbx').checked==true) {
            $('guestsRoom1SeniorDiscount').style.display = 'inline'
        } else {
            $('guestsRoom1SeniorDiscount').style.display = 'none'
        }
        //children
        $('guestRoom1ChildrenData').innerHTML = $('childrenRoom1_sel').value;
        break
    case "guestsRoom2":
        //adults
        $('guestRoom2AdultsData').innerHTML = $('guestsAdults2_sel').value;
        //senior discount
        if ($('seniorDiscountRoom2_chkbx').checked==true) {
            $('guestsRoom2SeniorDiscount').style.display = 'inline'
        } else {
            $('guestsRoom2SeniorDiscount').style.display = 'none'
        }
        //children
        $('guestRoom2ChildrenData').innerHTML = $('childrenRoom2_sel').value;       
        
        break       
    case "guestsRoom3":
        //adults
        $('guestRoom3AdultsData').innerHTML = $('guestsAdults3_sel').value;
        //senior discount
        if ($('seniorDiscountRoom3_chkbx').checked==true) {
            $('guestsRoom3SeniorDiscount').style.display = 'inline'
        } else {
            $('guestsRoom3SeniorDiscount').style.display = 'none'
        }
        //children
        $('guestRoom3ChildrenData').innerHTML = $('childrenRoom3_sel').value;       
        break   
    case "mapAddress":
        $('mapAddressStreetData').innerHTML = $('mapAddressStreetData_txt').value;
        $('mapAddressNumberData').innerHTML = $('mapAddressNumber_sel').value;
        $('mapAddressMeasureData').innerHTML = $('mapAddressMeasure_sel').value;
        if ($('mapAddressShowDistance_chkbx'+'Edit').checked==true) {
            $('mapAddressShowDistance_chkbx'+'Display').checked=true;
        } else {
            $('mapAddressShowDistance_chkbx'+'Display').checked=false
        }
        break
    case "mapAirport":
        $('mapAirportDisplayData').innerHTML = $('mapAirport_txt').value;
        break
    case "mapPointOfInterest":
        $('mapPointOfInterestDisplayData').innerHTML = $('mapPointOfInterest_sel').value;
        break
    case "hotelBrands":
        $('hotelBrandsDisplayData').innerHTML = $('hotelBrands_sel').value;
        break
    case "amenities":
        var test = $(f).serialize();
        alert(test);
        break       
    case "starRating":
        break       
    case "sortOrder":
        break       
    default:
        //alert('def');
        break
    }
    
}
// Centers the Update Message Box based on client screen width
function centerMessageBox(box){
    
    var msgBoxOffset = $(box).getWidth()/2;
    var msgBoxHeightOffset = $(box).getHeight()/2;
    var center = Math.round((getW())/2)-msgBoxOffset+'px';
    var vertCenter = Math.round((getH())/2)-msgBoxHeightOffset+'px';
    $(box).style.left = center;
    $(box).style.top = vertCenter;
}
function showMessageBox(box){
    centerMessageBox(box);
    var mHeight = $('clubHotel').getHeight();
    $('modal').style.height = mHeight+'px';
    $('modal').style.display = 'block';
    $(box).style.display = 'block';

}
function hideMessageBox(){
    new Effect.Fade('messageBox',{duration: .3, onComplete:$('modal').style.display = 'none'});
    
    
}
// Switches between edit and display modes in search components
function    switchModes(f){
    if ($(f+'Display').style.display == 'block') {
        $(f+'Edit').style.display = 'block';
        $(f+'Display').style.display = 'none';  
    } else {
        
        $(f+'Edit').style.display = 'none';
        $(f+'Display').style.display = 'block';                     
    }
}
        
// Gets the active tab in a search component - not used right now
function getActiveClass(tg,tl){
    var valueArray = tl.split(",");
    for (var j=0; j<valueArray.length; j++) {
        if ($(tg+'tab'+j).hasClassName('active')) {
            aClass = valueArray[j]
        }
    }
    
    return aClass
}

function switchLanguage(){
    document.language.returnPage.value = location.href;
    document.language.submit();
}

function changeCountry(id){
    new Ajax.Request('/index.cfm?fuseaction=ajax.changeCountry',{
                     method:'post',
                     parameters: {CountryId: id} } );
}

function validateSearchComponent(formID){
    var valid = new Validation(formID,{onSubmit:false});
    var result = valid.validate();
    
    if (result) {
        updateHotelSearchResults(formID);
    }
}

function searchResultsExecutor(){

	var x
	var jsIdList = new Array()
	jsIdList = $('chHotels').value;
	var pe = new PeriodicalExecuter(fire, 3);
	function fire(){
		if (jsIdList.length) {
			var remaining = jsIdList.length;
			getRoomRates(jsIdList[0]);
			jsIdList.splice(0,1)
		} else {
			pe.stop();
		}
	}
}
function getRoomRatesM(id){
	Element.hide('frmButton'+id);
	showLoader(id,1);
	new Ajax.Request('/index.cfm?fuseaction=ajax.getRoomRates',{
					 method:'post',
					 parameters: {HotelID: id},
					 onSuccess: function(transport){
					 var response = transport.responseText || "Rates for this hotel could not be retrieved";
					 $('roomRates'+id).innerHTML = response;
					 hideLoader(id);
					 $('rateBox'+id).style.height = $('roomRates'+id).offsetHeight;
		 }});
} 

function showLoader(id,m){
	if(m){
	$('frmButton'+id).disabled=true;}
	//centerLoader(id);
	Element.show('spinner'+id);
}

function centerLoader(id){

	var frameXCenter = $('hotelSearchResult'+id).getWidth()/2;
	var frameYCenter = $('hotelSearchResult'+id).getHeight()/2;
	var loaderXoffset = $('spinner'+id).getWidth()/2;
	var loaderYoffset = $('spinner'+id).getHeight()/2;	
	var center = frameXCenter-loaderXoffset+'px';
	var vertCenter = frameYCenter-loaderYoffset+'px';
	$('spinner'+id).style.left = center;
	$('spinner'+id).style.top = vertCenter;

}

function hideLoader(id){
    	Element.hide('spinner'+id);
} 

function useShippingAddress(divName,frmName){
		Element.hide(divName);
		reInitValidation(frmName);
	}
function useNewAddress(divName, frmName, doScroll, scrollToDiv){
		Effect.Appear(divName, {duration:.3});
		if(doScroll){
		new Effect.ScrollTo(scrollToDiv, {duration:.3});
		}
		reInitValidation(frmName);
	}
function reInitValidation(frmName){
		var valid = new Validation(frmName);
        valid.reset();
	}


	function isEmail(email){
				return /\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b/i.test(email);
	}
