﻿//
// soft.bko.to main script
// Copyright (C) bko 2009
//

IsStartMenu = false;
zOrder = new Array(20);
pTaskBar = new Array(20);
pWallPaper = new Array("blank.gif","sheep.jpg","windows_2000.jpg","windows_vista.jpg",
	"kobe.jpg","radiata.jpg","sunset.jpg","turu.jpg");

DEBUG = false;
if (document.location.protocol == "file:") DEBUG = true;

function OnBodyLoad() {
	if (ie5 >= 5.5 || ff2 || op9 || sf3) {
	}
	else {
		document.location.href = "shutdown.html";
		return;
	}
	var mode = getScriptmode();
	window.status = mode;
	parseCookie();
	setWallPaper(null);
	OnClock();
	setInterval("OnClock();",5000);

//	if (ie4 && (! ie7)) {
//		var div1 = elm("thecontent");
//		if (div1 != null) div1.position = "static";
//		var div2 = elm("statusbar");
//		if (div2 != null) div2.position = "static";
//	}

	var i;
	var zo = myCookie["zorder"] ? myCookie["zorder"].split("+") : new Array(0);
	var tb = myCookie["taskbar"] ? myCookie["taskbar"].split("+") : new Array(0);
	for (i = 0; i < zo.length; ++i) {
		if (zo[i] == "undefined") continue;	// ～IE6
		zOrder[i] = zo[i];
		var myid_div = elm(zOrder[i]);
		myid_div.visibility = VISIBLE;
	}
	for (i = 0; i < tb.length; ++i) {
		if (tb[0] == "undefined") continue;	// ～IE6
		pTaskBar[i] = tb[i];
		if (i <= 4) {
			var taskbar_id0 = "tb" + i.toString() + "0";
			var taskbar_id1 = "tb" + i.toString() + "1";
			var taskbar_obj0 = elmobj(taskbar_id0);
			var taskbar_obj1 = elmobj(taskbar_id1);
			var myid_obj = elmobj(pTaskBar[i]);
			taskbar_obj0.innerHTML = myid_obj.title;
			taskbar_obj1.innerHTML = myid_obj.title;
		}
	}
	setFocus();

	if (typeof OnLoad == "function") OnLoad();
	resize_to_fit();
}

function OnBodyUnload() {
	if (typeof OnUnload == "function") OnUnload();

	var i;
	var zo = "";
	var tb = "";
	for (i = 0; i <= 19; ++i) {
		if (zOrder[i] == null) break;
		if (zo != "") zo = zo + "+";
		zo = zo + zOrder[i];
	}
	for (i = 0; i <= 19; ++i) {
		if (pTaskBar[i] == null) break;
		if (tb != "") tb = tb + "+";
		tb = tb + pTaskBar[i];
	}
	if (zo == "") setCookie("zorder",null,null,null,null);
	else setCookie("zorder",zo,null,null,null);
	if (tb == "") setCookie("taskbar",null,null,null,null);
	else setCookie("taskbar",tb,null,null,null);
}

function setWallPaper(n) {
	if (n == null) {
		n = myCookie["wallpaper"] ? myCookie["wallpaper"] : 1;
	}
	var path = "/wallpaper/";
	if (DEBUG) path = "file:///D:/My%20Sites/soft2/wallpaper/";
	document.images["wall_paper"].src = path + pWallPaper[n];
}

function resize_to_fit() {
	// maybe bug of IE6
	if (ie4 && (! ie7)) {
		var sx = GetFrameXSize();
		var sy = GetFrameYSize();
		dt_div = elm("desktop");
		dt_div.width = sx;
		dt_div.height = sy;
		var wpi = document.images["wall_paper"];
		wpi.width = sx;
		wpi.height = sy;

		var sx = GetFrameXSize();
		var sy = GetFrameYSize();
		var div1 = elm("thecontent");
		if (div1 != null) {
			var div0 = elmobj("thecontent").parentNode.style;
			div0.height = inttopx(sy - 30);
			div1.position = "static";
		}
		var div2 = elm("statusbar");
		if (div2 != null) div2.position = "static";
		var div3 = elm("themessage");
		if (div3 != null) {
			var div0 = elmobj("themessage").parentNode.style;
			var w = pxtoint(div0.width) - 10;
			var h = pxtoint(div0.height) - 10;
			if (isNaN(w)) {
				w = Math.round(sx / 2);
				div0.width = inttopx(w + 10);
			}
			if (w < 0) w = 0;
			if (isNaN(h)) {
				h = Math.round(sy * 8 / 10);
				div0.height = inttopx(h + 10);
			}
			if (h < 0) h = 0;
			div3.width = inttopx(w);
			div3.height = inttopx(h);
		}
	}

	if (typeof OnResize == "function") OnResize();
}

function OnClock() {
	var myid_obj = elmobj("clock");
	var dt = new Date();
	var h = dt.getHours();
	var m = dt.getMinutes();
	if (m < 10) m = "0" + m;
	myid_obj.innerHTML = h + ":" + m;
}

function OnPoweroff() {
	document.location.href = "/shutdown.html";
}

function dtProperty(mode) {
	OnClose2("startmenu");
	IsStartMenu = false;
	var dtCMenu_div = elm("dtCMenu");
	if (mode) {
		dtCMenu_div.top = inttopx(window.event.clientY);
		dtCMenu_div.left = inttopx(window.event.clientX);
		dtCMenu_div.visibility = "inherit";
	}
	else  {
		dtCMenu_div.visibility = "hidden";
	}
	return false;
}

function OnStartButton() {
	if (IsStartMenu) {
		OnClose2("startmenu");
		IsStartMenu = false;
	}
	else {
		dtProperty(false);
		OnIconClick2("startmenu");
		IsStartMenu = true;
	}
}

function OnShutdown(mode) {
	if (mode) {
		OnIconClick2("shutdown");
	}
	else {
		OnClose2("shutdown");
	}
	return false;
}

function OnTaskBarClick(n) {
	OnNormalize(pTaskBar[n]);
	OnIconClick(pTaskBar[n]);
}

function OnIconClick(myid) {
	var i,j;

	OnIconClick2(myid);
	for (i = 0; i <= 19; ++i) {
		if (zOrder[i] == myid) break;
	}
	if (i >= 20) {		// New Window
		i = 19;
		for (j = 0; j <= 19; ++j) {
			if (pTaskBar[j] == null) {
				pTaskBar[j] = myid;
				if (j <= 4) {
					var taskbar_id0 = "tb" + j.toString() + "0";
					var taskbar_id1 = "tb" + j.toString() + "1";
					var taskbar_obj0 = elmobj(taskbar_id0);
					var taskbar_obj1 = elmobj(taskbar_id1);
					var myid_obj = elmobj(myid);
					taskbar_obj0.innerHTML = myid_obj.title;
					taskbar_obj1.innerHTML = myid_obj.title;
				}
				break;
			}
		}
	}
	else {
		for (j = 0; j <= 19; ++j) {
			if (pTaskBar[j] == myid) break;
		}
	}
	for ( ; i >0; --i) {
		zOrder[i] = zOrder[i-1];
	}
	zOrder[0] = myid;
	setFocus(j);
}

function OnIconClick2(myid) {
	var myid_div = elm(myid);
	myid_div.visibility = "inherit";
}

function setFocus(n) {
	var i;

	for (i = 0; i <= 19; ++i) {
		if (zOrder[i] != null) {
			var win_div = elm(zOrder[i]);
			win_div.zIndex = 30 - i;
			win_div.visibility = VISIBLE;
		}
	}
	for (i = 0; i <= 4; ++i) {
		var taskbar_id0 = "tb" + i.toString() + "0";
		var taskbar_id1 = "tb" + i.toString() + "1";
		var tb0_div = elm(taskbar_id0);
		var tb1_div = elm(taskbar_id1);
		if (pTaskBar[i] == null ) {
			tb0_div.visibility = "hidden";
			tb1_div.visibility = "hidden";
		}
		else if (i == n) {
			tb0_div.visibility = "hidden";
			tb1_div.visibility = "inherit";
		}
		else {
			tb0_div.visibility = "inherit";
			tb1_div.visibility = "hidden";
		}
	}
}

function OnMinimize(myid) {
	var myid_div = elm(myid);
	myid_div.display = "none";
}

function OnNormalize(myid) {
	var myid_div = elm(myid);
	myid_div.display = "block";
}

function OnMenu(n) {
	var myid_div = elm("menu" + n);
	myid_div.visibility = "inherit";
	setTimeout("OnCloseMenu(" + n + ")",15000);
}

function OnCloseMenu(n) {
	var myid_div = elm("menu" + n);
	myid_div.visibility = "hidden";
}

function OnClose(myid) {
	var i;

	OnClose2(myid);
	for (i = 0; i <= 19; ++i) {
		if (zOrder[i] == myid) {
			for (var j = i; j < 19; ++j) {
				zOrder[j] = zOrder[j+1];
			}
			zOrder[19] = null;
			break;
		}
	}
	for (i = 0; i <= 19; ++i) {
		if (pTaskBar[i] == myid) {
			for (var j = i; j < 19; ++j) {
				pTaskBar[j] = pTaskBar[j+1];
				if (j <= 4) {
					var taskbar_id0 = "tb" + j.toString() + "0";
					var taskbar_id1 = "tb" + j.toString() + "1";
					var taskbar_obj0 = elmobj(taskbar_id0);
					var taskbar_obj1 = elmobj(taskbar_id1);
					if (pTaskBar[j] == null) {
						taskbar_obj0.innerHTML = "&nbsp;";
						taskbar_obj1.innerHTML = "&nbsp;";
					}
					else {
						var myid_obj = elmobj(pTaskBar[j]);
						taskbar_obj0.innerHTML = myid_obj.title;
						taskbar_obj1.innerHTML = myid_obj.title;
					}
				}
			}
			pTaskBar[19] = null;
			break;
		}
	}
	i = 0;
	if (zOrder[0] != null) {
		for (i = 0; i <=19; ++i) {
			if (pTaskBar[i] == zOrder[0]) break;
		}
	}
	setFocus(i);
}

function OnClose2(myid) {
	var myid_div = elm(myid);
	myid_div.visibility = "hidden";
	if (myid == "startmenu") {
		OnClose2("shutdown");
	}
}

function OnExit(myid) {
	for (i = 0; i <= 19; ++i) {
		if (zOrder[i] == myid) {
			for (var j = i; j < 19; ++j) {
				zOrder[j] = zOrder[j+1];
			}
			zOrder[19] = null;
			break;
		}
	}
	for (i = 0; i <= 19; ++i) {
		if (pTaskBar[i] == myid) {
			for (var j = i; j < 19; ++j) {
				pTaskBar[j] = pTaskBar[j+1];
			}
			pTaskBar[19] = null;
			break;
		}
	}
}

function getScriptmode() {
	var mode = "Script is running on ";

	if (ie7) mode = mode + "IE7";
	else if (ie6) mode = mode + "IE6";
	else if (ie5) mode = mode + "IE5";
	else if (ff3) mode = mode + "Firefox3";
	else if (ff2) mode = mode + "Firefox2";
	else if (ff1) mode = mode + "Firefox1";
	else if (op9 >= 9.5) mode = mode + "Opera9.5";
	else if (op9) mode = mode + "Opera9.0";
	else if (sf3) mode = mode + "Safari3";
	else return "";
	mode = mode + " mode";
	return mode;
}
