/**
 * Plugin for old browsers using notice
 *
 * @author Elena Levadnaya
 * @since sprint11
 */

(function($){

	/**
	 * Old browsers using notice block
	 */
	var mainNoticeBlock;

	/**
	 * Show old browsers using notice
	 */
	var checkShowNotice = function(){
		if (usedOldBrowser() && $.cookie('hide_old_browsers_notice') === null) {
			mainNoticeBlock.show();
		}
		return false;
	};

	/**
	 * Show/hide detail notice text
	 */
	function detailDrop() {
		var old_browsers_text = mainNoticeBlock.find('#old_browsers_text');
		var old_browsers_box = mainNoticeBlock.find('#old_browsers_box');
		if (old_browsers_text.text() == 'Подробнее') {
			old_browsers_box.show();
			old_browsers_text.html('Свернуть');
		} else {
			old_browsers_box.hide();
			old_browsers_text.html('Подробнее');
		}
		return false;
	}

	/**
	 * Close old browsers using notice, set cookie
	 */
	function closeNotice() {
		var exp_date = new Date();
		exp_date.setDate(exp_date.getDate() + 3);
		$.cookie('hide_old_browsers_notice', 1, {path: '/', domain: $('#site_cookie_path').val(), expires: exp_date});
		mainNoticeBlock.hide();
		return false;
	}

	/**
	 * Detect, if you use old browser
	 */
	function usedOldBrowser() {
		//test for MSIE x.x
		if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) {
			var ie_version = new Number(RegExp.$1);
			if (ie_version < 7) {
				return true;
			} else {
				return false;
			}
		}
		//test for Firefox/x.x or Firefox x.x
		if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)) {
			var ff_version = new Number(RegExp.$1);
			if (ff_version < 3) {
				return true;
			}else {
				return false;
			}
		}
		//test for Opera/x.x ... Version/x.x
		if (/.*Opera.*/.test(navigator.userAgent)) {
			if (/Opera[\/\s](\d+\.\d+).+Version\/(\d+\.\d+)$/.test(navigator.userAgent)) {
				var opr_version = new Number(RegExp.$2);
				if (opr_version >= 10) {
					return false;
				}else {
					return true;
				}
			} else {
				return true;
			}
		}
		return false;
	}

	/**
	 * Plugin creator
	 */
	$.fn.oldBrowsersNotice = function() {
		mainNoticeBlock = $(this);
		return this.each(function() {
			checkShowNotice();
			mainNoticeBlock.find('#oldBrowsersDetailDrop').click(detailDrop);
			mainNoticeBlock.find('#oldBrowsersNoticeClose').click(closeNotice);
		});
	};
})(jQuery);
