/* Code from http://directclarity.com:9997/KB/a44/can-an-iframe-resize-dynamically-to-fit-the-content.aspx */


//Input the IDs of the IFRAMES you wish to dynamically resize to match its content height:
//Separate each ID with a comma. Examples: ["myframe1", "myframe2"] or ["myframe"] or [] for none:
var iframeids=null;

//Should script hide iframe from browsers that don't support IframeResize script (non IE5+/NS6+ browsers. Recommended):
var iframehide="yes";

var getFFVersion=navigator.userAgent.substring(navigator.userAgent.indexOf("Firefox")).split("/")[1];
var FFextraHeight=parseFloat(getFFVersion)>=0.1? 16 : 0; //extra height in px to add to iframe in FireFox 1.0+ browsers


var IframeResize = {


    initialize: function(iframeIds) {

        iframeids = iframeIds;
        IframeResize.resizeCaller();
    },



    resizeCaller : function () {

        for (var i=0; i<iframeids.length; i++) {

            if (document.getElementById)
                IframeResize.resizeIframe(iframeids[i]);

            //reveal iframe for lower end browsers? (see var above):
            if ((document.all || document.getElementById) && iframehide=="no"){
                var tempobj=document.all? document.all[iframeids[i]] : document.getElementById(iframeids[i]);

                tempobj.style.display="block";
            }
        }

    },



    resizeIframe: function(frameid, extraSpace){

        var currentfr=document.getElementById(frameid);

		var fix = -20;
		if (extraSpace) fix = extraSpace;
		
	if (null == currentfr)
	    currentfr = parent.document.getElementById(frameid);
		
        if (currentfr){
            currentfr.style.display="block";

            // resize height
            if (currentfr.contentDocument && currentfr.contentDocument.body && currentfr.contentDocument.body.offsetHeight && !window.opera) //ns6 syntax
                currentfr.height = currentfr.contentDocument.body.offsetHeight+FFextraHeight + fix;

            else if (currentfr.Document && currentfr.Document.body&& currentfr.Document.body.scrollHeight && !window.opera) //ie5+ syntax
                currentfr.height = currentfr.Document.body.scrollHeight+ fix;

			else if (window.opera) {
				currentfr.height = currentfr.contentDocument.body.scrollHeight+ fix;
			}

            if (currentfr.addEventListener)
                currentfr.addEventListener("load", IframeResize.readjustIframe, false);

            else if (currentfr.attachEvent){
                currentfr.detachEvent("onload", IframeResize.readjustIframe); // Bug fix line
                currentfr.attachEvent("onload", IframeResize.readjustIframe);
            }
	    
	    //alert(currentfr.id + ", " + currentfr.height);
        }
    },



    readjustIframe: function(loadevt) {

        var crossevt=(window.event)? event : loadevt;
        var iframeroot=(crossevt.currentTarget)? crossevt.currentTarget : crossevt.srcElement;

        if (iframeroot)
            IframeResize.resizeIframe(iframeroot.id);
    }

};

