// JScript File
var allSourceDestinations = null;
var httpDest=null;
var httpOnwardSeatLayout=null;
var httpReturnSeatLayout=null;
var httpGetPage=null;
var httpGetBusIDs = null;
var PageURL=null;
var httpRenderReturnMap=null;
var jtype = "onward";
var SeatsBlocked=false;
var ClearSeat=false;
var currentSeat = null;
var tempJType = null;
function fnOnClick(PageName)
{
    var newPageName = "";
    switch(PageName.toLowerCase())
    {
        case "aboutus.aspx":
            newPageName = "About_Us";
            break;
        case "advertise.aspx":
            newPageName = "AdvertiseWithUs";
            break;
        case "bustickets.aspx":
            newPageName = "";
            break;
        case "cancelticket.aspx":
            newPageName = "TicketCancel";
            break;
        case "careers.aspx":
            newPageName = "Career";
            break;  
        case "contactus.aspx":
            newPageName = "Contact_Us";
            break;
        case "faqs.aspx":
            newPageName = "Faq";
            break;
        case "feedback.aspx":
            newPageName = "YourFeedback";
            break;
        case "generaterss.aspx":
            newPageName = "RssFeeds";
            break;
        case "gmaps.aspx":
            newPageName = "Map";
            break;
        case "offers.aspx":
            newPageName = "AllOffers";
            break;
        case "printticket.aspx":
            newPageName = "TicketPrint";
            break;
        case "testimonials.aspx":
            newPageName = "Testimonial";
            break;
        case "travelguides.aspx":
            newPageName = "TravelGuide";
            break;
        case "updates.aspx":
            newPageName = "NewUpdates";
            break;
        case "viewlargemap.aspx":
            newPageName = "LargeMap";
            break;
        case "privacypolicy.aspx":
            newPageName = "Privacy_Policy";
            break;
        case "termsandconditions.aspx":
            newPageName = "Terms_Conditions";
            break;
	case "login.aspx":
            newPageName = "AgentLogin";
            break;
	case "registeragent.aspx":
            newPageName = "AgentRegistration";
            break;
	case "agent/viewtransactions.aspx":
	    newPageName = "Agent/ViewTransactions";
            break;
	case "agent/viewcancellations.aspx":
	    newPageName = "Agent/ViewCancellations";
            break;
        default:
            newPageName = PageName;
            break;
    }
    //if(newPageName != "")
        window.location.href = RelativeUrl + newPageName;
}

 
function fnShowView()
{
     
    document.getElementById("tblAddEdit").style.display = "";
    document.getElementById("tblView").style.display = "none";
    document.getElementById("tblSearch").style.display = "none";
} 
function fnCancel()
{
     document.getElementById("tblAddEdit").style.display = "none";
    document.getElementById("tblView").style.display = "";
    document.getElementById("tblSearch").style.display = "";
}  
function GetDestinations() { 
    var selectedSource = sourceList.value;   
    LoadDestinations(selectedSource);
    document.getElementById("hdnSrc").value = selectedSource; 
    return false;
}

function SaveDestValue() {
    document.getElementById("hdnDest").value = destList.value;    
    return false;
}

function fnSearchClick()
{
    var isValid = fnValidate();
    if(isValid==true)
    {     
        UpdateSessions("clear","true");
        RedirectToSearchBus("",true);
    
    }
}

function fnEmailContents()
{
    if(document.getElementById("imgLogo")!= null)
    {
        document.getElementById("imgLogo").src="cid:image1";
    }
    
    var prtDiv = document.getElementById("divPrintLayout");
     var prtEmail = document.getElementById(MasterPgCPHID +"_txtMail"); 
     
     prtEmail.text = prtDiv.innerHTML;
     
     __doPostBack('SendMail',prtEmail.text);
}

function DeSelectRadioBtn()
{
    if(document.getElementById("hdnPageLoading") != null)
        document.getElementById("hdnPageLoading").value = "";
    if(document.getElementById("rdoHidden") != null)
        document.getElementById("rdoHidden").checked=true;   
}

function DrpOnchange(param,obj)
{
     document.getElementById("hdnPageLoading").value = "loading";
     fnHideErrorMessage();
     var QS = "";
     if (param == "opr")
        QS = GetQsForPostBack("src,dest,DOJ,RDOJ,stype,btype,passenger,BP,RBP,ddl_bp,odrpid");
     else
     {
        QS = GetQsForPostBack("src,dest,DOJ,RDOJ,stype,btype,passenger,odrpid");
        
        if(getQueryStringParameter("jtype")== null || getQueryStringParameter("jtype") == jtype_onward)
        {
            document.getElementById(MasterPgID + "_hdnOnwardBP").value = "";
            RenderReturnMap(false,'ddlonchange');
        }
        else
        {
            document.getElementById(MasterPgID + "_hdnReturnBP").value = "";
            RenderReturnMap(true,'ddlonchange');
        }
     }
     QS += "&page=1";
     if(document.getElementById(MasterPgCPHID + "_hdnCondition").value.indexOf("sort=")>-1)
        QS += "&sort=" + getQueryStringParameter("sort",document.getElementById(MasterPgCPHID + "_hdnCondition").value);
     PostBackWithValue(QS);
     return false;
}

function GetQsForPostBack(param, isHome)
{
    if(param == null) param = "";
    var QueryString = "";
    var jtype_value = "";
    if((getQueryStringParameter("RDOJ") != "") && (getQueryStringParameter("jtype")== null || getQueryStringParameter("jtype") == jtype_onward))
        {
            jtype_value = jtype_onward;         
        }
        else if((getQueryStringParameter("RDOJ") != "") && (getQueryStringParameter("jtype") == jtype_return))
        {
            jtype_value = jtype_return;
           param = param.replace(",BP,",",");
        }
    if(param.indexOf("jtype") == -1)
    {    
        
         QueryString = ConstructQueryString(param,'ddlonchange','jtype',jtype_value,isHome);
    }
    else
    {
         QueryString = ConstructQueryString(param,'ddlonchange','','',isHome);
    }
   return QueryString;
}

function PostBackWithValue(QS)
{    
   document.getElementById(MasterPgCPHID + "_hdnCondition").value = QS;
   document.getElementById(MasterPgCPHID + "_dummylink").click();
}

function ReloadPageWithURL(URL)
{
    var newurl = ReWriteURL(URL);
    window.location.href = newurl;
}

function fnShowHideReturnDate(URL)
{
    var retDate = getQueryStringParameter("RDOJ",URL);  
    if(document.getElementById(MasterPgID + "_rdoOW") != null)  
        document.getElementById(MasterPgID + "_rdoOW").checked = true;  
    if (retDate != null && retDate != "")
    {
        document.getElementById("divReturn").style.display = "block";
        document.getElementById(MasterPgID + "_rdoRT").checked = true;       
        document.getElementById(MasterPgID + "_txtReturn").value = retDate;
    }
    var jtype = getQueryStringParameter("jtype",URL);
    if (jtype != null && jtype != "" && jtype.toLowerCase() == "return")
    {
        if(document.getElementById("trTabs")!= null)
            document.getElementById("trTabs").style.display = "";
    }
    else if(document.getElementById("trTabs")!= null)
        document.getElementById("trTabs").style.display = "none";
}

function fnSelectTrip(trip)
{
    fnHideErrorMessage();
   if(trip == "2")
   {
        document.getElementById("divReturn").style.display = "block";
   }
   else
   {
        document.getElementById("divReturn").style.display = "none";
   }
}

function fnLeftPaneSearchClick()
{
    var isValid = fnValidate();
    if(isValid==true)
    {     
        UpdateSessions("clear","true");
        RedirectToSearchBus('Opr,BP,jtype,ROpr,RBP,jtype,odrpid,rdrpid',false);
    
    }
}

function UpdateSessions(qs_names, qs_values)
{
    httpSession = createRequestObject();
    var Qs="";
    for(var i=0; i< qs_names.split(",").length; i++)
    {
        if(Qs == "")
            Qs = "?" + qs_names.split(",")[i] + "=" + qs_values.split("##")[i];
        else
            Qs += "&" + qs_names.split(",")[i] + "=" + qs_values.split("##")[i];
        
    }
    httpSession.open('GET',  RelativeUrl + 'SessionData.aspx' + Qs,false);    
    httpSession.send(null);
    if(qs_names.indexOf(",bpid")>-1 || qs_names.indexOf(",rbpid")>-1)
    {
        var result =  httpSession.responseText;
        return result;
    }
}

var DAY = 1000*60*60*24;
Date.prototype.addDays = function(num){
		return new Date((num*DAY)+this.valueOf());
	  }	
	
function fnShowErrorMessage(Message,ShowInLP)
{
    if (ShowInLP == null) ShowInLP = true;
    if(ShowInLP == true)
        if(document.getElementById("lblErrorMsg") != null)
         {
             document.getElementById("lblErrorMsg").innerHTML = Message;
             document.getElementById("lblErrorMsg").style.display="block";
         }
         
     if(document.getElementById(MasterPgID + "_tdleftsearch") != null)
         if(document.getElementById("lblMainErrorMsg") != null)
         {
             document.getElementById("lblMainErrorMsg").innerHTML = Message;
             document.getElementById("lblMainErrorMsg").style.display="block";
             document.getElementById("lblMainErrorMsg").focus();
         }
} 

function fnHideErrorMessage()
{
     if(document.getElementById("lblErrorMsg") != null)
     {
         document.getElementById("lblErrorMsg").innerText = "";
         document.getElementById("lblErrorMsg").style.display="none";
     }
     
     if(document.getElementById("lblMainErrorMsg") != null)
     {
         document.getElementById("lblMainErrorMsg").innerText = "";
         document.getElementById("lblMainErrorMsg").style.display="none";
     }
} 

function CustomDateValidation(enteredDate)
{
    //checking for future date
    var customdate=enteredDate.split("/");
    var tomorrowDate = parseInt(customdate[1],10) + 1; 
    var nextMonth = parseInt(customdate[0],10) + 1;
    var splitAndFormed=(customdate[2]+","+tomorrowDate+","+customdate[0]);			    
    var selectedDate=new Date(customdate[2],customdate[0]-1,tomorrowDate);
    if (selectedDate<new Date())
    {
        fnShowErrorMessage("The date selected should not be less than Today's date");        
        return false;
    }			  
    return true;
}

function ParseDate( str1 )
{
    // Parse the string in DD/MM/YYYY format
    re = /(\d{1,2})\/(\d{1,2})\/(\d{4})/;
    var arr = re.exec( str1 );
    return new Date( parseInt(arr[3]), parseInt(arr[2], 10) - 1, parseInt(arr[1], 10) );
}

	  
function  fnValidate()
{

    if(sourceList.value == '-1')
    {
        fnShowErrorMessage("Select the Source");
        return false;
    }
    if(destList.value == '-1')
    {
        fnShowErrorMessage("Select the Destination");
        return false;
    }
    if(sourceList.value == destList.value)
    {
        fnShowErrorMessage("Source and Destination should not be same");
        return false;
    }
    if(DateOfJourney.value =='')
    {
        fnShowErrorMessage("Select the Departure date");
        return false;
    }
    else 
    {
        var isValid=true;//CustomDateValidation(DateOfJourney.value);
        if(isValid == false)
            return false;
        else
        {
            var cur_date = new Date();
            var restriction_date = new Date().addDays(30);
            if(new Date(ParseDate(DateOfJourney.value)) > restriction_date)
            {
                fnShowErrorMessage("Chart is not open yet!");
                return false;
            }
            try{
                if(document.getElementById("divReturn").style.display != "none")
                {
                    if(Return.value =='')
                    {
                        fnShowErrorMessage("Select the Return date");
                        return false;
                    }
                    
                    var comp=compareDates(Return.value,DateOfJourney.value);
                    return comp
                } 
            }catch(ex){}
        }               
    }
    
    return true;   
}

   
function LoadDestinations(selectedSource) {
    if (selectedSource != '0' && selectedSource != '-1' && selectedSource != '-2' && selectedSource != '') {        
        httpDest = createRequestObject();
        httpDest.open('get',  RelativeUrl + 'Destinations.aspx?sourceid=' + selectedSource);
        httpDest.onreadystatechange = handleDestResponse;
        httpDest.send(null);        
    }   
}
function  compareDates(Return,DateOfJourney)
{
    var date1 = new Date(ParseDate(Return));
    var date2 = new Date(ParseDate(DateOfJourney));
    if(date1<=date2)
    {
    fnShowErrorMessage("Return date should be greater than Departure date");
    return false;
    }
    return true;
}

function handleDestResponse() {

    if (httpDest.readyState == 1) {
    }
    if (httpDest.readyState == 4) {
        var result = httpDest.responseText ;
        if(result!=null){
        loadDestinationsData(result);
        }
    }
}
function loadDestinationsData(result) {
    var sources = result;
    //set Dest List to empty list by setting lenght = 0
    destList.options.length = 0;
    var sourcelst = sources.split(';');
  
    for (var i = 0; i < sourcelst.length; i++) {
        destList.options[i] = new Option(sourcelst[i].split(',')[1], sourcelst[i].split(',')[0]);
    }
         if(document.getElementById("hdnDest").value != "")
            document.getElementById(MasterPgCPHID + "_ddlTo").value = document.getElementById("hdnDest").value;
        else
            destList.options[0].selected = true;
}
function getPreference(param){
 var fromQuery = getQueryStringParameter(param);
 if(!isNullOrEmpty(fromQuery))
    return fromQuery;
 var fromCookie = readCookie(param);
 if(!isNullOrEmpty(fromCookie))
    return fromCookie;
 return null;  
}

function getQueryStringParameter(name, ExistingURL) {
    var url = "";
      if( ExistingURL == null)
        url = document.getElementById(MasterPgID + "_hdnQueryString").value;
      else
        url = ExistingURL;
    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regexS = "[\\?&]" + name + "=([^&#]*)";
    var regex = new RegExp(regexS);
    var results = regex.exec(unescape(url));
    if (results == null) {
        return null;
    }
    else {
        return results[1];
    }
}

function UrlEncode(text) 
{		
	text=ReplaceAll(text, "?", "%3F");
	text=ReplaceAll(text, "=", "%3D");
	text=ReplaceAll(text, "&", "%26");
	text=ReplaceAll(text, " ", "+");
	text=ReplaceAll(text, ",", "%2c");
	return text;
}

function ReplaceAll(varb, replaceThis, replaceBy)
{	
	newvarbarray=varb.split(replaceThis);
	newvarb=newvarbarray.join(replaceBy);	
	return newvarb;
}

function ReWriteURL(URL, append_RelativeURL)
{
    if(append_RelativeURL == null) append_RelativeURL = true;
    var New_URL = "";
    var pageName = URL.split("?")[0];
    switch (pageName.toLowerCase())
    {
        case "search.aspx":
            pageName = "SearchResults";
            break;
        case "seatlayout.aspx":
            pageName = "SelectSeat";
            break;
        case "passengerdetails.aspx":
            pageName = "PassengerInfo";
            break;
    }
    
    var QS = URL.split("?")[1];
    New_URL = pageName;    
    var Checker = "src,dest,DOJ,RDOJ,Passenger,SType,BType,Opr,BP,ROpr,RBP,page,jtype,odrpid,rdrpid";
    for(var idx=0; idx < Checker.split(",").length; idx++)
    {
        var QS_Name = Checker.split(",")[idx];
        var QS_Value = getQueryStringParameter(QS_Name,URL);
        if((QS_Name == "SType" || QS_Name == "BType") && (QS_Value == null || QS_Value == ''))
            New_URL += "/" + "Any";   
            
        if((QS_Name == "Opr" || QS_Name == "BP") && (QS_Value == null || QS_Value == ''))
            New_URL += "/" + "-1";  
            
        if(getQueryStringParameter("RDOJ",URL) != "" && getQueryStringParameter("RDOJ",URL) != null) 
        { 
            if((QS_Name == "ROpr" || QS_Name == "RBP") && (QS_Value == null || QS_Value == ''))
                New_URL += "/" + "-1"; 
        }      
            
        if(QS_Value != null && trim(QS_Value) != "")
        {
            if (QS_Name == "DOJ" || QS_Name == "RDOJ")
            {
                New_URL += "/" + ReplaceAll(QS_Value,"/","-");
            }
            else
            {
                 New_URL += "/" + QS_Value;
            }
        }
    }
    if(append_RelativeURL == true)
        New_URL = RelativeUrl + New_URL;
    return New_URL;
}


function ChangeQueryStringValue(url,qsname,qsvalue)
{
    if (url.indexOf('?') == -1 )	 //If no querystring present
        return (url+"?"+qsname+"="+UrlEncode(qsvalue)); 
    else
    {		
        if ((url.indexOf("?"+qsname+"=") == -1 ) && (url.indexOf("&"+qsname+"=") == -1 )) 
	    {
		    return (url+"&"+qsname+"="+UrlEncode(qsvalue)); 
	    }
	    else
	    {
		    var replaceQSPrefix=(url.indexOf("?"+qsname+"=")==-1)?"&"+qsname+"=":"?"+qsname+"=";
		    var replaceQSSuffix=""; 
		    startpos=url.indexOf(replaceQSPrefix);			
		    for (a=(startpos+replaceQSPrefix.length);a<url.length;a++)
		    {
			    if (url.charAt(a)=='&') 
				    break;
			    else
				    replaceQSSuffix += url.charAt(a);
		    }
		    newurl=url.replace(replaceQSPrefix+replaceQSSuffix,replaceQSPrefix+UrlEncode(qsvalue));
		    return newurl;
		}	
    }		
}
            
/****************************** Filter bus Search Results *****************************/
  function showLargeMap()
{
    var url =RelativeUrl + "LargeMap";
    var src;
    if(jtype == jtype_return)
        src = document.getElementById(MasterPgID + "_ddlTo").item(document.getElementById(MasterPgID + "_ddlTo").selectedIndex).text;
    else
        src = document.getElementById(MasterPgID + "_ddlFrom").item(document.getElementById(MasterPgID + "_ddlFrom").selectedIndex).text;
    var bp = "";
    var ddl_bp='-1';
   if(jtype != "")
   {
           if(jtype == jtype_onward)
           {
                bp=getQueryStringParameter("BP");
           }
           else
           {
                bp=getQueryStringParameter("RBP");
           }
           if(bp == -1)
                if( document.getElementById(MasterPgCPHID + "_ddlBoardingPoint") != null)
                    ddl_bp = document.getElementById(MasterPgCPHID + "_ddlBoardingPoint").value;
    }
    else
    {
        if(getQueryStringParameter("BP")!= null)
            bp=getQueryStringParameter("BP");
        else
            ddl_bp = document.getElementById(MasterPgCPHID + "_ddlBoardingPoint").value;
        if(bp == -1)
            if( document.getElementById(MasterPgCPHID + "_ddlBoardingPoint") != null)
                ddl_bp= document.getElementById(MasterPgCPHID + "_ddlBoardingPoint").value;
    }
    
   url = url + "/" + src + "/" + bp + "/" + jtype + "/" + ddl_bp;
    var winLargeMap = window.open(url,"LargeMap");
}

function fnPageClick(cmd,pageindex)
{
    pageindex = parseInt(pageindex) + 1;  
    pageindex = pageindex + '';  
    var url = "?" + document.getElementById(MasterPgCPHID + "_hdnCondition").value;
    var QS = ChangeQueryStringValue(url,'page',pageindex); 
    QS = QS.substring(QS.indexOf("?") + 1);  
    PostBackWithValue(QS);
    return false;
}

function fnSort(value)
{
   var url =  "?" + document.getElementById(MasterPgCPHID + "_hdnCondition").value;
   var ImgID = GridClientID + "_ctl01_img_" + value;
   if(document.getElementById(ImgID) != null)
   {
        if(document.getElementById(ImgID).src.indexOf("sort-up.gif")>-1)
        {
            value += "@desc";
        }
        else if (document.getElementById(ImgID).src.indexOf("sort-down.gif")>-1)
        {
            value += "@asc";
        }
   }
   else
   {
        value += "@asc";
   }
   var QS = ChangeQueryStringValue(url,'sort',value); 
   QS = ChangeQueryStringValue(QS,'page','1'); 
   QS = QS.substring(QS.indexOf("?") + 1);   
   PostBackWithValue(QS);
   return false;
}

function RedirectToSearchBus(param, isHome)
{
    if(param == null) param = "";
    var QueryString = "";
    var jtype_value = "";
    if((getQueryStringParameter("RDOJ") != "") && (getQueryStringParameter("jtype")== null || getQueryStringParameter("jtype") == jtype_onward))
        {
            jtype_value = jtype_onward;         
        }
        else if((getQueryStringParameter("RDOJ") != "") && (getQueryStringParameter("jtype") == jtype_return))
        {
            jtype_value = jtype_return;
           
        }
    if(param.indexOf("jtype") == -1)
    {    
        
         QueryString = ConstructQueryString(param,'hdn','jtype',jtype_value,isHome);
    }
    else
    {
         QueryString = ConstructQueryString(param,'hdn','','',isHome);
    }
    if(param.indexOf("odrpid") > -1 || param.indexOf("rdrpid") > -1)
    {    
        
         QueryString = ConstructQueryString(param,'remove','','',isHome);
    }      
    var url = "";
    if(QueryString != "")
        url="Search.aspx?" + QueryString;
    else
         url="Search.aspx";
    ReloadPageWithURL(url);
}

function HandleSpecialChars(name)
{
    name = ReplaceAll(name,"&","|1|");
    name = ReplaceAll(name,"=","|2|");
    name = ReplaceAll(name,"?","|3|");
    name = ReplaceAll(name,"#","|4|");
    name = ReplaceAll(name,"+","|5|");
    return name;
}

/************************ Seat layout *****************************/
function fnShowSeatLayout(busid,operator_id, Ctrl, tJType)
{   
    tempJType = tJType;
    if(document.getElementById("hdnPageLoading") != undefined)
    {
        if(document.getElementById("hdnPageLoading").value == "loading")
        {
            if(document.getElementById("rdoHidden") != null)
                document.getElementById("rdoHidden").checked=true;   
            return;
        }
    }
    if (document.getElementById("rdo_" + busid) != undefined)
        document.getElementById("rdo_" + busid).checked=true;
//    if(document.getElementById(MasterPgCPHID + "_ddlBoardingPoint").value=="-1" && document.getElementById(MasterPgCPHID + "_ddlBoardingPoint").length > 1)
//    {
//        fnShowErrorMessage("Select a Boarding Point", false);
//        fnShowToolTip(Ctrl.id, busid);
//        document.getElementById("rdo_" + busid).checked=false;
//        return false;
//    }
//    else
//    {
        var bp_id = "";
        
        var selSeats="";
        var selRetSeats="";
        if (document.getElementById("textfield") != undefined)
            selSeats = document.getElementById("textfield").value;
        
        if (document.getElementById("returnTextField") != undefined)
            selRetSeats = document.getElementById("returnTextField").value;
        
        
         if(getQueryStringParameter("jtype") == null || getQueryStringParameter("jtype") == "" || getQueryStringParameter("jtype") == jtype_onward || tempJType==jtype_onward)
         {
            var bp_name =  document.getElementById(MasterPgCPHID + "_ddlBoardingPoint").value;
            bp_name = HandleSpecialChars(bp_name);
            bp_id = UpdateSessions("onwardseats,obusid,bpid",selSeats + "##" + busid + "##" + busid + "@@" + bp_name);
         }
         else
         {
            if (document.getElementById(MasterPgCPHID + "_ddlReturnBoardingPoint") != undefined)
                var bp_name =  document.getElementById(MasterPgCPHID + "_ddlReturnBoardingPoint").value;
            else if (document.getElementById(MasterPgCPHID + "_ddlBoardingPoint") != undefined)
                var bp_name =  document.getElementById(MasterPgCPHID + "_ddlBoardingPoint").value;
                
            bp_name = HandleSpecialChars(bp_name);
            bp_id = UpdateSessions("returnseats,rbusid,rbpid",selRetSeats+"##" + busid  + "##" + busid + "@@" + bp_name);
         }
        document.getElementById("hdnBusID").value=busid;
        document.getElementById("hdnOperatorID").value=operator_id;
        document.getElementById("hdnBpID").value=bp_id;
        if (Ctrl!="updateBP")
            RedirectToSeatLayout();
        else
            fnUpdateSummaryDetails('passengerdetails.aspx');
//    }
}



function GetOnwardLayoutDetails() {
 document.getElementById("hdnOperatorID").value=getQueryStringParameter("Opr",document.getElementById(MasterPgCPHID + "_hdnQS").value);
  document.getElementById("hdnBpID").value=getQueryStringParameter("BP",document.getElementById(MasterPgCPHID + "_hdnQS").value);
    var QueryString = ConstructQueryString('Opr,BP,ROpr,RBP','','jtype',jtype_onward,false,document.getElementById(MasterPgCPHID + "_hdnQS").value);           
    httpOnwardSeatLayout = createRequestObject();
    httpOnwardSeatLayout.open('get',  RelativeUrl + 'GetSeatLayoutDetails.aspx?' + QueryString);
    httpOnwardSeatLayout.onreadystatechange = handleOnwardLayoutResponse;
    httpOnwardSeatLayout.send(null);      
}

function GetReturnLayoutDetails() {
     document.getElementById("hdnOperatorID").value=getQueryStringParameter("ROpr",document.getElementById(MasterPgCPHID + "_hdnQS").value);
      document.getElementById("hdnBpID").value=getQueryStringParameter("RBP",document.getElementById(MasterPgCPHID + "_hdnQS").value);
    var QueryString = ConstructQueryString('Opr,BP,ROpr,RBP','','jtype',jtype_return, false,document.getElementById(MasterPgCPHID + "_hdnQS").value);        
    httpReturnSeatLayout = createRequestObject();
    httpReturnSeatLayout.open('get',  RelativeUrl + 'GetSeatLayoutDetails.aspx?' + QueryString);
    httpReturnSeatLayout.onreadystatechange = handleReturnLayoutResponse;
    httpReturnSeatLayout.send(null);      
}

function handleOnwardLayoutResponse() {

    if (httpOnwardSeatLayout.readyState == 1) {
    }
    if (httpOnwardSeatLayout.readyState == 4) {
        var result = httpOnwardSeatLayout.responseText ;
        if(result!=null){  
            var api = result.split("**")[0];
            var api_details = result.split("**")[1];
            switch(api)
            {
		case "0":
                case "1":
                    loadSeatLayoutAbhiBus(api_details,jtype_onward);        
                    break;
                case "2":  
                    loadSeatLayoutKallada(api_details,jtype_onward);                 
                    break;
            }        
        }
    }
}

function handleReturnLayoutResponse() {

    if (httpReturnSeatLayout.readyState == 1) {
    }
    if (httpReturnSeatLayout.readyState == 4) {
        var result = httpReturnSeatLayout.responseText ;
        if(result!=null){  
            var api = result.split("**")[0];
            var api_details = result.split("**")[1];
            switch(api)
            {
		case "0":
                case "1":
                    loadSeatLayoutAbhiBus(api_details,jtype_return);        
                    break;
                case "2":
                    loadSeatLayoutKallada(api_details,jtype_return);                   
                    break;
            }        
        }
    }
}

function loadSeatLayoutAbhiBus(details,jtype)
{
    if(details == "error")
    {
        window.location.href = RelativeUrl + "ErrorPage.aspx";
        return false;
    }
    var txtTextField;
    var tblSL; 
    var objOnwardPriceLabel;    
    var objUpperTr; 
    var objLowerHeadingTr;
    var objUpperHeadingTr;
    var tblUpperSL;
    
    if(jtype == jtype_onward)
    {
         txtTextField = document.getElementById("textfield");
         tblSL = document.getElementById("tblLowerSeatLayout"); 
         objOnwardPriceLabel = document.getElementById(MasterPgCPHID + "_lblOnwardPrice");
        
         objUpperTr = document.getElementById("trOnwardUpper");         
         tblUpperSL = document.getElementById("tblUpperSeatLayout"); 
         objLowerHeadingTr =  document.getElementById("trOnwardLowerHeader");
         objUpperHeadingTr =  document.getElementById("trOnwardUpperHeader");
    }
    else
    {
         txtTextField = document.getElementById("returnTextField");
         tblSL = document.getElementById("tblReturnLowerSeatLayout"); 
         objOnwardPriceLabel = document.getElementById(MasterPgCPHID + "_lblReturnPrice");
        
         objUpperTr = document.getElementById("trReturnUpper");         
         tblUpperSL = document.getElementById("tblReturnUpperSeatLayout"); 
         objLowerHeadingTr =  document.getElementById("trReturnLowerHeader");
         objUpperHeadingTr =  document.getElementById("trReturnUpperHeader");
    }
    
    if(navigator.appVersion.indexOf('MSIE')>-1) 
        tblSL.removeChild(tblSL.childNodes[0]);
    else
        tblSL.removeChild(tblSL.childNodes[1]);
    var arrDetails = details.split("$");
    var decksCount = parseInt(arrDetails[0].split("=")[1]);   
    var TotalRows = parseInt(arrDetails[1].split("=")[1]);
    var TotalCols = parseInt(arrDetails[2].split("=")[1]);
    var DividerRow = parseInt(arrDetails[3].split("=")[1]);
    var arrSeatDetails = arrDetails[4].split("=")[1].split("@");
    var onward_seats = arrDetails[6].split("=")[1];
    if (SeatsBlocked==false)
        txtTextField.value = onward_seats; 
    else
          currentSeat=jtype + "~" + onward_seats;  
    var seatCount = txtTextField.value.split(",").length;     
    var fare = parseInt(arrDetails[11].split("=")[1]); 
    var bfare = parseInt(arrDetails[12].split("=")[1]); 
    var arrExecSeatDetails = arrDetails[13].split("=")[1].split(",");  
   // var operatorName = arrDetails[14].split("=")[1];
    
    if(txtTextField.value == "")
        objOnwardPriceLabel.innerHTML = "0";
    else
       objOnwardPriceLabel.innerHTML = GetTotalFare(arrDetails[13].split("=")[1], txtTextField.value.split(","),bfare, fare);//parseInt(fare) * seatCount; 
              
    var tBodyObj = document.createElement("TBODY");   
    for (var row = 1; row <= TotalRows; row++)
    {
         var rowObj = document.createElement("TR");
         for (var col = 1; col <= TotalCols; col++)
         {
            var arrSeat = GetSeatDetailsFromArray(arrSeatDetails,row,col,arrExecSeatDetails);
            var colObj = document.createElement("TD");
            var strTitle = "";            
            if(arrSeat != null)
            {  
                if(parseInt(bfare) != parseInt(fare))
                {
                    if(arrSeat.is_executive_seat == true)
                        strTitle=" title='Fare: Rs." + parseInt(bfare) + "' ";
                    else
                        strTitle = " title='Fare: Rs." + parseInt(fare) + "' ";
                }
                /*if(arrSeat.is_executive_seat == true)
                    colObj.style.width = "20%";
                else
                    colObj.style.width = "10%";*/
                    
                if(arrSeat.availablity == "A")  
                {      
                    if((onward_seats != null) && ("," + onward_seats + ",").indexOf("," + arrSeat.seat_num + ",") > -1)  
                    {
                        colObj.innerHTML = "<a id='a_" + jtype + "_" + arrSeat.seat_num + "' " + strTitle + " onmouseover='this.style.cursor=\"pointer\";' onclick='javascript:fnSeatClick(\"" + arrSeat.seat_num + "\",\"" + jtype + "\"," + fare + "," + bfare + ",\"" + arrDetails[13].split("=")[1] + "\");'  class='selectedseat'>" + arrSeat.seat_num + "</a>";
                    }
                    else if (onward_seats != null)
                    {
                        colObj.innerHTML = "<a id='a_"  + jtype + "_" + arrSeat.seat_num + "' " + strTitle + " onmouseover='this.style.cursor=\"pointer\";' onclick='javascript:fnSeatClick(\"" + arrSeat.seat_num + "\",\"" + jtype + "\"," + fare + "," + bfare + ",\"" + arrDetails[13].split("=")[1] + "\");' class='available'>" + arrSeat.seat_num + "</a>";
                    }
                    else
                    {    
                        colObj.innerHTML = "<a id='a_"  + jtype + "_" + arrSeat.seat_num + "' " + strTitle + " onclick='javascript:fnSeatClick(\"" + arrSeat.seat_num + "\",\"" + jtype + "\"," + fare + "," + bfare + ",\"" + arrDetails[13].split("=")[1] + "\");' class='available'>" + arrSeat.seat_num + "</a>";
                     }
                }  
                else if(arrSeat.availablity == null)  
                { 
                    colObj.innerHTML = "<a class='notapplicableseat'>" + arrSeat.seat_num + "</a>";
                }              
                else
                {
                     if(arrSeat.gender=="F")
                        colObj.innerHTML = "<a class='femaleseatbooked'>" + arrSeat.seat_num + "</a>";
                    else
                        colObj.innerHTML = "<a class='currentseat'>" + arrSeat.seat_num + "</a>";
                 }
            }
            else
            {
                colObj.innerHTML = "<a class='notapplicableseat'></a>";
            }
           
             rowObj.appendChild(colObj);
            colObj=null;
         }  
          var cell_count1 = 0;
             if(row == 1 || row == upperTotalRows)
                 for(var k=0; k< rowObj.childNodes.length; k++)
                 {
                    if(rowObj.childNodes[k].childNodes[0].innerHTML=="")
                        cell_count1 += 1;
                 }   
             if(cell_count1 < rowObj.childNodes.length)         
                tBodyObj.appendChild(rowObj);  
         rowObj=null;
    }
    tblSL.appendChild(tBodyObj);
    
    if (decksCount > 1)
    {
        var upperTotalRows = parseInt(arrDetails[7].split("=")[1]);
        var upperTotalCols = parseInt(arrDetails[8].split("=")[1]) + TotalCols;
        var upperDividerRow = parseInt(arrDetails[9].split("=")[1]);
        var arrUpperSeatDetails = arrDetails[10].split("=")[1].split("@");
        
        objUpperTr.style.display="";
        objLowerHeadingTr.style.display="";
        objUpperHeadingTr.style.display="";       
       
        if(navigator.appVersion.indexOf('MSIE')>-1) 
            tblUpperSL.removeChild(tblUpperSL.childNodes[0]);
        else
            tblUpperSL.removeChild(tblUpperSL.childNodes[1]);
        var tBodyObj = document.createElement("TBODY");   
        for (var row = 1; row <= upperTotalRows; row++)
        {
             var rowObj = document.createElement("TR");
             for (var col = TotalCols + 1; col <= upperTotalCols; col++)
             {
                var arrSeat = GetSeatDetailsFromArray(arrUpperSeatDetails,row,col,arrExecSeatDetails);
                var colObj = document.createElement("TD");
                if(arrSeat != null)
                {  
                    if(arrSeat.availablity == "A")  
                    {      
                        if((onward_seats != null) && ("," + onward_seats + ",").indexOf("," + arrSeat.seat_num + ",") > -1)  
                        {
                            colObj.innerHTML = "<a id='a_"  + jtype + "_" + arrSeat.seat_num + "' " + strTitle + " onmouseover='this.style.cursor=\"pointer\";' onclick='javascript:fnSeatClick(\"" + arrSeat.seat_num + "\",\"" + jtype + "\"," + fare + "," + bfare + ",\"" + arrDetails[13].split("=")[1] + "\");' class='selectedseat'>" + arrSeat.seat_num + "</a>";
                        }
                        else if (onward_seats != null)
                        {
                            colObj.innerHTML = "<a id='a_"  + jtype + "_" + arrSeat.seat_num + "' " + strTitle + " onmouseover='this.style.cursor=\"pointer\";' onclick='javascript:fnSeatClick(\"" + arrSeat.seat_num + "\",\"" + jtype + "\"," + fare + "," + bfare + ",\"" + arrDetails[13].split("=")[1] + "\");' class='available'>" + arrSeat.seat_num + "</a>";
                        }
                        else
                        {    
                            colObj.innerHTML = "<a id='a_"  + jtype + "_" + arrSeat.seat_num + "' " + strTitle + " onclick='javascript:fnSeatClick(\"" + arrSeat.seat_num + "\",\"" + jtype + "\"," + fare + "," + bfare + ",\"" + arrDetails[13].split("=")[1] + "\");' class='available'>" + arrSeat.seat_num + "</a>";
                         }
                    }
                    else if(arrSeat.availablity == null)  
                    { 
                        colObj.innerHTML = "<a class='notapplicableseat'>" + arrSeat.seat_num + "</a>";
                    }
                    else
                    {
                        if(arrSeat.gender=="F")
                            colObj.innerHTML = "<a class='femaleseatbooked'>" + arrSeat.seat_num + "</a>";
                        else
                            colObj.innerHTML = "<a class='currentseat'>" + arrSeat.seat_num + "</a>";
                     }
                }
                else
                {
                    colObj.innerHTML = "<a class='notapplicableseat'></a>";
                }               
                rowObj.appendChild(colObj);
                colObj=null;
             }   
             var cell_count = 0;
             if(row == 1 || row == upperTotalRows)
                 for(var k=0; k< rowObj.childNodes.length; k++)
                 {
                    if(rowObj.childNodes[k].childNodes[0].innerHTML=="")
                        cell_count += 1;
                 }   
             if(cell_count < rowObj.childNodes.length)         
                tBodyObj.appendChild(rowObj);
             rowObj=null;
        }
        tblUpperSL.appendChild(tBodyObj);
    }
}
function fnSeatClick(seat_num,j_type,fare, bfare, strExecSeats)
{
    var PsgrCount = getQueryStringParameter("Passenger");  
    var txtTextField;
    var objOnwardPriceLabel;
    if(j_type == jtype_onward)
    {
         txtTextField = document.getElementById("textfield");
         objOnwardPriceLabel = document.getElementById(MasterPgCPHID + "_lblOnwardPrice");
    }
    else
    {
        txtTextField = document.getElementById("returnTextField");
        objOnwardPriceLabel = document.getElementById(MasterPgCPHID + "_lblReturnPrice");
    }
    if(currentSeat != null)
    {
        if(("," + txtTextField.value + ",").indexOf("," + currentSeat.split("~")[1] + ",")==-1)
        {
            if(ClearSeat == true)
            {
                document.getElementById("a_"  + currentSeat.split("~")[0] + "_" + currentSeat.split("~")[1]).className = "available";
            }
        }
    }
    if(("," + txtTextField.value + ",").indexOf("," + seat_num + ",")>-1)
    {
        document.getElementById("a_"  + j_type + "_" + seat_num).className = "available";
        SeatsBlocked=false;
        ClearSeat = false;
        currentSeat=null;
        txtTextField.value = txtTextField.value.replace(seat_num,"").replace(",,",",");                
        if(txtTextField.value.substring(0,1) ==",")
            txtTextField.value = txtTextField.value.substring(1);
    if(txtTextField.value.substring(txtTextField.value.length-1) ==",")
            txtTextField.value = txtTextField.value.substring(0,txtTextField.value.length-1);
    }
    else
    {
        if(txtTextField.value =="" || txtTextField.value.split(",").length < PsgrCount)
        {
            if(txtTextField.value=="")
                txtTextField.value = seat_num;
            else
                txtTextField.value += "," + seat_num;
            document.getElementById("a_"  + j_type + "_" + seat_num).className = "selectedseat";            
        } 
    } 
    
    var seatCount = txtTextField.value.split(",").length; 
    var total_fare = GetTotalFare(strExecSeats, txtTextField.value.split(","),bfare, fare);
    if(j_type == jtype_onward)
        UpdateSessions("onwardseats,ofare",txtTextField.value + "##" + total_fare);  
    else
        UpdateSessions("returnseats,rfare",txtTextField.value + "##" + total_fare);  
    
    if(txtTextField.value == "")
        objOnwardPriceLabel.innerHTML = "0";
    else
       objOnwardPriceLabel.innerHTML = total_fare; 
    
}

function GetSeatDetailsFromArray(arrSeatDetailsObj, row_num, col_num, arrExec)
{
    var arrObj = null;
    for(var cnt=0; cnt < arrSeatDetailsObj.length; cnt++)
    {
        var seatnum = trim(arrSeatDetailsObj[cnt].split("#*#")[0]);
        var row_col = trim(arrSeatDetailsObj[cnt].split("#*#")[1]);
        var seat_berth = trim(arrSeatDetailsObj[cnt].split("#*#")[2]);
        var availablitiy = trim(arrSeatDetailsObj[cnt].split("#*#")[3]);         
        var gender = "";
        var is_executive_seat = false;
        try{
            gender = trim(arrSeatDetailsObj[cnt].split("#*#")[4]); 
        }catch(ex){}
        try{                  
            is_executive_seat = isExecutiveSeat(seatnum, arrExec);
        }catch(ex){}
        if(row_col == row_num + "-" + col_num)
        {
            arrObj = new Seat(seatnum, row_num, col_num, seat_berth, availablitiy, gender, is_executive_seat);
            break;
        }
    }
    return arrObj;
}

function isExecutiveSeat(seat_num, arrObj)
{
    for(var u=0; u<arrObj.length; u++)
    {
        if(arrObj[u] == seat_num)
            return true;
    }
    return false;
}

function GetTotalFare(strExecSeats, arrSelSeats, bFare, sFare)
{
    var fare_total = 0;   
    for(var v=0; v< arrSelSeats.length; v++)
    {
        if(isExecutiveSeat(arrSelSeats[v], strExecSeats.split(",")) == true)
            fare_total += (bFare != "") ? bFare : sFare;
        else
            fare_total += sFare;
    }
    return fare_total;
}

function Seat(seat_num, row_num, col_num, seat_berth, availablity, gender, is_executive_seat)
{
    this.seat_num = seat_num;
    this.row_num = row_num;
    this.col_num = col_num;
    this.seat_berth = seat_berth;
    this.availablity = availablity;
    this.gender = gender;
    this.is_executive_seat = is_executive_seat;
}
function ConstructQueryString(param,OprValueFrom,newkeys,newvalues, isHomePage,URL)
{
    if(param == null) param = "";
    var QueryString = "";
    //source
    if(param.indexOf("src")==-1)   
        if(isHomePage == true)
        {
            try{
                if(document.getElementById(MasterPgCPHID + "_ddlFrom") != null)
                {
                    if(QueryString == "")
                        QueryString += "src=" + document.getElementById(MasterPgCPHID + "_ddlFrom").value;
                    else
                        QueryString += "&src=" + document.getElementById(MasterPgCPHID + "_ddlFrom").value;
                }
            }catch(ex){}
        }
        else
        {
            try{
                if(document.getElementById(MasterPgID + "_ddlFrom") != null)
                {
                    if(QueryString == "")
                        QueryString += "src=" + document.getElementById(MasterPgID + "_ddlFrom").value;
                    else
                        QueryString += "&src=" + document.getElementById(MasterPgID + "_ddlFrom").value;
                }
            }catch(ex){}
        }    
   
    
    //destination
    if(param.indexOf("dest")==-1)
        if(isHomePage == true)
        {
            try{
                if(document.getElementById(MasterPgCPHID + "_ddlTo") != null)
                {
                    if(QueryString == "")
                        QueryString += "dest=" + document.getElementById(MasterPgCPHID + "_ddlTo").value;
                    else
                        QueryString += "&dest=" + document.getElementById(MasterPgCPHID + "_ddlTo").value;
                }
            }catch(ex){}
        }
        else
        {
            try{
                if(document.getElementById(MasterPgID + "_ddlTo") != null)
                {
                    if(QueryString == "")
                        QueryString += "dest=" + document.getElementById(MasterPgID + "_ddlTo").value;
                    else
                        QueryString += "&dest=" + document.getElementById(MasterPgID + "_ddlTo").value;
                }
            }catch(ex){}
        }   
     
    //date of journey
    if(param.indexOf("DOJ")==-1)
        if(isHomePage == true)
        {
            try{
                if(document.getElementById(MasterPgCPHID + "_txtDateOfJourney") != null)
                {
                    if(QueryString == "")
                        QueryString += "DOJ=" + document.getElementById(MasterPgCPHID + "_txtDateOfJourney").value;
                    else
                        QueryString += "&DOJ=" + document.getElementById(MasterPgCPHID + "_txtDateOfJourney").value;
                }
            }catch(ex){}
        }
        else
        {
            try{
                if(document.getElementById(MasterPgID + "_txtDateOfJourney") != null)
                {
                    if(QueryString == "")
                        QueryString += "DOJ=" + document.getElementById(MasterPgID + "_txtDateOfJourney").value;
                    else
                        QueryString += "&DOJ=" + document.getElementById(MasterPgID + "_txtDateOfJourney").value;
                }
            }catch(ex){}
        }
        
    //return date of journey
    if(param.indexOf("RDOJ")==-1)
        if(document.getElementById("divReturn").style.display != "none")
        {
            if(isHomePage == true )
            {
                try{
                    if(document.getElementById(MasterPgCPHID + "_txtReturn") != null)
                    {
                        if(QueryString == "")
                            QueryString += "RDOJ="+ document.getElementById(MasterPgCPHID + "_txtReturn").value;
                        else
                            QueryString += "&RDOJ="+ document.getElementById(MasterPgCPHID + "_txtReturn").value;
                    }
                }catch(ex){}
            }
            else
            {
                try{
                    if(document.getElementById(MasterPgID + "_txtReturn") != null)
                    {
                         if(QueryString == "")
                            QueryString += "RDOJ="+ document.getElementById(MasterPgID + "_txtReturn").value;
                        else
                            QueryString += "&RDOJ="+ document.getElementById(MasterPgID + "_txtReturn").value;
                    }
                }catch(ex){}
            }    
        }
        
         //no. of passengers
    if(param.indexOf("passenger")==-1)
        if(isHomePage == true)
        {
            try{
                if(document.getElementById(MasterPgCPHID + "_ddlPassenger") != null)
                {
                    if(QueryString == "")
                        QueryString += "Passenger=" + document.getElementById(MasterPgCPHID + "_ddlPassenger").value;
                    else
                        QueryString += "&Passenger=" + document.getElementById(MasterPgCPHID + "_ddlPassenger").value;
                } 
            }catch(ex){}
        }
        else
        {
            try{
               if(document.getElementById(MasterPgID + "_ddlPassenger") != null)
                {
                    if(QueryString == "")
                        QueryString += "Passenger=" + document.getElementById(MasterPgID + "_ddlPassenger").value;
                    else
                        QueryString += "&Passenger=" + document.getElementById(MasterPgID + "_ddlPassenger").value;
                } 
            }catch(ex){}
        } 
       
    //seat type
    if(param.indexOf("stype")==-1)
        if(isHomePage == true)
        {
            try{
                if(document.getElementById(MasterPgCPHID + "_ddlSeatType") != null)
                {
                    if(QueryString == "")
                        QueryString += "SType=" + document.getElementById(MasterPgCPHID + "_ddlSeatType").value;
                    else
                        QueryString += "&SType=" + document.getElementById(MasterPgCPHID + "_ddlSeatType").value;
                }
            }catch(ex){}
        }
        else
        {
            try{
               if(document.getElementById(MasterPgID + "_ddlSeatType") != null)
                {
                    if(QueryString == "")
                        QueryString += "SType=" + document.getElementById(MasterPgID + "_ddlSeatType").value;
                    else
                        QueryString += "&SType=" + document.getElementById(MasterPgID + "_ddlSeatType").value;
                }
            }catch(ex){}
        }   
    
    //bus type
    if(param.indexOf("btype")==-1)
        if(isHomePage == true)
        {
            try{
                if(document.getElementById(MasterPgCPHID + "_ddlBusType") != null)
                {
                    if(QueryString == "")
                        QueryString += "BType=" + document.getElementById(MasterPgCPHID + "_ddlBusType").value;
                    else
                        QueryString += "&BType=" + document.getElementById(MasterPgCPHID + "_ddlBusType").value;
                }
            }catch(ex){}
        }
        else
        {
            try{
               if(document.getElementById(MasterPgID + "_ddlBusType") != null)
                {
                    if(QueryString == "")
                        QueryString += "BType=" + document.getElementById(MasterPgID + "_ddlBusType").value;
                    else
                        QueryString += "&BType=" + document.getElementById(MasterPgID + "_ddlBusType").value;
                }
            }catch(ex){}
        }   
    //operator
    try{
        if(param.indexOf("Opr")==-1)
        {
            var OprValue = '';
            if(document.getElementById("hdnOperatorID") != null)
            {
                OprValue = document.getElementById("hdnOperatorID").value;
            } 
           if(OprValueFrom != "ddlonchange" && (OprValue == '' && getQueryStringParameter("Opr") != null))
            OprValue = getQueryStringParameter("Opr");
                
            var qkey = '';
            var jtypeValue = "";
            var OprID = "";                   
            jtypeValue = getQueryStringParameter("jtype",URL);
            OprID = getQueryStringParameter("Opr",URL);                     
            
            if(jtypeValue == null || jtypeValue == "" || jtypeValue == jtype_onward)
            {
                qkey="Opr";
            }
            else if(jtypeValue == jtype_return && param.indexOf("ROpr")==-1)
            {
                qkey="ROpr";
            }
            if(qkey == "ROpr")
            {
               QueryString = ChangeQueryStringValue(QueryString,"Opr",OprID);
               QueryString = QueryString.replace("?","&");               
               if((document.getElementById(MasterPgCPHID + "_ddlOperator") == null && document.getElementById("hdnOperatorID") == null) && (OprValueFrom != "ddlonchange" && getQueryStringParameter("ROpr") != null))
                    OprValue = getQueryStringParameter("ROpr");             
             }
            if(qkey != "" && qkey == "Opr")
                if(QueryString == "")
                    QueryString += qkey + "=" + OprValue;
                else
                    QueryString += "&" + qkey + "=" + OprValue;  
        }
        
            
    }catch(e){}
   
      
    //boarding point
    try{
        if(param.indexOf("BP")==-1)
        {
            var BPValue = "";  
            if(document.getElementById("hdnBpID") != null)
            {
                BPValue = document.getElementById("hdnBpID").value;
            }           
             if(OprValueFrom != "ddlonchange" && (BPValue == '' && getQueryStringParameter("BP") != null))
                BPValue = getQueryStringParameter("BP");
           
            var qkey_bp = '';
            var jtypeValue_bp = "";           
            var BPID_bp = "";
            jtypeValue_bp = getQueryStringParameter("jtype",URL);           
            BPID_bp = getQueryStringParameter("BP",URL);
                  
            if(jtypeValue_bp == null || jtypeValue_bp == "" || jtypeValue_bp == jtype_onward || tempJType== jtype_onward)
            {
                qkey_bp="BP";
            }
            else if(jtypeValue_bp == jtype_return && param.indexOf("RBP")==-1)
            {
                qkey_bp="RBP";
            }
            if(qkey_bp == "RBP")
            {
               QueryString = ChangeQueryStringValue(QueryString,"BP",BPID_bp);
               QueryString = QueryString.replace("?","&");   
                if((document.getElementById(MasterPgCPHID + "_ddlOperator") == null && document.getElementById("hdnBpID") == null) && (OprValueFrom != "ddlonchange" && getQueryStringParameter("ROpr") != null))                         
                    BPValue = getQueryStringParameter("RBP");          
            }
            
                
            if (qkey_bp != "" && qkey_bp == "BP")
                if(QueryString == "")
                    QueryString += qkey_bp + "=" + BPValue;
                else
                    QueryString += "&" + qkey_bp + "=" + BPValue; 
        }       
    }catch(ex){}
    
    if(OprValueFrom == "ddlonchange")
    {
        if(document.getElementById(MasterPgCPHID + "_ddlOperator") != null)
        {
            var oprname = document.getElementById(MasterPgCPHID + "_ddlOperator").value;
            oprname = HandleSpecialChars(oprname);
           if(QueryString == "")
                QueryString += "ddl_opr" + "=" + oprname;
            else
                QueryString += "&" + "ddl_opr" + "=" + oprname;
        } 
        if(param.indexOf("ddl_bp")==-1) 
            if(document.getElementById(MasterPgCPHID + "_ddlBoardingPoint") != null)
            {
                 var bpname = document.getElementById(MasterPgCPHID + "_ddlBoardingPoint").value;
                bpname = HandleSpecialChars(bpname);
               if(QueryString == "")
                QueryString += "ddl_bp" + "=" + bpname;
            else
                QueryString += "&" + "ddl_bp" + "=" + bpname; 
            } 
           
    }
    
     if(qkey != "" && qkey == "ROpr")
        if(QueryString == "")
            QueryString += qkey + "=" + OprValue;
        else
            QueryString += "&" + qkey + "=" + OprValue;     
            
     if (qkey_bp != "" && qkey_bp == "RBP")
        if(QueryString == "")
            QueryString += qkey_bp + "=" + BPValue;
        else
            QueryString += "&" + qkey_bp + "=" + BPValue; 
    if(newkeys != null && newvalues != null)
    {
        for(var idx=0; idx < newkeys.split(",").length; idx++)
        {
            if(newkeys.split(",")[idx] != '')
            {
                if(QueryString == "")
                    QueryString += newkeys.split(",")[idx] + "=" + newvalues.split(",")[idx];
                else
                    QueryString += "&" + newkeys.split(",")[idx] + "=" + newvalues.split(",")[idx];
            }
        }        
    }
    var odrpid = getQueryStringParameter("odrpid",URL);
    if(odrpid != null && (OprValueFrom != "remove" || (param.indexOf("odrpid")==-1 && OprValueFrom == "remove")))
    {     
        QueryString = ChangeQueryStringValue(QueryString,"odrpid",odrpid); 
        QueryString = QueryString.replace("?","&");      
    }   
    var rdrpid = getQueryStringParameter("rdrpid",URL);
    if(rdrpid != null && (OprValueFrom != "remove" || (param.indexOf("rdrpid")==-1 && OprValueFrom == "remove")))
    {        
        QueryString = ChangeQueryStringValue(QueryString,"rdrpid",rdrpid); 
        QueryString = QueryString.replace("?","&");      
    }
    return QueryString;
}
function RedirectToSeatLayout()
{
    var QueryString = "";
    if((getQueryStringParameter("RDOJ") != "") && (getQueryStringParameter("jtype")== null || getQueryStringParameter("jtype") == jtype_onward))
    {
      QueryString = ConstructQueryString('','hdn','jtype',jtype_onward,false);
    }
    else if((getQueryStringParameter("RDOJ") != "") && (getQueryStringParameter("jtype") == jtype_return))
    {
        QueryString = ConstructQueryString('','hdn','jtype',jtype_return,false);
    }
    var url='';
    if(QueryString != "")
        url="SeatLayout.aspx?" + QueryString;
    else
         url="SeatLayout.aspx";
    ReloadPageWithURL(url);
}


function fnUpdateSummaryDetails(pName)
{
    var jtype = getQueryStringParameter("jtype");
    if(jtype == null || jtype == '')
        jtype = jtype_onward;
    var QueryString = '';   
    var cur_url = document.getElementById(MasterPgID + "_hdnQueryString").value;
    cur_url = ReplaceAll(cur_url,"\\","/");
    var pagename = cur_url.split("?")[0];
    pagename = pagename.substring(pagename.lastIndexOf("/") + 1);
    if (pName !=null)
        pagename = pName;
    var new_pagename = "";
    switch(pagename.toLowerCase())
    {
        case "seatlayout.aspx":
            new_pagename = "Search.aspx";
            break;
        case "passengerdetails.aspx":
            new_pagename = "SeatLayout.aspx";
            break;
    } 
    //below checks are required to remove the selected dropping point id from url, 
    //in case a new bus might be selected in search page after previous is clicked.
    if(tempJType == jtype_return)
        QueryString = ConstructQueryString('rdrpid','remove','','',false); 
    else if(jtype == jtype_onward && pagename.toLowerCase() == "seatlayout.aspx")
        QueryString = ConstructQueryString('odrpid','remove','','',false); 
    else
        QueryString = ConstructQueryString('','','','',false); 
        
    if(QueryString != "")
        QueryString += "&jtype=" + jtype;
    else
        QueryString += "jtype=" + jtype;        
       
   if(new_pagename != "")
    {
        var new_url = new_pagename + "?" + QueryString;
        httpSessionObj = createRequestObject();
        new_url = new_url + "&doaction=updatesummary";
       
        httpSessionObj.open('GET',  new_url,false);    
        httpSessionObj.send(null);       
        var strResText=httpSessionObj.responseText;
        
        var oText="";
        var rText="";
        if (strResText.split("@@").length >= 1)
            oText = strResText.split("@@")[0];
        if (strResText.split("@@").length >= 2)
            rText = strResText.split("@@")[1];
        
        if (oText != "")
        {
            if (oText.split("##").length >= 1 && oText.split("##")[0]!= "")
                document.getElementById(MasterPgCPHID + "_lblBPOnward").innerHTML = oText.split("##")[0];
            if (oText.split("##").length >= 2 && oText.split("##")[1]!= "")    
               document.getElementById(MasterPgCPHID + "_lblBPTimeOnward").innerHTML = oText.split("##")[1];
            if (oText.split("##").length >= 3 )
                document.getElementById(MasterPgCPHID + "_lblLandmarkOnward").innerHTML = oText.split("##")[2];
            if (oText.split("##").length ==2)
                document.getElementById(MasterPgCPHID + "_lblLandmarkOnward").innerHTML = "";
        }
        if (rText != "")
        {
            if (rText.split("##").length >= 1 && rText.split("##")[0]!= "")
                document.getElementById(MasterPgCPHID + "_lblBPReturn").innerHTML = rText.split("##")[0];
            if (rText.split("##").length >= 2 && rText.split("##")[1]!= "")    
               document.getElementById(MasterPgCPHID + "_lblBPTimeReturn").innerHTML = rText.split("##")[1];
            if (rText.split("##").length >= 3 )
                document.getElementById(MasterPgCPHID + "_lblLandmarkReturn").innerHTML = rText.split("##")[2];
			if (rText.split("##").length ==2)
                document.getElementById(MasterPgCPHID + "_lblLandmarkReturn").innerHTML = "";
        }
        
    }
}



function fnPreviousClick()
{
    var jtype = getQueryStringParameter("jtype");
    if(jtype == null || jtype == '')
        jtype = jtype_onward;
    var QueryString = '';   
    var cur_url = document.getElementById(MasterPgID + "_hdnQueryString").value;
    cur_url = ReplaceAll(cur_url,"\\","/");
    var pagename = cur_url.split("?")[0];
    pagename = pagename.substring(pagename.lastIndexOf("/") + 1);
    
    var new_pagename = "";
    switch(pagename.toLowerCase())
    {
        case "seatlayout.aspx":
            new_pagename = "Search.aspx";
            break;
        case "passengerdetails.aspx":
            new_pagename = "SeatLayout.aspx";
            break;
    } 
    //below checks are required to remove the selected dropping point id from url, 
    //in case a new bus might be selected in search page after previous is clicked.
    if(jtype == jtype_return && pagename.toLowerCase() == "seatlayout.aspx")
        QueryString = ConstructQueryString('rdrpid','remove','','',false); 
    else if(jtype == jtype_onward && pagename.toLowerCase() == "seatlayout.aspx")
        QueryString = ConstructQueryString('odrpid','remove','','',false); 
    else
        QueryString = ConstructQueryString('','','','',false); 
        
    if(QueryString != "")
        QueryString += "&jtype=" + jtype;
    else
        QueryString += "jtype=" + jtype;        
       
   if(new_pagename != "")
    {
        var new_url = new_pagename + "?" + QueryString;
        ReloadPageWithURL(new_url);
    }
}

function fnNextClick()
{
  
     if(document.getElementById("textfield").value == "")
    {
        if ((getQueryStringParameter("RDOJ") == null || getQueryStringParameter("RDOJ") == "")  && document.getElementById(MasterPgCPHID + "_ddlBoardingPoint").value == -1)
        {
            fnShowErrorMessage("Select the seat(s) and boarding point",false);
            document.getElementById(MasterPgCPHID + "_lblBPErrMsg").innerHTML="Select boarding point";
            document.getElementById(MasterPgCPHID + "_lblSeatErrMsg").innerHTML="Select the seat(s)";
            return;
        }
	else if ((getQueryStringParameter("RDOJ") != null || getQueryStringParameter("RDOJ") != "")  && document.getElementById(MasterPgCPHID + "_ddlBoardingPoint").value == -1)
        {
	    fnShowErrorMessage("Select the seat(s) and boarding point",false);
            document.getElementById(MasterPgCPHID + "_lblBPErrMsg").innerHTML="Select boarding point";
            document.getElementById(MasterPgCPHID + "_lblSeatErrMsg").innerHTML="Select the seat(s)";
            return;
	}
        else
        {
            fnShowErrorMessage("Select the seat(s)",false);
            document.getElementById(MasterPgCPHID + "_lblSeatErrMsg").innerHTML="Select the seat(s)";
            document.getElementById(MasterPgCPHID + "_lblBPErrMsg").innerHTML="";
            return;
        }
    }
    else if (document.getElementById(MasterPgCPHID + "_ddlBoardingPoint").value == -1)
    {
       if((getQueryStringParameter("RDOJ") == null || getQueryStringParameter("RDOJ") == "") && document.getElementById("textfield").value == "") 
       {
            fnShowErrorMessage("Select the seat(s) and boarding point",false);
            document.getElementById(MasterPgCPHID + "_lblBPErrMsg").innerHTML="Select boarding point";
            document.getElementById(MasterPgCPHID + "_lblSeatErrMsg").innerHTML="Select the seat(s)";
            return;
       }
       else
       {
            fnShowErrorMessage("Select boarding point",false);
            document.getElementById(MasterPgCPHID + "_lblBPErrMsg").innerHTML="Select boarding point";
            document.getElementById(MasterPgCPHID + "_lblSeatErrMsg").innerHTML="";
            return;
       }
    }  
     else if((getQueryStringParameter("RDOJ") != null && getQueryStringParameter("RDOJ") != "") && document.getElementById("returnTextField").value == "" && getQueryStringParameter("jtype") == jtype_return)
     {
        if (document.getElementById(MasterPgCPHID + "_ddlReturnBoardingPoint").value == -1)
        {
            fnShowErrorMessage("Select seat(s) for the return journey and return boarding point",false);
            document.getElementById(MasterPgCPHID + "_lblRtnSeatErrMsg").innerHTML="Select the seat(s)";
            document.getElementById(MasterPgCPHID + "_lblRtnBPErrMsg").innerHTML="Select boarding point";
            return;
        }
        else
        {
            fnShowErrorMessage("Select seat(s) for the return journey",false);
            document.getElementById(MasterPgCPHID + "_lblRtnSeatErrMsg").innerHTML="Select the seat(s)";
            document.getElementById(MasterPgCPHID + "_lblRtnBPErrMsg").innerHTML="";
            return;
        }
     }
     else if (document.getElementById(MasterPgCPHID + "_ddlReturnBoardingPoint").value == -1)
     {
        if((getQueryStringParameter("RDOJ") != null && getQueryStringParameter("RDOJ") != "") && document.getElementById("returnTextField").value == "" && getQueryStringParameter("jtype") == jtype_return)
        {
            fnShowErrorMessage("Select seat(s) for the return journey and return boarding point",false);
             document.getElementById(MasterPgCPHID + "_lblRtnSeatErrMsg").innerHTML="Select the seat(s)";
            document.getElementById(MasterPgCPHID + "_lblRtnBPErrMsg").innerHTML="Select boarding point";
            return;
        }
        else
        {
            fnShowErrorMessage("Select return boarding point",false);
            document.getElementById(MasterPgCPHID + "_lblRtnBPErrMsg").innerHTML="Select boarding point";
            document.getElementById(MasterPgCPHID + "_lblRtnSeatErrMsg").innerHTML="";
            return;
        } 
     }
 
     else if((getQueryStringParameter("RDOJ") != null && getQueryStringParameter("RDOJ") != "") && document.getElementById("textfield").value == "")
     {
        fnShowErrorMessage("Select seat(s) for the onward journey",false);
        return;
     }     
    else if((getQueryStringParameter("RDOJ") != null && getQueryStringParameter("RDOJ") != "") && (getQueryStringParameter("jtype")== null || getQueryStringParameter("jtype") == jtype_onward))
    {
        if(document.getElementById("textfield").value.split(",").length < parseInt(getQueryStringParameter("Passenger")))
        {
            fnShowErrorMessage("Select " + getQueryStringParameter("Passenger") + " seat(s)",false);
            return;
        }        
       var QueryString = ConstructQueryString('','hdn','jtype,odrpid',jtype_return + ',' + document.getElementById(MasterPgCPHID + "_ddlODroppingPoints").value, false); 
       var url = '';
       if(QueryString != "")
            url="Search.aspx?" + QueryString;
        else
            url="Search.aspx";
       ReloadPageWithURL(url);        
    }
    else
    {        
       if(getQueryStringParameter("jtype") == jtype_return)
        {
            if(document.getElementById("returnTextField").value.split(",").length < parseInt(getQueryStringParameter("Passenger")))
            {
                fnShowErrorMessage("Select " + getQueryStringParameter("Passenger") + " seat(s) for the return journey",false);
                return;
            }
        }
        
        if(document.getElementById("textfield").value.split(",").length < parseInt(getQueryStringParameter("Passenger")))
        {
            if(getQueryStringParameter("RDOJ") != null && getQueryStringParameter("RDOJ") != "") 
                fnShowErrorMessage("Select " + getQueryStringParameter("Passenger") + " seat(s) for the onward journey",false);                
            else
                fnShowErrorMessage("Select " + getQueryStringParameter("Passenger") + " seat(s)",false);
            return;
        }
       

		var jtypeval = "";
		var drpid = ""; var drpname = "";
		var odrpname = ""; var odrpid = "";
		if(getQueryStringParameter("RDOJ") != null && getQueryStringParameter("RDOJ") != "")
		{
			jtypeval = jtype_return;
			drpname = "rdrpid";
			drpid = document.getElementById(MasterPgCPHID + "_ddlRDroppingPoints").value;
			odrpname = "odrpid";
			odrpid = document.getElementById(MasterPgCPHID + "_ddlODroppingPoints").value;
		}
		else
		{
			jtypeval = jtype_onward;
			drpname = "odrpid";
			drpid = document.getElementById(MasterPgCPHID + "_ddlODroppingPoints").value;
		}
          
       var QueryString = ConstructQueryString('','hdn','jtype,' + drpname + ',' + odrpname,jtypeval + ',' + drpid + ',' + odrpid, false); 
       var url = '';
       if(QueryString != "")
            url = "PassengerDetails.aspx?" + QueryString;
        else
            url = "PassengerDetails.aspx";
       ReloadPageWithURL(url);    
    }
}
/***************************** Common functions ***************************/
function RenderReturnMap(toggle,ddlonchange)
{
    var BP = "";
    httpRenderReturnMap = createRequestObject();
    if(toggle == true)
    {
        jtype = jtype_return;
        document.getElementById("tabOnward").className = "";
        document.getElementById("tabReturn").className = "current";
    }
    else
    {
        jtype = jtype_onward;
        document.getElementById("tabOnward").className = "current";
        document.getElementById("tabReturn").className = "";
    }
        
    if(jtype == jtype_return && document.getElementById(MasterPgID + "_hdnReturnBP").value != "")
        RebindMap(document.getElementById(MasterPgID + "_hdnReturnBP").value);
    else if(jtype == jtype_onward && document.getElementById(MasterPgID + "_hdnOnwardBP").value != "")
        RebindMap(document.getElementById(MasterPgID + "_hdnOnwardBP").value);
    else
    {
        var QS = ConstructQueryString('',ddlonchange,'jtype',jtype,false);
        httpRenderReturnMap.open('get',  RelativeUrl + 'SessionData.aspx?RMap=' + toggle + '&' + QS);    
        httpRenderReturnMap.onreadystatechange = getBoardingPoints;
        httpRenderReturnMap.send(null);
    }
    return false; 
}

function getBoardingPoints()
{
    if (httpRenderReturnMap.readyState == 4) {   
      RebindMap(httpRenderReturnMap.responseText);
    }
}

function RebindMap(responseText)
{
    var strBP = responseText.split("###")[0];
    var strStatus = responseText.split("###")[1];
    var strJType = responseText.split("###")[2];
    
   document.getElementById(MasterPgID + "_hdnBPs_Maps").value = strBP;
   document.getElementById(MasterPgID + "_hdnStatus_Maps").value = strStatus;
   var frmeObj = document.getElementById(MasterPgID + "_frmMaps");
   frmeObj.src = RelativeUrl + "GMaps.aspx";
    if(strJType == jtype_onward)
        document.getElementById(MasterPgID + "_hdnOnwardBP").value = responseText;
    else
        document.getElementById(MasterPgID + "_hdnReturnBP").value = responseText;
}
   
function fnBrowser()
{
   if(navigator.appVersion.toUpperCase().indexOf('MSIE 6')>-1)
   {
          if(document.getElementById('divSearchBtn')!= null)
           {
             document.getElementById('divSearchBtn').className="ControlDivBtnIE6";
           } 
       
        
   } 

}

/*************** Login **********************/

function fnLogin()
{
    document.getElementById(MasterPgCPHID + "_rfvUserName").innerHTML="User Name required";
    document.getElementById(MasterPgCPHID + "_rfvPassword").innerHTML="Password required";
     Page_ClientValidate();
     if(Page_IsValid) 
        __doPostBack('login','');
}

function fnCancelLogin()
{
    document.getElementById(MasterPgCPHID + "_txtUserName").value="";
    document.getElementById(MasterPgCPHID + "_txtPassword").value="";
    document.getElementById(MasterPgCPHID + "_rfvUserName").innerHTML="";
    document.getElementById(MasterPgCPHID + "_rfvPassword").innerHTML="";
    document.getElementById(MasterPgCPHID + "_tdError").innerHTML="";
    
}
  
    
function fnPrint(TicketNo)
{
    if(TicketNo==null)
    {
       var prtContent = document.getElementById("divPrintLayout");  
        var WinPrint =window.open('PrintDetails','Print','');
    WinPrint.document.write('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><title>Print Details</title><link href="APP_THEMES/style.css" rel="stylesheet" type="text/css" /><style>body{background:none;}</style>');
    WinPrint.document.write('<script language="javascript" type="text/javascript">');
     WinPrint.document.write('function fnPrintData(){document.getElementById("spnPrint").style.display="none";window.print();document.getElementById("spnPrint").style.display="";window.close(); }</script>');
         WinPrint.document.write('</head><body><table width="80%" align="center"><tbody><tr><td>&nbsp;&nbsp;</td><td>');
        WinPrint.document.write(prtContent.innerHTML);
        WinPrint.document.write('</td></tr><tr><td>&nbsp;&nbsp;</td><td align="right" valign="middle" style="text-align: right"><p class="searchlinks" style="float: right;"><a onclick="fnPrintData();" ><span id="spnPrint">Print</span></a></p></td></tr></tbody></table></body></html>');
        WinPrint.document.close();
        WinPrint.focus(); 
    }
    else
    {
        //var url = 'PrintDetails.aspx?TicketNo='+TicketNo;
         var url = RelativeUrl + 'PrintDetails/'+ TicketNo;
         var WinPrint =window.open(url,'Print','');
    }

}
function fnCancelTicket(TicketNo)
{
     //var url = RelativeUrl + 'AgentCancel.aspx?TicketNo='+TicketNo;
     var url = RelativeUrl + 'Agent/AgentCancel/'+ TicketNo;
     if(confirm('Are you sure you want to cancel it ?'))
        window.location.href=url;
     
           
}
function btnSubmit_Click()
{
    if( trim(document.getElementById(MasterPgCPHID +"_txtTicketNo").value)=='')
    {
        document.getElementById("lblError").style.display="";
        document.getElementById("lblError").innerHTML = "Please enter the ticket number";
        
    }
    else
    {
      __doPostBack('ok','');
    }
    
}

   function handleStateResponse()
   {
       
        if (httpState.readyState == 4)
         {
            var result = httpState.responseText ;
            if(result!=null)
            {
                loadCityData(result);
            }
        }
   }
   
   function loadCityData(result)
   {
    var City = result;
   
    //set Dest List to empty list by setting lenght = 0
    
    var ddlCity= document.getElementById(MasterPgCPHID + "_ddlCity");
    ddlCity.options.length = 0;
    var Citylst = City.split(';');
        if(Citylst.length>0)
        {
            var idx = 0;
            ddlCity.options[idx] = new Option('Select','-1');
             for (var i = 0; i < Citylst.length; i++) {
             idx = idx + 1;
            ddlCity.options[idx] = new Option(Citylst[i].split(',')[0], Citylst[i].split(',')[1]);
             
        }
        ddlCity.options[0].selected = true;
        }
       
    }
    
    function fnConfirmBooking()
    {
         __doPostBack('confirm','');
    }
    
    function fnCancelBooking()
    {
        if(confirm('Your booking will be cancelled. Please note that the booked seats will be blocked for 10 minutes. Do you wish to continue?'))
        {
            history.back(); 
        }
    }
    
    function loadSeatLayoutKallada(details,jtype)
    {
        if(details == "error")
        {
            window.location.href = RelativeUrl + "ErrorPage.aspx";
            return false;
        }
        var txtTextField;
        var tblSL; 
        var objOnwardPriceLabel;    
        var objUpperTr; 
        var objLowerHeadingTr;
        var objUpperHeadingTr;
        var tblUpperSL;
        
        if(jtype == jtype_onward)
        {
             txtTextField = document.getElementById("textfield");
             tblSL = document.getElementById("tblLowerSeatLayout"); 
             objOnwardPriceLabel = document.getElementById(MasterPgCPHID + "_lblOnwardPrice");
            
             objLowerHeadingTr =  document.getElementById("trOnwardLowerHeader");
        }
        else
        {
             txtTextField = document.getElementById("returnTextField");
             tblSL = document.getElementById("tblReturnLowerSeatLayout"); 
             objOnwardPriceLabel = document.getElementById(MasterPgCPHID + "_lblReturnPrice");
            
             objLowerHeadingTr =  document.getElementById("trReturnLowerHeader");
        }
        
        if(navigator.appVersion.indexOf('MSIE')>-1) 
            tblSL.removeChild(tblSL.childNodes[0]);
        else
            tblSL.removeChild(tblSL.childNodes[1]);
        var arrDetails = details.split("$");
        var decksCount = parseInt(arrDetails[0].split("=")[1]);   
        var TotalRows = parseInt(arrDetails[1].split("=")[1]);
        var LowerTotalColsRight = parseInt(arrDetails[2].split("=")[1]);
        var LowerTotalColsLeft = parseInt(arrDetails[3].split("=")[1]);
        var upperTotalRows = parseInt(arrDetails[4].split("=")[1]);
        var UpperTotalColsRight = parseInt(arrDetails[5].split("=")[1]);
        var UpperTotalColsLeft = parseInt(arrDetails[6].split("=")[1]);

        var TotalCols = parseInt(LowerTotalColsRight) + parseInt(LowerTotalColsLeft) + parseInt(UpperTotalColsRight) + parseInt(UpperTotalColsLeft) + 1; 

        var arrSeatDetails = arrDetails[7].split("=")[1].split("@");
        var selected_seats = arrDetails[8].split("=")[1];

        var onward_seats = selected_seats;
        if (SeatsBlocked==false)
            txtTextField.value = onward_seats; 
        else
              currentSeat=jtype + "~" + onward_seats;  
        
        var sfare = parseInt(arrDetails[9].split("=")[1]); 
        var sbfare = parseInt(arrDetails[10].split("=")[1]); 
        var dbfare = parseInt(arrDetails[11].split("=")[1]); 
        var showtooltip = false;
        
        if (parseInt(sfare) > 0)
        {
            if((parseInt(sbfare) > 0 && parseInt(sfare)!= parseInt(sbfare)) || (parseInt(dbfare) > 0 && parseInt(sfare)!= parseInt(dbfare)))
            {
                showtooltip = true;
            }
        }else if (parseInt(sfare) <= 0 && parseInt(sbfare) > 0 && parseInt(dbfare) > 0)
        {
            if((parseInt(sbfare) > 0 && parseInt(dbfare)!= parseInt(sbfare)) || (parseInt(dbfare) > 0 && parseInt(sbfare)!= parseInt(dbfare)))
            {
                showtooltip = true;
            }
        }
        
        if(txtTextField.value == "")
            objOnwardPriceLabel.innerHTML = "0";
        else
           objOnwardPriceLabel.innerHTML = GetTotalFareKallada(txtTextField.value.split(","),sfare, sbfare,dbfare);//parseInt(fare) * seatCount; 
                  //alert(q);
        var tBodyObj = document.createElement("TBODY");
         var blnCheck = true; 
       for (var col = TotalCols; col >=1 ; col--)
        {
             var rowObj = document.createElement("TR");            
             for (var row = 1; row <=TotalRows ; row++)
             {                
                var arrSeat = GetSeatDetailsFromArrayKallada(arrSeatDetails,row,col);
                if(col == TotalCols && row == TotalRows)
                {
                    //var arrSeatNext = GetSeatDetailsFromArrayKallada(arrSeatDetails,row,col+1); 
                    if(arrSeat.seat_berth != '')
                        blnCheck = false;
                }
                
                if (row == TotalRows && arrSeat!=null && arrSeat.seat_berth == '' && col < TotalCols && blnCheck == true)
                {
                    arrSeat = GetSeatDetailsFromArrayKallada(arrSeatDetails,row,col-1);                    
                }
                else if (row == TotalRows && arrSeat!=null && blnCheck == true)
                {
                   if (arrSeat.seat_berth == 'SB' || arrSeat.seat_berth == 'DB' )
                   {
                        arrSeat = null;
                   }
                }
                
                var colObj = document.createElement("TD");
                var strTitle = "";    
                var skiptd =false;        
                var selectedseatclass = "selectedseat";
                var availableclass = "available";
                var notapplicableseatclass = "notapplicableseat";
                var femaleseatbookedclass = "femaleseatbooked";
                var currentseatclass = "currentseat";
                var notapplicableseatclass = "notapplicableseat";
                
                
                if(arrSeat != null)
                {                 
                    if (arrSeat.seat_berth == 'SB' || arrSeat.seat_berth == 'DB' )
                    {
                        if (row == TotalRows)
                        {
                            colObj.setAttribute("rowSpan",2);
                            selectedseatclass = "vberthselectedseat";
                            availableclass = "vberthavailable"; 
                            notapplicableseatclass = "vberthnotapplicableseat"; 
                            femaleseatbookedclass = "vberthfemaleseatbooked"; 
                            currentseatclass = "vberthcurrentseat"; 
                            notapplicableseatclass = "vberthnotapplicableseat"; 
                        }
                        else
                        {
                            colObj.setAttribute("colSpan",2);
                            selectedseatclass = "berthselectedseat";
                            availableclass = "berthavailable"; 
                            notapplicableseatclass = "berthnotapplicableseat"; 
                            femaleseatbookedclass = "berthfemaleseatbooked"; 
                            currentseatclass = "berthcurrentseat"; 
                            notapplicableseatclass = "berthnotapplicableseat"; 
                        }   
                        
                    }
                    var seat_num_display = arrSeat.seat_num;
                    if(seat_num_display != '' && seat_num_display.toUpperCase() != "NA" && (sbfare !=0 || dbfare != 0))
                    {
                        //seat_num_display = seat_num_display + " (" + (arrSeat.seat_position.toUpperCase() == "S" ? "" : arrSeat.seat_position) + arrSeat.seat_berth + ")";
                        var strSeatTitle = '';
                        if(arrSeat.seat_position.toUpperCase() == "S")
                            strSeatTitle = "Lower ";
                        else if (arrSeat.seat_position.toUpperCase() == "L")
                            strSeatTitle = "Lower ";
                        else if(arrSeat.seat_position.toUpperCase() == "U")
                            strSeatTitle = "Upper ";
                        if(arrSeat.seat_berth.toUpperCase() == "S")
                            strSeatTitle += "Seat";
                        else if (arrSeat.seat_berth.toUpperCase() == "SB")
                            strSeatTitle += "Single Berth";
                        else if(arrSeat.seat_berth.toUpperCase() == "DB")
                            strSeatTitle += "Double Berth";
                            
                        strSeatTitle += "&#13;";
                            
                        if(arrSeat.seat_berth == 'DB')
                            strTitle=" title='" + strSeatTitle + "Fare: Rs." + parseInt(dbfare) + "' ";
                        else if(arrSeat.seat_berth == 'SB')
                            strTitle = " title='" + strSeatTitle + "Fare: Rs." + parseInt(sbfare) + "' ";
                        else
                            strTitle = " title='" + strSeatTitle + "Fare: Rs." + parseInt(sfare) + "' ";
                        if (showtooltip == false)
                            strTitle = '';
                    }
                    else
                    {
                        if(arrSeat.seat_berth == 'DB')
                            strTitle=" title='Fare: Rs." + parseInt(dbfare) + "' ";
                        else if(arrSeat.seat_berth == 'SB')
                            strTitle = " title='Fare: Rs." + parseInt(sbfare) + "' ";
                        else
                            strTitle = " title='Fare: Rs." + parseInt(sfare) + "' ";
                        if (showtooltip == false)
                            strTitle = '';
                    }
                        
                    if(arrSeat.availablity == "A")  
                    {      
                        if((onward_seats != null) && ("," + onward_seats + ",").indexOf("," + arrSeat.seat_num + ",") > -1)  
                        {
                            colObj.innerHTML = "<a id='a_" + jtype + "_" + arrSeat.seat_num + "' " + strTitle + " onmouseover='this.style.cursor=\"pointer\";' onclick='javascript:fnSeatClickKallada(\"" + arrSeat.seat_num + "\",\"" + jtype + "\"," + sfare + "," + sbfare + ",\"" + dbfare + "\");'  class='" + selectedseatclass + "'>" + seat_num_display + "</a>";
                        }
                        else if (onward_seats != null)
                        {
                            colObj.innerHTML = "<a id='a_"  + jtype + "_" + arrSeat.seat_num + "' " + strTitle + " onmouseover='this.style.cursor=\"pointer\";' onclick='javascript:fnSeatClickKallada(\"" + arrSeat.seat_num + "\",\"" + jtype + "\"," + sfare + "," + sbfare + ",\"" + dbfare + "\");' class='"+ availableclass + "'>" + seat_num_display + "</a>";
                        }
                        else
                        {    
                            colObj.innerHTML = "<a id='a_"  + jtype + "_" + arrSeat.seat_num + "' " + strTitle + " onclick='javascript:fnSeatClickKallada(\"" + arrSeat.seat_num + "\",\"" + jtype + "\"," + sfare + "," + sbfare + ",\"" + dbfare + "\");' class='"+ availableclass + "'>" + seat_num_display + "</a>";
                         }
                    }  
                    else if(arrSeat.availablity == null)  
                    { 
                        colObj.innerHTML = "<a class='"+ notapplicableseatclass + "'>" + seat_num_display + "</a>";
                    }              
                    else
                    {
                         if(arrSeat.gender=="F")
                            colObj.innerHTML = "<a class='"+ femaleseatbookedclass + "'>" + seat_num_display + "</a>";
                        else
                            colObj.innerHTML = "<a class='"+ currentseatclass + "'>" + seat_num_display + "</a>";
                     }
                     if (arrSeat.seat_berth == '')
                        skiptd = true;
                }
                else
                {
                    colObj.innerHTML = "<a class='"+ notapplicableseatclass + "'></a>";
                }
              if (skiptd != true)
                 rowObj.appendChild(colObj);
              
                colObj=null;
                skiptd = false;
             }  
             //TODO: Check the below functionality before integration.
              var cell_count1 = 0;
                 if(col == 1 || col == TotalRows)
                     for(var k=0; k< rowObj.childNodes.length; k++)
                     {
                        if(rowObj.childNodes[k].childNodes[0].innerHTML=="")
                            cell_count1 += 1;
                     }   
                 if(cell_count1 < rowObj.childNodes.length)         
                    tBodyObj.appendChild(rowObj);  
             rowObj=null;
        }
        tblSL.appendChild(tBodyObj);
    }
 function GetSeatDetailsFromArrayKallada(arrSeatDetailsObj, row_num, col_num)
{
    var arrObj = null;
    for(var cnt=0; cnt < arrSeatDetailsObj.length; cnt++)
    {
        var seatnum = trim(arrSeatDetailsObj[cnt].split("#*#")[0]);
        var row_col = trim(arrSeatDetailsObj[cnt].split("#*#")[1]);
        var seat_berth = trim(arrSeatDetailsObj[cnt].split("#*#")[2]);
        var seat_pos = trim(arrSeatDetailsObj[cnt].split("#*#")[3]);
        var availablitiy = trim(arrSeatDetailsObj[cnt].split("#*#")[4]);         
        var gender = "";
         try{
            gender = trim(arrSeatDetailsObj[cnt].split("#*#")[5]); 
        }catch(ex){}
        
        if (availablitiy == 'F' && gender == undefined)
            gender = 'F';
       
        if(row_col == row_num + "-" + col_num)
        {
            arrObj = new SeatKallada(seatnum, row_num, col_num, seat_berth, availablitiy, gender, seat_pos);
            break;
        }
    }
    return arrObj;
}
function SeatKallada(seat_num, row_num, col_num, seat_berth, availablity, gender, seat_position)
{
    this.seat_num = seat_num;
    this.row_num = row_num;
    this.col_num = col_num;
    this.seat_berth = seat_berth;
    this.availablity = availablity;
    this.gender = gender;
    this.seat_position = seat_position;
}

function GetTotalFareKallada(arrSelSeats, sFare, sbFare, dbFare)
{
    var fare_total = parseInt(0);   
    for(var v=0; v< arrSelSeats.length; v++)
    {
        if(arrSelSeats[v].indexOf('DB') > 0)
            fare_total += parseInt(dbFare);
        else if(arrSelSeats[v].indexOf('SB') > 0)
            fare_total += parseInt(sbFare);
        else
            fare_total += parseInt(sFare);
    }
    return fare_total;
}

function fnSeatClickKallada(seat_num,j_type,sfare, sbfare, dbfare)
{
    var PsgrCount = getQueryStringParameter("Passenger");  
    var txtTextField;
    var objOnwardPriceLabel;
    if(j_type == jtype_onward)
    {
         txtTextField = document.getElementById("textfield");
         objOnwardPriceLabel = document.getElementById(MasterPgCPHID + "_lblOnwardPrice");
    }
    else
    {
        txtTextField = document.getElementById("returnTextField");
        objOnwardPriceLabel = document.getElementById(MasterPgCPHID + "_lblReturnPrice");
    }
    if(currentSeat != null)
    {
        if(("," + txtTextField.value + ",").indexOf("," + currentSeat.split("~")[1] + ",")==-1)
        {
            if(ClearSeat == true)
            {
                document.getElementById("a_"  + currentSeat.split("~")[0] + "_" + currentSeat.split("~")[1]).className = "available";
            }
        }
    }
    if(("," + txtTextField.value + ",").indexOf("," + seat_num + ",")>-1)
    {
        if (document.getElementById("a_"  + j_type + "_" + seat_num).className.indexOf('vberth')== 0)
            document.getElementById("a_"  + j_type + "_" + seat_num).className = "vberthavailable";
        else if (document.getElementById("a_"  + j_type + "_" + seat_num).className.indexOf('berth')== 0)
            document.getElementById("a_"  + j_type + "_" + seat_num).className = "berthavailable";
        else
            document.getElementById("a_"  + j_type + "_" + seat_num).className = "available";
        
        SeatsBlocked=false;
        ClearSeat = false;
        currentSeat=null;
        txtTextField.value = txtTextField.value.replace(seat_num,"").replace(",,",",");                
        if(txtTextField.value.substring(0,1) ==",")
            txtTextField.value = txtTextField.value.substring(1);
        if(txtTextField.value.substring(txtTextField.value.length-1) ==",")
            txtTextField.value = txtTextField.value.substring(0,txtTextField.value.length-1);
    }
    else
    {
        if(txtTextField.value =="" || txtTextField.value.split(",").length < PsgrCount)
        {
            if(txtTextField.value=="")
                txtTextField.value = seat_num;
            else
                txtTextField.value += "," + seat_num;
            if (document.getElementById("a_"  + j_type + "_" + seat_num).className.indexOf('vberth') == 0)
                document.getElementById("a_"  + j_type + "_" + seat_num).className = "vberthselectedseat";
            else if (document.getElementById("a_"  + j_type + "_" + seat_num).className.indexOf('berth') == 0)
                document.getElementById("a_"  + j_type + "_" + seat_num).className = "berthselectedseat";             
            else
                document.getElementById("a_"  + j_type + "_" + seat_num).className = "selectedseat";             
        } 
    } 
    
    var seatCount = txtTextField.value.split(",").length; 
    var total_fare = GetTotalFareKallada(txtTextField.value.split(","),sfare,sbfare, dbfare);
    if(j_type == jtype_onward)
        UpdateSessions("onwardseats,ofare",txtTextField.value + "##" + total_fare);  
    else
        UpdateSessions("returnseats,rfare",txtTextField.value + "##" + total_fare);  
    
    if(txtTextField.value == "")
        objOnwardPriceLabel.innerHTML = "0";
    else
       objOnwardPriceLabel.innerHTML = total_fare; 
    
}
  
function fnShowToolTip(ctrlId, busID) {
    var divCtrls = document.getElementById(MasterPgCPHID + "_gvSearchResults").getElementsByTagName("div");
    for (var i = 0; i < divCtrls.length; i++) {
        var divID = divCtrls[i].id;
        if ($("#" + divID).attr("name") == "divToolTip") {
            var parent = divCtrls[i].parentNode;
            parent.removeChild(divCtrls[i]);
        }
    }
      var t = $("#" + ctrlId).offset().top;
      var l = $("#" + ctrlId).offset().left;

      $("#" + ctrlId).after("<div id='divMsg" + busID + "' name='divToolTip' class='divBoardingErrMsg' style='top:" + t + "; left:" + l + "'>Please select a boarding point before selecting the operator</div>");
}

/************This should be the last line in this file **************************/
if( typeof(Sys) != "undefined" && typeof(Sys.Application) != "undefined" )
{ Sys.Application.notifyScriptLoaded(); 
}

