var AJX = new Image();
AJX.src = MAINURL+'images/ajax-loader.gif';

function strip_tags (str, allowed_tags) {
    // Strips HTML and PHP tags from a string
    //
    // version: 1004.1212
    // discuss at: http://phpjs.org/functions/strip_tags    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Luke Godfrey
    // +      input by: Pul
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   bugfixed by: Onno Marsman    // +      input by: Alex
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +      input by: Marc Palau
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +      input by: Brett Zamir (http://brett-zamir.me)    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   bugfixed by: Eric Nagel
    // +      input by: Bobby Drake
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   bugfixed by: Tomasz Wesolowski    // *     example 1: strip_tags('<p>Kevin</p> <b>van</b> <i>Zonneveld</i>', '<i><b>');
    // *     returns 1: 'Kevin <b>van</b> <i>Zonneveld</i>'
    // *     example 2: strip_tags('<p>Kevin <img src="someimage.png" onmouseover="someFunction()">van <i>Zonneveld</i></p>', '<p>');
    // *     returns 2: '<p>Kevin van Zonneveld</p>'
    // *     example 3: strip_tags("<a href='http://kevin.vanzonneveld.net'>Kevin van Zonneveld</a>", "<a>");    // *     returns 3: '<a href='http://kevin.vanzonneveld.net'>Kevin van Zonneveld</a>'
    // *     example 4: strip_tags('1 < 5 5 > 1');
    // *     returns 4: '1 < 5 5 > 1'
    var key = '', allowed = false;
    var matches = [];var allowed_array = [];
    var allowed_tag = '';
    var i = 0;
    var k = '';
    var html = '';
    var replacer = function (search, replace, str) {
        return str.split(search).join(replace);
    };
     // Build allowes tags associative array
    if (allowed_tags) {
        allowed_array = allowed_tags.match(/([a-zA-Z0-9]+)/gi);
    }
     str += '';

    // Match tags
    matches = str.match(/(<\/?[\S][^>]*>)/gi);
     // Go through all HTML tags
    for (key in matches) {
        if (isNaN(key)) {
            // IE7 Hack
            continue;}

        // Save HTML tag
        html = matches[key].toString();
         // Is tag not in allowed list? Remove from str!
        allowed = false;

        // Go through all allowed tags
        for (k in allowed_array) {            // Init
            allowed_tag = allowed_array[k];
            i = -1;

            if (i != 0) {i = html.toLowerCase().indexOf('<'+allowed_tag+'>');}if (i != 0) {i = html.toLowerCase().indexOf('<'+allowed_tag+' ');}
            if (i != 0) {i = html.toLowerCase().indexOf('</'+allowed_tag)   ;}

            // Determine
            if (i == 0) {allowed = true;
                break;
            }
        }
         if (!allowed) {
            str = replacer(html, "", str); // Custom replace. No regexing
        }
    }
     return str;
}

function showAdditionalRegistrationFields(elem)
{
   var f = document.getElementById('registrationForm');
   var elems = f.elements;
   var show = '';
   if (elem.value == "0")
      show = 'none';
   else
      show = '';

   var table = document.getElementById('registrationTable');
   var trs = table.getElementsByTagName('tr');
   for (var i=0; i<trs.length; i++)
   {
      if (trs[i].className == 'dontshow')
         trs[i].style.display = show;
   }
}

function displayRegistrationFormError(elem, error)
{
   var e = elem.parentNode;
   e = e.parentNode;
   var tede = e.getElementsByTagName('td');
   if (tede[2])
   {
      tede[2].innerHTML = error;
   }
}

function hideRegistrationFormError(elem)
{
   if (elem)
   {
      var e = elem.parentNode;
      e = e.parentNode;
      var tede = e.getElementsByTagName('td');
      if (tede[2])
      {
         tede[2].innerHTML = '';
      }
   }
}

function checkRegistrationForm(link, edit)
{
   var form = document.getElementById('registrationForm');
   var elems = form.elements;

   var wr = /^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/;
   var errors = 0;
   if (elems["email"] && !elems["email"].value.match(wr))
   {
      displayRegistrationFormError(elems["email"], 'Niepoprawny adres e-mail');
      errors++;
   }
   else
   {
      hideRegistrationFormError(elems["email"]);
   }

   if (elems["password1"] && elems["password1"].value.length < 5)
   {
      displayRegistrationFormError(elems["password1"], 'Has\u0142o musi zawierać minimum 5 znaków');
      errors++;
   }
   else
   {
      hideRegistrationFormError(elems["password1"]);
   }

   if (elems["password1"] && elems["password1"].value != elems["password2"].value)
   {
      displayRegistrationFormError(elems["password2"], 'Has\u0142a nie s\u0105 identyczne');
      errors++;
   }
   else
   {
      hideRegistrationFormError(elems["password2"]);
   }

   if (elems["password1"] && elems["password1"].value.length < 5)
   {
      displayRegistrationFormError(elems["password1"], 'Has\u0142o musi zawierać minimum 5 znaków');
      errors++;
   }
   else
   {
      hideRegistrationFormError(elems["password1"]);
   }

   if (!document.getElementById('RegFullData') || document.getElementById('RegFullData').checked)
   {
      if (elems["first_name"].value.length < 2)
      {
         displayRegistrationFormError(elems["first_name"], 'Proszę podać imię');
         errors++;
      }
      else
      {
         hideRegistrationFormError(elems["first_name"]);
      }

      if (elems["last_name"].value.length < 2)
      {
         displayRegistrationFormError(elems["last_name"], 'Proszę podać nazwisko');
         errors++;
      }
      else
      {
         hideRegistrationFormError(elems["last_name"]);
      }

      if (elems["address"].value.length < 2)
      {
         displayRegistrationFormError(elems["address"], 'Proszę podać adres');
         errors++;
      }
      else
      {
         hideRegistrationFormError(elems["address"]);
      }

      if (elems["zip"].value.length < 5)
      {
         displayRegistrationFormError(elems["zip"], 'Proszę podać kod pocztowy');
         errors++;
      }
      else
      {
         hideRegistrationFormError(elems["zip"]);
      }

      if (elems["city"].value.length < 2)
      {
         displayRegistrationFormError(elems["city"], 'Proszę podać miasto');
         errors++;
      }
      else
      {
         hideRegistrationFormError(elems["city"]);
      }

      if (elems["phone"].value.length < 5)
      {
         displayRegistrationFormError(elems["phone"], 'Proszę podać numer telefonu');
         errors++;
      }
      else
      {
         hideRegistrationFormError(elems["phone"]);
      }

      if (document.getElementById('RegCmp').checked)
      {
         if (elems["company_name"].value.length < 2)
         {
            displayRegistrationFormError(elems["company_name"], 'Proszę podać nazwę firmy');
            errors++;
         }
         else
         {
            hideRegistrationFormError(elems["company_name"]);
         }
         if (elems["nip"].value.length < 5)
         {
            displayRegistrationFormError(elems["nip"], 'Proszę podać NIP');
            errors++;
         }
         else
         {
            hideRegistrationFormError(elems["nip"]);
         }
      }
   }

   if (document.getElementById('regulamin') && !document.getElementById('regulamin').checked)
   {
      alert('Proszę zaakceptować regulamin!');
      return false;
   }


   if (errors > 0)
   {
      alert("Nie wszystkie pola zostały wypełnione poprawnie. Proszę poprawić formularz i spróbować ponownie");
   }
   else
   {
      document.getElementById('RegButton').disabled = true;
      document.getElementById('RegButton').value = "Proszę czekać...";
      if (edit)
      {
         form.action = link;
         return true;
      }
      else
      {
         checkIfUserExists(elems["email"].value, form, link);
      }
   }
   return false;

}

function checkIfUserExists(email, form, action)
{
   
   $.ajax({
   type: "POST",
   url: MAINURL+"api/checkUserExists.html",
   data: "email="+email,
   success: function(msg){
     if (msg.indexOf('false') != -1)
     {
        form.action = action;
        form.submit();
     }
     else
     {
        alert("Użytkownik o takim adresie e-mail już istnieje");
        document.getElementById('RegButton').disabled = false;
        document.getElementById('RegButton').value = "Rejestruj się";
     }

   }
 });
}

function showRegistrationCompany(elem)
{
   if (elem.value == "0")
   {
      document.getElementById('companyField1').style.display = 'none';
      document.getElementById('companyField2').style.display = 'none';
   }
   else
   {
      document.getElementById('companyField1').style.display = '';
      document.getElementById('companyField2').style.display = '';
   }
}

function helpDisableStep(id)
{
   var a = document.getElementById('step'+id.toString()+'ico');
   if (a)
      a.className = 'disabled';
   else
   {
      a =  document.getElementById('estep'+id.toString()+'ico');
      if (a)
         a.className = 'disabled';
   }
}

function helpEnableStep(id)
{
   var a = document.getElementById('step'+id.toString()+'ico');
   if (a)
      a.className = '';
   else
   {
      a =  document.getElementById('estep'+id.toString()+'ico');
      if (a)
         a.className = '';
   }
}

function enableStep(type)
{
   if (type == 2)
   {
        $(".datepicker").datepicker({firstDay: 1,
            dateFormat: 'yy-mm-dd',
            dayNamesMin: ['Nd', 'Pn', 'Wt', 'Śr', 'Cz', 'Pt', 'So' ],
            monthNames: ['Styczeń', 'Luty', 'Marzec', 'Kwiecień', 'Maj', 'Czerwiec', 'Lipiec', 'Sierpień', 'Wrzesień', 'Październik', 'Listopad', 'Grudzień']
            });
        $("#datepicker").datepicker({firstDay: 1,
            dateFormat: 'yy-mm-dd',
            dayNamesMin: ['Nd', 'Pn', 'Wt', 'Śr', 'Cz', 'Pt', 'So'],
            monthNames: ['Styczeń', 'Luty', 'Marzec', 'Kwiecień', 'Maj', 'Czerwiec', 'Lipiec', 'Sierpień', 'Wrzesień', 'Październik', 'Listopad', 'Grudzień'],
            onSelect: function(dateText, inst) {document.getElementById('offer_show_from').value = dateText;}
            });
   }


   if (type == 'none')
   {
      helpDisableStep(1);
      helpDisableStep(2);
      helpDisableStep(3);
      helpDisableStep(4);
      helpDisableStep(5);
   }
   else if (type == 1)
   {
      helpEnableStep(1);
      helpDisableStep(2);
      helpDisableStep(3);
      helpDisableStep(4);
      helpDisableStep(5);
   }
   else if (type == 2)
   {
      helpEnableStep(1);
      helpEnableStep(2);
      helpDisableStep(3);
      helpDisableStep(4);
      helpDisableStep(5);

   }
   else if (type == 3)
   {
      helpEnableStep(1);
      helpEnableStep(2);
      helpEnableStep(3);
      helpDisableStep(4);
      helpDisableStep(5);

   }
   else if (type == 4)
   {
      helpEnableStep(1);
      helpEnableStep(2);
      helpEnableStep(3);
      helpEnableStep(4);
      helpDisableStep(5);

   }
   else if (type == 5)
   {
      helpEnableStep(1);
      helpEnableStep(2);
      helpEnableStep(3);
      helpEnableStep(4);
      helpEnableStep(5);
   }
}

function showTab(id)
{
   document.getElementById('step1').style.display = 'none';
   if (document.getElementById('step2'))
      document.getElementById('step2').style.display = 'none';
   var bb = document.getElementById('step3');
   if (!bb)
      bb = document.getElementById('estep3');
   if (bb)
      bb.style.display = 'none';
   if (document.getElementById('step4'))
      document.getElementById('step4').style.display = 'none';
   if (document.getElementById('step5'))
      document.getElementById('step5').style.display = 'none';

   cc = document.getElementById('step'+id);
   if (!cc)
      cc = document.getElementById('estep'+id)
   cc.style.display = '';
}

function showAddStep1()
{
   if (confirm('Czy na pewno chcesz zmienić kategorię ogłoszenia?\n\nPrzejście do tego kroku spowoduje usunięcie wszystkich wprowadzonych przez Ciebie danych'))
   {
      //usuwamy wszystko
      document.getElementById('otherSteps').innerHTML = '';
      showTab(1);
      enableStep(1);
   }
   return false;

}

function showAddStep2()
{
   var d = document.createElement('div');
   d.style.margin = 'auto';
   d.style.width = '100px';
   d.appendChild(AJX);
   d.innerHTML += '<br/><br />Proszę czekać...';
   d.id = 'AJXdiv';
   d.style.textAlign = 'center';

   document.getElementById('step1').appendChild(d);

   var b = document.getElementById('mainCategory').value;
   $.ajax( {
      type: "POST",
      url: MAINURL+'api/getOfferSteps4Add.html?category='+b, //+encodeURIComponent(b),
      success: function(msg){
        $('#AJXdiv').remove();
        document.getElementById('otherSteps').innerHTML = msg;
        showTab(2);
        enableStep(2);


        $("#offer_city").autocomplete({
            source: MAINURL+"api/getJSONCities.html",
            minLength: 2
         });
      },
      error: function error(x, ts, et)
      {
         alert(x.statusText);
         alert(ts);
         alert(et);
      }

   });

   return false;
}

function showAddStep2_f2()
{
   showTab(2);
   enableStep(2);
}

function validateField(name, min, max)
{
   var f = document.getElementById('addForm');
   var b = f.elements[name];
   if (!b || b.value.length < min)
      return false;
   else
      return true;
}

//Troszke rozbudowana Jackowa funkcja, żebym tysiąca alertów pisać nie musiał... - T.B.
function validateFieldAlerter(name, min, max, name2)
{
   var f = document.getElementById('addForm');
   var b = f.elements[name];
   if (!b || b.value.length < min)
   {
      alert('Pole '+name2+' nie może być puste');
      return false;
   }
   if(b.value.length > max)
   {
	   alert('Pole '+name2+' nie może zawierać więcej niż '+max+' znaków');
	   return false;
   }
   return true;
}

function validateStep2()
{
   if (!validateFieldAlerter('offer_title', 2,80,'Tytuł ogłoszenia'))
   {
      //alert('Proszę podać tytuł oferty!');
      return false;
   }
   if (!validateFieldAlerter('offer_short_description', 2,256,'Krótki opis oferty'))
   {
      //alert('Proszę podać skrócony opis oferty!');
      return false;
   }
   if (!validateFieldAlerter('offer_keywords', 2,150,'Słowa kluczowe'))
   {
      //alert('Proszę podać słowa kluczowe oferty!');
      return false;
   }
   if (!validateFieldAlerter('offer_zip', 5,10,'Kod pocztowy'))
   {
      //alert('Proszę podać kod pocztowy!');
      return false;
   }
   if (!validateField('offer_city', 2))
   {
      alert('Proszę podać miasto!');
      return false;
   }
   if (!validateFieldAlerter('offer_address', 2,150,'Adres'))
   {
      //alert('Proszę podać adres pod którym znajduje się oferta!');
      return false;
   }
   var oEditor = FCKeditorAPI.GetInstance('offer_long_description') ;
   var long_description = oEditor.GetHTML();
   var long_desc = strip_tags(long_description);
   if (long_desc.length > 4000)
   {
      alert('Długi opis nie może przekraczać 4000 znaków. Wpisano '+long_desc.length+' znaków');
      return false;
   }

   var col = document.getElementById('weSpeak');
   var cols = col.getElementsByTagName('input');
   var i = 0;
   var noLangs = false;
   for (i=0; i<cols.length; i++)
   {
      if (cols[i].checked == true)
         {
            noLangs = true;
            break;
         }
   }

   if (!noLangs)
   {
      alert('Proszę wybrać przynajmniej jeden język');
      return false;
   }

   var col = document.getElementById('locTD');
   var cols = col.getElementsByTagName('input');
   var i = 0;
   var locations = 0;
   for (i=0; i<cols.length; i++)
   {
      if (cols[i].checked == true) locations++;
   }

   if (locations < 1 || locations > 2)
   {
      alert('Proszę zaznaczyć pole przy przynajmniej jednej z lokalizacji oferty lecz nie więcej niż dwie z nich');
      return false;
   }
   return true;
}

function showAddStep3(wstecz)
{
   if (document.getElementById('step3'))
   {
      if (validateStep2())
      {
         showTab(3);
         enableStep(3);
      }
   }
   else
   {
      if (wstecz)
      {
         showTab(2);
         enableStep(2);
      }
      else
      {
         if (validateStep2())
         {
            showAddStep4();
         }
      }
   }
   return false;
}

function showMarker(map, p, zoom)
{
   map.setCenter(new GLatLng(p[1],p[0]),zoom);
   var marker = new GMarker(new GLatLng(p[1],p[0]), {draggable: true});
   marker.enableDragging();
   GEvent.addListener(marker, "dragend", function(latlng) {
     document.getElementById('offer_lat').value = latlng.lat();
     document.getElementById('offer_lng').value = latlng.lng();
    });
   document.getElementById('offer_lat').value = p[1];
   document.getElementById('offer_lng').value = p[0];
   map.addOverlay(marker);
}

function showMarker2(map, p, zoom)
{
   map.setCenter(new GLatLng(p[1],p[0]),zoom);
   var marker = new GMarker(new GLatLng(p[1],p[0]), {draggable: true});
   marker.enableDragging();
   GEvent.addListener(marker, "dragend", function(latlng) {
     document.getElementById('card_lat').value = latlng.lat();
     document.getElementById('card_lng').value = latlng.lng();
    });
   document.getElementById('card_lat').value = p[1];
   document.getElementById('card_lng').value = p[0];
   map.addOverlay(marker);
}

function validateStep3()
{
   var cat = document.getElementById('mainCategory').value;
   var preg = /^[0-9]{4}\-[0-9]{2}\-[0-9]{2}$/;

   if (cat == 'atrakcje')
   {
      if (document.getElementById('allYear').style.display != 'none')
      {
         if (!document.getElementById('activity_opened_from').value.match(preg) || !document.getElementById('activity_opened_to').value.match(preg))
            {
               alert("Proszę podać prawidłowe daty w formacie RRRR-MM-DD");
               return false;
            }
      }

      var b = document.getElementById('actChk');
      var c = b.getElementsByTagName('input');

      for(var i=0; i<c.length; i++)
      {
         if (c[i].checked == true) return true;
      }
   }
   else if (cat == 'gastronomia')
   {
      if (document.getElementById('catering_seats').value.length < 1)
      {
         alert("Proszę podać prawidłową liczbę miejsc!");
         return false;
      }
   }
   else if (cat == 'noclegi')
   {
      var aa = document.getElementById('room_1_price');
      var ab = document.getElementById('room_1_persons');
      var ac = document.getElementById('room_1_name');

      if (aa.length < 1 || ab.length < 1 || ac.length < 2)
      {
         alert("Proszę wypełnić informacje o przynajmniej jednym pokoju");
         return false;
      }
   }
   else if (cat == 'wycieczki')
   {
      var ba = document.getElementById('term_price');
      var bb = document.getElementById('term_from');
      var bc = document.getElementById('term_to');
      var bd = document.getElementById('term_days');
      if (ba.value.length < 1 || !bb.value.match(preg) || !bc.value.match(preg) || bd.value.length < 1)
      {
         alert('Proszę wypełnić prawidłowo wszystkie pola dotyczące terminu wycieczki');
         return false;
      }
   }
   return true;
}

function validateMMailField()
{
	var ba = document.getElementById('form_name');
    var bb = document.getElementById('form_email');
    var bc = document.getElementById('form_phone');
    var bd = document.getElementById('form_content');
    if (ba.value.length < 4 || bb.value.length < 4 || bc.value.length < 4 || bd.value.length < 10)
    {
       alert('Proszę wypełnić poprawnie wszystkie pola formularza.');
       return false;
    }
    return true;
}

function validateAbuseField()
{
	var ba = document.getElementById('form_reason');
    if (ba.value.length < 4)
    {
       alert('Proszę wypełnić poprawnie wszystkie pola formularza.');
       return false;
    }
    return true;
}

function showAddStep4()
{
   if (!validateStep3())
      return false;
   
   showTab(4);
   enableStep(4);
   var map = new google.maps.Map(document.getElementById("gugleMap"));
   map.addControl(new GLargeMapControl());
   map.addControl(new GMapTypeControl());
   var geo = new GClientGeocoder();
   var full_address = document.getElementById('offer_address').value+", "+document.getElementById('offer_city').value+", "+document.getElementById('offer_country').value;
   var city = document.getElementById('offer_city').value+", "+document.getElementById('offer_country').value;
   geo.getLocations(full_address, function(result)
   {
      if (result.Status.code == G_GEO_SUCCESS) {
         var p = result.Placemark[0].Point.coordinates;
         showMarker(map, p, 14);
      }
      else
      {
         geo.getLocations(city, function(result)
         {
            if (result.Status.code == G_GEO_SUCCESS) {
               var p = result.Placemark[0].Point.coordinates;
               showMarker(map, p, 8);
            }
            else
            {
               showMarker(map, {0: 52.025459, 1: 19.204102}, 5);
            }
         }  
         );
      }
   }
   );

   return false;
}

function showAddStep5()
{
   showTab(5);
   enableStep(5);
   return false;
}

function submitAddOfferForm()
{
   var preg = /^[0-9]{4}\-[0-9]{2}\-[0-9]{2}$/;
   var a = document.getElementById('offer_show_from').value;
   if (!a.match(preg))
   {
      alert('Proszę poprawnie podać datę rozpoczęcia wyświetlania ogłoszenia');
      return false;
   }
   return true;
}


function str_replace (search, replace, subject, count) {
    // Replaces all occurrences of search in haystack with replace
    //
    // version: 1003.2411
    // discuss at: http://phpjs.org/functions/str_replace    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Gabriel Paderni
    // +   improved by: Philip Peterson
    // +   improved by: Simon Willison (http://simonwillison.net)
    // +    revised by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)    // +   bugfixed by: Anton Ongson
    // +      input by: Onno Marsman
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +    tweaked by: Onno Marsman
    // +      input by: Brett Zamir (http://brett-zamir.me)    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   input by: Oleg Eremeev
    // +   improved by: Brett Zamir (http://brett-zamir.me)
    // +   bugfixed by: Oleg Eremeev
    // %          note 1: The count parameter must be passed as a string in order    // %          note 1:  to find a global variable in which the result will be given
    // *     example 1: str_replace(' ', '.', 'Kevin van Zonneveld');
    // *     returns 1: 'Kevin.van.Zonneveld'
    // *     example 2: str_replace(['{name}', 'l'], ['hello', 'm'], '{name}, lars');
    // *     returns 2: 'hemmo, mars'    var i = 0, j = 0, temp = '', repl = '', sl = 0, fl = 0,
            f = [].concat(search),
            r = [].concat(replace),
            s = subject,
            ra = r instanceof Array, sa = s instanceof Array;s = [].concat(s);
    if (count) {
        this.window[count] = 0;
    }
     for (i=0, sl=s.length; i < sl; i++) {
        if (s[i] === '') {
            continue;
        }
        for (j=0, fl=f.length; j < fl; j++) {temp = s[i]+'';
            repl = ra ? (r[j] !== undefined ? r[j] : '') : r[0];
            s[i] = (temp).split(f[j]).join(repl);
            if (count && s[i] !== temp) {
                this.window[count] += (temp.length-s[i].length)/f[j].length;}}
    }
    return sa ? s : s[0];
}

function changeAddonsPrice(elem)
{
   var a = elem.value;
   var price1 = document.getElementById('promo_main'+a+'_price').value;
   var price2 = document.getElementById('promo_category'+a+'_price').value;
   var price3 = 0;
   if (document.getElementById('price_last_minute'+a+'_price'))
      price3 = document.getElementById('price_last_minute'+a+'_price').value;
   //var price4 = document.getElementById('price_photo_pack'+a+'_price').value;

   document.getElementById('promo_main_v').innerHTML = price1;
   document.getElementById('promo_category_v').innerHTML = price2;
   if (document.getElementById('price_last_minute_v'))
      document.getElementById('price_last_minute_v').innerHTML = price3;
//   document.getElementById('price_photo_pack_v').innerHTML = price4;
   //alert(a);
   //alert(parseInt(document.getElementById('userHasPacks'+a).value));
   if (parseInt(document.getElementById('userHasPacks'+a).value) > 0)
      document.getElementById('hasPacksPaymentType').style.display = 'block';
   else
      document.getElementById('hasPacksPaymentType').style.display = 'none';
}

function showAllyear(elem)
{
   if (elem.checked == true && elem.value == "0")
   {
      $('#allYear').show();
   }
   else
   {
      $('#allYear').hide();
   }

}

function showEditStep2(wstecz)
{
   if (document.getElementById('step2'))
   {
      if (validateStep2())
      {
         showTab(2);
         enableStep(2);
         $(".datepicker").datepicker({firstDay: 1,
            dateFormat: 'yy-mm-dd',
            dayNamesMin: ['Pn', 'Wt', 'Śr', 'Cz', 'Pt', 'So', 'Nd'],
            monthNames: ['Styczeń', 'Luty', 'Marzec', 'Kwiecień', 'Maj', 'Czerwiec', 'Lipiec', 'Sierpień', 'Wrzesień', 'Październik', 'Listopad', 'Grudzień']
            });
      }
   }
   else
   {
      if (wstecz)
      {
         showTab(1);
         enableStep(1);
      }
      else
      {
    	  showEditStep3();
      }
   }
   return false;
}

function showEditStep1()
{
   showTab(1);
   enableStep(1);
}

function showEditStep3()
{
   if (validateStep3())
   {
      showTab(3);
      enableStep(3);
      var map = new google.maps.Map(document.getElementById("gugleMap"));
      map.addControl(new GLargeMapControl());
      map.addControl(new GMapTypeControl());
		var lng = parseFloat(document.getElementById('offer_lat').value);
		var lat = parseFloat(document.getElementById('offer_lng').value);

      showMarker(map, {0: lat, 1: lng}, 12);
   }
}

function showOtherRooms(elem)
{
   $('#otherRooms').show();
   $(elem).hide();
}

function loadNearAttractions(offer_id, kms)
{
   var AJ = AJX.cloneNode(true);

   var dif = document.getElementById('nearAttractionsList');
   if (dif)
   {
      dif.innerHTML = '';
      dif.appendChild(AJ);
      $(dif).show();
      $.ajax({
         type: "GET",
         url: MAINURL+"api/showNearAttractions/"+offer_id+".html?kms="+kms,
         success: function(msg){
           document.getElementById('nearAttractionsList').innerHTML = msg;
         }
      });
   }

   return false;
}

function loadNearFood(offer_id, kms)
{
   var AJ = AJX.cloneNode(true);

   var dif = document.getElementById('nearFoodList');
   if (dif)
   {
      dif.innerHTML = '';
      dif.appendChild(AJ);
      $(dif).show();
      $.ajax({
         type: "GET",
         url: MAINURL+"api/showNearFood/"+offer_id+".html?kms="+kms,
         success: function(msg){
           document.getElementById('nearFoodList').innerHTML = msg;
         }
      });
   }

   return false;
}

function loadNearAccomodation(offer_id, kms)
{
   var AJ = AJX.cloneNode(true);

   var dif = document.getElementById('nearAccomodationList');
   if (dif)
   {
      dif.innerHTML = '';
      dif.appendChild(AJ);
      $(dif).show();
      $.ajax({
         type: "GET",
         url: MAINURL+"api/showNearAccomodations/"+offer_id+".html?kms="+kms,
         success: function(msg){
           document.getElementById('nearAccomodationList').innerHTML = msg;
         }
      });
   }

   return false;
}

var mmap;

function runCardDisplay()
{
   // tutaj musimy sobie zrobić kilka rzeczy... między innymi odpalić mapę gugla...
   var lat = document.getElementById('card_lat').value;
   var lng = document.getElementById('card_lng').value;


   if (!isNaN(parseFloat(lat)) && !isNaN(parseFloat(lng)))
   {
		document.getElementById("gugleMapa").style.height='300px';
	   mmap = new google.maps.Map(document.getElementById("gugleMapa"));
	   mmap.addControl(new GLargeMapControl());
	   mmap.addControl(new GMapTypeControl());
      showMarker2(mmap, {0: parseFloat(lng), 1: parseFloat(lat)}, 12);
   }

   return false;
}

function runAdminCardDisplay()
{
   // tutaj musimy sobie zrobić kilka rzeczy... między innymi odpalić mapę gugla...
   var lat = document.getElementById('card_lat').value;
   var lng = document.getElementById('card_lng').value;


   if (!isNaN(parseFloat(lat)) && !isNaN(parseFloat(lng)))
   {
		document.getElementById("gugleMapa").style.height='300px';
	   mmap = new GMap(document.getElementById("gugleMapa"));
	   mmap.addControl(new GLargeMapControl());
	   mmap.addControl(new GMapTypeControl());
      showMarker2(mmap, {0: parseFloat(lng), 1: parseFloat(lat)}, 12);
   }

   return false;
}

function FindCardOnGoogleMap()
{
	if (!mmap)
	{
		document.getElementById("gugleMapa").style.height='300px';
	   mmap = new google.maps.Map(document.getElementById("gugleMapa"));
	   mmap.addControl(new GLargeMapControl());
	   mmap.addControl(new GMapTypeControl());
		
	}

   var geo = new GClientGeocoder();
   var full_address = document.getElementById('card_address').value+", "+document.getElementById('city').value;
   var city = document.getElementById('city').value;
   geo.getLocations(full_address, function(result)
   {
      if (result.Status.code == G_GEO_SUCCESS) {
         var p = result.Placemark[0].Point.coordinates;
         showMarker2(mmap, p, 14);
      }
      else
      {
         geo.getLocations(city, function(result)
         {
            if (result.Status.code == G_GEO_SUCCESS) {
               var p = result.Placemark[0].Point.coordinates;
               showMarker2(mmap, p, 8);
            }
            else
            {
               showMarker2(mmap, {0: 52.025459, 1: 19.204102}, 5);
            }
         }
         );
      }
   }
   );


}

function FindCardOnGoogleMapAdmin()
{
	if (!mmap)
	{
		document.getElementById("gugleMapa").style.height='300px';
	   mmap = new GMap(document.getElementById("gugleMapa"));
	   mmap.addControl(new GLargeMapControl());
	   mmap.addControl(new GMapTypeControl());

	}

   var geo = new GClientGeocoder();
   var full_address = document.getElementById('card_address').value+", "+document.getElementById('city').value;
   var city = document.getElementById('city').value;
   geo.getLocations(full_address, function(result)
   {
      if (result.Status.code == G_GEO_SUCCESS) {
         var p = result.Placemark[0].Point.coordinates;
         showMarker2(mmap, p, 14);
      }
      else
      {
         geo.getLocations(city, function(result)
         {
            if (result.Status.code == G_GEO_SUCCESS) {
               var p = result.Placemark[0].Point.coordinates;
               showMarker2(mmap, p, 8);
            }
            else
            {
               showMarker2(mmap, {0: 52.025459, 1: 19.204102}, 5);
            }
         }
         );
      }
   }
   );


}

function checkCardForm()
{
   var subdomain = document.getElementById('card_subdomain');

   var card_objectname = document.getElementById('card_objectname');
   var card_address = document.getElementById('card_address');
   var card_zip = document.getElementById('card_zip');
   var city = document.getElementById('city');
   var card_email = document.getElementById('card_email');
   var card_www = document.getElementById('card_www');
   var card_phone = document.getElementById('card_phone');
   var card_fax = document.getElementById('card_fax');
	var lat = document.getElementById('card_lat');
	var lng = document.getElementById('card_lng');

   if (card_objectname.value.length < 2)
   {
      alert("Proszę podać nazwę obiektu");
      return false;
   }
   if (card_address.value.length < 2)
   {
      alert("Proszę podać adres");
      return false;
   }
   if (card_zip.value.length < 5)
   {
      alert("Proszę podać kod pocztowy");
      return false;
   }
   if (city.value.length < 2)
   {
      alert("Proszę podać miasto");
      return false;
   }
   var wr = /^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/;
   if (card_email.value < 5 || !card_email.value.match(wr))
   {
      alert("Proszę podać prawidłowy adres email");
      return false;
   }
   if (card_www.value.length > 0 && card_www.value.indexOf('http://') == -1)
   {
      alert("Proszę podać adres strony www z przedrostkiem http://");
      return false;
   }
   var wr2 = /^[+\d -]+$/;
   if (card_phone.value.length < 0 && !card_phone.value.match(wr2))
   {
      alert("Proszę podać numer telefonu składający się wyłącznie z cyfr");
      return false;
   }
   if (card_fax.value.length < 0 && !card_fax.value.match(wr2))
   {
      alert("Proszę podać numer telefonu składający się wyłącznie z cyfr");
      return false;
   }
	
	if (isNaN(parseFloat(lat.value)) || isNaN(parseFloat(lng.value)))
	{
		alert("Proszę wybrać lokalizację na mapie");
		return false;
	}

   var oEditor = FCKeditorAPI.GetInstance('card_mainpage') ;
   var long_description = oEditor.GetHTML();
   var long_desc = strip_tags(long_description);
   if (long_desc.length > 4000)
   {
      alert('Opis nie może przekraczać 4000 znaków.');
      return false;
   }


   if (subdomain)
   {
      if (subdomain.value.length < 6 || subdomain.value.length > 30)
      {
         alert("Subdomena nie może mieć mniej niż 6 i nie więcej niż 30 znaków");
         return false;
      }
      var wr3 = /^[a-z0-9]{6,30}$/;
      if (!subdomain.value.match(wr3))
      {
         alert("Subdomena może składać się wyłącznie z liter i cyfr");
         return false;
      }

      document.getElementById('saveCardButton').disabled = true;
      document.getElementById('saveCardButton').value = "Proszę czekać...";
      //musimy sprawdzić czy subdomena już nie istnieje przypadkiem
      $.ajax({
         type: "POST",
         url: MAINURL+"api/checkCardExists.html",
         data: "sd="+subdomain.value,
         success: function(msg){
           if (msg.indexOf('OK') != -1)
              {
                 document.getElementById('cardForm').onsubmit = function() {return true;};
                 document.getElementById('cardForm').submit();
              }
           else
              {
                 alert("Taka sudbomena już istnieje. Proszę wybrać inną.");
                 document.getElementById('saveCardButton').disabled = false;
                 document.getElementById('saveCardButton').value = "Zapisz wizytówkę";
                 return false;
              }
         }
       });
   }
   else
      return true;
   return false;

}

function showCardTab(ktora)
{
   for (var i=1; i<6; i++)
      document.getElementById('contentDiv'+i.toString()).style.display = 'none';
   document.getElementById('contentDiv'+ktora.toString()).style.display = 'block';

   if (parseInt(ktora) == 2) //galeria
   {
      if (document.getElementById('cardFotos').style.display != 'none')
      $('#cardFotos').slideUp();
   }
   else
   {
      if (document.getElementById('cardFotos').style.display == 'none')
         $('#cardFotos').slideDown();
   }
}

function sendCardQuery(card_id)
{
   var name = document.getElementById('cardNameField').value;
   var email = document.getElementById('cardEmailField').value;
   var phone = document.getElementById('cardPhoneField').value;
   var content = document.getElementById('cardNameField').value;

   if (name.length < 2 || email.length < 3 || content < 5)
   {
      alert("Proszę wypełnić wszystkie pola");
   }
   else
   {
      var but = document.getElementById('cardSendBut');
      but.disabled = true;
      but.value = "Proszę czekać...";
      $.ajax({
         type: "GET",
         url: "/api/sendCardEmail.html",
         data: "card_id="+encodeURIComponent(card_id)+"&name="+encodeURIComponent(name)+"&email="+encodeURIComponent(email)+"&phone="+encodeURIComponent(phone)+"&content="+encodeURIComponent(content),
         success: function(msg){
            alert(msg);
            if (msg.indexOF('SUCCESS') != -1)
            {
               document.getElementById('sendButTd').innerHTML = "Wiadomość została wysłana. Dziękujemy...";
            }
            else
            {
               document.getElementById('cardSendBut').disabled = false;
               document.getElementById('cardSendBut').value = 'Wyślij zapytanie';
            }
         }
      });

   }
   return false;

}

var cardPhotoCurrent = 3;

function getCardImageForRotation()
{
   if (cardPhotoCurrent >= cardimages.length)
      cardPhotoCurrent = 0;
   return cardimages[cardPhotoCurrent];
}

function showCardImagesNicely(img1, img2, img3)
{
   $('#cardFoto1').fadeOut('fast', function(){
      document.getElementById('cardFoto1').src = img1.src;
      $('#cardFoto1').fadeIn('fast', function(){
         $('#cardFoto2').fadeOut('fast', function(){
            document.getElementById('cardFoto2').src = img2.src;
            $('#cardFoto2').fadeIn('fast', function(){
               $('#cardFoto3').fadeOut('fast', function(){
                  document.getElementById('cardFoto3').src = img3.src;
                  $('#cardFoto3').fadeIn('fast', function(){
                     setTimeout('startCardRotation()', 5000);
                  });
               });
            });
         });
      });
   });
}

function startCardRotation()
{
   if (cardimages && cardimages.length > 3)
   {
      //najpierw układamy sobie poszczególne obrazki...
      var img1 = getCardImageForRotation();
      cardPhotoCurrent++;
      var img2 = getCardImageForRotation();
      cardPhotoCurrent++;
      var img3 = getCardImageForRotation();
      cardPhotoCurrent++;

      showCardImagesNicely(img1, img2, img3);
   }
}