mirror of https://github.com/cppla/ServerStatus
				
				
				
			
		
			
				
	
	
		
			413 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			JavaScript
		
	
	
			
		
		
	
	
			413 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			JavaScript
		
	
	
// serverstatus.js
 | 
						||
var error = 0;
 | 
						||
var d = 0;
 | 
						||
var server_status = new Array();
 | 
						||
 | 
						||
function timeSince(date) {
 | 
						||
	if(date == 0)
 | 
						||
		return "从未.";
 | 
						||
 | 
						||
	var seconds = Math.floor((new Date() - date) / 1000);
 | 
						||
	var interval = Math.floor(seconds / 31536000);
 | 
						||
 | 
						||
	if (interval > 1)
 | 
						||
		return interval + " 年前.";
 | 
						||
	interval = Math.floor(seconds / 2592000);
 | 
						||
	if (interval > 1)
 | 
						||
		return interval + " 月前.";
 | 
						||
	interval = Math.floor(seconds / 86400);
 | 
						||
	if (interval > 1)
 | 
						||
		return interval + " 日前.";
 | 
						||
	interval = Math.floor(seconds / 3600);
 | 
						||
	if (interval > 1)
 | 
						||
		return interval + " 小时前.";
 | 
						||
	interval = Math.floor(seconds / 60);
 | 
						||
	if (interval > 1)
 | 
						||
		return interval + " 分钟前.";
 | 
						||
	/*if(Math.floor(seconds) >= 5)
 | 
						||
		return Math.floor(seconds) + " seconds";*/
 | 
						||
	else
 | 
						||
		return "几秒前.";
 | 
						||
}
 | 
						||
 | 
						||
function bytesToSize(bytes, precision, si)
 | 
						||
{
 | 
						||
	var ret;
 | 
						||
	si = typeof si !== 'undefined' ? si : 0;
 | 
						||
	if(si != 0) {
 | 
						||
		var kilobyte = 1000;
 | 
						||
		var megabyte = kilobyte * 1000;
 | 
						||
		var gigabyte = megabyte * 1000;
 | 
						||
		var terabyte = gigabyte * 1000;
 | 
						||
	} else {
 | 
						||
		var kilobyte = 1024;
 | 
						||
		var megabyte = kilobyte * 1024;
 | 
						||
		var gigabyte = megabyte * 1024;
 | 
						||
		var terabyte = gigabyte * 1024;
 | 
						||
	}
 | 
						||
 | 
						||
	if ((bytes >= 0) && (bytes < kilobyte)) {
 | 
						||
		return bytes + ' B';
 | 
						||
 | 
						||
	} else if ((bytes >= kilobyte) && (bytes < megabyte)) {
 | 
						||
		ret = (bytes / kilobyte).toFixed(precision) + ' K';
 | 
						||
 | 
						||
	} else if ((bytes >= megabyte) && (bytes < gigabyte)) {
 | 
						||
		ret = (bytes / megabyte).toFixed(precision) + ' M';
 | 
						||
 | 
						||
	} else if ((bytes >= gigabyte) && (bytes < terabyte)) {
 | 
						||
		ret = (bytes / gigabyte).toFixed(precision) + ' G';
 | 
						||
 | 
						||
	} else if (bytes >= terabyte) {
 | 
						||
		ret = (bytes / terabyte).toFixed(precision) + ' T';
 | 
						||
 | 
						||
	} else {
 | 
						||
		return bytes + ' B';
 | 
						||
	}
 | 
						||
	if(si != 0) {
 | 
						||
		return ret + 'B';
 | 
						||
	} else {
 | 
						||
		return ret + 'iB';
 | 
						||
	}
 | 
						||
}
 | 
						||
 | 
						||
function uptime() {
 | 
						||
	$.getJSON("json/stats.json", function(result) {
 | 
						||
		$("#loading-notice").remove();
 | 
						||
		if(result.reload)
 | 
						||
			setTimeout(function() { location.reload(true) }, 1000);
 | 
						||
 | 
						||
		for (var i = 0; i < result.servers.length; i++) {
 | 
						||
			var TableRow = $("#servers tr#r" + i);
 | 
						||
			var ExpandRow = $("#servers #rt" + i);
 | 
						||
			var hack; // fuck CSS for making me do this
 | 
						||
			if(i%2) hack="odd"; else hack="even";
 | 
						||
			if (!TableRow.length) {
 | 
						||
				$("#servers").append(
 | 
						||
					"<tr id=\"r" + i + "\" data-toggle=\"collapse\" data-target=\"#rt" + i + "\" class=\"accordion-toggle " + hack + "\">" +
 | 
						||
						"<td id=\"online4\"><div class=\"progress\"><div style=\"width: 100%;\" class=\"progress-bar progress-bar-warning\"><small>加载中</small></div></div></td>" +
 | 
						||
						"<td id=\"ip_status\"><div class=\"progress\"><div style=\"width: 100%;\" class=\"progress-bar progress-bar-warning\"><small>加载中</small></div></div></td>" +
 | 
						||
						"<td id=\"name\">加载中</td>" +
 | 
						||
						"<td id=\"type\">加载中</td>" +
 | 
						||
						"<td id=\"location\">加载中</td>" +
 | 
						||
						"<td id=\"uptime\">加载中</td>" +
 | 
						||
						"<td id=\"load\">加载中</td>" +
 | 
						||
						"<td id=\"network\">加载中</td>" +
 | 
						||
						"<td id=\"traffic\">加载中</td>" +
 | 
						||
						"<td id=\"cpu\"><div class=\"progress progress-striped active\"><div style=\"width: 100%;\" class=\"progress-bar progress-bar-warning\"><small>加载中</small></div></div></td>" +
 | 
						||
						"<td id=\"memory\"><div class=\"progress progress-striped active\"><div style=\"width: 100%;\" class=\"progress-bar progress-bar-warning\"><small>加载中</small></div></div></td>" +
 | 
						||
						"<td id=\"hdd\"><div class=\"progress progress-striped active\"><div style=\"width: 100%;\" class=\"progress-bar progress-bar-warning\"><small>加载中</small></div></div></td>" +
 | 
						||
						"<td id=\"ping\"><div class=\"progress progress-striped active\"><div style=\"width: 100%;\" class=\"progress-bar progress-bar-warning\"><small>加载中</small></div></div></td>" +
 | 
						||
					"</tr>" +
 | 
						||
					"<tr class=\"expandRow " + hack + "\"><td colspan=\"16\"><div class=\"accordian-body collapse\" id=\"rt" + i + "\">" +
 | 
						||
						"<div id=\"expand_mem\">加载中</div>" +
 | 
						||
						"<div id=\"expand_swap\">加载中</div>" +
 | 
						||
						"<div id=\"expand_hdd\">加载中</div>" +
 | 
						||
						"<div id=\"expand_custom\">加载中</div>" +
 | 
						||
					"</div></td></tr>"
 | 
						||
				);
 | 
						||
				TableRow = $("#servers tr#r" + i);
 | 
						||
				ExpandRow = $("#servers #rt" + i);
 | 
						||
				server_status[i] = true;
 | 
						||
			}
 | 
						||
			TableRow = TableRow[0];
 | 
						||
			if(error) {
 | 
						||
				TableRow.setAttribute("data-target", "#rt" + i);
 | 
						||
				server_status[i] = true;
 | 
						||
			}
 | 
						||
 | 
						||
			// Online4
 | 
						||
			if (result.servers[i].online4) {
 | 
						||
				TableRow.children["online4"].children[0].children[0].className = "progress-bar progress-bar-success";
 | 
						||
				TableRow.children["online4"].children[0].children[0].innerHTML = "<small>开启</small>";
 | 
						||
			} else {
 | 
						||
				TableRow.children["online4"].children[0].children[0].className = "progress-bar progress-bar-danger";
 | 
						||
				TableRow.children["online4"].children[0].children[0].innerHTML = "<small>关闭</small>";
 | 
						||
			}
 | 
						||
 | 
						||
			// Online6
 | 
						||
			//if (result.servers[i].online6) {
 | 
						||
			//	TableRow.children["online6"].children[0].children[0].className = "progress-bar progress-bar-success";
 | 
						||
			//	TableRow.children["online6"].children[0].children[0].innerHTML = "<small>开启</small>";
 | 
						||
			//} else {
 | 
						||
			//	TableRow.children["online6"].children[0].children[0].className = "progress-bar progress-bar-danger";
 | 
						||
			//	TableRow.children["online6"].children[0].children[0].innerHTML = "<small>关闭</small>";
 | 
						||
			//}
 | 
						||
 | 
						||
			// Ipstatus
 | 
						||
			if (result.servers[i].ip_status) {
 | 
						||
				TableRow.children["ip_status"].children[0].children[0].className = "progress-bar progress-bar-success";
 | 
						||
				TableRow.children["ip_status"].children[0].children[0].innerHTML = "<small>MH361</small>";
 | 
						||
			} else {
 | 
						||
				TableRow.children["ip_status"].children[0].children[0].className = "progress-bar progress-bar-danger";
 | 
						||
				TableRow.children["ip_status"].children[0].children[0].innerHTML = "<small>MH370</small>";
 | 
						||
			}
 | 
						||
 | 
						||
			// Name
 | 
						||
			TableRow.children["name"].innerHTML = result.servers[i].name;
 | 
						||
 | 
						||
			// Type
 | 
						||
			TableRow.children["type"].innerHTML = result.servers[i].type;
 | 
						||
 | 
						||
			// Location
 | 
						||
			TableRow.children["location"].innerHTML = result.servers[i].location;
 | 
						||
			if (!result.servers[i].online4 && !result.servers[i].online6) {
 | 
						||
				if (server_status[i]) {
 | 
						||
					TableRow.children["uptime"].innerHTML = "–";
 | 
						||
					TableRow.children["load"].innerHTML = "–";
 | 
						||
					TableRow.children["network"].innerHTML = "–";
 | 
						||
					TableRow.children["traffic"].innerHTML = "–";
 | 
						||
					TableRow.children["cpu"].children[0].children[0].className = "progress-bar progress-bar-danger";
 | 
						||
					TableRow.children["cpu"].children[0].children[0].style.width = "100%";
 | 
						||
					TableRow.children["cpu"].children[0].children[0].innerHTML = "<small>关闭</small>";
 | 
						||
					TableRow.children["memory"].children[0].children[0].className = "progress-bar progress-bar-danger";
 | 
						||
					TableRow.children["memory"].children[0].children[0].style.width = "100%";
 | 
						||
					TableRow.children["memory"].children[0].children[0].innerHTML = "<small>关闭</small>";
 | 
						||
					TableRow.children["hdd"].children[0].children[0].className = "progress-bar progress-bar-danger";
 | 
						||
					TableRow.children["hdd"].children[0].children[0].style.width = "100%";
 | 
						||
					TableRow.children["hdd"].children[0].children[0].innerHTML = "<small>关闭</small>";
 | 
						||
					TableRow.children["ping"].children[0].children[0].className = "progress-bar progress-bar-danger";
 | 
						||
					TableRow.children["ping"].children[0].children[0].style.width = "100%";
 | 
						||
					TableRow.children["ping"].children[0].children[0].innerHTML = "<small>关闭</small>";
 | 
						||
					if(ExpandRow.hasClass("in")) {
 | 
						||
						ExpandRow.collapse("hide");
 | 
						||
					}
 | 
						||
					TableRow.setAttribute("data-target", "");
 | 
						||
					server_status[i] = false;
 | 
						||
				}
 | 
						||
			} else {
 | 
						||
				if (!server_status[i]) {
 | 
						||
					TableRow.setAttribute("data-target", "#rt" + i);
 | 
						||
					server_status[i] = true;
 | 
						||
				}
 | 
						||
 | 
						||
				// Uptime
 | 
						||
				TableRow.children["uptime"].innerHTML = result.servers[i].uptime;
 | 
						||
 | 
						||
				// Load
 | 
						||
				if(result.servers[i].load == -1) {
 | 
						||
					TableRow.children["load"].innerHTML = "–";
 | 
						||
				} else {
 | 
						||
				    var loadstr = ""
 | 
						||
				    loadstr += result.servers[i].load_1.toFixed(2);
 | 
						||
				    loadstr += " | "
 | 
						||
				    loadstr += result.servers[i].load_5.toFixed(2);
 | 
						||
				    loadstr += " | "
 | 
						||
				    loadstr += result.servers[i].load_15.toFixed(2);
 | 
						||
					TableRow.children["load"].innerHTML = loadstr
 | 
						||
				}
 | 
						||
 | 
						||
				// Network
 | 
						||
				var netstr = "";
 | 
						||
				if(result.servers[i].network_rx < 1000)
 | 
						||
					netstr += result.servers[i].network_rx.toFixed(0) + "B";
 | 
						||
				else if(result.servers[i].network_rx < 1000*1000)
 | 
						||
					netstr += (result.servers[i].network_rx/1000).toFixed(0) + "K";
 | 
						||
				else
 | 
						||
					netstr += (result.servers[i].network_rx/1000/1000).toFixed(1) + "M";
 | 
						||
				netstr += " | "
 | 
						||
				if(result.servers[i].network_tx < 1000)
 | 
						||
					netstr += result.servers[i].network_tx.toFixed(0) + "B";
 | 
						||
				else if(result.servers[i].network_tx < 1000*1000)
 | 
						||
					netstr += (result.servers[i].network_tx/1000).toFixed(0) + "K";
 | 
						||
				else
 | 
						||
					netstr += (result.servers[i].network_tx/1000/1000).toFixed(1) + "M";
 | 
						||
				TableRow.children["network"].innerHTML = netstr;
 | 
						||
 | 
						||
				//Traffic
 | 
						||
				var trafficstr = "";
 | 
						||
				if(result.servers[i].network_in < 1024)
 | 
						||
					trafficstr += result.servers[i].network_in.toFixed(0) + "B";
 | 
						||
				else if(result.servers[i].network_in < 1024*1024)
 | 
						||
					trafficstr += (result.servers[i].network_in/1024).toFixed(0) + "K";
 | 
						||
				else if(result.servers[i].network_in < 1024*1024*1024)
 | 
						||
					trafficstr += (result.servers[i].network_in/1024/1024).toFixed(1) + "M";
 | 
						||
				else
 | 
						||
					trafficstr += (result.servers[i].network_in/1024/1024/1024).toFixed(2) + "G";
 | 
						||
				trafficstr += " | "
 | 
						||
				if(result.servers[i].network_out < 1024)
 | 
						||
					trafficstr += result.servers[i].network_out.toFixed(0) + "B";
 | 
						||
				else if(result.servers[i].network_out < 1024*1024)
 | 
						||
					trafficstr += (result.servers[i].network_out/1024).toFixed(0) + "K";
 | 
						||
				else if(result.servers[i].network_out < 1024*1024*1024)
 | 
						||
					trafficstr += (result.servers[i].network_out/1024/1024).toFixed(1) + "M";
 | 
						||
				else if(result.servers[i].network_out < 1024*1024*1024*1024)
 | 
						||
				    trafficstr += (result.servers[i].network_out/1024/1024/1024).toFixed(2) + "G";
 | 
						||
				else
 | 
						||
					trafficstr += (result.servers[i].network_out/1024/1024/1024/1024).toFixed(2) + "T";
 | 
						||
				TableRow.children["traffic"].innerHTML = trafficstr;
 | 
						||
 | 
						||
				// CPU
 | 
						||
				if (result.servers[i].cpu >= 90)
 | 
						||
					TableRow.children["cpu"].children[0].children[0].className = "progress-bar progress-bar-danger";
 | 
						||
				else if (result.servers[i].cpu >= 80)
 | 
						||
					TableRow.children["cpu"].children[0].children[0].className = "progress-bar progress-bar-warning";
 | 
						||
				else
 | 
						||
					TableRow.children["cpu"].children[0].children[0].className = "progress-bar progress-bar-success";
 | 
						||
				TableRow.children["cpu"].children[0].children[0].style.width = result.servers[i].cpu + "%";
 | 
						||
				TableRow.children["cpu"].children[0].children[0].innerHTML = result.servers[i].cpu + "%";
 | 
						||
 | 
						||
				// Memory
 | 
						||
				var Mem = ((result.servers[i].memory_used/result.servers[i].memory_total)*100.0).toFixed(0);
 | 
						||
				if (Mem >= 90)
 | 
						||
					TableRow.children["memory"].children[0].children[0].className = "progress-bar progress-bar-danger";
 | 
						||
				else if (Mem >= 80)
 | 
						||
					TableRow.children["memory"].children[0].children[0].className = "progress-bar progress-bar-warning";
 | 
						||
				else
 | 
						||
					TableRow.children["memory"].children[0].children[0].className = "progress-bar progress-bar-success";
 | 
						||
				TableRow.children["memory"].children[0].children[0].style.width = Mem + "%";
 | 
						||
				TableRow.children["memory"].children[0].children[0].innerHTML = Mem + "%";
 | 
						||
				ExpandRow[0].children["expand_mem"].innerHTML = "内存: " + bytesToSize(result.servers[i].memory_used*1024, 2) + " / " + bytesToSize(result.servers[i].memory_total*1024, 2);
 | 
						||
				// Swap
 | 
						||
				ExpandRow[0].children["expand_swap"].innerHTML = "交换分区: " + bytesToSize(result.servers[i].swap_used*1024, 2) + " / " + bytesToSize(result.servers[i].swap_total*1024, 2);
 | 
						||
 | 
						||
				// HDD
 | 
						||
				var HDD = ((result.servers[i].hdd_used/result.servers[i].hdd_total)*100.0).toFixed(0);
 | 
						||
				if (HDD >= 90)
 | 
						||
					TableRow.children["hdd"].children[0].children[0].className = "progress-bar progress-bar-danger";
 | 
						||
				else if (HDD >= 80)
 | 
						||
					TableRow.children["hdd"].children[0].children[0].className = "progress-bar progress-bar-warning";
 | 
						||
				else
 | 
						||
					TableRow.children["hdd"].children[0].children[0].className = "progress-bar progress-bar-success";
 | 
						||
				TableRow.children["hdd"].children[0].children[0].style.width = HDD + "%";
 | 
						||
				TableRow.children["hdd"].children[0].children[0].innerHTML = HDD + "%";
 | 
						||
				ExpandRow[0].children["expand_hdd"].innerHTML = "硬盘: " + bytesToSize(result.servers[i].hdd_used*1024*1024, 2) + " / " + bytesToSize(result.servers[i].hdd_total*1024*1024, 2);
 | 
						||
 | 
						||
                // ping
 | 
						||
                var PING_10010 = result.servers[i].ping_10010.toFixed(0);
 | 
						||
                var PING_189 = result.servers[i].ping_189.toFixed(0);
 | 
						||
                var PING_10086 = result.servers[i].ping_10086.toFixed(0);
 | 
						||
                if (PING_10010 >= 10 || PING_189 >= 10 || PING_10086 >= 10)
 | 
						||
                    TableRow.children["ping"].children[0].children[0].className = "progress-bar progress-bar-danger";
 | 
						||
                else
 | 
						||
                    TableRow.children["ping"].children[0].children[0].className = "progress-bar progress-bar-success";
 | 
						||
				TableRow.children["ping"].children[0].children[0].innerHTML = PING_10010 + "%|" + PING_189 + "%|" + PING_10086 + "%";
 | 
						||
 | 
						||
				// Custom
 | 
						||
				if (result.servers[i].custom) {
 | 
						||
					ExpandRow[0].children["expand_custom"].innerHTML = result.servers[i].custom
 | 
						||
				} else {
 | 
						||
					ExpandRow[0].children["expand_custom"].innerHTML = ""
 | 
						||
				}
 | 
						||
			}
 | 
						||
		};
 | 
						||
 | 
						||
		d = new Date(result.updated*1000);
 | 
						||
		error = 0;
 | 
						||
	}).fail(function(update_error) {
 | 
						||
		if (!error) {
 | 
						||
			$("#servers > tr.accordion-toggle").each(function(i) {
 | 
						||
				var TableRow = $("#servers tr#r" + i)[0];
 | 
						||
				var ExpandRow = $("#servers #rt" + i);
 | 
						||
				TableRow.children["online4"].children[0].children[0].className = "progress-bar progress-bar-error";
 | 
						||
				TableRow.children["online4"].children[0].children[0].innerHTML = "<small>错误</small>";
 | 
						||
				//TableRow.children["online6"].children[0].children[0].className = "progress-bar progress-bar-error";
 | 
						||
				//TableRow.children["online6"].children[0].children[0].innerHTML = "<small>错误</small>";
 | 
						||
				TableRow.children["ip_status"].children[0].children[0].className = "progress-bar progress-bar-error";
 | 
						||
				TableRow.children["ip_status"].children[0].children[0].innerHTML = "<small>错误</small>";
 | 
						||
				TableRow.children["uptime"].innerHTML = "<div class=\"progress progress-striped active\"><div style=\"width: 100%;\" class=\"progress-bar progress-bar-error\"><small>错误</small></div></div>";
 | 
						||
				TableRow.children["load"].innerHTML = "<div class=\"progress progress-striped active\"><div style=\"width: 100%;\" class=\"progress-bar progress-bar-error\"><small>错误</small></div></div>";
 | 
						||
				TableRow.children["network"].innerHTML = "<div class=\"progress progress-striped active\"><div style=\"width: 100%;\" class=\"progress-bar progress-bar-error\"><small>错误</small></div></div>";
 | 
						||
				TableRow.children["traffic"].innerHTML = "<div class=\"progress progress-striped active\"><div style=\"width: 100%;\" class=\"progress-bar progress-bar-error\"><small>错误</small></div></div>";
 | 
						||
				TableRow.children["cpu"].children[0].children[0].className = "progress-bar progress-bar-error";
 | 
						||
				TableRow.children["cpu"].children[0].children[0].style.width = "100%";
 | 
						||
				TableRow.children["cpu"].children[0].children[0].innerHTML = "<small>错误</small>";
 | 
						||
				TableRow.children["memory"].children[0].children[0].className = "progress-bar progress-bar-error";
 | 
						||
				TableRow.children["memory"].children[0].children[0].style.width = "100%";
 | 
						||
				TableRow.children["memory"].children[0].children[0].innerHTML = "<small>错误</small>";
 | 
						||
				TableRow.children["hdd"].children[0].children[0].className = "progress-bar progress-bar-error";
 | 
						||
				TableRow.children["hdd"].children[0].children[0].style.width = "100%";
 | 
						||
				TableRow.children["hdd"].children[0].children[0].innerHTML = "<small>错误</small>";
 | 
						||
				TableRow.children["ping"].children[0].children[0].className = "progress-bar progress-bar-error";
 | 
						||
				TableRow.children["ping"].children[0].children[0].style.width = "100%";
 | 
						||
				TableRow.children["ping"].children[0].children[0].innerHTML = "<small>错误</small>";
 | 
						||
				if(ExpandRow.hasClass("in")) {
 | 
						||
					ExpandRow.collapse("hide");
 | 
						||
				}
 | 
						||
				TableRow.setAttribute("data-target", "");
 | 
						||
				server_status[i] = false;
 | 
						||
			});
 | 
						||
		}
 | 
						||
		error = 1;
 | 
						||
		$("#updated").html("更新错误.");
 | 
						||
	});
 | 
						||
}
 | 
						||
 | 
						||
function updateTime() {
 | 
						||
	if (!error)
 | 
						||
		$("#updated").html("最后更新: " + timeSince(d));
 | 
						||
}
 | 
						||
 | 
						||
uptime();
 | 
						||
updateTime();
 | 
						||
setInterval(uptime, 2000);
 | 
						||
setInterval(updateTime, 500);
 | 
						||
 | 
						||
 | 
						||
// styleswitcher.js
 | 
						||
function setActiveStyleSheet(title) {
 | 
						||
	var i, a, main;
 | 
						||
	for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
 | 
						||
		if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {
 | 
						||
			a.disabled = true;
 | 
						||
			if(a.getAttribute("title") == title) a.disabled = false;
 | 
						||
		}
 | 
						||
	}
 | 
						||
}
 | 
						||
 | 
						||
function getActiveStyleSheet() {
 | 
						||
	var i, a;
 | 
						||
	for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
 | 
						||
		if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title") && !a.disabled)
 | 
						||
			return a.getAttribute("title");
 | 
						||
	}
 | 
						||
	return null;
 | 
						||
}
 | 
						||
 | 
						||
function getPreferredStyleSheet() {
 | 
						||
	var i, a;
 | 
						||
	for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
 | 
						||
		if(a.getAttribute("rel").indexOf("style") != -1	&& a.getAttribute("rel").indexOf("alt") == -1 && a.getAttribute("title"))
 | 
						||
			return a.getAttribute("title");
 | 
						||
	}
 | 
						||
return null;
 | 
						||
}
 | 
						||
 | 
						||
function createCookie(name,value,days) {
 | 
						||
	if (days) {
 | 
						||
		var date = new Date();
 | 
						||
		date.setTime(date.getTime()+(days*24*60*60*1000));
 | 
						||
		var expires = "; expires="+date.toGMTString();
 | 
						||
	}
 | 
						||
	else expires = "";
 | 
						||
	document.cookie = name+"="+value+expires+"; path=/";
 | 
						||
}
 | 
						||
 | 
						||
function readCookie(name) {
 | 
						||
	var nameEQ = name + "=";
 | 
						||
	var ca = document.cookie.split(';');
 | 
						||
	for(var i=0;i < ca.length;i++) {
 | 
						||
		var c = ca[i];
 | 
						||
		while (c.charAt(0)==' ')
 | 
						||
			c = c.substring(1,c.length);
 | 
						||
		if (c.indexOf(nameEQ) == 0)
 | 
						||
			return c.substring(nameEQ.length,c.length);
 | 
						||
	}
 | 
						||
	return null;
 | 
						||
}
 | 
						||
 | 
						||
window.onload = function(e) {
 | 
						||
	var cookie = readCookie("style");
 | 
						||
	var title = cookie ? cookie : getPreferredStyleSheet();
 | 
						||
	setActiveStyleSheet(title);
 | 
						||
}
 | 
						||
 | 
						||
window.onunload = function(e) {
 | 
						||
	var title = getActiveStyleSheet();
 | 
						||
	createCookie("style", title, 365);
 | 
						||
}
 | 
						||
 | 
						||
var cookie = readCookie("style");
 | 
						||
var title = cookie ? cookie : getPreferredStyleSheet();
 | 
						||
setActiveStyleSheet(title);
 |