
/**
 * This class is specific to each website. It contains the HTML to draw the following elements 
 * 1) Search result item
 * 2) Update the price on the detail page
 * 3) Get the number of stars icons for the hotel
 * 4) Get the necessary form variables to post in order to get a price / search
 */

function resultProperty(){
	this.arText = new Array();
	
	// Price Div
	this.priceDivContainer = 'div-price-container';
	this.priceDivLoader	   = 'div-price-loader';
	this.priceDiv 		   = 'div-price';
	this.priceDivNoAvail   = 'div-price-no-avail';
	this.priceTotal		   = 'span-price-total';
	this.priceFrom		   = 'span-price-from';
	this.priceTo		   = 'span-price-to';
	this.priceNight		   = 'span-price-night';
	this.numAdult		   = 'span-num-adult';
	this.numChild		   = 'span-num-child';
	
	// Booking Form Vars
	this.bookingFormId 	= "id";
	this.bookingFormFrom 	= "aDate";
	this.bookingFormTo		= "dDate";
	this.bookingFormAdult	= "na";
	this.bookingFormChild	= "nc";
	
	// Availability Request / Price Request Form Vars
	this.requestForm 		= "frmSearch";
	this.requestFormId 		= "pid";
	this.requestAccommType	= "accommType";
	this.requestFormFrom 	= "CheckIn";
	this.requestFormTo		= "CheckOut";
	this.requestFormRoom	 	= "numRooms";
	this.requestFormAdult	= "nAdult0";
	this.requestFormChild	= "nChild0";
	
	this.multiRoom  = false;
	this.local 		= false;
	
	// Function that draws a single item
	this._drawItem = function (i){
		var item;
		var idNoDecimal = parseInt(i['id']);
		var title = (i['title']) ? i['title'] : i['opt_bedrooms'] + " " + arTxt['bedrooms'] + " " + i['town_label'] + ", "+i['region_label'];
		// Google Map PopUp Under
  		var htmlMap = "<iframe src=\\'/item_map.php?gType=hotel&h=200&w=240&gItem=" + i['id']+'|'+i['provider']+ "&zoom=15\\' frameborder=\\'0\\' width=\\'300px\\' height=\\'300px\\' style=\\'border:1px double #7B7B3D;\\' scrolling=\\'No\\'></iframe>";
  		var htmlMapOnclick = 'oItemList.showItemMap(\'item-map-'+idNoDecimal+'\',\''+htmlMap+'\',\'map-'+idNoDecimal+'\',\''+arTxt['close']+' X\')" class="action" id="map-'+idNoDecimal;
  		
  		// Image Pop Under
  		var htmlImgOnclick = 'oItemList.showItemImage(\'item-map-'+idNoDecimal+'\',\''+i['images'][0]+'\',\'img-'+idNoDecimal+'\',\''+arTxt['close']+' X\')" class="action" id="img-'+idNoDecimal+'"';
		
  		// check for special
  		var headerClass = (i['opt_special'] == 'Y' ) ? "hedline01" : "hedline02";
  		
//  			$catIntValue = intval($row['hotel_cat_code']);
//    	$imgCatHtml = "";
//    	for($x=1;$x<=$catIntValue;$x++){
//    		$imgCatHtml .= '<img src="/images/star_bg_blue.gif" alt="" />';
//    	}
    	
    	// Stars / Category
  		
  		var catHtml = "";
  		if(i['category_type'] == 'star'){
	  		var catLevel = parseInt(i['category']);
	  		for(x=0;x<catLevel;x++){
	  			catHtml += '<img src="/images/star_bg_blue.gif" alt="" />';
	  		}
  		}
  		catHtml += " ("+i['category'] +") ";
  		var crmHtml = "";
  		if(this.crm){
  			var crmChecked = (this.checkMyCrm('hotel',i['id']+'-'+i['provider'])) ? 'checked' : "";
  			crmHtml = '<input type="checkbox" name="kItem[]" onclick="oResult.setMyCrm(\'hotel\',\''+i['id']+'-'+i['provider']+'\',this);" value="'+i['id']+'|'+i['provider']+'" '+crmChecked+' />';
  		}
  		
  		var htmlResOpts = "";
//  		var nights = numberNights;
  		var descr = "";
  		//alert(numberNights);
  		var txt = $(i).find('description').text();

  		if(txt){
  		  var arText = txt.split(" ");
  			var curLength = (arText.length <= 45) ? arText.length : 45;
  		  for(w=0;w < curLength;w++){
  		  	descr += arText[w] + " ";
  		  }
  		 }

  		 // Check to see if it is a special
  		 var imgStar 	= "icon_star_blue.gif";
  		 var divClass = 'divHotelRes';
  		 if(($(i).attr('opt_special') == "Y")){
  		 		imgStar 	= "icon_star_spe.gif";
  		 		divClass 	= 'divHotelResOffer';
  		 }


  		var htmlResOpts;
  		var lang = this.lang;
  		var token = this.token;
  		var testOpt = "";
  		var currentOpt = "test";
  		if(i.opts){
  		var htmlRoom = $.each(i.opts, function (){
  			var infoLink = '/hotel_detail.php?lang='+lang+'&token='+ token + '&hOpt='+$(i).attr('code')+ '|'+$(i).attr('provider')+'&rHash='+$(this).attr('opt_hash');	
  			var bookLink = ( (oResult.local) ? "" : "https://www.barcelonapoint.com") + '/tpv/tpv_hotel_form.php?opt='+$(this).attr('opt_hash')+'&lang='+oResult.lang+'&token='+ token;
  			currentOpt = $(this).attr('description')+$(this).attr('board')+$(this).attr('adults')+$(this).attr('children');
  			if(testOpt != currentOpt){
  			testOpt = $(this).attr('description')+$(this).attr('board')+$(this).attr('adults')+$(this).attr('children');
  			htmlResOpts += '<tr>'+
  				'	<td class="room">'+ $(this).attr('description') + ' / '+ $(this).attr('board') + 
  				'		<br/><em>' + arTxt['adults'] + ': '+$(this).attr('adults') + ', '+arTxt['children'] + ': '+$(this).attr('children')+'</em></td>'+
  				'	<td class="price">'+ $(this).attr('amount_per_room') + '<label> &euro;</label><span>('+ $(this).attr('amount_per_room_night') + ' &euro;/'+arTxt['/night']+')</span></td>'+
  				 ((oResult.multiRoom) ? "" : '	<td class="reservar"><a href="'+ ( (oResult.multiRoom) ? infoLink : bookLink)+'">'+arTxt['BOOK IT!']+'</a></td>')+
  				'</tr>';
  				}
  				return htmlResOpts;
  		});
	    }

  		/*
		'			<tr>'+
		'				<td>Doble uso individual standard / Alojamiento Y Desayuno'+ 
		'					<p>Adultos: 1, Niños: 0</p></td>'+
		'				<td class="price">264,13<label>€</label><span>(52,83 €/noche)</span></td>'+
		'				<td class="reservar"><a href="#">Reservar</a></td>'+
		'			</tr>'+
		*/
  		//alert($(i).attr('name') + ' ' + $(i).attr('image'));
  		//exit();

//  		if(crm){var crmCheckbox = ' <input type="checkbox" name="kItem[]" value="'+$(i).attr('id')+'" />  ';}else{ var crmCheckbox = ""; }
  		
  		var crmHtml = "";
  		if(this.crm){
  			var crmChecked = (this.checkMyCrm('hotel',i['id'])) ? 'checked' : "";
  			crmHtml = '<input class="crm" type="checkbox" name="kItem[]" onclick="oResult.setMyCrm(\'hotel\',\''+i['id']+'\',this);" value="'+i['id']+'-'+i['provider']+'" '+crmChecked+' />';
  		}
  		
  	// Checking for mylist
  		var myListCheck = '';
  		if(window.oMyList){
  		if(oMyList.oList['items']){
  			if(oMyList.oList['items']['hotel']){
	  			if(oMyList.oList['items']['hotel'][0][i['id']+'-'+i['provider']]){
	//  				alert("Founf in my list");
	  				myListCheck = 'checked';
	  			}
  			}
  		}
  		}
  		
  		var s = " " + $(i).attr('category_type');
		var pat = /([0-9]{1})/;
		var arr = s.match(pat);

		switch (parseInt(s.match(pat))) {
			case 1 : 
				numstar='one';break;
			case 2 : numstar='two';break;
			case 3 : numstar='three';break;
			case 4 : numstar='four';break;
			case 5 : numstar='five';break;
			default : numstar = 'zero'; break;
			
		}
//		var myListHtml = '<div class="div-mylist-checkbox"><input type="checkbox" name="myList['+i['id']+'-'+i['provider']+']" onclick="oMyList.elListCheckboxControl(this,\'hotel\',\''+i['id']+'-'+i['provider']+'\', \''+i['id']+'\');" '+myListCheck+' />';
//		var myListHtml = '<a href="javascript:void(0);" id="addFav-'+i['id']+'" name="myList['+i['id']+'-'+i['provider']+']" onclick="oMyList.doItemControl(this,\'hotel\',\''+i['id']+'-'+i['provider']+'\', \''+i['id']+'\',\'add\');" class="'+myListCheck+'"><i class="favoritos">&nbsp;</i><label>'+arTxt['add to my list']+ '</label></a>';
		var myListHtml = '<a href="javascript:void(0);" title="myList" id="'+i['id']+'" name="'+i['id']+'-'+i['provider']+'" class="'+myListCheck+'"><i class="favoritos">&nbsp;</i><label>'+arTxt['add to my list']+ '</label></a>';
  		
		// Check for HB promos
		var promoHtml = "";
		if(i['promo'].length > 0){
			promoHtml = '<ul class="promo">';
			for(p in i['promo']){
				promoHtml += '<i class="icon-promo promo-code-'+i['promo'][p]['code']+'" >&nbsp;</i>' +i['promo'][p]['name']+ "<br />";
			}
			promoHtml += '</ul>';
		}
		
		var item ='<div class="hotels">'+
  		'	<div class="imagen_hotel"><img height="75"  src="' + i['images'][0] + '" alt=""/></div>'+
  		'<h5>' +crmHtml+'<a href="/hotel_detail.php?lang='+this.lang+'&token='+ this.token + '&hOpt='+$(i).attr('code')+ '|'+$(i).attr('provider')+'">'+arTxt['Hotel']+': ' + $(i).attr('title') +  ' </a><i class="'+numstar+'_star">&nbsp;</i><span style="display: block;float:left;margin: 10px 0px 0px 5px;" class="res-cat-descr">(' + decodeURIComponent($(i).attr('category')) + ')</span></h5>'+
		promoHtml +
  		'<ul class="place">'+
		'	<li class="bold">'+arTxt['Located in']+':</li>'+
		'	<li>'+ $(i).attr('town_label') + ', ' + $(i).attr('region_label') + '</li>'+
		'</ul>'+
		'<ul class="place">'+
		'	<li class="bold">'+arTxt['Description']+':</li>'+
  		'		<li>'+ $(i).attr('descr') + '</li>'+
		'</ul>'+
		'<div class="btn-more-info"><a href="/hotel_detail.php?lang='+this.lang+'&token='+ this.token + '&hOpt='+$(i).attr('code')+ '|'+$(i).attr('provider')+'">'+ ( (oResult.multiRoom) ? arTxt['Select Rooms'] : arTxt['More Info']) + '</a></div>'+
		( (oResult.multiRoom && oResult.data.result.params['isMultiRoomTicDisplayPrice'] == 0) ? '<div class="res-multiroom-tic-note">'+arTxt['multiroom-tic-price']+'</div>': "" ) +
		'<div class="regimen">'+
		'	<table cellpadding="0" cellspacing="0" width="100%">'+
		'		<tbody>'+
		'			<tr class="titulo">'+
		'				<td>'+arTxt['Room Type']+' / '+arTxt['Board']+'</td>'+
		'				<td colspan="2">'+arTxt['total']+' '+arTxt['per room']+'</td>'+
		'			</tr>'+
					htmlResOpts +
		'		</tbody>'+
		'	</table>'+
		'</div>'+
		'<div class="icons_bar">'+
  		'	<ul><li><a href="javascript:void(0)" onclick="javascript:popUp(\'http://www.barcelonapoint.com/google_map.php?lang=en&gItem='+$(i).attr('id')+ '|'+$(i).attr('provider')+'&gType=hotel\',600,480,\'yes\');"><i class="map">&nbsp;</i><label>'+arTxt['Show Map']+'</label></a></li></ul>'+
//  		'	<ul><li><a href="#"><i class="favoritos">&nbsp;</i><label>'+arTxt['add to my list']+ '</label></a></li></ul>'+
		'	<ul><li>'+myListHtml+'</li></ul>'+
		'</div>'+
  		'</div>'+
  		'<div class="shadow_box"></div>';
  		
		return item;
	};
	
	this.updatePrice = function (i){
		var ok = false;
		$('#'+this.priceDivLoader).hide();
		$('#'+this.priceDivContainer).show();
		if(i != null ){	
			if(i['status'] != null || i['result']['status'] != null){ 
				if(i['status'] == true || i['result']['status']['status'] == 'Y'){
					ok = true;
				}
			}
		}
		
		if(ok){
			// Show and Hide divs
			$('[id*='+this.priceDivNoAvail+']').hide();
			$('#div-price-orginal').hide();
			$('#'+this.priceDiv).show();
			
			// Update Form
//			$('#'+this.formId).val(i['id']+"|"+i['provider']);
			
			
			
			$('#'+this.bookingFormFrom).val(i['from']);
//			alert($('#'+this.bookingFormFrom).val() + " " + i['from']);
			$('#'+this.bookingFormTo).val(i['to']);
			$('#'+this.bookingFormAdult).val($('#'+this.requestFormAdult).val());
			$('#'+this.bookingFormChild).val($('#'+this.requestFormChild).val());
			
			// Update Price containers
			//alert('test' + i['result']['property'][0]['opts'][0]['amount']);
			varHtml = "<table width='520' style='margin-top:8px;background-color:#FFFFFF;'>";
			varHtml2 = "";
			if(i['result']['property'][0]){
				for(var j in i['result']['property'][0]['opts']){
					//$('[id*='+this.priceTotal+']').html(i['result']['property'][0]['opts'][j]['amount']);
					varHtml = varHtml + "<tr>";
					varHtml = varHtml + "<td style='padding-left:4px;'><span>" + (i['result']['property'][0]['opts'][j]['description']) + "</span></td>" + "<td><span>" + (i['result']['property'][0]['opts'][j]['board']) + "</span></td>" + "<td><span>" + (i['result']['property'][0]['opts'][j]['amount']) + "</span> &euro; </td>" + "</td>" + "<td>" + "<div class='btn_book'><a href='/tpv/tpv_hotel_form.php?opt=" + i['result']['property'][0]['opts'][j]['opt_hash'] + "'" + ">Book</a></div>" + "</td>";
					varHtml = varHtml + "</tr>";
					
					varHtml2 += '<tr class="">'+
									'<td>'+i['result']['property'][0]['opts'][j]['description']+' / '+i['result']['property'][0]['opts'][j]['board']+
									'</td>'+
									'<td class="price">'+i['result']['property'][0]['opts'][j]['amount']+'<label>&euro;</label></td>'+
									'<td class="reservar"><a href="http://www.barcelonapoint.com/tpv/tpv_hotel_form.php?lang='+this.lang+'&opt='+i['result']['property'][0]['opts'][j]['opt_hash']+'&token=[token]"> '+arTxt['book-it']+'</a></td>'+
								'</tr>';
					
				}
			}
			varHtml = varHtml + "</table>";
			//alert('dd ' + varHtml);
			//$('[id*='+this.priceTotal+']').html(varHtml);
			$('#tabs').tabs('select','#tab-prices');
			$('#tbl-price-list').html(varHtml2);
			//$('#'+this.priceTotal).html(i['price_client']+" &euro;");
			$('#'+this.numAdult).html(i['result']['params']['adult']);
			$('#'+this.numChild).html(i['result']['params']['child']);
			$('#'+this.priceFrom).html(i['result']['params']['from_dmy']);
			$('#'+this.priceTo).html(i['result']['params']['to_dmy']);
			$('#'+this.priceNight).html(i['pernight']+" &euro;");
		}else{
			$('#'+this.priceDivNoAvail+'2').show();
			$('#'+this.priceDivNoAvail+'2').html(this.arText['no-availability']);
			$('#'+this.priceDiv).hide();
		}
		
	};
	
	this.getPriceSearchFormVars = function(){
//		alert(this.requestFormAdult + " : " + this.requestFormChild); 
		var vars = {	'id'	:$('#'+this.requestFormId).val(),
						'from'	:$('#'+this.requestFormFrom).val(),
						'to'	:$('#'+this.requestFormTo).val(),
						'selectDest':$('#selectDest').val(),
						'nRoom':$('#'+this.requestFormRoom).val(),
						'nAdult':$('#'+this.requestFormAdult).val(),
						'nChild':$('#'+this.requestFormChild).val(),
						'accommType':$('#'+this.requestAccommType).val(),
						'aDay':$('#aDay').val(),
						'aYear':$('#aYear').val(),
						'dDay':$('#dDay').val(),
						'dYear':$('#dYear').val(),
						'est':$('#'+this.requestFormId).val(),
						'nr':$('#'+this.requestFormRoom).val(),
						'availHotelRequest':$('#availHotelRequest').val(),
						'status':$('#status').val()
					};
		
//		var vars = {};
		
		return vars;
	};
	this.getHotelStars = function (strCat, strType, imageName ){

		// Check for HotelBeds Apartment
		var intStars;
		var strStars = "";
		var keyPattern = /(apt)|(ll)|(key)/i;
		if(keyPattern.test(strCat)){
			var img = /(star)/;
			imageName = imageName.replace(img,'key');
		}

	var s = " " + strCat;
		var pat = /([0-9]{1})/;
		var arr = s.match(pat);

			for(x=0;x< parseInt(s.match(pat));x++){

				switch (strType){
					case 'image':
						strStars += "<img src=\"/images/"+imageName+"\" align='absmiddle' border=0 alt=''  />";
						break;

					case '*':
						strStars += "*";
						break;

					default:
						strStars += "<img src=\"/images/"+imageName+"\" align='absmiddle' border=0 alt='' width=17 height=17 />";
						break;

				}

		}

		return strStars;
	};
	
}
