//////////////
IE = document.all&&!window.opera?true:false;
//////////////
function aEL(o,t,f){var a=Array.prototype.slice.call(arguments,3)
o[t+f]=function(e){return !1===f.apply(o,[e||window.event].concat(a))?e.preventDefault?e.preventDefault():!1:1}
return(o.x=o.addEventListener)?o.x(t,o[t+f],!1):(o.x=o.attachEvent)?o.x('on'+t,o[t+f]):!1}
////////////    

$(function() {
	Artshow.start();
});

$(document).ready(function(){


	/* Przycisk ktory pokazuje galerie */
	$(".pokazCalaGalerie").bind("click",function(){
		/* Odszukanie miniaturki i knikniecie */
		$('.artshow').filter(":first").click();
	});
	
	/* Przesuniecie uzytkownika do formularza kontaktowego */
	$("#pokazWyslijMailForm")
		.click(function(){
			$.scrollTo('#kontaktForm',800);
		})
		.mouseover(function(){$(this).addClass("hover")})
		.mouseout(function(){$(this).removeClass("hover")});	
	
	
	/* Dodanie nowego gabinetu */
	$("#wyslij_dg").click(dodaj_gabinet);
	
	/* kontakt z administratorem serwisu */
	$("#send_kt").click(kontakt);
	
	/* Przyciks submitujacy formularz maila */
	$("#wyslij_maila")
		.click(wyslij)
		.mouseover(function(){$(this).css({"opacity" : '0.5'})})
		.mouseout(function(){$(this).css({"opacity": '1'})});	
	
	wsp = $("#wspolki").html();
		if (wsp != 0 && wsp != '' && wsp != undefined  || wsp != null) {
			if ( wsp != '0,0' )
				load(wsp);
		}
	
	/* Autocomplity  */
	$("#miejscowosc_nazwa").autocomplete("index.php?funkcja=autocompliteMiasto", {
		delay: 100,
		max: 100,
		width:180,
		minChars:3,
		formatItem: formatItem,
		formatResult: formatResult,
		selectFirst: true
		});

	$("#sz_nazwa").autocomplete("index.php?funkcja=autocompliteNazwa", {
			delay: 100,
			max: 100,
			width:400,
			minChars:3,
			matchContains: true,
			formatItem: formatItemName,
			formatResult: formatResultName,
			selectFirst: true
		});

		window.dhtmlHistory.create({
	        toJSON: function(o) {
	                return JSON.stringify(o);
	        }
	        , fromJSON: function(s) {
	                return JSON.parse(s);
	        }
		});
		dhtmlHistory.initialize();
		dhtmlHistory.addListener(strona);
	
	
	$(":text, textarea").result(findValueCallback).next().click(function() {
		$(this).prev().search();
	});
	
	$("#miejscowosc_nazwa").result(function(event, data, formatted) {
		if (data[0] != 'Brak miasta')
			$("#sz_miejscowosc").val(data[3]);
		else 
			$("#sz_miejscowosc").val('');
	});
	
	$("#sz_nazwa").result(function(event, data, formatted) {
		if (data[0] != 'Brak gabinetu')
			$("#szukana_nazwa").val(data[3]);
		else
			$("#szukana_nazwa").val('');
	});

	$("#send_bt").click(szukaj);
});
	
	
	
	function kontakt(){
		var k_imienazwisko = $("#imienazwisko").val();
		var k_pocztaelektroniczna = $("#pocztaelektroniczna").val();
		var k_telefon = $("#telefon").val();
		var k_dodatkoweuwagi = $("#dodatkoweuwagi").val();
		
		$("#kontakt").fadeTo("slow",0.2);
		$("#kontakt").after('<div id="load" style="display:block; text-align:center; position:absolute; margin:-400px auto; width:700px;"><img src="img/load.gif" style="margin:30px 100px 30px 0px;" ></div>');
		window.setTimeout(function() {
			$.post("index.php?funkcja=kontakt", {imienazwisko: k_imienazwisko, pocztaelektroniczna: k_pocztaelektroniczna, telefon: k_telefon, dodatkoweuwagi: k_dodatkoweuwagi},
			function(data){
				$("#load").hide();
				$("#kontakt").fadeTo("slow", 1);		
				$("#form_output").html('<ol class="emailErrorList">'+data+'<ol>');	
			});
		},3000);
		
	}
	
	
	function dodaj_gabinet() {
		var do_imienazwisko = $("#do_imienazwisko").val();
		var do_nazwagabinetu = $("#do_nazwagabinetu").val();	
		var do_miasto = $("#do_miasto").val();
		var do_kod = $("#do_kod").val();
		var do_adres = $("#do_adres").val();
		var do_pmiasta = $("#do_pmiasta").val();
		var do_www = $("#do_www").val();
		var do_poczta = $("#do_poczta").val();
		var do_telefon1 = $("#do_telefon1").val();
		var do_dodatkowe = $("#do_dodatkowe").val();
		var location_hash = window.location.hash;

		$("#dodaj_obiekt").fadeTo("slow", 0.2);
		$("#dodaj_obiekt").after('<div id="load" style="display:block; text-align:center; position:absolute; margin:-400px auto; width:700px;"><img src="img/load.gif" style="margin:30px 100px 30px 0px;" ></div>');
		$.post("index.php?funkcja=dodaj_gabinet", { imienazwisko: do_imienazwisko, nazwagabinetu: do_nazwagabinetu, kod: do_kod, 
			adres: do_adres, p_miasta: do_pmiasta, www:do_www,
			miasto:do_miasto, pocztaelektroniczna:do_poczta, telefon:do_telefon1, dodatkoweuwagi:do_dodatkowe, hash:location_hash},
			function(data){ 
				window.setTimeout(function(){
					$("#load").hide();
					$("#dodaj_obiekt").fadeTo("slow", 1);				
					$("#form_output").html('<ol class="emailErrorList">'+data+'<ol>');
				}, 3000); 	
			});			
	}
	
	function load(wsp) {
	
	var nws = wsp.split(',')
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map"));
				
	      map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl());

				

        map.setCenter(new GLatLng(nws[0], nws[1]), 15);
				
			// Create our "tiny" marker icon
        var blueIcon = new GIcon(G_DEFAULT_ICON);
        blueIcon.image = "http://swiaturody.com/img/sw-marker.png";
		
		// Set up our GMarkerOptions object
		markerOptions = { icon:blueIcon };

        // Add 10 markers to the map at random locations
        var bounds = map.getBounds();
        var southWest = bounds.getSouthWest();
        var northEast = bounds.getNorthEast();
        var lngSpan = northEast.lng() - southWest.lng();
        var latSpan = northEast.lat() - southWest.lat();

          var latlng = new GLatLng(nws[0], nws[1]);
          map.addOverlay(new GMarker(latlng, markerOptions));


				
      }
    }

	
	function wyslij(){
		var email = $("#email").val();
		var imie_nazwisko = $("#imie_nazwisko").val();
		var tresca = $("#tresc").val();
		var telefon = $("#telefon").val();
		var infonowosci = document.getElementById("infonowosci");
		var pokaz_id = $("#obiekt_id").val();
		
		var fakeFirstName = $('#firstname').val();
		var fakeEmail = $('#yourMail').val();
		
		if (FromValidate()){
			
			$('#wyslij_maila').attr('disabled','true');
			$("#kontaktForm").fadeTo("slow", 0.2);
			$("#kontaktForm").after('<div id="load" style="display:block; text-align:center; position:absolute; margin:-200px auto; width:700px;"><img src="img/load.gif" style="margin:30px 0px 30px 0px;" ></div>');
			
			window.setTimeout(function(){
					$.post("index.php?funkcja=obiektKontakt", { mail: '1', email1: email, nazwisko: imie_nazwisko,  pytanie: tresca, telefon: telefon, newsletter: infonowosci.checked,id_o:pokaz_id,
														firstname  : fakeFirstName, email : fakeEmail},
					function(data){ 
					$("#load").hide();
					$("#kontaktForm").fadeTo("slow", 1);
					if (data != 'error') {
						$("#kontaktForm").html(data).fadeIn("slow");
					} else {
						$('#wyslij_maila').removeAttr('disabled');
						alert("Wystąpił błąd podczas wysyłania wiadomości. Proszę spróbować później.");
					} 
					
					});		
			}, 3000);
		}
	}
	
	function FromValidate(){
		var status = true;
		$("#kontaktForm").find('.required').each(function(){
			if ( $(this).val() == ''){
				$(this).css({'border' : '1px red solid'});
				status =  false;
			}else {
				if ($(this).attr('id') == 'email'){
					if (!(ValidateEmail())){
						status = false;
					}
				}
				else {
					$(this).css({'border' : '1px #7F9DB9 solid'});
				}
			}
		});
		return status;
	}
	
	function ValidateEmail(){
		   var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
		   var address = $('#email').val();
		   if(reg.test(address) == false) {
			  return false;
		   }else {
			return true;
		   }
	}
	
	var usluga;
	var nazwa;
	var miasto_id;
	var nazwa_id;
	
	var r = window.location.href;
			var i = r.indexOf("#");
	if ( i >=0 ){	
			var hash = r.substr(i+1).split(",");
			var	h_miejscowosc = hash[0].substr(7);
			var	h_usluga =  hash[1].substr(7);		
			var	h_nazwa = hash[2].substr(6);
	}
	function szukaj() {

	
	/* Pobieranie nowych wartosci */
	nazwa_id = $("#szukana_nazwa").val();
	if ($("#sz_nazwa").val() == ''){
		nazwa_id = '';
	}

	miasto_id = $("#sz_miejscowosc").val();
	if ($("#miejscowosc_nazwa").val() == '') {
		miasto_id = '';
	} else {
		if ($("#miejscowosc_nazwa").val() != '' && miasto_id == '')
			miasto_id = $("#miejscowosc_nazwa").val();
	}
	
	usluga = $("#sz_uslugi").val(); 
	nazwa = $("#sz_nazwa").val(); 
	
	if ( dhtmlHistory.getCurrentLocation() == ''){
			dhtmlHistory.add('miasto='+miasto_id+',usluga='+usluga+',nazwa='+nazwa_id+',strona=1'); 	
	}
	
	if ((miasto_id != h_miejscowosc) || 	(usluga != h_usluga )) {
		dhtmlHistory.add('miasto='+miasto_id+',usluga='+usluga+',nazwa='+nazwa_id+',strona=1'); 
	}
	
	//window.location.href = '#miasto_'+miasto_id+',usluga_'+usluga+'_strona_1';
	
	$("#katalog").hide();
	$("#szukaj_all").slideUp('slow');
	$("#wyszukiwarka").after('<div id="load"><center><img src="img/load.gif" style="margin:30px 0px 30px 0px;" id="load"></center></div>');
	$.post("index.php?funkcja=ajax_wyszukaj_obiekty", { usluga: usluga, miejscowosc: miasto_id,  nazwa: nazwa_id},function(data){ 		
		$("#load").hide();
		$("#wyniki_sz").hide();
		if ( data != 'Brak gabinetu w ktorego nazwie jest takie slowo.'){
			$("#wyszukiwarka").after(data);
			$("#wyniki_sz").fadeIn("slow");
			$("#szukaj_all").slideDown('slow');
			$("#wyszukiwarka").find("i").find("b").html('Polecane gabinety stomatologiczne w Polsce');
				$("#zmianak").click(szukaj_wysuwanie);
			$("#errorData").hide(); 
			//$("#wyniki_sz").find("div[@class=stronyaj]").find("a").click(strona);
		}
		else{
			$("#errorData").remove(); 
			$("#wyszukiwarka").after("<div style=\"color:red; font-weight:bold; text-align:center; \" id=\"errorData\">Brak ofert o takich kryteriach wyszukiwania</div>");
			$("#wyszukiwarka").find("i").find("b").html('Brak gabinetów o takich kryteriach wyszukiwania');
			$("#szukaj_all").slideDown('slow');
			//$("#errorData").hide(); 
		}
	
	});
	}
	
	
	function wyszukaj_wyniki(newLocation,historyData){
		strona(newLocation);
	}
	var stronas;
	

	function strona(newLocation) {
	
		//var taa = $(this);	
		var r = window.location.href;
		var i = r.indexOf("#");
		if ( i <= 0) {
			/* Pobieranie nowych wartosci */
				nazwa_id = $("#szukana_nazwa").val();
				if ($("#sz_nazwa").val() == ''){
					h_nazwa = '';
				} else {
					if ($("#sz_nazwa").val() != '' && $("#szukana_nazwa").val() == '')
						h_nazwa = $("#sz_nazwa").val();
				}
			
				h_miejscowosc = $("#sz_miejscowosc").val();
				if ($("#miejscowosc_nazwa").val() == '') {
					h_miejscowosc = '';
				} else {
					if ($("#miejscowosc_nazwa").val() != '' && $("#sz_miejscowosc").val() == '')
						h_miejscowosc = $("#miejscowosc_nazwa").val();
				}
				
				h_usluga = $("#sz_uslugi").val(); 
				h_nazwa = $("#sz_nazwa").val(); 
				stronas = 1;
			
		} else {
		
			var hash = r.substr(i+1).split(",");
			var	h_miejscowosc = hash[0].substr(7);
			var	h_usluga =  hash[1].substr(7);		
			var	h_nazwa = hash[2].substr(6);
			if (!h_nazwa)
				h_nazwa = '';
			var stronas = hash[3].substr(7);
		
			if ( stronas == 0) stronas = 0;
		}
		//	stronas = newLocation - 1;
		//if(!newLocation) stronas=0; 
		
			$("#wyniki_sz").hide();
			$("#szukaj_all").slideUp('slow');
			$("#load").hide();
			$("#wyszukiwarka").after('<div id="load" style="height:90px"><center><img src="img/load.gif" style="margin:30px 0px 30px 0px;" id="load"></center></div>');
			//$("#wyniki_sz").slideUp('slow');
			$.post("index.php?funkcja=ajax_wyszukaj_obiekty", { strona: stronas, usluga: h_usluga, miejscowosc: h_miejscowosc,  nazwa: h_nazwa},function(data){ 
				$("#load").hide();
				$("#wyniki_sz").hide();
				if ( data != 'Brak gabinetu w ktorego nazwie jest takie slowo.'){
				$("#wyszukiwarka").find("i").find("b").html('WYSZUKIWARKA');
					$('#wyniki_sz').remove();
					$("#wyszukiwarka").after(data);
					$("#szukaj_all").slideDown('slow');
					$("#errorData").hide(); 
				}
				else{
					$("#errorData").remove(); 
					$('#wyniki_sz > *').remove();
					$("#wyszukiwarka").after("<div style=\"color:red; font-weight:bold; text-align:center; \" id=\"errorData\">Brak ofert o takich kryteriach wyszukiwania</div>");
					$("#wyszukiwarka").find("i").find("b").html('Brak ofert o takich kryteriach wyszukiwania');
					$("#szukaj_all").slideDown('slow');
					//$("#errorData").hide(); 
				}
				$("#sz_miejscowosc").val('');
				$("#wyniki_sz").hide().fadeIn("slow");
				$("#zmianak").click(szukaj_wysuwanie);
				//$("#wyniki_sz").find("div[@class=stronyaj]").find("a").click(strona);
			});
	}
	
	
	function szukaj_wysuwanie() {
	if ($("#zmianak").html() == "<b>Schowaj wyszukiwarke.</b>") { 
						$("#szukaj_all").slideUp('slow'); 
						$("#zmianak").html("<b>Zmiana kryterii wyszukiwania.</b>")
					} else {
						$("#szukaj_all").slideDown('slow'); 
						$("#zmianak").html("<b>Schowaj wyszukiwarke.</b>")
					}
	}
	
	function findValueCallback(event, data, formatted) {
		$("<li>").text( !data ? "No match!" : "Selected: " + formatted).appendTo("#result");
	}
	
	// autocomplete do nazw miast
	function formatItem(row) {
		//var row = row.split("|");
		if (row[0] ==  'Brak miasta')
			return '<b>'+row[0]+': </b>'+row[1];
		else
			return row[0] + " (" + row[1] + " " + row[2]+ " )";
	}
	
	function formatResult(row) {
		return row[0];
	}
	
	// Autocomplete  do nazw gabinetów
	function formatItemName(row) {
		if (row[0] ==  'Brak gabinetu')
			return '<b>'+row[0]+': </b>'+row[1];
		else
			return row[0] + "<br />(" + row[1] + " " + row[2] + " )";
	}
	
	function formatResultName(row) {
		return row[0];
	}
	
	function miasto_keyup(e){
		t=IE?event.keyCode:e.keyCode;
		val= $("#miejscowosc_nazwa").val();
		$("#miejscowosc_nazwa").focus();
		switch(t){
			case 13:
				
				setTimeout('szukaj();',100);
			return false;
			break;	
		}
	}
	

	
	
	

	
	