// lightbox_me plugin
(function($){$.fn.lightbox_me=function(options){return this.each(function(){var
opts=$.extend({},$.fn.lightbox_me.defaults,options),$overlay=$('div.'+opts.classPrefix+'_overlay'),$self=$(this),$iframe=$('iframe#lb_iframe'),ie6=($.browser.msie&&$.browser.version<7);if($overlay.length>0){$overlay[0].removeModal();}else{$overlay=$('<div class="'+opts.classPrefix+'_overlay" style="display:none;"/>');}
$iframe=($iframe.length>0)?$iframe:$iframe=$('<iframe id="lb_iframe" style="z-index: '+(opts.zIndex+1)+'; display: none; border: none; margin: 0; padding: 0; position: absolute; width: 100%; height: 100%; top: 0; left: 0;"/>');if(ie6){var src=/^https/i.test(window.location.href||'')?'javascript:false':'about:blank';$iframe.attr('src',src);$('body').append($iframe);}
$('body').append($self).append($overlay);setSelfPosition();$self.css({left:'50%',marginLeft:($self.outerWidth()/2)*-1,zIndex:(opts.zIndex+3)});setOverlayHeight();$overlay.css({position:'absolute',width:'100%',top:0,left:0,right:0,bottom:0,zIndex:(opts.zIndex+2)}).css(opts.overlayCSS);if($overlay.is(":hidden")){$overlay.fadeIn(opts.overlaySpeed,function(){$self[opts.appearEffect](opts.lightboxSpeed,function(){setOverlayHeight();opts.onLoad()});});}else{$self[opts.appearEffect](opts.lightboxSpeed,function(){setOverlayHeight();opts.onLoad()});}
$(window).resize(setOverlayHeight).resize(setSelfPosition).scroll(setSelfPosition).keydown(observeEscapePress);

//$self.find(opts.closeSelector).click(function() { removeModal(true); return false; });
//$self.find(opts.closeSelector).live('click', function(e){removeModal(true);e.preventDefault();});
$('body').delegate(opts.closeSelector, 'click', function(e){removeModal(true);e.preventDefault();});

$overlay.click(function(){if(opts.closeClick){removeModal(true);return false;}});$self.bind('close',function(){removeModal(true)});$self.bind('resize',setSelfPosition);$overlay[0].removeModal=removeModal;function removeModal(removeO){$self[opts.disappearEffect](opts.lightboxDisappearSpeed,function(){if(removeO){removeOverlay();}
opts.destroyOnClose?$self.remove():$self.hide()
$self.find(opts.closeSelector).unbind('click');$self.unbind('close');$self.unbind('resize');$(window).unbind('scroll',setSelfPosition);$(window).unbind('resize',setSelfPosition);});}
function removeOverlay(){$overlay.fadeOut(opts.overlayDisappearSpeed,function(){$(window).unbind('resize',setOverlayHeight);$overlay.remove();$overlay.unbind('click');opts.onClose();})}
function observeEscapePress(e){if((e.keyCode==27||(e.DOM_VK_ESCAPE==27&&e.which==0))&&opts.closeEsc)removeModal(true);}
function setOverlayHeight(){if($(window).height()<$(document).height()){$overlay.css({height:$(document).height()+'px'});}else{$overlay.css({height:'100%'});if(ie6){$('html,body').css('height','100%');}}}
function setSelfPosition(){var s=$self[0].style;if(($self.height()+80>=$(window).height())&&($self.css('position')!='absolute'||ie6)){var topOffset=$(document).scrollTop()+40;$self.css({position:'absolute',top:topOffset+'px',marginTop:0})
if(ie6){s.removeExpression('top');}}else if($self.height()+80<$(window).height()){if(ie6){s.position='absolute';if(opts.centered){s.setExpression('top','(document.documentElement.clientHeight || document.body.clientHeight) / 2 - (this.offsetHeight / 2) + (blah = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"')
s.marginTop=0;}else{var top=(opts.modalCSS&&opts.modalCSS.top)?parseInt(opts.modalCSS.top):0;s.setExpression('top','((blah = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + '+top+') + "px"')}}else{if(opts.centered){$self.css({position:'fixed',top:'50%',marginTop:($self.outerHeight()/2)*-1})}else{$self.css({position:'fixed'}).css(opts.modalCSS);}}}}});};$.fn.lightbox_me.defaults={appearEffect:"fadeIn",overlaySpeed:300,lightboxSpeed:"fast",disappearEffect:"fadeOut",overlayDisappearSpeed:300,lightboxDisappearSpeed:"fast",closeSelector:".close",closeClick:true,closeEsc:true,destroyOnClose:false,onLoad:function(){},onClose:function(){},classPrefix:'lb',zIndex:999,centered:false,modalCSS:{top:'40px'},overlayCSS:{background:'black',opacity:.6}}})(jQuery);

// hover intent plugin ********** Disabled as menu isn't currently being used **********
//(function($){$.fn.hoverIntent=function(f,g){var cfg={sensitivity:7,interval:100,timeout:0};cfg=$.extend(cfg,g?{over:f,out:g}:f);var cX,cY,pX,pY;var track=function(ev){cX=ev.pageX;cY=ev.pageY;};var compare=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);if((Math.abs(pX-cX)+Math.abs(pY-cY))<cfg.sensitivity){$(ob).unbind("mousemove",track);ob.hoverIntent_s=1;return cfg.over.apply(ob,[ev]);}else{pX=cX;pY=cY;ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}};var delay=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);ob.hoverIntent_s=0;return cfg.out.apply(ob,[ev]);};var handleHover=function(e){var p=(e.type=="mouseover"?e.fromElement:e.toElement)||e.relatedTarget;while(p&&p!=this){try{p=p.parentNode;}catch(e){p=this;}}if(p==this){return false;}var ev=jQuery.extend({},e);var ob=this;if(ob.hoverIntent_t){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);}if(e.type=="mouseover"){pX=ev.pageX;pY=ev.pageY;$(ob).bind("mousemove",track);if(ob.hoverIntent_s!=1){ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}}else{$(ob).unbind("mousemove",track);if(ob.hoverIntent_s==1){ob.hoverIntent_t=setTimeout(function(){delay(ev,ob);},cfg.timeout);}}};return this.mouseover(handleHover).mouseout(handleHover);};})(jQuery);

$(document).ready(function(){

    // initialise banners on homepage for fading
    $(function() { addBanners(['assets/templates/hep/img/header4.jpg', 'assets/templates/hep/img/header3.jpg'], '#banner'); });

    // start banner rotation
    $(function() { setInterval("bannerFade()",5000); });
    
    // catch click events for more buttons and slide
    $('.green a.more').click(function(e) { e.preventDefault(); moreBox('.green'); });
    $('.blue a.more').click(function(e) { e.preventDefault(); moreBox('.blue'); });
    $('.red a.more').click(function(e) { e.preventDefault(); moreBox('.red'); });
    $('.grey a.more').click(function(e) { e.preventDefault(); moreBox('.grey'); });
    
    // clear/reset search label in input
    $('#search').bind({
        focus: function() { if ($(this).val() == 'Search') $(this).val(''); },
        blur: function() { if ($(this).val() == '') $(this).val('Search'); }
    });
    
    /******************************
    Menu has been disabled as it is not currently being used.
    *******************************   
    $('#menu li').hoverIntent({
        over: function() {
            $(this).siblings().children().animate({bottom: '0'});
            var height = $('ul', this).height() + 10;
            $('ul', this).show();
            $('ul', this).stop().animate({bottom: '-'+height});
        },
        out: function() {
            $('ul', this).animate({bottom: '0'}, function() {$(this).hide();});
        },
        timeout: 500
    });*/
    
    // load feedback form when link clicked
    
    if (!($.browser.msie && $.browser.version.substr(0,1)<7)) { // do not assign the following to <= ie6 due to an issue with loading in a page with a <base> tag and external links
        $('a.websiteFeedbackLink').click(function() {
            var el = '#websiteFeedbackFormWrapper';
            $(el).lightbox_me({centered: true});
            if (!$(el).hasClass('loaded')) { // only load content if it hasn't previously been loaded
                $(el).addClass('showMiddleLoader'); // show loader gif
                $(el).load('/feedbackform.html #wf', function() {
                    $('#websiteFeedbackForm').submit(function(e) {
                        e.preventDefault();
                        submitFeedbackForm(el);
                    });
                    $(el).css({'margin-top' : '-'+parseInt(($(this).outerHeight()/2))+'px'}); // reset center as content has been added after lightbox rendered
                    $(el).removeClass('showMiddleLoader'); // hide loader gif
                    $(el).prepend('<a href="#" class="close">Close</a>');
                }); 
                $(el).addClass('loaded'); // assign loaded class so content isn't loaded again if it has previously been loaded
            }
            return false; // prevents default
        });
        
        // load email to a friend form when link clicked
        $('a.emailFriend').click(function() {
            var el = '#emailFriendFormWrapper';
            $(el).lightbox_me({centered: true});
            if (!$(el).hasClass('loaded')) { // only load content if it hasn't previously been loaded
                $(el).addClass('showMiddleLoader'); // show loader gif
                $(el).load('/emailfriendform.html #emf', function() {
                    $('#emailFriendForm').submit(function(e) {
                        e.preventDefault();
                        submitEmailFriendForm(el);
                    });
                    $(el).css({'margin-top' : '-'+parseInt(($(this).outerHeight()/2))+'px'}); // reset center as content has been added after lightbox rendered
                    $(el).removeClass('showMiddleLoader'); // hide loader gif
                    $(el).prepend('<a href="#" class="close">Close</a>');
                }); 
                $(el).addClass('loaded'); // assign loaded class so content isn't loaded again if it has previously been loaded
            }
            return false; // prevents default
        });
    }
    
    // display tooltips for icons
    simple_tooltip("a.printLink, a.emailFriend", "tooltip");
    
});

function submitFeedbackForm(el) {
    $('#wfBtn').attr("disabled", true);  
    var name = $("#wfName").val();
    var email = $("#wfEmail").val();
    var message = $("#wfMessage").val();
    var vericode = $("#wfvericode").val();
    $(el).addClass('showLoader');
    $(el).load('/feedbackform.html #wf', {'name':name, 'email':email, 'message':message, 'vericode':vericode, 'formid':'websiteFeedbackForm'}, function() {
        $('#websiteFeedbackForm').submit(function(e) {
            e.preventDefault();
            submitFeedbackForm(el);
        });
        $(el).removeClass('showLoader');
        $(el).css({'margin-top' : '-'+parseInt(($(this).outerHeight()/2))+'px'});
        $(el).prepend('<a href="#" class="close">Close</a>');
    }); 
}

function submitEmailFriendForm(el) {
    $('#efBtn').attr("disabled", true); // disable button on submit
    var name = $("#efName").val();
    var email = $("#efEmail").val();
    var friendsname = $("#efFriendsName").val();
    var friendsemail = $("#efFriendsEmail").val();
    var link = $(location).attr('href'); // get current location for email-to-friend form
    var vericode = $("#efvericode").val();
    $(el).addClass('showLoader'); // show loader gif
    $(el).load('/emailfriendform.html #emf', {'name':name, 'email':email, 'friendsname':friendsname, 'friendsemail':friendsemail, 'vericode':vericode, 'link':link, 'formid':'emailFriendForm'}, 
        function() {
            $('#emailFriendForm').submit(function(e) { // add the event listener again as a new form has been loaded into the DOM
                e.preventDefault();
                submitEmailFriendForm(el);
            });
            $(el).removeClass('showLoader'); // hide loader gif
            $(el).css({'margin-top' : '-'+parseInt(($(this).outerHeight()/2))+'px'}); // reset center as content has has changed in lightbox
            $(el).prepend('<a href="#" class="close">Close</a>');
        }
    ); 
}

// ie helper functions for rounded corners and menu
function add3Corners(classname) { $(classname).prepend('<span class="tr"></span>');$(classname).append('<span class="bl"></span>');$(classname).append('<span class="br"></span>'); }
function add4Corners(classname) { $(classname).prepend('<span class="tl"></span>');$(classname).prepend('<span class="tr"></span>');$(classname).append('<span class="bl"></span>');$(classname).append('<span class="br"></span>'); }
function adjClass() { $('#menu li.active + li').addClass('adj'); }

// rotate banner
function bannerFade() {
    var $active = $('#banner img.active');
    if ( $active.length == 0 ) $active = $('#banner img:last');
    var $next =  $active.next().length ? $active.next() : $('#banner img:first');
    $active.addClass('last-active');
    $next.css({opacity: 0.0})
        .addClass('active')
        .animate({opacity: 1.0}, 1000, function() {
            $active.removeClass('active last-active');
        });
}

// add banners after dom load to avoid showing multiple images to non JS users
function addBanners(banners, el) {
    $.each(banners, function(index, value) {
        var imgel = $("<img>").attr('src',value);
        $(el).append(imgel);
    });
}

// slide boxes up+down
function moreBox(box) {
    var currentHeight = $(box + ' ol').height();
    $(box + ' ol').css('height', 'auto');
    var height = $(box + ' ol').height();
    if (currentHeight == height) {
        $(box + ' ol').animate({'height': '4.65em'});
    }
    else {
        $(box + ' ol').css('height', currentHeight + 'px');
        $(box + ' ol').animate({'height': height}, function(){$(this).css('height', 'auto');});
    }
}

// display tooltips for icons
function simple_tooltip(target_items, name){
 $(target_items).each(function(i){
		$("body").append("<div class='"+name+"' id='"+name+i+"'><p>"+$(this).attr('title')+"</p></div>");
		var my_tooltip = $("#"+name+i);

		$(this).removeAttr("title").mouseover(function(){
				my_tooltip.css({opacity:0.9, display:"none"}).stop().fadeIn(400);
		}).mouseover(function(){
				my_tooltip.css({left:$(this).offset().left-my_tooltip.width()+18, top:$(this).offset().top-my_tooltip.height()-8});
		}).mouseout(function(){
				my_tooltip.stop().fadeOut(400);
		});
	});
}
