diff options
author | pixel <pixel> | 2008-01-15 18:20:23 +0000 |
---|---|---|
committer | pixel <pixel> | 2008-01-15 18:20:23 +0000 |
commit | c03cb12982a04f8904c5d7eb685de39c153eae11 (patch) | |
tree | 0462dfe2189e4254f927824424be26cddede9882 /lib/htmllib.lua | |
parent | 8db810406263b5ad8860c8c82677208a0cd30b07 (diff) |
Moving code around a bit, and adding htmllib.lua
Diffstat (limited to 'lib/htmllib.lua')
-rw-r--r-- | lib/htmllib.lua | 212 |
1 files changed, 212 insertions, 0 deletions
diff --git a/lib/htmllib.lua b/lib/htmllib.lua new file mode 100644 index 0000000..9603b4f --- /dev/null +++ b/lib/htmllib.lua @@ -0,0 +1,212 @@ +--[[ + +/* + * Baltisot + * Copyright (C) 1999-2008 Nicolas "Pixel" Noble + * + * 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. + * + * 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. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +/* $Id: htmllib.lua,v 1.1 2008-01-15 18:20:23 pixel Exp $ */ + +]]-- + +local common_javascript + +function urlEncode(str) + if str then + str = string.gsub(str, "\n", "\r\n") + str = string.gsub(str, "([^%w ])", + function (c) + return string.format("%%%02X", string.byte(c)) + end) + str = string.gsub(str, " ", "+") + end + return str +end + +function write_common_javascript(out) + out:write(common_javascript) +end + +common_javascript = [=[ +function getObjById(id) { + var returnVar = null; + if (document.getElementById) + returnVar = document.getElementById(id); + else if (document.all) + returnVar = document.all[id]; + else if (document.layers) + returnVar = document.layers[id]; + return returnVar; +} + +function removeAllOptions(selectbox) +{ + var i; + selectbox = getObjById(selectbox); + for (i = selectbox.options.length - 1; i >= 0; i--) + { + //selectbox.options.remove(i); + selectbox.remove(i); + } +} + + +function addOption(selectbox, value, text ) +{ + selectbox = getObjById(selectbox); + var optn = document.createElement("OPTION"); + optn.text = text; + optn.value = value; + + selectbox.options.add(optn); +} + +///////////////////////////////////////////////////////////////////// +/*------------------------------------------------------------------- + AKX GetVariables + ------------------------------------------------------------------- + Class to get HTTP GET-style variables from the document URL. + Usage: + 1) declare a variable as GetVariables ex. + vars=new GetVariables(); + 2) call the variable's Init function ex. + vars.Init(); + 3) call IsVar to check whether the named variable is found ex. + vars.IsVar("username"); + IsVar returns either true or false. + 4) call GetVar to retrieve a variable. + alert(vars.GetVar("username")); + GetVar returns "" if the variable is not found. + + You can also iterate through the variables using + for(i=0;i<vars.VarCount();i++) + { + alert(vars.GetVarNN(i)+"="+vars.GetVarNV(i)); + } + + + THIS CODE IS COPYRIGHTED AND MAY BE FREELY DISTRIBUTED AS LONG AS + THIS COPYRIGHT NOTICE IS ENCLOSED WITHIN THE FILE. THIS SCRIPT HAS + BEEN CODED BY AKX (www.theakx.tk). IF YOU WANT TO MODIFY THE + CODE, GO RIGHT AWAY, BUT ENSURE THAT THIS COPYRIGHT NOTICE IS ALSO + ENCLOSED. THANKS AND HAVE FUN. STEALING IS EV0L, AS YOU SURELY KNOW. + + START OF CODE +*/ + +function GV_Init() { + s = location.href; + p = s.lastIndexOf("?"); + if (p == -1) { + this.Vars = 0; + return; + } + vs = s.substr(p + 1); + n = 0; + end = 0; + while (!end) { + e = vs.indexOf("="); + x = vs.indexOf("&"); + if ((e == -1 && x == 0) || vs == "") + break; + if (x == -1) + x = vs.length; + vr = vs.substr(0, e); + va = vs.substring(e + 1, x); + this.Varslist[n] = vr; + this.Values[vr] = unescape(va); + n++; + vs = vs.substr(x + 1); + } + this.Vars = n; +} + +function GV_Vc() { + return this.Vars; +} + +function GV_GetVar(name) { + for (i = 0; i < this.Vars; i++) { + fn = this.Varslist[i]; + if (fn == name) + return this.Values[fn]; + } + return ""; +} + +function GV_IsVar(name) { + for (i = 0; i < this.Vars; i++) { + fn = this.Varslist[i]; + if (fn == name) + return true; + } + return false; +} + +function GV_GetVarPlace(name) { + for (i = 0; i < this.Vars; i++) { + fn = this.Varslist[i]; + if (fn == name) + return i; + } + return -1; +} + +/* + * be careful, in a case of duplicate names the first added takes precedence. + */ +function GV_AddVar(name, value) { + this.Varslist[this.Vars] = name; + this.Values[name] = value; + this.Vars++; + +} + +function GV_GetVarNV(n) { + if (this.Vars >= n) + return this.Values[this.Varslist[n]]; +} + +function GV_GetVarNN(n) { + if (this.Vars >= n) + return this.Varslist[n]; +} + +function GV_ListVars() { + s = ""; + for (i = 0; i < this.VarCount(); i++) { + s += this.GetVarNN(i) + "=" + this.GetVarNV(i) + "\n"; + } + alert(s); +} + +function GetVariables() { + this.Values = new Array(); + this.Varslist = new Array(); + this.Vars = 0; + this.Init = GV_Init; + this.VarCount = GV_Vc; + this.GetVar = GV_GetVar; + this.GetVarNV = GV_GetVarNV; + this.GetVarNN = GV_GetVarNN; + this.IsVar = GV_IsVar; + this.AddVar = GV_AddVar; + this.GetVarPlace = GV_GetVarPlace; + this.ListVars = GV_ListVars; +} +///////////////////////////////////////////////////////////////////// +]=] |