﻿if (!window.ItvJs)
    window.ItvJs = {};

// LEAVE THIS FUNCTION AT THE TOP PLEASE
// ----------------------------------------------
// Check if DOM available (http://www.cherny.com)
// ----------------------------------------------

var readyStateHandler = 0;

var DomLoaded =
{
    onload: [],
    ready: false,
    loaded: function() {
        DomLoaded.ready = true;
        for (z = 0; z < DomLoaded.onload.length; z++) {
            if (!DomLoaded.onload[z].done) {
                DomLoaded.onload[z]();
                DomLoaded.onload[z].done = true;
            }
        }
    },
    load: function(fireThis) {
        this.onload.push(fireThis);
        if (DomLoaded.ready) {
            DomLoaded.loaded();
            return;
        }
        if (document.addEventListener)
            document.addEventListener("DOMContentLoaded", DomLoaded.loaded, null);
        if (/KHTML|WebKit/i.test(navigator.userAgent)) {
            var _timer = setInterval(function() {
                if (/loaded|complete/.test(document.readyState)) {
                    clearInterval(_timer);
                    delete _timer;
                    DomLoaded.loaded();
                }
            }, 10);
        }
        /*@cc_on@*/
        /*@if (@_win32)
        var proto = "src='javascript:void(0)'";
        if (location.protocol == "https:") proto = "src=//0";
        document.write("<scr" + "ipt id=__ie_onload defer " + proto + "><\/scr" + "ipt>");
        var script = document.getElementById("__ie_onload");
        script.onreadystatechange = function() {
            if (this.readyState == "complete") {
                DomLoaded.loaded();
            }
        };

        /*@end@*/

        // window.onload = DomLoaded.loaded;
    }

};


function addEvent(obj, type, fn) {
    // Check for dom load events
    if (type == 'DOMContentLoaded') { DomLoaded.load(fn); return; }

    if (obj.addEventListener) {
        obj.addEventListener(type, fn, false);
        if (EventCache) {
            EventCache.add(obj, type, fn);
        }
    }
    else if (obj.attachEvent) {
        obj["e" + type + fn] = fn;
        obj[type + fn] = function() { obj["e" + type + fn](window.event); }
        obj.attachEvent("on" + type, obj[type + fn]);
        if (EventCache) {
            EventCache.add(obj, type, fn);
        }
    }
    else {
        obj["on" + type] = obj["e" + type + fn];
    }
}
var EventCache = function() {
    var listEvents = [];
    return {
        listEvents: listEvents,
        add: function(node, sEventName, fHandler) {
            listEvents.push(arguments);
        },
        flush: function() {
            var i, item;
            try {
                for (i = listEvents.length - 1; i >= 0; i = i - 1) {
                    item = listEvents[i];
                    if (item[0].removeEventListener) {
                        item[0].removeEventListener(item[1], item[2], item[3]);
                    };
                    if (item[1].substring(0, 2) != "on") {
                        item[1] = "on" + item[1];
                    };
                    if (item[0].detachEvent) {
                        item[0].detachEvent(item[1], item[2]);
                    };
                    item[0][item[1]] = null;
                };
            }
            catch (e) { }
        }
    };
} ();
addEvent(window, 'unload', EventCache.flush);


//------------------------------------------
// cookies
//------------------------------------------
function createCookie(name, value, days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        var expires = "; expires=" + date.toGMTString();
    }
    else var expires = "";
    document.cookie = name + "=" + value + expires + "; path=/";
}

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for (var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') c = c.substring(1, c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
    }
    return null;
}

function eraseCookie(name) {
    createCookie(name, "", -1);
}

function getUrl(name) {
    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regexS = "[\\?&]" + name + "=([^&#]*)";
    var regex = new RegExp(regexS);
    var results = regex.exec(window.location.href);
    if (results == null)
        return "";
    else
        return results[1];
}
