try {
	if (document.getElementsByClassName == undefined)
	{
		document.getElementsByClassName = function(className)
		{
			var hasClassName = new RegExp("(?:^|\\s)" + className + "(?:$|\\s)");
			var allElements = document.getElementsByTagName("*");
			var results = [];

			var element;
			for (var i = 0; (element = allElements[i]) != null; i++) {
				var elementClass = element.className;
				if (elementClass && elementClass.indexOf(className) != -1 && hasClassName.test(elementClass))
					results.push(element);
			}

			return results;
		}
	}
	}catch(e) {
		// Ignore this exception
	}
	
//-----------------------------------------------------------------------------
function AddSpecialStyles ()
//-----------------------------------------------------------------------------
{	
	try {
		var isIE6 = navigator.userAgent.toLowerCase().indexOf('msie 6') != -1;
		var isIE7 = navigator.userAgent.toLowerCase().indexOf('msie 7') != -1;
		
		if(isIE6 || isIE7) {
			var oHead 	= document.getElementsByTagName('head')[0];
			var oStyle	= document.createElement ("style");
			
			oStyle.setAttribute('type', 'text/css');
			oStyle.styleSheet.cssText = ".footerheadlinetitle { "
										+ " float:none !important; "
										+ " margin-right:0px !important; "
										+ " position:absolute !important; "
										+ " right:400px !important;"
										+ "}"
										+ ".footerstayintouch{ "
										+ " top:-10px; !important;"
										+ " right:0px; !important;"
										+ "}";
								
			oHead.appendChild (oStyle);
		}
	}catch(e) {
		// Ignore this exception
	}
	
	try {
		var isIE8 = navigator.userAgent.toLowerCase().indexOf('msie 8') != -1;
		
		if(isIE8) {
			var oHead 	= document.getElementsByTagName('head')[0];
			var oStyle	= document.createElement ("style");
			
			oStyle.setAttribute('type', 'text/css');
			oStyle.styleSheet.cssText = "#headermenubackdrop{top: -40px !important;}" // 	KER-601
									  + "#ol-search-box-menu{top:-5px !important;}"	          // 	KER-601
									  + ".sia_220x215_homepage article-td{padding-right:9px}" 
									  + ".sia_220x215_homepage {width:225px;}"
									  + "#hiddenmiddletddiv{display: none !important;}"
									  + "#footerstayintouch {position:absolute;top:0;right:0px;}";					
			oHead.appendChild (oStyle);
		}
	}catch(e) {
		// Ignore this exception
	}
	
		try {
		var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') != -1;
		var isSafari  = navigator.userAgent.toLowerCase().indexOf('safari') != -1;
		var isMac 	  = navigator.appVersion.indexOf("Mac") != -1;
		
		if(isFirefox && isMac) {
			var oStyle  = document.createElement('style'); 
			var content = document.createTextNode("#ol-search-box-menu {top:3px !important;}"); 
			var head    = document.getElementsByTagName('head').item(0); 

			oStyle.appendChild(content); 
			oStyle.type = 'text/css'; 
			oStyle.defer = false; 
			head.appendChild(oStyle); 
		}
		
		if(isSafari && isMac) {
			var sClass  = "#ctl00_footerexpandedfeaturesitemenuwrap {margin:0px !important;}"
						+"#PSTTable{margin-left:-39px !important;margin-right:39 !important}"/*KER-270*/
						+"#ol-search-box-nav td span {top:3px !important;left:0px !important;}";
			/*"#ol-search-box-menu {top:-14px !important;}"*/
			
			var oStyle  = document.createElement('style'); 
			var content = document.createTextNode(sClass); 
			var head    = document.getElementsByTagName('head').item(0); 

			oStyle.appendChild(content); 
			oStyle.type = 'text/css'; 
			oStyle.defer = false; 
			head.appendChild(oStyle); 
		}
		if(isSafari && !isMac) {/*KER-256*/
			var oStyle  = document.createElement('style'); 
			var content = document.createTextNode("#ctl00_footerexpandedfeaturesitemenuwrap {margin:0px !important;}"); 
			var head    = document.getElementsByTagName('head').item(0); 

			oStyle.appendChild(content); 
			oStyle.type = 'text/css'; 
			oStyle.defer = false; 
			head.appendChild(oStyle); 
		}
		
	}catch(e) {
		// Ignore this exception
	}


} // AddSpecialStyles

//-----------------------------------------------------------------------------
function OneLinkPageLoad()
//-----------------------------------------------------------------------------
{
	try {
		if(document.body) {
			AddSpecialStyles();
		}
		else {
			setTimeout("OneLinkPageLoad();",500);
		}
	}catch(e) {
		// Ignore this exception
	}
} // OneLinkPageLoad

OneLinkPageLoad();



//-----------------------------------------------------------------------------
function OneLinkJCarouselNavAligment()
//-----------------------------------------------------------------------------
{
	try {
		if($('#sidebaroverlaywrap').attr('offsetTop') < 300){ // if header contains side panel 
			$('#heroHeaderRotator div.jcarousel-prev').addClass('jcarousel-prev_new');		  // we need to replace JCarousel Nav Buttons	
			$('#heroHeaderRotator div.jcarousel-next').addClass('jcarousel-next_new');
		}else{
			$('#heroHeaderRotator div.jcarousel-next').addClass('jcarousel-next_old');
		}
	}catch(e) {
		// Ignore this exception
	}
}


OneLinkJCarouselNavAligment();

//-----------------------------------------------------------------------------
function OneLinkFlipJCarouselImgOrder()
//-----------------------------------------------------------------------------
{
	try {
		
		$('div[id*="divPresenter_1338_default_main1_764_"]').each(
 			// Change image indexe to flip the order
			function(){
				var iImgCount = $('#' + this.id + ' > div').size() -1;
				$('#' + this.id+ ' > div').each(
					function( iIndex ){
						var sCurrId = this.id;
						var sFirstPartOfId = sCurrId.substring(0, sCurrId.length -1 );
						var sNewId = sFirstPartOfId + (  iImgCount  - iIndex );
						this.id = sNewId;
					}
				)		
			}
		);
	}catch(e) {
		// Ignore this exception
	}
}


OneLinkFlipJCarouselImgOrder();

//-----------------------------------------------------------------------------
function OneLinkSelectMenuItem()
//-----------------------------------------------------------------------------
{	
	try {
		var oTable = $('#ol-header-menu-table');
		var iCell  = -1;
		if(document.location.href.indexOf("/marineandwaterpark/") >=0) {
			iCell = 7;
		}
		if(document.location.href.indexOf("/spa") >=0) {
			iCell = 8;
		}
		if(document.location.href.indexOf("/meetingsandevents")>=0){
			iCell = 11;
		}
		if(document.location.href.indexOf("/dining/")>=0){ /*KER-351*/
			iCell = 6;
		}
		if(document.location.href.indexOf("/booknow")>=0){ /*KER-553*/
			iCell = 1;
		}
		if(document.location.href.indexOf("/promotions.aspx")>=0 || document.location.href.indexOf("/promotions/")>=0){ /*KER-878*/
			iCell = 3;
		}
		if(oTable && iCell > 0) {
			if(!document.all) { // browser is FF
				oTable[0].rows[0].cells[iCell].childNodes[1].style.color = "#00C4FF";
			}
			else {
				oTable[0].rows[0].cells[iCell].childNodes[0].style.color = "#00C4FF";
			}
		
		}
		
		/*Select Headres*/
		if(document.location.href.indexOf("/events.aspx") >=0) {
			document.getElementById('ol-search-box-menu-events-img').src 		 = '/_basethemes/atp_default/images/searchboxnav/searchboxnav_events_over.gif';
			document.getElementById('ol-search-box-menu-events-span').className  = 'searchboxnavigationitemselected';
		}
		else if(document.location.href.indexOf("/weather.aspx") >=0) {
			document.getElementById('ol-search-box-menu-weather-img').src 		 += '/_basethemes/atp_default/images/searchboxnav/searchboxnav_weather_over.gif';
			document.getElementById('ol-search-box-menu-weather-span').className = 'searchboxnavigationitemselected';
		}
	}catch(e) {
		// Ignore this exception
	}
}

OneLinkSelectMenuItem();

//-----------------------------------------------------------------------------
function AlignFooterwrap() // Andrey S. : bug (KER-915). If somebody knows how to fix it with css directly feel free to apply your solution.
//-----------------------------------------------------------------------------
{
	var eMainTable = $('.master_pagebody_maincontent > table')[0];
	var eContentarea = $('.contentarea')[0];
	var isIE7 = navigator.userAgent.toLowerCase().indexOf('msie 7') != -1;
	
	if(eMainTable && eContentarea && isIE7){
		$('.contentarea').css('margin-bottom', $('.master_pagebody_maincontent > table').css('top'));
	}
} // AlignFooterwrap

AlignFooterwrap();
/*

//-----------------------------------------------------------------------------
function _parseArabicDigit(sHindiDigit)
//-----------------------------------------------------------------------------
{
	var oHindi  = [ "&#1632;", "&#1633;", "&#1634;", "&#1635;", "&#1636;", "&#1637;", "&#1638;", "&#1639;", "&#1640;", "&#1641;" ];
			 
	var sArabicDigit = "";			 
	for(var jj = 0; jj < sHindiDigit.length; jj++){
		var isFound = false;
		for(var ii = 0 ; ii < oHindi.length; ii++){
			if(oHindi[ii] == '&#' + sHindiDigit.charCodeAt(jj) + ';'){
				sArabicDigit += ii;
				isFound = true;
			}	
		}
		if(!isFound){
			sArabicDigit += sHindiDigit.charAt(jj);
		}	
	}				 
	return sArabicDigit;
} //_parseHindyDigit 

//-----------------------------------------------------------------------------
function _parseHindyDigit(sArabicDigit)
//-----------------------------------------------------------------------------
{
	var oArabic = [ "&#48;", "&#49;", "&#50;", "&#51;", "&#52;", "&#53;", "&#54;", "&#55;", "&#56;", "&#57;" ];
	var oHindi  = [ "&#1632;", "&#1633;", "&#1634;", "&#1635;", "&#1636;", "&#1637;", "&#1638;", "&#1639;", "&#1640;", "&#1641;" ];
	
	if(typeof(sArabicDigit) != "string") sArabicDigit = ''+sArabicDigit;
	
	var sHindiDigit = "";			 
	for(var jj = 0; jj < sArabicDigit.length; jj++){
		var isFound = false;
		for(var ii = 0 ; ii < oArabic.length; ii++){
			if(oArabic[ii] == '&#' + sArabicDigit.charCodeAt(jj) + ';'){
				sHindiDigit += oHindi[ii];
				isFound = true;
			}	
		}
		if(!isFound){
			sHindiDigit += sArabicDigit.charAt(jj);
		}	
	}		 
	return sHindiDigit;
} //_parseHindyDigit 

//-----------------------------------------------------------------------------
function _parseHindiDate(sArabicDate)
//-----------------------------------------------------------------------------
{
	return _charCodeToStr(_parseHindyDigit(sArabicDate));
} // _parseHindiDate

//-----------------------------------------------------------------------------
function _charCodeToStr(sCharCodeStr)
//-----------------------------------------------------------------------------
{
	var sFormatedCharCodeStr = sCharCodeStr
								.replace(/\//g,'&#47;')
									.replace(/-/g,'&#45;')
										.replace(/&#/g,'')
											.replace(/;/g,',');
										
	sFormatedCharCodeStr = sFormatedCharCodeStr.substring(0,sFormatedCharCodeStr.length-1);	

	var sFormatedCharCodeStrArr = sFormatedCharCodeStr.split(',');
	var sNewDate = "";
	
	for(var ii = 0; ii < sFormatedCharCodeStrArr.length; ii ++ ){
		if(sFormatedCharCodeStrArr[ii]){
			sNewDate += String.fromCharCode(sFormatedCharCodeStrArr[ii]);
		}	
	}	
	return sNewDate;
}//_parseHindyDigit

//-----------------------------------------------------------------------------
function getJSDate(dateValue,defaultValue,defaultDateFormat)
//-----------------------------------------------------------------------------
{	/*
	* Andrey S: Override function getJSDate 
	* from the client js file rokkan1v1_scriptsmain_400.js
	*//*
	// new code:
	if(dateValue && typeof(dateValue) == 'string'){
		dateValue = _parseArabicDigit(dateValue);
	}
	// old (original) code :
	var regExValue;
	var regExMonth,regExDay,regExYear;	
	if(!isNaN(dateValue)&&dateValue.getMonth!=undefined)return dateValue;
	if(defaultValue==undefined)defaultValue=new Date("invalid date");
	if(defaultDateFormat==undefined||defaultDateFormat==null)defaultDateFormat=DEFAULT_DATEFORMAT;
	if(defaultDateFormat==undefined||defaultDateFormat==null)defaultDateFormat="mm/dd/yyyy";
	if(dateValue==null||dateValue==undefined)return defaultValue;
	if(defaultDateFormat.toLowerCase()=="dd/mm/yyyy"){
		regExValue=dateValue.toString().match(/(\d?\d)[- /.](\d?\d)[-/.](\d\d\d\d)/);
	}else if(defaultDateFormat.toLowerCase()=="yyyy/dd/mm"){
		regExValue=dateValue.toString().match(/(\d\d\d\d)[- /.](\d?\d)[-/.](\d?\d)/);
	}else if(defaultDateFormat.toLowerCase()=="yyyy/mm/dd"){
		regExValue=dateValue.toString().match(/(\d\d\d\d)[- /.](\d?\d)[-/.](\d?\d)/);
	}else if(defaultDateFormat.toLowerCase()!="mm/dd/yyyy"){
		alert("unsupported date format, please update siteDateFormat function");
		return defaultValue;
	}else{
		regExValue=dateValue.toString().match(/(\d?\d)[- /.](\d?\d)[-/.](\d\d\d\d)/);
	}
	if(regExValue==null){return defaultValue;}
	if(defaultDateFormat.toLowerCase()=="dd/mm/yyyy"){
		regExMonth=new Number(regExValue[2]);
		regExDay=new Number(regExValue[1]);
		regExYear=new Number(regExValue[3]);
	}else if(defaultDateFormat.toLowerCase()=="yyyy/dd/mm"){
		regExMonth=new Number(regExValue[3]);
		regExDay=new Number(regExValue[2]);
		regExYear=new Number(regExValue[1]);
	}else if(defaultDateFormat.toLowerCase()=="yyyy/mm/dd"){
		regExMonth=new Number(regExValue[2]);
		regExDay=new Number(regExValue[3]);
		regExYear=new Number(regExValue[1]);
	}else{
		regExMonth=new Number(regExValue[1]);
		regExDay=new Number(regExValue[2]);
		regExYear=new Number(regExValue[3]);
	}return new Date(regExYear,regExMonth-1,regExDay);
} // _getJSDate

//-----------------------------------------------------------------------------
function BookNowShowCalendarCheckInChange(dateText)
//-----------------------------------------------------------------------------
{
	/*
	* Andrey S: Override function BookNowShowCalendarCheckInChange 
	* from the client js file rokkan1v1_scriptsmain_400.js
	*//*
	var checkInDate=getJSDate($("#txtBookNowCheckIn").text());
	var checkOutDate=getJSDate($("#txtBookNowCheckOut").text());
	var newCheckInDate=getJSDate(dateText);
	var daysBooked=(checkOutDate.getTime()-checkInDate.getTime());
	if(!isNaN(daysBooked)){
		daysBooked=daysBooked/24/60/60/1000;
		if(daysBooked < bookNowMinimumNoOfNights) daysBooked=bookNowMinimumNoOfNights;
		checkOutDate.setFullYear(newCheckInDate.getFullYear(), newCheckInDate.getMonth(), newCheckInDate.getDate()+daysBooked);
		$("#txtBookNowCheckOut").text(_parseHindiDate(dateFormat(checkOutDate, "تاريخ تسجيل الخروج")));
	}
	$("#txtBookNowCheckIn").text(dateText);
} // BookNowShowCalendarCheckInChange

//-----------------------------------------------------------------------------
function RefineSearchShowCalendarCheckInChange(dateText)
//-----------------------------------------------------------------------------
{
	/*
	* Andrey S: Override function RefineSearchShowCalendarCheckInChange 
	* from the client js file rokkan1v1_scriptsmain_400.js
	*//*
	var checkInDate=getJSDate($("#txtRefineSearchCheckIn").text());
	var checkOutDate=getJSDate($("#txtRefineSearchCheckOut").text());
	var newCheckInDate=getJSDate(dateText,getTimezoneDate());
	var daysBooked=(checkOutDate.getTime()-checkInDate.getTime());
	if(!isNaN(daysBooked)){
		daysBooked=daysBooked/24/60/60/1000;
		if(daysBooked<refineSearchMinimumNoOfNights)daysBooked=refineSearchMinimumNoOfNights;
		checkOutDate.setFullYear(newCheckInDate.getFullYear(),
		newCheckInDate.getMonth(),newCheckInDate.getDate()+daysBooked);
		$("#txtRefineSearchCheckOut").text(_parseHindiDate(dateFormat(checkOutDate,"تاريخ تسجيل الخروج")));
	}
	$("#txtRefineSearchCheckIn").text(dateText);
} // RefineSearchShowCalendarCheckInChange

//-----------------------------------------------------------------------------
function populateInnerHTMLByID(name,value)
//-----------------------------------------------------------------------------
{
	var jQueryName=(name[0]=="#"?name:"#"+name);
	var elementID=(name[0]=="#"?name.subString(1):name);
	var selectElement=document.getElementById(elementID);
	if(value.indexOf("/") >0){
		value = _parseHindiDate(value);
	}
	if(selectElement!=undefined){
		if(document.all)selectElement.innerText=value;
		else selectElement.textContent=value;
	}else {
		$(jQueryName).text(value);
	}	
} // populateInnerHTMLByID*/

