var nextGroup = 0; var groupLength = []; function addSearch(group, fieldValues) { if(typeof fieldValues === "undefined") { fieldValues = {}; } // Build the new search var inputID = group+'_'+groupLength[group]; var $newSearch = $($('#new_search_template').html()); $newSearch.attr('id', 'search'+inputID); $newSearch.find('input.form-control') .attr('id', 'search_lookfor'+inputID) .attr('name', 'lookfor'+group+'[]') .attr('value', ''); $newSearch.find('select.type option:first-child').attr('selected', 1); $newSearch.find('select.type') .attr('id', 'search_type'+inputID) .attr('name', 'type'+group+'[]'); $newSearch.find('.close a') .attr('onClick', 'deleteSearch('+group+','+groupLength[group]+')'); // Preset Values if(typeof fieldValues.term !== "undefined") { $newSearch.find('input.form-control').attr('value', fieldValues.term); } if(typeof fieldValues.field !== "undefined") { $newSearch.find('select.type option[value="'+fieldValues.field+'"]').attr('selected', 1); } if (typeof fieldValues.op !== "undefined") { $newSearch.find('select.op option[value="'+fieldValues.op+'"]').attr('selected', 1); } // Insert it $("#group" + group + "Holder").before($newSearch); // Individual search ops (for searches like EDS) if (groupLength[group] == 0) { $newSearch.find('.first-op') .attr('name', 'op' + group + '[]') .removeClass('hidden'); $newSearch.find('select.op').remove(); } else { $newSearch.find('select.op') .attr('id', 'search_op' + group + '_' + groupLength[group]) .attr('name', 'op' + group + '[]') .removeClass('hidden'); $newSearch.find('.first-op').remove(); $newSearch.find('label').remove(); // Show x if we have more than one search inputs $('#group'+group+' .search .close').removeClass('hidden'); } groupLength[group]++; } function deleteSearch(group, sindex) { for(var i=sindex;i<groupLength[group]-1;i++) { var $search0 = $('#search'+group+'_'+i); var $search1 = $('#search'+group+'_'+(i+1)); $search0.find('input').val($search1.find('input').val()); var select0 = $search0.find('select')[0]; var select1 = $search1.find('select')[0]; select0.selectedIndex = select1.selectedIndex; } if(groupLength[group] > 1) { groupLength[group]--; $('#search'+group+'_'+groupLength[group]).remove(); if(groupLength[group] == 1) { $('#group'+group+' .search .close').addClass('hidden'); // Hide x } } } function addGroup(firstTerm, firstField, join) { if (firstTerm == undefined) {firstTerm = '';} if (firstField == undefined) {firstField = '';} if (join == undefined) {join = '';} var $newGroup = $($('#new_group_template').html()); $newGroup.attr('id', 'group'+nextGroup); $newGroup.find('.search_place_holder') .attr('id', 'group'+nextGroup+'Holder') .removeClass('hidden'); $newGroup.find('.add_search_link') .attr('id', 'add_search_link_'+nextGroup) .attr('onClick', 'addSearch('+nextGroup+')') .removeClass('hidden'); $newGroup.find('.group-close') .attr('onClick', 'deleteGroup('+nextGroup+')'); $newGroup.find('select.form-control') .attr('id', 'search_bool'+nextGroup) .attr('name', 'bool'+nextGroup+'[]'); $newGroup.find('.search_bool') .attr('for', 'search_bool'+nextGroup); if(join.length > 0) { $newGroup.find('option[value="'+join+'"]').attr('selected', 1); } // Insert $('#groupPlaceHolder').before($newGroup); // Populate groupLength[nextGroup] = 0; addSearch(nextGroup, {term:firstTerm, field:firstField}); // Show join menu if(nextGroup > 0) { $('#groupJoin').removeClass('hidden'); // Show x $('.group .group-close').removeClass('hidden'); } return nextGroup++; } function deleteGroup(group) { // Find the group and remove it $("#group" + group).remove(); // If the last group was removed, add an empty group if($('.group').length == 0) { addGroup(); } else if($('#advSearchForm .group').length == 1) { $('#groupJoin').addClass('hidden'); // Hide join menu $('.group .group-close').addClass('hidden'); // Hide x } } // Fired by onclick event function deleteGroupJS(group) { var groupNum = group.id.replace("delete_link_", ""); deleteGroup(groupNum); return false; } // Fired by onclick event function addSearchJS(group) { var groupNum = group.id.replace("add_search_link_", ""); addSearch(groupNum); return false; } $(document).ready(function() { $('.clear-btn').click(function() { $('input[type="text"]').val(''); $("option:selected").removeAttr("selected"); $("#illustrated_-1").click(); }); });