//HTML Creation

//Variable for currently selected rooms
var currentRoom;

//***************************************************************************************
//Create Room
var newRoom = function(o,roomRate,packages){
	
	var room = findRoom(o,roomRate);
	var ratePlan = findRatePlan(o,roomRate);

	var roomType;
	var plural="";
	if(Reservation.amount>1){plural="s";}
	if(packages){roomType="package"+plural;}
	else{roomType="room"+plural;}

	var div1 = cE.$("div");
	div1.className="option clear";
	
	//Image and parent DIV
	var div2 = cE.$("div");
	div2.className="image";
	var img1 = cE.$("img");
	img1.src=dir+"images/hotels/"+o.Code+"/rooms/"+room.Code+"/photo.jpg";
	img1.width="224";
	img1.height="71";
	img1.alt=room.Name;
	div2.appendChild(img1);
		
	//Content div
	var div3 = cE.$("div");
	div3.className="content";
	
		//Hidden field for code
		var input = cE.$("input");
		input.type="hidden";
		input.id="room-code";
		input.name="room-code";
		input.value=room.Code;
	
		//Header
		var div4 = cE.$("div");
		div4.className="header";
		var h1 = cE.$("h3");
		h1.appendChild(document.createTextNode(room.Name))
		var div5 = cE.$("div");
		div5.className="clear";
		

		var input1 = cE.$("input");
		input1.type="submit";
		input1.className="book-btn";
		input1.name=o.Code+"-rooms";
		input1.id=o.Code+"-rooms-"+room.Name;
		input1.value="Book"/*+Reservation.amount+" "+roomType*/;
		input1.roomCode=room.Code;
		input1.rateCode=ratePlan.Code;
		input1.code=o.Code;
		input1.cards=o.Summary.CreditCards;
		input1.onclick=function(){
			
			Reservation.roomCode=this.roomCode;
			Reservation.rateCode=this.rateCode;
			Reservation.Code=this.code;
			Reservation.CreditCards=this.cards;
			
			if(currentRoom){
				currentRoom.className="book-btn";
				currentRoom.value="Book"/*+Reservation.amount+" "+roomType*/;
			}
			this.className="book-selected";
			this.value="Booked"/*+this.value*/;
			currentRoom=this;
			sendHotels();
			return false;

		}

		div5.appendChild(input1);
		
		div4.appendChild(h1);
		div4.appendChild(div5);
		
		//Details
		var div6 = cE.$("div");
		div6.className="details";
		var p1 = cE.$("p");
		p1.appendChild(document.createTextNode(room.Description));
		var dl1 = cE.$("dl");
		var dt1 = cE.$("dt");
		dt1.appendChild(document.createTextNode("Total Rate"));
		var dd1 = cE.$("dd");
		dd1.appendChild(document.createTextNode(roomRate.TotalRate.Amount + " " +roomRate.TotalRate.Currency));
		dl1.appendChild(dt1);
		var dt2 = cE.$("dt");
		dt2.appendChild(document.createTextNode("Includes"));
		var dd2 = cE.$("dd");
		dd2.appendChild(document.createTextNode(ratePlan.TaxInformation));
		
		dl1.appendChild(dt1);
		dl1.appendChild(dd1);
		dl1.appendChild(dt2);
		dl1.appendChild(dd2);
	
		div6.appendChild(p1);
		div6.appendChild(dl1);
	
	div3.appendChild(input);
	div3.appendChild(div4);
	div3.appendChild(div6);
	
	
	div1.appendChild(div2);
	div1.appendChild(div3);
	
	return div1;
	
}




//***************************************************************************************
var hotelCount=0;
//Create Hotel
var newHotel = function(o,pkg,existing,first,hide){

	//AJAX CALL TO GET THE ROOM ONLY RATES
	var roomRates = getRoomRates(o);
	
	
	var divPanel = cE.$("div");
	
	//if this is the first panel, then add the "first" class
	if(hotelCount==0){
		divPanel.className="panel first clear";
	}
	else{
		divPanel.className="panel clear";
	}
	
		//Content
		var divContent = cE.$("div");
		divContent.className="content";
		divContent.id=o.Code+"-hotel";
	
			//Info
			var divInfo = cE.$("div");
			divInfo.className="info clear";
			


				
				//Info left
				var divLeft = cE.$("div");
				divLeft.className="left";

				
					//Header
					var divHeader1 = cE.$("div");
					divHeader1.className="header";

					var price = roomRates[0].TotalRate.Amount/Reservation.nights;
					var avgPrice=Math.round(price*100)/100 


					
					var headerH3 = cE.$("h3");
					headerH3.innerHTML = o.Summary.Name + " <span class=\"green\">from "+avgPrice+ " "+roomRates[0].TotalRate.Currency+" per night</span>";
					divHeader1.appendChild(headerH3);
					
					//Content
					var divContent1 = cE.$("div");
					divContent1.className="content";
					var cDl = cE.$("dl");
					var cDt1 = cE.$("dt");
					cDt1.innerHTML ="Location:";
					var cDd1 = cE.$("dd");
					cDd1.innerHTML = o.Summary.Location;
					cDl.appendChild(cDt1);
					cDl.appendChild(cDd1);
					var cP1 = cE.$("p");
					cP1.innerHTML = o.Summary.Description;
					
					
					

					
					
					
					
					//Only build the Show/hide link if this isn't an existing booking
					var showHide = cE.$("div");
					showHide.className="hide-show";
					var showHideA = cE.$("a");
					showHideA.href="#";
					var showHideI = cE.$("img");
					showHideI.src=dir+"images/bookingform/icon-hide.gif";
					var showHideS = cE.$("span");
					
					if(hide=="Show rooms"){
						showHideS.innerHTML="Show rooms";
					}
					else{
						if(hotelCount==0){
							showHideS.innerHTML="Hide rooms";
						}
						else{
							showHideS.innerHTML="Show rooms";
						}
					}
					showHideA.appendChild(showHideI);
					showHideA.appendChild(showHideS);
					showHide.appendChild(showHideA);
		
					
					divContent1.appendChild(cDl);
					divContent1.appendChild(cP1);
					divContent1.appendChild(showHide);
				
				divLeft.appendChild(divHeader1);
				divLeft.appendChild(divContent1);
				
				
				//Info right
				var divRight = cE.$("div");
				divRight.className="right";
					//Header
					var divHeader = cE.$("div");
					divHeader.className="header";
					var headerA = cE.$("a");
					headerA.href=o.Summary.WebSiteUrl;
					headerA.target="_blank";
					headerA.appendChild(document.createTextNode("Visit hotel website"));
					divHeader.appendChild(headerA);
					//Content
					var divContent2 = cE.$("div");
					divContent2.className="content";
						
						//Photos link
						var divLink1 = cE.$("div");
						divLink1.className="link first";
						var link1A = cE.$("a");
						link1A.href=o.Summary.PictureGalleryUrl;
						link1A.target="_blank";
						var img1 = cE.$("img");
						img1.src=dir+"images/hotels/"+o.Code+"/photos.jpg";
						var span1 = cE.$("span");
						span1.appendChild(document.createTextNode("more photos"));
						link1A.appendChild(img1);
						link1A.appendChild(span1);
						divLink1.appendChild(link1A);
						
						//Map link
						var divLink2 = cE.$("div");
						divLink2.className="link";
						var link2A = cE.$("a");
						link2A.href=o.Summary.MapsUrl;
						link2A.target="_blank";
						var img2 = cE.$("img");
						img2.src=dir+"images/hotels/"+o.Code+"/map.jpg";
						var span2 = cE.$("span");
						span2.appendChild(document.createTextNode("see full map"));
						link2A.appendChild(img2);
						link2A.appendChild(span2);
						divLink2.appendChild(link2A);
					
					divContent2.appendChild(divLink1);
					divContent2.appendChild(divLink2);
					
				divRight.appendChild(divHeader);
				divRight.appendChild(divContent2);
				
				
			
			divInfo.appendChild(divLeft);
			divInfo.appendChild(divRight);
			
			//More
			var divMore = cE.$("div");
			divMore.className="more";
				divMoreForm = cE.$("form");
				divMoreForm.action="#";
				divMoreForm.method="post";
				divMoreForm.id=o.Code+"-form";
				divMoreField = cE.$("fieldset");
				
				
				//Hidden field for HOTEL code
				var input = cE.$("input");
				input.type="hidden";
				input.id="hotel-code";
				input.name="hotel-code";
				input.value=o.Code;
					
					
					var pckgs = AjaxProxy.GetRatePlanPackages(o).value;
					if(pckgs.length>0){
				
				
						//Tools (room only/packages)
						var divToolsCl = cE.$("div");
						divToolsCl.className="clear";
						var divTools = cE.$("div");
						divTools.className="tools";
						
						var ulTools = cE.$("ul");
						var li1Tools = cE.$("li");
						li1Tools.id=o.Code+"-tools-rooms";
						li1Tools.className="selected first";
						var a1Tools = cE.$("a");
						a1Tools.href="#";
						a1Tools.hotel=o;
						a1Tools.onclick=function(){packages(this.hotel,'');return false;}
						a1Tools.innerHTML="Room only";
						li1Tools.appendChild(a1Tools);
						
						
						
						var li2Tools = cE.$("li");
						li2Tools.id=o.Code+"-tools-packages";
						li2Tools.className="";
						var a2Tools = cE.$("a");
						a2Tools.href="#";
						a2Tools.hotel=o;
						a2Tools.onclick=function(){packages(this.hotel,'packages');return false;}
						a2Tools.innerHTML="City Experiences";
						li2Tools.appendChild(a2Tools);
						
						ulTools.appendChild(li1Tools);
						ulTools.appendChild(li2Tools);
						divTools.appendChild(ulTools);
						divToolsCl.appendChild(divTools);
					
					}
				
				
					//Packages alternative
					var packagePlans = getPackageRoomPlans(o);
					
					var packForm = cE.$("form");
					var packField = cE.$("fieldset");
					packField.className="package-options";
					var packH3 = cE.$("h3");
					packH3.innerHTML = "Choose your City Experience";
					
					packField.appendChild(packH3);
					
					
					//Add room only package
					var radioField1 = cE.$("div");
					radioField1.className="clear";	
					
					var packRadio1;
					if(navigator.appName.indexOf("Microsoft")!=-1){
						packRadio1 = document.createElement('<input type="radio" name="'+o.Code+'-packages" value="Room only" />');	
					}
					else{
						packRadio1 = cE.$("input");
						packRadio1.type="radio";
						packRadio1.name=o.Code+"-packages";	
						packRadio1.value="Room only";
					}

					packRadio1.id=o.Code+"-packages-0";
					packRadio1.checked=true;
					packRadio1.hotel=o;
					packRadio1.onclick=function(){
						var roomRates = getRoomRates(o);

							//var rooms = packageFindRoom(o,rates);
							//alert(packageRooms.length);
							
							//Load all the new rooms into a new array and the rebuild
							var newPackageRooms = new Array();
							for(var i=0;i<roomRates.length;i++){
								newPackageRooms[i] = new Object(); 
								newPackageRooms[i].hotel = o;
								newPackageRooms[i].roomRates = roomRates[i];	
							}
						reBuildRooms(this.hotel,newPackageRooms);	
					}
				
					var packLabel1 = cE.$("label");
					packLabel1.setAttribute("for",o.Code+"-packages-0");
					packLabel1.innerHTML = "Room only";
					
					//Add all other packages
					for(var j=0;j<packagePlans.length;j++){
						var count = j;
						var radioField2 = cE.$("div");
						radioField2.className="clear";	
						
						var checked = "";
						
						if(j==0){
							checked="checked";	
						}
						else{
							checked = "";
						}
						
						var packRadio2;
						if(navigator.appName.indexOf("Microsoft")!=-1){
							packRadio2 = document.createElement('<input type="radio" name="'+o.Code+'-packages" value="'+packagePlans[j].Code+'" checked="'+checked+'" />');	
						}
						else{
							packRadio2 = cE.$("input");
							packRadio2.type="radio";
							packRadio2.name=o.Code+"-packages";	
							packRadio2.value=packagePlans[j].Code;
						}

						packRadio2.id=o.Code+"-packages-"+count;
						packRadio2.checked=checked;
						packRadio2.ratePlan=packagePlans[j];
						packRadio2.hotel=o;
						packRadio2.onclick=function(){
							
							var roomRates = packageRoomRates(o,this.ratePlan.Code);
							
							//Load all the new rooms into a new array and the rebuild
							var newPackageRooms = new Array();
							for(var i=0;i<roomRates.length;i++){
								newPackageRooms[i] = new Object(); 
								newPackageRooms[i].hotel = o;
								newPackageRooms[i].roomRates = roomRates[i];	
							}
							reBuildRooms(this.hotel,newPackageRooms,true,this.ratePlan.Description);
							
								
						}
						
						
					
						var packLabel2 = cE.$("label");
						packLabel2.setAttribute("for",o.Code+"-packages-"+count);
						packLabel2.innerHTML = packagePlans[j].Name;
						
						radioField2.appendChild(packRadio2);
						radioField2.appendChild(packLabel2);
						packField.appendChild(radioField2);
					}
					
					packForm.appendChild(packField);
				

				//Footer
				var divFooter = cE.$("div");
				divFooter.className="footer clear";
				var divButton = cE.$("div");
				divButton.className="button-wrapper";
				var button = cE.$("button");
				button.id=o.Code+"-book-button";
				button.setAttribute("type", "submit");
				
				var test = divMoreForm.id
				
			
				

			divMoreField.appendChild(input);
			
			
			
			for(var i=0;i<roomRates.length;i++){

				divMoreField.appendChild(newRoom(o,roomRates[i]));	
				
			}
			
			
			
			//divMoreField.appendChild(divFooter);
			divMoreForm.appendChild(divMoreField);
			
			
			//Packages build
			if(pckgs.length>0){
				divMore.appendChild(divToolsCl);
			}
			
			var divClear = cE.$("div");
			divClear.className="clear";
			divClear.appendChild(packForm);
			divClear.appendChild(divMoreForm);
			
			divMore.appendChild(divClear);
			
		divContent.appendChild(divInfo);
		divContent.appendChild(divMore);
	
	divPanel.appendChild(divContent);
	
	hotelCount++;
	
	return divPanel;
	
	
}



//***************************************************************************************
//Create Upsell
var newUpsell = function(o,code){
	
	var divSpecial = cE.$("div");
	divSpecial.className="specials clear";
	
		var divLeft = cE.$("div");
		divLeft.className = "left";

			var divHeader = cE.$("div");
			divHeader.className="header clear"
			
				var h3 = cE.$("h3");
				h3.innerHTML = o.Name;
				
				var divBook = cE.$("div");
				
				var addOnFieldset = cE.$("fieldset");
				var addOnDiv1 = cE.$("div");
				addOnDiv1.className="field clear";
				var addOnDiv2 = cE.$("div");
				addOnDiv2.className="element";
				var addOnDiv3 = cE.$("div");
				addOnDiv3.className="input clear";
				var addOnDiv4 = cE.$("div");
				addOnDiv4.className="clear";
				var addOnDiv5 = cE.$("div");
				addOnDiv5.className="clear";
				
				var addOnInput1;
				if(navigator.appName.indexOf("Microsoft")!=-1){
					addOnInput1 = document.createElement('<input type="radio" name="'+o.Code+'" value="1" class="radio" id="'+o.Code+'-yes" />');	
				}
				else{
					addOnInput1 = cE.$("input");
					addOnInput1.type="radio";
					addOnInput1.name=o.Code;
					addOnInput1.value="1";
					addOnInput1.className="radio";
					addOnInput1.id = o.Code+"-yes";
				}
				addOnInput1.desc=o.Description;
				addOnLabel1 = cE.$("label");
				addOnLabel1.innerHTML="Yes";
				addOnLabel1.setAttribute("for",o.Code+"-yes");
				
				addOnDiv4.appendChild(addOnInput1);
				addOnDiv4.appendChild(addOnLabel1);
				
				var addOnInput2;
				if(navigator.appName.indexOf("Microsoft")!=-1){
					addOnInput2 = document.createElement('<input type="radio" name="'+o.Code+'" value="0" class="radio" id="'+o.Code+'-no" checked="checked" />');	
				}
				else{
					addOnInput2 = cE.$("input");
					addOnInput2.type="radio";
					addOnInput2.name=o.Code;
					addOnInput2.value="0";
					addOnInput2.className="radio";
					addOnInput2.id = o.Code+"-no";
					addOnInput2.checked = "checked";
				}
				addOnInput2.desc=o.Description;
				
				addOnLabel2 = cE.$("label");
				addOnLabel2.innerHTML="No";
				addOnLabel2.setAttribute("for",o.Code+"-no");
				
				addOnDiv5.appendChild(addOnInput2);
				addOnDiv5.appendChild(addOnLabel2);
				
				
				addOnDiv3.appendChild(addOnDiv4);
				addOnDiv3.appendChild(addOnDiv5);
				addOnDiv2.appendChild(addOnDiv3);
				addOnDiv1.appendChild(addOnDiv2);
				addOnFieldset.appendChild(addOnDiv1);
				
				divBook.appendChild(addOnFieldset);
				
			
				
			divHeader.appendChild(h3);
			divHeader.appendChild(divBook);	
			
			var p = cE.$("p");
			p.innerHTML = o.Description;
			
			var dl = cE.$("dl");
			var dt = cE.$("dt");
			dt.innerHTML = "Price:";
			var dd = cE.$("dd");
			dd.innerHTML = "<span class=\"green\">"+o.Rate.Amount+" " +o.Rate.Currency+" per room</span>";
			dl.appendChild(dt);
			dl.appendChild(dd);
			
			/*var anc = cE.$("a");
			anc.className="icon";
			anc.href=o.url;
			anc.innerHTML = "See details";*/
			
		divLeft.appendChild(divHeader);
		//divLeft.appendChild(p);
		divLeft.appendChild(dl);
		/*divLeft.appendChild(anc);*/
		
		
		var divRight = cE.$("div");
		divRight.className = "right";
		
			var img = cE.$("img");
			img.src=dir+"images/hotels/"+code+"/add-ons/"+o.Code+"/photo.jpg";
			img.alt="special 1";
			img.width="206";
			img.height="71";
			
		divRight.appendChild(img);
		
		
	divSpecial.appendChild(divLeft);
	divSpecial.appendChild(divRight);
	
	return divSpecial;
	
};





//***************************************************************************************
//Create Confirmation
var newConfirmation = function(o){

	var divLeft = cE.$("div");
	divLeft.className="";

		var img = cE.$("img");
		img.src=dir+"images/bookingform/temp-confirmation.jpg";
		img.width="414";
		img.height="106";
	
		var h3 = cE.$("h3");
		h3.innerHTML="You have completed your booking";
		var p1 = cE.$("p");
		p1.innerHTML = "Your reference number is "+o.ConfirmationNumber;
		var h4a = cE.$("h4");
		h4a.innerHTML="You have booked the following";
		var ul = cE.$("ul");
		ul.className="arrows";
		var li1 = cE.$("li");
		li1.innerHTML = o.ReservedHotel.Rooms[0].Number + " " + o.ReservedHotel.Rooms[0].Name +" in <span class=\"white\">" + o.ReservedHotel.Summary.Name +"</span> for " + o.ExpectedCharges.length +" nights, from "+formatDateAlt(o.CheckInDate)+" to "+formatDateAlt(o.CheckOutDate);
		ul.appendChild(li1);
		
		if(o.ReservedHotel.AddOns!=null){
			for(var i=0;i<o.ReservedHotel.AddOns.length;i++){
				var li2 = cE.$("li");
				li2.innerHTML = o.ReservedHotel.AddOns[i].Number + " " + o.ReservedHotel.AddOns[i].Description;
				ul.appendChild(li2);
			}
		}

		
		var h4b = cE.$("h4");
		h4b.innerHTML="Daily Rates:";
		
		var table = cE.$("table");
		var tableBody = cE.$("tbody");
		table.width="20%";
		table.setAttribute("cellpadding","0");
		table.setAttribute("cellspacing","0");
		table.setAttribute("border","0");
		
		for(var i=0;i<o.ExpectedCharges.length;i++){
			var tr1 = cE.$("tr");
			var th1 = cE.$("th");
			
			var stayDate = o.ExpectedCharges[i].StayDate
			var dateStr = formatDateAlt(stayDate);
			
			th1.innerHTML = dateStr;
			var td1 = cE.$("td");
			td1.innerHTML = o.ExpectedCharges[i].Rate.Amount + " " + o.ExpectedCharges[i].Rate.Currency;
			tr1.appendChild(th1);
			tr1.appendChild(td1);
			tableBody.appendChild(tr1);			
		}
		

		var trTotal = cE.$("tr");
		var thTotal = cE.$("th");
		thTotal.innerHTML = "<strong>Total Price*</strong>";
		var tdTotal = cE.$("td");
		tdTotal.innerHTML = o.TotalCharge.Amount + " " +o.TotalCharge.Currency;
		trTotal.appendChild(thTotal);
		trTotal.appendChild(tdTotal);
		tableBody.appendChild(trTotal);
		table.appendChild(tableBody);
		
		var tableP = cE.$("p");
		tableP.innerHTML="*Total price includes any additional items booked";
		
		if(o.Comment!=null && o.Comment!=""){
			var h4c = cE.$("h4");
			h4c.innerHTML="Your special requests:";
			var commentsP = cE.$("p");
			commentsP.innerHTML = o.Comment;
		}
		
		var printP = cE.$("div");
		printP.className="button-wrapper print";
		var printA = cE.$("button");
		printA.innerHTML = "<img src=\"images/bookingform/icon-link.gif\"/> <span>Print confirmation</span>";
		printA.onclick=function(){
		
			document.getElementById("printCSS").href="css/print-confirmation.css";
			
			self.print();
			
			return false;
		}
		
		printP.appendChild(printA);
		
		var p2 = cE.$("p");
		p2.innerHTML = "To change your booking, at any time, go to the Guest Hotels website and click the button 'Manage An Existing Booking'";
		var button1Wrap = cE.$("div");
		button1Wrap.className="button-wrapper";
		var button1 = cE.$("button");
		button1.innerHTML = "<img src=\"images/bookingform/icon-link.gif\"/> <span>Amend booking</span>";
		button1.onclick=function(){
			document.location.href="ManageBookings.aspx?res="+o.ConfirmationNumber;	
		}
		button1Wrap.appendChild(button1);
		
		var p4 = cE.$("p");
		p4.innerHTML = "<small>(cancellation charges may apply)</small>";	
		var p5 = cE.$("p");
		p5.innerHTML = "<a href=\""+o.ReservedHotel.Summary.WebSiteUrl+"\" class=\"icon\" target=\"_blank\">Go to the hotel website</a>";
		var p6 = cE.$("p");
		p6.innerHTML = "<a href=\"#\" class=\"white\">Click here to read our Terms and Conditions</a>";
		
		var p7 = cE.$("p");
		p7.innerHTML = "<a href=\"http://www.guesthotels.com/concierge/\" class=\"icon\" target=\"_blank\">View Concierge Club events</a>";
		
		divLeft.appendChild(img);
		divLeft.appendChild(h3);
		divLeft.appendChild(p1);
		divLeft.appendChild(h4a);
		divLeft.appendChild(ul);
		divLeft.appendChild(h4b);
		divLeft.appendChild(table);
		divLeft.appendChild(tableP);
		if(o.Comment!=null && o.Comment!=""){
			divLeft.appendChild(h4c);
			divLeft.appendChild(commentsP);
		}
		divLeft.appendChild(p2);
		
		var divClear = cE.$("div");
		divClear.className="confirmation-buttons clear";
		divClear.appendChild(button1Wrap);
		divClear.appendChild(printP);
		
		divLeft.appendChild(divClear);
		divLeft.appendChild(p4);
		divLeft.appendChild(p5);
		divLeft.appendChild(p7);
		//divLeft.appendChild(p6);

	

		
	return divLeft;

};





