
    var map = null;
    var geocoder = null;
	
	var lat=52.173931692568;
	var lng=18.8525390625;
	var zoom=6;


    function initialize() {

	
	
	    if (GBrowserIsCompatible()) {
		    map = new GMap2(document.getElementById("map_canvas"));
		    map.setCenter(new GLatLng(lat,lng),zoom);
			map.addControl(new GLargeMapControl());
			map.addControl(new GMapTypeControl());
		   	geocoder = new GClientGeocoder();
      
	  	
			GEvent.addListener(map, "click", function(overlay, point) {	   
				map.clearOverlays();
				map.addOverlay(new GMarker(point));
				top.document.getElementById("form_zamowienie").wsp.value = point//.y + '+' + point.x;      		 
			});
	  
	  }
		//po odswiezeniu jesli sa wypelnione pola to ustawiamy mape
		
		if(top.document.getElementById("form_zamowienie").wsp.value != '') showAddress(top.document.getElementById("form_zamowienie").wsp.value)
		else if(top.document.getElementById("form_zamowienie").miejscowosc.value != '') showAddress(top.document.getElementById("form_zamowienie").miejscowosc.value)
	}

function hsAlert(tekst)
{
	var d = new Element('div',{'class':'highslide-html-content'});
	document.body.appendChild(d);
	d.update('' + tekst + '<br /><br /><input type="button" name="zamknij" value="OK" onclick="hs.close(this)" style="padding:5px 20px;border:1px outset black" />');
	var a = new Element('a',{'href':'#','class':'highslide-html-content','style':'display:none;'});
	document.body.appendChild(a);
	hs.htmlExpand(a,{contentId: d.identify(), dimmingOpacity: 0.75});
}

function antyspam(t) {
  t.spam.value=9; alert(t)
  return true;
}

function show_form_zamow(link){
var f = $('form_zamow');
if(f.visible()) return;
$(link).hide();
Effect.Appear(f,{duration:0.5,afterFinish:function(){
		var m = $('nag_dodatki').cumulativeOffset().top - f.cumulativeOffset().top - 10;
		if(m < 0) m = 0;
		f.morph('margin-top:'+ m + 'px',{duration:0.7,afterFinish:function(){new Effect.ScrollTo(f);}});
	}});
	
	
Effect.Appear('strzalka_zamow',{duration:0.5});

}
function MinMax(pole,min,max)
{
	var w = parseFloat(pole.value.replace(',','.'));
	var max = parseFloat(max.replace(',','.'));
	var min = parseFloat(min.replace(',','.'));
	if(w>max) pole.value=max;
	if(w<min) pole.value=min;
}


function hsIframeResize()
{
	try{
		top.hs.getExpander().reflow();
	} catch(e) {}
}

function jumpScroll() {
   	window.scroll(0,150); 
}


function show_zamow(){
$('zamowienie_kontakt').show();
}


function round(number,x) {
var x = (!x ? 2 : x);
return Math.round(number*Math.pow(10,x)) / Math.pow(10,x);
}
function addKom(id) 
{
	Element.toggle(id);
	return false;
}



function Potwierdz() {
var jest_potw = confirm('Na pewno chcesz usunąć ?');
return jest_potw;
};
function menu(id) {
  if ($(id).style.display=="none") {
    $(id).style.display="inline";
  } else {
    $(id).style.display="none";
  }
}

function okno(url, width, height) {
        var win = window.open(url,"okienko",'width=' + width + ',height=' + height + ',resizable=yes,scrollbars=yes,menubar=no' );
}


function FontSize(size, wyb) {
	$("srodek").style.fontSize = size;	
	$("size1").style.color = "black";
	$("size2").style.color = "black";
	$("size3").style.color = "black";
	$(wyb).style.color = "#FF6805";	
}


  /*----------------------------------data*/
DayName = new Array(7)
DayName[0] = "<b>niedziela</b> "
DayName[1] = "<b>poniedziałek</b> "
DayName[2] = "<b>wtorek</b> "
DayName[3] = "<b>środa</b> "
DayName[4] = "<b>czwartek</b>"
DayName[5] = "<b>piątek</b>"
DayName[6] = "<b>sobota</b> "

MonthName = new Array(12)
MonthName[0] = "stycznia "
MonthName[1] = "lutego "
MonthName[2] = "marca "
MonthName[3] = "kwietnia "
MonthName[4] = "maja "
MonthName[5] = "czerwca "
MonthName[6] = "lipca "
MonthName[7] = "sierpnia "
MonthName[8] = "września "
MonthName[9] = "października "
MonthName[10] = "listopada "
MonthName[11] = "grudnia "

function getDateStr(){
var Today = new Date()
var WeekDay = Today.getDay()
var Month = Today.getMonth()
var Day = Today.getDate()
var Year = Today.getFullYear()

if(Year <= 99)
Year += 1900

return DayName[WeekDay] + " " + " " + Day + " " + MonthName[Month] + " " + Year + "r"
} 
function antyspam(t) {
  t.spam.value=9;
  return true;
}


function empty(elem, helperMsg){
	if($(elem).value.length == 0){		
		$(elem).focus(); // set the focus to this input
		$(elem + "v").innerHTML = helperMsg;
		return true;
	}
	$(elem + "v").innerHTML = '';
	return false;
}

function emptyTwo(elem1, elem2, helperMsg){
	if($(elem1).value.length == 0 && $(elem2).value.length == 0){
		$(elem1 + "v").innerHTML = helperMsg;
		$(elem1).focus(); // set the focus to this input
		return true;
	}
	$(elem1 + "v").innerHTML = '';
	return false;
}

function lengthMinMax(elem, min, max){
	var uInput = $(elem).value;
	if(uInput.length >= min && uInput.length <= max){
		$(elem + "v").innerHTML = '';
		return true;
	}else{
		$(elem + "v").innerHTML = "Pole powinno zawierać od " +min+ " do " +max+ " znaków.";
		$(elem).focus();
		return false;
	}
}

function lengthMax(elem, max){
	var uInput = $(elem).value;
	if(uInput.length <= max){
		$(elem + "v").innerHTML = '';
		return true;
	}else{
		$(elem + "v").innerHTML = "Pole powinno zawierać maksymalnie do " +max+ " znaków.";
		$(elem).focus();
		return false;
	}
}

function emailValidator(elem, helperMsg){
	var Input = $(elem).value;
	if(Input.length > 0) //jesliwypelnione pole mail to wtedy sprawdzamy
	{
		var Exp = /^[0-9a-z_.-]+@([0-9a-z-]+\.)+[a-z]{2,6}$/;
		if($(elem).value.match(Exp)){
			$(elem + "v").innerHTML = '';
			return true;
		}else{
			$(elem + "v").innerHTML = helperMsg;
			$(elem).focus();
			return false;
		}
	}return true;
}

function telValidator(elem, helperMsg){
	var Input = $(elem).value;
	if(Input.length > 0) //jesliwypelnione pole mail to wtedy sprawdzamy
	{
		var Exp = /^\+?[0-9- ]+$/;
		if($(elem).value.match(Exp)){
			$(elem + "v").innerHTML = '';
			return true;
		}else{
			$(elem + "v").innerHTML = helperMsg;
			$(elem).focus();
			return false;
		}
	}return true;
}



function isNumeric(elem, helperMsg, idMsg){
	var numericExpression = /^[0-9]+$/;
	if($(elem).value.match(numericExpression)){
		return true;
	}else{
		$(idMsg).innerHTML = helperMsg;
		$(elem).focus();
		return false;
	}
}

function isAlphabet(elem, helperMsg, idMsg){
	var alphaExp = /^[a-zA-Z]+$/;
	if($(elem).value.match(alphaExp)){
		return true;
	}else{
		$(idMsg).innerHTML = helperMsg;
		$(elem).focus();
		return false;
	}
}

function isAlphanumeric(elem, helperMsg, idMsg){
	var alphaExp = /^[0-9a-zA-Z]+$/;
	if($(elem).value.match(alphaExp)){
		return true;
	}else{
		$(idMsg).innerHTML = helperMsg;
		$(elem).focus();
		return false;
	}
}


function madeSelection(elem, helperMsg, idMsg){
	if($(elem).value == "Please Choose"){
		$(idMsg).innerHTML = helperMsg;
		$(elem).focus();
		return false;
	}else{
		return true;
	}
}


function wyszukiwarkaClick(ob)
{
	var tekst = $F(ob);
	$(ob).onfocus = function(){
		if(this.value == tekst) this.value = '';
	};

	$(ob).onblur = function(){
		if(this.value == '') this.value = tekst;
	};
}


function sliderText(obiekt,opcje)
{
	opcje = opcje || new Array();
	
	opcje.v = opcje.v || 35;
	opcje.afterFinish = opcje.afterFinish || function(){};
	
	var ob =  $(obiekt);
	var tekst = ob.innerHTML;
	
	if(tekst == '') return false;
	
	var pasek = new Element('div');
	pasek.className = opcje.pasekClass || 'pasek_informacyjny';
	pasek.update(tekst);
	ob.update(pasek); 
	var dlugoscTekstu = Element.getWidth(pasek);//długość z pojedynczym tekstem
	//powielenie tekstu w razie potrzeby 

	var powt = (Element.getWidth(ob)/dlugoscTekstu).ceil();
	var elemWidth = (powt+1)*dlugoscTekstu;
	
	while(powt-->0) {
		pasek.innerHTML += tekst;
	}
	
	pasek.style.width = elemWidth + 'px';
	var elemWidth = Element.getWidth(pasek);

	for(i=Element.getWidth(ob); i>0; i-=dlugoscTekstu) pasek.innerHTML += tekst; //doklejenie rezerwy na końcu
	pasek.style.left = 0;
	pasek.style.width = '100000px';

	ob.kontroler;
	var przewin = function()
	{
		var elemDuration = ((parseInt(pasek.style.left) + elemWidth)/opcje.v).ceil();
		ob.kontroler = new Effect.Morph(pasek,{
			style:'left:'+(-elemWidth)+'px;',
			duration:elemDuration,
			afterFinish:function(){
									opcje.afterFinish();
									pasek.style.left = 0;
									przewin();
								},
								
			transition: Effect.Transitions.linear, queue: { scope: 'slidertxtscope' }
											});												
	};	
	
	var pauza = function(){
		ob.kontroler.cancel();
	}

	ob.onmouseover = pauza;
	ob.onmouseout = przewin;

	przewin();
}

function pokaz_submenu(p){

	$A($('pomenu').getElementsByTagName('a')).each(function(ob){Element.hide(ob);});
	$A($('pomenu').getElementsByClassName(p)).each(function(ob){Element.show(ob);});
}


	
	
	function showAddress(address) {
	
      if (geocoder) {
        geocoder.getLatLng(
          address,
          function(point) {
            if (!point) {
              alert(address + " nie istnieje");
          } else {

	      map.setCenter(point, 10);
              map.clearOverlays();
	    
		var marker = new GMarker(map.getCenter());
             map.addOverlay(marker);			
			top.document.getElementById("form_zamowienie").wsp.value = marker.getLatLng()//.lat() + '+' + marker.getLatLng().lng();

	
            }
          }
        );
      }
    }
	
function pytanie(id)
{
	if($('odpowiedz'+id).visible())
	{
		Effect.Fade('odpowiedz'+id,{duration:0.5});
		$("txt_rozwijanie"+id).update('<img src="img/zwiniete.jpg" alt="">  rozwiń odpowiedź');
	}
	else
	{
		Effect.Appear('odpowiedz'+id,{duration:0.5});
		$('txt_rozwijanie'+id).update('<img src="img/rozwiniete.jpg" alt=""> zwiń odpowiedź');
	} 
}

//======================================================================================================
Array.prototype.sum = function(){
	for(var i=0,sum=0;i<this.length;sum+=parseFloat(this[i++]));
	return sum;
}
function kolor_over(kolor,dd){
	var kolory = {
		1 : '#dbbe60',
		2 : '#f4de0e',
		3 : '#71141e',
		4 : '#7e191d',
		5 : '#1b3486',
		6 : '#317f43',
		7 : '#293133',
		8 : '#cfd6ce',
		9 : '#8a3d29',
		10 : '#31221d',
		11 : '#e7ecd8',
		12 : '#a3a8ab',
		13 : '#f7f8f2'
	}
	var kol;
	
	$(dd.parentNode.parentNode).appendChild($('probnik_cont'));
	
	if(kol = $H(kolory).get(kolor))
	{
		$('probnik_cont').show();
		$('probnik').show();
		$('probnik').morph('background:' + kol,{duration:0.4});
	}
	else
	{
		$('probnik_cont').hide();
	}
	return false;

}


function wysokosc()
{
	if(arguments[0].include('dwuskrzydlowa')) arguments[0] = 'dwuskrzydlowa';
	$A($$('.o_wysokosc')).each(Element.hide);
	var aktywne = $A($$('.' + $A(arguments).join('.')));

	var selektorRadio = function(o){
		var ob = o.firstDescendant();
		if(ob.type == 'radio') return ob;
	}	
	
	var selektorRadioByWys = function(o){ //znajdź opcje z wysokością domyślną
		//if(parseInt($H(o.value.split(',')).get(3)) == parseInt(f.garaz.wysokosc_def + (f.garaz.typ_bramy.include('uchylna') ? 10 : 0))) return true;
		if(parseInt($H(o.value.split(',')).get(3)) == parseInt(f.garaz.wysokosc_def)) return true;
	}

	var listaRadio = aktywne.collect(selektorRadio);

	if(!listaRadio.pluck('checked').any()) 
	{
		var doZaznaczenia = listaRadio.find(selektorRadioByWys) || listaRadio.first(); //wybrany wg wysokości domyślnej lub pierwszy
		doZaznaczenia.checked = true;

	}
	
	aktywne.invoke('show');
	
}

function konstrukcja()
{
	
	$A($$('.o_konstrukcja')).each(Element.hide);
	var aktywne = $A($$('.' + $A(arguments).join('.')));

	var selektorRadio = function(o){
		var ob = o.firstDescendant();
		if(ob.type == 'radio') return ob;
	}	

	var selektorRadioByKon = function(o){ //znajdź opcje z wysokością domyślną
		if($H(o.value.split(',')).get(3) == f.garaz.typ_konstrukcji ) return true;
	}
	
	var listaRadio = aktywne.collect(selektorRadio);

	if(!listaRadio.pluck('checked').any()) 
	{
		var doZaznaczenia = listaRadio.find(selektorRadioByKon) || listaRadio.first();; //zaznacz pierwszy
		doZaznaczenia.checked = true;

	}
	
	aktywne.each(Element.show);
	
}


function ocynkowana_konstrukcja()
{
	
	$A($$('.o_ocynkowana_konstrukcja')).each(Element.hide);
	var aktywne = $A($$('.' + $A(arguments).join('.')));

	var selektorRadio = function(o){
		var ob = o.firstDescendant();
		if(ob.type == 'radio') return ob;
	}	
	
	
	var selektorRadioByOcynk = function(o){ //znajdź opcje z wysokością domyślną
		if($H(o.value.split(',')).get(3) == f.garaz.typ_ocynku ) return true;
	}
	
	var listaRadio = aktywne.collect(selektorRadio);

	//if(!listaRadio.pluck('checked').any()) 
	//{
		var doZaznaczenia = listaRadio.find(selektorRadioByOcynk) || listaRadio.first();; //zaznacz pierwszy
		doZaznaczenia.checked = true;

	//}
	
	aktywne.each(Element.show);
	
}




function form_zam(f,garaz)
{
	f = $(f);
	f.garaz = garaz;
	window.f = f;
	parametryGarazu();
	
	
	Element.observe(f,'submit',function(event){
		if(f.woj.selectedIndex == 0)
		{
			hsAlert('<b>Wybierz miejsce transportu</b><br /><br />Przejdź do zakładki &quot;transport do województwa&quot; w&nbsp;konfiguratorze po lewej i&nbsp;wybierz województwo, w którym mamy zamontować Twój garaż.');
			event.stop();
		}
	});

	var evHandle = function(ob)
	{
		var eventName; 
		if(ob.type == 'select-one')		eventName = 'change';
		else if(ob.type == 'checkbox') 	eventName = 'click';
		else if(ob.type == 'radio') 	eventName = 'click';
		else return;
		
		if(ob.checked && ob.alt) eval(ob.alt);
		
		//Element.observe(ob,eventName,.bindAsEventListener());
		Element.observe(ob,eventName,function(){
			var v = $H(ob.value.split(','));
			var k = parseFloat(v.get(0)).toFixed(2);
			var typ = v.get(1);
			
			if(typ == 'i') hsAlert('<b>Cena za wybraną opcję obliczana jest indywidualnie.</b><br /><br />Po złożeniu zamówienia nasz konsultant skontaktuje się z Państwem, by poinformować o dokładnych kosztach.');
			
			parametryGarazu(); 
			if(ob.alt) eval(ob.alt); 
			cena(null,f);
		});
		//Element.observe(ob,eventName,cena.bindAsEventListener(this,f));
		
	}
	
	f.getElements().each(evHandle);
	document.observe('dom:loaded',cena.bindAsEventListener(this,f));
}
function parametryGarazu()
{

	try
	{
		f.garaz.typ_dachu = $H(f.getElements().find(function(ob){ if(ob.name == 'opcja:dach' && ob.checked) return true; }).value.split(',')).get(3);
	}
	catch(e){ } //jeśli nie ma opcji dodatkowych	
	
	try
	{
		f.garaz.typ_bramy = $H(f.getElements().find(function(ob){ if(ob.name == 'opcja:brama' && ob.checked) return true; }).value.split(',')).get(3).strip();
	}
	catch(e){ } //jeśli nie ma opcji dodatkowych	
	
	try
	{
		f.garaz.typ_konstrukcji = $H(f.getElements().find(function(ob){ if(ob.name == 'opcja:konstrukcja' && ob.checked) return true; }).value.split(',')).get(3).strip();
	}
	catch(e){ } //jeśli nie ma opcji dodatkowych	
	
	try
	{
		f.garaz.typ_ocynku = $H(f.getElements().find(function(ob){ if(ob.name == 'opcja:ocynkowana-konstrukcja' && ob.checked) return true; }).value.split(',')).get(3).strip();
	}
	catch(e){ } //jeśli nie ma opcji dodatkowych
}
function cena(event,f)
{

	var cenaObliczona = $('cena_obliczona');
	cenaObliczona.kosztyIndywidualne = new Array();
	
	//parametryGarazu();
	try
	{
	var wspWym = f.garaz.typ_dachu.include('tylu') ? f.garaz.dlugosc : f.garaz.szerokosc; //do liczenia np. świetlika
	var wspRyn = f.garaz.typ_dachu.include('tylu') ? f.garaz.szerokosc + 0.2 : (f.garaz.typ_dachu.include('bok') ? f.garaz.dlugosc + 0.2 : 2 * (f.garaz.dlugosc + 0.2)); //rynny

	
		f.garaz.wysokosc = parseFloat($H(f.getElements().find(function(ob){ if(ob.name == 'opcja:wysokosc' && ob.checked) return true; }).value.split(',')).get(3))/100; //wysokość wybrana
	}
	catch(e){} //jeśli nie ma opcji dodatkowych

	var koszt = function(ob)
	{
		var v = $H(ob.value.split(','));
		var k = parseFloat(v.get(0)).toFixed(2);
		var typ = v.get(1);
		
		if(ob.name.include('ocynkowana-konstrukcja') && f.garaz.wysokosc != f.garaz.wysokosc_def/100 && k > 0) typ = 'i'; //ocynkowana konstrukcja tylko dla podstawowej wysokości
		
	
		if(typ == 'm') 			k *= wspWym; //razy metr blachy na dachu - zależnie od rodzaju dachu liczenie wg długości lub szerokości
		else if(typ == 'r') 	k *= wspRyn; //rynny
		else if(typ == 'p') 	k *= ( (2 * ( f.garaz.dlugosc + f.garaz.szerokosc ) * f.garaz.wysokosc) /* ściany */ + (f.garaz.dlugosc * f.garaz.szerokosc));
		else if(typ == 'i' && ob.checked) 	
		{
			
			//cenaObliczona.kosztyIndywidualne.push('+ dopłata za: ' + ob.name.replace('-',' ').replace('opcja:',''))
			cenaObliczona.kosztyIndywidualne.push('+ dopłata za: ' + ob.title)
			return 0;
		}
		
		if(ob.type == 'radio' && ob.checked) return k;
		if(ob.type == 'select-one') return k;
		if(ob.type == 'checkbox' && ob.checked) return k;
		return 0.00;
	}
	
	cenaObliczona.cena = (f.garaz.cena + f.getElements().collect(koszt).sum());
	
	cenaObliczona.cena = (cenaObliczona.cena == 0) ? '<em style="font-size:12px">do uzgodnienia<br />z konsultantem</em>' : cenaObliczona.cena + ' zł';
	
	cenaObliczona.update(cenaObliczona.cena + '<br /><span onmouseover="tooltip.show(\'Koszty ustalane indywidualnie. Po złożeniu zamówienia nasz konsultant skontaktuje się z&nbsp;Państwem, aby poinformować o końcowej cenie.\')" onmouseout="tooltip.hide()">'+cenaObliczona.kosztyIndywidualne.join('<br />')+'</span>');

}

