/*
 * funkcja przepuszczajaca tylko znaki pasujace do podanego regexpa
 * @param event zdarzenie nacisniecia klawisza
 * @param object obiekt w ktory sa wpisywane znaki
 * @param rexepstr sprawdzany regexp
 *
 * Przykład użycia:
 * dopisać do tagu <input> (pole tekstowe) takie coś:
 * onkeypress="return allowRegexpChar(event, this, '[a-z0-9\-_]')"
 *  
 */
function allowRegexpChar(event, object, regexpstr) {
	var code = (event.which == null) ? event.keyCode : event.which;
	if (code < 0x20 || code > 0x7e)
		return true;
	var regexp = eval("/" + regexpstr + "/");
	var str = String.fromCharCode(code);
	if (str.match(regexp) == null)
		return false;
	return true;
}

function toggle(obj) {
	if(obj.style.display=='none')
		obj.style.display='block';
	else
		obj.style.display='none';
}

function ToggleRows(name, visible)
{
	var x=0;
	while(true)
	{
		x++;
		var element=document.getElementById(name + x);
		if(!element)
			break;

		if (element.style.display != 'none' && visible==false)
		{
			element.style.display = 'none';
		}
		else if (visible==true)
		{
			//IE zupełnie nie łapie table-row
			if(navigator.appName=="Microsoft Internet Explorer")
				element.style.display = 'block';
			else
				element.style.display = 'table-row';
		}
	}
}

function ToggleRow(element)
{
	if (element.style.display != 'none')
	{
		element.style.display = 'none';
	}
	else
	{
		//IE zupełnie nie łapie table-row
		if(navigator.appName=="Microsoft Internet Explorer")
			element.style.display = 'block';
		else
			element.style.display = 'table-row';
	}
}

//funkcja pozwalająca wpisać tylko poprawny kod pocztowy
function formatujKod(V,e) 
{ 
	var p=V.value;
	var ch="-";					//znaczek oddzielający część kodu 
	var charcode=window.Event?e.which:e.keyCode;
	var q=String.fromCharCode(charcode);
	//q - wpisywany znaczek

	if((!isNaN(q)&&q!=" ")||charcode<32|| (charcode == '-'.charCodeAt(0) && p.length == 2))		//jesli wpisywany znak jest liczbą
	{
		return true;			//zezwól na wpisanie
	}
	else						//w innym przypadku
	{
		return false;			//nie zezwalaj
	}
}

//funkcja, która wyszukuje wszystkie elementy wewnątrz nodeid
//wybiera ostatni DIV z nich, czyści w nim pola tekstowe i selecty
//i wstawia duplikat za tym elementem
function DuplicateLastTagInside(nodeid, tagname)
{
	if(!tagname)
		tagname='DIV';

	//szukamy ostatniego diva wewnątrz nodeid
	var elems=document.getElementById(nodeid).childNodes;
	for(var i=elems.length-1;i>=0;i--)
	{
		//gdy znajdziemy to wychodzimy z pętli
		if(elems[i].tagName==tagname)
		{
			break;
		}
	}

	Duplicate(elems[i]);

	//to by było fajne, ale nie działa w IE ani operze,
	//bo divy nie mogą mieć atrybutu name:
	//var elems = document.getElementsByName(nodesname);
	//Duplicate(elems[elems.length-1]);
}

function DuplicateInput(nodesname)
{
	var elems = document.getElementsByName(nodesname);
	var node = elems[elems.length-1];
	var newField = node.cloneNode(true);
	newField.value='';

	var theNewBr = document.createElement('br');
	node.parentNode.insertBefore(newField, node.nextSibling);	//insertAfter
	node.parentNode.insertBefore(theNewBr, node.nextSibling);
}

function Duplicate(node)
{
	var newFields = node.cloneNode(true);
	
	newFields.id='';

	//czyscimy wszystkie pola tekstowe i checkboxy
	var inputs=newFields.getElementsByTagName('input');
	for(var i=0;i<inputs.length;i++)
		if(inputs[i].type=='text')
			inputs[i].value='';
		else if (inputs[i].type=='checkbox')
			inputs[i].checked=false;

	//ustawiamy domyslne zaznaczenie w selectach
	var selects=newFields.getElementsByTagName('select');
	for(var i=0;i<selects.length;i++)
		selects[i].selectedIndex=0;
		
	//czyścimy textarea
	var textareas=newFields.getElementsByTagName('textarea');
	for(var i=0;i<textareas.length;i++)
		textareas[i].value='';

	node.parentNode.insertBefore(newFields,node.nextSibling);	//insertAfter
}

function RemoveDiv(node)
{
	var count=0;
	var nodes=node.parentNode.childNodes;
	for(var i=0;i<nodes.length;i++)
	{
		if(nodes[i].tagName=='DIV')
			count++;
	}

	if(count<=1)
		return false;

	node.parentNode.removeChild(node);
}

function allowPolishPostalCode(V,e)
{
	//funkcja pozwalająca wpisać tylko poprawny kod pocztowy
	var p=V.value;
	var charcode=window.Event?e.which:e.keyCode;
	var q=String.fromCharCode(charcode);
	//q - wpisywany znaczek

	if(charcode<32)			//allow control characters
		return true;

	if (p.length==2)		//na trzeciej pozycji przyjmuj tylko myślnik
	{
		if(q=="-")			//znaczek oddzielający części kodu
			return true;
		else
			return false;
	}

	if((!isNaN(q) && q!=" "))	//jesli wpisywany znak jest liczbą
	{
		return true;			//zezwól na wpisanie
	}
	else						//w innym przypadku
	{
		return false;			//nie zezwalaj
	}
}

var blinkStatus=false;
var blinkElements=new Array();
function blink()
{
	for(var x=0;x<blinkElements.length;x++)
	{
		elem=blinkElements[x];
		if(blinkStatus)
			elem.style.visibility='visible';
		else
			elem.style.visibility='hidden';
	}
	blinkStatus=!blinkStatus;
	setTimeout(blink, 500);
}
function startBlinking(elem)
{
	blinkElements.push(elem);
	if(blinkElements.length==1)
		setTimeout(blink, 500);
}

function blink2()
{
	for(var x=0;x<blinkElements.length;x++)
	{
		elem=blinkElements[x];
		if(blinkStatus){
			elem.style.visibility='visible';
			elem.style.color='#003D90';
			elem.style.fontweight='none';
			 elem.style.font = '11px tahoma,verdana,arial';

		}else{
			elem.style.visibility='visible';
			elem.style.color='#003D90';
			elem.style.fontweight='none';
			 elem.style.font = '11px tahoma,verdana,arial';
		}
	}
	blinkStatus=1;
	setTimeout(blink2, 0);
}
function stopBlinking(elem)
{
	if(blinkElements.length==1)
		setTimeout(blink2, 0);
}

