﻿/// <reference path="define-class.js" />

var Util = defineClass({
    name: 'Util',

    statics: {
        encodeParams: function (params) {
            var encoded = '';

            for (var key in params) {
                encoded += '&' + key + '=' + params[key];
            }

            return encoded.substring(1);
        },

        queryStringParam: function (name) {
            name = name.replace(/[\[]/, '\\\[').replace(/[\]]/, '\\\]');

            var regexS = '[\\?&]' + name + '=([^&#]*)';
            var regex = new RegExp(regexS);
            var results = regex.exec(window.location.href);

            return results == null ? '' : decodeURIComponent(results[1].replace(/\+/g, ' '));
        },

        textWidth: function (jqObj, text) {
            jqObj.append('<span></span>');

            var span = jqObj.find('span:last');

            span.fadeTo(0, 0);
            span.html(text);
            span.css('white-space', 'nowrap');

            var width = span.outerWidth();

            span.remove();

            return width;
        },

        isFirefox4: function () {
            return navigator.userAgent.contains('Firefox/4');
        },

        getCookie: function (name) {
            var cookies = document.cookie.split(';');

            for (var i = 0; i < cookies.length; i++) {
                var cookie = cookies[i];
                var key = cookie.substr(0, cookie.indexOf('='));
                var value = cookie.substr(cookie.indexOf('=') + 1);

                key = key.replace(/^\s+|\s+$/g, '');

                if (name == key)
                    return unescape(value);
            }
        }
    }
});

String.prototype.contains = function (str) {
    return (this.indexOf(str) != -1);
}

jQuery.fn.fixedPosition = function (pos) {
    if (pos) {
        this.css({
            'position': 'fixed',
            'top': pos.top + 'px',
            'left': pos.left + 'px'
        });
    } else {
        var offset = this.offset();
        var left = offset.left - $(window).scrollLeft();
        var top = offset.top - $(window).scrollTop();

        return {
            'left': left,
            'top': top
        };
    }
}

