function textres(objname, myfx_after){
	var o = $(objname), minrows = o.rows;
	o.style.overflow = 'hidden';
	o.style.height = '';
	addEvent(o, 'keydown', function(){textrescb(o, minrows);if(myfx_after) myfx_after();});
	addEvent(o, 'keyup', function(){textrescb(o, minrows);if(myfx_after) myfx_after();}); // stisk backspace/enter zaregistruje az po UP
	textrescb(o, minrows);
}
function textrescb(o, minrows){
	var cols = 150, str = o.value, r = str.split("\n"), rows = r.length, rlen, chars = 0, i;
	
	for(i=0; i<rows; i++){ // s každým ENTEREM
		if(!r[i]) continue;
		rlen = r[i].length;
		chars+=rlen;
		if(rlen > cols+1){
			rows+= Math.ceil(r[i].length / cols)-1;
		}
	}
	rows++;
	o.rows = rows < minrows ? minrows : rows;
	
	i=0;
	while(o.scrollHeight > o.offsetHeight && i < 7){
		o.rows++;
		i++; // maximum 7 řádků
	}
};


function comment_edit(a, id)
{
	var txt = $('txt'+id);
	var com=$('comment'+id);
	var ftext = com.getElementsByTagName('DIV')[1];
	
	if(!txt)
	{
		a.className = 'loading';
		a.innerHTML = '[načítám...]';
		
		get('/?comment_id='+id, function(r){
			a.className = '';
			a.innerHTML = '[uložit změny]';
			
			txt = document.createElement('TEXTAREA');
			
			txt.value = r;
			txt.rows = 4;
			txt.id = 'txt'+id;
			
			ftext.style.display='none';
			com.insertBefore(txt, ftext);
			
			textres('txt'+id);
		});
	}
	else
	{
		a.className = 'loading';
		a.innerHTML = '[ukládám...]';
		
		get('/?comment_id='+id+'&edit='+encodeURIComponent(txt.value), function(r){
			a.className = '';
			a.innerHTML = '[editovat]';
			
			txt.parentNode.removeChild(txt);
			
			ftext.innerHTML = r;
			ftext.style.display = 'block';
			
			if(!r){
				com.parentNode.removeChild(com);
				
				var o=$('comments_count'), cont=$('comments');
				if(o){
					var els=cont.getElementsByTagName('DIV'), i, j=0;
					for(i=0; i<els.length; i++){
						if(hasClass(els[i], 'comment')) j++;
					}
					if(j==0){
						o.className='';
						cont.innerHTML = '<div class="nocomments">Bez komentáře.</div>';
					}
					o.innerHTML=j;
				}
				alert('Komentář byl smazán!');
			}
		});
	}
	
	return false;
}


/*---------- CLASSES -----------------------------*/
function hasClass(o,s){
	cn = o.className;
	if(cn) return cn.match(new RegExp('(^| )('+s+')($| )', 'i'));
	return 0;
}

function addClass(o, s){
	if(!hasClass(o,s)) o.className+= (o.className ? ' ' : '')+s;
}

function removeClass(o,ss){
	var i, r;
	if(typeof ss!='object') ss=[ss];
	for(i=0; i<ss.length; i++){
		r = new RegExp('(^| )'+ss[i]+'($| )', 'g');
		o.className = o.className.replace(r, '$2');
	}
}

/*-------------------------------------------------*/

function $(o){
	return document.getElementById(o);
}

function blank(o){
	o.target='_blank';
	return true;
}

function getParent(o, el, classval, level, deep){
	var i=0;
	el=el.toLowerCase();
	if(!level)level=0;
	if(classval) rgp=new RegExp('(^| )('+classval+')($| )', 'g');
	while(o){
		if(i>=level && o.nodeName.toLowerCase()==el && (!classval || (o.className && o.className.match(rgp) ) )) return o;
		if(i>=deep)break;
		i++;
		o=o.parentNode;
	}
	return;
}

function findOffset(o,clname){
	var x=y=0;
	do{
		if(!o || o.className==clname) break;
		y+=o.offsetTop;
		x+=o.offsetLeft;
	}while(o = o.offsetParent);
	return [x, y];
}

function trim(str) {
	str = str.replace(/^\s+/, '');
	for (var i = str.length - 1; i >= 0; i--) {
		if (/\S/.test(str.charAt(i))) {
			str = str.substring(0, i + 1);
			break;
		}
	}
	return str;
}


// IE 8 bug
function initButtons(){
	var el=$('wrap').getElementsByTagName('INPUT'), i;
	for(i=0;i<el.length;i++){
		if(el[i].type=='button' || el[i].type=='submit'){
			addEvent(el[i], 'mousedown', function(){addClass(this,'active');});
			addEvent(el[i], 'mousemove', function(){addClass(this,'hover');});
			addEvent(el[i], 'mouseout', function(){removeClass(this,['active','hover']);});
			addEvent(el[i], 'mouseup', function(){removeClass(this,['active','hover']);});
		}
	}
}


function picswap(o)
{
	p=$('bigpic');
	p.removeAttribute('width');
	p.removeAttribute('height');
	p.src=o.href;
	var i, p=o.parentNode.getElementsByTagName('A');
	for(i=0;i<p.length;i++) p[i].className='';
	o.className='on';
	return false;
}

//---------------------------------------------


// s = url#vel
function pridej(s, ks) // ks = true => increment
{
	var incr = ks === true;
	
	jsc_init('pform');
	if((i=jsc_find('pform',s))<0){
		jsc_setValue('pform',s+'//'+(incr ? 1 : ks),-1);
		ks=(incr ? 1 : ks);
	}else if(ks==0){
		jsc_unsetValue('pform',i);
		ks=0;
	}else{
		if(incr) ks=parseInt(jsc_arr['pform'][i].split(jsc_glue2)[1])+1; // zvedneme
		jsc_setValue('pform',s+'//'+ks, i);
	}
	return ks;
}


var pURI='';
var vlozeno_p=1;
var init=1;
function obnovkosik(cely)
{
	var i, j, cks=0, ko=$('lblKosik'), vo=$('vlozeno'), p=0, s, o, id;
	
	// spocitame pocet polozek
	jsc_init('pform');
	for(i=0;i<jsc_arr['pform'].length;i++){
		s=jsc_arr['pform'][i].split(jsc_glue2);
		s[1]=parseInt(s[1]);
		if(s[1]>0){
			if(s[0]==pURI || (s[0]=s[0].split('#')) && s[0][0]==pURI) p=1;
			cks+=s[1];
			id = s[0][0] ? s[0][0] : s[0];
			
			if(cely && s[1] > 0 && ( (o=$(s[0])) || (o=$(s[0][0])) ) && o.id ){ // protoze IE 6, vezme i atribut .name
				o=o.getElementsByTagName('A')[1];
				if(o.className=='add2cart') o.onclick();
				o=$('vel'+id).getElementsByTagName('INPUT');
				for(j=0; j<o.length; j++){
					if(o[j].name==id+(s[0][1] ? '#'+s[0][1] : '')){
						o[j].value = s[1];
						o[j].style.backgroundColor = '#d1ffd7';
					}
				}
			}
		}
	}
	if(pURI && vo){
		if(vlozeno_p!=p){ // pokud se u produktu zmenil pocet z 0 na +, tak zobrazime panel "vlozeno"
			vlozeno_p=p;
			gtimer.add(250, 'sin', function(n){setOpacity(vo,n);}, p ? 0 : 10, p ? 10 : 0, null, vo.id);
		}
	}
	
	init = 0;
	if(!ko) return;
	
	i=0;//ko.className.indexOf('fix');
	if(cks>0){
		//ko.innerHTML = 'V košíku máte '+cks+' polož'+(cks < 5 ? ((cks < 2) ? 'ku' : 'ky')  : 'ek')+'.';
		ko.innerHTML = 'Nákupní košík<em>'+cks+' ks</em>';
		ko.className = 'plny-kosik'+(i>0?' fix':'');
		ko.href = '/kosik/';
	}else{
		ko.innerHTML = 'Nákupní košík je prázdný';
		ko.className = 'prazdny-kosik'+(i>0?' fix':'');
		ko.removeAttribute('href');
	}
}


function dokose2inp(o) // input
{
	var i=trim(o.value);
	if(i!=o.value) o.value=trim(o.value);
	var ok = parseInt(i)==i && parseInt(i)>0;
	
	o.style.backgroundColor = ok ? '#d1ffd7' : '#fff';
	
	pridej(o.name, ok ? i : 0);
	obnovkosik();
}

function dokose2ks(o,j) // plus, minus
{
	var p = getParent(o, 'DIV'), vel;
	o = p.getElementsByTagName('INPUT')[0];
	var i=parseInt(o.value);
	if(isNaN(i) || i<0) i=0;
	i+=j;
	if(i<=0){
		o.value='';
		o.style.backgroundColor='#fff';
		i=0;
	}else{
		o.value = i;
		highlight(o,'#ffffff','#d1ffd7',0.2);
	}
	
	setTimeout(function(){
		i=parseInt(o.value);
		if(isNaN(i) || i<0) i=0;
		o.style.backgroundColor=(i<=0?'#ffffff':'#d1ffd7');
	},200);
	
	pridej(o.name, i);
	obnovkosik();
	return false;
}


function hex2rgb(h){
	h = (h.charAt(0)=="#") ? h.substring(1,7) : h;
	var r,g,b;
	r = parseInt(h.substring(0,2),16);
	g = parseInt(h.substring(2,4),16);
	b = parseInt(h.substring(4,6),16);
	
	return isNaN(r) || isNaN(g) || isNaN(b) ? [255,255,255] : [r,g,b];
}


function highlight(o, startColor, finalColor, sp){
	var steps, i, srgb, frgb;
	
	srgb = hex2rgb(startColor);
	frgb = finalColor ? hex2rgb(finalColor) : [255,255,170];
	sp*= 1000;
	
	steps = Math.abs(frgb[0]-srgb[0]);
	if ((i = Math.abs(frgb[1]-srgb[1]))>steps) steps=i;
	if ((i = Math.abs(frgb[2]-srgb[2]))>steps) steps=i;
	
	function fx(srgb, frgb, sp){
		gtimer.add(sp, 'cos', function(n){
			var i, b;
			if(steps==n) srgb=frgb;
			else
				for(i=0;i<3;i++)
					if(srgb[i]!=frgb[i]){
						b = srgb[i];
						srgb[i]+=Math.round((frgb[i]-srgb[i])/(steps-n));
						if((srgb[i] > frgb[i] && b < frgb[i]) || (srgb[i] < frgb[i] && b > frgb[i])) srgb[i]=frgb[i];
					}
			
			if(o)o.style.backgroundColor='rgb('+srgb[0]+','+srgb[1]+','+srgb[2]+')';
		}, 0, steps);
	}
	
	fx(srgb, frgb, sp);
}


//-------------


function dokose2(url, v)
{
	var o=$(url).getElementsByTagName('A')[1], add=o.className=='add2cart', i, vo=$('vel'+url), s, it=getParent(o, 'div', 'itemw');
	o.className='add2cart'+(add?'2':'');
	o.title=add?'Odebrat z košíku':'Přidat do košíku';
	
	if(add){
		if(!vo){
			vo=document.createElement('DIV');
			vo.className='vel';
			vo.id='vel'+url;
			s='<div class="vel2">';
			for(i=0; i<v.length;i++){
				s+='<div><a title="-1 ks" onclick="return dokose2ks(this,-1)" class="minu"></a><a href="#" title="+1 ks" onclick="return dokose2ks(this,1)"></a><input type="text" name="'+url+(v.length > 1 ? '#'+v[i] : '')+'" maxlength="3" onkeyup="dokose2inp(this)"><em>ks</em><label>'+v[i]+'</label></div>';
			}
			s+='</div>';
			vo.innerHTML=s;
			o.parentNode.appendChild(vo);
		}else
			vo.style.display='block';
		
		if(v.length==1 && !init) dokose2ks(vo.getElementsByTagName('A')[0], 1);
		
		i=v.length*23+12;
		it.style.paddingBottom=i+'px';
	}
	else if(vo){
		vo.style.display='none';
		it.style.paddingBottom='';
		o=vo.getElementsByTagName('INPUT');
		for(i=0;i<o.length;i++){
			o[i].value='';
			o[i].style.background='';
			o[i].className='';
			pridej(o[i].name, 0);
		}
		obnovkosik();
	}
	return false;
}


// v = velikosti, vybrana velikost
function dokose(v, vi)
{
	var o=$('add2cart'), i, j, ks, ko=$('lblKosik'), id=pURI+(vi ? '#'+vi : ''), vs=$('velikosti'), vsbg=$('velikostibg'), s;
	
	if(v.length>1 && !vi){
		addClass(o, 'active2');
		
		if(!vs){
			var vsbg = document.createElement('DIV');
			vsbg.id = 'velikostibg';
			o.parentNode.appendChild(vsbg);
			
			var vs = document.createElement('DIV');
			vs.id = 'velikosti';
			vs.style.display='none';
			s='<div>Zvolte velikost:<br />';
			for(i=0; i<v.length; i++){
				if (v[i].length > 8) s+='<span class="btnWide">';
				else if (v[i].length > 3) s+='<span class="btnMid">';
				s+='<input type="button" value="'+v[i]+'" onclick="dokose([\''+v.join('\',\'')+'\'],this.value)" />';
				if (v[i].length > 3) s+='</span>';
			}
			vs.innerHTML = s;
			o.parentNode.appendChild(vs);
			initButtons();
		
		}
		
		if(vs.style.display=='none'){
			// budeme animovat
			vs.style.visibility='hidden';
			vs.style.display='block';
			
			var h2=vs.offsetHeight, w2=vs.parentNode.offsetWidth-4-5;
			var vlen=10, hlen=5;
			
			vs.style.height=h2+'px';
			vs.style.width=w2-(hlen*2)+'px';
			vs.style.left=hlen+'px';
			//---
			vsbg.style.position='absolute';
			vsbg.style.height=h2+'px';
			vsbg.style.width=w2-(hlen*2)+'px';
			vsbg.style.left=hlen+'px';
			
			vsbg.style.display='block';
			
			vs.style.visibility='visible';
			
			
			gtimer.add(100, 'sin', function(n){
				var vs=$('velikostibg');
				vs.style.height=h2+n+'px';
			}, 0, vlen, null, 'ab'); // tady mame jediny identifikator
			
			gtimer.add(100, 'sin', function(n){
				var vs=$('velikostibg');
				vs.style.left=n+'px';
				vs.style.width=w2-(n*2)+'px';
			}, hlen, 0, null, 'abx'); // tady mame jediny identifikator
			
			
		}
		else {
			// už má velikosti ale kliknul znova na tlačítko => vypneme
			removeClass(o, 'active2');
			vsbg.style.display='none';
			vs.style.display='none';
			vs.parentNode.parentNode.style.height='auto';
		}
		
		if(vs=$('vlozeno')) vs.style.visibility='hidden';
		
		return; // RETURN
	}
	else if(!vi) {
		vi=v[0];
	}
	
	//--------------------
	
	if(vs){
		removeClass(o, 'active2');
		vsbg.style.display='none';
		vs.style.display='none';
		vs.parentNode.parentNode.style.height='auto';
	}
	
	vs=$('vlozeno');
	if(!vs){
		vs=document.createElement('DIV');
		vs.id='vlozeno';
		vs.innerHTML = '...bylo vloženo <a href="/kosik/">do košíku</a>.';
		vs.style.visibility='hidden';
		o.parentNode.parentNode.appendChild(vs);
	}
	setOpacity(vs, 0);
	vs.style.visibility='visible';
	
	
	vs=$('vel');
	if(!vs){
		vs=document.createElement('DIV');
		vs.id='vel';
		vs.className='vel';
		s='<div class="vel2">';
		for(i=0; i<v.length; i++){
			s+='<div><a title="-1 ks" onclick="return dokose2ks(this,-1)" class="minu"></a><a href="#" title="+1 ks" onclick="return dokose2ks(this,1)"></a><input type="text" name="'+pURI+(v.length > 1 ? '#'+v[i] : '')+'" maxlength="3" onkeyup="dokose2inp(this)"><em>ks</em><label>'+v[i]+'</label></div>';
		}
		s+='</div>';
		vs.innerHTML=s;
		o.parentNode.parentNode.appendChild(vs);
	}else
		vs.style.display='block';
	
	//----------------------------
	
	vlozeno_p=0; // udela flash
	
	for(i=0; i<v.length; i++){
		if(v[i] == vi) break;
	}
	vs=vs.getElementsByTagName('DIV')[0].getElementsByTagName('DIV')[i];
	vs.getElementsByTagName('A')[1].onclick();
	
	
	//--- animujeme
	var di=document.createElement('div');
	di.style.border='1px solid #bbb';
	di.style.position='absolute';
	var pic=$('bigpic');
	var xy=findOffset(pic);
	di.style.left=xy[0]+'px';
	di.style.top=xy[1]+1+'px';
	di.style.width=pic.offsetWidth-2+'px';
	di.style.height=pic.offsetHeight-2+'px';
	document.body.appendChild(di);
	
	var xy2=findOffset(ko);
	
	function dio(c){di.style.border='1px solid #'+c;}
	setTimeout(function(){dio('ccc');},200);
	setTimeout(function(){dio('ddd');},400);
	setTimeout(function(){dio('eee');},600);
	
	gtimer.add(500, 'sin', function(n){setOpacity(pic,n);}, 8, 10, null, 'a'); // tady mame jediny identifikator
	
	gtimer.add(500, 'sin', function(n){di.style.top=n+'px';}, xy[1], xy2[1], null);
	gtimer.add(500, 'sin', function(n){di.style.left=n+'px';}, xy[0], xy2[0], null);
	gtimer.add(500, 'sin', function(n){di.style.height=n+'px';}, pic.offsetHeight, ko.offsetHeight);
	gtimer.add(500, 'sin', function(n){di.style.width=n+'px';}, pic.offsetWidth, ko.offsetWidth, function(){
		di.style.display='none';
	});
	
	return false;
}


function more(o,i)
{
	var p=$('more_cont_'+i);
	if(!p) return;
	var pm=getParent(p,'DIV',0,1);
	
	if(o.className=='more-on'){
		o.className='';
		gtimer.add(500, 'sin', function(n){setOpacity(p,n);}, 10, 0, null, 'link'+i);
		gtimer.add(500, 'sin', function(n){pm.style.height=n+'px';}, pm.offsetHeight, 0, null, 'linkx'+i);
	}else{
		o.className='more-on';
		p.style.display='block';
		p.style.top=0;
		var h=p.offsetHeight;
		if(pm.style.height == '') pm.style.height=0;
		
		gtimer.add(500, 'sin', function(n){setOpacity(p,n);}, 0, 10, null, 'link'+i);
		gtimer.add(500, 'sin', function(n){pm.style.height=n+'px';}, pm.offsetHeight, h, null, 'linkx'+i);
		
		var y = findOffset(p)[1];
		var y2 = getViewportHeight();
		var sct = getScrollTop();
		
		if (y+h > y2+sct){
			gtimer.add(500, 'sin', function(n){window.scrollTo(0,n);}, sct, sct+(y+h)-(y2+sct)+50, null, 'linkxx'+i);
		}
	}
	return false;
}

function setOpacity(o,v){
	o.style.opacity = v/10;
	o.style.filter = 'alpha(opacity='+v*10+')';
}


//------------------------------- TIMER, Martin Zvarik
var gtimer = {
	add : function(duration, type, fx, nStart, nEnd, donefx, uid, dontStart){
		var t=this;
		if(typeof t.idcounter=='undefined') t.idcounter = 0;
		if(typeof t.actions=='undefined') t.actions = [];
		if(typeof t.starttime=='undefined') t.starttime = [];
		if(typeof t.done=='undefined') t.done = []; // uklada se sem done(id) nebo done(id,i)
		if(typeof t.uid2id=='undefined') t.uid2id = [];
		
		var act, ta = t.actions, id, i=0, nDiff = (nEnd > nStart) ? nEnd-nStart : nStart-nEnd;
		
		if(uid && t.uid2id[uid]>0){
			if(!dontStart) t.stopUID(uid);
			id = t.uid2id[uid];
		}else{
			id = ++t.idcounter;
			if(uid) t.uid2id[uid] = id;
		}
		
		act = [duration, type, fx, nStart, nEnd, nDiff];
		if(ta[id]){
			i=ta[id].length;
			ta[id][i] = act;
		}else
			ta[id] = [act];
		
		if(donefx) t.done[id+','+i] = donefx;
		
		if(!dontStart) t.start(id);
		
		return id;
	},
	stopUID : function(uid, forceFinish){
		var t=this;
		if(typeof t.uid2id!='undefined' && t.uid2id[uid]>0) t.stop(t.uid2id[uid], forceFinish);
	},
	startUID : function(uid){
		var t=this;
		if(typeof t.uid2id!='undefined' && t.uid2id[uid]>0) t.start(t.uid2id[uid]);
	},
	stop : function(id, forceFinish){ // forceFinish TODO
		var t=this, i, ta=t.actions;
		if(ta[id]){
			if(forceFinish){
				for(i=0; i<ta[id].length; i++) t._finish_i(id,i);
			}
			ta[id]=0;
		}
	},
	start : function(id){
		var t=this, u;
		t.starttime[id] = new Date().getTime();
		if(!t.intID) t.intID = window.setInterval(function(){t._timer();}, 20);
	},
	_finish_i : function(id, i){
		var t=this, ta=t.actions;
		if(!ta[id][i]) return;
		movement = ta[id][i][4];
		ta[id][i][2](movement);
		ta[id][i] = 0;
		if(t.done[id+','+i]){
			t.done[id+','+i]();
			t.done[id+','+i] = 0;
		}
	},
	_timer : function(){
		var i, id, elapsed, progress, moved=0, movement=0, t=this, ta=t.actions;
		
		var now = new Date().getTime();
		
		for(id in ta){
			if(ta[id] === 0) continue;
			
			for(i=0; i<ta[id].length; i++){
				if(!ta[id][i]) continue;
				
				elapsed = now - t.starttime[id];
				if(ta[id][i][0] <= elapsed){ // uz sme meli skoncit
					t._finish_i(id, i);
				}else{
					moved=1;
					progress = ta[id][i][0] / elapsed;
					
					if(ta[id][i][1] == 'sqsin')
						movement = Math.sqrt(Math.cos((1-1/progress)*Math.PI/2)) * ta[id][i][5];
					else if(ta[id][i][1] == 'sin')
						movement = Math.cos((1-1/progress)*Math.PI/2) * ta[id][i][5]; // tady mam neco spatne
					else if(ta[id][i][1] == 'cos')
						movement = Math.sin((1/progress)*Math.PI/2) * ta[id][i][5];
					else
						movement = ta[id][i][5] / progress;
					
					movement = Math.round(movement*1000)/1000;
					movement = (ta[id][i][3] > ta[id][i][4]) ? ta[id][i][3] - movement : ta[id][i][3] + movement;
					
					ta[id][i][2](movement);
				}
			}
			if(!moved){
				ta[id] = 0; // tato skupina se uz nebude prochazet
				if(t.done[id]){
					t.done[id]();
					t.done[id] = 0;
				}
				moved = 1; // ukoncime to az priste, v uzivatelske funkci muze byt dalsi gtimer, a ted bysme ho zastavili
			}
		}
		if(!moved) t.die(); // pokud se nic nepohlo => koncime
	},
	/*isDone : function(uid){
	},
	onDone : function(uid, fn){
		var t=this;
		if(t.uid2id[uid]>0) t.done[t.uid2id[uid]] = fn;
	},*/
	die : function(){
		var t=this;
		window.clearInterval(t.intID);
		t.intID = 0;
		t.actions = [];
		t.starttime = [];
		t.done = [];
	}
}



function getcity(o){
	var s=o.value, p=$('mesto');
	if(s){
		s=s.replace(/[^0-9]/g,'');
		if(s.length==5 && !p.value){
			p.readonly = true;
			p.style.backgroundColor = '#eee';
			setTimeout(function(){p.style.backgroundColor='';p.removeAttribute('readonly');},1000);
			get('?psc='+s,function(r){
				p.style.backgroundColor='';
				p.removeAttribute('readonly');
				if(!p.value) p.value=r;
			});
		}
	}
}

var _g=[];
function get(uri, fx){
	var A;
	if(window.XMLHttpRequest)
		A = new XMLHttpRequest();
	else if(window.ActiveXObject){
		try {
			A = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				A = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	if(!A) return alert('Váš prohlížeč tuto funkci nepodporuje.');
	
	_g[uri]=0;
	
	A.open('GET', uri+'&'+Math.random(), true);
	A.onreadystatechange=function(){
		if(A.readyState==4 && _g[uri] == 0){
			_g[uri]=1;
			if(A.status==200){
				if(fx) fx(A.responseText);
				else if(A.responseText) alert(A.responseText);
			}
		}
	};
	A.send(null);
}


//----------------------

function ttipOn(i, o){
	var oo = $('ttip'+i);
	oo.style.top = (o.offsetTop+o.parentNode.offsetTop+o.offsetHeight+10)+'px';
	oo.style.left = (o.offsetLeft-105)+'px';
	oo.style.visibility='visible';
}
function ttipOff(i){
	$('ttip'+i).style.visibility='hidden';
}

//----------------------

function onstat(o){
	var ch=o.value.toLowerCase()=='sk' ? 1 : 0;
	if(ch==SK) return;
	SK=ch;
	// ukazeme masku
	var d=document.createElement('DIV');
	d.id='mask';
	d.style.height=document.body.offsetHeight+'px';
	document.body.appendChild(d);
	
	$('zmenastatu').value=1;
	$('frm').submit();
}


function changeqty(o,i,k){
	var ks = trim(o.value);
	QT[i] = (ks.search(/^-?[0-9]+$/) == 0) ? parseInt(ks) : 0;
	$('p'+i).innerHTML = pformat(QT[i]*PR[i]);
	if(SK) $('eup'+i).innerHTML = pformat((QT[i]*PR[i])/EU);
	jsc_setValue("pform", k+jsc_glue2+QT[i], jsc_find('pform',k));
	recount();
}

function recount(){
	var total=0, ks=0;
	for(i in QT){
		total+=QT[i]*PR[i];
		ks+=QT[i];
	}
	if(total > 0){
		//var sleva = Math.round(total*0.07);
		//$('sleva').innerHTML = '-'+pformat(sleva); 
		//total-=sleva;
		total+=D+P;
		$('do').innerHTML = D+P;
		if(SK) $('eudo').innerHTML = pformat((D+P)/SK);
		$('ks').innerHTML = ks;
	}else{
		//$('sleva').innerHTML = '0';
		$('do').innerHTML = '0';
		if(SK) $('eudo').innerHTML = '0';
		$('ks').innerHTML = '0';
	}
	
	$('tp2').innerHTML = pformat(total);
	if(SK) $('eutp2').innerHTML = pformat(total/EU);
}

function pformat(nStr){
	nStr+='';
	x=nStr.split('.');
	x1=x[0];
	x2='';
	if(x.length>1){
		x2=x[1];
		if(x[1].length>2) x2 = ('1'+x[1].substr(0,3))/10; // 1 kvuli 005 treba
		x2 = Math.round(x2);
		if(x[1].length>2) x2 = (x2+'').substr(1);
		x2 = ','+x2;
		if(x2.length==2) x2+='0';
	}
	var rgx = /(\d+)(\d{3})/;
	while(rgx.test(x1)) x1=x1.replace(rgx, '$1'+' '+'$2');
	return x1+x2;
}

function onradio(o){
	var p,i;
	p=getParent(o,'DIV');
	p=p.getElementsByTagName('P');
	for(i=0;i<p.length;i++){
		if(p[i].className=='label-on'){
			p[i].className='';
			break;
		}
	}
	p=getParent(o,'P');
	p.className='label-on';
	sameSize();
}

function sameSize(){
	var o=$('fdoprava'), o2=$('fplatba');
	n=o.offsetHeight;
	o2.style.height=n+'px';
	while(o2.offsetHeight!=o.offsetHeight){
		o2.offsetHeight > o.offsetHeight ? n-- : n++;
		o2.style.height=n+'px';
	}
}


function plclick(p){
	P=p;
	recount();
}

function dinfo(i,pr,dlbl)
{
	//$('dopravne').innerHTML=dlbl.substr(0,1).toLowerCase()+dlbl.substr(1);
	//$('dolbl').innerHTML=dlbl;
	
	if(SK) return;
	
	D=pr;
	jsc_setValue('opts',i,0);
	
	var pl3=$('pl3');
	var pl1=$('pl1');
	
	if(i==3){
		// osobne => blokneme dobirku
		$('lpl3').className='';
		pl3.disabled=false;
		if(pl1.checked){
			window.setTimeout(function(){pl3.click()},0);
		}else{
			recount(); // nechceme 2x recount
		}
		$('lpl1').className='disabled';
		pl1.disabled=true;
	} else {
		// dobirkou => blokneme osobne
		$('lpl1').className='';
		pl1.disabled=false;
		if(pl3.checked){
			window.setTimeout(function(){pl1.click()},0);
		}else{
			recount();
		}
		$('lpl3').className='disabled';
		pl3.disabled=true;
	}
}

function ptrdel(o,j,k){
	nahled_hide();
	var delRow = o.parentNode.parentNode;
	var rIndex = delRow.sectionRowIndex;
	var rowArray = new Array(delRow);
	for (var i=0; i<rowArray.length; i++){
		var rIndex = rowArray[i].sectionRowIndex;
		rowArray[i].parentNode.deleteRow(rIndex);
	}
	// jen nastavime na 0, jinak by se zmenilo poradi a neslo by vymazat dalsi produkty => az po refresh
	jsc_unsetValue('pform', jsc_find('pform', k));
	QT[j]=0;
	recount();
	return false;
}

//----------------------

function addEvent(elm, evType, fn, useCapture){
	if (elm.addEventListener){
		elm.addEventListener(evType, fn, useCapture);
		return true;
	}
	else if (elm.attachEvent){
		var r = elm.attachEvent('on' + evType, fn);
		return r;
	}
	else {
		elm['on' + evType] = fn;
	}
}

function removeEvent(elm, evType, fn, useCapture){
	if (elm.removeEventListener){
		elm.removeEventListener(evType, fn, useCapture);
		return true;
	}
	else if (elm.detachEvent){
		var r = elm.detachEvent('on' + evType, fn);
		return r;
	}
	else {
		elm['on' + evType] = fn;
	}
}


var bst=0; // (boolean) scrolltop
var ap=false; // active popup


function getViewportHeight() {
	if (window.innerHeight!=window.undefined) return window.innerHeight;
	if (document.compatMode=='CSS1Compat') return document.documentElement.clientHeight;
	if (document.body) return document.body.clientHeight; 
	return window.undefined; 
}

function showMyPop(url, title, id, refresh){
	if(!id) id='';
	if(!refresh) refresh=0;
	
	var height = (id == 'z') ? 350 : 200;
	
	ap = id;
	var cr=0;
	var mask = $('popupMask');
	var inner = $('popupInner'+id);
	var wdb = window.document.body;
	
	
	if(!mask){
		mask = document.createElement('div');
		mask.id = "popupMask";
		addEvent(mask,'click',hideMyPop);
		wdb.appendChild(mask);
	}
	
	var fullHeight = getViewportHeight();
	popHeight = fullHeight;
	mask.style.height = popHeight + "px";
	
	if(!inner){
		cr=1;
		inner = document.createElement('div');
		inner.id = "popupInner"+id;
		inner.className = "popupInner";
		addEvent(inner,'click',hideMyPop);
		
		var IE6 = false /*@cc_on || @_jscript_version < 5.7 @*/;
		
		inner2 = document.createElement('div');
		inner2.className = "popupInner2";
		inner2.innerHTML = '<table cellpadding="0" cellspacing="0">'
			+'<tr><td class="popupControls">'
			+'<div></div><span id="popupTitle">'+title+'</span></td></tr>'
			+'<tr><td style="height:100%">'
			+'<iframe scrolling="'+(IE6 ? 'yes' : 'auto')+'" frameborder="0" name="popupFrame'+id+'" id="popupFrame'+id+'"></iframe></td></tr>'
			+'</table>';
		inner.appendChild(inner2);
		wdb.appendChild(inner);
		
		inner.style.height = height+'px';
	}else{
		$('popupTitle').innerHTML=title;
	}
	
	
	addEvent(top.window,'scroll',noscroll);
	
	mask.style.height=document.body.offsetHeight+'px';
	mask.style.display='block';
	inner.style.display='block';
	
	if(refresh||cr){
		var IFrameDoc;
		var IFrameObj = $('popupFrame'+id);
		if(IFrameObj.contentDocument){
			IFrameDoc = IFrameObj.contentDocument; 
		} else if (IFrameObj.contentWindow){
			IFrameDoc = IFrameObj.contentWindow.document;
		} else if (IFrameObj.document){
			IFrameDoc = IFrameObj.document;
		}
		if(IFrameDoc.location.href != url) IFrameDoc.location.replace(url);
	}
	//---/navigace
	
	var windowh=(window.innerHeight ? window.innerHeight : wdb.offsetHeight);
	
	if(getScrollTop() != bst) bst=getScrollTop();
	
	inner.style.top = (bst+fullHeight/2-height/2)+'px';
	
	return false;
}


function getScrollTop(w){
	if(!w) w = window;
	var p = w.document.documentElement.scrollTop;
	return p > 0 ? p : w.document.body.scrollTop;
}


function noscroll(){window.scrollTo(0,bst);}

function hideMyPop(){
	if(ap === false) return;
	id = ap;
	var body = window.document.body;
	removeEvent(top.window,'scroll',noscroll);
	
	$('popupMask').style.display='none';
	$('popupInner'+id).style.display='none';
	ap = false;
}



//-----------------------


var jsc_arr_str = [];
var jsc_arr = [];
var jsc_glue = ":";
var jsc_glue2 = "//";


function jsc_init(coo) {
	jsc_arr_str[coo] = jsc_readCookie(coo);
	jsc_arr[coo] = jsc_arr_str[coo] ? jsc_arr_str[coo].split(jsc_glue) : [];
}

function jsc_setValue(coo, val, pos) {
	if(jsc_arr[coo] == undefined) jsc_init(coo);
	if(pos < 0) pos=jsc_arr[coo].length;
	
	jsc_arr[coo][pos]=val;
	jsc_save(coo);
}

function jsc_switchValue(coo, o, pos) {
	if(o.checked) jsc_setValue(coo, 1, pos);
	else jsc_setValue(coo, 0, pos);
}


function jsc_save(coo) {
	var str='';
	var date = new Date();
	date.setTime(date.getTime()+(365*24*60*60*1000)); // expirace = 365 dní
	var dt2=jsc_readCookie('modified'); // klientský čas je jiný
	if(jsc_arr[coo]) str = jsc_arr[coo].join(jsc_glue);
	var expires = " expires="+date.toGMTString();
	document.cookie = escape(coo)+"="+escape(str)+";"+expires+"; path=/";
	document.cookie = "touch="+(parseInt(dt2)+5)+";"+expires+"; path=/"; // + 5 sekund stačí, aby bylo více než modified
	jsc_arr_str[coo] = str;
	jsc_arr[coo] = jsc_arr_str[coo] ? jsc_arr_str[coo].split(jsc_glue) : [];
}

function unsetCookie(coo) {
	jsc_arr[coo] = [];
	jsc_save(coo);
}

function jsc_unsetValue(coo, pos) {
	if(pos == -1) return;
	if(jsc_arr[coo] == undefined) jsc_init(coo);
	jsc_arr[coo].splice(pos, 1);
	jsc_save(coo);
}

function jsc_readCookie(name) {
	var nameEQ = name + "=";
	var ca = unescape(document.cookie);
	ca = ca.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return '';
}

function jsc_find(coo, substr) {
	if(jsc_arr[coo] == undefined) jsc_init(coo);
	var str;
	for(i=0;i<jsc_arr[coo].length;i++) {
		str = jsc_arr[coo][i]+jsc_glue2;
		if(str.indexOf(substr+jsc_glue2) == 0) return i; // bylo > -1
	}
	return -1;
}
/*
function kos(){
	var i=getScrollTop(), j=okos.className.indexOf('fix');
	if(i<30 && j>=0) okos.className=okos.className.replace(/ ?fix/g,'');
	if(i>30 && j<0) okos.className+=' fix';
}
var okos=$('lblKosik');if(okos)addEvent(window,'scroll',okos);
*/
