﻿jQuery(document).ready(function() {
    utils = {
        serializeUrlParameters: function(url) {
            var result = {
                initialUrl: url,
                path: url.split('?')[0],
                paramsLine: ''
            };
            if (url.indexOf('?') != -1) {
                var paramsLine = url.split('?')[1]
                result['paramsLine'] = paramsLine;
                var paramsSet = paramsLine.split('&');
                for (var i in paramsSet) {
                    var name = paramsSet[i].split('=')[0];
                    var value = paramsSet[i].split('=')[1];
                    result[name] = value;
                }
            }
            return result;
        },

        scrollOffsetX: function() {
            return window.pageXOffset ?
                      window.pageXOffset : document.documentElement.scrollLeft ?
                          document.documentElement.scrollLeft : document.body.scrollLeft;
        },

        scrollOffsetY: function() {
            return window.pageYOffset ?
                      window.pageYOffset : document.documentElement.scrollTop ?
                          document.documentElement.scrollTop : document.body.scrollTop;
        },

        screenWidth: function() {
            return document.innerWidth ?
                      document.innerWidth : document.documentElement.clientWidth ?
                          document.documentElement.clientWidth : document.body.clientWidth;
        },

        screenHeight: function() {
            return document.innerHeight ?
                      document.innerHeight : document.documentElement.clientHeight ?
                          document.documentElement.clientHeight : document.body.clientHeight;
        }
    }


    String.prototype.replaceAll = function(search, replace) {
        return this.split(search).join(replace);
    }


    hashListeners = {};

    String.prototype.bindHash = function(handler) {
        handle = function(str) {
            if (window.location.hash.indexOf(str) > -1) {
                handler(str);
                clearInterval(hashListeners[str]);
            }
        }
        hashListeners[this] = setInterval(handle, 100, this);
    }
});