window.addEvent('domready', function() {
  $$('a.popup_trigger').addEvent('click',function(e){
    el = $(e.target);
    if(el.hasClass('small_link')){
      content = '<a class="close" href="#"></a>'+el.get('rel');
    }else{
      data = el.get('rel').split('<br/><br/>');
      content = '<a class="close" href="#"></a><h1>Room Description</h1>'+data[0]+'<br/><br/>'+'<h1>Cancellation Policy</h1>'+data[1];
    }

    popup = new Element('div.popup_fixed',{
      'styles':{
        'left':0,
        'top':0
      },
      'html':content
    });

    $$('body')[0].grab(popup);

    size = popup.getSize().y;

    if(el.hasClass('cancel_policy')){
      popup.setStyles({
        'left':el.getPosition().x,
        'top':el.getPosition().y,
        'position':'absolute'
      });
    }else{
      popup.setStyles({
        'left':window.getSize().x/2-250,
        'top':window.getSize().y/2-size/2-100
      });
    }

    popup.getElements('a.close')[0].addEvent('click',function(e){
      $(e.target).getParent().destroy();

      e.stop();
    });

    e.stop();
  });

  if(!!$$('form[name=book_hotel]')[0]){
    $('country').addEvent('change',function(e){
      if($(e.target).get('value')=='US' || $(e.target).get('value')=='CA' || $(e.target).get('value')=='AU'){

        if($(e.target).get('value')=='US'){
          $('cust_stateProvince').set('html','<option selected value="">- Select State -</option>\
          <option value="AL">Alabama "AL"</option>\
          <option value="AS">American Samoa "AS"</option>\
          <option value="AZ">Arizona "AZ"</option>\
          <option value="AR">Arkansas "AR"</option>\
          <option value="AK">Alaska "AK"</option>\
          <option value="CA">California </option>\
          <option value="CO">Colorado "CO"</option>\
          <option value="CT">Connecticut "CT"</option>\
          <option value="DE">Delaware "DE"</option>\
          <option value="DC">District of Columbia "DC"</option>\
          <option value="FM">Federated States of Micronesia "FM"</option>\
          <option value="FL">Florida "FL"</option>\
          <option value="GA">Georgia "GA"</option>\
          <option value="GU">Guam "GU"</option>\
          <option value="HI">Hawaii "HI"</option>\
          <option value="ID">Idaho "ID"</option>\
          <option value="IL">Illinois "IL"</option>\
          <option value="IN">Indiana "IN"</option>\
          <option value="IA">Iowa "IA"</option>\
          <option value="KS">Kansas "KS"</option>\
          <option value="KY">Kentucky "KY"</option>\
          <option value="LA">Louisiana "LA"</option>\
          <option value="ME">Maine "ME"</option>\
          <option value="MH">Marshall Islands "MH"</option>\
          <option value="MD">Maryland "MD"</option>\
          <option value="MA">Massachusetts "MA"</option>\
          <option value="MI">Michigan "MI"</option>\
          <option value="MN">Minnesota "MN"</option>\
          <option value="MS">Mississippi "MS"</option>\
          <option value="MO">Missouri "MO"</option>\
          <option value="MT">Montana "MT"</option>\
          <option value="NE">Nebraska "NE"</option>\
          <option value="NV">Nevada "NV"</option>\
          <option value="NH">New Hampshire "NH"</option>\
          <option value="NJ">New Jersey "NJ"</option>\
          <option value="NM">New Mexico "NM"</option>\
          <option value="NY">New York "NY"</option>\
          <option value="NC">North Carolina "NC"</option>\
          <option value="ND">North Dakota "ND"</option>\
          <option value="MP">Northern Mariana Islands "MP"</option>\
          <option value="OH">Ohio "OH"</option>\
          <option value="OK">Oklahoma "OK"</option>\
          <option value="OR">Oregon "OR"</option>\
          <option value="PW">Palau "PW"</option>\
          <option value="PA">Pennsylvania "PA"</option>\
          <option value="PR">Puerto Rico "PR"</option>\
          <option value="RI">Rhode Island "RI"</option>\
          <option value="SC">South Carolina "SC"</option>\
          <option value="SD">South Dakota "SD"</option>\
          <option value="TN">Tennessee "TN"</option>\
          <option value="TX">Texas "TX"</option>\
          <option value="UT">Utah "UT"</option>\
          <option value="VT">Vermont "VT"</option>\
          <option value="VI">Virgin Islands "VI"</option>\
          <option value="VA">Virginia "VA"</option>\
          <option value="WA">Washington "WA"</option>\
          <option value="WV">West Virginia "WV"</option>\
          <option value="WI">Wisconsin "WI"</option>\
          <option value="WY">Wyoming "WY"</option>\
          <option value="AB">Alberta "AB"</option>\
          <option value="BC">British Columbia "BC"</option>\
          <option value="MB">Manitoba "MB"</option>\
          <option value="NB">New Brunswick "NB"</option>\
          <option value="NF">Newfoundland "NF"</option>\
          <option value="NT">Northwest Territories "NT"</option>\
          <option value="NS">Nova Scotia "NS"</option>\
          <option value="ON">Ontario "ON"</option>\
          <option value="PE">Prince Edward Island "PE"</option>\
          <option value="PQ">Quebec "PQ"</option>\
          <option value="SP">St. Pierre &amp; Miguelon "SP"</option>\
          <option value="SK">Saskatchewan "SK"</option>\
          <option value="YU">Yukon "YU"</option>\
          <option value="AC">Australian Capital "AC"</option>\
          <option value="NW">New South Wales "NW"</option>\
          <option value="NO">Northern Territory "NO"</option>\
          <option value="QL">Queensland "QL"</option>\
          <option value="SA">South Australia "SA"</option>\
          <option value="TS">Tasmania "TS"</option>\
          <option value="VC">Victoria "VC"</option>\
          <option value="WT">Western Australia "WT"</option>');
        }

        if($(e.target).get('value')=='CA'){
          $('cust_stateProvince').set('html','<option selected value="">- Select State -</option>\
            <option value="AB">Alberta</option>\
            <option value="BC">British Columbia</option>\
            <option value="MB">Manitoba</option>\
            <option value="NB">New Brunswick</option>\
            <option value="NL">Newfoundland and Labrador</option>\
            <option value="NTC">Northwest Territories</option>\
            <option value="NSC">Nova Scotia</option>\
            <option value="NU">Nunavut</option>\
            <option value="ON">Ontario</option>\
            <option value="PE">Prince Edward Island</option>\
            <option value="QC">Quebec</option>\
            <option value="SK">Saskatchewan</option>\
            <option value="YU">Yukon</option>');
        }

        if($(e.target).get('value')=='AU'){
          $('cust_stateProvince').set('html','<option selected value="">- Select State -</option>\
            <option value="AC">Australian Capital Territory</option>\
            <option value="NSA">New South Wales</option>\
            <option value="NT">Northern Territory</option>\
            <option value="QL">Queensland</option>\
            <option value="SA">South Australia</option>\
            <option value="TS">Tasmania</option>\
            <option value="VI">Victoria</option>\
            <option value="WAA">Western Australia</option>');
        }
        $('cust_stateProvince').setStyle('display','block');
      }else{
        $('cust_stateProvince').setStyle('display','none');
      }
    });

    //$$('form[name=book_hotel]')[0].addEvent('submit',function(e){
      //$$('form[name=book_hotel] input[type=image]').set('disabled',true);
    //});

    window.Book_Valid = new Form.Validator.Inline($$('form[name=book_hotel]')[0],{
      onFormValidate: function(valid,form,event){
        if(valid){
          _gaq.push(['_trackPageview', '/book/submited']);
          make_popup_message('<br/><br/><h3>Please wait while your reservation is processed....</h3><br/><br/>');
          $$('form[name=book_hotel] input[type=image]').set('disabled',true);
        }
      }
    });
    window.Book_Valid.add('names-valid', {
      errorMsg: 'Please use only letters (a-z) within this field. No other characters are allowed.',
      test: function(field){
          return !field.get('value').test(/[^A-z\s]/,'i');
      }
    });

    window.Book_Valid.add('compare-mails', {
      errorMsg: 'Emails not Match',
      test: function(field){
          //validateField
          if($$('form[name=book_hotel] input[name=email_c]')[0].get('value').length<1
            ||
            $$('form[name=book_hotel] input[name=email]')[0].get('value').length<1
          ){
            return true;
          }
          if($$('form[name=book_hotel] input[name=email]')[0].get('value')==$$('form[name=book_hotel] input[name=email_c]')[0].get('value')){
            return true;
          }else{
            return false;
          }
      }
    });

  }

  if(!!$$('.check_dates a')[0]){
    $$('.check_dates a')[0].addEvent('click',function(e){
      size = $$('.check_dates')[0].getSize().y;
      if(size<30){

        $$('.check_dates')[0].setStyles({
          'overflow':'auto',
          'height':'auto'
        });

        size = $$('.check_dates')[0].getSize().y;

        $$('.check_dates')[0].setStyles({
          'overflow':'hidden',
          'height':15
        });

        //here set content to check_dates as grab
        $$('.check_dates')[0].set('tween',{
          onComplete: function f(){
            this.removeEvent('complete',f);
            $$('.check_dates')[0].setStyles({
              'overflow':'auto',
              'height':'auto'
            });
          }
        });

        $$('.check_dates')[0].tween('height',size);
      }else{
        $$('.check_dates')[0].setStyles({
          'overflow':'hidden',
          'height':$$('.check_dates')[0].getSize().y
        }).tween('height',15);
      }

      e.stop();
    });
  }

  if($('filter_by_name_trigger')){
    $('filter_by_name').set('value','Type in name/chain of hotel');

    $('filter_by_name').addEvent('blur',function(e){
      el = $(e.target);
      if(el.get('value').length<1){
        el.set('value','Type in name/chain of hotel');
      }
    });

    $('filter_by_name').addEvent('focus',function(e){
      el = $(e.target);
      if(el.get('value') == 'Type in name/chain of hotel'){
        el.set('value','');
      }
    });

    $('filter_by_name_trigger').addEvent('click',function(e){
      el = $('filter_by_name');
      if(el.get('value')=='Type in name/chain of hotel' || el.get('value').length<1){
        $('filter_by_name_trigger').addClass('ch');
        return false;
        e.stop();
      }
      document.location.href='?'+el.get('rel')+'&propertyName='+el.get('value');
      e.stop();
    });

    var myImage = Asset.image('img/checkbox_c.png');
  }

  if(!!$$('select[name=sort]')[0]){
    $$('select[name=sort]')[0].addEvent('change',function(e){
      el = $(e.target);
      if(el.get('value')!='DEFAULT'){
        document.location.href='?'+el.get('rel')+'&sort='+el.get('value');
      }else{
        document.location.href='?'+el.get('rel');
      }
    });
  }

  if(!!$$('select[name=currency]')[0]){
    $$('select[name=currency]')[0].addEvent('change',function(e){
      el = $(e.target);
      document.location.href='?'+el.get('rel')+'&currency='+el.get('value');
    });
  }

  //currency

  if(!!$$('form[name=list_hotel]')[0]){

    if(!!$$('form[name=list_hotel] > .rooms select[name=rooms]')[0]){

      $$('form[name=list_hotel]').addEvent('submit',function(e){
        el = $(e.target);

        if($$('form[name=list_hotel] select[rel=childs]').get('value').filter(function(v){return v>0;}).length>0){
          var child_ages = '-'+$$('form[name=list_hotel] .child_ages select').get('value');
        }else{
          var child_ages = '';
        }
        $('travel_details').set('value',$$('form[name=list_hotel] select[rel=adults]').get('value').join(',')+'-'+$$('form[name=list_hotel] select[rel=childs]').get('value').join(',')+child_ages);
      });

      $$('form[name=list_hotel]').addEvent('change:relay(select[rel=childs])',function(e){
        el = $(e.target);
        var room_id = el.getParent().getParent().get('rel');

        if(el.get('value')==0){
          $$('form[name=list_hotel] .child_ages .room[rel='+room_id+']')[0].set('html','');

          if($$('form[name=list_hotel] select[rel=childs]').get('value').filter(function(v){return v>0;}).length<1){
            $$('form[name=list_hotel] .child_ages')[0].setStyle('display','none');
          }
        }else{
          $$('form[name=list_hotel] .child_ages')[0].setStyle('display','block');

          var ages_arr = '';

          for(i=1;i<18;i++){
            ages_arr += '<option value="'+i+'">'+i+'</option>';
          }

          var total_ages = '';

          for(i=1;i<=el.get('value');i++){
            total_ages += '<div class="child_'+i+'"><select>'+ages_arr+'</select></div>';
          }

          $$('form[name=list_hotel] .child_ages .room[rel='+room_id+']')[0].set('html','  \
            <div class="child_r_name">  \
            \
            </div>  \
            '+total_ages+'  \
          ');

        }

      });

      $$('form[name=list_hotel] > .rooms select[name=rooms]')[0].addEvent('change',function(e){
        //here event
        el = $(e.target);
        if(el.get('value')==1){
          $$('form[name=list_hotel] .more_rooms')[0].setStyle('display','none');
          for(i=2;i<=8;i++){
            $$('form[name=list_hotel] .child_ages .room[rel='+i+']')[0].set('html','');
          }

          $$('form[name=list_hotel] .more_rooms .rooms').destroy();

          if($$('form[name=list_hotel] select[rel=childs]').get('value').filter(function(v){return v>0;}).length<1){
            $$('form[name=list_hotel] .child_ages')[0].setStyle('display','none');
          }
        }else{
          for(i=2;i<=el.get('value');i++){
            if(!$$('form[name=list_hotel] .more_rooms .rooms[rel='+i+']')[0]){
            $$('form[name=list_hotel] .more_rooms')[0].grab(new Element('div.rooms.cf[rel='+i+']',{
              'html':'\
                  <div class="r">  \
                    &nbsp;  \
                  </div>  \
                  \
                  <div class="rmc">  \
                    Room '+i+':  \
                  </div>  \
                  \
                  <div class="a"> \
                    <select rel="adults"> \
                      <option value="1">1</option>  \
                      <option selected value="2">2</option>  \
                      <option value="3">3</option>  \
                      <option value="4">4</option>  \
                    </select> \
                  </div>  \
                  \
                  <div class="c"> \
                    <select rel="childs"> \
                      <option>0</option>  \
                      <option value="1">1</option>  \
                      <option value="2">2</option>  \
                      <option value="3">3</option>  \
                    </select> \
                  </div>  \
              '
            }));
            }
          }

          var num = parseInt(el.get('value'))+1;
          for(i=num;i<=8;i++){
            if(!!$$('form[name=list_hotel] .more_rooms .rooms[rel='+i+']')[0]){
              $$('form[name=list_hotel] .more_rooms .rooms[rel='+i+']')[0].destroy();
            }
          }

          for(i=parseInt(el.get('value'))+1;i<=8;i++){
            $$('form[name=list_hotel] .child_ages .room[rel='+i+']')[0].set('html','');
          }

          if($$('form[name=list_hotel] select[rel=childs]').get('value').filter(function(v){return v>0;}).length<1){
            $$('form[name=list_hotel] .child_ages')[0].setStyle('display','none');
          }

          $$('form[name=list_hotel] .more_rooms')[0].setStyle('display','block');
        }
      });
    }

    new DatePicker($('in'),{
      pickerClass:'datepicker_dashboard',
      format: 'm/d/Y',
      inputOutputFormat: 'm/d/Y',
      toggleElements:$$('form[name=list_hotel] .in a')[0],
      startDate: 8
    });
    new DatePicker($('out'),{
      pickerClass:'datepicker_dashboard',
      format: 'm/d/Y',
      inputOutputFormat: 'm/d/Y',
      toggleElements:$$('form[name=list_hotel] .out a')[0],
      startDate: 10
    });
  }

  if(!!$$('form[name=list]')[0]){

    if(!!$$('form[name=list] > .rooms select[name=rooms]')[0]){

      //$$('form[name=list] select[rel=childs]').get('value').filter(function(v){return v>0;}).length

      //for grep to values input
      //$$('form[name=list] select[rel=adults]').get('value');
      //$$('form[name=list] select[rel=childs]').get('value');
      //$$('form[name=list] .child_ages select')get('value');

      //in format 2,2,2-2,1,1-1,2,3,4
      //adults-childs separated by comma
      //ages goes in last as is
      //in case above the parse is next
      //3 roos
      // 1 room
      //    2 adults 2 childs ages 1 2
      // 2 room
      //    2 adults 1 childs ages 3
      // 3 room
      //    2 adults 1 childs ages 4

      //func to split slice count from array with offset with previous
      //

      //http://localhost/markus/index.php?r=list&hotel=London%2C+United+Kingdom&hotel_id=3D931ACE-E3FE-46B4-A243-61D44A22053B&in=12%2F12%2F2011&out=12%2F22%2F2011&rooms=1&x=61&y=15

      //http://localhost/markus/index.php?r=list&hotel=London%2C+United+Kingdom&hotel_id=3D931ACE-E3FE-46B4-A243-61D44A22053B&travel_details=2%2C2%2C1-1%2C3%2C2-1%2C4%2C4%2C4%2C7%2C7&in=12%2F12%2F2011&out=12%2F22%2F2011&rooms=3&x=49&y=17
      $$('form[name=list]').addEvent('submit',function(e){
        el = $(e.target);

        if($$('form[name=list] select[rel=childs]').get('value').filter(function(v){return v>0;}).length>0){
          var child_ages = '-'+$$('form[name=list] .child_ages select').get('value');
        }else{
          var child_ages = '';
        }
        $('travel_details').set('value',$$('form[name=list] select[rel=adults]').get('value').join(',')+'-'+$$('form[name=list] select[rel=childs]').get('value').join(',')+child_ages);
      });

      $$('form[name=list]').addEvent('change:relay(select[rel=childs])',function(e){
        el = $(e.target);
        var room_id = el.getParent().getParent().get('rel');

        if(el.get('value')==0){
          $$('form[name=list] .child_ages .room[rel='+room_id+']')[0].set('html','');

          if($$('form[name=list] select[rel=childs]').get('value').filter(function(v){return v>0;}).length<1){
            $$('form[name=list] .child_ages')[0].setStyle('display','none');
          }
        }else{
          $$('form[name=list] .child_ages')[0].setStyle('display','block');

          var ages_arr = '';

          for(i=1;i<18;i++){
            ages_arr += '<option value="'+i+'">'+i+'</option>';
          }

          var total_ages = '';

          for(i=1;i<=el.get('value');i++){
            total_ages += '<div class="child_'+i+'"><select>'+ages_arr+'</select></div>';
          }

          $$('form[name=list] .child_ages .room[rel='+room_id+']')[0].set('html','  \
            <div class="child_r_name">  \
              Room '+room_id+':  \
            </div>  \
            '+total_ages+'  \
          ');

        }

      });

      $$('form[name=list] > .rooms select[name=rooms]')[0].addEvent('change',function(e){
        //here event
        el = $(e.target);
        if(el.get('value')==1){
          $$('form[name=list] .more_rooms')[0].setStyle('display','none');
          for(i=2;i<=8;i++){
            $$('form[name=list] .child_ages .room[rel='+i+']')[0].set('html','');
          }

          $$('form[name=list] .more_rooms .rooms').destroy();

          if($$('form[name=list] select[rel=childs]').get('value').filter(function(v){return v>0;}).length<1){
            $$('form[name=list] .child_ages')[0].setStyle('display','none');
          }
        }else{
          for(i=2;i<=el.get('value');i++){
            if(!$$('form[name=list] .more_rooms .rooms[rel='+i+']')[0]){
            $$('form[name=list] .more_rooms')[0].grab(new Element('div.rooms.cf[rel='+i+']',{
              'html':'\
                  <div class="r">  \
                    &nbsp;  \
                  </div>  \
                  \
                  <div class="rmc">  \
                    Room '+i+':  \
                  </div>  \
                  \
                  <div class="a"> \
                    <select rel="adults"> \
                      <option value="1">1</option>  \
                      <option selected value="2">2</option>  \
                      <option value="3">3</option>  \
                      <option value="4">4</option>  \
                    </select> \
                  </div>  \
                  \
                  <div class="c"> \
                    <select rel="childs"> \
                      <option>0</option>  \
                      <option value="1">1</option>  \
                      <option value="2">2</option>  \
                      <option value="3">3</option>  \
                    </select> \
                  </div>  \
              '
            }));
            }
          }

          var num = parseInt(el.get('value'))+1;
          for(i=num;i<=8;i++){
            if(!!$$('form[name=list] .more_rooms .rooms[rel='+i+']')[0]){
              $$('form[name=list] .more_rooms .rooms[rel='+i+']')[0].destroy();
            }
          }

          for(i=parseInt(el.get('value'))+1;i<=8;i++){
            $$('form[name=list] .child_ages .room[rel='+i+']')[0].set('html','');
          }

          if($$('form[name=list] select[rel=childs]').get('value').filter(function(v){return v>0;}).length<1){
            $$('form[name=list] .child_ages')[0].setStyle('display','none');
          }

          $$('form[name=list] .more_rooms')[0].setStyle('display','block');
        }
      });
    }

    new Autocompleter.Request.JSON('hotel', 'index.php?r=hotel_tokens',{
      postVar:'nm',
      minLength:3,
      width:500,
      injectChoice: function(choice){

        if(choice.StateProvince.length>0){
          value = choice.Destination+', '+choice.StateProvince+', '+choice.Country;
        }else{
          value = choice.Destination+', '+choice.Country;
        }

        var el = new Element('li').set('html',this.markQueryValue(value));

        if(choice.StateProvince.length>0){
          el.inputTextValue = choice.Destination+', '+choice.StateProvince+', '+choice.Country;
        }else{
          el.inputTextValue = choice.Destination+', '+choice.Country;
        }
        el.inputValue = choice.DestinationID;
        this.addChoiceEvents(el).inject(this.choices);
      },
      onSelection: function(input,el,v,id){
        $('hotel_id').set('value',id)
      }
    });

    new DatePicker($('in'),{
      pickerClass:'datepicker_dashboard',
      format: 'm/d/Y',
      inputOutputFormat: 'm/d/Y',
      toggleElements:$$('form[name=list] .in a')[0],
      startDate: 8
    });
    new DatePicker($('out'),{
      pickerClass:'datepicker_dashboard',
      format: 'm/d/Y',
      inputOutputFormat: 'm/d/Y',
      toggleElements:$$('form[name=list] .out a')[0],
      startDate: 10
    });
  }

  if(!!$$('.locations_block .all')[0]){
    $$('.locations_block .all')[0].addEvent('click',function(e){
      $(e.target).setStyle('display','none');
      $$('.locations_block .landmarks_hidden')[0].setStyle('display','block');
      e.stop();
    });

    $$('.locations_block .hide_more')[0].addEvent('click',function(e){
      $$('.locations_block .landmarks_hidden')[0].setStyle('display','none');
      $$('.locations_block .all')[0].setStyle('display','block')
      e.stop();
    });
  }

  if(!!$$('.amenity_block .all')[0]){
    $$('.amenity_block .all')[0].addEvent('click',function(e){
      $(e.target).setStyle('display','none');
      $$('.amenity_block .amenity_hidden_block')[0].setStyle('display','block');
      e.stop();
    });

    $$('.amenity_block .hide_more')[0].addEvent('click',function(e){
      $$('.amenity_block .amenity_hidden_block')[0].setStyle('display','none');
      $$('.amenity_block .all')[0].setStyle('display','block')
      e.stop();
    });
  }

  if($$('.hotels_side .amenity a.selected').length>2){
    $$('.hotels_side .amenity a[class!=selected]').addEvent('click',function(e){
      alert('no more than 3, deselect some');
      e.stop();
    });
  }

  if($('map_page')){
    //zone_id

    $$('a.on_reviews_std').addEvent('click',function(e){
      el = $(e.target);

      pos = el.getPosition();
      w = $$('body')[0].getScrollSize().y;

      //fix for bottom if not fix
      if(pos.y+445>w){
        pos.y = w-445;
      }

      $('map').set('html','<iframe style="width:100%;height:100%;border:none;" src="'+el.get('href')+'"></iframe>')
      $('map_container').setStyles({
        'left':pos.x-120,
        'top':pos.y,
        'display':'block',
        'opacity':0
      }).fade(1);

      e.stop();
    });

    $$('#map_container .close')[0].addEvent('click',function(e){
      //here need oncomple to display block
      $('map_container').fade(0);
      e.stop();
    });

    window.viewport_links = {
      normal:$$('#hotel_view .details h2 a')[0].get('href'),
      trip:$$('#hotel_view a.on_reviews_std')[0].get('href')
    }

    //zone_coords = JSON.decode(zone_coords);
    hotels = JSON.decode(hotels);

    //var ps = new google.maps.LatLng(e.lon,e.lat);
    //zone_coords.CenterLatitude
    //zone_coords.CenterLongitude
    if(hotels == false){

    }else{

      //var latlng = new google.maps.LatLng(zone_coords.CenterLatitude, zone_coords.CenterLongitude);
      var latlng = new google.maps.LatLng(hotels[0].lon, hotels[0].lat);
      var myOptions = {
        zoom: 14,
        center: latlng,
        mapTypeId: google.maps.MapTypeId.ROADMAP
      };

      var map = new google.maps.Map(document.getElementById("map_page"),myOptions);


      hotels.each(function(e){

        var ps = new google.maps.LatLng(e.lon,e.lat);

        //var marker = new google.maps.Marker({
          //position: ps,
          //map: map,
          //icon: 'img/blank_icon_l.png',
          //title:e.name
        //});

        //var stars = '<span class="stars"><span class="s'+(e.rating+'').replace('.','')+'"></span></span>';
        var stars = '<span class="stars_map">';
        var stars_pre = (e.rating+'').split('.');

        for(i=0;i<stars_pre[0];i++){
          stars += '<img src="img/1star.png" alt=""/>';
        }

        if(stars_pre[1]){
          stars += '<img src="img/0.52star.png" alt=""/>';
        }

        stars += '</span>';

        if(e.promo == 'true'){
          if(e.price_promo != undefined){
            var labelText = new Element('div.map_m_box').set('html','<div class="map_m_deal">DEAL</div><div class="map_m_price">'+window.currency_sign+e.price_promo+'</div>'+stars);
          }else{
            var labelText = new Element('div.map_m_box').set('html','<div class="map_m_deal">DEAL</div><div class="map_m_price">'+window.currency_sign+e.price+'</div>'+stars);
          }
        }else{
          var labelText = new Element('div.map_m_box').set('html','<div class="map_m_deal_blank"></div><div class="map_m_price">'+window.currency_sign+e.price+'</div>'+stars);
        }

        labelText.addEvent('click',function(ev){

          if(e.promo == 'true'){
            $$('#hotel_view .offer')[0].set('text',e.promo_desc);
          }else{
            $$('#hotel_view .offer')[0].set('html', '&nbsp;');
          }

          var value_adds = '';
          if(e.breakfast){
            value_adds += 'Breakfast Included!<br/>';
          }

          if(e.wifi){
            value_adds += 'Free Wi-Fi!';
          }

          if(e.internet){
            value_adds += 'Free Internet!';
          }

          if(e.price_promo != undefined){
            $$('#hotel_view .prices .old_price')[0].set('text',window.currency_sign+e.price).setStyle('display','block');
            $$('#hotel_view .prices .price')[0].set('html',window.currency_sign+e.price_promo+'<span>'+value_adds+'</span>').removeClass('nm');
          }else{
            $$('#hotel_view .prices .old_price')[0].setStyle('display','none');
            $$('#hotel_view .prices .price')[0].set('html',window.currency_sign+e.price+'<span>'+value_adds+'</span>').addClass('nm');
          }

          $$('#hotel_view .details h2 a')[0].set('html',e.name);
          $$('#hotel_view .image img')[0].set('src',e.image);

          $$('#hotel_view .stars div')[0].set('class','s'+(e.rating+'').replace('.',''));

          $$('#hotel_view .details_more .near')[0].set('html',e.l_desc);
          $$('#hotel_view .details_more .reviews img')[0].set('src',e.t_url);
          $$('#hotel_view .details_more .desc span')[0].set('html',e.sh_desc);

          $$('#hotel_view .details h2 a')[0].set('href',window.viewport_links.normal.replace('[:id:]',e.id));
          $$('#hotel_view .image a')[0].set('href',window.viewport_links.normal.replace('[:id:]',e.id));
          $$('#hotel_view .desc a')[0].set('href',window.viewport_links.normal.replace('[:id:]',e.id));
          $$('#hotel_view .prices a')[0].set('href',window.viewport_links.normal.replace('[:id:]',e.id));

          $$('#hotel_view .reviews a')[0].set('href',window.viewport_links.trip.replace('[:id:]',e.id));

          $$('#hotel_view .reviews a')[0].set('text',e.t_count+' Reviews');

          if($('hotel_view').getStyle('display') == 'none'){
            $('hotel_view').setStyle('display','block');

            $('hotel_view').setStyles({
              'height':0,
              'overflow':'hidden'
            }).tween('height',200);
          }
          ev.stop();
        });

        var myOptions = {
           content: labelText
          ,zIndex: 9999
          ,boxStyle: {
             textAlign: "center"
            ,fontSize: "8pt"
            ,width: "50px"
            ,height: "82px"
           }
          ,disableAutoPan: true
          ,pixelOffset: new google.maps.Size(-25, -30)
          ,position: ps
          ,closeBoxURL: ""
          ,isHidden: false
          ,pane: "floatPane"
          ,enableEventPropagation: true
        };

        var ibLabel = new InfoBox(myOptions);

        //google.maps.event.addListener(ibLabel,"click", function(e) {
          //console.log('ok');
          //if(window.previous_ib != undefined){
            //window.previous_ib.close();
          //}
          //window.previous_ib = ib;
          //ib.open(map,this);
        //});
        //console.log(ibLabel.div);
        //console.log(ibLabel);
        //ibLabel.div.addEvent('click',function(e){
          //console.log('ok');
          //e.stop();
        //});
        ibLabel.open(map);

        //google.maps.event.addDomListener(ibLabel, 'click', function() {
            // Have to put this within the domready or else it can't find the div element (it's null until the InfoBox is opened)
            //alert('ok');
        //});

        /*
        var boxText = document.createElement("div");
        boxText.className = 'page_map_entry';
        boxText.style.cssText = "border: 1px solid black; margin-top: 8px; background: white; padding: 5px;";

        if(e.price_promo != e.price){
          price = '<span class="s">'+e.price+'</span> / '+e.price_promo;
        }else{
          price = e.price;
        }

        boxText.innerHTML = '<img class="prev" src="http://images.travelnow.com/hotels/1000000/20000/11100/11006/11006_20_t.jpg" alt=""/>'+e.name+'<br/>Stars: '+e.rating+'<br/><a target="_blank" href="http://www.tripadvisor.com/WidgetEmbed-cdspropertydetail?display=true&amp;partnerId=A164FB5B21EB427C81576F48B0A8945C&amp;lang=en&amp;locationId='+e.id+'"><img src="'+e.t_url+'" alt=""/> '+e.t_count+' Reviews </a><br/>'+price+'<br/><a href="'+'/markus/index.php?r=hotel&amp;id='+e.id+'&amp;'+part_link+'">Open Hotel</a>';


        var myOptions = {
           content: boxText
          ,disableAutoPan: false
          ,maxWidth: 0
          ,pixelOffset: new google.maps.Size(-150, -190)
          ,zIndex: null
          ,boxStyle: {
            opacity: 0.9,
            width: "300px"
           }
          ,closeBoxMargin: "10px 2px 2px 2px"
          ,infoBoxClearance: new google.maps.Size(1, 1)
          ,isHidden: false
          ,pane: "floatPane"
          ,enableEventPropagation: false
        };

        var ib = new InfoBox(myOptions);

        google.maps.event.addListener(marker,"click", function(e) {
          if(window.previous_ib != undefined){
            window.previous_ib.close();
          }
          window.previous_ib = ib;
          ib.open(map,this);
        });

        google.maps.event.addListener(marker,"mouseout", function() {
          //ib.close();
        });
        */
      });
    }
  }

  if($('hotel_rev_map')){
    $$('#hotel_rev_map_container .close')[0].addEvent('click',function(e){
      //here need oncomple to display block
      $('hotel_rev_map_container').fade(0);
      e.stop();
    });

    $$('.hotel_top_box .reviews a').addEvent('click',function(e){
      el = $(e.target);

      pos = el.getPosition();
      w = $$('body')[0].getScrollSize().y;

      //fix for bottom if not fix
      if(pos.y+445>w){
        pos.y = w-445;
      }

      $('hotel_rev_map').set('html','<iframe style="width:100%;height:100%;border:none;" src="'+el.get('href')+'"></iframe>')
      $('hotel_rev_map_container').setStyles({
        'left':pos.x-120,
        'top':pos.y,
        'display':'block',
        'opacity':0
      }).fade(1);

      e.stop();
    });
  }

  if($('map')){

    $$('.left_column a[class!=all]').addEvent('click',function(e){
      if($(e.target).hasClass('ch')){
        $(e.target).removeClass('ch');
      }else{
        $(e.target).addClass('ch');
      }
    });


    $$('#map_container .close')[0].addEvent('click',function(e){
      //here need oncomple to display block
      $('map_container').fade(0);
      e.stop();
    });

    /*
    $$('.show_all_on_map')[0].addEvent('click',function(e){
      el = $(e.target);
      hotels_c = $$('.on_map_std').get('rel');
      hotels_names = $$('.on_map_std').get('title');

      c = hotels_c[0].split('|');

      var latlng = new google.maps.LatLng(c[0], c[1]);
      var myOptions = {
        zoom: 15,
        center: latlng,
        mapTypeId: google.maps.MapTypeId.ROADMAP
      };

      var map = new google.maps.Map(document.getElementById("map"),myOptions);

      hotels_c.each(function(e,k){

        ec = e.split('|')

        var ps = new google.maps.LatLng(ec[0], ec[1]);

        var marker = new google.maps.Marker({
          position: ps,
          map: map,
          icon: 'img/hotel.png',
          title:hotels_names[k]
        });

        var boxText = document.createElement("div");
        boxText.style.cssText = "border: 1px solid black; margin-top: 8px; background: white; padding: 5px;";
        boxText.innerHTML = hotels_names[k];

        var myOptions = {
           content: boxText
          ,disableAutoPan: false
          ,maxWidth: 0
          ,pixelOffset: new google.maps.Size(20, -50)
          ,zIndex: null
          ,boxStyle: {
            opacity: 0.9,
            width: "150px"
           }
          ,closeBoxMargin: "10px 2px 2px 2px"
          ,infoBoxClearance: new google.maps.Size(1, 1)
          ,isHidden: false
          ,pane: "floatPane"
          ,enableEventPropagation: false
        };

        var ib = new InfoBox(myOptions);

        google.maps.event.addListener(marker,"mouseover", function(e) {
          ib.open(map,this);
        });

        google.maps.event.addListener(marker,"mouseout", function() {
          ib.close();
        });

      });

      pos = el.getPosition();
      w = $$('body')[0].getScrollSize().y;

      //fix for bottom if not fix
      if(pos.y+445>w){
        pos.y = w-445;
      }else{
        pos.y = pos.y-200
      }

      $('map_container').setStyles({
        'left':pos.x,
        'top':pos.y,
        'display':'block',
        'opacity':0
      }).fade(1);

      e.stop();
    });
    */

    $$('a.on_reviews_std').addEvent('click',function(e){
      el = $(e.target);

      pos = el.getPosition();
      w = $$('body')[0].getScrollSize().y;

      //fix for bottom if not fix
      if(pos.y+445>w){
        pos.y = w-445;
      }

      $('map').set('html','<iframe style="width:100%;height:100%;border:none;" src="'+el.get('href')+'"></iframe>')
      $('map_container').setStyles({
        'left':pos.x-120,
        'top':pos.y,
        'display':'block',
        'opacity':0
      }).fade(1);

      e.stop();
    });

    $$('a.on_map_std').addEvent('click',function(e){
      el = $(e.target);
      c = el.get('rel').split('|');

      var latlng = new google.maps.LatLng(c[0], c[1]);
      var myOptions = {
        zoom: 15,
        center: latlng,
        mapTypeId: google.maps.MapTypeId.ROADMAP
      };

      var map = new google.maps.Map(document.getElementById("map"),myOptions);

      var marker = new google.maps.Marker({
        position: latlng,
        map: map,
        icon: 'img/hotel.png',
        title:el.get('title')
      });

      var boxText = document.createElement("div");
      boxText.style.cssText = "border: 1px solid black; margin-top: 8px; background: white; padding: 5px;";
      boxText.innerHTML = el.get('title');

      var myOptions = {
         content: boxText
        ,disableAutoPan: false
        ,maxWidth: 0
        ,pixelOffset: new google.maps.Size(20, -50)
        ,zIndex: null
        ,boxStyle: {
          opacity: 0.9,
          width: "150px"
         }
        ,closeBoxMargin: "10px 2px 2px 2px"
        ,infoBoxClearance: new google.maps.Size(1, 1)
        ,isHidden: false
        ,pane: "floatPane"
        ,enableEventPropagation: false
      };

      var ib = new InfoBox(myOptions);

      google.maps.event.addListener(marker,"mouseover", function(e) {
        ib.open(map,this);
      });

      google.maps.event.addListener(marker,"mouseout", function() {
        ib.close();
      });

      /*
      var map = new google.maps.Map($('map'), {
        zoom: 15,
        center: new google.maps.LatLng(c[0],c[1]),
        mapTypeId: google.maps.MapTypeId.ROADMAP
      });
      */

      /*
      new MMap.Marker.HTML({
          map: map,
          className: 'hotel_marker',
          icon: 'img/hotel.png',
          content: '<img class="htl_map_tip" title="'+el.get('title')+'" src="img/hotel.png" alt=""/>',
          position: new google.maps.LatLng(c[0], c[1]),
          visible: true
      });
      */

      /*
      lands_c = $$('.landmarks a[class!=all],.landmarks_hidden a[class!=hide_more]').get('rel');
      lands_names = $$('.landmarks a[class!=all],.landmarks_hidden a[class!=hide_more]').get('title');
      lands_c.each(function(e,k){
        ec = e.split('|')

        var ps = new google.maps.LatLng(ec[1], ec[0]);

        var marker = new google.maps.Marker({
          position: ps,
          map: map,
          icon: 'img/landmark.png',
          title:lands_names[k]
        });

        var boxText = document.createElement("div");
        boxText.style.cssText = "border: 1px solid black; margin-top: 8px; background: white; padding: 5px;";
        boxText.innerHTML = lands_names[k];

        var myOptions = {
           content: boxText
          ,disableAutoPan: false
          ,maxWidth: 0
          ,pixelOffset: new google.maps.Size(20, -50)
          ,zIndex: null
          ,boxStyle: {
            opacity: 0.9,
            width: "150px"
           }
          ,closeBoxMargin: "10px 2px 2px 2px"
          ,infoBoxClearance: new google.maps.Size(1, 1)
          ,isHidden: false
          ,pane: "floatPane"
          ,enableEventPropagation: false
        };

        var ib = new InfoBox(myOptions);

        google.maps.event.addListener(marker,"mouseover", function(e) {
          ib.open(map,this);
        });

        google.maps.event.addListener(marker,"mouseout", function() {
          ib.close();
        });


        //new MMap.Marker.HTML({
            //map: map,
            //className: 'landmark_marker',
            //icon: 'img/landmark.png',
            //content: '<img class="htl_map_tip" title="'+lands_names[k]+'" src="img/landmark.png" alt=""/>',
            //position: new google.maps.LatLng(ec[1], ec[0]),
            //visible: true
        //});

      });
      */
      //(function(){var hotel_tips = new Tips('.htl_map_tip')}).delay(500);

      pos = el.getPosition();
      w = $$('body')[0].getScrollSize().y;

      //fix for bottom if not fix
      if(pos.y+445>w){
        pos.y = w-445;
      }

      $('map_container').setStyles({
        'left':pos.x-120,
        'top':pos.y,
        'display':'block',
        'opacity':0
      }).fade(1);

      //here need fade to scren and onclick too close
      //here need clear events, no need! moved to other place, to not reinit

      e.stop();
    });
  }

  if($('slides')){
    var slides = new slideGallery($$(".slides"), {
      steps: 1,
      mode: "callback",
      autoplay: true,
      paging: false
    });
  }

  if($('slides_big')){
    window.gallery = new slideGallery($("slides_big"), {
      steps: 1,
      mode: "callback",
      autoplay: true,
      paging: false,
      onStart: function() {
        $$('.slides_thumbs a.selected').removeClass('selected');
        $$('.slides_thumbs a')[this.current].addClass('selected');
      },
      onPlay: function() { this.fireEvent("start"); }
    });

    $$('.slides_thumbs a').addEvent('click',function(e){
      el = $(e.target);
      if(el.get('tag') == 'img'){
        el = el.getParent();
      }

      if(!el.hasClass('selected')){
        window.gallery.current = el.get('rel');
        window.gallery.play(true);
        clearTimeout(window.gallery.timer);
        window.gallery.gallery.addClass("stopped");
      }

      e.stop();
    });
  }

  if($('map_big')){

    var latlng = new google.maps.LatLng(hotel.lon, hotel.lat);
    var myOptions = {
      zoom: 15,
      center: latlng,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    };

    var map = new google.maps.Map(document.getElementById("map_big"),myOptions);

    var marker = new google.maps.Marker({
      position: latlng,
      map: map,
      icon: 'img/hotel.png',
      title:hotel.name
    });

    var boxText = document.createElement("div");
    boxText.style.cssText = "border: 1px solid black; margin-top: 8px; background: white; padding: 5px;";
    boxText.innerHTML = hotel.name;

    var myOptions = {
       content: boxText
      ,disableAutoPan: false
      ,maxWidth: 0
      ,pixelOffset: new google.maps.Size(20, -50)
      ,zIndex: null
      ,boxStyle: {
        opacity: 0.9,
        width: "150px"
       }
      ,closeBoxMargin: "10px 2px 2px 2px"
      ,infoBoxClearance: new google.maps.Size(1, 1)
      ,isHidden: false
      ,pane: "floatPane"
      ,enableEventPropagation: false
    };

    var ib = new InfoBox(myOptions);

    google.maps.event.addListener(marker,"mouseover", function(e) {
      ib.open(map,this);
    });

    google.maps.event.addListener(marker,"mouseout", function() {
      ib.close();
    });

    /*
    landmarks.each(function(el){

      var ps = new google.maps.LatLng(el.lat, el.lon);

      var marker = new google.maps.Marker({
        position: ps,
        map: map,
        icon: 'img/landmark.png',
        title:el.name
      });

      var boxText = document.createElement("div");
      boxText.style.cssText = "border: 1px solid black; margin-top: 8px; background: white; padding: 5px;";
      boxText.innerHTML = el.name;

      var myOptions = {
         content: boxText
        ,disableAutoPan: false
        ,maxWidth: 0
        ,pixelOffset: new google.maps.Size(20, -50)
        ,zIndex: null
        ,boxStyle: {
          opacity: 0.9,
          width: "150px"
         }
        ,closeBoxMargin: "10px 2px 2px 2px"
        ,infoBoxClearance: new google.maps.Size(1, 1)
        ,isHidden: false
        ,pane: "floatPane"
        ,enableEventPropagation: false
      };

      var ib = new InfoBox(myOptions);

      google.maps.event.addListener(marker,"mouseover", function(e) {
        ib.open(map,this);
      });

      google.maps.event.addListener(marker,"mouseout", function() {
        ib.close();
      });

    });
    */
  }
});

function make_popup_message(txt){
    //make_popup_message('Please wait while your reservation is processed....');

    content = '<a class="close" href="#"></a>'+txt;

    popup = new Element('div.popup_fixed',{
      'styles':{
        'left':0,
        'top':0
      },
      'html':content
    });

    $$('body')[0].grab(popup);

    size = popup.getSize().y;

    popup.setStyles({
      'left':window.getSize().x/2-250,
      'top':window.getSize().y/2-size/2-100
    });

    popup.getElements('a.close')[0].addEvent('click',function(e){
      $(e.target).getParent().destroy();

      e.stop();
    });
}
