var rooms_total=1;var max_rooms_per_booking=3;var codeChecked=false;var completed=false;var check=true;var navig_agt=navigator.userAgent.toLowerCase();function addRooms(){if(rooms_total<max_rooms_per_booking){var rooms=document.getElementById('rooms');var exta_room=createRoom();rooms.appendChild(exta_room);var room_labels=document.getElementById('room_l');room_labels.innerHTML=createLabel();var n_rooms=document.getElementById('n_rooms');n_rooms.value=rooms_total;showError("&nbsp;")}else{showError("Maximum number of rooms is "+max_rooms_per_booking)}}function createLabel(){var label=document.getElementById('room_l');var temp="<span id='room_l"+rooms_total+"'>Room <span id='r"+rooms_total+"s'>"+rooms_total+"</span><br/></span>";return label.innerHTML+" "+temp}function recountLabels(index){var diff=rooms_total-index;var count=rooms_total-diff;for(var i=count;i<=rooms_total;i++){var count_l=document.getElementById('r'+(i+1)+'s');count_l.innerHTML=(i);count_l.id='r'+(i)+'s';var label=document.getElementById('room_l'+(i+1));label.id='room_l'+(i);var boxS=document.getElementById('room'+(i+1));boxS.id="room"+i;var box=document.getElementById('rs'+(i+1));box.id="rs"+i;box.name="room"+i;var rem_but=document.getElementById('rem_but'+(i+1));if((navig_agt.indexOf("msie")!=-1)){rem_but.onclick=Function('removeRooms('+i+')');rem_but.id="rem_but"+i}else{rem_but.id="rem_but"+i;rem_but.attributes["onclick"].value="removeRooms("+i+")"}}}function removeRooms(index){if(rooms_total>1){var room=document.getElementById('room'+index);var par=room.parentNode;par.removeChild(room);var lab=document.getElementById('room_l'+index);var lab_par=document.getElementById('room_l');lab_par.removeChild(lab);rooms_total--;var n_rooms=document.getElementById('n_rooms');n_rooms.value=rooms_total;recountLabels(index);showError("&nbsp;")}else{showError("The number of rooms cannot be less than 1")}}function createRoom(){rooms_total++;var newRoom=document.createElement('span');newRoom.id="room"+rooms_total;var room='<br/><select id="rs'+rooms_total+'" name="room'+rooms_total+'">'+'<option value="Double">Double</option>'+'<option value="Twin">Twin</option>'+'<option value="Single">Single</option>'+'</select>&nbsp<img title="Remove room" id="rem_but'+rooms_total+'" src="images/delete.png" width="16" height="16" onclick="removeRooms('+rooms_total+')" />';newRoom.innerHTML=room;return newRoom}function checkAndSend(){check=true;tracking('Booking','Room Reservation','GH Room Reservation');completed=false;openWaitWindow();showMessage("Checking information");var form=document.getElementById('contact_form');showError('&nbsp;');selDefaultLabels();var email=document.getElementById('email');var code=document.getElementById('code');var comments=document.getElementById('comments');var date=document.getElementById('date');if(comments.value==""){comments.value="None"}if(!emailCheck(email.value)){highlightLable('emaill');highlightLable('email');check=false}if(!checkDate(date.value)){check=false;showError("The check-in date cannot be empty, past or today's date<br/>If you would like to send an enquery about a past booking please use general contact form <a href='?page=contact&ref=0'>here</a>");highlightLable('date');highlightLable('dateL')}for(i=1;i<=4;i++){if(!checkAField('a'+i)){showError('Please check information entered in the highlighted fileds');highlightLable('al'+i);highlightLable('a'+i);check=false}}if(check){completed=false;sendBooking()}else{completed=true}if(completed){closeWaitWindow()}}function sendBooking(){showMessage("Sending booking");var request=getRequest();var name=document.getElementById('a1');var email=document.getElementById('email');var phone=document.getElementById('a2');var index=document.getElementById('country').selectedIndex;var country=document.getElementById('country').options[index];var post_request1="name="+encodeURI(name.value)+"&email="+encodeURI(email.value)+"&phone="+encodeURI(phone.value)+"&country="+encodeURI(country.value);var date=document.getElementById('date');var nights=document.getElementById('a3');var people=document.getElementById('a4');var post_request2="&date="+encodeURI(date.value)+"&nights="+encodeURI(nights.value)+"&people="+encodeURI(people.value);var rooms_count=document.getElementById('n_rooms');var post_request3="&n_rooms="+encodeURI(rooms_count.value);var post_request4="";for(var i=1;i<=rooms_total;i++){var room_sel=document.getElementById('rs'+i);var index=room_sel.selectedIndex;var val=room_sel.options[index].value;post_request4+="&room"+i+"="+encodeURI(val)}var comments=document.getElementById('comments');var post_request5="&comments="+encodeURI(comments.value);var post_request=post_request1+post_request2+post_request3+post_request4+post_request5;request.open('POST','AjaxServer?proc=email&sub_proc=bkg&cmd=0',true);request.setRequestHeader("Content-type","application/x-www-form-urlencoded");request.setRequestHeader("Content-length",post_request.length);request.setRequestHeader("Connection","close");request.onreadystatechange=function(){if(request.readyState==4){completed=true;closeWaitWindow();var container=document.getElementById('container');container.innerHTML=request.responseText}};request.send(post_request)}function checkIntFormat(id,lid){var number=document.getElementById(id).value;if(number!=""&&isNaN(number)){showError("Only numbers allowed here");highlightLable(id);highlightLable(lid)}else{document.getElementById(id).style.color='#000000';document.getElementById(lid).style.color='#000000';showError('&nbsp;')}}function checkCode(code){openWaitWindow();xhr=getRequest();var xhr;xhr.onreadystatechange=function(){if(xhr.readyState==4){if(xhr.status==200){var text=xhr.responseText;if(text!='true'){codeChecked=false;highlightLable('codeL');highlightLable('code');showError('Image code and code entered do not match<br/> Please re-enter security code');check=false;ReloadCode();completed=true;closeWaitWindow()}else{codeChecked=true}}}};xhr.open("GET","ImageCheck?code="+code,false);xhr.send(null)}function checkDate(value){var corDate=true;var day=value.substring(0,2);var month=value.substring(3,5);var year=value.substring(6,10);var d1=new Date(year,month-1,day,0,0,0,0);var today=new Date();var diff=today.getTime()-d1.getTime();if(diff>0){corDate=false}return corDate}function selDefaultLabels(){for(i=1;i<=4;i++){var label=document.getElementById('al'+i).style.color='#000000';var label=document.getElementById('a'+i).style.color='#000000'}document.getElementById('emaill').style.color='#000000';document.getElementById('codeL').style.color='#000000';document.getElementById('email').style.color='#000000';document.getElementById('code').style.color='#000000';document.getElementById('date').style.color='#000000';document.getElementById('dateL').style.color='#000000'}function highlightLable(id){var label=document.getElementById(id);label.style.color='#FF0000'}function ReloadCode(){if((navig_agt.indexOf("msie")!=-1)){var original=document.getElementById('img_code').src;document.getElementById('img_code').src=original+'?'+(new Date()).getTime()}else{document.getElementById('img_code').src=document.getElementById('img_code').src+'#'}}function checkAField(id){var check=true;var field=document.getElementById(id);if(field.value==''){check=false}return check}function showError(mes){var errorHold=document.getElementById('error');errorHold.innerHTML=mes}function resetForm(){if(confirm("Are you sure you want to reset this form?")){var form=document.getElementById('contact_form');showError('&nbsp;');selDefaultLabels();form.reset()}}function emailCheck(emailStr){var checkTLD=1;var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum|mobi|asia|eu|travel|cat|jobs|tel)$/;var emailPat=/^(.+)@(.+)$/;var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";var validChars="\[^\\s"+specialChars+"\]";var quotedUser="(\"[^\"]*\")";var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;var atom=validChars+'+';var word="("+atom+"|"+quotedUser+")";var userPat=new RegExp("^"+word+"(\\."+word+")*$");var domainPat=new RegExp("^"+atom+"(\\."+atom+")*$");var matchArray=emailStr.match(emailPat);if(matchArray==null){ShowErrorMessage("Email address seems incorrect (check @ and .'s)");return false}var user=matchArray[1];var domain=matchArray[2];for(i=0;i<user.length;i++){if(user.charCodeAt(i)>127){ShowErrorMessage("Ths username contains invalid characters.");return false}}for(i=0;i<domain.length;i++){if(domain.charCodeAt(i)>127){ShowErrorMessage("Ths domain name contains invalid characters.");return false}}if(user.match(userPat)==null){ShowErrorMessage("The username doesn't seem to be valid.");return false}var IPArray=domain.match(ipDomainPat);if(IPArray!=null){for(var i=1;i<=4;i++){if(IPArray[i]>255){ShowErrorMessage("Destination IP address is invalid!");return false}}return true}var atomPat=new RegExp("^"+atom+"$");var domArr=domain.split(".");var len=domArr.length;for(i=0;i<len;i++){if(domArr[i].search(atomPat)==-1){ShowErrorMessage("The domain name does not seem to be valid.");return false}}if(checkTLD&&domArr[domArr.length-1].length!=2&&domArr[domArr.length-1].search(knownDomsPat)==-1){ShowErrorMessage("The address must end in a well-known domain or two letter "+"country.");return false}if(len<2){ShowErrorMessage("This address is missing a hostname!");return false}return true}function ShowErrorMessage(message){showError(message)}