/*
 Nomensa jquery init file
 author: nomensa
 website: http://www.nomensa.com
*/
$(document).ready( function(){

    /* ADD FIRST CLASS */
    $('#skyBanner li:first').firstClass();
    $('#breadcrumb li:first').firstClass();
    
    /* WRAP EACH WORD IN SPAN */
    $('#contentWrap .titleBanner').lettering('words');

    /* TOGGLE FAQS */
    $('#faqs .box li').toggleFAQs();
    
    /* TOGGLE RUNNING PROJECT STEPS */
    $('#running .boxWrap .box').toggleStep();
    //show first by default to match CSS
    $('#running .stepOne h2 a').removeClass('show').addClass('hide');
    $('#running .stepOne h2 span').text('Hide ');

    /* ANYTHING SLIDER */
	if ($('#home .carousel').length != 0) {
		$('#home .carousel').anythingSlider({
			// Appearance
			expand : false,
            resizeContents : false,
            
			// Slideshow
			autoPlay : true,
			stopAtEnd : true,

			// Navigation
			forwardText : "Next",
			backText : "Previous",
			appendFowardTo : '.carouselWrap',
            appendBackTo : '.carouselWrap',
			infiniteSlides : true,
			buildStartStop : false,
			buildNavigation : false,
			
			// Times
            delay : 6000,
            animationTime : 1200
		});
	}
	
	/* LOYAL SCHEME AJAX REWARD DETAILS */
	if ($('#loyalty').length != 0) {
	    
    	$("#loyalty .reward a").click(function(e) {
            e.preventDefault();
            var url = $(this).attr('href') + ' #loyaltyDetails';
            var dialog = $('<div id="dialog-modal" style="display:hidden"></div>').appendTo('body');

            dialog.load(
                url, 
                {},
                function (responseText, textStatus, XMLHttpRequest) {
                    dialog.dialog({
                        width: 500,
                        modal: true,
                        draggable: false
                    });
                }
            );
        });
    }
	
	/* NUDGE SCHOOLS LIGHTBOX */
	if ($('#nudgeSchool').length != 0) {
		var nudgeLink = '<a class="bttn nudgeMe" href="#">Nudge</a>';
		$("#nudgeSchool .search-listings li").each(function() {

			//$(this).prepend(nudgeLink);
		})
	    
    	$(".nudgeMe").click(function(e) {
            e.preventDefault();
            var url = $(this).attr('href');// + ' #nudgeMe';
            var dialog = $('<div id="dialog-modal" style="display:hidden"></div>').appendTo('body');

            $.ajax({
	                url: url, 
	                type: "GET",
	                success: function (responseText, textStatus, XMLHttpRequest) {
	                			dialog.html(responseText);
			                    dialog.dialog({
			                        width: 400,
			                        modal: true,
			                        draggable: false
			                    });
	                }
	        });
        });
    }	
	
	
	/* LINKIFY CONTENT */
	if ($('#landing .caseStudy img').length != 0) {
    	$('#landing .caseStudy').linkify({
            targetElement : 'img',
            selectLink :function($box){
                return $box.find('.boxContent a:first');
            }
        });
    }
    
    if ($('#caseStudies').length != 0) {
        $('#caseStudies .featured .ez-fl .box').linkify({
            targetElement : 'img',
            selectLink :function($box){
                return $box.find('.boxContent a:first');
            }
        });
    }
    
    if ($('#newsListing').length != 0) {
        $('#newsListing .featured .ez-fl .box').linkify({
            targetElement : 'img',
            selectLink :function($box){
                return $box.find('.boxContent a:first');
            }
        });
    }
    
    if ($('#mentors').length != 0) {
        $('#mentors .mentorList .box').linkify({
            selectLink :function($box){
                return $box.find('a:first');
            }
        });
    }
    
    /* EQUAL HEIGHT COLUMNS */
    $('#landing .section .ez-fl .box').equalCols();
    $('#dashboard .section .ez-wr:last .box').equalCols();
    $('#caseStudies .featured:last .box').equalCols();
    $('#newsListing .featured:last .box').equalCols();

    /* add placeholder text if browser is IE. Browser detection is bad kids */
    if ($.browser.msie ) {
        if ($('#home').length != 0) {
            $('#home .searchWrapper input[name=term]').formFocus({
                displayVal: "Postcode or school name"
            }); 
        }
    }


    /**
     * Defacto specific scripts, remove for non-defacto projects
     */
    $('img.centre').center();
    $('.external').externalise();
});

/* ADD LAST CLASS */
jQuery.fn.lastClass = function () {
    return this.each(function () {
        $(this).addClass("last")
    });
};

/* ADD FIRST CLASS */
jQuery.fn.firstClass = function () {
    return this.each(function () {
        $(this).addClass("first")
    });
};

/* FAQS HIDE/SHOW */
jQuery.fn.toggleFAQs = function () {
    var $current_el = $(this);
    
    $('h3', $current_el).prepend('<span>Show </span>');
    $('h3', $current_el).wrapInner('<a class="show" href="#" />');
    
    $('h3 a', $current_el).live('click', function(e){
        if($(this).hasClass('show')) {
            $(this).toggleClass('show').toggleClass('hide');
            $('span', this).text('Hide ');
        }        
        else {
            $(this).toggleClass('hide').toggleClass('show');
            $('span', this).text('Show ');
        }
        $(this).parent().siblings('.faqContent').toggle();
        e.preventDefault();
    });
};

/* RUNNING PROJECT HIDE/SHOW */
jQuery.fn.toggleStep = function () {
    var $current_el = $(this);
    
    $('h2', $current_el).prepend('<span>Show </span>');
    $('h2', $current_el).wrapInner('<a class="show" href="#" />');
    
    $('h2 a', $current_el).live('click', function(e){
        if($(this).hasClass('show')) {
            $(this).toggleClass('show').toggleClass('hide');
            $('span', this).text('Hide ');
        }        
        else {
            $(this).toggleClass('hide').toggleClass('show');
            $('span', this).text('Show ');
        }
        $(this).parent().siblings('.boxContent').slideToggle('normal');
        e.preventDefault();
    });
};


/**
 * Linkify boxes - Provide clickable boxes
 * Version 2.6
 */
(function($){$.fn.linkify=function(options){var defaults={targetElement:null,selectLink:null,linkifiedClass:'linkified',hoverClass:'linkie-hover',focusClass:'linkie-focus',urlPrefixes:['https://','http://','www.']};var settings=$.extend({},defaults,options);function are_identical(links){var first=get_truncated_url($(links).get(0));var curr=null;var is_identical=true;$.each(links,function(index,value){curr=get_truncated_url($(this));if(curr!==first){is_identical=false;}});return is_identical;}function get_truncated_url(link){return truncate_url($(link).attr('href'));}function truncate_url(url){url=$.trim(url);if(settings.urlPrefixes){for(var prefix in settings.urlPrefixes){if(url.indexOf(settings.urlPrefixes[prefix])===0){url=url.substring(settings.urlPrefixes[prefix].length);}}}return url;}function bind_link(box,link_attrs){var bind_target=(settings.targetElement&&$(box).find(settings.targetElement).length>0)?$(box).find(settings.targetElement):box;if(link_attrs.target=='_blank'){$(bind_target).click(function(e){e.preventDefault();window.open(link_attrs.href,link_attrs.text);});}else{$(bind_target).click(function(e){e.preventDefault();window.location.href=link_attrs.href;});}$(bind_target).hover(function(){$(this).addClass(settings.hoverClass);},function(){$(this).removeClass(settings.hoverClass);});$(box).find('a').focus(function(){$(box).addClass(settings.focusClass);});$(box).find('a').blur(function(){$(box).removeClass(settings.focusClass);});}function get_attrs(link_element){var href=($(link_element).attr('href')!=="")?$(link_element).attr('href'):null;var target=($(link_element).attr('target')!=="")?$(link_element).attr('target'):null;var text=$(link_element).text();return{href:href,target:target,text:text};}return this.each(function(){var $link=null;var attrs={};if($(this).find('a[href]').length>1){var links=$(this).find('a[href]');if(are_identical($(links))){attrs=get_attrs($(links).get(0));}else{if($.isFunction(settings.selectLink)){$link=settings.selectLink($(this));if($link.length==1){attrs=get_attrs($link);}}}}else{if($(this).find('a[href]').length==1){attrs=get_attrs($(this).find('a[href]'));}}if(attrs.href!==undefined){$(this).addClass(settings.linkifiedClass);bind_link($(this),attrs);}});};})(jQuery);


/** 
 * Equal height Columns
 * Version 1 
 */
jQuery.fn.equalCols=function(){var sortNumber=function(a,b){return b-a};var heights=[];$(this).each(function(){heights.push($(this).height())});heights.sort(sortNumber);var maxHeight=heights[0];return this.each(function(){if($.browser.msie&&$.browser.version<=6){$(this).css({height:maxHeight})}else{$(this).css({"min-height":maxHeight})}})};


/**
 Plugin: Form focus changer
 author: Nomensa
 website: http://www.nomensa.com

 version: 1.0
*/
jQuery.fn.formFocus=function(options){var defaults={defaultVal:""};options=$.extend(defaults,options);return this.each(function(){var o=options;var startVal;if($(this).attr("value")){startVal=$(this).attr("value")}else{startVal=o.displayVal}$(this).attr({value:startVal});$(this).addClass("default-value");$(this).focus(function(){var currentVal=$(this).val();if(startVal==currentVal){$(this).removeClass("default-value");$(this).attr("value","")}});$(this).blur(function(){if($(this).val()==""){$(this).addClass("default-value");$(this).val(startVal)}})})};


/**
 * Defacto specific scripts, remove for non-defacto projects
 */
/* DEFACTO CENTRE IMAGE WRAP */
jQuery.fn.center = function() {
    return this.each(function() {
		var div = $('<div class="centre"/>');
		$(this).wrap(div);
    });
};

/* OPEN LINKS IN A NEW WINDOW */
jQuery.fn.externalise = function(){
	return this.each(function () {
		$(this).attr('target', '_blank')
	});
}; 
