﻿// JScript File

	function BuildRooms(showadds)
	{
	    FillRoomTypes();
	    
	    if (showadds)
	    {FillRoomAddsForAllRooms();}
	    FillCurrencySymbolForAllRooms();
	    CalcPrices(showadds);
	    CalcTotalPrice(showadds);
	}
	
	function BuildChosenString(showadds){
		var _resultStr = "";
		var _roomId = -1;
		var _addId = -1;
		var _roomPrice = -1;
		
		for (var i=1; i<=roomNumber; ++i){
			if (document.getElementById("trRoom" + i).style.display == ""){  
				_objName = controlClientId_package_details+controlRoomSelectId + i + "_slct_RoomTypes";  
				_roomId = document.getElementById(controlClientId_package_details+controlRoomSelectId + i + "_slct_RoomTypes").value;
				if (showadds)
				{
				_addId = document.getElementById(controlClientId_package_details+controlRoomSelectId + i + "_slct_RoomAdds").value;}
				_roomPrice = document.getElementById(controlClientId_package_details+controlRoomSelectId + i + "_spn_totalPrice").innerHTML;

				if (_resultStr == "")
	                _resultStr = "RoomId=" + _roomId + ";" + "AddsId=" + _addId + ";" + "Price=" + _roomPrice;  
				else	
					_resultStr += "|" + "RoomId=" + _roomId + ";" + "AddsId=" + _addId + ";" + "Price=" + _roomPrice;  
			}	
		}	
		document.getElementById(controlClientId_package_details +"hidChosenRoomPkIds").value = _resultStr;
	}
	
	function CalcCurrentPrice(roomNumber, showadds){
		CalcPrice(roomNumber,showadds);
		CalcTotalPrice(showadds);
	}

	function CalcTotalPrice(showadds){
		var _totalPrice = 0;
		var _objName = "";
		var obj;
		var _flyDiscount = 0;
		
		for (i=1; i<=roomNumber; ++i){
			_objName = "trRoom" + i;
			if (document.getElementById(_objName).style.display == "") {
			    if (flyDiscount != "") {
			        var objRoomGuests = document.getElementById(controlClientId_package_details + controlRoomSelectId + i + "_slct_RoomTypes");
			        for (j = 0; j < objRoomGuests.length; ++j) {
			            if (objRoomGuests[j].selected == true) {
			                _vecPrices = objRoomGuests[j].id.split(";");
			                _flyDiscount = _flyDiscount + getRoom_flyDiscount(_vecPrices[1]);
			            }
			        }
			    }
			
				//_objName = controlClientId_package_details+controlRoomSelectId + i + "_txt_Price";
				_objName = controlClientId_package_details+controlRoomSelectId + i + "_spn_totalPrice";

				_totalPrice += parseFloat(document.getElementById(_objName).innerHTML, 10);
			}	
		}
		document.getElementById("spnTotalPrice").innerHTML = _totalPrice.toString();
		BuildChosenString(showadds);

		if (_flyDiscount > 0) {
		    document.getElementById("tr_Totalsrc").style.display = '';

		    document.getElementById("spnnewTotal").innerHTML = "$" + (parseInt(_totalPrice, 10) + _flyDiscount);
		    document.getElementById("spnTotalPrice").innerHTML = _totalPrice;
		}
	}


	function CalcPrices(showadds) {
		for (i=1; i<=roomNumber; ++i)
			CalcPrice(i, showadds);
	}
	
	function CalcPrice(_currRoomNumber, showadds){
		var _totalPrice = 0;
		var _priceRoomTypes = 0;
		var _priceRoomAdds = 0;
		
		_objName = controlClientId_package_details+controlRoomSelectId + _currRoomNumber + "_slct_RoomTypes";  
		var objRoomGuests = document.getElementById(_objName);
		for (j=0; j<objRoomGuests.length; ++j){
			if (objRoomGuests[j].selected == true){
				_vecPrices = objRoomGuests[j].id.split(";");
				_priceRoomTypes = parseFloat(_vecPrices[3], 10);
			}
		}

		if (showadds)
		{	_objName = controlClientId_package_details+controlRoomSelectId + _currRoomNumber + "_slct_RoomAdds";  
			var objBasis = document.getElementById(_objName);
			for (j=0; j<objBasis.length; ++j){
				if (objBasis[j].selected == true){
					_vecPrices = objBasis[j].id.split(",");
					_priceRoomAdds = parseFloat(_vecPrices[4], 10); 
				}
			}        }
		
		_totalPrice = parseFloat(parseFloat(_priceRoomTypes, 10) + parseFloat(_priceRoomAdds, 10)); 
		_objName = controlClientId_package_details+controlRoomSelectId + _currRoomNumber + "_spn_totalPrice";  
		var objPrice = document.getElementById(_objName);
		objPrice.innerHTML = _totalPrice.toString();
	}
	

	function FillRoomAddsForAllRooms(){
		for (i=1; i<=roomNumber; ++i){
			_objName =controlClientId_package_details+ controlRoomSelectId + i + "_slct_RoomTypes";  
			var _roomTypeSelectedCode = document.getElementById(_objName).value;
			FillRoomAddsForSpecificRoom(_roomTypeSelectedCode, i);
		}	 
	}
    function FillCurrencySymbolForAllRooms()
    {
        for (i=1; i<=roomNumber; ++i){
			var _objName =controlClientId_package_details+ controlRoomSelectId + i + "_lbl_CurrencySymbol"; 
			var _currencysymbol=document.getElementById(controlClientId_package_details + "hid_currencySymbol").value; 
			document.getElementById(_objName).innerHTML=_currencysymbol; 
		}	 
    }
	function FillRoomAddsForSpecificRoom(_currRoomTypeSelectedCode, _currRoomNumber){
		var _roomTypeCode = "";
		var _vecRoomGuestsCodeText = "";
		var _code = "";
		var _text = "";
		var _id = "";
		var _varRoomAdds = document.getElementById(controlClientId_package_details+"hid_RoomAdds");
		var _currencysymbol = document.getElementById(controlClientId_package_details + "hid_currencySymbol").value;
		  
		if (_varRoomAdds.value != ""){
			var _vecRoomAdds = _varRoomAdds.value.split("|");
			_objName =controlClientId_package_details+ controlRoomSelectId + _currRoomNumber + "_slct_RoomAdds";  
			ClearSelectControl(_objName);
			for (k=0; k<_vecRoomAdds.length; ++k){
				_vecRoomAddsCodeText = _vecRoomAdds[k].split(";");
				_roomTypeCode = _vecRoomAddsCodeText[0];
				if (_roomTypeCode == _currRoomTypeSelectedCode)
				{
					_code = _vecRoomAddsCodeText[1];
					_text = _vecRoomAddsCodeText[3];
					_id = _vecRoomAddsCodeText;
					_objName =controlClientId_package_details+ controlRoomSelectId + _currRoomNumber + "_slct_RoomAdds";  
					if (_code != "-1")
					{_text += " " + _currencysymbol;}
					
					InsertOptionsToSelectControl(_objName, _id, _code, _text);
					
				} 
			}  
		}	
	}

	function FillRoomTypes(){
		var _code = "";
		var _text = "";
		var _id = "";
		var _price = "";
		var _vecRoomTypesCodeText;
		var _objName = "";
		var _varRoomTypes = document.getElementById(controlClientId_package_details + "hid_RoomTypes");
        var _currencysymbol = document.getElementById(controlClientId_package_details + "hid_currencySymbol").value;

		if (_varRoomTypes.value != ""){
			var _vecRoomTypes = _varRoomTypes.value.split("|");
			for (j=1; j<=roomNumber; ++j){
			ClearSelectControl(controlClientId_package_details + controlRoomSelectId + j +  "_slct_RoomTypes");
			}
			for (i=0; i<_vecRoomTypes.length; ++i){  
				_vecRoomTypesCodeText = _vecRoomTypes[i].split(";");
				_code = _vecRoomTypesCodeText[0];
				_price = _vecRoomTypesCodeText[3];
				var _space = "";
				for (k=1; k<= 4 - _price.length; ++k){ _space = _space + "  ";}
				_text = _currencysymbol + _price + _space + " - " + _vecRoomTypesCodeText[2];
				_id = _vecRoomTypes[i];
				
				for (j=1; j<=roomNumber; ++j){
					_objName =controlClientId_package_details + controlRoomSelectId + j + "_slct_RoomTypes";  
					
					InsertOptionsToSelectControl(_objName, _id, _code, _text);
				}	 
			} 	 
		} 
	}
	
	
	
	function SetRooms(roomNum,_showAdds){
		for (i=1; i<=roomNumber; ++i){  
			document.getElementById("trRoom" + i).style.display = "none";
		}	 
		for (i=1; i<=roomNum; ++i){  
			document.getElementById("trRoom" + i).style.display = "";
        }

        CalcTotalPrice(_showAdds);
	}



	function getRoom_flyDiscount(_guesttype) {
	    var _guestnum = 0;
	    var _discount = 0;
	    
	    switch (_guesttype) {
	        case "SGL":
	        case "SG":
	        case "A":
	        case "C":
	            _guestnum = 1;
	            break;
	        case "AD1":
	        case "DBL":
	        case "DB":
	        case "AA":
	        case "AC":
	        case "CC":
	            _guestnum = 2;
	            break;
	        case "AD2":
	        case "CHD":
	        case "DB1":
	        case "DBB":
	        case "TRP":
	        case "TR":
	        case "AAA":
	        case "AAC":
	        case "ACC":
	        case "CCC":
	            _guestnum = 3;
	            break;
            default:
                _guestnum = 4;
	    }

	    _discount = 75 * _guestnum;
	    return _discount;
	}
