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');
});