// Basket operations

function saveBasket(){
  var stream='';
  for(var i=0; i<basket.length; i++){ stream += basket[i]+',' }
  setLongliveCookie('basket', stream);
  basketSize = basket.length;
}

function aplyBasketElements(){
  var el;	
  for(var i=0; i<basket.length; i++){ 
    el = getObj('el'+basket[i]);
	if(el != null){ el.checked=true } 
	el = getObj('mod'+basket[i]);
	if(el != null){ el.checked=true } 
  }
  
}

function changeBasket(el){
  var newbasket = new Array();
  for(var i=0; i<basket.length; i++){ 
    if(el.value != basket[i]){ newbasket.push(basket[i])}
  }
  if(el.checked){newbasket.push(el.value)}
  basket = newbasket;
  saveBasket();
  showBasketState();
}

function delFromBasket(id){
  var newbasket = new Array();
  for(var i=0; i<basket.length; i++){ 
    if(id != basket[i]){ newbasket.push(basket[i])}
  }
  basket = newbasket;
  saveBasket();
  showBasketState();
}

function pushBasketItem(sign, parent, name, kod, razmer, ostatok, cena){
  var template = getObj('list-item-tmp').innerHTML;
  var owner = getObj('mcontainer-'+parent);
  if(!owner){return}
  template = template.replace(/%sign%/g, sign);
  template = template.replace(/%parent%/g, parent);
  template = template.replace(/%name%/g, name);
  template = template.replace(/%kod%/, kod);
  template = template.replace(/%razmer%/, razmer);
  template = template.replace(/%ostatok%/, ostatok);
  template = template.replace(/%cena%/, cena);
  owner.innerHTML += template;
}

function deleteFromModel(sign, parent, name){
  if(!confirm(name+'\n\nПодтверждаете удаление из списка выбранных товаров?')){return}
  
  delFromBasket(sign);
  if(!basketSize){document.location = '/catalog/category/'}

  getObj('el'+sign).className='hide'; 
  var isNotEmpty = 0;
  for(var i=0; i<basket.length; i++){ 
    if(basket[i].indexOf(parent+'-') >= 0 ){ isNotEmpty = 1 }
  }
  if(!isNotEmpty){
    var owner = getObj('model-'+parent);
	if(owner){owner.className = 'hide'}
  }
}

function killBasket(){
  if(confirm('Очистить список выбранных товаров и перейти в каталог?')){
    setLongliveCookie('basket', '');
    document.location = '/catalog/category/';
  }
}

// Catalog find form

var catFType = new String('');
var catFStrana = new String('');
var catFFabrika = new String('');

var catIndexes = new Array();
var catTNames = new Object();
var catSNames = new Object();
var catFNames = new Object();
var selected;

function catFirstBuildFilter(p, t, s, f, mn, mx){
  if(p=='find'){
   catFType = t;
   catFStrana = s;
   catFFabrika = f;
  }
  if((!isNaN(mn))&&(!isNaN(mx))){
    getObj('p-min').value= mn;
    getObj('p-max').value = mx;
  }
  catBuildFilter();
}

function catBuildFilter(){
  var tOptionsAny = '- любой -';
  var sOptionsAny = '- любая -';
  var fOptionsAny = '- любой -';
  var tOptions = new String();
  var sOptions = new String();
  var fOptions = new String();
  var tItems = new Object();
  var sItems = new Object();
  var fItems = new Object();
  var sortType = new Array();
  var sortStrana = new Array();
  var sortFabrika = new Array();

  for (var i=0; i<catIndexes.length; i++){
	if( (catIndexes[i].t!=catFType)&&(catFType!='')) {continue}
	if( (catIndexes[i].s!=catFStrana)&&(catFStrana!='')) {continue}
	if( (catIndexes[i].f!=catFFabrika)&&(catFFabrika!='')) {continue}
     // Type select options
    if(!tItems[catIndexes[i].t]){ sortType.push(catIndexes[i].t) }
     // Strana select options
    if(!sItems[catIndexes[i].s]){ sortStrana.push(catIndexes[i].s) }
     // Fabrika select options
    if(!fItems[catIndexes[i].f]){ sortFabrika.push(catIndexes[i].f) }
     // Set flags to not repeat 
    tItems[catIndexes[i].t]=1;
    sItems[catIndexes[i].s]=1;
    fItems[catIndexes[i].f]=1;
  }

  // Sorting
  sortType.sort(function(a, b){ if(catTNames[a] > catTNames[b]){return 1}else{ return -1} });
  sortStrana.sort(function(a, b){ if(catSNames[a] > catSNames[b]){return 1}else{ return -1} });
  sortFabrika.sort(function(a, b){ if(catFNames[a] > catFNames[b]){return 1}else{ return -1} });

  // Build Type`s list
  selected='';
  for(var i=0; i<sortType.length; i++){
	   if(catFType==sortType[i]){ selected=' selected ' }
	   tOptions += '<option value="'+sortType[i]+'"'+selected+'>'+catTNames[sortType[i]]+'</option>';
  }
  // Build Strana`s list
  selected='';
  for(var i=0; i<sortStrana.length; i++){
	   if(catFStrana==sortStrana[i]){ selected=' selected ' }
	   sOptions += '<option value="'+sortStrana[i]+'"'+selected+'>'+catSNames[sortStrana[i]]+'</option>';
  }
  // Build Fabrika`s list
  selected='';
  for(var i=0; i<sortFabrika.length; i++){
	   if(catFFabrika==sortFabrika[i]){ selected=' selected ' }
	   fOptions += '<option value="'+sortFabrika[i]+'"'+selected+'>'+catFNames[sortFabrika[i]]+'</option>';
  }
  
  //
  if( (catFType=='')&&(catFStrana=='')&&(catFFabrika=='') ){
    tOptionsAny = '- не выбран -';
    sOptionsAny = '- не выбрана -';
    fOptionsAny = '- не выбран -';
  }
  tOptions = '<option value="" style="color:#666666">'+tOptionsAny+'</option>'+tOptions;
  sOptions = '<option value="" style="color:#666666">'+sOptionsAny+'</option>'+sOptions;
  fOptions = '<option value="" style="color:#666666">'+fOptionsAny+'</option>'+fOptions;
  getObj('cont-t-select').innerHTML= '<select onChange="catFType=this.value; catBuildFilter()" style="margin-bottom:10px;" name="t-select" id="t-select" class="form_input">'+tOptions+'</select>';
  getObj('cont-s-select').innerHTML= '<select onChange="catFStrana=this.value; catBuildFilter()" style="margin-bottom:10px" name="s-select" id="s-select" class="form_input">'+sOptions+'</select>';
  getObj('cont-f-select').innerHTML= '<select onChange="catFFabrika=this.value; catBuildFilter()" style="margin-bottom:10px" name="f-select" id="f-select" class="form_input">'+fOptions+'</select>';
  validateParams();
}

function cleanUpFilter(){
  catFType='';
  catFStrana='';
  catFFabrika='';
  catBuildFilter();
}

function validateParams(){
  var cn = 'pseudoanch';
  if( (catFType=='')&&(catFStrana=='')&&(catFFabrika=='') ){ cn='hide' }
  var pMin = getObj('p-min').value;
  var pMax = getObj('p-max').value;
  if ((isNaN(pMin))&&(pMin!='')){ cn='hide' }
  if ((isNaN(pMax))&&(pMax!='')){ cn='hide' }
//  if (Number(pMin)>Number(pMax)){ cn='hide' }
  getObj('catalog-filter-submit').className=cn;
}

function catSubmitFilter(stamp){
  var pMin = getObj('p-min').value;
  var pMax = getObj('p-max').value;
  document.location='/catalog/find/t='+catFType+'&s='+catFStrana+'&f='+catFFabrika+'&min='+pMin+'&max='+pMax+'&stamp='+stamp;
}

function overElement(owner, visible, nom){
  if((visible)&&(owner.className=='')){
    var ico = getObj('element-ico-'+nom);
	if(ico != null){
	  src = ico.src.replace(/element120/,'element300');
	  getObj('element-preview-img').src = src;
	}
    elBody.className='';
  }else{
    elBody.className='hide';
  }
}

function flyByElement(e){
  if(elBody.className==''){
    var w = elBody.style.width.replace(/px/,'');
    var h = elBody.style.height.replace(/px/,'');
    mousePosition = mousePageXY(e);
	elBody.style.left = String(mousePosition['x']-w-30)+'px';
	elBody.style.top = String(mousePosition['y']-Math.floor(h/2))+'px';
  }
}


