home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Freelog 115
/
FreelogNo115-MaiJuin2013.iso
/
Internet
/
AvantBrowser
/
asetup.exe
/
_data
/
res
/
webforms.wktpl
< prev
Wrap
Text File
|
2013-04-03
|
12KB
|
421 lines
var FilledForm, NewFilledForm, FormSubmitImg, FormSubmitBtn, FormSubmitInputBtn;
function FillFormsAndFrames(aWindow, aType, aName, aValue)
{
var ret=0;
if (!aWindow || !aWindow.document)
return ret;
if (aWindow.document.forms && aWindow.document.forms.length) {
for (var k = 0; k < aWindow.document.forms.length; k++) {
var form = aWindow.document.forms[k];
var Filled = false;
for (var i = 0; i < form.elements.length; i++) {
if (!form.elements[i].type)
continue;
if (!form.elements[i].name)
continue;
var type = form.elements[i].type.toLowerCase();
if (type == aType.toLowerCase() && form.elements[i].name.toLowerCase() == aName.toLowerCase()) {
if ((type == "password") ||
(type == "text") ||
(type == "email") ||
(type == "textarea")) {
form.elements[i].value = aValue;
Filled = true;
}
else if (type == "radio" && form.elements[i].value.toLowerCase() == aValue.toLowerCase()) {
form.elements[i].checked = true;
Filled = true;
}
else if (type == "select-one") {
var opts = form.elements[i].options;
if (opts.length) {
for (var n = 0; n < opts.length; n++) {
var opt = opts[n];
var v = opt.value;
if (!v) {
var h = opt.outerHTML;
if (h && !h.match(/^[^>]+\svalue\s*=/i)) {
v = opt.text;
}
}
if (v.toLowerCase() == aValue.toLowerCase())
form.elements[i].selectedIndex = n;
}
}
Filled = true;
}
else if (type == "select-multiple") {
var opts = form.elements[i].options;
var av = aValue.toLowerCase();
if (opts.length) {
for (var n = 0; n < opts.length; n++) {
var opt = opts[n];
var v = opt.value;
if (!v) {
var h = opt.outerHTML;
if (h && !h.match(/^[^>]+\svalue\s*=/i)) {
v = opt.text;
}
}
v = v.toLowerCase();
nv = "\n" + v;
if (av == v)
opt.selected = true;
else if (av.indexOf("\n"+v+"\n")>0)
opt.selected = true;
else if (av.indexOf(v+"\n") == 0)
opt.selected = true;
else if (av.indexOf(nv)>0 && (av.indexOf(nv) == av.length - nv.length))
opt.selected = true;
else
opt.selected = false;
}
}
Filled = true;
}
else if (type == "checkbox") {
if (aValue == "*")
form.elements[i].checked = true;
else
form.elements[i].checked = false;
Filled = true;
}
}
}
if (Filled) {
ret += 1;
NewFilledForm = form;
}
}
}
if (aWindow.frames && aWindow.frames.length) {
for (var i = 0; i < aWindow.frames.length; i++)
ret += FillFormsAndFrames(aWindow.frames[i], aType, aName, aValue);
}
return ret;
}
function ResetFillForm()
{
FilledForm = null;
NewFilledForm = null;
FormSubmitBtn = null;
FormSubmitImg = null;
FormSubmitInputBtn = null;
}
function FillAllForms(aType, aName, aValue)
{
var v = FillFormsAndFrames(window, aType, aName, aValue);
if (v==1) {
if (FilledForm && FilledForm != NewFilledForm)
v += 1;
}
if (!FilledForm)
FilledForm = NewFilledForm;
return v + "";
}
function IsParent(child, element) {
if (!child.parentNode)
return false;
if (child == element)
return true;
if (child.parentNode == element) {
return true;
}
return IsParent(child.parentNode, element);
}
function SubmitFillForm()
{
if (!FilledForm)
return "0";
FormSubmitBtn = null;
FormSubmitImg = null;
FormSubmitInputBtn = null;
var elts = FilledForm.getElementsByTagName("input");
if (elts.length) {
for (var i = 0; i < elts.length; i++) {
if (!elts.item(i).type)
continue;
var type = elts.item(i).type.toLowerCase();
if ((!FormSubmitImg) && (type == "image"))
FormSubmitImg = elts.item(i);
if ((!FormSubmitBtn) && (type == "submit"))
FormSubmitBtn = elts.item(i);
if ((!FormSubmitInputBtn) && (type == "button"))
FormSubmitInputBtn = elts.item(i);
}
}
if ((!FormSubmitBtn) && (!FormSubmitImg) && (!FormSubmitInputBtn)) {
var elts = FilledForm.elements;
if (elts.length) {
for (var i = 0; i < elts.length; i++) {
if (!elts.item(i).type)
continue;
var type = elts.item(i).type.toLowerCase();
if ((!FormSubmitImg) && (type == "image"))
FormSubmitImg = elts.item(i);
if ((!FormSubmitBtn) && (type == "submit"))
FormSubmitBtn = elts.item(i);
if ((!FormSubmitInputBtn) && (type == "button"))
FormSubmitInputBtn = elts.item(i);
}
}
}
if ((!FormSubmitBtn) && (!FormSubmitImg) && (!FormSubmitInputBtn)) {
elts = FilledForm.ownerDocument.getElementsByTagName("input");
for (var i = 0; i < elts.length; i++) {
if ((!IsParent(elts.item(i), FilledForm)) && (!IsParent(elts.item(i), FilledForm.parentNode)))
continue;
if (!elts.item(i).type)
continue;
var type = elts.item(i).type.toLowerCase();
if ((!FormSubmitImg) && (type == "image"))
FormSubmitImg = elts.item(i);
if ((!FormSubmitBtn) && (type == "submit"))
FormSubmitBtn = elts.item(i);
if ((!FormSubmitInputBtn) && (type == "button"))
FormSubmitInputBtn = elts.item(i);
}
}
if (FormSubmitBtn) {
FormSubmitBtn.click();
return "1";
}
else if (FormSubmitImg) {
FormSubmitImg.click();
return "1";
}
else if (FormSubmitInputBtn) {
FormSubmitInputBtn.click();
return "1";
}
else {
FilledForm.submit();
return "1";
}
}
function CollectFormData(aWindow)
{
if (!aWindow.document)
return "";
var formData = "";
for (var k = 0; k < aWindow.document.forms.length; k++) {
var form = aWindow.document.forms[k];
for (var i = 0; i < form.elements.length; i++) {
if (!form.elements[i].type)
continue;
if (!form.elements[i].name)
continue;
var type = form.elements[i].type.toLowerCase();
if ((type == "password") ||
(type == "textarea") ||
(type == "email") ||
(type == "text") ||
(type == "radio" && form.elements[i].checked)) {
if ((type == "password") ||
(type == "textarea") ||
(type == "email") ||
(type == "text")) {
if ((!form.elements[i].value) || (form.elements[i].value ==""))
continue;
}
formData += type + "\n"
+ form.elements[i].name + "\n"
+ form.elements[i].value + "\n";
}
else if (type == "select-one") {
formData += type + "\n"
+ form.elements[i].name + "\n";
var opt = form.elements[i].options[form.elements[i].selectedIndex];
var v = opt.value;
if (!v) {
var h = opt.outerHTML;
if (h && !h.match(/^[^>]+\svalue\s*=/i)) {
v = opt.text;
}
}
formData += v + "\n";
}
else if (type == "select-multiple") {
formData += type + "\n"
+ form.elements[i].name + "\n";
var opts = form.elements[i].options;
if (opts.length) {
for (var n = 0; n < opts.length; n++) {
var opt = opts[n];
if (!opt.selected) {
continue;
}
var v = opt.value;
if (!v) {
var h = opt.outerHTML;
if (h && !h.match(/^[^>]+\svalue\s*=/i)) {
v = opt.text;
}
}
formData += v + "\n";
}
}
}
else if (type == "checkbox") {
formData += type + "\n"
+ form.elements[i].name + "\n";
if (form.elements[i].checked)
formData += "*" + "\n";
else
formData += "!" + "\n";
}
}
}
if (aWindow.frames && aWindow.frames.length) {
for (var i = 0; i < aWindow.frames.length; i++)
formData += CollectFormData(aWindow.frames[i]);
}
return formData;
}
function GetExactName(aName)
{
var lName = aName.toLowerCase();
var a="a".charCodeAt(0);
var z="z".charCodeAt(0);
var ret = "";
for (var i = 0; i<lName.length; i++) {
var n = lName.charCodeAt(i);
if ((n>=a) && (n<=z)) {
ret = ret + lName[i];
}
}
return ret;
}
function FillFormsAndFramesByKeyword(aWindow, aName, aType, aValue, aOption, aMustEqual)
{
var ret=0;
if (aWindow.document.forms && aWindow.document.forms.length) {
for (var k = 0; k < aWindow.document.forms.length; k++) {
var form = aWindow.document.forms[k];
for (var i = 0; i < form.elements.length; i++) {
if (!form.elements[i].type)
continue;
if (!form.elements[i].name)
continue;
var type = form.elements[i].type.toLowerCase();
if ((type == "password") && (aName == 'password')) {
form.elements[i].value = aValue;
continue;
}
if (type.indexOf(aType) < 0)
continue;
if (GetExactName(form.elements[i].name).indexOf(aName) < 0)
continue;
if ((type == "text") || (type == "textarea") || (type == "email")) {
form.elements[i].value = aValue;
}
else if (type == "radio") {
form.elements[i].checked = true;
}
else if (type == "select-one") {
var opts = form.elements[i].options;
if (opts.length) {
for (var n = 0; n < opts.length; n++) {
var opt = opts[n];
var v = opt.value;
if (v)
if ((aMustEqual && (v.toLowerCase() == aOption))
|| ((!aMustEqual) && (v.toLowerCase().indexOf(aOption)>=0)))
form.elements[i].selectedIndex = n;
v = opt.text;
if (v)
if ((aMustEqual && (v.toLowerCase() == aOption))
|| ((!aMustEqual) && (v.toLowerCase().indexOf(aOption)>=0)))
form.elements[i].selectedIndex = n;
}
}
}
else if (type == "checkbox") {
form.elements[i].checked = true;
}
}
}
}
if (aWindow.frames && aWindow.frames.length) {
for (var i = 0; i < aWindow.frames.length; i++)
ret += FillFormsAndFrames(aWindow.frames[i], aType, aName, aValue);
}
return ret;
}