/*************************************************************************
  This code is from Dynamic Web Coding at http://www.dyn-web.com/
  See Terms of Use at http://www.dyn-web.com/bus/terms.html
  regarding conditions under which you may use this code.
  This notice must be retained in the code as is!
*************************************************************************/

function getDocHeight(doc) {
	var docHt = 0, sh, oh;

	if (!doc) return;

	// fails in Firefox
	//if (doc.height) docHt = doc.height;
	
	// Firefox fix.
	if (doc.height || doc.documentElement.clientHeight) docHt = doc.height ? doc.height : doc.documentElement.clientHeight;
	else if (doc.body) {
		if (doc.body.scrollHeight) docHt = sh = doc.body.scrollHeight;
		if (doc.body.offsetHeight) docHt = oh = doc.body.offsetHeight;
		if (sh && oh) docHt = Math.max(sh, oh);
	}
	return docHt;
}

function setIframeHeight(iframeName, suggestedHeight) {
    var iframeWin = window.frames[iframeName];
    var iframeEl = document.getElementById? document.getElementById(iframeName): document.all? document.all[iframeName]: null;
    var iDisplcmnt = document.all ? 0 : 30;
    if (navigator.userAgent.indexOf('Safari') > -1 ) iDisplcmnt = 0;
    if ( iframeEl && iframeWin ) {
        var elHeight = 0;
        //get the heightest element's height to adjust the suggested height
        if(iframeWin.document.body && iframeWin.document.body.hasChildNodes()){
        	for(var i=0;i<iframeWin.document.body.childNodes.length;i++){
    			var elHt = iframeWin.document.body.childNodes[i].offsetHeight;
        		if(elHt && elHeight<elHt){
        			elHeight = elHt;
        		}
        	}
        }
        if(suggestedHeight<elHeight){
        	suggestedHeight=elHeight;
        }
    	var docHt = getDocHeight(iframeWin.document);
        if(suggestedHeight < docHt){//set the height of iframe to a smaller size to ensure the measurement is correct
        	iframeEl.style.height = suggestedHeight + 'px';
        }
        docHt = getDocHeight(iframeWin.document);
        
        if (isNaN(docHt))
            docHt = 0;
            
        if (isNaN(iDisplcmnt))
            iDisplcmnt = 0;        
        
        var heightToUse = (docHt + iDisplcmnt);
        if ( (suggestedHeight != null) && (suggestedHeight > heightToUse) ) {
            heightToUse = suggestedHeight;
        }

        if (heightToUse) iframeEl.style.height = heightToUse + 'px';
    }    
}

function loadIframe(iframeName, url) {
	if ( window.frames[iframeName] ) {
		window.frames[iframeName].location = url;   
		return false;
	}
	else return true;
}
