123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919 |
- var hotkeys_enabled = true;
- function exception_error(location, e) {
- var msg;
- if (e.fileName) {
- var base_fname = e.fileName.substring(e.fileName.lastIndexOf("/") + 1);
-
- msg = "Exception: " + e.name + ", " + e.message +
- "\nFunction: " + location + "()" +
- "\nLocation: " + base_fname + ":" + e.lineNumber;
- } else {
- msg = "Exception: " + e + "\nFunction: " + location + "()";
- }
- alert(msg);
- }
- function disableHotkeys() {
- hotkeys_enabled = false;
- }
- function enableHotkeys() {
- hotkeys_enabled = true;
- }
- function xmlhttp_ready(obj) {
- return obj.readyState == 4 || obj.readyState == 0 || !obj.readyState;
- }
- function notify_callback() {
- var container = document.getElementById('notify');
- if (xmlhttp.readyState == 4) {
- container.innerHTML=xmlhttp.responseText;
- }
- }
- function rpc_notify_callback() {
- var container = document.getElementById('notify');
- if (xmlhttp_rpc.readyState == 4) {
- container.innerHTML=xmlhttp_rpc.responseText;
- }
- }
- function rpc_pnotify_callback() {
- var container = parent.document.getElementById('notify');
- if (xmlhttp_rpc.readyState == 4) {
- container.innerHTML=xmlhttp_rpc.responseText;
- }
- }
- function param_escape(arg) {
- if (typeof encodeURIComponent != 'undefined')
- return encodeURIComponent(arg);
- else
- return escape(arg);
- }
- function param_unescape(arg) {
- if (typeof decodeURIComponent != 'undefined')
- return decodeURIComponent(arg);
- else
- return unescape(arg);
- }
- function delay(gap) {
- var then,now;
- then=new Date().getTime();
- now=then;
- while((now-then)<gap) {
- now=new Date().getTime();
- }
- }
- function p_notify(msg) {
- var n = parent.document.getElementById("notify");
- var nb = parent.document.getElementById("notify_body");
- if (!n || !nb) return;
- if (msg == "") {
- nb.innerHTML = " ";
- // n.style.background = "#ffffff";
- } else {
- nb.innerHTML = msg;
- // n.style.background = "#fffff0";
- }
- }
- function notify(msg) {
- var n = document.getElementById("notify");
- var nb = document.getElementById("notify_body");
- if (!n || !nb) return;
- if (msg == "") {
- nb.innerHTML = " ";
- // n.style.background = "#ffffff";
- } else {
- nb.innerHTML = msg;
- // n.style.background = "#fffff0";
- }
- }
- function printLockingError() {
- notify("Please wait until operation finishes");}
- var seq = "";
- function hotkey_handler(e) {
- var keycode;
- if (!hotkeys_enabled) return;
- if (window.event) {
- keycode = window.event.keyCode;
- } else if (e) {
- keycode = e.which;
- }
- if (keycode == 13 || keycode == 27) {
- seq = "";
- } else {
- seq = seq + "" + keycode;
- }
- if (document.getElementById("piggie")) {
- if (seq.match("807371717369")) {
- seq = "";
- localPiggieFunction(true);
- } else {
- localPiggieFunction(false);
- }
- }
-
- if (typeof localHotkeyHandler != 'undefined') {
- try {
- localHotkeyHandler(keycode);
- } catch (e) {
- exception_error("hotkey_handler", e);
- }
- }
- }
- function cleanSelectedList(element) {
- var content = document.getElementById(element);
- if (!document.getElementById("feedCatHolder")) {
- for (i = 0; i < content.childNodes.length; i++) {
- var child = content.childNodes[i];
- try {
- child.className = child.className.replace("Selected", "");
- } catch (e) {
- //
- }
- }
- } else {
- for (i = 0; i < content.childNodes.length; i++) {
- var child = content.childNodes[i];
- if (child.id == "feedCatHolder") {
- parent.debug(child.id);
- var fcat = child.lastChild;
- for (j = 0; j < fcat.childNodes.length; j++) {
- var feed = fcat.childNodes[j];
- feed.className = feed.className.replace("Selected", "");
- }
- }
- }
- }
- }
- function cleanSelected(element) {
- var content = document.getElementById(element);
- for (i = 0; i < content.rows.length; i++) {
- content.rows[i].className = content.rows[i].className.replace("Selected", "");
- }
- }
- function getVisibleUnreadHeadlines() {
- var content = document.getElementById("headlinesList");
- var rows = new Array();
- for (i = 0; i < content.rows.length; i++) {
- var row_id = content.rows[i].id.replace("RROW-", "");
- if (row_id.length > 0 && content.rows[i].className.match("Unread")) {
- rows.push(row_id);
- }
- }
- return rows;
- }
- function getVisibleHeadlineIds() {
- var content = document.getElementById("headlinesList");
- var rows = new Array();
- for (i = 0; i < content.rows.length; i++) {
- var row_id = content.rows[i].id.replace("RROW-", "");
- if (row_id.length > 0) {
- rows.push(row_id);
- }
- }
- return rows;
- }
- function getFirstVisibleHeadlineId() {
- var rows = getVisibleHeadlineIds();
- return rows[0];
- }
- function getLastVisibleHeadlineId() {
- var rows = getVisibleHeadlineIds();
- return rows[rows.length-1];
- }
- function markHeadline(id) {
- var row = document.getElementById("RROW-" + id);
- if (row) {
- var is_active = false;
-
- if (row.className.match("Active")) {
- is_active = true;
- }
- row.className = row.className.replace("Selected", "");
- row.className = row.className.replace("Active", "");
- row.className = row.className.replace("Insensitive", "");
-
- if (is_active) {
- row.className = row.className = "Active";
- }
-
- var check = document.getElementById("RCHK-" + id);
- if (check) {
- check.checked = true;
- }
- row.className = row.className + "Selected";
-
- }
- }
- function getFeedIds() {
- var content = document.getElementById("feedsList");
- var rows = new Array();
- for (i = 0; i < content.rows.length; i++) {
- var id = content.rows[i].id.replace("FEEDR-", "");
- if (id.length > 0) {
- rows.push(id);
- }
- }
- return rows;
- }
- function setCookie(name, value, lifetime, path, domain, secure) {
-
- var d = false;
-
- if (lifetime) {
- d = new Date();
- d.setTime(lifetime * 1000);
- }
-
- int_setCookie(name, value, d, path, domain, secure);
- }
- function int_setCookie(name, value, expires, path, domain, secure) {
- document.cookie= name + "=" + escape(value) +
- ((expires) ? "; expires=" + expires.toGMTString() : "") +
- ((path) ? "; path=" + path : "") +
- ((domain) ? "; domain=" + domain : "") +
- ((secure) ? "; secure" : "");
- }
- function delCookie(name, path, domain) {
- if (getCookie(name)) {
- document.cookie = name + "=" +
- ((path) ? ";path=" + path : "") +
- ((domain) ? ";domain=" + domain : "" ) +
- ";expires=Thu, 01-Jan-1970 00:00:01 GMT";
- }
- }
-
- function getCookie(name) {
- var dc = document.cookie;
- var prefix = name + "=";
- var begin = dc.indexOf("; " + prefix);
- if (begin == -1) {
- begin = dc.indexOf(prefix);
- if (begin != 0) return null;
- }
- else {
- begin += 2;
- }
- var end = document.cookie.indexOf(";", begin);
- if (end == -1) {
- end = dc.length;
- }
- return unescape(dc.substring(begin + prefix.length, end));
- }
- function disableContainerChildren(id, disable, doc) {
- if (!doc) doc = document;
- var container = doc.getElementById(id);
- for (var i = 0; i < container.childNodes.length; i++) {
- var child = container.childNodes[i];
- try {
- child.disabled = disable;
- } catch (E) {
- }
- if (disable) {
- if (child.className && child.className.match("button")) {
- child.className = "disabledButton";
- }
- } else {
- if (child.className && child.className.match("disabledButton")) {
- child.className = "button";
- }
- }
- }
- }
- function gotoPreferences() {
- document.location.href = "prefs.php";
- }
- function gotoMain() {
- document.location.href = "tt-rss.php";
- }
- function gotoExportOpml() {
- document.location.href = "opml.php?op=Export";
- }
- function getActiveFeedId() {
- return getCookie("ttrss_vf_actfeed");
- }
- function setActiveFeedId(id) {
- return setCookie("ttrss_vf_actfeed", id);
- }
- var xmlhttp_rpc = false;
- /*@cc_on @*/
- /*@if (@_jscript_version >= 5)
- // JScript gives us Conditional compilation, we can cope with old IE versions.
- // and security blocked creation of the objects.
- try {
- xmlhttp_rpc = new ActiveXObject("Msxml2.XMLHTTP");
- } catch (e) {
- try {
- xmlhttp_rpc = new ActiveXObject("Microsoft.XMLHTTP");
- } catch (E) {
- xmlhttp_rpc = false;
- }
- }
- @end @*/
- if (!xmlhttp_rpc && typeof XMLHttpRequest!='undefined') {
- xmlhttp_rpc = new XMLHttpRequest();
- }
- function parse_counters(reply, f_document, title_obj, scheduled_call) {
- try {
- for (var l = 0; l < reply.childNodes.length; l++) {
- if (!reply.childNodes[l] ||
- typeof(reply.childNodes[l].getAttribute) == "undefined") {
- // where did this come from?
- continue;
- }
- var id = reply.childNodes[l].getAttribute("id");
- var t = reply.childNodes[l].getAttribute("type");
- var ctr = reply.childNodes[l].getAttribute("counter");
- var error = reply.childNodes[l].getAttribute("error");
- var has_img = reply.childNodes[l].getAttribute("hi");
- var updated = reply.childNodes[l].getAttribute("updated");
-
- if (id == "global-unread") {
- title_obj.global_unread = ctr;
- title_obj.updateTitle();
- continue;
- }
-
- if (t == "category") {
- var catctr = f_document.getElementById("FCATCTR-" + id);
- if (catctr) {
- catctr.innerHTML = "(" + ctr + " unread)";
- }
- continue;
- }
-
- var feedctr = f_document.getElementById("FEEDCTR-" + id);
- var feedu = f_document.getElementById("FEEDU-" + id);
- var feedr = f_document.getElementById("FEEDR-" + id);
- var feed_img = f_document.getElementById("FIMG-" + id);
- var feedlink = f_document.getElementById("FEEDL-" + id);
- if (updated && feedlink) {
- if (error) {
- feedlink.title = "Error: " + error + " (" + updated + ")";
- } else {
- feedlink.title = "Updated: " + updated;
- }
- }
- if (feedctr && feedu && feedr) {
- if (feedu.innerHTML != ctr && id == getActiveFeedId() && scheduled_call) {
- var hf = title_obj.parent.frames["headlines-frame"];
- hf.location.reload(true);
- }
-
- feedu.innerHTML = ctr;
- if (error) {
- feedr.className = feedr.className.replace("feed", "error");
- } else if (id > 0) {
- feedr.className = feedr.className.replace("error", "feed");
- }
-
- if (ctr > 0) {
- feedctr.className = "odd";
- if (!feedr.className.match("Unread")) {
- var is_selected = feedr.className.match("Selected");
-
- feedr.className = feedr.className.replace("Selected", "");
- feedr.className = feedr.className.replace("Unread", "");
-
- feedr.className = feedr.className + "Unread";
-
- if (is_selected) {
- feedr.className = feedr.className + "Selected";
- }
-
- }
- } else {
- feedctr.className = "invisible";
- feedr.className = feedr.className.replace("Unread", "");
- }
- }
- }
- } catch (e) {
- exception_error("parse_counters", e);
- }
- }
- // this one is called from feedlist context
- // thus title_obj passed to parse_counters is parent (e.g. main ttrss window)
- function all_counters_callback() {
- if (xmlhttp_rpc.readyState == 4) {
- try {
- if (!xmlhttp_rpc.responseXML || !xmlhttp_rpc.responseXML.firstChild) {
- notify("[all_counters_callback] backend did not return valid XML");
- return;
- }
- if (!parent.frames["feeds-frame"]) {
- notify("[all_counters_callback] no parent feeds-frame");
- return;
- }
- var reply = xmlhttp_rpc.responseXML.firstChild;
- var f_document = parent.frames["feeds-frame"].document;
- parse_counters(reply, f_document, parent);
-
- } catch (e) {
- exception_error("all_counters_callback", e);
- }
- }
- }
- function update_all_counters(feed) {
- if (xmlhttp_ready(xmlhttp_rpc)) {
- var query = "backend.php?op=rpc&subop=getAllCounters";
- if (feed > 0) {
- query = query + "&aid=" + feed;
- }
- xmlhttp_rpc.open("GET", query, true);
- xmlhttp_rpc.onreadystatechange=all_counters_callback;
- xmlhttp_rpc.send(null);
- }
- }
- function popupHelp(tid) {
- var w = window.open("backend.php?op=help&tid=" + tid,
- "Popup Help",
- "menubar=no,location=no,resizable=yes,scrollbars=yes,status=no");
- }
- /** * @(#)isNumeric.js * * Copyright (c) 2000 by Sundar Dorai-Raj
- * * @author Sundar Dorai-Raj
- * * Email: sdoraira@vt.edu
- * * This program is free software; you can redistribute it and/or
- * * modify it under the terms of the GNU General Public License
- * * as published by the Free Software Foundation; either version 2
- * * of the License, or (at your option) any later version,
- * * provided that any use properly credits the author.
- * * This program is distributed in the hope that it will be useful,
- * * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * * GNU General Public License for more details at http://www.gnu.org * * */
- var numbers=".0123456789";
- function isNumeric(x) {
- // is x a String or a character?
- if(x.length>1) {
- // remove negative sign
- x=Math.abs(x)+"";
- for(j=0;j<x.length;j++) {
- // call isNumeric recursively for each character
- number=isNumeric(x.substring(j,j+1));
- if(!number) return number;
- }
- return number;
- }
- else {
- // if x is number return true
- if(numbers.indexOf(x)>=0) return true;
- return false;
- }
- }
- function hideOrShowFeeds(doc, hide) {
- if (!doc.styleSheets) return;
- var css_rules = doc.styleSheets[0].cssRules;
- if (!css_rules || !css_rules.length) return;
- for (i = 0; i < css_rules.length; i++) {
- var rule = css_rules[i];
- if (rule.selectorText == "ul.feedList li.feed") {
- if (!hide) {
- rule.style.display = "block";
- } else {
- rule.style.display = "none";
- }
- }
- }
- }
- function selectTableRow(r, do_select) {
- r.className = r.className.replace("Selected", "");
-
- if (do_select) {
- r.className = r.className + "Selected";
- }
- }
- function selectTableRowById(elem_id, check_id, do_select) {
- try {
- var row = document.getElementById(elem_id);
- if (row) {
- selectTableRow(row, do_select);
- }
- var check = document.getElementById(check_id);
- if (check) {
- check.checked = do_select;
- }
- } catch (e) {
- exception_error("selectTableRowById", e);
- }
- }
- function selectTableRowsByIdPrefix(content_id, prefix, check_prefix, do_select,
- classcheck, reset_others) {
- var content = document.getElementById(content_id);
- if (!content) {
- alert("[selectTableRows] Element " + content_id + " not found.");
- return;
- }
- for (i = 0; i < content.rows.length; i++) {
- if (!classcheck || content.rows[i].className.match(classcheck)) {
-
- if (content.rows[i].id.match(prefix)) {
- selectTableRow(content.rows[i], do_select);
-
- var row_id = content.rows[i].id.replace(prefix, "");
- var check = document.getElementById(check_prefix + row_id);
- if (check) {
- check.checked = do_select;
- }
- } else if (reset_others) {
- selectTableRow(content.rows[i], false);
- var row_id = content.rows[i].id.replace(prefix, "");
- var check = document.getElementById(check_prefix + row_id);
- if (check) {
- check.checked = false;
- }
- }
- } else if (reset_others) {
- selectTableRow(content.rows[i], false);
- var row_id = content.rows[i].id.replace(prefix, "");
- var check = document.getElementById(check_prefix + row_id);
- if (check) {
- check.checked = false;
- }
- }
- }
- }
- function getSelectedTableRowIds(content_id, prefix) {
- var content = document.getElementById(content_id);
- if (!content) {
- alert("[getSelectedTableRowIds] Element " + content_id + " not found.");
- return;
- }
- var sel_rows = new Array();
- for (i = 0; i < content.rows.length; i++) {
- if (content.rows[i].id.match(prefix) &&
- content.rows[i].className.match("Selected")) {
-
- var row_id = content.rows[i].id.replace(prefix + "-", "");
- sel_rows.push(row_id);
- }
- }
- return sel_rows;
- }
- function toggleSelectRowById(sender, id) {
- var row = document.getElementById(id);
- if (sender.checked) {
- if (!row.className.match("Selected")) {
- row.className = row.className + "Selected";
- }
- } else {
- if (row.className.match("Selected")) {
- row.className = row.className.replace("Selected", "");
- }
- }
- }
- function toggleSelectListRow(sender) {
- var parent_row = sender.parentNode;
- if (sender.checked) {
- if (!parent_row.className.match("Selected")) {
- parent_row.className = parent_row.className + "Selected";
- }
- } else {
- if (parent_row.className.match("Selected")) {
- parent_row.className = parent_row.className.replace("Selected", "");
- }
- }
- }
- function toggleSelectRow(sender) {
- var parent_row = sender.parentNode.parentNode;
- if (sender.checked) {
- if (!parent_row.className.match("Selected")) {
- parent_row.className = parent_row.className + "Selected";
- }
- } else {
- if (parent_row.className.match("Selected")) {
- parent_row.className = parent_row.className.replace("Selected", "");
- }
- }
- }
- function openExternalUrl(url) {
- var w = window.open(url);
- }
- function getRelativeFeedId(list, id, direction) {
- if (!id) {
- if (direction == "next") {
- for (i = 0; i < list.childNodes.length; i++) {
- var child = list.childNodes[i];
- if (child.id == "feedCatHolder") {
- if (child.lastChild) {
- var cr = getRelativeFeedId(child.firstChild, id, direction);
- if (cr) return cr;
- }
- } else if (child.id.match("FEEDR-")) {
- return child.id.replace('FEEDR-', '');
- }
- }
- }
- // FIXME select last feed doesn't work when only unread feeds are visible
- if (direction == "prev") {
- for (i = list.childNodes.length-1; i >= 0; i--) {
- var child = list.childNodes[i];
- if (child.id == "feedCatHolder") {
- if (child.firstChild) {
- var cr = getRelativeFeedId(child.firstChild, id, direction);
- if (cr) return cr;
- }
- } else if (child.id.match("FEEDR-")) {
-
- if (getCookie("ttrss_vf_hreadf") == 1) {
- if (child.className != "feed") {
- alert(child.className);
- return child.id.replace('FEEDR-', '');
- }
- } else {
- return child.id.replace('FEEDR-', '');
- }
- }
- }
- }
- } else {
-
- var feed = list.ownerDocument.getElementById("FEEDR-" + getActiveFeedId());
-
- if (direction == "next") {
- if (feed.nextSibling) {
- var next_feed = feed.nextSibling;
- while (!next_feed.id && next_feed.nextSibling) {
- next_feed = next_feed.nextSibling;
- }
- if (getCookie("ttrss_vf_hreadf") == 1) {
- while (next_feed && next_feed.className == "feed") {
- next_feed = next_feed.nextSibling;
- }
- }
- if (next_feed && next_feed.id.match("FEEDR-")) {
- return next_feed.id.replace("FEEDR-", "");
- }
- }
- var this_cat = feed.parentNode.parentNode;
-
- if (this_cat && this_cat.nextSibling) {
- while (this_cat = this_cat.nextSibling) {
- if (this_cat.firstChild && this_cat.firstChild.firstChild) {
- var next_feed = this_cat.firstChild.firstChild;
- if (getCookie("ttrss_vf_hreadf") == 1) {
- while (next_feed && next_feed.className == "feed") {
- next_feed = next_feed.nextSibling;
- }
- }
- if (next_feed && next_feed.id.match("FEEDR-")) {
- return next_feed.id.replace("FEEDR-", "");
- }
- }
- }
- }
- } else if (direction == "prev") {
- if (feed.previousSibling) {
-
- var prev_feed = feed.previousSibling;
- if (getCookie("ttrss_vf_hreadf") == 1) {
- while (prev_feed && prev_feed.className == "feed") {
- prev_feed = prev_feed.previousSibling;
- }
- }
- while (!prev_feed.id && prev_feed.previousSibling) {
- prev_feed = prev_feed.previousSibling;
- }
- if (prev_feed && prev_feed.id.match("FEEDR-")) {
- return prev_feed.id.replace("FEEDR-", "");
- }
- }
- var this_cat = feed.parentNode.parentNode;
-
- if (this_cat && this_cat.previousSibling) {
- while (this_cat = this_cat.previousSibling) {
- if (this_cat.lastChild && this_cat.firstChild.lastChild) {
- var prev_feed = this_cat.firstChild.lastChild;
- if (getCookie("ttrss_vf_hreadf") == 1) {
- while (prev_feed && prev_feed.className == "feed") {
- prev_feed = prev_feed.previousSibling;
- }
- }
- if (prev_feed && prev_feed.id.match("FEEDR-")) {
- return prev_feed.id.replace("FEEDR-", "");
- }
- }
- }
- }
- }
- }
- }
- function showBlockElement(id) {
- var elem = document.getElementById(id);
- if (elem) {
- elem.style.display = "block";
- } else {
- alert("[showBlockElement] can't find element with id " + id);
- }
- }
- function hideParentElement(e) {
- e.parentNode.style.display = "none";
- }
- function dropboxSelect(e, v) {
- for (i = 0; i < e.length; i++) {
- if (e[i].value == v) {
- e.selectedIndex = i;
- break;
- }
- }
- }
- // originally stolen from http://www.11tmr.com/11tmr.nsf/d6plinks/MWHE-695L9Z
- // bugfixed just a little bit :-)
- function getURLParam(strParamName){
- var strReturn = "";
- var strHref = window.location.href;
- if (strHref.indexOf("#") == strHref.length-1) {
- strHref = strHref.substring(0, strHref.length-1);
- }
- if ( strHref.indexOf("?") > -1 ){
- var strQueryString = strHref.substr(strHref.indexOf("?"));
- var aQueryString = strQueryString.split("&");
- for ( var iParam = 0; iParam < aQueryString.length; iParam++ ){
- if (aQueryString[iParam].indexOf(strParamName + "=") > -1 ){
- var aParam = aQueryString[iParam].split("=");
- strReturn = aParam[1];
- break;
- }
- }
- }
- return strReturn;
- }
- function leading_zero(p) {
- var s = String(p);
- if (s.length == 1) s = "0" + s;
- return s;
- }
- function center_element(e) {
- try {
- var c_width = document.body.clientWidth;
- var c_height = document.body.clientHeight;
-
- var c_scroll = document.body.scrollTop;
-
- var e_width = e.clientWidth;
- var e_height = e.clientHeight;
-
- var set_y = (c_height / 2) + c_scroll - (e_height / 2);
- var set_x = (c_width / 2) - (e_width / 2);
-
- e.style.top = set_y + "px";
- e.style.left = set_x + "px";
- } catch (e) {
- exception_error("center_element", e);
- }
- }
|