//////////////
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();
	});
	
	RSHStart();
	
	/* 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);
	
	$('.pokazNazwe').click(function(){
		var that = this;
		$(this).next().toggle('slow', function(){
			if ($(that).next().filter(':visible').length) {
				$(that).addClass('bold');
			} else {
				$(that).removeClass('bold');
			}
		});
	});
	
	/* 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
		});
	
	$(":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('');
	}).focus(function(){
		$(this).css({"border":"2px solid #1A346E"});
	}).blur(function(){
		$(this).css({"border":"1px solid #1A346E"});
	});
	
	$("#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);
});
	
	//zmienia krok (etap) rezerwacji
	var zmienKrok = function(krok){
		zmienStrone(krok);
		dhtmlHistory.add(krok);
	};
	
	var RSHStart = function(){
		window.dhtmlHistory.create({
			 toJSON: function(o) {
				return JSON.stringify(o);
			 } , fromJSON: function(s) {
				return JSON.parse(s);
			 }
		});
		 dhtmlHistory.initialize();
		 dhtmlHistory.addListener(zmienKrok);
	};
	
	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://dentysta-stomatolog.com/img/ds-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;
		   }
	}
	
	function szukaj() {
		dhtmlHistory.add(1);
		wyslijRzdanie($('#searchForm').serialize()+"&strona=0");
	}
	
	function zmienStrone(iNrStrony){
		wyslijRzdanie($('#searchForm').serialize()+"&strona="+iNrStrony);
	}
	
	function wyslijRzdanie(sDane){		
		$('.loader').remove();
		$("#wyniki_sz").remove();
		$("#wyszukiwarka").after('<div class="loader"><center><p>Trwa wyszukiwanie gabinetów .. </p></center><img src="img/ajax-loader.gif"/></div>');
		$.get("index.php?funkcja=ajax_wyszukaj_obiekty&"+sDane,function(data){ 		
			$("#wyniki_sz").remove();
			$("#wyszukiwarka").after(data);
			$('.loader').remove();
			$("#wyszukiwarka").find("i").find("b").html('Polecane gabinety stomatologiczne w Polsce');
		});
	}
	
	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];
	}
	
