function selecturl(s)
{
	var gourl = s.options[s.selectedIndex].value;
	window.top.location.href = gourl;
}

function popUp(URL,w,h)
{
	day = new Date();
	id = day.getTime();
	window.open(URL, id ,'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=1,width=' + w + ',height=' + h);
}

function PopZdjecie(obiekt_id, lp,w,h)
{
	day = new Date();
	id = day.getTime();
	window.open('/zdjecie_pop.php?obiekt_id='+obiekt_id+'&lp='+lp, id ,'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=1,width=' + w + ',height=' + h);
}

/*
 * 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
 */
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 allowRegexpVal(object, regexpstr)
{
	var regexp = eval("/" + regexpstr + "/");
	var str = object.value;
	if (str.match(regexp) == null)
		return false;
	return true;
}

//funkcja pozwalająca wpisać tylko poprawny kod pocztowy
function formatujKod(V,e) 
{ 
	var p=V.value;
	var ch="-";					//znaczek oddzielający część kodu 
	var q=String.fromCharCode(window.Event?e.which:e.keyCode);
	//q - wpisywany znaczek
	
	if (p.length==2)		//na trzeciej pozycji przyjmuj tylko myślnik
	{
		if(q==ch)
			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
	}
}

/*
Konstruuje adres URL na podstawie wartości wybranych w formularzu
wyszukiwania. Przechodzi pod ten adres.

f - formularz zawierający pola wojewodztwo, miejscowosc, typ, piktogramy
lub tylko niektóre z nich
*/
function submitSearch(f)
{
	var woj=(f.wojewodztwo.value != '0');
	var mie=(f.miejscowosc.value != '0');
	var rgn=(f.region.value != '0');
	var typ=(f.typ.value != '0');
	var zakres_cen=(f.zakres_cen && f.zakres_cen.value != '0' && f.zakres_cen.value != '0,0');
	var url='';

	if(typ) url='/' + f.typ.value;
	else url='/obiekty';

	if(woj) url+=',' + f.wojewodztwo.value;
	if(rgn) url+=',region-' + f.region.value;
	if(mie) url+=',' + f.miejscowosc.value;
	url+='.html';

	urlQuery=new Array();
	if(zakres_cen)
		urlQuery.push('zakres_cen=' + f.zakres_cen.value);

	//pobieramy numerki piktogtamów, które sa zaznaczone
	var checkedpiktos=new Array();
	if(document.getElementsByName)
	{
		var piktos=document.getElementsByName("piktogramy[]");
		if(piktos && piktos.length>0)
		{
			var piktoslen=piktos.length;
			for (var i=0; i < piktoslen; i++)
			{
				if(piktos[i].checked)
				{
					checkedpiktos.push(piktos[i].value);
				}
			}

			//czy są jakieś piktogramy zaznaczone?
			if(checkedpiktos.length>0)
			{
				//mamy już co wrzucić do urla
				urlQuery.push('pikto=' + checkedpiktos.join(','));
			}
		}
	}

	//budujemy query string
	if(urlQuery.length>0)
	{
		url+='?' + urlQuery.join('&');
	}

	location=url;

	return false;
}

function $() {
	var elements = new Array();
	for (var i = 0; i < arguments.length; i++) {
		var element = arguments[i];
		if (typeof element == 'string')
			element = document.getElementById(element);
		if (arguments.length == 1)
			return element;
		elements.push(element);
	}
	return elements;
}

function ToggleRows(name, visible)
{
	var objects=document.getElementsByName(name);
	for(var x=0;x<objects.length;x++)
	{
		var element=objects[x];
		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 WyszarzTyp(sMiejscowosc, sTyp)
{
	var miejscowosc_rewrite = sMiejscowosc.options[sMiejscowosc.selectedIndex].value;
	if (!miejscowosc_rewrite || miejscowosc_rewrite=='0')
	{
		for(var i=2;i<sTyp.options.length;i++)
			sTyp.options[i].style.color='black';
		return;
	}

	//pobieramy aktywne typy przez ajaxa
    var xmlHttpReq = false;

    // Mozilla/Safari
    if (window.XMLHttpRequest) {
        xmlHttpReq = new XMLHttpRequest();
    }
    // IE
    else if (window.ActiveXObject) {
        xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlHttpReq.open('GET', '/niewyszarzone_typy.rpc.php?miejscowosc_rewrite='+miejscowosc_rewrite, true);
    xmlHttpReq.onreadystatechange = function() {
        if (xmlHttpReq.readyState == 4) {
            updatepage(xmlHttpReq.responseText, sTyp);
        }
    }
    xmlHttpReq.send();
}

function updatepage(str, sTyp)
{
	niewyszarzone = eval(str);

	//numerujemy od "2", bo zostawiamy pierwsze dwie pozycje czarne
   	for(var i=2;i<sTyp.options.length;i++)
	{
		if(niewyszarzone.find(sTyp.options[i].value))
			sTyp.options[i].style.color="black";
		else
		{
			sTyp.options[i].style.color="gray";
		}
	}
	
	
}

Array.prototype.find = function(searchStr) {
  var returnArray = false;
  for (var i=0; i<this.length; i++) {
    if (typeof(searchStr) == 'function') {
      if (searchStr.test(this[i])) {
        if (!returnArray) { returnArray = [] }
        returnArray.push(i);
      }
    } else {
      if (this[i]===searchStr) {
        if (!returnArray) { returnArray = [] }
        returnArray.push(i);
      }
    }
  }
  return returnArray;
}

//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 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);
}
