/*
	iSMARTS  Version
	Copyright (C) 2003.Comsoft Infotech Pvt. Ltd  All Rights Reserved.
	Module Name    		: Eticket
	File Name      			: E02_eticketweb_cancel_ticket.js
	Created By     			: Abhijeet S. Bhatambrekar
	Created Date   			: 20/05/2008
	Version						: 1.0
	Purpose	   				: Functions required for Web Cancel Tickets transaction
	Assumptions	   			:
	Links          				: E02_eticketweb_cancel_ticket.jsp
	Modified By   	 		: 
	Modified Date  			: 
	Reason	   					:
	Version						:
	Created New By 	 		: Prasanna Kalvit
	Created New Date  		: 20/04/2009
	Reason	   				: The Code for Paulo and Prasanna Files are merged into one.
	Version					: 1.1	
	Functions in File			: trimString(), checkblockedChars(), checkKeyPress(), onSearchPnr(), 
*/

/*
	Function Name: trimString()
	Author		 : Abhijeet S. Bhatambrekar
	Description	 : Removing trailing & initial Spaces .
	Parameter	 : Field Name,object of that field,String
	Return Type	 : String
*/

var _intClickCounter	=	0;

function trimString(s)
{
	while (s.substring(0,1) == ' ')
	{
    	s = s.substring(1,s.length);
	}
	while (s.substring(s.length-1,s.length) == ' ')
	{
    	s = s.substring(0,s.length-1);
	}
	return s;
}

/*
	Function Name: checkblockedChars()
	Author		 : Abhijeet S Bhatambrekar
	Description	 : This function is used for all validate for spacial charactors
	Parameter	 : String, TextBox Name, Message, String
	Return Type	 : Boolean
*/

function checkblockedChars(sString, sTextBoxName, strMessage, sBlockedLetters)
{
	var strAlphaLetters = sBlockedLetters;
	var strTemp = "";
	if(sString != "")
	{
		for(var i=0;i<strAlphaLetters.length;i++)
		{
			strTemp = strAlphaLetters.charAt(i);
			if(sString.indexOf(strTemp)!=-1)
			{
				alert("Please enter a valid "+strMessage+". Special character "+strTemp+" not allowed.");
		 		sTextBoxName.select();
				sTextBoxName.focus();
				return false;
			}
		}
	}
	else
	{
		alert("Please enter "+strMessage+".");
		sTextBoxName.select();
		sTextBoxName.focus();
		return false;
	}
	return true;
}

/*
	Function Name: checkKeyPress()
	Author		 : Abhijeet S. Bhatambrekar
	Description	 : If user has pressed enter key then transfer the control to the Cancel Search PNR page.
	Parameter	 : void
	Return Type	 : void
*/

function checkKeyPress(strActionType)
{
	if (window.event.keyCode == 13)
	{
		if(strActionType == "LOGIN")
			onLogin('RU');
		else if(strActionType == "SEARCH")
			onSearchPnr();
		else if(strActionType == "CALCULATE")
			onContinue("CALCULATE");
	}
}

/*
	Function Name: onSearchPnr()
	Author		 : Abhijeet S. Bhatambrekar
	Description	 : Validating the PNR number.
	Parameter	 : Field Name,object of that field,String
	Return Type	 : void
*/

function onSearchPnr()
{
	var documentObject	=	document.frmSearchPnr;
	var strUsername = documentObject.hidUserName.value;
	var blnDetails = false;

	if(trimString(documentObject.txtPnrNumber.value) == "")
	{
		alert("Please enter PNR number!");
		documentObject.txtPnrNumber.focus();
		return;
	}

	if(!checkblockedChars(trimString(documentObject.txtPnrNumber.value), documentObject.txtPnrNumber, "PNR Number", "~`!@#$%^&*()_-+={[}]|\:;\"'<,>.? "))
		return;

	if(strUsername == null || strUsername == "undefined" || strUsername == "null" || strUsername == "") {
		documentObject.hidUserType.value = "N";
		if(trimString(documentObject.txtFirstPsngrName.value) == "" && trimString(documentObject.txtContactNo.value) == ""
				&& trimString(documentObject.txtEmailId.value) == "") {
			blnDetails = true;
		}
	}
	else {
		documentObject.hidUserType.value = "R";
	}

	if(blnDetails) {
		if(trimString(documentObject.slctFromCity.value) == "" || trimString(documentObject.slctToCity.value) == "") {
			alert("PNR Number and at least one of the other details are mandatory. From City and To City are considered as one.");
			documentObject.txtFirstPsngrName.focus();
			return;
		}
	}
	
	if(trimString(documentObject.txtFirstPsngrName.value) != "")
	{
		if(!checkblockedChars(trimString(documentObject.txtFirstPsngrName.value), documentObject.txtFirstPsngrName, "First Passenger Name", "~`!@#$%^&*()_-+={[}]|\:;\"'<,>.?0123456789"))
			return;
	}

	if(trimString(documentObject.slctFromCity.value) != "" && trimString(documentObject.slctToCity.value) != "") {
		if(trimString(documentObject.slctFromCity.value) == trimString(documentObject.slctToCity.value)) {
			alert("From City and To City cannot be same.");
			documentObject.slctFromCity.focus();
			return;
		}
	}
	
	if(trimString(documentObject.txtContactNo.value) != "")
	{
		if(!checkblockedChars(trimString(documentObject.txtContactNo.value), documentObject.txtContactNo, ' Contact No','\'.%@~"*=#_$<>^|`?&ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz '))
			return;
	}

	if(trimString(documentObject.txtEmailId.value) != "")
	{
		if(!checkblockedChars(documentObject.txtEmailId.value, documentObject.txtEmailId, 'Email ID','~`#$%^&*|;?<>\' '))
			return;

		if(!isEmail(documentObject.txtEmailId, 'Email ID'))
			return;
	}

	documentObject.txtPnrNumber.value = trimString(documentObject.txtPnrNumber.value);
	documentObject.method = "post";
	documentObject.action = "eticketweb_cancel_ticket_process_page.jsp";
	documentObject.submit();
}

/*
	Function Name: checkCancelledSeats()
	Author		 : Abhijeet S. Bhatambrekar
	Description	 : On load event of Cancellation Summary Page, display the cancelled seats as checked and disable those.
	Parameter	 : void
	Return Type	 : void
*/

function checkCancelledSeats()
{
	var documentObject	=	document.forms[0];
	var selectedArr		=	documentObject.hidCancelledPkStr.value.split(",");
	var intRecordLength	=	0;

	if(typeof(documentObject.chkBkgdPk) != "undefined")
	{
		if(typeof(documentObject.chkBkgdPk.length) != "undefined")
		{
			intRecordLength	=	documentObject.chkBkgdPk.length;

			for(var intLoopCntr = 0; intLoopCntr < intRecordLength; intLoopCntr++)
			{
				for(var intInnerLoopCntr = 0; intInnerLoopCntr < selectedArr.length; intInnerLoopCntr++)
				{
					if(documentObject.chkBkgdPk[intLoopCntr].value == selectedArr[intInnerLoopCntr])
					{
						documentObject.chkBkgdPk[intLoopCntr].checked = true;
					}
				}
			}
		}
		else
		{
			for(var intInnerLoopCntr = 0; intInnerLoopCntr < selectedArr.length; intInnerLoopCntr++)
			{
				if(documentObject.chkBkgdPk.value == selectedArr[intInnerLoopCntr])
				{
					documentObject.chkBkgdPk.checked = true;
				}
			}
		}
	}
}

/*
	Function Name: onLogin()
	Author		 : Abhijeet S. Bhatambrekar
	Description	 : Login functionality.
	Parameter	 : User Type
	Return Type	 : void
*/

function onLogin(strUserType)
{
	var documentObject	=	document.frmCancelTktLogin;

	if(strUserType == "RU")
	{
		if(trimString(documentObject.txtUserName.value) == "")
		{
			alert("Please enter Login Id");
			documentObject.txtUserName.focus();
			documentObject.txtUserName.value = trimString(documentObject.txtUserName.value);
			return;
		}

		if(trimString(documentObject.txtUserPassword.value) == "")
		{
			alert("Please enter Password");
			documentObject.txtUserPassword.focus();
			documentObject.txtUserPassword.value = trimString(documentObject.txtUserPassword.value);
			return;
		}
	}
	else {

		if(trimString(documentObject.txtUserName.value) != "")
		{
			alert("Please click on Continue.");
			documentObject.txtUserName.focus();
			documentObject.txtUserName.value = trimString(documentObject.txtUserName.value);
			return;
		}

		if(trimString(documentObject.txtUserPassword.value) != "")
		{
			alert("Please click on Continue.");
			documentObject.txtUserPassword.focus();
			documentObject.txtUserPassword.value = trimString(documentObject.txtUserPassword.value);
			return;
		}
		document.forms[0].txtUserName.value = "";
		document.forms[0].txtUserPassword.value = "";
	}	
	documentObject.method = "post";
	documentObject.action = "loginController.do";
	documentObject.submit();
}

/*
	Function Name: onBack()
	Author		 : Abhijeet S. Bhatambrekar
	Description	 : Move to previous page functionality.
	Parameter	 : String containing action
	Return Type	 : void
*/

function onBack(strMode)
{
	if(strMode == 'DISPLAY')
	{
		document.forms[0].method = "post";
		document.forms[0].action = "eticketweb_cancel_ticket_search_pnr_no.jsp";
		document.forms[0].submit();
	}
	else if(strMode == 'CALCULATE')
	{
		document.forms[0].method = "post";
		document.forms[0].action = "eticketweb_cancel_ticket_pnr_details_page.jsp";
		document.forms[0].submit();
	}
}

/*
	Function Name: onContinue()
	Author		 : Abhijeet S. Bhatambrekar
	Description	 : Continue functionality.
	Parameter	 : String containing action
	Return Type	 : void
*/

function onContinue(strMode)
{
	var documentObject;
	var strCancelledSeatPkStr	=	"";
	var intRecordLength			=	0;
	var intCheckedRecordCntr	=	0;
	var strUserType				=	"";

	if(strMode == "SEARCH")
	{
		onSearchPnr();
	}
	else if(strMode == "DISPLAY")
	{
		documentObject	=	document.frmPnrDeatils;

		if(typeof(documentObject.chkBkgdPk) != "undefined")
		{
			if(typeof(documentObject.chkBkgdPk.length) != "undefined")
			{
				intRecordLength	=	documentObject.chkBkgdPk.length;

				for(var intLoopCntr = 0; intLoopCntr < intRecordLength; intLoopCntr++)
				{
					if(documentObject.chkBkgdPk[intLoopCntr].checked == true)
					{
						if(strCancelledSeatPkStr == "")
						{
							strCancelledSeatPkStr	=	documentObject.chkBkgdPk[intLoopCntr].value;
						}
						else
						{
							strCancelledSeatPkStr	=	strCancelledSeatPkStr + "," + documentObject.chkBkgdPk[intLoopCntr].value;
						}
						intCheckedRecordCntr++;
					}
				}
			}
			else
			{
				if(documentObject.chkBkgdPk.checked == true)
				{
					if(strCancelledSeatPkStr == "")
					{
						strCancelledSeatPkStr	=	documentObject.chkBkgdPk.value;
					}
					else
					{
						strCancelledSeatPkStr	=	strCancelledSeatPkStr + "," + documentObject.chkBkgdPk.value;
					}
					intCheckedRecordCntr++;
				}
			}
		}
		else
		{
			alert("No PNR Details Found!");
			return;
		}

		if(intCheckedRecordCntr == 0)
		{
			alert("Please select the seats to cancel.");
			return;
		}
		else
		{
			documentObject.hidCancelledPkStr.value	=	strCancelledSeatPkStr;
			documentObject.method					=	"post";
			documentObject.hidMode.value			=	"CALCULATE";
			documentObject.action					=	"eticketweb_cancel_ticket_summary_page.jsp";
			documentObject.submit();
		}
	}
	else if(strMode == "CALCULATE")
	{
		
		
		documentObject	=	document.frmPnrCancelSummary;
		documentObject.hidRefundAmount.value;
		if(_intClickCounter >= 1)
		{
			alert("Your request is in process. Please wait......");
			return;
		}

		if(documentObject.hidRefundAmount.value != "0.0")
		{
			if(trimString(documentObject.txtPassword.value) == "")
			{
				alert("Please enter Credit Note Password.");
				documentObject.txtPassword.focus();
				documentObject.txtPassword.select();
				return;
			}
			else if(trimString(documentObject.txtConfirmPassword.value) == "")
			{
				alert("Please enter Confirm Password.");
				documentObject.txtConfirmPassword.focus();
				documentObject.txtConfirmPassword.select();
				return;
			}
			
			else if(trimString(documentObject.txtPassword.value) != trimString(documentObject.txtConfirmPassword.value))
			{
				alert("Credit Note Password and Confirm Password should be same.");
				documentObject.txtConfirmPassword.focus();
				documentObject.txtConfirmPassword.select();
				return;
			}
		}
		if (documentObject.chkCancelTerms.checked!=true)
		{
			alert("Please read the Terms & Conditions carefully and accept the same before proceeding further.");
			documentObject.chkCancelTerms.focus();
			return;
		}
		//alert("Your request is in process. Please wait !")
		_intClickCounter++;
		documentObject.method			=	"post";
		documentObject.hidMode.value	=	"CANCEL";
		documentObject.action			=	"eticketweb_cancel_ticket_process_page.jsp";
		documentObject.submit();
	}
}

/*
	Function Name: fnSelectAll()
	Author		 : Abhijeet S. Bhatambrekar
	Description	 : This function is used to select all the records.
	Parameter	 : void
	Return Type	 : void
*/

function fnSelectAll()
{
	var obj = document.forms[0];
	var x='0';
	var xx='0';
	if(typeof(obj.chkBkgdPk) != "undefined")
	{
		for(var i=0; i<obj.chkBkgdPk.length; i++ )
		{
			xx='1';
		}
		if(xx=='0')
		{
			if(obj.chkBkgdPk.checked==true)
			{
				 obj.chkBkgdPk.checked=false;
			}
			else
			{
				obj.chkBkgdPk.checked=true;
			}
		}
		else
		{
			for(var i=0; i<obj.chkBkgdPk.length; i++)
			{
				if(obj.chkBkgdPk[i].checked==true)
				{
					x='1';
				}
				else
				{
					x='0';
				}
			}
			if (x=='0')
			{
				for(var i=0; i<obj.chkBkgdPk.length; i++)
				{
					obj.chkBkgdPk[i].checked=true;
				}
			}
			else
			{
				for(var i=0; i<obj.chkBkgdPk.length; i++)
				{
					obj.chkBkgdPk[i].checked=false;
				}
			}
		}
	}
}

/*
	Function Name: openChargesInfoPopup()
	Author		 : Abhijeet S. Bhatambrekar
	Description	 : This function is used to open Cancellation Charges Info popup.
	Parameter	 : String Service Type Pk
	Return Type	 : void
*/

function openChargesInfoPopup(strServiceTypePk)
{
	window.open('eticketweb_cancel_ticket_canellation_charges_info_popup.jsp?hidServiceTypePk='+strServiceTypePk,'','status=yes,scrollbars=yes,resizable=yes,width=700,height=300,left=0,top=0')
//	window.open('eticketweb_facilities_info_popup.jsp?hidSchedulePk=1599&hidLocationPk=0&hidFacilityType=V','','status=yes,scrollbars=yes,resizable=yes,width=700,height=400,left=0,top=0')
//	window.open('eticketweb_enroute_halts_info_popup.jsp?hidSchedulePk=1748','','status=yes,scrollbars=yes,resizable=yes,width=700,height=400,left=0,top=0')
//	window.open('eticketweb_schemes_info_popup.jsp?hidSchedulePk=1599','','status=yes,scrollbars=yes,resizable=yes,width=700,height=400,left=0,top=0')
//	window.open('eticketweb_pickup_drop_points_info_popup.jsp?hidSchedulePk=1599','','status=yes,scrollbars=yes,resizable=yes,width=700,height=400,left=0,top=0')
//	window.open('eticketweb_rates_info_popup.jsp?hidSchedulePk=1599','','status=yes,scrollbars=yes,resizable=yes,width=700,height=400,left=0,top=0')
}

function onCancelTerms()
{
	//var strObj			= document.frmPaymentDetail; 
	var strType			= "Cancellation";
	var strUrl = "eticketweb_ebooking_terms_and_conditions_popup.jsp?hidType="+strType;
	window.open(strUrl,'ISMARTS','status=yes,scrollbars=yes,resizable=yes,width=700,height=400,left=0,top=0');
	
}

/*function onOpenSmsWindow()
{
	var strContactNumber		= document.frmCancelTicketResult.hidContactNumber.value ;
	var strPaymentGatewayType	= document.frmCancelTicketResult.hidPaymentGatewayType.value ;
	var strCustomerName			= document.frmCancelTicketResult.hidCustomerName.value ;
	var strSMSFeatureEnable		= document.frmCancelTicketResult.hidSMSFeatureEnable.value ;

	var strUserName		        = document.frmCancelTicketResult.hidUname.value ;
	var strPassword		        = document.frmCancelTicketResult.hidPassword.value ;

	var strErrorFlag		    = document.frmCancelTicketResult.hidErrorFlag.value ;
	
	if(strErrorFlag == "NE")
    {
        if(strPaymentGatewayType == "BillDesk" && strCustomerName == "Paulo" && strSMSFeatureEnable == "Y")
        {
            if(strContactNumber != "" && strContactNumber.length==10)
            {
                var strMsgDispStr	= "";
                
                var strOnPnrNo		= document.frmCancelTicketResult.hidNewPnrNo.value;
                var strCnrNo		= document.frmCancelTicketResult.hidCnrNo.value;
                
                if(strOnPnrNo == "null" || strOnPnrNo == "" || strOnPnrNo == "-")
                {
                    strMsgDispStr	=	"Dear Passenger, Your ticket has been successfully cancelled. Your CNR No :"+strCnrNo+". Do travel with us again. "+strCustomerName+" Travels,Goa. Helpline: 08326637777";
                }
                else
                {
                    strMsgDispStr	=	"Dear Passenger, Your ticket has been successfully cancelled. Your CNR No is :"+strCnrNo+" [New PNR No : "+strOnPnrNo+"]. Do travel with us again. "+strCustomerName+" Travels,Goa. Helpline: 08326637777";
                }
                
                var brow = navigator.appName;

                strUrl = 'http://prioritysms.abstracking.com/pushsms.php?username='+strUserName+'&password='+strPassword+'&sender=Paulo&to='+strContactNumber+'&message='+strMsgDispStr;

                if(brow=="Netscape") 
                {
                    window.open(strUrl ,'iSMARTS','0, 0,dialog=yes, modal=yes, left=420,top=550,width = 195, height = 100, directories=no, menubar=no, resizable=no, scrollbars=no, status=no,toolbar=no, directories=no ,titlebar=no, location=no');
                }
                else
                {
                   var sFeatures="dialogHeight: 30 px; dialogLeft: 420 px; dialogTop: 550 px; dialogWidth: 195 px; help: no ; status: no; color: #FF00; font-family: Verdana, Arial, Helvetica, sans-serif;	font-weight: bold;	font-size: 12px; 	text-align: center; edge: sunken";
                   window.showModalDialog(strUrl , "iSMARTS",sFeatures) ;
                }
            }
        }
    }
}*/