var catalog = new fConnector('catalog'); var sortNumber = function(a,b){return b - a;} var subm = false; var addslashes = function(str){ return (str + '').replace(/[\\"']/g, '\\$&').replace(/\u0000/g, '\\0'); } var stripslashes = function(str){ return (str + '').replace(/\\(.?)/g, function(s, n1){ switch(n1){ case '\\': return '\\'; case '0': return '\u0000'; case '': return ''; default: return n1; } }); } var number_format = function(number, decimals, dec_point, thousands_sep){ number = (number+'').replace(',', '').replace(' ', ''); var n = !isFinite(+number) ? 0 : +number, prec = !isFinite(+decimals) ? 0 : Math.abs(decimals), sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep, dec = (typeof dec_point === 'undefined') ? '.' : dec_point, s = '', toFixedFix = function(n, prec){ var k = Math.pow(10, prec); return '' + Math.round(n * k) / k; }; // Fix for IE parseFloat(0.55).toFixed(0) = 0; s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.'); if(s[0].length > 3){s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep);} if ((s[1] || '').length < prec) {s[1] = s[1] || ''; s[1] += new Array(prec - s[1].length + 1).join('0');} return s.join(dec); } var convert_form_to_url = function(form, prefix){ if(!prefix) prefix = ''; if(form){ url = prefix; for(criteria in form){ cr = form[criteria]; len = 0; for (val in cr){ if(cr[val]){ len++; }else{ delete cr[val]; } } if(len > 0){ url += '/@' + criteria + '/' ex = []; for (val in cr){ if (cr[val]) ex.push(val + '=' + cr[val]); } if (ex){ url += ex.join('&') } } } return url; } } var fields = { 'producer':{ 'preloader':'Загрузка списка производителей...', 'dependent':['series', 'color'], 'container':'filter' }, 'series':{ 'preloader':'Загрузка списка серий...', 'dependent':['producer', 'color'], 'container':'filter2' }, 'color':{ 'preloader':'Загрузка списка цветов...', 'dependent':['producer', 'series'], 'container':'filter3' } } var validFields = function(){ for(fid in fields){ if($('#' + fid).val()){ subm = true; $('#subm').css('color','#756464'); break; } else { subm = false; $('#subm').css('color','#ece6e6'); } } if($('#ancestor').val() && $('#ancestor').val() != 6391){ subm = true; $('#subm').css('color','#756464'); } } var get_objects_on_parameters = function(anc, field, parameter, clear_fields){ $('div.preloader').show(); $('div.preloader b').text('Загрузка параметров поиска...'); //fields[field]['preloader'] if(!anc && field){ ///anc = Number($('#ancestor').val()); catalog.execute({get_field_parameters:{field:field, parameter:parameter, dependent:fields[field]['dependent']}}); } else if(anc) { catalog.execute({get_field_parameters:{anc:anc, clear_fields:clear_fields}}); if(clear_fields){subm = false; $('#subm').css('color','#ece6e6');} } else { catalog.execute({get_field_parameters:{}}); } if(objects = catalog.result.objects){ for(field in objects){ insert_parameters_in_ul(field, objects[field], clear_fields); } $('div.preloader').hide(); } else { //$('div.preloader b').text('Ошибка. Объектов не найдено...'); //window.setInterval("$('div.preloader').hide()", 2000); $('div.preloader').hide(); } validFields(); } var insert_parameters_in_ul = function(field, objects, hide_name){ $('div.preloader b').text(fields[field]['preloader']); var all_params = $('div.' + fields[field]['container'] + ' div.popup ul li:first > a').text(); var ul = '
  • ' + all_params + '
  • '; for(key in objects){ if(field == 'color'){ //if(field != 'ancestor'){ //ul += '
  • ' + objects[key] + '
  • '; ul += '
  • ' + objects[key] + '
  • '; } else { if(key != 6391){ ul += '
  • ' + objects[key] + '
  • '; } } } $('div.' + fields[field]['container'] + ' > div.popup > ul').html(ul); if(hide_name){ $('div.' + fields[field]['container'] + ' > a.ab-select').text(all_params); $('div.' + fields[field]['container'] + ' > input').val(''); } else { /*if(!$('div.' + fields[field]['container'] + ' div.popup ul li a[rel~=' + stripslashes($('#' + field).val()) + ']').length){ $('div.' + fields[field]['container'] + ' > a.ab-select').text(all_params); $('div.' + fields[field]['container'] + ' > input').val(''); }*/ lng = 0; $('div.' + fields[field]['container'] + ' div.popup ul li a').each(function(){ if($(this).attr('rel') != '' && $('#' + field).val() != '' && $(this).attr('rel') == stripslashes($('#' + field).val())){lng++;} }); if(!lng){ $('div.' + fields[field]['container'] + ' > a.ab-select').text(all_params); $('div.' + fields[field]['container'] + ' > input').val(''); } } $('div.' + fields[field]['container'] + ' div.popup li a').unbind('click'); $('div.' + fields[field]['container'] + ' div.popup li a').bind('click', function(evn){ evn.preventDefault(); //evn.stopPropagation(); var div = $($(this).parents()[2]); div.hide(); var inputdata = div.prev(); inputdata.val($(this).attr('rel')); $(' > a.ab-select', div.parent()).text($(this).text()); if(fields[field]['container']){ get_objects_on_parameters(false, inputdata.attr('id'), $(this).attr('rel')); get_devices(); } }); } var get_devices = function(anc, parameter, hide_name){ $('div.preloader').show(); $('div.preloader b').text('Загрузка списка устройств...'); catalog.execute({get_devices:{anc:anc, parameter:parameter}}); if(catalog.result.devices){ $('div.filter5 > div.popup').html(catalog.result.devices); if(hide_name){ $('div.filter5 > a.ab-select').text('Все устройства'); $('#ancestor').val(6391); } else { if(!$('div.filter5 div.popup ul li a[rel~=' + $('#ancestor').val() + ']').length){ $('div.filter5 > a.ab-select').text($('div.filter5 div.popup ul li:first > a').text()); $('#ancestor').val(6391); } } $('div.filter5 div.popup li a').unbind('click'); $('div.filter5 div.popup li a').bind('click', function(evn){ evn.preventDefault(); //evn.stopPropagation(); var div = $($(this).parents()[2]); div.hide(); $('#ancestor').val($(this).attr('rel')); $(' > a.ab-select', div.parent()).text($(this).text()); get_objects_on_parameters($(this).attr('rel')); if(!$(this).attr('rel')){get_devices();} }); $('div.preloader').hide(); } if($(this).attr('rel')){ subm = true; $('#subm').css('color','#756464'); } } $(function(){ $('div.categories-carouse').jCarouselLite({visible:5,btnNext:'#catNext',btnPrev:'#catPrev'}).show().css({position:'absolute',left:'60px'}); $('div.brands-carouse').jCarouselLite({visible:5,btnNext:'#brNext',btnPrev:'#brPrev'}).show().css({position:'absolute',left:'30px'}); $('ul.menu li').each(function(){a = $(this).find('a');if(a.text().length > 17){a.addClass('long-a-text');}}); $('div.v-menu a').click(function(evn){ if($(this).next().length){ evn.preventDefault(); $(this).next().toggle(); } }); if($('div.v-menu').length){$('div.v-menu a[class~=selected]').parents('ul').each(function(i){$(this).show();});} var line_length = Number($('ul.h-menu li.last').text().length); $('ul.h-menu li').each(function(){ if(a = $(this).find('a')){ line_length = Math.ceil(line_length + Number(a.text().length)); if(line_length > 92){ $('div.cat-top2 ul.h-menu').css('padding','3px 0 0 30px'); //li_last_text = $('ul.h-menu li.last').text().substr(0,21); //$('ul.h-menu li.last').text(li_last_text + '...'); return false; } } }); $('ul.h-menu li a').click(function(evn){ evn.preventDefault(); evn.stopPropagation(); if($(this).next().length){ $(this).next().toggle(); } else { $('div.preloader').show(); $('div.preloader b').text('Загрузка списка...'); catalog.execute({get_level_catmenu:{catid:$(this).attr('id')}}); if(catalog.result.show_menu){ $(this).after(catalog.result.show_menu); $('div.preloader').hide(); $(this).next().toggle(); $(document).click(function(){$('div.popup').hide();}); } else { window.location.href = $(this).attr('href'); } } }); if($('div.sea-select').length){ $(document).click(function(){$('div.popup').hide();}); $(".pic img").each(function(){ if($(this).attr('rel')){ realsizes = $(this).attr('rel').split('-') $(this).css({marginTop: -Number(realsizes[1])/2 + 'px'}); $(this).css({marginLeft: -Number(realsizes[0])/2 + 'px'}); } else { i = parseInt($(this).height()); $(this).css({marginTop: -i/2 + 'px'}); i = parseInt($(this).width()); $(this).css({marginLeft: -i/2 + 'px'}); } }); $('div.popup').hide(); if($('div.sea-select div.popup > ul li a[class~=selected]').length){ $('div.sea-select div.popup > ul li a[class~=selected]').each(function(a){ $(' > a.ab-select', $($(this).parents()[3])).text($(this).text()); }); //$('div.sea-select > a.ab-select').text($('div.sea-select div.popup > ul li a[class~=selected]').text()); } get_objects_on_parameters(); get_devices(); subm = false; $('#subm').css('color','#ece6e6'); if(device = $('div.filter5 div.popup ul li a[rel~=' + $('#ancestor').val() + ']').text()){ $('div.filter5 a.ab-select').text(device); } else { $('div.filter5 a.ab-select').text($('div.filter5 div.popup ul li:first a').text()); } $('div.popup li a').click(function(evn){ evn.preventDefault(); //evn.stopPropagation(); var div = $($(this).parents()[2]); div.hide(); var inputdata = div.prev(); inputdata.val($(this).attr('rel')); $(' > a.ab-select', div.parent()).text($(this).text()); var parent = $(this).parents()[3]; parent = $(parent).attr('class').split(' '); if(parent[0] == 'filter4' && Number($(this).attr('rel')) > 0){ subm = true; $('#subm').css('color','#756464'); } else { validFields(); } }); var range_input_val = function(){ if(parseInt($('div.range input:eq(0)').val()) > 0 || parseInt($('div.range input:eq(1)').val()) > 0){ subm = true; $('#subm').css('color','#756464'); } else { validFields(); } }; $('div.range input').change(range_input_val).keypress(range_input_val).keydown(range_input_val).keyup(range_input_val); $('a.ab-select').click(function(evn){ evn.preventDefault(); evn.stopPropagation(); var div_pup = $(' > div.popup', $(this).parent()); var input_id = div_pup.prev().attr('id'); $('#searchform div.popup:visible').each(function(){ if($(this).prev().attr('id') != input_id){ $(this).hide(); } }); div_pup.toggle(); //$('#series').toggle(); }); } $('#subm').click(function(evn){ evn.preventDefault(); //var form = xoad.html.exportForm('searchform'); //var url = '/~catsearch/'; //url = convert_form_to_url(form, url); if(subm){ $('#searchform').submit(); //window.location.href = url; } else{alert('Укажите параметры поиска или укажите новые параметры');} }); $('#clear_fields').click(function(evn){ evn.preventDefault(); $('#ancestor').val(6391); get_objects_on_parameters(6391, null, null, true); get_devices(6391, null, true); $('div.range input').val(''); $('#in_stock').val(''); $('div.filter4 a.ab-select').text($('#in_stock_params li:first a').text()); if($('div.catalog table.selection-table').length){ $('div.catalog table.selection-table').remove(); } else if($('div.catalog ul.cat-list').length){ $('div.catalog ul.cat-list').remove(); } if($('div.catalog div.pages').length){ $('div.catalog div.pages').remove(); } }) //$('table.s-zebra tr:even').addClass('even'); $('table.s-zebra tr:odd').addClass('tr2'); });