function openWindow(link) // inspired by porneL - http://pornel.net/pups/
{
  try
  {
    var new_window = window.open(link, '_blank');
    if(new_window) return false;
  }
  catch(e){}
  return true;
}


function checkRequiredFields(form_id, alert_text)
{
  ok = true;
  fields = document.getElementsByTagName('input');
  for(var i in fields) if(fields[i].className=='required' || fields[i].className=='text required')
  {
    if(fields[i].parentNode.parentNode.parentNode.parentNode.id==form_id && !fields[i].value) ok = false;
  }
  if(ok)
  {
    //document.getElementById('submit_'+form_id).disabled = 'disabled';
    return true;
  }
  alert(alert_text);
  return false;
}


function DateSelector(yearId, monthId, dayId)
{
  this.set = function(year, month, day)
  {
    var yearElem = document.getElementById(yearId);
    var monthElem = document.getElementById(monthId);
    var dayElem = document.getElementById(dayId);
    for(var i=0; i<yearElem.options.length; i++)
    {
      yearElem.options.item(i).selected = yearElem.options.item(i).value == year ? true : false;
    }
    for(var i=0; i<monthElem.options.length; i++)
    {
      monthElem.options.item(i).selected = monthElem.options.item(i).value == month ? true : false;
    }
    this.onChangeFunction();
    for(var i=0; i<dayElem.options.length; i++)
    {
      dayElem.options.item(i).selected = dayElem.options.item(i).value == day ? true : false;
    }
  }

  this.onChangeFunction = function ()
  {
    checkDates();
    var year = document.getElementById(yearId).value;
    var month = document.getElementById(monthId).value;
    var dayElem = document.getElementById(dayId);
    var optionElem;
    if(month == 2)
    {
      if(year%4 && (!(year%100) || year%400)) days=28;
      else days= 29;
    }
    else days = 30 + (month > 7 ? !(month % 2) : month % 2);
    while(dayElem.hasChildNodes())
    {
      dayElem.removeChild(dayElem.firstChild);
    }
    for(var i=1; i<=days; i++)
    {
      optionElem = document.createElement('option');
      optionElem.setAttribute('value', (i<10 ? '0' : '') + i);
      optionElem.appendChild(document.createTextNode((i<10 ? '0' : '') + i + ' \u00a0 '));
      dayElem.appendChild(optionElem);
    }
  }

  document.getElementById(yearId).onchange = document.getElementById(monthId).onchange = this.onChangeFunction;
}

function checkDates()
{
  year_start = document.getElementById('f_year_start').value;
  month_start = document.getElementById('f_month_start').value;
  day_start = document.getElementById('f_day_start').value;
  year_end = document.getElementById('f_year_end').value;
  month_end = document.getElementById('f_month_end').value;
  day_end = document.getElementById('f_day_end').value;
  if(year_start<today_year || (year_start==today_year && (month_start<today_month || (month_start==today_month && day_start<today_day))))
  {
    document.getElementById('f_year_start').value = today_year;
    document.getElementById('f_month_start').value = today_month;
    document.getElementById('f_day_start').value = today_day;
  }
  if(year_end<today_year || (year_end==today_year && (month_end<today_month || (month_end==today_month && day_end<today_day))))
  {
    document.getElementById('f_year_end').value = today_year;
    document.getElementById('f_month_end').value = today_month;
    document.getElementById('f_day_end').value = today_day;
  }
}

function getMonthName(nr)
{
  switch(nr)
  {
    case '01': return 'Jan';
    case '02': return 'Feb';
    case '03': return 'Mar';
    case '04': return 'Apr';
    case '05': return 'May';
    case '06': return 'Jun';
    case '07': return 'Jul';
    case '08': return 'Aug';
    case '09': return 'Sep';
    case '10': return 'Oct';
    case '11': return 'Nov';
    case '12': return 'Dec';
  }
  return false;
}

function checkPrice()
{
  year_start = document.getElementById('f_year_start').value;
  month_start = document.getElementById('f_month_start').value;
  day_start = document.getElementById('f_day_start').value;
  year_end = document.getElementById('f_year_end').value;
  month_end = document.getElementById('f_month_end').value;
  day_end = document.getElementById('f_day_end').value;
  month_start_name = getMonthName(month_start);
  month_end_name = getMonthName(month_end);
  date_start = Date.parse(month_start_name+' '+day_start+', '+year_start);
  date_end = Date.parse(month_end_name+' '+day_end+', '+year_end);
  days = parseInt((date_end - date_start) / 86400000);
  room_price = document.getElementById('f_price'+document.getElementById('f_room_type').value).value;
  room_number = parseInt(document.getElementById('f_room_number').value);
  price = parseInt(room_price) * parseInt(days) * room_number;
  temp = document.getElementsByTagName('input');
  for(var i in temp) if(temp[i].id && temp[i].type=='hidden' && temp[i].className=='pp')
  {
    id = temp[i].id;
    if(document.getElementById(id+'_type').value==document.getElementById('f_room_type').value)
    {
      ps_date = document.getElementById(id+'_start').value.replace(/-/, ' ').replace(/-/, ' ');
      ps_month = getMonthName(ps_date.substr(5,2));
      promotion_start = Date.parse(ps_date.substr(0,5) + ps_month + ps_date.substr(7, 3));
      if(promotion_start<date_start) promotion_start = date_start;
      pe_date = document.getElementById(id+'_end').value.replace(/-/, ' ').replace(/-/, ' ');
      pe_month = getMonthName(pe_date.substr(5,2));
      promotion_end = Date.parse(pe_date.substr(0,5) + pe_month + pe_date.substr(7, 3));
      if(promotion_end>date_end) promotion_end = date_end;
      if(promotion_start<promotion_end)
      {
        promotion_days = parseInt((promotion_end - promotion_start) / 86400000);
        price_diff = parseInt(room_price - parseInt(document.getElementById(id).value));
        price -= price_diff * promotion_days * room_number;
      }
    }
  }
  if(price!=document.getElementById('f_current_price').value)
  {
    document.getElementById('f_current_price').value = price;
    if(price>0) document.getElementById('f_price_value').innerHTML = price + ' PLN';
    else document.getElementById('f_price_value').innerHTML = '-';
  }
  setTimeout('checkPrice()', 100);
}

var current_year = 0, current_month = 0, current_weekday = 0, ie = 0, ie7 = 0, w = 32, current_id = '';

function showCalendar(id)
{
  if(current_id!=id || document.getElementById('cContainer').style.display=='none')
  {
    current_id = id;
    document.getElementById('cContainer').style.display = 'block';
    icon = document.getElementById('icon_'+id);
    icon_left = icon.offsetLeft + icon.parentNode.offsetLeft + icon.parentNode.parentNode.parentNode.offsetLeft;
    icon_top = icon.offsetTop + icon.parentNode.offsetTop + icon.parentNode.parentNode.parentNode.offsetTop;
    if(ie || ie7)
    {
      icon_left += document.getElementById('content').offsetLeft;
      icon_top += document.getElementById('content').offsetTop;
      document.getElementById('cContainer').style.left = '40%';
      document.getElementById('cContainer').style.top = '35%';
      return false;
    }
    document.getElementById('cContainer').style.left = '65%';
    document.getElementById('cContainer').style.top = '37%';
    //document.getElementById('cContainer').style.left = icon_left + 35 + 'px';
    //document.getElementById('cContainer').style.top = icon_top - 142 + 'px';
  }
  else document.getElementById('cContainer').style.display = 'none';
  return false;
}

function hideCalendar(){
  document.getElementById('cContainer').style.display='none';
}

function setFormDate(source)
{
  day = source.innerHTML;
  if(day<10) day = '0' + day;
  if(current_month<10) month = '0' + current_month;
  else month = current_month;
  document.getElementById('f_year_'+current_id).value = current_year;
  document.getElementById('f_month_'+current_id).value = month;
  document.getElementById('f_day_'+current_id).value = day;
  //alert(current_year + '-' + month + '-' + day + ', ' + current_id);
  return false;
}

function getMonthDays(year, month)
{
  switch(month)
  {
    case 1: case 3: case 5: case 7: case 8: case 10: case 12: return 31;
    case 4: case 6: case 9: case 11: return 30;
    case 2: if(year%4!=0) return 28; else return 29;
    default: return false;
  }
}

function createCalendar(year, month, weekday)
{
  var j=0;
  var days = 0;
  var date = '';
  current_year = year;
  current_month = month;
  if(weekday) current_weekday = weekday;
  else weekday = current_weekday;
  days = getMonthDays(year, month);
  if(month<10) month = '0' + month;
  current_day = weekday;
  for(j=1;j<=31;j++)
  {
    cDay = document.getElementById('c_d'+j);
    if(j<=days) cDay.style.display = 'block';
    else cDay.style.display = 'none';
    if(current_day==6) cDay.style.backgroundColor = '#EAEAEA';
    else if(current_day==7) cDay.style.backgroundColor = '#DFDFDF';
    else cDay.style.backgroundColor = '#FFF';
    if(j<10) day = '0' + j;
    else day = j;
    cDay.title = year + '-' + month + '-' + day;
    if(current_day<7) current_day++;
    else current_day = 1;
  }
  if(ie) w = 16;
  document.getElementById('c_d1').style.marginLeft = ((weekday - 1) * w) + 'px';
  if(current_year==max_year && current_month==12) document.getElementById('cb_next').style.display = 'none';
  else document.getElementById('cb_next').style.display = '';
  if(current_year==min_year && current_month==1) document.getElementById('cb_prev').style.display = 'none';
  else document.getElementById('cb_prev').style.display = '';
  document.getElementById('calendar').firstChild.innerHTML = month + '.' + year;
  return false;
}

function nextMonth()
{
  if(current_month==12 && current_year==max_year) return false;
  current_weekday = (current_weekday + getMonthDays(current_year, current_month)) % 7;
  if(!current_weekday) current_weekday = 7;
  current_month++;
  if(current_month>12)
  {
    current_month = 1;
    current_year++;
  }
  createCalendar(current_year, current_month, current_weekday);
  return false;
}

function prevMonth()
{
  if(current_month==1 && current_year==min_year) return false;
  current_month--;
  if(!current_month)
  {
    current_month = 12
    current_year--;
  }
  current_weekday = (current_weekday + 35 - getMonthDays(current_year, current_month)) % 7;
  if(!current_weekday) current_weekday = 7;
  createCalendar(current_year, current_month, current_weekday);
  return false;
}

function changeReturn(){
  if(document.getElementById('returnTrans1').style.display=='none') document.getElementById('returnTrans1').style.display='block';
  else document.getElementById('returnTrans1').style.display='none';
  if(document.getElementById('returnTrans11').style.display=='none') document.getElementById('returnTrans11').style.display='block';
  else document.getElementById('returnTrans11').style.display='none';
  if(document.getElementById('returnTrans12').style.display=='none') document.getElementById('returnTrans12').style.display='block';
  else document.getElementById('returnTrans12').style.display='none';
}

function changeDisp(obj){
  if(document.getElementById(''+obj).style.display=='none') document.getElementById(''+obj).style.display='block';
  else document.getElementById(''+obj).style.display='none';
  
}

function inputsTest(){
  if(document.getElementById('yourName').value==''){ alert('Please enter your name.'); return false; }
  else if(document.getElementById('yourMail').value==''){ alert('Please enter your e-mail address.'); return false; }
  else if(document.getElementById('yourMailC').value==''){ alert('Please enter confirm e-mail.'); return false; }
  else if(document.getElementById('selectCity').value==-1){ alert('Please select city.'); return false; }
  else if(document.getElementById('uslService2').value==-1){ alert('Please select service.'); return false; }
  else return true;
}

onload = function()
{
  a = document.getElementsByTagName('a');
  for(var i in a) if(a[i].innerHTML && a[i].className=='nw')
  {
    a[i].target = '_blank';
  }
}
