var xmlHttpReq;
if (window.XMLHttpRequest) { xmlHttpReq = new XMLHttpRequest(); }
else if (window.ActiveXObject) { xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP"); }

var AjaxServerPageName = "/getSiteDomain.asp"

var WindowHeight = 0;
var MessageStatus = "";
var CSSLoaded = false;
var SiteDomain;

var iframeID;

function Debug_IframeScripts(str) {
    Debug(str, false);
}

// hide scrollbar in IE
with(document.documentElement.style)
{
	overflow="hidden";
}

if (typeof window.addEventListener != 'undefined') {
    window.addEventListener(
        'load',
        function (evt) {
            init();
        },
        false
    );
}
else if (typeof window.attachEvent != 'undefined') {
    window.attachEvent(
        'onload',
        function () {
            init();
        }
    );
}

function init() {

    //alert("iframe_scripts.js init");

    try {
        if (postMessage) {
            //do nothing
        }
    }
    catch (err) {
        postMessage = false;
    }    

	if(postMessage){
		// hide scrollbar in IE
		with(document.documentElement.style)
		{
			overflow="hidden";
		}
		with(document.body.style)
		{
			overflow="hidden";
		}

		initializeIframeHeight();

		if (window.addEventListener) {
		    window.addEventListener("message", receiveMessage, false);
		}
		else if (window.attachEvent) {
		    window.attachEvent("onmessage", receiveMessage);
		}
		
	}
	else{
		// hide scrollbar in IE
		with(document.documentElement.style)
		{
			overflow="auto";
		}
		with(document.body.style)
		{
			overflow="auto";
		}
	}

}

function OpenTop(url) {
    if (postMessage) {
        sendWindowHeight("url=" + url);
    }
    else{
        window.open(url);
    }
}

function getQueryVariable(variable)
{
    var query = window.location.search.substring(1);
    var vars = query.split("&");
    for (var i=0;i<vars.length;i++)
    {
        var pair = vars[i].split("=");
        if (pair[0] == variable)
        {
            return pair[1];
        }
    }
}

function initializeIframeHeight() {

    Debug_IframeScripts("initializeIframeHeight");

    var ThisSite = window.location.toString();

    Debug_IframeScripts('ThisSite = ' + ThisSite);

    ThisSite = ThisSite.substring(ThisSite.indexOf("/iframe/") + 8, ThisSite.length);
    ThisSite = ThisSite.substring(0, ThisSite.indexOf("/"));    

    if (ThisSite.length > 0) {

        Debug_IframeScripts("/getSiteDomain.asp?site=" + ThisSite);
        var requestUrl = "/getSiteDomain.asp?site=" + ThisSite;

        if (xmlHttpReq) {
            if (xmlHttpReq.readyState != 0) {
                xmlHttpReq.abort();
            }
            xmlHttpReq.open("GET", requestUrl, true);
            xmlHttpReq.onreadystatechange = function() {
                Debug_IframeScripts("xmlHttpReq.readyState = " + xmlHttpReq.readyState);
                if (xmlHttpReq.readyState == 4 || xmlHttpReq.readyState == "complete") {
                    if (xmlHttpReq.responseXML != null) {
                        var siteDomainNodes = xmlHttpReq.responseXML.documentElement.getElementsByTagName("sitedomain");
                        Debug_IframeScripts("siteDomainNodes.length = " + siteDomainNodes.length);
                        if (siteDomainNodes.length > 0) {
                            for (i = 0; i < siteDomainNodes.length; i++) {
                                SiteDomain = siteDomainNodes.item(i).getAttribute("name");
                                sendIframeHeight();
                                setInterval("sendIframeHeight()", 100); //<---------------------------------------------------------UNCOMMENT THIS WHEN GOING LIVE
                            }
                        }
                        else {
                            sendIframeHeight();
                            setInterval("sendIframeHeight()", 100); //<---------------------------------------------------------UNCOMMENT THIS WHEN GOING LIVE
                        }
                    }
                    else {
                        Debug_IframeScripts('null ajax response: ' + requestUrl);
						sendIframeHeight();
						setInterval("sendIframeHeight()", 100); //<---------------------------------------------------------UNCOMMENT THIS WHEN GOING LIVE
                    }
                }
                
            }
            xmlHttpReq.send("");
        }
        else {
            Debug_IframeScripts("xmlHttpReq = " + xmlHttpReq);
        }
    }
    else {
        sendIframeHeight();
        setInterval("sendIframeHeight()",100); //<---------------------------------------------------------UNCOMMENT THIS WHEN GOING LIVE
    }
}

function sendWindowHeight(message) {
    if (postMessage) {
        var httpsOn = false;
        var shortSiteDomain = SiteDomain;
        if (SiteDomain) {
            shortSiteDomain = shortSiteDomain.replace('://www.', '://');         
            if (shortSiteDomain.indexOf("www.") == 0) {
                shortSiteDomain = shortSiteDomain.substring(4, shortSiteDomain.length);
            }
            if (shortSiteDomain.indexOf('https') == 0) {
                httpsOn = true;
            }
            shortSiteDomain = shortSiteDomain.replace('http://', '');
            shortSiteDomain = shortSiteDomain.replace('https://', '');      
            Debug_IframeScripts('postmessage: ' + message);
            if (httpsOn) {
                parent.postMessage(message, 'https://' + shortSiteDomain);
                parent.postMessage(message, 'https://www.' + shortSiteDomain);
            }
            else {
                parent.postMessage(message, 'http://' + shortSiteDomain);
                parent.postMessage(message, 'http://www.' + shortSiteDomain);                    
            }
        }
        else {
            parent.postMessage(message, "http://www.riedc.com/");
            parent.postMessage(message, "http://riedc.com/");
            parent.postMessage(message, "http://www.everycompanycounts.com/");
            parent.postMessage(message, "http://everycompanycounts.com/");
            parent.postMessage(message, "http://www.arts.ri.gov/");
            parent.postMessage(message, "http://arts.ri.gov/");
        }
    }
}

function sendIframeHeight() {
	var iframediv = getElement("iframe");
	var iframeHeight;
	if (SiteDomain) {
		// has iframe account
		if (iframeID) {
			if (iframediv) {
				iframeHeight = getElementHeight(iframediv);
				if (WindowHeight != iframeHeight || MessageStatus == "") {
					WindowHeight = iframeHeight;
					try {
						sendWindowHeight(iframeID + ".width=0," + iframeID + ".height=" + WindowHeight);
						//				if(window.addEventListener){
						//					window.addEventListener("message", receiveMessage, false);
						//				}
						//				else if(window.attachEvent){
						//					window.attachEvent("onmessage", receiveMessage);
						//				}
					}
					catch (err) {
						Debug_IframeScripts("error");
						//parent.location="/what-to-see/the-arts-calendar#" + WindowHeight;
					}
	
				}
			}
		}
		else {
			Debug_IframeScripts("sendWindowHeight");
			sendWindowHeight('getIframeID');
		}
	}
	else{
		// does not have iframe account (old version)
		if (iframediv) {
			iframeHeight = getElementHeight(iframediv);
			if (WindowHeight != iframeHeight || MessageStatus == "") {
				WindowHeight = iframeHeight;
				try{
					sendWindowHeight("iframe.width=0,iframe.height=" + WindowHeight);
				}
				catch(err){
					Debug_IframeScripts("error");
					//parent.location="/what-to-see/the-arts-calendar#" + WindowHeight;
				}
			}
		}
	}
}

function receiveMessage(event)
{
    var message = event.data;

    if (message.substring(0, 9) == "iframeid=") {
        iframeID = message.substring(message.indexOf("=") + 1, message.length);
    }
   
	//var eventOrigin = event.origin.replace("://www.","://");
	//if (eventOrigin.indexOf("http://riedc.com") == 0 || eventOrigin.indexOf("http://everycompanycounts.com") == 0 || eventOrigin.indexOf("http://arts.ri.gov") == 0){		
		//MessageStatus = "received";
	//}
	if(window.removeEventListener){
		window.removeEventListener("message", receiveMessage, false);
	}
	else if(window.detachEvent){
		window.detachEvent("onmessage");
	}
}

function goBack(num){
	history.back();
}

function getElement(name) {
	var o1 = null;
	if(document.all) {
		o1 = document.all(name);
	}
	else if(document.getElementById) {
		o1 = document.getElementById(name);
	}
	return o1;
}

function getElementHeight(myobj) {
	var ElementHeight;
	ElementHeight = myobj.clientHeight;
	return ElementHeight;
}
