﻿(function ( $ ) {
	$.fn.stickyHead = function( options ) {
		var $this = jQuery(this),
			$win = jQuery(window),
			$stickyHeadTop = $this.length > 0 ? $this.offset().top : 0,
			isMobile = false,
			$stickyBlankEle = jQuery("<div class='stickyBlankEle'></div>");
			
		var settings = $.extend({
			stickyClass: "skSticky",
			breakPoint: 768,
		}, options );

		$stickyBlankEle.insertAfter($this);

		if(typeof $this.attr("data-sticky-class") !== "undefined")
			settings.stickyClass = $this.attr("data-sticky-class");
		if(typeof $this.attr("data-breakpoint") !== "undefined")
			settings.breakPoint = parseInt($this.attr("data-breakpoint"));
		function initSetup(){
			if(!isMobile) {
				var scrollTop = $win.scrollTop();
				if (scrollTop > $stickyHeadTop) {
					var $navHeight = $this.outerHeight();
					$this.addClass(settings.stickyClass);
					jQuery('.stickyBlankEle').css('height', $navHeight);
				} else {
					$this.removeClass(settings.stickyClass);
					jQuery('.stickyBlankEle').css('height', 0);
				}
			} else {
				$this.removeClass(settings.stickyClass);
				jQuery('.stickyBlankEle').css('height', 0);
			}
		}
		function isBreakPointChanged(){
			if ( isMobile && $win.width() > settings.breakPoint ) {
				isMobile = false;
				return true;				
			}
			if ( !isMobile && $win.width() <= settings.breakPoint ) {
				isMobile = true;
				return true;
			}
			if ( $win.width() <= settings.breakPoint ){
				return false;
			} 
			if ( isNaN(settings.breakPoint) ) {
				return false;
			} 
		}
		isBreakPointChanged()
		initSetup();
		$win.resize(function () { 
			isBreakPointChanged()
			initSetup();
		});

		$win.scroll(function() {
			initSetup();
		});
	};
}( jQuery ));