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.js init");

    try{
        if(postMessage){
            //do nothing
        }
    }
    catch(err){
        postMessage = false;
    }

    var iframeSrc = getQueryVariable("iframeurl");
    if (iframeSrc) {
        iframeSrc = unescape(iframeSrc);
        var arrayIframes = document.getElementsByTagName('iframe')
        var arrayLength = arrayIframes.length;
        if (arrayLength == 1) {
            var previousIframeSrc = arrayIframes[0].src;
            var BaseURL = previousIframeSrc;
            BaseURL = BaseURL.substring(BaseURL.indexOf('://') + 3, BaseURL.length); // remove http
            BaseURL = BaseURL.substring(0, BaseURL.indexOf('/')); // extract domain
            BaseURL = 'http://' + BaseURL;
            arrayIframes[0].src = BaseURL + iframeSrc;
        }        
    }

    if (postMessage) {

        sendIframeID();

        if (window.addEventListener) {
            window.addEventListener("message", receiveMessage, false);
        }
        else if (window.attachEvent) {
            window.attachEvent("onmessage", receiveMessage);
        }
        else {
            resizeIframe();
            setInterval("resizeIframe()", 100);
        }
    }
    else {
        // as a fallback, scrollbars will be used
    }

}

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 sendIframeID() {

    if (postMessage) {

        var iframeID;
        var iframe;
        var message;
        var shortSiteDomain;

        var arrayIframes = document.getElementsByTagName('iframe')
        var arrayLength = arrayIframes.length;
        var arrayItem;
        for (var i = 0, len = arrayLength; i < len; ++i) {

            iframe = arrayIframes[i];
            iframeID = iframe.id;
            iframeSrc = iframe.src;

            if (iframe.src.indexOf("visitri.braveriver.com") > 0 || iframe.src.indexOf("visitrhodeisland.com") > 0) {

                message = "iframeid=" + iframeID;

                shortSiteDomain = "visitri.braveriver.com";
                iframe.contentWindow.postMessage(message, 'http://' + shortSiteDomain);
                iframe.contentWindow.postMessage(message, 'http://www.' + shortSiteDomain);

                shortSiteDomain = "visitrhodeisland.com";
                iframe.contentWindow.postMessage(message, 'http://' + shortSiteDomain);
                iframe.contentWindow.postMessage(message, 'http://www.' + shortSiteDomain);
            }

        }
    }
      
}

function resizeIframe(){
	
	var AnchorInformation = getAnchorInformation();
	
	var iframe = getElement("iframe");
	if(iframe && isInteger(AnchorInformation) && AnchorInformation > 0){
		if(iframe.style.height != AnchorInformation + "px"){
			iframe.style.height = (parseInt(AnchorInformation) + 1) + "px";
		}
	}
	if(iframe){
		iframe.scrolling = "no";
	}
}

function receiveMessage(event)
{
	var eventOrigin = event.origin.replace("://www.","://");
	if (eventOrigin.indexOf("http://visitri.braveriver.com") == 0 || eventOrigin.indexOf("http://visitrhodeisland.com") == 0 || eventOrigin.indexOf("http://www.visitrhodeisland.com") == 0) {

	    var iframeID;
	    var iframe;
	    var attribute;
	    var value;

	    var message = event.data;
	    //alert('iframe.js: receiveMessage: ' + message);
	    if (message == 'getIframeID') {
	        //alert(message);
	        if (postMessage) {
	            sendIframeID();
	        }
	    }
	    else if (message.indexOf('url=') == 0) {
	        window.location = message.substring(4,message.length);
	    }
	    else {

	        var messageArray = message.split(",");
	        var arrayLength = messageArray.length;
	        var arrayItem;
	        for (var i = 0, len = arrayLength; i < len; ++i) {
	            arrayItem = messageArray[i];
	            iframeID = arrayItem.substring(0, arrayItem.indexOf("."));
	            iframe = getElement(iframeID);
	            //alert("resizing " + iframeID);
	            if (iframe) {
	                attribute = arrayItem.substring(arrayItem.indexOf(".") + 1, arrayItem.indexOf("="));
	                if (attribute == "width" || attribute == "height") {
	                    value = arrayItem.substring(arrayItem.indexOf("=") + 1, arrayItem.length);
	                    if (isInteger(value)) {
	                        value = parseInt(value);
	                        if (value > 0) {
	                            switch (attribute) {
	                                case 'width':
	                                    if (iframe.style.width != value + "px") {
	                                        //alert("width = " + value);
	                                        iframe.style.width = value + "px";
	                                    }
	                                    break;
	                                case 'height':
	                                    if (iframe.style.height != value + "px") {
	                                        //alert("height = " + value);
	                                        iframe.style.height = value + "px";
	                                    }
	                                    break;
	                            }
	                        }
	                    }
	                }
	            }
	        }
	        try {
	            //iframe.contentWindow.postMessage(event.data, event.origin);
	        }
	        catch (err) {
	        }
	    }
	}
	else {
	    //alert(event.origin);
	}
}

function getAnchorInformation(){
	var AnchorInformation = window.location.hash.toString();
	return AnchorInformation;
}

function getElement(name) {
	var o1 = null;
	if(document.all) {
		o1 = document.all(name);
	}
	else if(document.getElementById) {
		o1 = document.getElementById(name);
	}
	return o1;
}

function isInteger(s)
{
	var i;
	
	if (isEmpty(s))
	if (isInteger.arguments.length == 1) return 0;
	else return (isInteger.arguments[1] == true);
	
	for (i = 0; i < s.length; i++)
	{
		var c = s.charAt(i);		
		if (!isDigit(c)) return false;
	}
	
	return true;
}

function isEmpty(s)
{
	return ((s == null) || (s.length == 0))
}

function isDigit (c)
{
	return ((c >= "0") && (c <= "9"))
}