Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var myConnUrl = 'xml/filter1.xml';
- var filter1form, arrInputs1, arrLabels1, cardcount, containers;
- var arrChecked, arrUnchecked;
- function Group(txt,ID){
- var containerGroups = document.getElementById('filter1-groups-container');
- var containerSingle = document.createElement('div');
- containerSingle.className = 'filter1-option';
- containerGroups.appendChild(containerSingle);
- var chkbox = document.createElement('input');
- chkbox.type = 'radio';
- chkbox.value = ID;
- chkbox.setAttribute('name','group');
- chkbox.className = 'filter1-box';
- containerSingle.appendChild(chkbox);
- var label = document.createElement('label');
- label.setAttribute('for',ID);
- containerSingle.appendChild(label);
- label.innerHTML = txt;
- /* createTextNode causes crash.*/
- //label.txt = document.createTextNode(txt);
- //label.appendChild(label.txt);
- /* crashed above*/
- Event.addEvent(chkbox, "click", function(){filterchange(this); });
- Event.addEvent(chkbox, "click", function(){recordClientSideClick('actionName',false);});
- }
- function Attribute1(txt,ID){
- var containerAttrs = document.getElementById('filter1-attrs-container');
- var containerSingle = document.createElement('div');
- containerSingle.className = 'filter1-option';
- containerAttrs.appendChild(containerSingle);
- var chkbox = document.createElement('input');
- chkbox.type = 'checkbox';
- chkbox.value = ID;
- chkbox.setAttribute('name','attrs');
- chkbox.className = 'filter1-box';
- containerSingle.appendChild(chkbox);
- var label = document.createElement('label');
- label.setAttribute('for',ID);
- containerSingle.appendChild(label);
- //label.txt = document.createTextNode(txt);
- //label.appendChild(label.txt);
- label.innerHTML = txt;
- Event.addEvent(chkbox,"click", function() {filterchange(false);});
- Event.addEvent(chkbox, "click", function(){recordClientSideClick('actionName',false);});
- }
- function filter1(){
- filter1form = document.getElementById('filter1-form');
- attrTable1 = document.getElementById('filter1-attrs-table');
- createGroups();
- /*crashed */
- createAttributes1();
- /* crash when using filter 1 input checkbox
- arrInputs1 = getElementsByClassName(filter1form, 'input', 'filter1-box');
- containers = getElementsByClassName(filter1form, 'div', 'filter1-option'); */
- //if filter1 cookie exists, set checked values from cookie
- /* crash when using filter 1 input checkbox
- if (getF1GroupCookie() != null) {
- var group = getF1GroupCookie();
- for (i=0;i<3;i++){
- if (arrInputs1[i].value == group) arrInputs1[i].checked = true;
- }
- }
- //if group cookie does not exist, set first group to chekced
- else{
- arrInputs1[0].checked = true;
- }*/
- /* crash
- if (getF1AttrCookie() != null) {
- var arrCookie = getF1AttrCookie();
- for (i=3;i<arrInputs1.length;i++){
- for (j=0;j<arrCookie.length;j++){
- if (arrInputs1[i].value == arrCookie[j]) arrInputs1[i].checked = true;
- }
- }
- } */
- //filterchange();
- }
- function fnWhenDone(oXML) {
- var arrDisable = oXML.responseXML.getElementsByTagName('disabled')[0].getElementsByTagName('attribute');
- cardcount = document.getElementById('filter1-number');
- var newcardcount = oXML.responseXML.getElementsByTagName('cardcount')[0].firstChild.nodeValue;
- for (i=3;i<arrInputs1.length;i++){
- for (j=0;j<arrDisable.length;j++){
- if (i == arrDisable[j].firstChild.nodeValue){
- arrInputs1[i].checked = false;
- arrInputs1[i].disabled = true;
- //changing style of label causes IE crashes for some reason so style of container mut be changed intstead
- containers[i].style.color = '#999';
- }
- }
- }
- cardcount.innerHTML = newcardcount;
- cardcount = null;
- //create array of unchecked and enabled attributes
- for (i=3;i<arrInputs1.length;i++){
- if (!arrInputs1[i].checked && !arrInputs1[i].disabled) arrUnchecked.push(arrInputs1[i].value);
- }
- if (arrChecked.length == 3 || arrUnchecked.length == 0) alert('Click "View Cards" or remove one or more attribute selections.');
- }
- function filterchange(checkedEl){
- // IE is not showing JS-generated radio button checked state so it must be set to checked with JS
- /* if (checkedEl){
- //alert(typeof checkedEl);
- for (i=0;i<3;i++){
- if (arrInputs1[i] == checkedEl) {
- arrInputs1[i].checked = true;
- }
- else {
- arrInputs1[i].checked = false;
- }
- }
- }
- arrChecked = new Array();
- arrUnchecked = new Array();
- arrLabels1 = filter1form.getElementsByTagName('label');
- //set current group
- var group;
- for (i=0;i<3;i++){
- if (arrInputs1[i].checked) {
- group = arrInputs1[i].value;
- }
- }
- //push checked attribute values in to arrChecked array
- for (i=3;i<arrInputs1.length;i++){
- if (arrInputs1[i].checked) arrChecked.push(arrInputs1[i].value);
- }
- //write arrChecked to attribute cookie
- setF1AttrCookie(arrChecked);
- if (getF1GroupCookie() != null) {
- //if a new group was selected, only pass the group, not the attributes
- if (checkedEl) arrChecked.length = 1;
- var myReq = new ajaxReq();
- if (!myReq) alert("XMLHTTP not available. Try a newer/better browser.");
- myReq.req(myConnUrl, arrChecked, fnWhenDone);
- myReq = null; // just in case.
- }
- //write group to group cookie
- setF1GroupCookie(group); */
- }
- function setF1GroupCookie(cookieValue){
- var expiryDate = new Date();
- expiryDate.setDate(expiryDate.getDate() + 20);
- if(cookieValue.length == 0) {
- document.cookie = "citi-filter1-group=;path=/;expires=Fri, 02-Jan-1970 00:00:00 GMT;";
- } else {
- document.cookie = "citi-filter1-group=" + cookieValue +";path=/;expires=" + expiryDate + ";";
- }
- }
- function getF1GroupCookie(){
- var start = document.cookie.indexOf("citi-filter1-group=");
- if (start == -1) return null;
- var len = start + 19;
- var end = document.cookie.indexOf(";",len);
- if (end == -1) end = document.cookie.length;
- return document.cookie.substring(len,end).split(",");
- }
- function setF1AttrCookie(cookieValue){
- var expiryDate = new Date();
- expiryDate.setHours(expiryDate.getHours() + 12);
- if(cookieValue.length == 0) {
- document.cookie = "citi-filter1-attrs=;path=/;expires=Fri, 02-Jan-1970 00:00:00 GMT;";
- } else {
- document.cookie = "citi-filter1-attrs=" + cookieValue +";path=/;expires=" + expiryDate + ";";
- }
- }
- function getF1AttrCookie(){
- var start = document.cookie.indexOf("citi-filter1-attrs=");
- if (start == -1) return null;
- var len = start + 19;
- var end = document.cookie.indexOf(";",len);
- if (end == -1) end = document.cookie.length;
- return document.cookie.substring(len,end).split(",");
- }
- function filterclear(){
- arrLabels1 = filter1form.getElementsByTagName('label');
- for (i=3;i<arrInputs1.length;i++){
- arrInputs1[i].checked = false;
- arrInputs1[i].disabled = false;
- //changing style of label causes IE crashes for some reason so style of container mut be changed intstead
- containers[i].style.color = '#000';
- }
- filterchange();
- setF1AttrCookie('');
- }
Add Comment
Please, Sign In to add comment