//================================================
// mtnav.js
// serial#:20020204003
//================================================
// it expands and collapses the mt admin
// navigation.
//================================================
// TODO:
// - for nav4, only set height of main layer as
// large as is necessary.
// - netscape hand (if possible)
// - do not allow selection of text. i hate that.
// - clean up and comment.
//================================================
var MTNAV_COMPAT = 0;
if ((document.layers || document.getElementById || document.all) && navigator.userAgent.indexOf("Opera") < 0) {
var MTNAV_COMPAT = 1;
var SECTION_BACK = "/uye/ana/section.gif";
var SECTION_BACK_OVER = "/uye/ana/section_over.gif";
var SECTION_BACK_ACTIVE = "/uye/ana/section.gif";
var ITEM_BACK = "/uye/ana/item.gif";
var ITEM_BACK_OVER = "/uye/ana/item_over.gif";
var SECTION_HEIGHT = 20;
var ITEM_HEIGHT = 19;
var MENU_WIDTH = 160;
var SECTION_PADDING_LEFT = 4;
var SECTION_PADDING_TOP = 3;
var ITEM_PADDING_LEFT = 5;
var ITEM_PADDING_TOP = 3;
var SLIDE_LENGTH = 400;
var SLIDE_ZIP = .5;
document.writeln('');
document.writeln('');
var g_oMtNav, g_aSections = new Array();
var g_images = [SECTION_BACK, SECTION_BACK_OVER, SECTION_BACK_ACTIVE, ITEM_BACK, ITEM_BACK_OVER];
var g_activeSection = null;
var g_sliding = false;
var g_isMac = navigator.userAgent.match(/(mac|68k|68000|ppc|powerpc)/i) ? true : false;
var g_useBack = document.layers || g_isMac;
for (var i = 0; i < g_images.length; i++) {
var img = new Image();
img.src = g_images[i];
g_images[i] = img;
}
function initMTNav() {
g_oMtNav = gE("mtnav");
g_aSections = gK(g_oMtNav);
for (var i = 0; i < g_aSections.length; i++) {
initSection(g_aSections[i], i);
}
sW(g_oMtNav, MENU_WIDTH);
sH(g_oMtNav, 600);
sE(g_oMtNav);
}
function initSection(oSection, iSectionNum) {
sX(oSection, 0);
sY(oSection, iSectionNum * SECTION_HEIGHT);
sH(oSection, SECTION_HEIGHT);
sC(oSection, 0, MENU_WIDTH, SECTION_HEIGHT, 0);
var k = gK(oSection);
initSectionHead(k[0]);
for (var i = 1; i < k.length; i++) {
initItem(k[i], i-1);
}
oSection.k = k;
oSection.n = iSectionNum;
}
function initSectionHead(oSectionHead) {
sW(oSectionHead, MENU_WIDTH);
sH(oSectionHead, SECTION_HEIGHT);
sC(oSectionHead, 0, MENU_WIDTH, SECTION_HEIGHT, 0);
if (g_useBack) sB(oSectionHead, SECTION_BACK);
else {
oSectionHead.innerHTML += "";
oSectionHead.getElementsByTagName("DIV")[0].style.zIndex = 2;
}
var k = gK(oSectionHead);
sX(k[0], SECTION_PADDING_LEFT);
sY(k[0], SECTION_PADDING_TOP);
if (l) oSectionHead.captureEvents(Event.MOUSEDOWN);
oSectionHead.onmouseover = sectionHeadMousedOver;
oSectionHead.onmouseout = sectionHeadMousedOut;
oSectionHead.onmousedown = sectionHeadMousedDown;
}
function sectionHeadMousedOver() {
if (gP(this) != g_activeSection) {
if (g_useBack) sB(this, g_images[1].src);
else this.getElementsByTagName("IMG")[0].src = g_images[1].src;
}
}
function sectionHeadMousedOut() {
if (gP(this) != g_activeSection) {
if (g_useBack) sB(this, g_images[0].src);
else this.getElementsByTagName("IMG")[0].src = g_images[0].src;
}
}
function sectionHeadMousedDown() {
toggle(gP(this));
// ozge ekledi.
if (this.getElementsByTagName) {
sectionLink = this.getElementsByTagName("A")[0];
if (sectionLink!=null){
clickLink(sectionLink);
}
}
// ozge ekledi.
}
function toggle(oSection) {
if (!g_sliding) {
// reset
g_openingSection = null;
g_closingSection = null;
// if there's a section open, close it.
if (g_activeSection != null) {
g_closingSection = g_activeSection;
if (g_useBack) sB(g_closingSection, g_images[0].src);
else g_closingSection.getElementsByTagName("IMG")[0].src = g_images[0].src;
}
// if this section wasn't that same one, then open it.
if (g_activeSection != oSection) {
g_openingSection = oSection;
if (g_useBack) sB(g_openingSection, g_images[1].src);
else g_openingSection.getElementsByTagName("IMG")[0].src = g_images[1].src;
}
// fix up the layout.
startSlide();
// note changes.
g_activeSection = oSection != g_activeSection ? oSection : null ;
}
}
function toggleLoad() {
g_oActive = gE("active");
toggle(g_oActive)
}
function startSlide() {
g_sliding = true;
g_slideStartTime = new Date().getTime();
if (g_openingSection != null) {
g_openingSection.xo = Number(gC(g_openingSection)[2]);
g_openingSection.xf = (g_openingSection.k.length - 1) * ITEM_HEIGHT + SECTION_HEIGHT;
g_openingSection.dx = g_openingSection.xf - g_openingSection.xo;
g_openingSection.a = g_openingSection.dx / Math.pow(SLIDE_LENGTH, SLIDE_ZIP);
}
if (g_closingSection != null) {
g_closingSection.xo = Number(gC(g_closingSection)[2]);
g_closingSection.xf = SECTION_HEIGHT;
g_closingSection.dx = g_closingSection.xf - g_closingSection.xo;
g_closingSection.a = g_closingSection.dx / Math.pow(SLIDE_LENGTH, SLIDE_ZIP);
}
g_slideTimerID = window.setInterval("slide()", 10);
}
function slide() {
var elapsed = new Date().getTime() - g_slideStartTime;
if (elapsed >= SLIDE_LENGTH) {
endSlide();
}
else {
if (g_openingSection != null) {
var h = g_openingSection.a * Math.pow(elapsed, SLIDE_ZIP) + g_openingSection.xo;
sH(g_openingSection, h);
sC(g_openingSection, 0, MENU_WIDTH, h, 0);
}
if (g_closingSection != null) {
var h = g_closingSection.a * Math.pow(elapsed, SLIDE_ZIP) + g_closingSection.xo;
sH(g_closingSection, h);
sC(g_closingSection, 0, MENU_WIDTH, h, 0);
}
paint();
}
}
function endSlide() {
window.clearInterval(g_slideTimerID);
if (g_openingSection != null) {
sH(g_openingSection, g_openingSection.xf);
sC(g_openingSection, 0, MENU_WIDTH, g_openingSection.xf, 0);
}
if (g_closingSection != null) {
sH(g_closingSection, g_closingSection.xf);
sC(g_closingSection, 0, MENU_WIDTH, g_closingSection.xf, 0);
}
paint();
g_sliding = false;
}
// well it doesn't actually do that, it re-lays things out based on
// the current heights of the section divs.
// but I like having a function called "paint". It makes me feel cool.
// like a game programmer. yea...
function paint() {
var t = 0;
for (var i = 0; i < g_aSections.length; i++) {
sY(g_aSections[i], t);
t += Number(gC(g_aSections[i])[2]);
}
}
function initItem(oItem, iItemNum) {
sX(oItem, 0);
sY(oItem, iItemNum * ITEM_HEIGHT + SECTION_HEIGHT);
sW(oItem, MENU_WIDTH);
sH(oItem, ITEM_HEIGHT);
if (g_useBack) sB(oItem, ITEM_BACK);
else {
if (oItem.id!="") {
oItem.className = "hover";
oItem.innerHTML += "";
}
else{
oItem.innerHTML += "";
}
oItem.getElementsByTagName("DIV")[0].style.zIndex = 2;
}
var k = gK(oItem);
sX(k[0], ITEM_PADDING_LEFT);
sY(k[0], ITEM_PADDING_TOP);
if (l) oItem.captureEvents(Event.CLICK);
oItem.onmouseover = itemMousedOver;
oItem.onmouseout = itemMousedOut;
oItem.onclick = itemClicked;
}
function itemMousedOver() {
if (this.id=="") {
this.className = "hover";
if (g_useBack) sB(this, g_images[4].src);
else this.getElementsByTagName("IMG")[0].src = g_images[4].src;
}
}
function itemMousedOut() {
if (this.id=="") {
this.className = "";
if (g_useBack) sB(this, g_images[3].src);
else this.getElementsByTagName("IMG")[0].src = g_images[3].src;
}
}
function itemClicked() {
var l;
if (document.layers) {
l = this.layers[0].document.links[0];
}
else if (this.getElementsByTagName) {
l = this.getElementsByTagName("A")[0];
}
else {
l = this.all.tags("A")[0].click();
}
clickLink(l);
}
function clickLink(l) {
var t = l.target;
if (t == "" || t == null) {
var w = window;
}
else if (t == "_self" || t == "_parent" || t == "_top") {
var w = window[t.substring(1, t.length)];
}
else if (window.parent.frames[t]) {
var w = window.parent.frames[t];
}
else {
var w = window.open();
}
w.location.href = l.href;
}
function dbg(o) {
var s = "";
var i = 0;
for (p in o) {
s += p + ":"+ o[p] + "\n";
if (++i % 15 == 0) {
alert(s);
s = "";
}
}
}
}