﻿var ContactProvider = {
    show: function(title, providerId, providerName, providerEmail, thing, thingId, thingName) {
        ContactProvider.Blackout.Show();
        document.getElementById("ContactProviderTitle").innerHTML = title;
        document.getElementById("ContactProviderIFrame").src = "http://" + window.location.hostname + "/ContactProvider.aspx?id=" + providerId + "&name=" + encodeURIComponent(providerName) + "&email=" + encodeURIComponent(providerEmail) + "&thing=" + thing+ "&thingId=" + thingId + "&thingName=" + thingName + "&referringUrl=" + encodeURIComponent(window.location.href);
        document.getElementById("ContactProvider").style.visibility = "visible";
        CenterObject(document.getElementById("ContactProvider"));
    },

    hide: function() {
        document.getElementById("ContactProvider").style.visibility = "hidden";
        document.getElementById("ContactProvider").style.top = "-1000px";
        ContactProvider.Blackout.Hide();
        document.getElementById("ContactProviderIFrame").src = "";
    },

    GetScrollPosition: function() {
        var x = window.pageXOffset ? window.pageXOffset : 0;
        if (document.documentElement && document.documentElement.scrollLeft > x) x = document.documentElement.scrollLeft;
        if (document.body && document.body.scrollLeft > x) x = document.body.scrollLeft;
        var y = window.pageYOffset ? window.pageYOffset : 0;
        if (document.documentElement && document.documentElement.scrollTop > y) y = document.documentElement.scrollTop;
        if (document.body && document.body.scrollTop > y) y = document.body.scrollTop;
        return { x: x, y: y };
    },

    GetScrollSize: function() {
        var xScroll, yScroll;
        if (window.innerHeight && window.scrollMaxY) {
            xScroll = document.body.scrollWidth;
            yScroll = window.innerHeight + window.scrollMaxY;
        } else if (document.body.scrollHeight > document.body.offsetHeight) { // all but Explorer Mac
            xScroll = document.body.scrollWidth;
            yScroll = document.body.scrollHeight;
        } else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
            xScroll = document.body.offsetWidth;
            yScroll = document.body.offsetHeight;
        }
        return { x: xScroll, y: yScroll };
    },

    GetWindowSize: function() {
        var windowWidth, windowHeight;
        if (self.innerHeight) {	// all except Explorer
            windowWidth = self.innerWidth;
            windowHeight = self.innerHeight;
        } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
            windowWidth = document.documentElement.clientWidth;
            windowHeight = document.documentElement.clientHeight;
        } else if (document.body) { // other Explorers
            windowWidth = document.body.clientWidth;
            windowHeight = document.body.clientHeight;
        }

        return { width: windowWidth, height: windowHeight };
    },

    GetDocumentSize: function() {
        var scrollSize = ContactProvider.GetScrollSize();
        var windowSize = ContactProvider.GetWindowSize();

        // for small pages with total height less then height of the viewport
        if (scrollSize.y < windowSize.height) {
            pageHeight = windowSize.height;
        } else {
            pageHeight = scrollSize.y;
        }

        // for small pages with total width less then width of the viewport
        if (scrollSize.x < windowSize.width) {
            pageWidth = windowSize.width;
        } else {
            pageWidth = scrollSize.x;
        }

        return { width: pageWidth, height: pageHeight };
    },

    ShowForeground: function() {
        var objsObject = document.getElementsByTagName("OBJECT");
        for (var i = 0; i < objsObject.length; i++) objsObject[i].style.visibility = "visible";
        var objsObject = document.getElementsByTagName("EMBED");
        for (var i = 0; i < objsObject.length; i++) objsObject[i].style.visibility = "visible";
    },

    HideForeground: function() {
        var objsObject = document.getElementsByTagName("OBJECT");
        for (var i = 0; i < objsObject.length; i++) objsObject[i].style.visibility = "hidden";
        var objsObject = document.getElementsByTagName("EMBED");
        for (var i = 0; i < objsObject.length; i++) objsObject[i].style.visibility = "hidden";
    },

    ShowIE6Foreground: function() {
        var objsObject = document.getElementsByTagName("OBJECT");
        for (var i = 0; i < objsObject.length; i++) objsObject[i].style.visibility = "visible";
        var objsSelect = document.getElementsByTagName("SELECT");
        for (var i = 0; i < objsSelect.length; i++) objsSelect[i].style.visibility = "visible";
    },

    HideIE6Foreground: function() {
        var objsObject = document.getElementsByTagName("OBJECT");
        for (var i = 0; i < objsObject.length; i++) objsObject[i].style.visibility = "hidden";
        var objsSelect = document.getElementsByTagName("SELECT");
        for (var i = 0; i < objsSelect.length; i++) objsSelect[i].style.visibility = "hidden";
    },

    RegisterWindowResizeEvent: function(objFunction) {
        var existingHandler = window.onresize;
        if (typeof window.onresize != 'function') {
            window.onresize = objFunction;
        } else {
            window.onresize = function() {
                if (existingHandler) existingHandler();
                objFunction();
            }
        }
    }
}

ContactProvider.Blackout = {
	N: 0,
	objBlackout: null,
	
	Create: function(hexColor) {
		this.objBlackout = document.createElement("div");
		this.objBlackout.style.cssText = "position:absolute;z-index:5;visibility:hidden;width:100%;height:1px;top:0px;left:0px;background-color:#" + (hexColor != null && /^[0-9A-Fa-f]{6}$/.test(hexColor) ? hexColor : "303132") + ";opacity:0.87;-moz-opacity:0.87;filter:alpha(opacity=87);";
		this.objBlackout.appendChild(document.createTextNode(" "));
		document.body.appendChild(this.objBlackout);
		ContactProvider.RegisterWindowResizeEvent(function() {ContactProvider.Blackout.Render();});
	},
	
	Show: function(hexColor) {
        ContactProvider.HideForeground();
		if (navigator.appName == "Microsoft Internet Explorer" && (navigator.appVersion.indexOf("MSIE 6.0") > -1 || navigator.appVersion.indexOf("MSIE 5.5") > -1)) ContactProvider.HideIE6Foreground();
		if (this.objBlackout == null) this.Create(hexColor);
		if (this.N == 0) {
			this.objBlackout.style.visibility = "visible";
			this.Render();
		}
		this.N++;
	},
	
	Render: function() {
		if (this.objBlackout != null && this.objBlackout.style.visibility == "visible") {
			this.objBlackout.style.height = "1px";
			this.objBlackout.style.height = ContactProvider.GetDocumentSize().height + "px";
		}
	},

	Hide: function() {
        ContactProvider.ShowForeground();
		if (navigator.appName == "Microsoft Internet Explorer" && (navigator.appVersion.indexOf("MSIE 6.0") > -1 || navigator.appVersion.indexOf("MSIE 5.5") > -1)) ContactProvider.ShowIE6Foreground();
		if (this.N == 1) {
			this.objBlackout.style.visibility = "hidden";
		}
		this.N--;
	}
};

document.write(
	'<div id="ContactProvider" style="visibility:hidden;position:absolute;z-index:12;left:0px;top:-1000px;width:638px;height:518px;background-image:url(http://www.outdoorni.com/i/ContactProvider-Bg.png);background-repeat:no-repeat">' +
		'<table cellpadding="0" cellspacing="0" style="width:100%;height:136px"><tr><td style="padding:0px 40px 10px;vertical-align:bottom;text-align:right;font-family:Arial Narrow, Arial, Sans-Serif;font-size:22pt;font-weight:bold;color:#000000"><span id="ContactProviderTitle">&nbsp;</span></td></tr></table>' +
		'<div style="padding:20px 0px 0px 39px">' +
			'<iframe id="ContactProviderIFrame" style="width:560px;height:316px;margin:0px;border-width:0px" frameborder="0" marginwidth="0" marginheight="0"></iframe>' +
		'</div>' +
	'</div>'
);