var kb_img=new Array('/images/1/1/kb_off.gif','/images/1/1/kb_on.gif'),vs_img=new Array();
vs_img[1]='/images/1/1/vis_all_1.gif';vs_img[2]='/images/1/1/vis_fr.gif';
var lt=new Array('абвгдежзийклмнопрстуфхцчшщьъюя','АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЪЮЯ');
var ltk=new Array('&uarr;','&darr;'),kb_state=0,lt_state=0,last_row=0,op=new Array();


var ag=navigator.userAgent.toLowerCase();
var iew=(parseInt(navigator.appVersion)>=4 && ((ag.indexOf("msie")!=-1)&&(ag.indexOf("opera")==-1))
	&&((ag.indexOf("win")!=-1)||(ag.indexOf("16bit")!=-1)));

var kb_en='aAbBwWgGdDeEvVzZiIjJkKlLmMnNoOpPrRsStTuUfFhHcC`~[{]}yYxX\\|qQ';
var kb_bg='аАбБвВгГдДеЕжЖзЗиИйЙкКлЛмМнНоОпПрРсСтТуУфФхХцЦчЧшШщЩъЪьЬюЮяЯ';

function switchVis(n) {var st=3-val('v'+n),v=el('vi'+n);el('v'+n).value=st;v.blur();v.src=vs_img[st];}
function switchCase(n) {lt_state=1-lt_state;el('a'+n).innerHTML=ltk[lt_state];kbCode(n);el('i'+n).focus();}

function kbCode(n){
	if (kb_state!=1) {inner('tds'+n,'&nbsp;');return;}

	var i,c,a='<table class="lm bd"><tr class="bdi">',l=lt[lt_state];
	for (i=0;i<l.length;i++) {c=l.charAt(i);a+='<td><a href="javascript:insChar('+n+',\''+c+
		'\');" onfocus="setState('+n+',3);" onblur="setState('+n+',2);">'+c+'</a></td>';}

	if (kb_state==1) inner('tds'+n,a+'<td><a href="javascript:switchCase('+n+');" onfocus="setState('+n+
		',3);" onblur="setState('+n+',2);" id="a'+n+'" class="kbsc">'+ltk[lt_state]+'</a></td></tr></table>')
}

function insChar(n,c){
	var i=el('i'+n);
	if (iew){if(i.isTextEdit){i.focus();var s=document.selection,r=s.createRange();r.colapse;
		if((s.type=="Text"||s.type=="None") && r!=null) r.text=c;}else i.value+=c;}
	else if (document.getSelection){var cp=i.selectionStart+c.length,tx=i.value;
		i.value=tx.substring(0,i.selectionStart)+c+tx.substr(i.selectionEnd);
		i.focus();i.selectionStart=cp;i.selectionEnd=cp;}else i.value+=c;i.focus();
}
function switchKb(n){var i=el('i'+n);kb_state=1-kb_state;el('k'+n).src=kb_img[kb_state];kbCode(n);i.focus();}

function setState(n,st){
	var i=el('i'+n),f=i.getAttribute('fst');
	if (f!=st){
		sa(i,'fst',st);
		if (st==1) {
			if (f==2) clearTimeout(i.getAttribute('fto'));
			else if (f==0) {
				inner('s'+n,'<a href="javascript:switchKb('+n+');" onfocus="setState('+n+',3);" onblur="setState('+n+
					',2);"><img id="k'+n+'" src="'+kb_img[kb_state]+'" width="19" height="18" /></a>');kbCode(n);
			}
		}
		else if (st==2) {sa(i,'fto',setTimeout('setState('+n+',0);',10));}
		else if (st==0) {if (f==2) {inner('s'+n,'');inner('tds'+n,'&nbsp;');}}
		else if (st==3) {if (f==2) clearTimeout(i.getAttribute('fto'));}
	}
}

function changeKey(t,s,n,e){
	if (!e) e=window.event;var key,kc=e.keyCode?e.keyCode:e.charCode?e.charCode:e.which?e.which:void 0,pd=false;
	if (kc) key=String.fromCharCode(kc);if (e.preventDefault) pd=true;
	if (e.charCode==0||((e.altKey)?e.altKey:e.modifiers&1>0)||((e.ctrlKey)?e.ctrlKey:e.modifiers&2>0)) return true;

	if (s==1||s==2) {
		var p=kb_en.indexOf(key),nc,nk,rk=false;
		if (p!=-1) {
			if (kb_state==1) {rk=true;nc=kb_bg.charCodeAt(p);nk=kb_bg.charAt(p);}
			else if (s==1) {
				inner('tds'+n,'<div class="kbm">Кирилицата е задължителна при попълването на това поле.<br />'+
					'Ако нямаш кирилица, използвай бутона за фонетична кирилица BP.</div>');
				if (pd) e.preventDefault();return false;
			}
			else inner('tds'+n,'<div class="kbs">Кирилицата е препоръчителна при попълването на това поле.<br />'+
				'Ако нямаш кирилица, използвай бутона за фонетична кирилица BP.</div>');
		}
		else {inner('tds'+n,'&nbsp;');return true;}
	
		if (kc && window.event && !window.opera){
			if (rk){window.event.keyCode=nc;if (window.event.preventDefault) window.event.preventDefault();} return true;}
		else if (typeof t.setSelectionRange!='undefined'){
			if (rk){
				if (pd) e.preventDefault();
				var nt=typeof nk!='undefined'?nk:String.fromCharCode(nc),cp=t.selectionStart+nt.length;
				t.value=t.value.substring(0,t.selectionStart)+nt+t.value.substring(t.selectionEnd);t.setSelectionRange(cp,cp);
				return false;
			}
			else return true;
		}
		else return true;
	}
	else {
		var p=kb_bg.indexOf(key);
		if (p!=-1) {
			inner('tds'+n,'<div class="kbm">Моля използвай латински букви при въвеждане на информация в това поле.</div>');
			if (pd) e.preventDefault();return false;
		}
		else {inner('tds'+n,'&nbsp;');return true;}
	}
}

function attachKB(e,d,n,s) {
	if (s<3) {
		var i=ce('span');sa(i,'id','s'+n);d.appendChild(i);sa(e,'fst',0);
		e.onfocus=function(){setState(n,1);};e.onblur=function(){setState(n,2);}
	}
	else {e.onblur=function(){inner('tds'+n,'&nbsp;');}}
	e.onkeypress=function(event){return changeKey(e,s,n,event);};
}

function addSpacerRow(cl){
	var tb=el('tb'),r=ce('tr'),t=ce('td'),d=ce('div');
	sa(t,'colSpan',4);d.className=cl;t.appendChild(d);r.appendChild(t);tb.appendChild(r);
}

function addInfoRow(h){
	var tb=el('tb'),r=ce('tr'),t=ce('td'),d=ce('div');
	sa(t,'colSpan',4);d.className='air';d.innerHTML=h;
	t.appendChild(d);r.appendChild(t);tb.appendChild(r);
}

function addRow(text,error,name,type,sub_type,value,vis,more,tb_alt){
	last_row++;
	if (more>1) name+='[]';
	var n=last_row,a,e,c,i,o,im,tb=el(tb_alt==null?'tb':tb_alt),r=ce('tr'),rr=ce('tr');
	var t1=ce('td'),t2=ce('td'),t3=ce('td'),t4=ce('td'),t=ce('td');
	var d1=ce('div'),d2=ce('div');

	sa(t3,'id','tdi'+n);sa(t3,'vis',vis);sa(t,'id','tds'+n);sa(t,'colSpan',4);

	if (vis==1||vis==2||vis==3||vis==4){
		im=ce('img');
		if (vis==3) im.src='/images/1/1/vis_nb_2.gif';
		else if (vis==4) im.src='/images/1/1/vis_all_2.gif';
		else {
			i=ce('input');sa(i,'id','v'+n);sa(i,'type','hidden');sa(i,'name','vis_'+name);sa(i,'value',vis);
			d2.appendChild(i);sa(im,'id','vi'+n);im.className='pt';im.src=vs_img[vis];im.onclick=function(){switchVis(n)};
		}
		d2.appendChild(im);
	}


	if (type==1) {e=ce('input');sa(e,'type','text');sa(e,'value',value);e.className='i';}
	else if (type==4) {e=ce('textarea');e.innerHTML=value;e.className='t';}
	else if (type==3) {e=ce('input');sa(e,'type','password');e.className='i';}
	else if (type==2) {
		e=ce('select');e.className='s';
		if (sub_type>0) {for (i in op[sub_type]) {
			o=ce('option');o.setAttribute('value',i);o.innerHTML=op[sub_type][i];
			if (i==value) o.setAttribute('selected','selected');e.appendChild(o);
		}}
	}
	else type=5;
	sa(t3,'tp',type);

	if (type!=5) {
		sa(e,'id','i'+n);sa(e,'name',name);sa(e,'tabindex',n);
		if ((type==1||type==4)&&sub_type>0) {
			if (sub_type==1) {im=ce('img');im.src='/images/1/1/flag.gif';t2.appendChild(im);}
			attachKB(e,d2,n,sub_type);
		}
		else if (type==3) attachKB(e,d2,n,3);
		sa(t3,'stp',sub_type);t3.appendChild(e);
	}

	d2.className='rb';d1.className=(error==0?'lb':'lb error');d1.innerHTML=text;
	t2.className='flag';t.className='hs';t.innerHTML='&nbsp;';t1.appendChild(d1);t4.appendChild(d2);
	r.appendChild(t1);r.appendChild(t2);r.appendChild(t3);r.appendChild(t4);
	rr.appendChild(t);tb.appendChild(r);tb.appendChild(rr);

	if (more>1) {
		r=ce('tr');sa(r,'id','trm'+n);sa(r,'mcd',more);sa(r,'mls',n);t=ce('td');sa(t,'colSpan',2);
		a=ce('a');sa(t,'id','am'+n);sa(a,'href','javascript:insertRow('+n+');');
		a.className='add';a.innerHTML='добави поле';t.appendChild(a);
		r.appendChild(ce('td'));r.appendChild(ce('td'));r.appendChild(t);tb.appendChild(r);
	}

	return n;
}

function insertRow(where,value,vis) {
	var tr=el('trm'+where),m=tr.getAttribute('mcd');
	if (m>1) {
		var l=tr.getAttribute('mls'),tdi=el('tdi'+where);tp=tdi.getAttribute('tp');if (tp==5) return;last_row++;
		var n=last_row,a,e,c,i,o,im,s=tdi.getAttribute('stp'),tb=el('tb'),r=ce('tr'),rr=ce('tr');
		var t3=ce('td'),t4=ce('td'),t=ce('td'),d=ce('div'),name=el('i'+where).name,v=(vis==null);
		if (value==null) {value='';el('am'+where).blur();}

		if (v) {vis=tdi.getAttribute('vis');if (vis<3) vis=val('v'+l);}
		if (vis==1||vis==2||vis==3||vis==4){
			im=ce('img');
			if (vis==3) im.src='/images/1/1/vis_nb_2.gif';
			else if (vis==4) im.src='/images/1/1/vis_all_2.gif';
			else {
				i=ce('input');sa(i,'id','v'+n);sa(i,'type','hidden');sa(i,'name','vis_'+name);sa(i,'value',vis);
				d.appendChild(i);sa(im,'id','vi'+n);im.className='pt';im.src=vs_img[vis];im.onclick=function(){switchVis(n)};
			}
			d.appendChild(im);
		}

		if (tp==1) {e=ce('input');sa(e,'type','text');sa(e,'value',value);e.className='i';}
		else if (tp==4) {e=ce('textarea');e.innerHTML=value;e.className='t';}
		else if (tp==3) {e=ce('input');sa(e,'type','password');e.className='i';}
		else if (tp==2) {
			e=ce('select');e.className='s';
			if (s>0) {for (i in op[s]) {
				o=ce('option');o.setAttribute('value',i);o.innerHTML=op[s][i];
				if (i==value) o.setAttribute('selected','selected');e.appendChild(o);
			}}
		}

		sa(e,'id','i'+n);sa(e,'name',name);sa(e,'tabindex',n);
		if ((tp==1||tp==4)&&s>0) attachKB(e,d,n,s);
		t3.appendChild(e);

		sa(t,'id','tds'+n);sa(t,'colSpan',4);t.className='hs';t.innerHTML='&nbsp;';d.className='rb';t4.appendChild(d);
		r.appendChild(ce('td'));r.appendChild(ce('td'));r.appendChild(t3);r.appendChild(t4);
		rr.appendChild(t);tb.insertBefore(r,tr);tb.insertBefore(rr,tr);m--;
		if (m==1) tb.removeChild(tr); else {sa(tr,'mcd',m);sa(tr,'mls',n);}
	}
}
