// load iframe and resize it
// based on great hints from Robert Avilov
var iframe_id_cache = Array();
function iframe_id(name) {
if (! iframe_id_cache[name]) {
iframe_id_cache[name] = self.document.getElementById(name);
}
return iframe_id_cache[name];
}
function iframe_doc(name) {
if (iframe_id(name).contentDocument) return iframe_id(name).contentDocument;
if (iframe_id(name).contentWindow) {
try {
return iframe_id(name).contentWindow.document;
} catch (e) {};
}
if (iframe_id(name).document) return iframe_id(name).document;
return null;
}
function iframe_height(name) {
var doc = iframe_doc(name);
if (doc.body) {
var h = -1;
var h1 = -1;
if (doc.body.scrollHeight) {
h1 = parseInt(doc.body.scrollHeight) || -1;
//alert(name+" scrollHeight "+h1);
if (h1 > h) h = h1;
}
if (doc.body.clientHeight) {
h1 = parseInt(doc.body.clientHeight) || -1;
//alert(name+" clientHeight "+h1);
if (h1 > h) h = h1;
}
/*
var elm = document.getElementById(name);
if (elm) {
elm.style.height = 'auto';
h1 = elm.offsetHeight;
alert(name+" offsetHeight "+h1);
if (h1 > h) h = h1;
}
*/
return h + 5;
}
return 50;
}
function iframe_resize(name) {
var el=iframe_id(name);
if (! el || ! el.src) return;
el.style.height = String(iframe_height(name)+'px');
// hide wait message
var w_el = iframe_id(name.replace(/^i/,"w"));
if (w_el) w_el.style.display = 'none';
}
function iframe_load(name,url) {
if (! name || ! url) return false;
var el=iframe_id(name);
// is there src, and is src same?
if (el.src) {
var old_src = el.src;
// remove query
var q = el.src.indexOf("?");
if (q > 0) old_src = old_src.substr(0,q);
// now compare just last parts
old_src = old_src.substr(old_src.length - url.length);
//alert(old_src+" == "+url+" q="+q);
if (old_src == url) return false;
}
// if iframe name if i_something, show waiting message called w_something
var w_el = iframe_id(name.replace(/^i/,"w"));
if (w_el) w_el.style.display = '';
if (location.search) url += location.search;
el.style.height = '0px';
el.src = url;
return false;
}