// Component  (17 - Corporate Navigation)
function toggleSecMenu(show)
{
	var o = document.getElementById('secmenu');
	if (o)
	{
	if (show)
	{
	o.style.display = 'block';
	}
	else
	{
	o.style.display = 'none';
	}
	}
}


//Component (24- Login Box)
function Logout()
{
try {
	javascript:jsonrpc.JSONRPC_UserBean.LogoutUser();
	}
	catch(e){ 
		alert("Unable to Log you out at this time. Your session may have expired");
		location.href="/";
	}
}

/* used in profile_form.jsp */
function validateUser(UserName, Password, DestinationOnSuccess, DestinationOnFail)
{
try
	{
	var isLoggedIn = jsonrpc.JSONRPC_UserBean.LoginUser(UserName, Password, '%LANGUAGE%');
	if(isLoggedIn == true)
		{
		document.getElementById('WelcomeName').innerHTML="Welcome "+jsonrpc.JSONRPC_UserBean.getRealname();
		document.getElementById('LastLogin').innerHTML="Last Login "+jsonrpc.JSONRPC_UserBean.getLastLogin();
		if (DestinationOnSuccess==null)
			{
			location.href = '/mypanpac/index.html';
			}
		else if (DestinationOnSuccess=='refresh')
			{
			location.reload(true);
			}
		else
			{
			location.href = DestinationOnSuccess;
			}
		}
	else
		{
		if (DestinationOnFail==null)
			{
			location.href = '/mypanpac/help.html';
			}
		else if (DestinationOnFail=='refresh')
			{
			location.reload(true);
			}
		else
			{
			location.href = DestinationOnFail;
			}
		}
	}
catch(e)
	{
	// alert("We are sorry that we are unable to log you in at this time. Your session may have expired.") 
	location.href="/";
	}
	
}


//Component (67-Request for Proposal)
//Part-1 
function checkRPF(){  /* used in rpf_entry.jsp */
	if(ValidateAllFields()){
		document.rpf_form.submit();
	}
}


//Component (186-Reset Password)
function ResetPassword(Emailaddress, Password)  /* used in profile_form.jsp, badlogin.jsp, crm_details_sub_member.jsp */
{
	try
	{
		jsonrpc.JSONRPC_UserBean.ResetPassword(Emailaddress, Password, '%LANGUAGE%','/mypanpac/profile.html');
		location.href=jsonrpc.JSONRPC_UserBean.getURLOnFail();
	}
	catch(e)
	{
		alert(e);
		alert('We are sorry that we are unable to process your application at this time. Your session may have expired. Please try again');
		location.refresh();
	}
}

//Component (283-LP Member Panel BACK)
function validateForm() /*used in surveyreport.jsp */
{    
//var flag = ValidateAllFields("You have miss out the following");
// alert(flag);
if(true)
ValidateUser('logUserName','logPassword','%LANGUAGE%','/loyalty_programmes/member_profile.html','/index.html');

return false; //return direct will take care by JSONRPC thus return false
}


function ValidateUser(jvarUserName, jvarPassword, jvarLanguage, jvarForwardSuccess, jvarForwardFail)
{
var lgUserName = document.getElementById(jvarUserName).value;
var lgPassword = document.getElementById(jvarPassword).value;

var isLoggedIn = false;
try
{
	isLoggedIn = jsonrpc.JSONRPC_UserBean.LoginUser(lgUserName, lgPassword, jvarLanguage);
	
	if(isLoggedIn)
		location.href = jvarForwardSuccess;
	else
	{
		alert("Login failed, please register or try loging in again");
		location.href = jvarForwardFail;
	}
}
catch(e)
{
	alert("Connection error, please try again later");
	location.href='/index.html';
}

return isLoggedIn;
}


function Logout()  /*used in profile_form.jsp */
{
try {
	javascript:jsonrpc.JSONRPC_UserBean.LogoutUser();
	}
	catch(e){ 
		alert("Unable to Log you out at this time. Your session may have expired");
		location.href="/";
	}
}



//Component (252-js_SetCalendarCountryDate)
function setCountryLocalDate(codeName) /* used in check_abailability_form.jsp and protable_check_abailability_form.jsp */
{
   if(codeName != "" && codeName!=null) {
		for(var i = 0; i < aryHotelLocalDate.length; i++) {
			if(aryHotelLocalDate[i][LDATE_HOTEL_CODE] == codeName) {
				document.getElementById("dp_CheckInDate").value = aryHotelLocalDate[i][LDATE_HOTEL_DATE];
				SERVER_TODAY = new Date(aryHotelLocalDate[i][LDATE_HOTEL_DATE]);
				break;
			}
		}
    } else {
		var varDateToday = new Date();
		SERVER_TODAY = new Date(varDateToday.getFullYear(), varDateToday.getMonth(), varDateToday.getDate());
		var deptDate = new Date(SERVER_TODAY.getFullYear(), SERVER_TODAY.getMonth(), SERVER_TODAY.getDate()+1);
		var arrvDate = formatDate(SERVER_TODAY,"dd NNN yyyy");
		var depaday  = formatDate(deptDate,"dd NNN yyyy");
		
		document.getElementById("dp_CheckInDate").value  = arrvDate;
		document.getElementById("dp_CheckOutDate").value = depaday;
    }
}

//Component (308-1 of 4 Directory Map Entries)
function addLocation(_documentId, _title, _summary, _image, _longitude, _latitude , _uri, _address, _cityCatId, _catName)
{
	MapLocations.push(new Array(_documentId, _title, _summary, _image, _longitude, _latitude , _uri, _address, _cityCatId, _catName));
}
//Component (179-js_getGoogleMapEntries)
function addLocation(_documentId, _title, _summary, _image, _longitude, _latitude , _uri, _address, _cityCatId, _catName,_GMapMarkerImage)
{
	MapLocations.push(new Array(_documentId, _title, _summary, _image, _longitude, _latitude , _uri, _address, _cityCatId, _catName,_GMapMarkerImage));
}


//Component (795-Family Gathering Description)
function openFloorPlan(swf){
  window.open(swf, 'floorPlan', 'width=400,height=530,resizable=yes');
  return false;
}

//Component (824-Corporate Ads) , Component (834-Hotel Ads)
/* function showImage(src,clickFlag) { // used in insert_image_store.jsp, insert_mediastore_name.jsp 

if(!clickFlag) {
//var bg= $('#imageOptions img:eq('+ c2 +')').attr('src');
//$(".loader").css("backgroundImage", "url("+bg+")");
}

var largeImage = new Image();
$(largeImage).load(function() {
    $(this).hide().addClass('homegalleryPic');
    $(".loader").append(this);

    $(this).fadeIn(FADE_SPEED, function(){
        $("#location").text(src.attr("alt"));
        //$(".loader img").attr("onclick",src.attr("onclick"));
        if($(".loader img").length >1){
           $(".loader img:first-child").remove();
        }
     });              
});    

    $(largeImage).attr("src", src.attr("src"));
    
    var c = $("#imageOptions img").index(src);
    c2=c;

    if( c < e ){ c++; timer = setTimeout('showImage($("#imageOptions img:eq('+ c +')"),0)',TRANSITION_SPEED);}
    else { c=0; timer = setTimeout('showImage($("#imageOptions img:first"),0)', TRANSITION_SPEED); }

    $(".loader").unbind('click').click(function(){src.trigger('click');});
} */



//Component (116-Room Type JS), Component (117-Room Type JS), Component (120-Meeting RoomList JS)
//Part 1
function goLocation(){
  var url = document.getElementById("room_type").value;
  if(url!=""){
    window.location=url;
  }
}

//Component (116-Room Type JS)
//Part 2
/*
function RoomList()
{	

	var aryRoom = new Array();
	this.add = add;
	this.getOPTION = getOPTION;
	
	function add(jvarURI, jvarRoomName)
	{
		aryRoom.push(new Array(jvarURI, jvarRoomName));		
	}
	
	function getOPTION()
	{
		var strOPTION = "";
		for(var i = 0; i < aryRoom.length; i++)
		{
		strOPTION += "<option value='"+aryRoom[i][0]+"'>"+aryRoom[i][1]+"</option>";
		}
		return strOPTION;	
	}
	
	function getRoom(){
		return aryRoom;
	}
}
*/

//Component 155
function validateDate(jvarForm) /*used in check_availability_form.jsp and protable_check_availability_form.jsp */
{
		var DATE_YEAR  = 2;
		var DATE_MONTH = 1;
		var DATE_DAY   = 0;
		
		var inMonth    = 0;
		var outMonth   = 0;
		
		inDateStr  = jvarForm.dp_CheckInDate.value;
		outDateStr = jvarForm.dp_CheckOutDate.value;		
		
		var inArr  = inDateStr.split(" ");
		var outArr = outDateStr.split(" ");
		
		for(var i = 0; i < monthArrayShort.length; i++)
		{
		  if(monthArrayShort[i] == inArr[DATE_MONTH])
		  {
			  inMonth = i+1;
		  }
		  if(monthArrayShort[i] == outArr[DATE_MONTH])
		  {
			  outMonth = i+1;
		  }
		}
		
		inDate = new Date(inArr[DATE_YEAR], inMonth-1, inArr[DATE_DAY]);
		outDate = new Date(outArr[DATE_YEAR], outMonth-1, outArr[DATE_DAY]);
		
		if (inArr.length != 3) 
		{
			alert(SelectCheckInDate);
			jvarForm.dp_CheckInDate.focus();
			return false;
		}
		if (outArr.length != 3) 
		{
			alert(SelectCheckOutDate);
			jvarForm.dp_CheckOutDate.focus();
			return false;
		}
		if (inDateStr == "dd.mm.yyyy") 
		{
			alert(SelectCheckInDate);
			jvarForm.dp_CheckInDate.focus();
			return false;
		}
		if (outDateStr == "dd.mm.yyyy") 
		{
			alert(SelectCheckOutDate);
			jvarForm.dp_CheckOutDate.focus();
			return false;
		}

		if (inDate > outDate) 
		{
			alert(CheckInNotMoreThanCheckOut);
			return false;
		}
		if (inDate == outDate) 
		{
			alert(CheckCannotEqualCheckOut);
			return false;
		}
		var thisDay = new Date(SERVER_TODAY.getFullYear(), SERVER_TODAY.getMonth(), SERVER_TODAY.getDate());
		if ( inDate < thisDay ) {
			alert(NoCheckInDateFromPast);
			return false;
		} 	 
		return true;
} 
// date validation script ends ---------------    
 
function checkAvail() /* portable_check_availability_form.jsp */
{
    var formFlag = false;
    var dateFlag = validateDate(document.forms.availCheckFrm, 7);
    if(dateFlag)
    {
        if(isHotelSelected('hotelCode'))
        {
            formFlag = true; 
        }      
    }
    return formFlag;
}

function goToHotel(jvarObjId) /* used in portable_check_availability_form.jsp and check_availability_form.jsp */
{
    var _selectObj = document.getElementById(jvarObjId);
    
    if(isHotelSelectedForView(jvarObjId))
        location.href = getHotelURIByCodeName(_selectObj.value);
}

function isHotelSelectedForView(jvarObjId) /* used in portable_check_availability_form.jsp and check_availability_form.jsp */
{
    var _selectObj   = document.getElementById(jvarObjId);
    var _blnSelected = false;
    
    if(_selectObj.value == ""){
        alert("Please select a hotel.");
        }
    else {
         _blnSelected = true;     
    }
    return _blnSelected;    
}
function isHotelSelected(jvarObjId) /* used in portable_check_availability_form.jsp and check_availability_form.jsp */
{
    var _selectObj   = document.getElementById(jvarObjId);
    var _blnSelected = false;
	var _hotelvalue = false;
    
    if(_selectObj.value == ""){
        _hotelvalue = false;
    }
    else {
		_hotelvalue = true;
	}

	if(_hotelvalue){
		if(checkDaysStay(_selectObj.value, document.forms.availCheckFrm))
         _blnSelected = true;     
    }
	
	var promoCodeType = document.getElementById("promoCodeType").value;
	var promoCode = document.getElementById("promoCode").value;
	if((promoCode == "" && promoCodeType == "" ) || (promoCode != "" && promoCodeType != "" )) {
		if(!_hotelvalue)
			alert("Please select a hotel.");
		else
			return _blnSelected; 
	}
  	else {
		if(_hotelvalue)	
			alert("Please check your promo type and code.");
		else
			alert("Please select a hotel and check your promo type and code.");
	}
}


function getHotelURIByCodeName(jvarCodeName) /* used in portable_check_availability_form.jsp and check_availability_form.jsp */
{
    var _uri = "/";
    for(var i = 0; i < _aryHotels.length; i++)
    {
        if(_aryHotels[i][_HOTEL_CODE_NAME] == jvarCodeName)
        {
            _uri = _aryHotels[i][_HOTEL_URI];
            break;
        }
    }
    return _uri;
}

function checkDaysStay(jvarHotelId, jvarForm) /* used in portable_check_availability_form.jsp and check_availability_form.jsp */
{  
var DATE_YEAR  = 2;
		var DATE_MONTH = 1;
		var DATE_DAY   = 0;
		
		var inMonth    = 0;
		var outMonth   = 0;
		
		inDateStr  = jvarForm.dp_CheckInDate.value;
		outDateStr = jvarForm.dp_CheckOutDate.value;		
		
		var inArr  = inDateStr.split(" ");
		var outArr = outDateStr.split(" ");
		
		for(var i = 0; i < monthArrayShort.length; i++)
		{
		  if(monthArrayShort[i] == inArr[DATE_MONTH])
		  {
			  inMonth = i+1;
		  }
		  if(monthArrayShort[i] == outArr[DATE_MONTH])
		  {
			  outMonth = i+1;
		  }
		}
		
		inDate = new Date(inArr[DATE_YEAR], inMonth-1, inArr[DATE_DAY]);
		outDate = new Date(outArr[DATE_YEAR], outMonth-1, outArr[DATE_DAY]);
		
		if (inArr.length != 3) 
		{
			alert(SelectCheckInDate);
			jvarForm.dp_CheckInDate.focus();
			return false;
		}
		if (outArr.length != 3) 
		{
			alert(SelectCheckOutDate);
			jvarForm.dp_CheckOutDate.focus();
			return false;
		}
		if (inDateStr == "dd.mm.yyyy") 
		{
			alert(SelectCheckInDate);
			jvarForm.dp_CheckInDate.focus();
			return false;
		}
		if (outDateStr == "dd.mm.yyyy") 
		{
			alert(SelectCheckOutDate);
			jvarForm.dp_CheckOutDate.focus();
			return false;
		}

		if (inDate > outDate) 
		{
			alert(CheckInNotMoreThanCheckOut);
			return false;
		}
		if (inDate == outDate) 
		{
			alert(CheckCannotEqualCheckOut);
			return false;
		}
		var thisDay = new Date(SERVER_TODAY.getFullYear(), SERVER_TODAY.getMonth(), SERVER_TODAY.getDate());
		if ( inDate < thisDay ) {
			alert(NoCheckInDateFromPast);
			return false;
		}		 
		var diffDay = Math.abs(Math.round((outDate-inDate)/86400000)); 
                if(jsHotels.isMinDaysStay(jvarHotelId) && jsHotels.isMinDaysStayMessage(jvarHotelId)){ 
                    var minDays = jsHotels.getMinDaysStay(jvarHotelId);
                    var minDaysMessage = jsHotels.getMinDaysStayMessage(jvarHotelId);
                    if(minDays!=0 && diffDay < minDays){
                        overlib(minDaysMessage, CAPTION, JSMessages_ErrorMessage, CAPTIONFONTCLASS, 'ol_RMCaption', CLOSEFONTCLASS, 'ol_RMCaption',CLOSETEXT, 'X', TEXTFONTCLASS, 'overlib_reservationMessage', STICKY, OFFSETX, -150, OFFSETY, -140, CLOSECLICK, PADX, 10, PADY, 20);
                         $("#overDiv").insertBefore("#moreOptions");
                        return false;		
                    }
                }
                if(jsHotels.isMinDaysStay(jvarHotelId) && jsHotels.isMinDaysStayMessage(jvarHotelId)){
                    var maxDays = jsHotels.getMaxDaysStay(jvarHotelId);
                    var maxDaysMessage = jsHotels.getMaxDaysStayMessage(jvarHotelId);
                    if(maxDays!=0 && diffDay > maxDays){
			overlib(maxDaysMessage, CAPTION, JSMessages/ErrorMessage, CAPTIONFONTCLASS, 'ol_RMCaption', CLOSEFONTCLASS, 'ol_RMCaption',CLOSETEXT, 'X', TEXTFONTCLASS, 'overlib_reservationMessage', STICKY, OFFSETX, -150, OFFSETY, -140, CLOSECLICK, PADX, 10, PADY, 20);
						$("#overDiv").insertBefore("#moreOptions");
                        return false;	
                    }
                }
		return true;
}

//From component 152 Hotel Weather // by marvin
function show(){
	document.getElementById("otherDays").style.display="block";
	$("#show_hide_div p").html("<a href='javascript:hide();'>1 Day Forecast</a>"); //TODO Translate this
}
function hide(){
	document.getElementById("otherDays").style.display="none";
	$("#show_hide_div p").html("<a href='javascript:show();'>5 Day Forecast</a>"); //TODO Translate this
}
function fahrenheit(){
	$("#temperature_matrix").html("<a href='javascript:celsius();'>&deg;C</a> or &deg;F");
	for(var count=2;count<=6;count++){
		var countstr = String(count);
		$("#high"+countstr).html(highFahrenheitValue[count-2]+"&deg;");
		$("#low"+countstr).html(lowFahrenheitValue[count-2]+"&deg;");
	}
}
function celsius(){
	$("#temperature_matrix").html("&deg;C or <a href='javascript:fahrenheit();'>&deg;F</a>");
	for(var count=2;count<=6;count++){
		var countstr = String(count);
		$("#high"+countstr).html(highCelsiusValue[count-2]+"&deg;");
		$("#low"+countstr).html(lowCelsiusValue[count-2]+"&deg;");
	}
}


// Added by Marvin for Parkroyal Revamp. Do not delete.
function setListChildClassToCurrent(ulNodeID){
		var windowURL=window.location.href;
			windowURL=windowURL.replace("http://", "");
		var linkURL=windowURL.substring(windowURL.indexOf("/"));
		$("#"+ulNodeID + " li a[href="+linkURL+"]").parent().addClass("current");
}


function injectCol1(ulObj, base){
	$(ulObj).find("> li").each(function(i){
		var indexInner=i+1;
		if(indexInner == 1){
			$(this).addClass("col-1");
		}
		if(indexInner>base && indexInner%base==1)
			$(this).addClass("col-1");
	});
}

// RUNTIME STUFFs

var tempClass = "";
var hotelid = "";
var offerid = "";
var tempString = "";

$(function(){
	$(".has-toggle h2").click(function(){
		$(this).next().slideToggle();
		return false;
	});
	
	/*--for separate line--*/
 	$("#right-search").after("<hr />");  
	
	// runtime added by Marvin
	$(".list-4col").each(function(){injectCol1($(this), 4);});
	$(".list-3col").each(function(){injectCol1($(this), 3);});
	$(".list-2col").each(function(){injectCol1($(this), 2);});
});

$(function(){
	$("#form_buttonClear").click(function(){
		$("#career-attachment span").html("");
	});
});

/* for Checkavailability-tag form validation error show*/
$(function(){
	$("#search_CheckAvailabilityForm").click(function(){
	var selectedopt = $("#hotelCode_CheckAvailabilityForm option:selected").val();
	if(selectedopt == "" || selectedopt == undefined)
	{
		$('html,body').animate({scrollTop: 0});  
	}
});
});

$(function(){

/*** @ Offer Finder */
var d1 = $("#hotel-selector").html();
var d2 = $("#offer-selector").html();

$("#offers-list > li").each(function(index){
	var i = 1;
	var tempLength = $(this).find("li").length;
	$(this).find("li").each(function() {
		if(i > 3) i=1;
		$(this).addClass("col-"+i);
		i++;
	});
});
	
$("#hotel-selector").change(function() { //START Find available Offer Type of Selected Hotel
	hotelid = $(this).val();
	if(hotelid == "")
		$("#offer-selector").html(d2);
	else {
		$("#offer-selector").html(d2);
		tempString += "<option value=\"\"> - Select Type of Offers - </option>";
		$("#offers-list").find("ul").each(function() {
			$(this).find("li").each(function() {
				tempClass = $(this).attr("class").split(" ");
				
				if(tempClass[1].substring(1) == hotelid)
					$("#offer-selector").find("option").each(function() {
						if($(this).val() == tempClass[2].substring(1)) {
							
							if( tempString.indexOf($(this).val()) == -1 )
								tempString += "<option value=\""+$(this).val()+"\">"+$(this).html()+"</option>";
							
						}
							
					});
			});
		});
		$("#offer-selector").html(tempString);
		tempString = "";
	}
}); //END Find available Offer Type of Selected Hotel
	
$("#view-offers").click(function() {
		//$("#flyout-content-inner").remove();
		$("#offers-list").find("li").each(function() { 
			$(this).show(); 
			$(this).removeClass("col-1 col-2 col-3");
		});
		hotelid = $("#hotel-selector").val();
		offerid =$("#offer-selector").val();
		if(hotelid != "" || offerid != "") {
			
			$("#offers-list").find("ul").each(function() {
				var tempLength = $(this).find("li").length;
				var ctr = 0;									   
				$(this).find("li").each(function() {
					tempClass = $(this).attr("class").split(" ");
					if(hotelid != "")
						if(tempClass[1].substring(1) != hotelid)
							$(this).hide();
					if(offerid != "")	
						if(tempClass[2].substring(1) != offerid)
							$(this).hide();
				});
				var i=1;
				$(this).find("li").each(function() { 
					if($(this).css("display") == "none") ctr = ctr+1;
					else {
						if(i>3) i=1;
						$(this).addClass("col-"+i);
						i++;
					}
				});
				if(ctr == tempLength) $(this).parents("li").hide();
				ctr = 0;
			});
		} else {
			$("#offers-list > li").each(function(index){
				var j = 1;
				var tempLength = $(this).find("li").length;
				$(this).find("li").each(function() { 
					if(j>3) j=1;
					$(this).addClass("col-"+j);
					j++;
				});
			});
		}
		return false;
	});
});
