home *** CD-ROM | disk | FTP | other *** search
/ Freelog 115 / FreelogNo115-MaiJuin2013.iso / Internet / AvantBrowser / asetup.exe / _data / res / webforms.wktpl < prev   
Text File  |  2013-04-03  |  12KB  |  421 lines

  1. var FilledForm, NewFilledForm, FormSubmitImg, FormSubmitBtn, FormSubmitInputBtn;
  2.  
  3. function FillFormsAndFrames(aWindow, aType, aName, aValue)
  4. {
  5.   var ret=0;  
  6.   if (!aWindow || !aWindow.document)
  7.     return ret;
  8.  
  9.   if (aWindow.document.forms && aWindow.document.forms.length) {
  10.     for (var k = 0; k < aWindow.document.forms.length; k++) {
  11.       var form = aWindow.document.forms[k];
  12.  
  13.       var Filled = false;
  14.       for (var i = 0; i < form.elements.length; i++) {
  15.         
  16.         if (!form.elements[i].type) 
  17.           continue;
  18.  
  19.         if (!form.elements[i].name) 
  20.           continue;
  21.           
  22.         var type = form.elements[i].type.toLowerCase();
  23.         
  24.         if (type == aType.toLowerCase() && form.elements[i].name.toLowerCase() == aName.toLowerCase()) {
  25.           if ((type == "password") ||
  26.               (type == "text") ||
  27.               (type == "email") ||
  28.               (type == "textarea")) {
  29.             form.elements[i].value = aValue;
  30.             Filled = true;                    
  31.           } 
  32.           else if (type == "radio" && form.elements[i].value.toLowerCase() == aValue.toLowerCase()) {
  33.             form.elements[i].checked = true;
  34.             Filled = true;                    
  35.           }
  36.           else if (type == "select-one") {
  37.             var opts = form.elements[i].options; 
  38.             if (opts.length) {
  39.               for (var n = 0; n < opts.length; n++) { 
  40.                 var opt = opts[n];
  41.                 var v = opt.value;
  42.                 if (!v) {
  43.                   var h = opt.outerHTML;
  44.                   if (h && !h.match(/^[^>]+\svalue\s*=/i)) {
  45.                     v = opt.text;
  46.                   }
  47.                 }
  48.                 
  49.                 if (v.toLowerCase() == aValue.toLowerCase())
  50.                   form.elements[i].selectedIndex = n;
  51.               }
  52.             }
  53.             Filled = true;                    
  54.           }
  55.           else if (type == "select-multiple") {
  56.             var opts = form.elements[i].options; 
  57.             var av = aValue.toLowerCase();
  58.             
  59.             if (opts.length) {
  60.               for (var n = 0; n < opts.length; n++) { 
  61.                 var opt = opts[n];
  62.  
  63.                 var v = opt.value;
  64.                 if (!v) {
  65.                   var h = opt.outerHTML;
  66.                   if (h && !h.match(/^[^>]+\svalue\s*=/i)) {
  67.                     v = opt.text;
  68.                   }
  69.                 }
  70.                 
  71.                 v = v.toLowerCase();
  72.                 nv = "\n" + v;
  73.                 
  74.                 if (av == v)
  75.                   opt.selected = true;
  76.                 else if (av.indexOf("\n"+v+"\n")>0)
  77.                   opt.selected = true;
  78.                 else if (av.indexOf(v+"\n") == 0)
  79.                   opt.selected = true;
  80.                 else if (av.indexOf(nv)>0 && (av.indexOf(nv) == av.length - nv.length))
  81.                   opt.selected = true;
  82.                 else
  83.                   opt.selected = false;
  84.               }
  85.             }
  86.             Filled = true;                    
  87.           }
  88.           else if (type == "checkbox") {
  89.             if (aValue == "*")
  90.               form.elements[i].checked = true;
  91.             else
  92.               form.elements[i].checked = false;
  93.             Filled = true;                    
  94.           }
  95.         }
  96.       }
  97.       
  98.       if (Filled) {
  99.         ret += 1;
  100.         NewFilledForm = form;
  101.       }
  102.     }    
  103.   }
  104.   
  105.   if (aWindow.frames && aWindow.frames.length) {
  106.     for (var i = 0; i < aWindow.frames.length; i++)
  107.       ret += FillFormsAndFrames(aWindow.frames[i], aType, aName, aValue);
  108.   }
  109.   
  110.   return ret;
  111. }
  112.  
  113. function ResetFillForm()
  114. {
  115.   FilledForm = null;
  116.   NewFilledForm = null;  
  117.   FormSubmitBtn = null;
  118.   FormSubmitImg = null;
  119.   FormSubmitInputBtn = null;
  120. }
  121.  
  122. function FillAllForms(aType, aName, aValue)
  123. {
  124.   var v = FillFormsAndFrames(window, aType, aName, aValue);
  125.  
  126.   if (v==1) {
  127.     if (FilledForm && FilledForm != NewFilledForm)
  128.       v += 1;
  129.   }
  130.   
  131.   if (!FilledForm)
  132.     FilledForm = NewFilledForm;
  133.  
  134.   return v + "";
  135. }
  136.  
  137. function IsParent(child, element) {
  138.  
  139.     if (!child.parentNode)
  140.         return false;
  141.     
  142.     if (child == element)
  143.         return true;
  144.  
  145.     if (child.parentNode == element) {
  146.         return true;
  147.     }
  148.  
  149.     return IsParent(child.parentNode, element);
  150. }
  151.  
  152. function SubmitFillForm()
  153. {
  154.   if (!FilledForm)
  155.     return "0";
  156.     
  157.   FormSubmitBtn = null;
  158.   FormSubmitImg = null;
  159.   FormSubmitInputBtn = null;
  160.   
  161.   var elts = FilledForm.getElementsByTagName("input");
  162.   if (elts.length) {
  163.     for (var i = 0; i < elts.length; i++) {
  164.       if (!elts.item(i).type) 
  165.         continue;
  166.           
  167.       var type = elts.item(i).type.toLowerCase();
  168.         
  169.       if ((!FormSubmitImg) && (type == "image"))
  170.         FormSubmitImg = elts.item(i);
  171.     
  172.       if ((!FormSubmitBtn) && (type == "submit"))
  173.         FormSubmitBtn = elts.item(i);
  174.     
  175.       if ((!FormSubmitInputBtn) && (type == "button"))
  176.         FormSubmitInputBtn = elts.item(i);
  177.     }
  178.   }
  179.  
  180.   if ((!FormSubmitBtn) && (!FormSubmitImg) && (!FormSubmitInputBtn)) {
  181.     var elts = FilledForm.elements;
  182.     if (elts.length) {
  183.       for (var i = 0; i < elts.length; i++) {
  184.         if (!elts.item(i).type) 
  185.           continue;
  186.               
  187.         var type = elts.item(i).type.toLowerCase();
  188.   
  189.         if ((!FormSubmitImg) && (type == "image"))
  190.           FormSubmitImg = elts.item(i);
  191.         
  192.         if ((!FormSubmitBtn) && (type == "submit"))
  193.           FormSubmitBtn = elts.item(i);
  194.         
  195.         if ((!FormSubmitInputBtn) && (type == "button"))
  196.           FormSubmitInputBtn = elts.item(i);
  197.       }
  198.     }    
  199.   }
  200.   
  201.   if ((!FormSubmitBtn) && (!FormSubmitImg) && (!FormSubmitInputBtn)) {
  202.     elts = FilledForm.ownerDocument.getElementsByTagName("input");
  203.   
  204.     for (var i = 0; i < elts.length; i++) {
  205.       if ((!IsParent(elts.item(i), FilledForm)) && (!IsParent(elts.item(i), FilledForm.parentNode)))
  206.         continue;      
  207.  
  208.       if (!elts.item(i).type) 
  209.         continue;
  210.           
  211.       var type = elts.item(i).type.toLowerCase();
  212.           
  213.       if ((!FormSubmitImg) && (type == "image"))
  214.         FormSubmitImg = elts.item(i);
  215.     
  216.       if ((!FormSubmitBtn) && (type == "submit"))
  217.         FormSubmitBtn = elts.item(i);
  218.     
  219.       if ((!FormSubmitInputBtn) && (type == "button"))
  220.         FormSubmitInputBtn = elts.item(i);
  221.     }
  222.   }
  223.   
  224.   if (FormSubmitBtn) {
  225.     FormSubmitBtn.click();
  226.     return "1";
  227.   }
  228.   else if (FormSubmitImg) {
  229.     FormSubmitImg.click();
  230.     return "1";
  231.   }
  232.   else if (FormSubmitInputBtn) {
  233.     FormSubmitInputBtn.click();
  234.     return "1";
  235.   }
  236.   else {
  237.     FilledForm.submit();
  238.     return "1";
  239.   }
  240. }
  241.  
  242. function CollectFormData(aWindow)
  243. {
  244.   if (!aWindow.document)
  245.     return "";
  246.  
  247.   var formData = "";
  248.  
  249.   for (var k = 0; k < aWindow.document.forms.length; k++) {
  250.         
  251.     var form = aWindow.document.forms[k];
  252.   
  253.     for (var i = 0; i < form.elements.length; i++) {
  254.       
  255.       if (!form.elements[i].type) 
  256.         continue;
  257.  
  258.       if (!form.elements[i].name) 
  259.         continue;
  260.  
  261.       var type = form.elements[i].type.toLowerCase();
  262.       
  263.       if ((type == "password") ||
  264.           (type == "textarea") ||
  265.           (type == "email") ||
  266.           (type == "text") ||
  267.           (type == "radio" && form.elements[i].checked)) {
  268.         if ((type == "password") ||
  269.             (type == "textarea") ||
  270.             (type == "email") ||
  271.             (type == "text")) {
  272.           if ((!form.elements[i].value) || (form.elements[i].value ==""))
  273.             continue;
  274.         }
  275.         formData += type + "\n" 
  276.                   + form.elements[i].name + "\n"
  277.                   + form.elements[i].value + "\n";
  278.       } 
  279.       else if (type == "select-one") {
  280.         formData += type + "\n" 
  281.                   + form.elements[i].name + "\n";
  282.                   
  283.           var opt = form.elements[i].options[form.elements[i].selectedIndex];
  284.           var v = opt.value;
  285.           if (!v) {
  286.               var h = opt.outerHTML;
  287.               if (h && !h.match(/^[^>]+\svalue\s*=/i)) {
  288.                   v = opt.text;
  289.               }
  290.           }
  291.                   
  292.         formData += v + "\n";
  293.       }
  294.       else if (type == "select-multiple") {
  295.         formData += type + "\n" 
  296.                   + form.elements[i].name + "\n";
  297.                   
  298.         var opts = form.elements[i].options; 
  299.           if (opts.length) {
  300.             for (var n = 0; n < opts.length; n++) { 
  301.                 var opt = opts[n];
  302.                 if (!opt.selected) { 
  303.                     continue; 
  304.                 }
  305.                   var v = opt.value;
  306.                   if (!v) {
  307.                       var h = opt.outerHTML;
  308.                       if (h && !h.match(/^[^>]+\svalue\s*=/i)) {
  309.                           v = opt.text;
  310.                       }
  311.                   }
  312.                 formData += v + "\n";
  313.             }
  314.         }
  315.       }
  316.       else if (type == "checkbox") {
  317.         formData += type + "\n" 
  318.                   + form.elements[i].name + "\n";
  319.                   
  320.         if (form.elements[i].checked)
  321.           formData += "*" + "\n";
  322.         else
  323.           formData += "!" + "\n";               
  324.       }
  325.     }
  326.   }
  327.   
  328.   if (aWindow.frames && aWindow.frames.length) {
  329.     for (var i = 0; i < aWindow.frames.length; i++)
  330.       formData += CollectFormData(aWindow.frames[i]);
  331.   }
  332.  
  333.   return formData;
  334. }
  335.  
  336. function GetExactName(aName)
  337. {
  338.   var lName = aName.toLowerCase();
  339.   var a="a".charCodeAt(0);
  340.   var z="z".charCodeAt(0);
  341.   var ret = "";
  342.   
  343.   for (var i = 0; i<lName.length; i++) {
  344.     var n = lName.charCodeAt(i);
  345.     
  346.     if ((n>=a) && (n<=z)) {
  347.       ret = ret + lName[i];
  348.     }    
  349.   }
  350.   
  351.   return ret;
  352. }
  353.  
  354. function FillFormsAndFramesByKeyword(aWindow, aName, aType, aValue, aOption, aMustEqual)
  355. {
  356.   var ret=0;  
  357.   if (aWindow.document.forms && aWindow.document.forms.length) {
  358.     for (var k = 0; k < aWindow.document.forms.length; k++) {
  359.       var form = aWindow.document.forms[k];
  360.  
  361.       for (var i = 0; i < form.elements.length; i++) {
  362.         
  363.         if (!form.elements[i].type) 
  364.           continue;
  365.  
  366.         if (!form.elements[i].name) 
  367.           continue;
  368.           
  369.         var type = form.elements[i].type.toLowerCase();
  370.         
  371.         if ((type == "password") && (aName == 'password')) {
  372.           form.elements[i].value = aValue;
  373.           continue;
  374.         }
  375.         
  376.         if (type.indexOf(aType) < 0)
  377.           continue;
  378.                 
  379.         if (GetExactName(form.elements[i].name).indexOf(aName) < 0)
  380.           continue;
  381.  
  382.         if ((type == "text") || (type == "textarea") || (type == "email")) {
  383.           form.elements[i].value = aValue;
  384.         } 
  385.         else if (type == "radio") {
  386.           form.elements[i].checked = true;
  387.         }
  388.         else if (type == "select-one") { 
  389.           var opts = form.elements[i].options; 
  390.           if (opts.length) {
  391.             for (var n = 0; n < opts.length; n++) { 
  392.               var opt = opts[n];
  393.               var v = opt.value;
  394.  
  395.               if (v)
  396.                 if ((aMustEqual && (v.toLowerCase() == aOption))
  397.                     || ((!aMustEqual) && (v.toLowerCase().indexOf(aOption)>=0)))
  398.                   form.elements[i].selectedIndex = n;
  399.               v = opt.text;
  400.               if (v)
  401.                 if ((aMustEqual && (v.toLowerCase() == aOption))
  402.                     || ((!aMustEqual) && (v.toLowerCase().indexOf(aOption)>=0)))
  403.                   form.elements[i].selectedIndex = n;
  404.             }
  405.           }
  406.         }
  407.         else if (type == "checkbox") {
  408.           form.elements[i].checked = true;
  409.         }
  410.       }
  411.     }    
  412.   }
  413.   
  414.   if (aWindow.frames && aWindow.frames.length) {
  415.     for (var i = 0; i < aWindow.frames.length; i++)
  416.       ret += FillFormsAndFrames(aWindow.frames[i], aType, aName, aValue);
  417.   }
  418.   
  419.   return ret;
  420. }
  421.