$(document).ready(function(){ initTooltip(); clearInputs(); //initMenu(); initBtnHover(); initSeachPopup(); ieHover('.options li, .column .title h3, .tools li'); $("#hd li.fairmont a").attr("target","_blank"); $('select').not('.non_custom select').customSelect(); $('input').customCheckbox(); initPhotoPopup(); }); function initGallery( divId, ulClassName ){ /*--- gallery like 1 ---*/ $('#' + divId).each(function(){ var gall_hold = $(this); var list_h = gall_hold.find('.' + ulClassName ); var _step = list_h.parent().outerWidth(); var list_w = list_h.children().length*list_h.children().outerWidth(); var _m = list_h.children().index(list_h.children('.active'))*_step; list_h.children().removeClass('active'); if(_m < 0) _m = 0; list_h.css('margin-left', -_m); gall_hold.find('.btn_prev').click(function(){ changeEl(false); return false; }); gall_hold.find('.btn_next').click(function(){ changeEl(true); return false; }); function changeEl(_flag){ if(_flag){ if(_m + _step <= list_w - _step) _m += _step; else _m = 0; } else{ if(_m - _step >= 0) _m -= _step; else _m = list_w - _step; } list_h.animate({marginLeft: -_m}, {queue:false, duration:400}); } }); } /*--- Upload function ---*/ function initUpload(){ $('.share_area .upload_photos').each(function(){ var _el = $(this).find('ul li:last'); $(this).find('.more a').click(function(){ _el.parent().height(_el.parent().height()); for(var i = 0; i < 5; i++) _el.after(_el.clone(true)); _el.parent().animate({height: '+='+_el.outerHeight()*5}, 300, function(){ $(this).height('auto'); clearInputs(); }); return false; }); }); $('.share_area .tags').each(function(){ var _box = $(this).find('.own_tags textarea'); var box_text = _box.attr('value'); $(this).find('.tags_list .btn_plus').click(function(){ var _text = $(this).parent().children('strong').html(); if(_box.attr('value') == box_text) _box.attr('value',''); if(_box.attr('value') == '') _box.attr('value', _text); else _box.attr('value', _box.attr('value') + ', ' + _text); return false; }); }); } /*--- photo popup function ---*/ function initPhotoPopup(){ var _popup = $('#photo_popup'); if(_popup.length){ $(document.body).click(function(){ if(_f) _popup.fadeOut(200); _f = false; }); _popup.find('.btn_close').click(function(){ _popup.fadeOut(200); _f = false; return false; }); _popup.mouseenter(function(){ _f = false; }).mouseleave(function(){ _f = true; }); var _f = false; $('.photos .all_photos li > a').live('click', function () { _f = false; var _btn = $(this); var desc = _btn.parent().find('.description').clone(true); desc.css({'height':'auto', 'margin-top':'0','overflow':'visible'}); _popup.find('.popup_text').html(''+_btn.attr('rel')+'').append( desc ); _popup.css('top', $(window).scrollTop() - 200).fadeIn(200); return false; }); } } /*--- photo gallery function ---*/ function initPhotoGall(){ $('.photo_gallery').each(function(){ var _btn = $(this).find('.preview ul a'); var _a = _btn.index(_btn.filter('.active:eq(0)')); if(_a == -1) _a = 0; _btn.removeClass('active').eq(_a).addClass('active'); var _btn_type = _btn.eq(_a).attr('type'); if ( _btn_type == "photo" ) { if($(this).find('.big_photo img').length == 0) $(this).find('.big_photo').append(''); var b_img = $(this).find('.big_photo img'); var thick_img = $(this).find('.big_photo .thickbox'); thick_img.attr('href', _btn.eq(_a).attr('href').replace(/[?].*/,'')).attr('alt', _btn.eq(_a).attr('rel')); var img_info = $(this).find('.options p'); b_img.attr('src', _btn.eq(_a).attr('href')).attr('alt', _btn.eq(_a).attr('rel')); img_info.html(_btn.eq(_a).attr('rel')); } else if ( _btn_type == 'video'){ $(this).find('.big_photo').css("display","none"); $(this).find('.video').css("display","block"); $(this).find('.youtube').css("display","none"); var img_info = $(this).find('.options p'); img_info.html(_btn.eq(_a).attr('rel')); } else if ( _btn_type == 'youtube' ){ $(this).find('.big_photo').css("display","none"); $(this).find('.video').css("display","none"); $(this).find('.youtube').css("display","block"); var img_info = $(this).find('.options p'); img_info.html('Youtube video'); } var _f1 = true; _btn.click(function(){ if(_f1 && (_btn.index(this) != _a)){ _f1 = false; var type = $(this).attr('type'); if ( type == "photo") { $('.photo_gallery').find('.big_photo').css("display","block"); $('.photo_gallery').find('.video').css("display","none"); $('.photo_gallery').find('.youtube').css("display","none"); var t_img = $(''+$(this).attr('rel')+'').hide(); var thick_img = $('.photo_gallery .big_photo .thickbox'); thick_img.attr('href', $(this).attr('href').replace(/[?].*/,'')).attr('alt', _btn.eq(_a).attr('rel')); b_img.parent().append(t_img); b_img.fadeOut(300,function(){ $(this).remove(); t_img.css({opacity: 0, display:'block'}).animate({opacity: 1}, 200, function(){ b_img = t_img; _f1 = true; }); }); img_info.fadeOut(200, function(){ $(this).html(t_img.attr('alt')).fadeIn(200); }); } else if ( type == "video" ) { $('.photo_gallery').find('.video').css("display","block"); $('.photo_gallery').find('.youtube').css("display","none"); $('.photo_gallery').find('.big_photo').css("display","none"); var caption = $(this).attr('rel'); img_info.fadeOut(200, function(){ $(this).html( caption ).fadeIn(200); _f1 = true; }); } else if ( type == "youtube" ) { $('.photo_gallery').find('.youtube').css("display","block"); $('.photo_gallery').find('.video').css("display","none"); $('.photo_gallery').find('.big_photo').css("display","none"); var caption = $(this).attr('rel'); img_info.fadeOut(200, function(){ $(this).html( caption ).fadeIn(200); _f1 = true; }); } _btn.eq(_a).removeClass('active'); $(this).addClass('active'); _a = _btn.index(this); } return false; }); var btn_h = $(this).find('.preview .mask ul'); var btn_h_parent_h = btn_h.parent().outerHeight(); var _f2 = true; $(this).find('.preview > p > a').click(function(){ if(this.innerHTML.indexOf('View') != -1){ btn_h.parent().animate({ height: btn_h.outerHeight()}, {queue:false, duration:300}); this.innerHTML = 'Collapse'; } else{ btn_h.parent().animate({ height: 150}, {queue:false, duration:300}); this.innerHTML = 'View All'; } return false; }); }); } /*---- IE6 hover function ---*/ function ieHover(h_list) { if ($.browser.msie && $.browser.version < 7) { $(h_list).hover(function() { $(this).addClass('hover'); }, function() { $(this).removeClass('hover'); }); } } /*--- tabs function ---*/ function initTabs(h_list) { $('.tab_area').each(function() { var _btn = $(this).find('.tabset a'); var box_h = $(this).children('.tab_holder'); var _a = _btn.index(_btn.filter('.active').eq(0)); if(_a == -1) _a = 0; _btn.each(function(_ind, _el) { this._box = box_h.children('.'+_el.href.substr(_el.href.indexOf("#") + 1)); if(_ind == _a) this._box.show(); else this._box.hide(); if(box_h.parent().hasClass('must_hover')){ _el.onmouseover = function(){ if(_ind != _a){ _btn.get(_a)._box.hide(); _btn.eq(_a).removeClass('active'); this._box.show(); $(this).addClass('active'); _a = _ind; $('select').customSelect(); } } } else{ _el.onclick = function() { if(_ind != _a){ _btn.get(_a)._box.hide(); _btn.eq(_a).removeClass('active'); this._box.show(); $(this).addClass('active'); _a = _ind; $('select').customSelect(); } return false; } } }); }); } function initTabsHover(h_list) { $('.tab_hover').each(function() { var _btn = $(this).find('.tabset a'); var box_h = $(this).children('.tab_holder'); var _a = _btn.index(_btn.filter('.active').eq(0)); if(_a == -1) _a = 0; _btn.each(function(_ind, _el) { this._box = box_h.children('.'+_el.href.substr(_el.href.indexOf("#") + 1)); if(_ind == _a) this._box.show(); else this._box.hide(); if(box_h.parent().hasClass('must_hover')){ _el.onmouseover = function(){ if(_ind != _a){ _btn.get(_a)._box.hide(); _btn.eq(_a).removeClass('active'); this._box.show(); $(this).addClass('active'); _a = _ind; $('select').customSelect(); } } } else{ _el.onmouseover = function() { if(_ind != _a){ _btn.get(_a)._box.hide(); _btn.eq(_a).removeClass('active'); this._box.show(); $(this).addClass('active'); _a = _ind; $('select').customSelect(); } return false; } } }); }); } /*---- clear inputs function ---*/ function clearInputs(){ $('input:text, input:password, textarea').each(function(){ if(!this.val) this.val = this.value; this.onfocus = function(){ if(this.value == 'Enter a title . . .' || this.value == 'Enter a description . . .' || this.value == 'write a caption for your video here' || this.value.replace(/[^a-zA-Z 0-9]+/g,'') == 'Insert YouTube link here' || this.value == 'tags are a one-word description that help us organize your stories. enter your tags here' || this.value == 'write a caption for your photo here' || this.value == 'looking for something?' ) this.value = ''; } this.onblur = function(){ if(this.value == '') this.value = this.val; } }); } /*--- menu accordion function ---*/ function initMenu(){ $('.side_nav > ul').each(function(){ var _list = $(this).children('li:has(".slide")'); var _a = _list.index(_list.filter('.active:eq(0)')); _list.each(function(_i){ this._btn = $(this).children('a').eq(0); this._box = $(this).children('.slide').eq(0); if(_i == _a) this._box.show(); else this._box.hide(); this._btn.click(function(){ if(_a != -1){ _list.get(_a)._box.stop().animate({height: 0}, 300, function(){ $(this).css({display: 'none', height: 'auto'}); $(this).parent().removeClass('active'); }); } if(_a != _i){ _list.eq(_i).addClass('active'); if(!_list.get(_i)._box.is(':animated')){ _list.get(_i)._h = _list.get(_i)._box.height(); _list.get(_i)._box.css({height: 0, display:'block'}); } _list.get(_i)._box.stop().animate({ height: _list.get(_i)._h}, 300, function(){ $(this).height('auto'); }); _a = _i; } else{ _a = -1; } return false; }); }); $(this).children().not(_list).children('a').click(function(){ if(_a != -1){ _list.get(_a)._box.stop().animate({height: 0}, 300, function(){ $(this).css({display: 'none', height: 'auto'}); $(this).parent().removeClass('active'); }); _a = -1; } }); }); } /*--- button hover function ---*/ function initBtnHover(){ $('.over_btn').hover( function(){ this.src = this.src.replace( /\.gif$/, '-h.gif' ); this.src = this.src.replace( /\.jpg$/, '-h.jpg' ); }, function(){ this.src = this.src.replace( /-h\.gif$/, '.gif' ); this.src = this.src.replace( /-h\.jpg$/, '.jpg' ); } ); } /*--- search popup function ---*/ function initSeachPopup(){ var _popup = $('.search_panel .popup'); var btn_o = $('.search_panel .advanced_search'); var btn_c = _popup.find('a.close'); if(_popup.length){ var _f = true; btn_o.click(function(){ if(_f){ _f = false; var _h = _popup.height(); $(this).animate({opacity: 0}, 200, function(){ _popup.css({height: 0, visibility: 'visible'}).animate({height: _h}, 400, function(){ _f = true; }); }); } return false; }); btn_c.click(function(){ if(_f){ _f = false; _popup.animate({height: 0}, 200, function(){ _popup.css({height: 'auto', visibility: 'hidden'}); btn_o.animate({opacity: 1}, 400, function(){ _f = true; }); }); } return false; }); } } /*--- tooltip function ---*/ function initTooltip(){ var _tooltip = $('

'); $('body').append(_tooltip); ToolTipSetup(_tooltip, 'span.ico_fpc'); ToolTipSetup(_tooltip, 'span.ico_hotel'); ToolTipSetup(_tooltip, 'span.ico_employee'); } function ToolTipSetup(_tooltip, _hold){ $(_hold).mouseenter(function(e){ _tooltip.children('p').html($(this).children('span').html()); _tooltip.css({ top: e.pageY - _tooltip.height(), left: e.pageX - _tooltip.width()/2 }).fadeIn(80); }).mousemove(function(e){ _tooltip.css({ top: e.pageY - _tooltip.height(), left: e.pageX - _tooltip.width()/2 }); }).mouseleave(function(){ _tooltip.fadeOut(80, function(){ $(this).hide(); }); }); } /*--- custom select function ---*/ jQuery.fn.customSelect = function(_options){ var _options = jQuery.extend({ selectStructure: '
 
', selectText: '.center', selectBtn: '.selectButton', selectDisabled: '.disabled', optStructure: '
', optList: 'ul' }, _options); return this.each(function(){ var select = jQuery(this); if(!select.hasClass('outtaHere')){ if(select.is(':visible')){ var replaced = jQuery(_options.selectStructure); var selectText = replaced.find(_options.selectText); var selectBtn = replaced.find(_options.selectBtn); var selectDisabled = replaced.find(_options.selectDisabled).hide(); var optHolder = jQuery(_options.optStructure); var optList = optHolder.find(_options.optList); if(select.attr('disabled')) selectDisabled.show(); select.find('option').each(function(){ var selOpt = $(this); var _opt = jQuery('
  • ' + selOpt.html() + '
  • '); if(selOpt.attr('selected')){ selectText.html(selOpt.html()); _opt.addClass('selected'); } _opt.children('a').click(function(){ optList.find('li').removeClass('selected'); select.find('option').removeAttr('selected'); $(this).parent().addClass('selected'); selOpt.attr('selected', 'selected'); selectText.html(selOpt.html()); select.change(); optHolder.hide(); return false; }); optList.append(_opt); }); replaced.width(select.outerWidth()); replaced.insertBefore(select); optHolder.css({ width: select.outerWidth(), display: 'none', position: 'absolute' }); if ( select.find('option').size() > 16 ) { optHolder.css({ height: '210px', overflow: 'auto' }); } jQuery(document.body).append(optHolder); var optTimer; replaced.hover(function(){ if(optTimer) clearTimeout(optTimer); }, function(){ optTimer = setTimeout(function(){ optHolder.hide(); }, 200); }); optHolder.hover(function(){ if(optTimer) clearTimeout(optTimer); }, function(){ optTimer = setTimeout(function(){ optHolder.hide(); }, 200); }); selectBtn.click(function(){ if(optHolder.is(':visible')){ optHolder.hide(); } else{ optHolder.css({ top: replaced.offset().top + replaced.outerHeight(), left: replaced.offset().left, display: 'block' }); } return false; }); select.addClass('outtaHere'); } } }); } /*--- custom radio function ---*/ jQuery.fn.customRadio = function(_options){ var _options = jQuery.extend({ radioStructure: '
    ', radioDisabled: 'disabled', radioDefault: 'radioArea', radioChecked: 'radioAreaChecked' }, _options); return this.each(function(){ var radio = jQuery(this); if(!radio.hasClass('outtaHere') && radio.is(':radio')){ var replaced = jQuery(_options.radioStructure); this._replaced = replaced; if(radio.is(':disabled')) replaced.addClass(_options.radioDisabled); else if(radio.is(':checked')) replaced.addClass(_options.radioChecked); else replaced.addClass(_options.radioDefault); replaced.click(function(){ if($(this).hasClass(_options.radioDefault)){ radio.attr('checked', 'checked'); radio.change(); changeRadio(radio.get(0)); } }); radio.click(function(){ changeRadio(this); }); replaced.insertBefore(radio); radio.addClass('outtaHere'); } }); function changeRadio(_this){ $('input:radio[name='+$(_this).attr("name")+']').not(_this).each(function(){ if(this._replaced && !$(this).is(':disabled')) this._replaced.removeClass().addClass(_options.radioDefault); }); _this._replaced.removeClass().addClass(_options.radioChecked); } } /*--- custom checkbox function ---*/ jQuery.fn.customCheckbox = function(_options){ var _options = jQuery.extend({ checkboxStructure: '
    ', checkboxDisabled: 'disabled', checkboxDefault: 'checkboxArea', checkboxChecked: 'checkboxAreaChecked' }, _options); return this.each(function(){ var checkbox = jQuery(this); if(!checkbox.hasClass('outtaHere') && checkbox.is(':checkbox')){ var replaced = jQuery(_options.checkboxStructure); this._replaced = replaced; if(checkbox.is(':disabled')) replaced.addClass(_options.checkboxDisabled); else if(checkbox.is(':checked')) replaced.addClass(_options.checkboxChecked); else replaced.addClass(_options.checkboxDefault); replaced.click(function(){ if(checkbox.is(':checked')) checkbox.removeAttr('checked'); else checkbox.attr('checked', 'checked'); checkbox.change(); changeCheckbox(checkbox); }); checkbox.click(function(){ changeCheckbox(checkbox); }); replaced.insertBefore(checkbox); checkbox.addClass('outtaHere'); } }); function changeCheckbox(_this){ if(_this.is(':checked')) _this.get(0)._replaced.removeClass().addClass(_options.checkboxChecked); else _this.get(0)._replaced.removeClass().addClass(_options.checkboxDefault); } } /*--- green button ---*/ function initButton(){ var _holder = $('.home_promo .btn_holder'); _holder.css({ marginTop: 0.5*(_holder.parent().height() - 58)}); } /*home gallery*/ jQuery.fn.fadeGall = function(_options){ var _options = jQuery.extend({ gall_holder: '.list', gall_nav: false, btn_prev: false, btn_next:false, btn_play_stop: false, play_class: 'play', active_class: 'active', change_speed: 3000, change_time: 8000 }, _options); return this.each(function() { var gall_box = jQuery(this); var gall_holder = gall_box.find(_options.gall_holder); var gall_list = gall_holder.children(); var gall_nav = false; if(_options.gall_nav) { gall_nav = gall_box.find(_options.gall_nav);} var active_class = _options.active_class; var _active = gall_list.index(gall_list.filter('.' + active_class)); if(_active == -1) { _active = 0;} var change_speed = _options.change_speed; var change_time = _options.change_time; var _timer; // set default css styles gall_holder.css({ position: 'relative', overflow: 'hidden' }); gall_list.removeClass(active_class).css({ position: 'absolute', top: 0, left: 0, zIndex: 1, opacity: 0 }); gall_list.eq(_active).addClass(active_class).css({ position: 'relative', zIndex: 2, opacity: 1 }); if(change_time) { _timer = setTimeout(function(){ _nextEl();}, change_time);} if(gall_nav) { gall_nav.removeClass(active_class).eq(_active).addClass(active_class); //gall_nav onclick gall_nav.each(function(_ind){ this.onclick = function(){ _changeEl(_ind); return false; } }); } //function nextEl function _nextEl(){ var _ind = _active; if(_ind < gall_list.length -1 ){ _ind++;} else{ _ind = 0;} _changeEl(_ind); } //function changeEl function _changeEl(_ind) { if(_ind != _active) { if (_timer) { clearTimeout(_timer);} gall_holder.stop().animate({height: gall_list.eq(_ind).outerHeight()}, change_speed/2); gall_list.eq(_active).css({zIndex: 1, position: 'absolute'}).removeClass(active_class).stop().animate({opacity: 0}, change_speed); gall_list.eq(_ind).css({zIndex: 2, position: 'relative'}).addClass(active_class).stop().animate({opacity: 1}, change_speed, function(){ gall_holder.height('auto'); }); if(gall_nav) { gall_nav.eq(_active).removeClass(active_class) gall_nav.eq(_ind).addClass(active_class); } _active = _ind; if(change_time) { _timer = setTimeout(function(){ _nextEl();}, change_time);} } } }); }; $.clientCoords = function() { var dimensions = {width: 0, height: 0}; if (document.documentElement) { dimensions.width = document.documentElement.clientWidth; dimensions.height = document.documentElement.clientHeight; } else if (window.innerWidth && window.innerHeight) { dimensions.width = window.innerWidth; dimensions.height = window.innerHeight; } return dimensions; } /** * DodosTextCounter - jQuery plugin for text limit for input or textarea. The counter shows how many chars are remaining. * It will also disable the user from entering more characters after s/he reaches the maximum * Written by Ying Zhang aka Dodo * http://pure-essence.net/2008/05/30/dodos-text-counterdodos-text-counter/ */ jQuery.fn.dodosTextCounter = function(max, options) { // if the counter display doesn't exist, the script will attempt to create it options = $.extend({ counterDisplayElement: "span", // tag for the counter display counterDisplayClass: "dodosTextCounterDisplay", // class for the counter display addLineBreak: true // whether to add
    after the input element before the counter display }, options); $(this).each(function(i) { updateCounter(this, max, options, i); $(this).keyup(function() { updateCounter(this, max, options, i); return this; }); }); return this; }; function updateCounter(input, max, options, index) { var currentLength = 0; var val = $(input).val(); if(val) { currentLength = val.length; } if(currentLength > max) { $(input).val(val.substring(0, max)); } else { var charLeft = max - currentLength; var counterDisplay = options.counterDisplayElement + "." + options.counterDisplayClass + ":eq("+index+")"; var createNew = $(counterDisplay).length == 0; if(createNew) { var element = document.createElement(options.counterDisplayElement); if(options.counterDisplayElement == 'input') { $(element).val(charLeft.toString()); } else { $(element).html(charLeft.toString()); } $(element).addClass(options.counterDisplayClass).insertAfter($(input)); if(options.addLineBreak) { $(input).after("
    "); } } else { if(options.counterDisplayElement == 'input') { $(counterDisplay).val(charLeft.toString()); } else { $(counterDisplay).html(charLeft.toString()); } } } }