function bilde(id, preceId, lang ){ var lAdd = '';
 if( typeof lang != 'undefined' && lang != '' ){ lAdd += '/' + lang; }
 window.open( lAdd + '/bilde.php?id=' + id + '&prece_id=' + preceId, 'bilde', 'menubar=no,location=no,resizable=yes,scrollbars=yes,status=no,width=660px,height=750px' );
 return false; }

function apraksts( p, pid, lang ){ var lAdd = '';
 if( typeof lang != 'undefined' && lang != '' ){ lAdd += '/' + lang; }
 window.open( lAdd + '/apraksts?parent=' + p + '&parent_id=' + pid, 'apraksts', 'menubar=no,location=no,resizable=yes,scrollbars=yes,status=no,width=660,height=550,top=50,left=200' );
 return false; }

function skaidrojums( p, pid, lang ){ var lAdd = '';
 if( typeof lang != 'undefined' && lang != '' ){ lAdd += '/' + lang; }
 window.open( lAdd + '/skaidrojums?parent=' + p + '&parent_id=' + pid, 'apraksts', 'menubar=no,location=no,resizable=yes,scrollbars=yes,status=no,width=660,height=550,top=50,left=200' );
 return false; }

function lizings( id, atl, p, komp, lang ){ var lAdd = '';
 if( typeof lang != 'undefined' && lang != '' ){ lAdd += '/' + lang; }
 if( p && komp ){
  window.open( lAdd + '/lizinga_kalkulators.php?p=' + p + '&k_id=' + komp, 'lizings', 'menubar=no,location=no,resizable=no,scrollbars=yes,status=no,width=430px,height=360px' );
 }else{
  window.open( lAdd + '/lizinga_kalkulators.php?id=' + id + ( ( atl )? '&atl=1': '' ) + ( ( p )? '&p=' + p: '' ), 'lizings', 'menubar=no,location=no,resizable=no,scrollbars=yes,status=no,width=430px,height=360px' );
 }
 return false; }

function prece_description( id, lang ){ var lAdd = '';
 if( typeof lang != 'undefined' && lang != '' ){ lAdd += '/' + lang; }
 top.preceWindow = window.open( lAdd + '/prece/' + id, 'prece_description', 'menubar=no,location=no,resizable=yes,scrollbars=yes,status=no,width=620px,height=620px' );
 return false; }

function komponente_description( id, lang ){ var lAdd = '';
 if( typeof lang != 'undefined' && lang != '' ){ lAdd += '/' + lang; }
 top.preceWindow = window.open( lAdd + '/komponente/' + id, 'komponente_description', 'menubar=no,location=no,resizable=yes,scrollbars=yes,status=no,width=620px,height=620px' );
 return false; }

function doNothing(){}

var afterTime;
function makeTimeout( check ){ if( ! check ){
  afterTime = function( func, time, ob ){ return setTimeout( function(){ func( ob ); }, time ); }
 }else{ afterTime = setTimeout; } }
setTimeout( makeTimeout, 0, true );
var noAfterTime = clearTimeout;

var ieMoveTime;
function ieFixPos( nod ){ if( ! nod ) nod = this.fixBlock;
 if( ieMoveTime ){ noAfterTime( ieMoveTime ); }
 ieMoveTime = afterTime( ieMoveTop, 20, nod );
 return nod.top; }

function makeEl(){ if( document.getElementById ){ return function( str, fr ){ var par = (fr)? fr: window; return par.document.getElementById( str ); }
 }else if(document.all){ return function( str, fr ){ var par = (fr)? fr: window; return par.document.all[ str ]; }
 }else if( document.layers ){ return function( str, fr ){ var par = (fr)? fr: window; var el = par.document.layers[ str ]; el.style = el; return el; }
 }else return doNothing; }
var el = makeEl();

function radioVal( forma, name ){ var elems = forma.elements[ name ];
 if( forma.elements ){ var elems = forma.elements[ name ];
  if( elems ){ if( elems.value ) return elems.value;
   var len = elems.length;
   for( var i = 0; i < len; ++i ){ var box = elems[ i ];
    if( box.checked ){ return box.value; } } } }
 return false; }

function ieMoveTop( nod ){ nod.style.top = ( document.documentElement.scrollTop + 10 ) + 'px'; }

top.cenas = new Object();

function format_number(summa){ var repl = /\./;
 var summa = Math.round( summa * 100 ) / 100;
 summa += '';
 var point_pos = summa.indexOf( '.' );
 if( point_pos == -1 ){ summa += ',00'; }else{ summa += '0'; summa = summa.substring( 0, point_pos + 3 ); summa = summa.replace( repl, ',' ); }
 return summa; }

function calc_cena(){ var summa = 0, uzcsumma = 0, id = 0, forma = document.forms[ 'kompl_items' ], cen, ids, typId, prodId;
 for( name in top.cenas ){ cen = top.cenas[ name ];
  ids = [];
  typId = radioVal( forma, name );
  if( typId ){ prodId = radioVal( forma, name + '_' + typId );
   if( prodId ){ if( prod = top.cenas[ name ][ 'types' ][ typId ][ 'products' ][ prodId ] ){ summa += prod.price;
     uzcsumma += prod.upprice;
     if( top.cenas[ name ][ 'view' ] ){ if( prod.swf ){ komplSwf( prod.swf, prod.swf ); }else if( prod.img ){ komplImg( prod.img, prod.img ); } } } } } }
 return { 'summa': summa, 'uzcsumma': uzcsumma }; }

var kompl_cena = 0, kompl_uzcena = 0;
function show_cena(){ var prices = calc_cena(), cena = prices.summa, uzcena = prices.uzcsumma, atl = uzcena - cena, lizcena;
 kompl_cena = cena * 100;
 kompl_uzcena = uzcena * 100;
 lizcena = hansalizings( 1, 36, 25/12/100, cena );

 atl = format_number( atl );
 cena = format_number( cena );
 uzcena = format_number( uzcena );
 lizcena = format_number( lizcena );

 el( 'kompl_cena_cip' ).innerHTML = 'Ls ' + cena;
 el( 'kompl_cena_cip_box' ).innerHTML = 'Ls ' + cena;
 el( 'kompl_atl_cip' ).innerHTML = '15% (Ls ' + atl + ')';
 el( 'kompl_atl_cip_box' ).innerHTML = '15% (Ls ' + atl + ')';
 el( 'kompl_uzcena_cip' ).innerHTML = 'Ls ' + uzcena;
 el( 'kompl_uzcena_cip_box' ).innerHTML = 'Ls ' + uzcena;
//  el( 'kompl_cena_liz' ).innerHTML = lizcena;
//  el( 'kompl_cena_liz_box' ).innerHTML = lizcena;
}

function hansalizings( m, n, R, principal ){ //hansalizings( 1, 36, 25/12/100, 1000 )
 var Z = 1 / ( 1 + ( R / m ) );
 return ( ( 1 - Z ) * principal ) / ( Z * ( 1 - Math.pow( Z, n ) ) ); }

function click_type( nod ){ var nam = nod.name, ind = nam.lastIndexOf( '_' ), name = nam.substring( 0, ind ), forma = document.forms[ 'kompl_items' ], id = nam.substring( ind + 1, nam.length );
 radioUncheck( forma, name );
 radioUncheckProduct( forma, name );
 radioCheckVal( forma, name, id );
 nod.checked = true;
 top.cenas[ name ][ 'types' ][ id ][ 'defProduct' ] = nod.value;
 show_cena(); }

function radioUncheckProduct( forma, name ){ if( forma.elements ){ var elems = forma.elements, len = elems.length, box;
  for( var i = 0; i < len; ++i ){ box = elems[ i ];
   if( box.name.indexOf( name ) != -1 ){ if( box.checked ){ box.checked = false; } } } }
 return true; }

function click_item( nod ){ var forma = document.forms[ 'kompl_items' ], name, elems, defProduct, len, box;
 if( forma.elements ){ name = nod.name + '_' + nod.value;
  radioUncheckProduct( forma, nod.name );
  elems = forma.elements[ name ];
  defProduct = top.cenas[ nod.name ][ 'types' ][ nod.value ][ 'defProduct' ];
  len = elems.length;
  for( var i = 0; i < len; ++i ){ box = elems[ i ];
   if( box.value == defProduct ){ box.checked = true; } } }
 nod.checked = true;
 show_cena();
 return true; }

function radioCheckVal( forma, name, val ){ var elems, len, box;
 if( forma.elements ){
  if( elems = forma.elements[ name ] ){
   if( elems.value == val ) return elems.checked = true;
   len = elems.length;
   for( var i = 0; i < len; ++i ){ box = elems[ i ];
    if( box.value == val ){ return box.checked = true; } } } }
 return false; }

function radioUncheck( forma, name ){ var elems, len, box;
 if( forma.elements ){
  if( elems = forma.elements[ name ] ){
   if( elems.checked ) return elems.checked = false;
   len = elems.length;
   for( var i = 0; i < len; ++i ){ box = elems[ i ];
    if( box.checked ){ return box.checked = false; } } } }
 return true; }

function showHideNode( nod ){ if( nod ){ if( nod.style ){ if( nod.style.display ){
 if( nod.style.display == 'block' ){ nod.style.display = 'none'; }else{ nod.style.display = 'block'; } } } } }

function checkDef(){ var itemName, nr, len, elem, forma = document.forms[ 'kompl_items' ], elems;
 for( itemName in top.cenas ){ elems = forma.elements[ itemName ];
  if( elems.checked ){ click_item( elems ); }
  else{ len = elems.length;
   for( nr = 0; nr < len; ++nr ){ elem = elems[ nr ];
    if( elem.checked ){ click_item( elem ); } } } } }

function getStyle( x, styleProp ){ if( x.currentStyle ){ var y = x.currentStyle[ styleProp ]; }
 else if( window.getComputedStyle ){ var y = document.defaultView.getComputedStyle( x, null ).getPropertyValue( styleProp ); }
 return y; }

function findPos( obj ){ var curleft = curtop = 0;
 if( obj.offsetParent ){ do{ curleft += obj.offsetLeft; curtop += obj.offsetTop; }while( obj = obj.offsetParent );
  return[ curleft, curtop ]; } }

// = + Filters + ===============================================================
function checkVal(){ if( this.inp && this.inp.disabled == false ){
  if( this.chk ){ this.chk = false;
   this.ind.v( 'checked', this.ind.v( 'checked' ) - 1 );
   this.inp.checked = false;
   this.inp.defaultChecked = false;
   checked_filters[ current_sad ][ this.inp.d.v( 'id' ) ] = 0; }
  else{ this.chk = true;
   this.ind.v( 'checked', this.ind.v( 'checked' ) + 1 );
   this.inp.checked = true;
   this.inp.defaultChecked = true;
   checked_filters[ current_sad ][ this.inp.d.v( 'id' ) ] = 1; }
  if( this.ind.v( 'checked' ) > 0 ){ this.ind.v( 'inf' ).v( 'deln' ).style.display = 'block'; }else{ this.ind.v( 'inf' ).v( 'deln' ).style.display = 'none'; }
  createCookie( 'filters', $.compactJSON( checked_filters ), 0 );
  var r, fl = showRes.filterValList;
  while( r = fl.next() ){ r.disabled = true; } }
 showRes.products(); }

function checkValOnly(){ if( this.inp ){
  if( this.chk ){ this.chk = false;
   this.ind.v( 'checked', this.ind.v( 'checked' ) - 1 );
   this.inp.checked = false;
   this.inp.defaultChecked = false;
   checked_filters[ current_sad ][ this.inp.d.v( 'id' ) ] = 0; }
  else{ this.chk = true;
   this.ind.v( 'checked', this.ind.v( 'checked' ) + 1 );
   this.inp.checked = true;
   this.inp.defaultChecked = true;
   checked_filters[ current_sad ][ this.inp.d.v( 'id' ) ] = 1; }
  if( this.ind.v( 'checked' ) > 0 ){ this.ind.v( 'inf' ).v( 'deln' ).style.display = 'block'; }else{ this.ind.v( 'inf' ).v( 'deln' ).style.display = 'none'; }
  createCookie( 'filters', $.compactJSON( checked_filters ), 0 ); } }

function showFilterVals( d, n ){ if( d && d.cnt && d.cnt() ){
  var ipn, c = mkEl( 'div' ), r, rn, rnn, rni, ind = n.rn.ind, inp, pi = n.rn.pi, fvl = n.rn.fvl, scnt = 0, fpcnt = showRes.productList.cnt(), hide, name;
  c.className = 'filt_values';
  while( r = d.next() ){ ipn = pi.v( r.v( 'id' ) );
   if( ipn > 0 && ipn < fpcnt ){ ++scnt;
    rn = c.appendChild( mkEl( 'div' ) );
    rn.className = 'filt_row';
    rn.d = r;
    rn.rn = rn;
    rni = rn.appendChild( mkEl( 'span', {}, inp = mkEl( 'input', { type: 'checkbox', id: 'fv_' + r.v( 'id' ) } ) ) );
    rni.ind = ind;
    rni.inp = inp;
    inp.prn = n.rn;
    inp.n = rni;
    inp.d = r;
    pi.v( r.v( 'id' ), inp );
    fvl.add( inp );
    rni.onclick = checkVal;
    rni.onshow = checkValOnly;
    rni.prn = n.rn;
    rni.rn = rn;
    rni.className = 'filt_inrow';
    ind.v( r.v( 'id' ), rni );
    rnn = rn.appendChild( mkEl( 'label', { 'for': 'fv_' + r.v( 'id' ) }, mkTx( r.v( 'name' ) ) ) );
    rnn.className = 'filt_inrow';
    inp.chk = false;
    if( typeof checked_filters[ current_sad ][ r.v( 'id' ) ] != 'undefined' && checked_filters[ current_sad ][ r.v( 'id' ) ] ){ rni.onshow(); } } }
  if( typeof checked_filters[ current_sad ] != 'undefined' ){ var r, fl = showRes.filterValList, k, chkd = false;
   for( k in checked_filters[ current_sad ] ) if( checked_filters[ current_sad ][ k ] ){ chkd = true; }
   if( chkd ){ while( r = fl.next() ){ r.disabled = true; }
    showRes.products(); } }
  if( scnt ){ mountNode( n.gn, c ); }else{ rmEl( n.rn ); } }
 else{ rmEl( n.rn ); } }

function toggleHide(){ var n = this, cn = this.cn, jn = $( this.n );
 if( n.vis ){ n.vis = false;
  jn.slideUp();
  cn.className = 'filt_name_closed';
  closed_filters[ current_sad ][ this.d.v( 'id' ) ] = 1; }
 else{ n.vis = true;
  jn.slideDown();
  cn.className = 'filt_name_opened';
  closed_filters[ current_sad ][ this.d.v( 'id' ) ] = 0; }
 createCookie( 'filters_closed', $.compactJSON( closed_filters ), 0 );
 return false; }

function drawHide(){ var n = this, cn = this.cn, jn = $( this.n );
 if( n.vis ){ jn.show(); cn.className = 'filt_name_opened'; }else{ jn.hide(); cn.className = 'filt_name_closed'; } }

function toggleHidden(){ var fi = showRes.filterIndex, fk = fi.keys(), f, n;
 if( this.opened ){ while( f = fi.v( fk.next() ) ){ n = f.v( 'inf' ).v( 'hiden' );
   if( n.vis ){ n.vis = false;
    $( n.n ).slideUp();
    n.cn.className = 'filt_name_closed';
    closed_filters[ current_sad ][ n.d.v( 'id' ) ] = 1; } }
  mountNode( this, mkTx( filterTexts[ 'Atvērt visus' ] ) );
  this.opened = false; }
 else{ while( f = fi.v( fk.next() ) ){ n = f.v( 'inf' ).v( 'hiden' );
   if( ! n.vis ){ n.vis = true;
    $( n.n ).slideDown();
    n.cn.className = 'filt_name_opened';
    closed_filters[ current_sad ][ n.d.v( 'id' ) ] = 0; } }
  mountNode( this, mkTx( filterTexts[ 'Aizvērt visus' ] ) );
  this.opened = true; }
 createCookie( 'filters_closed', $.compactJSON( closed_filters ), 0 );
 return false; }

var control_all = mkEl( 'div' ), resizables = {}, filtDelLink;
function showFilters( d, n ){ if( d && d.cnt && d.cnt() > 0 ){
  var rn, r, c = n, rnn, ind = new i(), fi = showRes.productIndex, fvi, fvl, name, hide, cont, close_n, tmp, filt_c;

  c.className = 'filters';
  showRes.filterValList = new l();
  fvl = showRes.filterValList;
  showRes.filterIndex = ind;

  tmp = c.appendChild( mkEl( 'div', {}, mkEl( 'div', {}, [
     filtDelLink = mkEl( 'a', { href:'#' }, mkTx( filterTexts[ 'Atcelt filtrus' ] ) )
   , mkEl( 'span', {}, mkTx( ' | ' ) )
   , hide_link = mkEl( 'a', { href:'#' }, mkTx( filterTexts[ 'Aizvērt visus' ] ) ) ] ) ) );
  tmp.className = 'filt_control';

  filtDelLink.onclick = delFilters;
  hide_link.opened = true;
  hide_link.onclick = toggleHidden;

  resizables.filtList = filt_c = c.appendChild( mkEl( 'div' ) );
  filt_c.className = 'filt_list';
  filt_c.style.height = ( inHeight() - 63 ) + 'px';
  while( r = d.next() ){ if( fvi = fi.v( r.v( 'id' ) ) ){ rn = filt_c.appendChild( mkEl( 'div' ) );
    rn.className = 'filt';

    close_n = rn.appendChild( mkEl( 'div', {}, mkEl( 'a', { href:'#' }, mkTx( filterTexts[ 'Atcelt' ] ) ) ) );
    close_n.className = 'filt_del';
    close_n.style.display = 'none';
    close_n.d = r;
    close_n.onclick = delFilterVals;

    hide = rnn = rn.appendChild( mkEl( 'div', {}, cont = mkEl( 'div', {}, [ name = mkEl( 'span', {}, mkTx( r.v( 'name' ) ) ) ] ) ) );
    rnn.className = 'filt_name_opened';
    name.className = 'filt_text';
    cont.className = 'filt_name_cont';

    hide.vis = ( typeof closed_filters[ current_sad ][ r.v( 'id' ) ] == 'undefined' )? ( r.v( 'closed' ) > 0? false: true ): closed_filters[ current_sad ][ r.v( 'id' ) ] > 0? false: true;
    hide.onclick = toggleHide;
    hide.cn = rnn;
    hide.d = r;
    hide.onshow = drawHide;
    hide.className = 'filt_hide';

    rn.d = r;
    rn.rn = rn;
    rn.pi = fvi;
    rn.fvl = fvl;
    rn.gn = rn.appendChild( mkEl( 'div' ) );
    rn.ind = new i( { 'checked':0, 'inf':new i( { deln:close_n, hiden:hide } ) } );
    ind.v( r.v( 'id' ), rn.ind );

    var gvn = mountNode( rn.gn, mkEl( 'div' ) );
    gvn.rn = rn;
    gvn.gn = gvn;
    gvn.d = rn.d;
    showFilterVals( r.v( 'vals' ), gvn );
    hide.n = gvn;
    hide.onshow(); } } }
 else{ clearNode( n ); } }

window.onresize = function(){ if( resizables.filts ) resizables.filts.style.height = ( inHeight() - 20 ) + 'px';
 if( resizables.filtList ) resizables.filtList.style.height = ( inHeight() - 63 ) + 'px'; }

var filtersNode;
function getFilters(){ showFilters( this.l, filtersNode ); }

function delFilterVals(){ var fvi = showRes.filterIndex.v( this.d.v( 'id' ) ), fvk = fvi.keys(), k, vkp;
 while( k = fvk.next() ) if( k != 'checked' && k != 'inf' ){ vkp = fvi.v( k ); if( vkp.chk ) vkp.onshow(); }
 showRes.products();
 return false; }

function delFilters(){ var r, r2, v1, vk1, vkp;
 while( r = showRes.filterValList.next() ){ if( r.n.chk ) r.n.onshow(); }
 showRes.products();
 return false; }

function showProducts( d, n ){ if( d ){
  var tl, chf = new l(), r, r2, pfk, pf, rn, fi = showRes.filterIndex, fl = new l(), fk = fi.keys(), t, t2, t3, tk, valid, pd = showRes.productsDom, spi = showRes.productIndex, del_link;
  while( r = fk.next() ){ t = fi.v( r );
   if( t3 = t.v( 'checked' ) ){ fl.add( new i( { id: r, vals: t } ) );
    tk = t.keys();
    while( r2 = tk.next() ){ if( r2 != 'checked' && r2 != 'inf' ){ t2 = t.v( r2 ); t2.inp.disabled = false; } }
    if( t3 > 1 ){ while( r2 = tk.next() ){ if( r2 != 'checked' && r2 != 'inf' && ( t2 = t.v( r2 ) ).chk ){ t2.inp.disabled = true;
     chf.add( new i( { f: r, fv: r2, inp: t2 } ) ); } } } } }
  if( filtDelLink && fl.cnt() > 0 ){ filtDelLink.className = 'attention'; }else{ filtDelLink.className = ''; }
  if( pd ){ c = pd; }else{ c = mkEl( 'div' ); clearNode( n ); }
  while( r = d.next() ){ valid = true;
   while( r2 = fl.next() ){ if( ! ( t = r.v( 'filters' ).v( r2.v( 'id' ) ) ) || ! ( t = r2.v( 'vals' ).v( t ) ) || ! t.chk ){ valid = false;
     fl.rewind();
     break; } }
   if( !pd ){ rn = c.appendChild( mkEl( 'div' ) ); rn.appendChild( r.v( 'dom' ) ); }
   if( valid ){ r.v( 'dom' ).style.display = 'block';
    pf = r.v( 'filters' );
    pfk = pf.keys();
    while( r2 = pfk.next() ){ if( ( t = spi.v( r2 ) ) && ( t = t.v( pf.v( r2 ) ) ) && ! t.checked ){ t.disabled = false; } }
    while( r2 = chf.next() ){ if( ! ( t = r.v( 'filters' ).v( r2.v( 'f' ) ) ) || ( t != r2.v( 'fv' ) ) ){ r2.v( 'inp' ).inp.disabled = false; } } }
   else{ r.v( 'dom' ).style.display = 'none'; } }
  if( !pd ){ showRes.productsDom = c; mountNode( n, c ); }
  c.scrollIntoView(); }
 else{ mountNode( n, mkTx( 'Nekas nav atrasts' ) ); } }

var checked_filters = {}, saved_filters, closed_filters = {}, saved_closed_filters;
if( saved_filters = readCookie( 'filters' ) ){ checked_filters = $.evalJSON( saved_filters ); }else{ createCookie( 'filters', '', 0 ); }
if( saved_closed_filters = readCookie( 'filters_closed' ) ){ closed_filters = $.evalJSON( saved_closed_filters ); }else{ createCookie( 'filters_closed', '', 0 ); }
function mountFilters( n, l ){ var tmp;
 tmp = n.appendChild( mkEl( 'div' ) );
 tmp.d = current_sad;
 tmp.n = tmp;
 tmp.l = l;
 tmp.load = getFilters;
 if( typeof checked_filters[ current_sad ] == 'undefined' ) checked_filters[ current_sad ] = {};
 if( typeof closed_filters[ current_sad ] == 'undefined' ) closed_filters[ current_sad ] = {};
 tmp.load(); }

function compProdPrice( a, b ){ return ( a.v( 'price' ) - b.v( 'price' ) ); }

function onFilterLoad( o ){ showRes.productList = o.prods;
 showRes.productList.sort( compProdPrice );
 if( !showRes.productIndex ){ var r, r2, pl = showRes.productList, fl, flk, fi = new i(), fv, fvk;
  while( r = pl.next() ){ fl = r.v( 'filters' );
   flk = fl.keys();
   while( r2 = flk.next() ){ if( ! ( fv = fi.v( r2 ) ) ){ fv = new i(); fi.v( r2, fv ); }
    fvk = fl.v( r2 );
    fv.v( fvk, fv.v( fvk ) + 1 ); } }
  showRes.productIndex = fi; }
 mountFilters( filtersNode, o.filts ); }
// = - Filters - ===============================================================
