// JavaScript Document /* PHP in_array equivalent in JS e.g : var numbers = new Array("one","two","three","four","five"); alert(numbers.in_array("two")) // should evaluate to true */ Array.prototype.in_array = function(obj) { return new RegExp('(^|\,)'+obj+'(\,|$)','gi').test(this); } var sortlist = function(sb) { var lb = document.getElementById(sb); var arrTexts = new Array(); for(iy=0; iy < lb.length; iy++) { arrTexts[iy] = lb.options[iy].text + ':a:' + lb.options[iy].value; } arrTexts.sort(); //asort(arrTexts); for(is=0; is < lb.length ; is++) { var data = arrTexts[is].split(':a:'); lb.options[is].text = data[0]; lb.options[is].value = data[1]; if (search_attributes_selected_value.getItem(sb) == lb.options[is].value) { lb.options[is].selected = true; } } } function openHash() { this.length = 0; this.items = new Array(); for (var i = 0; i < arguments.length; i += 2) { if (typeof(arguments[i + 1]) != 'undefined') { this.items[arguments[i]] = arguments[i + 1]; this.length++; } } this.removeItem = function(in_key) { var tmp_value; if (typeof(this.items[in_key]) != 'undefined') { this.length--; var tmp_value = this.items[in_key]; delete this.items[in_key]; } return tmp_value; } this.getItem = function(in_key) { return this.items[in_key]; } this.setItem = function(in_key, in_value) { if (typeof(in_value) != 'undefined') { if (typeof(this.items[in_key]) == 'undefined') { this.length++; } this.items[in_key] = in_value; } return in_value; } this.hasItem = function(in_key) { return typeof(this.items[in_key]) != 'undefined'; } } var selected = new openHash(); var selected_old_id = new openHash(); var selected_current_id = new openHash(); var selected_first = new openHash(); var updateComponent = function(executorCom, executorId, boxname) { var sai = search_attributes_id.getItem(boxname); var san = search_attributes_name.getItem(boxname); if (typeof(selected_first.getItem('sel')) == 'undefined') { selected_first.setItem('sel', executorCom); } selected_old_id.setItem(executorCom, selected_current_id.getItem(executorCom)); selected_current_id.setItem(executorCom, executorId); var surl = 'http://www.rookverbod.net/ultrasearch_server.php?searchbox=' + boxname + '&com=' + executorCom + '&id=' + executorId; new Ajax.Request( surl, { method: 'get', onLoading: function() { // show the loader image and disabled the form $('loading_status').setStyle({display:''}); $('form1').disable(); }, onSuccess: function(transport) { //restoring the default state $('loading_status').setStyle({display:'none'}); $('form1').enable(); var data = new Array(); var dataassigned = new Array(); var data_attr = new Array(); eval(transport.responseText); //alert(data.length); //alert(sai.length); if (executorCom == 'maincat_' + boxname) { /*for (iixxxx = 0; iixxxx < sai.length; iixxxx++) { if (dataassigned[sai[iixxxx]] == 0 && san[iixxxx] != '' && typeof(selected.getItem('option_' + sai[iixxxx] + '_' + boxname)) == 'undefined') { $('options_' + sai[iixxxx] + '_' + boxname).clearChildren(); if ($('options_' + sai[iixxxx] + '_' + boxname).options.length == 0) { $('options_' + sai[iixxxx] + '_' + boxname).append('option',{value:'0',selected:true}).update('- kies ' + san[iixxxx].toLowerCase()); } } }*/ if (data.length == 0) { for (i = 0; i < sai.length; i++) { if (san[i] != '') { $('options_' + sai[i] + '_' + boxname).innerHTML = ''; selected.removeItem('option_' + sai[i] + '_' + boxname); selected_old_id.removeItem('option_' + sai[i] + '_' + boxname); selected_current_id.removeItem('option_' + sai[i] + '_' + boxname); selected_first.removeItem('sel'); if ($('options_' + sai[i] + '_' + boxname).options.length == 0) { $('options_' + sai[i] + '_' + boxname).append('option',{value:'',selected:true}).update('- kies ' + san[i].toLowerCase()); $('options_' + sai[i] + '_' + boxname).disable(); } } } } else { for (i = 0; i < data_attr.length; i++) { var tmp2 = data_attr[i].evalJSON(); if (typeof(selected.getItem('option_' + tmp2.attributes_id + '_' + boxname)) == 'undefined') { $('options_' + tmp2.attributes_id + '_' + boxname).innerHTML = ''; if ($('options_' + tmp2.attributes_id + '_' + boxname).options.length == 0) { $('options_' + tmp2.attributes_id + '_' + boxname).append('option',{value:'',selected:true}).update('- kies ' + tmp2.attributes_name.toLowerCase()); } } } for (i = 0; i < data.length; i++) { var tmp2 = data[i].evalJSON(); if (typeof(selected.getItem('option_' + tmp2.attributes_id + '_' + boxname)) == 'undefined') { $('options_' + tmp2.attributes_id + '_' + boxname).append('option',{value:tmp2.options_values_id}).update(tmp2.options_values_name); } /*if (typeof(search_attributes_selected_option.getItem('options_' + tmp2.attributes_id + '_' + boxname)) != 'undefined') { for (s = 0; s < $('options_' + tmp2.attributes_id + '_' + boxname).options.length; s++) { if (parseInt($('options_' + tmp2.attributes_id + '_' + boxname).options[s].value) == search_attributes_selected_value.getItem('options_' + tmp2.attributes_id + '_' + boxname)) { $('options_' + tmp2.attributes_id + '_' + boxname).options[s].selected = true; } } }*/ } } for (i = 0; i < sai.length; i++) { if (dataassigned[sai[i]] == 0) { //if ($('options_' + sai[i] + '_' + boxname).options.length == 1) { $('options_' + sai[i] + '_' + boxname).disable(); //} } else { $('options_' + sai[i] + '_' + boxname).enable(); } } for (sx = 0; sx < sai.length; sx++) { //if (san[xyxx] != '') { sortlist('options_' + sai[sx] + '_' + boxname); //} } } else { /*for (iixxx = 0; iixxx < sai.length; iixxx++) { if (dataassigned[sai[iixxx]] == 0 && san[iixxx] != '' && typeof(selected.getItem('option_' + sai[iixxx] + '_' + boxname)) == 'undefined') { $('options_' + sai[iixxx] + '_' + boxname).clearChildren(); if ($('options_' + sai[iixxx] + '_' + boxname).options.length == 0) { $('options_' + sai[iixxx] + '_' + boxname).append('option',{value:'0',selected:true}).update('- kies ' + san[iixxx].toLowerCase()); } } }*/ for (i = 0; i < data_attr.length; i++) { var tmp2 = data_attr[i].evalJSON(); // update maincat if (tmp2.attributes_id == 'maincat') { if (typeof(selected.getItem('maincat_' + boxname)) == 'undefined') { $('maincat_' + boxname).innerHTML = ''; if ($('maincat_' + boxname).options.length == 0) { $('maincat_' + boxname).append('option',{value:'0',selected:true}).update('- kies leverancier'); } } } else { if (typeof(selected.getItem('option_' + tmp2.attributes_id + '_' + boxname)) == 'undefined') { $('options_' + tmp2.attributes_id + '_' + boxname).innerHTML = ''; if ($('options_' + tmp2.attributes_id + '_' + boxname).options.length == 0) { $('options_' + tmp2.attributes_id + '_' + boxname).append('option',{value:'0',selected:true}).update('- kies ' + tmp2.attributes_name.toLowerCase()); } } } } // end for ... clearing the select box for (i = 0; i < data.length; i++) { var tmp2 = data[i].evalJSON(); // update maincat if (tmp2.attributes_id == 'maincat') { if (typeof(selected.getItem('maincat_' + boxname)) == 'undefined') { $('maincat_' + boxname).append('option',{value:tmp2.options_values_id}).update(tmp2.options_values_name); } } else { if (typeof(selected.getItem('option_' + tmp2.attributes_id + '_' + boxname)) == 'undefined') { $('options_' + tmp2.attributes_id + '_' + boxname).append('option',{value:tmp2.options_values_id}).update(tmp2.options_values_name); } /*if (typeof(search_attributes_selected_option.getItem('option_' + tmp2.attributes_id + '_' + boxname)) != 'undefined') { for (s = 0; s < $('options_' + tmp2.attributes_id + '_' + boxname).options.length; s++) { if ($('options_' + tmp2.attributes_id + '_' + boxname).options[s].value == search_attributes_selected_value.getItem('options_' + tmp2.attributes_id + '_' + boxname)) { $('options_' + tmp2.attributes_id + '_' + boxname).options[s].selected = true; } } }*/ } } // end of for ... populating the select value // disabling when only have one option if ($('maincat_' + boxname).options.length == 1) { $('maincat_' + boxname).disable(); } for (i = 0; i < sai.length; i++) { if (dataassigned[sai[i]] == 0) { //if ($('options_' + sai[i] + '_' + boxname).options.length == 1) { $('options_' + sai[i] + '_' + boxname).disable(); //} } } //if (typeof(selected.getItem('maincat_' + boxname)) == 'undefined') { sortlist('maincat_' + boxname); //} for (iii = 0; iii < sai.length; iii++) { //if (typeof(selected.getItem('option_' + sai[iii] + '_' + boxname)) == 'undefined') { sortlist('options_' + sai[iii] + '_' + boxname); //} } } } } ); selected.setItem(executorCom, true); } var clearSession = function (sboxname) { var sai = search_attributes_id.getItem(sboxname); var san = search_attributes_name.getItem(sboxname); var surl = 'http://www.rookverbod.net/ultrasearch_server.php?searchbox=' + sboxname + '&cs=1'; new Ajax.Request( surl, { method: 'get', onLoading: function() { // show the loader image and disabled the form $('loading_status').setStyle({display:''}); $('form1').disable(); }, onSuccess: function(transport) { //restoring the default state $('loading_status').setStyle({display:'none'}); $('form1').enable(); var data = new Array(); var dataassigned = new Array(); var data_attr = new Array(); eval(transport.responseText); for (i = 0; i < data_attr.length; i++) { var tmp2 = data_attr[i].evalJSON(); // update maincat if (tmp2.attributes_id == 'maincat') { $('maincat_' + sboxname).innerHTML = ''; if ($('maincat_' + sboxname).options.length == 0) { $('maincat_' + sboxname).append('option',{value:'0',selected:true}).update('- kies leverancier'); } } else { $('options_' + tmp2.attributes_id + '_' + sboxname).innerHTML = ''; if ($('options_' + tmp2.attributes_id + '_' + sboxname).options.length == 0) { $('options_' + tmp2.attributes_id + '_' + sboxname).append('option',{value:'0',selected:true}).update('- kies ' + tmp2.attributes_name.toLowerCase()); } } } // end for ... clearing the select box for (i = 0; i < data.length; i++) { var tmp2 = data[i].evalJSON(); // update maincat if (tmp2.attributes_id == 'maincat') { $('maincat_' + sboxname).append('option',{value:tmp2.options_values_id}).update(tmp2.options_values_name); } else { $('options_' + tmp2.attributes_id + '_' + sboxname).append('option',{value:tmp2.options_values_id}).update(tmp2.options_values_name); } } // end of for ... populating the select value // disabling when only have one option if ($('maincat_' + sboxname).options.length == 1) { $('maincat_' + sboxname).disable(); } for (i = 0; i < sai.length; i++) { //if (dataassigned[sai[i]] == 0) { if ($('options_' + sai[i] + '_' + sboxname).options.length == 1) { $('options_' + sai[i] + '_' + sboxname).disable(); } //} } Field.clear($('maincat_' + sboxname)); selected.removeItem('maincat_' + sboxname); selected_old_id.removeItem('maincat_' + sboxname); selected_current_id.removeItem('maincat_' + sboxname); selected_first.removeItem('sel'); for (i = 0; i <= sai.length; i++) { if (san[i] != '') { $('options_' + sai[i] + '_' + sboxname).options[0].selected = 'selected'; selected.removeItem('option_' + sai[i] + '_' + sboxname); selected_old_id.removeItem('option_' + sai[i] + '_' + sboxname); selected_current_id.removeItem('option_' + sai[i] + '_' + sboxname); } } Field.clear($('keywords_' + sboxname)); Field.clear($('pfrom_' + sboxname)); Field.clear($('pto_' + sboxname)); } } ); } //first a helper method var $CE = function(tagName, attributes, styles){ //short for create element var el = document.createElement(tagName); if (attributes) $H(attributes).each(function(pair){ eval("el." + pair.key + "='" + pair.value + "'"); }); if (styles) $H(styles).each(function(pair){ el.style[pair.key] = pair.value; }); return $(el); }; //adding the new methods Element.addMethods({ //removes any child noes from the element //example: