function setCookie(name, value, path, expire) {
 document.cookie = name + "=" + escape(value)
 + ((expire == null) ? "" : ("; expires=" + expire.toGMTString()))
 + ((path == null) ? "" : ("; path=" + path))
}

function getCookie(Name) {
 var search = Name + "="
 if (document.cookie.length != 0) { // if there are any cookies
    offset = document.cookie.indexOf(search) 
    if (offset != -1) { // if cookie exists 
       offset += search.length 
       // set index of beginning of value
       end = document.cookie.indexOf(";", offset) 
       // set index of end of cookie value
       if (end == -1) 
          end = document.cookie.length
       return unescape(document.cookie.substring(offset, end))
    } 
 }
}              

function hideMenu(side, skipCookie) {
    if (document.getElementById('menu-' + side + '-content') == null)
        return;
    document.getElementById('menu-' + side + '-content').style.display = 'none';

    var column = document.getElementById('menu-' + side + '-column');
    column.className = column.className.replace("menu-" + side + "-visible", 
                                              "menu-" + side + "-hidden");
    document.getElementById('menu-' + side + '-show').style.display = "block";
	document.getElementById('menu-' + side + '-show').style.visibility = "visible";
	if (side=='left') {
		document.getElementById('ml-head').style.display='none';
		document.getElementById('left-menu-top').className='left-menu-top-hidden';
		document.getElementById('junction-l').className='junctionLHidden';
	}
    if (skipCookie != true)
        setCookie(side, "hidden", "/");
}

function showMenu(side) {
    var column = document.getElementById('menu-' + side + '-column');
    if (column == null)
        return;
    column.className = column.className.replace("menu-" + side + "-hidden", 
                                              "menu-" + side + "-visible");
    document.getElementById('menu-' + side + '-show').style.display = "none";
	document.getElementById('menu-' + side + '-show').style.visibility = "hidden";

    document.getElementById('menu-' + side + '-content').style.display = 'block';
	if (side=='left') {
		document.getElementById('ml-head').style.display='block';
		document.getElementById('left-menu-top').className='left-menu-top';
		document.getElementById('junction-l').className='junctionL';
	}
    setCookie(side, "visible", "/");
}

function setMenuVisiblity(leftHtmlState, rightHtmlState) {
  var leftState = getCookie("left");
  if (leftState != null && leftState != leftHtmlState)
      if (leftState == "hidden")
          hideMenu("left", true);
      else
          showMenu("left");

  var rightState = getCookie("right");
  if (rightState != null && rightState != rightHtmlState)
      if (rightState == "hidden")
          hideMenu("right", true);
      else
          showMenu("right");
}

function showFooter(id) {
    var footer    = document.getElementById("footer_" + id);
    var displayer = document.getElementById("footerdisplayer_" + id);
    if (footer == null || displayer == null)
        return;

    footer.style.display = "block";
    displayer.style.display = "none"
}

function hideFooter(id) {
    var footer    = document.getElementById("footer_" + id);
    var displayer = document.getElementById("footerdisplayer_" + id);
    if (footer == null || displayer == null)
        return;

    footer.style.display = "none";
    displayer.style.display = "block"
}

function setPGLogoVisiblity() {
    var pglogo = document.getElementById("pg_logo");
    var maintitle = document.getElementById("main_title");
    var subtitle1 = document.getElementById("subtitle1");
    var subtitle2 = document.getElementById("subtitle2");

    var pglogoX    = getRealX(pglogo);
    var maintitleX = getRealX(maintitle);
    var subtitle1X = getRealX(subtitle1);
    var subtitle2X = getRealX(subtitle2);

    if (pglogoX < (maintitleX + maintitle.offsetWidth) || 
        pglogoX < (subtitle1X + subtitle1.offsetWidth) ||
        pglogoX < (subtitle2X + subtitle2.offsetWidth) )
    {
        pglogo.style.visibility = 'hidden';
        setCookie("pglogo_state", "hidden", "/");
    } else {
        pglogo.style.visibility = 'visible';
        setCookie("pglogo_state", "visible", "/");
    }

}

var pageOffset = 0;

function setTitlePosition() {
    var page = document.getElementById("page");
    var maintitle = document.getElementById("main_title");

    var pageY    =   page.offsetTop;
    var maintitleY = maintitle.offsetTop;

    if (pageY != maintitleY + maintitle.offsetHeight) {
        var newTop = pageY - maintitle.offsetHeight;
        if (newTop < 0 || pageOffset > 0) {
            var wrapper = document.getElementById("pagewrapper");
            pageOffset = -newTop;
            if (pageOffset < 0)
                pageOffset = 0;
            wrapper.style.top  = pageOffset + "px" ;
        } 
        maintitle.style.top = newTop + "px";
    }
}

function getRealX(obj) {
    return obj == null ? 0 : obj.offsetLeft + getRealX(obj.offsetParent);
}

function getRealY(obj) {
    return obj == null ? 0 : obj.offsetTop + getRealY(obj.offsetParent);
}

window.onresize = setTitlePosition;
// window.onresize = setPGLogoVisiblity;

//////////// including pages ///////////////////

var includes = {
	put : function(foo,bar) {this[foo] = bar;},
	get : function(foo) {return this[foo];}
}

function frameResizeToContent(id) {
    var info = includes.get(id); // Array: was_here, width, height, w_unit, h_unit, set_base
    var firstTime = false;
    if (info == null || info == undefined) {
        info = new Array(false, 100, 0, "%", "px", 0); 
    }
    
    try {
        var fr = document.getElementById(id);
        var body = fr.contentWindow.document.body;
        var view = fr.contentWindow; // no scrolMax(X|Y) in IE !!!

        if (body.offsetWidth == 0) {
            setTimeout('frameResizeToContent("'+id+'")', 1000);
            return;
        }

//        alert("scrH="+body.scrollHeight + "; clientH=" + fr.clientHeight);

        var resizeX = -1, resizeY = -1;

        if (body.scrollWidth > fr.offsetWidth) {
            resizeX = body.scrollWidth + 20;
            fr.style.width  = ( body.scrollWidth + 20 ) + "px";
        } else if (body.scrollWidth < fr.offsetParent.offsetWidth - 22)
            fr.style.width = "100%";

        if (body.scrollHeight != fr.offsetHeight) {
            resizeY = body.scrollHeight + 20;
            fr.style.height = ( body.scrollHeight + 20 ) + "px";
            //fr.style.height = body.scrollHeight + "px";
        }
/*
        if (resizeX != -1)
            fr.style.width  = resizeX + "px";
        if (resizeY != -1)
            fr.style.height = resizeY + "px";
*/          

/*
        if (view.scrollMaxX != 0) {
            fr.style.width  = (body.scrollWidth + 15)  + "px";
	    info[1] = body.scrollWidth + 15;
	    info[3] = "px";
	}

        if (view.scrollMaxY != 0 || body.scrollHeight + 15 < info[2]) {
            fr.style.height = 2000; // (body.scrollHeight + 15) + "px";
	    info[2] = body.scrollHeight + 15;
        }
*/	
        var linkList = body.getElementsByTagName("a");
        if (linkList.length > info[5]) {
            for (i = 0; i < linkList.length; i++) {
                linkList[i].setAttribute("target", "_parent");
            }
            info[5] = linkList.length;
        }
	
	info[0] = true;
  } catch(e) {
  }
  
  includes.put(id, info);
  setTimeout('frameResizeToContent("'+id+'")', 1000);
}
