/*	Global Configuration
----------------------------------------------- */
jQuery.noConflict();
var $j = jQuery;
var isIE6 = false;
var isMac = false;
var isSafari = false;


/*	Utility: Browser Tests
----------------------------------------------- */
utilBrowserTests = function() {

	/* Checks for IE6 using object detection, then applies the fix for background flicker bug */
	if (typeof document.body.style.maxHeight == "undefined") { isIE6 = true; try { document.execCommand('BackgroundImageCache', false, true); } catch(e) { } }

	/* Checks for Safari and adds class of .safari to div#Container */
	if($j.browser.safari) { isSafari = true; $j("div#Container").addClass("safari"); }

	/* Checks for Mozilla and applies the Opacity fix for Mac */
  	var userAgent = navigator.userAgent.toLowerCase();
	if (userAgent.indexOf('mac') != -1) { isMac = true; }
	if ($j.browser.mozilla && isMac) { $j("body").css('opacity', '.9999'); }

};


/*	Utility: Form Legends
----------------------------------------------- */
utilFromLegends = function() {
	$j("legend.accessibility").hide();
	$j("legend.ir").each(function(){
		var jObj = $j(this);
		var cssClassesStr = jObj.attr("class").toString();
		var cssClasses = cssClassesStr.split("ir replace-");
		jObj.after("<"+ cssClasses[1] + " class=\"ir legend\">"+ jObj.html() +"</"+ cssClasses[1] +">").remove();
		$j("h3.legend").prepend("<span></span>");
		$j("div.newsletter_form h4.legend").prepend("<span></span>");
		$j("div.hotelSelect form h4.legend").prepend("<span></span>");
	});
};


/*	Home: Promo
----------------------------------------------- */
homePromoHighlight = function() {

	var jObCTAAnchor = $j('.show-text a'); /* Call to action Anchor */
	var jObCTAClose = $j("p.close"); /* Call to action Close */
	var jObCTContent = $j('.sub-content'); /* Call to action */

	jObCTContent.hide(); /* Hide content on initialise */
	jObCTAClose.hide(); /* Hide Close anchor on initialise */

	jObCTAAnchor.click(function() {
		jObCTAAnchor.hide();
		jObCTContent.fadeIn('slow');
		jObCTAClose.show();
		return false;
	});
	
	jObCTAClose.click(function() {
		jObCTAClose.hide();
		jObCTContent.fadeOut('slow');
		jObCTAAnchor.show();
		return false;
	});

};


/*	Home: Booking Form
----------------------------------------------- */
function homeBookingForm() {

	var jObBookingForm = $j('#book');
	var jObBookingFormFieldsMore = $j('.more-fields');
	var jObBookingFormFooter = $j('.footer');
	var jObBookingFormFieldsMoreCTA = $j('a.reveal');

	jObBookingFormFieldsMore.hide();

	jObBookingFormFieldsMoreCTA.toggle(function() {
		jObBookingForm.addClass('expand');
		jObBookingFormFieldsMore.slideDown('medium');
		jObBookingFormFooter.hide();
	}, function() {
		jObBookingForm.removeClass('expand');
		jObBookingFormFieldsMore.slideUp('fast');
		jObBookingFormFooter.slideDown('medium');
	});

//	jObBookingForm.validationAideEnable();

}


/*	Home: Newsletter Form
----------------------------------------------- */

/*function newsletterForm() {
	
	var jObnewsletterForm = $j('.newsletter_form');
	var jObnewsletterCTA = $j('.cta_newsletter a');
	var jObnewsletter_sideCTA = $j('.cta_newsletter_side a');
	var jObnewsletter_closeCTA = $j('.newsletter_form p.replace-close');
	var jObcompanionReveal = $j('.newsletter_form .companionReveal');
	var jOboptionalFields = $j('.newsletter_form .optionalFields');
	var jObradioSelectLeisure = $j('input.leisure');	
	var jObradioSelectBusiness = $j('input.business');	
	var jOboptionalCTA = $j('.newsletter_form p.optionalCTA a');	
	var quickHotelSelect = $j('.select-hotel-menu a');
	var quickHotelSelectList = $j('#hotel-selector');

	
	
	jObnewsletterForm.hide();
	jObcompanionReveal.hide();
	jOboptionalFields.hide();
	

	jObnewsletterCTA.toggle(function() {
		jObnewsletterForm.fadeIn('medium');
		jObnewsletterForm.removeClass('side');
	}, function() {
		jObnewsletterForm.fadeOut('fast');
	});
	
	jObnewsletter_sideCTA.toggle(function() {
		jObnewsletterForm.fadeIn('medium');
		jObnewsletterForm.addClass('side');
	}, function() {
		jObnewsletterForm.fadeOut('fast');
	});	
	
	jObnewsletter_closeCTA.click(function() {
		jObnewsletterForm.fadeOut('fast');
		return false;
	});
	
	jObradioSelectLeisure.focus(function() {
		jObcompanionReveal.slideDown('medium');
		return false;
	});
		jObradioSelectBusiness.focus(function() {
		jObcompanionReveal.slideUp('slow');
		return false;
	});
	
	jOboptionalCTA.toggle(function() {
		jOboptionalFields.slideDown('medium');
	}, function() {
		jOboptionalFields.slideUp('fast');
	});	
	
	quickHotelSelect.toggle(function() {
	quickHotelSelectList.slideDown('fast');
	}, function() {
	quickHotelSelectList.slideUp('fast');
	});	
	
	
    var newsletterLink = $j('.joinmailinglist_link');
    
    newsletterLink.toggle(function() {
		    jObnewsletterForm.fadeIn('medium');
		    jObnewsletterForm.removeClass('side');
	    }, function() {
		    jObnewsletterForm.fadeOut('fast');
	    });
	
	
	
}*/


/*	DOM Ready events
----------------------------------------------- */
$j(document).ready(function() {

	utilBrowserTests();
	utilFromLegends();
	homePromoHighlight();
	homeBookingForm();
	//newsletterForm();
	
	if (document.getElementById('linkedDates')){
	
	$j("#linkedDates").datepicker({
        minDate: new Date(2009, 1 - 1, 1),
        maxDate: new Date(2010, 12 - 1, 31),
        beforeShow: readLinked,
        onSelect: updateLinked,
        showOn: "both",
        buttonImage: "/templates/default/stat/btn/calendar.gif",
        buttonImageOnly: true }); 

        $j("#selectMonth, #selectYear").change(checkLinkedDays);
        
	}
        
        $j("a").live("click",function(){
        if( this.href.match(/qhotelsdirect\.co\.uk/) && !(this.onclick && this.onclick.toString().match(/_link/)) ) {
          if( $j(this).attr("target") ) {
            window.open(pageTracker._getLinkerUrl(this.href),$(this).attr("target"));
          } else {
            pageTracker._link( this.href );
          }
          return false;
        }
        });
			
});



PEPS = {};

PEPS.rollover =
{
   init: function()
   {
      this.preload();
     
      $j(".ro").hover(
         function () { $j(this).attr( 'src', PEPS.rollover.newimage($j(this).attr('src')) ); },
         function () { $j(this).attr( 'src', PEPS.rollover.oldimage($j(this).attr('src')) ); }
      );
   },

   preload: function()
   {
      $j(window).bind('load', function() {
         $j('.ro').each( function( key, elm ) { $j('<img>').attr( 'src', PEPS.rollover.newimage( $j(this).attr('src') ) ); });
      });
   },
   
   newimage: function( src )
   {
      return src.substring( 0, src.search(/(\.[a-z]+)$/) ) + '_o' + src.match(/(\.[a-z]+)$/)[0];
   },

   oldimage: function( src )
   {
      return src.replace(/_o\./, '.');
   }
};


function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}



/* IE HOVER MENU THINGY */
navHover = function() {

    if (document.getElementById("property-nav")){

	    var lis = document.getElementById("property-nav").getElementsByTagName("LI");
	    for (var i=0; i<lis.length; i++) {
		    lis[i].onmouseover=function() {
			    this.className+=" iehover";
		    }
		    lis[i].onmouseout=function() {
			    this.className=this.className.replace(new RegExp(" iehover\\b"), "");
		    }
	    }
	}
}
if (window.attachEvent) window.attachEvent("onload", navHover);
