function snUs_windowResize() {
	jQuery(function($) {
		console.log('Not used');
	});
}

(function($) {

	$.fn.metadataInit = function(param) {
		$(this).each(function() {
			$(this).attr(param, eval('\$(this).metadata().' + param + ';'));
		})
	};

	$.sn = {
		mobileBrowser : $.browser.mobile,

		allow_load : true,
		rtl : false,

		cookie : {
			name : '',
			path : '',
			domain : '',
			secure : '0'
		},
		confirmBox : {
			enable : false,
			resizable : false,
			draggable : true,
			modal : true,
			width : '{S_SN_CB_WIDTH}',
			button_confirm : '{L_SN_US_CONFIRM}',
			button_cancel : '{L_SN_US_CANCEL}',
			button_close : '{L_SN_US_CLOSE}',
			postMinChar : 10,
			init : function() {
				if ($.sn.confirmBox.enable) {
					var $dialogHTML = $('<div class="ui-body-dialog"/>');
					$dialogHTML.attr('id', 'dialog').css('display', 'none');
					$dialogHTML.attr('title', 'Title Confirm Box');
					$dialogHTML.html('Content Confirm Box');

					$('body').append($dialogHTML);

					$('#dialog').dialog({
						width : this.width,
						resizable : this.resizable,
						draggable : this.draggable,
						modal : this.modal,
						show : this.show,
						hide : this.show,
						autoOpen : false,
						dialogClass : 'sn-confirmBox'
					});
				}

			}
		},

		enableModules : {
			im : false,
			us : false,
			mp : false,
			up : false,
			ntf : false,
			fms : false
		},
		_inited : false,
		_resize : new Array(),

		// INITIALIZACE
		init : function(opts) {
			var self = this;
			this._settings(this, opts);
			if (this.strpos(this.cookie.name, '_', -1) != 0) {
				this.cookie.name += '_';
			}

			$.metadata.setType("class");
			$(window).resize(function() {
				self._resizeBlocks();
			}).scroll(function(){
				self._scrollBlocks();
			});

			this.rtl = $('body').hasClass('rtl');
			if (!this.cookie.domain.match(/^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$/) && !this.cookie.domain.match(/^\./)) {
				this.cookie.domain = '.' + this.cookie.domain;
			}

			if ($('ul.sn-menu').size() > 0) {
				$('ul.sn-menu').menuNew().mouseleave(function() {
					$(this).children('li').children('ul').delay(250).fadeOut(300);
					$(this).children('li').children('a.ui-state-active').removeClass('ui-state-active');
				}).removeClass('ui-corner-all');
				$('.sn-menu *').removeClass('ui-corner-all ui-corner-top ui-corner-bottom');
			}

			$('input.ui-button').bind('mouseover mouseout', function() {
				$(this).toggleClass('ui-state-hover');
			});

			$(document).oneTime(250, 'sn-page-height', function(){$.sn._resize()});
			this.confirmBox.init();
		},

		parseURL : function(url) {
			var a = document.createElement('a');
			a.href = url;
			return {
				source : url,
				protocol : a.protocol.replace(':', ''),
				host : a.hostname,
				port : a.port,
				query : a.search,
				params : (function() {
					var ret = {}, seg = a.search.replace(/^\?/, '').split('&'), len = seg.length, i = 0, s;
					for (; i < len; i++) {
						if (!seg[i]) {
							continue;
						}
						s = seg[i].split('=');
						ret[s[0]] = s[1];
					}
					return ret;
				})(),
				file : (a.pathname.match(/\/([^\/?#]+)$/i) || [ , '' ])[1],
				hash : a.hash.replace('#', ''),
				path : a.pathname.replace(/^([^\/])/, '/$1'),
				relative : (a.href.match(/tps?:\/\/[^\/]+(.+)/) || [ , '' ])[1],
				segments : a.pathname.replace(/^\//, '').split('/')
			};
		},

		isValidURL : function(url) {
			// var RegExp =
			// /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;
			// var RegExp =
			// /^(([\w]+:)?\/\/)?(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)?@)?([\d\w][-\d\w]{0,253}[\d\w]\.)+[\w]{2,4}(:[\d]+)?(\/([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)*(\?(&?([-+_~.\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)?$/;
			// var RegExp =
			// /^(https|http|ftp)?:\/\/(?:[a-z\-]+\.)+[a-z]{2,6}(?:\/[^\/#?]+)+\.?(?:.*)$/;
			var RegExp = /^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&amp;'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&amp;'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&amp;'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&amp;'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&amp;'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i;
			if (RegExp.test(url)) {
				return true;
			} else {
				return false;
			}
		},

		equalsArray : function(obj1, obj2) {
			return $.param(obj1) === $.param(obj2);
		},

		metadataInit : function() {
			if ($.metadata) {
				// IM
				if ($('.snImChatBox textarea.snImMessage').size() > 0) {
					$('.snImChatBox textarea.snImMessage').each(function() {
						$(this).attr('uid', $(this).metadata().uid);
					});

				}
			}
		},

		getAttr : function(o, a) {
			if( o.size()==0){return false};
			
			if (o.attr(a) == undefined) {
				if ( o.metadata()[a] == undefined){
					return false;
				}
				return o.metadata()[a];
			} else {
				return o.attr(a);
			}
		},
		// SETTINGS FOR MODULES
		_settings : function(obj, opts) {
			if (opts == undefined || $.isEmptyObject(opts))
				return;
			if (obj._inited == undefined)
				obj._inited = false;
			if (obj._inited)
				return;

			$.extend(true, obj, opts);

			obj._inited = true;

		},

		getCookie : function(cookieName, defaultValue) {
			cookieName = cookieName.replace(/-/g, '_');
			var myCookie = $.cookie(this.cookie.name + cookieName);
			if (myCookie == null && defaultValue != undefined) {
				myCookie = defaultValue;
			}
			return myCookie;
		},
		setCookie : function(cookieName, value) {
			cookieName = cookieName.replace(/-/g, '_');
			$.cookie(this.cookie.name + cookieName, value, this.cookie);
		},

		strpos : function(haystack, needle, offset) {
			if (offset < 0) {
				offset = 0;
				haystack = this.strrev(haystack);
			}
			var i = (haystack + '').indexOf(needle, (offset || 0));
			return i === -1 ? false : i;
		},
		strrev : function(string) {
			string = string + '';
			var grapheme_extend = /(.)([\uDC00-\uDFFF\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065E\u0670\u06D6-\u06DC\u06DE-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0901-\u0903\u093C\u093E-\u094D\u0951-\u0954\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C01-\u0C03\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C82\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D02\u0D03\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F90-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B6-\u17D3\u17DD\u180B-\u180D\u18A9\u1920-\u192B\u1930-\u193B\u19B0-\u19C0\u19C8\u19C9\u1A17-\u1A1B\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAA\u1C24-\u1C37\u1DC0-\u1DE6\u1DFE\u1DFF\u20D0-\u20F0\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA67C\uA67D\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C4\uA926-\uA92D\uA947-\uA953\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uFB1E\uFE00-\uFE0F\uFE20-\uFE26]+)/g;
			string = string.replace(grapheme_extend, '$2$1');
			return string.split('').reverse().join('');
		},

		_resizeBlocks : function() {
			var self = this;
			self._resize();
			$.each(self.enableModules, function(idx, value) {
				if (value !== false && $.sn[idx] !== undefined && $.sn[idx]._resize !== undefined) {
					$.sn[idx]._resize();
				}
			});

		},
		
		_scrollBlocks: function(){
			var self = this;
			$.each(self.enableModules, function(idx, value) {
				if (value !== false && $.sn[idx] !== undefined && $.sn[idx]._scroll !== undefined) {
					$.sn[idx]._scroll();
				}
			});
			
		},

		_resize : function() {
			if ($('.sn-page').size() > 0) {
				$('.sn-page-content').removeAttr('style');
				$('.sn-page-content').css({
					minHeight : Math.max($('.sn-page-columnLeft').height(), $('.sn-page-columnRight').height(), $('.sn-page-content').height(), parseInt($('.sn-page-content').css('min-height')))
				});
			}
		},

		_documentClick : function() {
			var self = this;
			$.each(self.enableModules, function(idx, value) {
				if (value !== false && $.sn[idx] !== undefined && $.sn[idx]._documentClick !== undefined) {
					$.sn[idx]._documentClick();
				}
			});

		}
		
	}
}(jQuery));
