Guest User

Untitled

a guest
Feb 19th, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.83 KB | None | 0 0
  1. var myConnUrl = 'xml/filter1.xml';
  2. var filter1form, arrInputs1, arrLabels1, cardcount, containers;
  3. var arrChecked, arrUnchecked;
  4.  
  5.  
  6. function Group(txt,ID){
  7.  
  8. var containerGroups = document.getElementById('filter1-groups-container');
  9. var containerSingle = document.createElement('div');
  10. containerSingle.className = 'filter1-option';
  11. containerGroups.appendChild(containerSingle);
  12.  
  13. var chkbox = document.createElement('input');
  14. chkbox.type = 'radio';
  15. chkbox.value = ID;
  16. chkbox.setAttribute('name','group');
  17. chkbox.className = 'filter1-box';
  18. containerSingle.appendChild(chkbox);
  19.  
  20. var label = document.createElement('label');
  21. label.setAttribute('for',ID);
  22. containerSingle.appendChild(label);
  23. label.innerHTML = txt;
  24. /* createTextNode causes crash.*/
  25. //label.txt = document.createTextNode(txt);
  26. //label.appendChild(label.txt);
  27.  
  28. /* crashed above*/
  29. Event.addEvent(chkbox, "click", function(){filterchange(this); });
  30. Event.addEvent(chkbox, "click", function(){recordClientSideClick('actionName',false);});
  31. }
  32.  
  33. function Attribute1(txt,ID){
  34. var containerAttrs = document.getElementById('filter1-attrs-container');
  35. var containerSingle = document.createElement('div');
  36. containerSingle.className = 'filter1-option';
  37. containerAttrs.appendChild(containerSingle);
  38.  
  39. var chkbox = document.createElement('input');
  40. chkbox.type = 'checkbox';
  41. chkbox.value = ID;
  42. chkbox.setAttribute('name','attrs');
  43. chkbox.className = 'filter1-box';
  44. containerSingle.appendChild(chkbox);
  45.  
  46. var label = document.createElement('label');
  47. label.setAttribute('for',ID);
  48. containerSingle.appendChild(label);
  49. //label.txt = document.createTextNode(txt);
  50. //label.appendChild(label.txt);
  51. label.innerHTML = txt;
  52.  
  53. Event.addEvent(chkbox,"click", function() {filterchange(false);});
  54. Event.addEvent(chkbox, "click", function(){recordClientSideClick('actionName',false);});
  55. }
  56.  
  57. function filter1(){
  58. filter1form = document.getElementById('filter1-form');
  59. attrTable1 = document.getElementById('filter1-attrs-table');
  60. createGroups();
  61. /*crashed */
  62. createAttributes1();
  63. /* crash when using filter 1 input checkbox
  64. arrInputs1 = getElementsByClassName(filter1form, 'input', 'filter1-box');
  65. containers = getElementsByClassName(filter1form, 'div', 'filter1-option'); */
  66. //if filter1 cookie exists, set checked values from cookie
  67. /* crash when using filter 1 input checkbox
  68. if (getF1GroupCookie() != null) {
  69. var group = getF1GroupCookie();
  70. for (i=0;i<3;i++){
  71. if (arrInputs1[i].value == group) arrInputs1[i].checked = true;
  72. }
  73. }
  74. //if group cookie does not exist, set first group to chekced
  75. else{
  76. arrInputs1[0].checked = true;
  77. }*/
  78. /* crash
  79. if (getF1AttrCookie() != null) {
  80. var arrCookie = getF1AttrCookie();
  81. for (i=3;i<arrInputs1.length;i++){
  82. for (j=0;j<arrCookie.length;j++){
  83. if (arrInputs1[i].value == arrCookie[j]) arrInputs1[i].checked = true;
  84. }
  85. }
  86. } */
  87. //filterchange();
  88. }
  89. function fnWhenDone(oXML) {
  90. var arrDisable = oXML.responseXML.getElementsByTagName('disabled')[0].getElementsByTagName('attribute');
  91. cardcount = document.getElementById('filter1-number');
  92. var newcardcount = oXML.responseXML.getElementsByTagName('cardcount')[0].firstChild.nodeValue;
  93. for (i=3;i<arrInputs1.length;i++){
  94. for (j=0;j<arrDisable.length;j++){
  95. if (i == arrDisable[j].firstChild.nodeValue){
  96. arrInputs1[i].checked = false;
  97. arrInputs1[i].disabled = true;
  98. //changing style of label causes IE crashes for some reason so style of container mut be changed intstead
  99. containers[i].style.color = '#999';
  100. }
  101. }
  102. }
  103. cardcount.innerHTML = newcardcount;
  104. cardcount = null;
  105. //create array of unchecked and enabled attributes
  106. for (i=3;i<arrInputs1.length;i++){
  107. if (!arrInputs1[i].checked && !arrInputs1[i].disabled) arrUnchecked.push(arrInputs1[i].value);
  108. }
  109. if (arrChecked.length == 3 || arrUnchecked.length == 0) alert('Click "View Cards" or remove one or more attribute selections.');
  110. }
  111.  
  112. function filterchange(checkedEl){
  113. // IE is not showing JS-generated radio button checked state so it must be set to checked with JS
  114. /* if (checkedEl){
  115. //alert(typeof checkedEl);
  116. for (i=0;i<3;i++){
  117. if (arrInputs1[i] == checkedEl) {
  118. arrInputs1[i].checked = true;
  119. }
  120. else {
  121. arrInputs1[i].checked = false;
  122. }
  123. }
  124. }
  125.  
  126. arrChecked = new Array();
  127. arrUnchecked = new Array();
  128.  
  129. arrLabels1 = filter1form.getElementsByTagName('label');
  130. //set current group
  131. var group;
  132. for (i=0;i<3;i++){
  133. if (arrInputs1[i].checked) {
  134. group = arrInputs1[i].value;
  135. }
  136. }
  137.  
  138. //push checked attribute values in to arrChecked array
  139. for (i=3;i<arrInputs1.length;i++){
  140. if (arrInputs1[i].checked) arrChecked.push(arrInputs1[i].value);
  141. }
  142. //write arrChecked to attribute cookie
  143. setF1AttrCookie(arrChecked);
  144.  
  145. if (getF1GroupCookie() != null) {
  146.  
  147. //if a new group was selected, only pass the group, not the attributes
  148. if (checkedEl) arrChecked.length = 1;
  149.  
  150. var myReq = new ajaxReq();
  151. if (!myReq) alert("XMLHTTP not available. Try a newer/better browser.");
  152. myReq.req(myConnUrl, arrChecked, fnWhenDone);
  153.  
  154. myReq = null; // just in case.
  155. }
  156. //write group to group cookie
  157. setF1GroupCookie(group); */
  158. }
  159.  
  160. function setF1GroupCookie(cookieValue){
  161. var expiryDate = new Date();
  162. expiryDate.setDate(expiryDate.getDate() + 20);
  163. if(cookieValue.length == 0) {
  164. document.cookie = "citi-filter1-group=;path=/;expires=Fri, 02-Jan-1970 00:00:00 GMT;";
  165. } else {
  166. document.cookie = "citi-filter1-group=" + cookieValue +";path=/;expires=" + expiryDate + ";";
  167. }
  168. }
  169.  
  170. function getF1GroupCookie(){
  171. var start = document.cookie.indexOf("citi-filter1-group=");
  172. if (start == -1) return null;
  173. var len = start + 19;
  174. var end = document.cookie.indexOf(";",len);
  175. if (end == -1) end = document.cookie.length;
  176. return document.cookie.substring(len,end).split(",");
  177. }
  178.  
  179. function setF1AttrCookie(cookieValue){
  180. var expiryDate = new Date();
  181. expiryDate.setHours(expiryDate.getHours() + 12);
  182. if(cookieValue.length == 0) {
  183. document.cookie = "citi-filter1-attrs=;path=/;expires=Fri, 02-Jan-1970 00:00:00 GMT;";
  184. } else {
  185. document.cookie = "citi-filter1-attrs=" + cookieValue +";path=/;expires=" + expiryDate + ";";
  186. }
  187. }
  188.  
  189. function getF1AttrCookie(){
  190. var start = document.cookie.indexOf("citi-filter1-attrs=");
  191. if (start == -1) return null;
  192. var len = start + 19;
  193. var end = document.cookie.indexOf(";",len);
  194. if (end == -1) end = document.cookie.length;
  195. return document.cookie.substring(len,end).split(",");
  196. }
  197.  
  198. function filterclear(){
  199. arrLabels1 = filter1form.getElementsByTagName('label');
  200. for (i=3;i<arrInputs1.length;i++){
  201. arrInputs1[i].checked = false;
  202. arrInputs1[i].disabled = false;
  203. //changing style of label causes IE crashes for some reason so style of container mut be changed intstead
  204. containers[i].style.color = '#000';
  205. }
  206. filterchange();
  207. setF1AttrCookie('');
  208. }
Add Comment
Please, Sign In to add comment