﻿function GetTripSlice(sessionId, offset, limit)
{
    Flygstolar.Services.AteSearch.GetSessionTrips(sessionId,offset,limit,GetTripSliceSuccess,GetTripSliceFailed);
}

function GetTripSliceSuccess(result){
    drawPaging($get('divPaging'),g_pageTrips.length, g_currentPage,false);
    drawPaging($get('divPagingBottom'),g_pageTrips.length, g_currentPage,true);
    if(result != 0 && result.length > 0){
        g_pageTrips[g_pageTripsOffset] = result;
        g_pageTripsOffset++;
        GetTripSlice(g_lastResponse.SessionId,(g_pageTripsOffset*g_pageLimit),g_pageLimit);
    } else{
        pagingComplete();
    }
}

function GetTripSliceFailed(result){
/*
    var msg= 'GetTripSliceFailed\r\n' + result.get_exceptionType() + "\r\n";
    msg += result.get_message() + "\r\n";
    msg += result.get_stackTrace();
    alert(msg);
    */
}

function clearSelection(id){
    ddl = document.getElementById(id);
    for (var i=0; i < ddl.length; i++) {
        ddl[i].selected = false;
    }
}

function setSelected(id,value){
    var ddl = document.getElementById(id);
    for (var i=0; i < ddl.length; i++) {
        if(ddl[i].value == value){
            ddl[i].selected = true;
        }
        else{
            ddl[i].selected = false;
        }
    }
}

function trim(s)
{
	return rtrim(ltrim(s));
}

function ltrim(s)
{
	var l=0;
	while(l < s.length && s[l] == ' ')
	{	l++; }
	return s.substring(l, s.length);
}

function rtrim(s)
{
	var r=s.length -1;
	while(r > 0 && s[r] == ' ')
	{	r-=1;	}
	return s.substring(0, r+1);
}

function getSelectedValue(id){
    var ddl = document.getElementById(id);
    return ddl.options[ddl.selectedIndex].value;
}

function getChildrenAges(childCount){
    var str = '';
    for(var i = 1; i <= childCount; ++i){
        str += getSelectedValue('ctl00_mainPlaceHolder_selChildAge_' + i) + ',';
    }
    return str;
}

function getChildrenAgesSmall(childCount){
    var str = '';
    for(var i = 1; i <= childCount; ++i){
        str += getSelectedValue('selChildAgeSmall_'+i) + ',';
    }
    return str;
}

function setChildrenAgesSelects(childCount, childrenAges){
    var arrAges = childrenAges.split(",");
    for(var i = 1; i <= childCount; ++i){
        var ddl = document.getElementById('selChildAgeSmall_'+i);
        
        
        setSelected('selChildAgeSmall_'+i,arrAges[i-1]);
        ddl.style.visibility = 'visible';
        ddl.style.display = 'block';
    }
    if(childCount > 0){
        var tbl = document.getElementById('tblChildAgesSmall');
        tbl.style.visibility = 'visible';
        tbl.style.display = 'block';
    }
    
}
//function added by excelasoft-Start
function setChildrenAgesSelectsNew(childCount, childrenAges){
    var arrAges = childrenAges.split(",");
    for(var i = 1; i <= childCount; ++i){
        //
        switch(i)
         {
         case 1:
             ddl = document.getElementById('ctl00_mainPlaceHolder_selChildAge_1');
             setSelected('ctl00_mainPlaceHolder_selChildAge_1',arrAges[i-1]);
             ddl.style.visibility = 'visible';
             ddl.style.display = 'block';
             break;
         case 2:
             ddl = document.getElementById('ctl00_mainPlaceHolder_selChildAge_2');
             setSelected('ctl00_mainPlaceHolder_selChildAge_2',arrAges[i-1]);
             ddl.style.visibility = 'visible';
             ddl.style.display = 'block';
              break;
          case 3:
             ddl = document.getElementById('ctl00_mainPlaceHolder_selChildAge_3');
             setSelected('ctl00_mainPlaceHolder_selChildAge_3',arrAges[i-1]);
             ddl.style.visibility = 'visible';
             ddl.style.display = 'block';
              break;
          case 4:
             ddl = document.getElementById('ctl00_mainPlaceHolder_selChildAge_4');
             setSelected('ctl00_mainPlaceHolder_selChildAge_4',arrAges[i-1]);
             ddl.style.visibility = 'visible';
             ddl.style.display = 'block';
              break;
          case 5:
             ddl = document.getElementById('ctl00_mainPlaceHolder_selChildAge_5');
             setSelected('ctl00_mainPlaceHolder_selChildAge_5',arrAges[i-1]);
             ddl.style.visibility = 'visible';
             ddl.style.display = 'block';
              break;
          case 6:
             ddl = document.getElementById('ctl00_mainPlaceHolder_selChildAge_6');
             setSelected('ctl00_mainPlaceHolder_selChildAge_6',arrAges[i-1]);
             ddl.style.visibility = 'visible';
             ddl.style.display = 'block';
              break;
          case 7:
             ddl = document.getElementById('ctl00_mainPlaceHolder_selChildAge_7');
             setSelected('ctl00_mainPlaceHolder_selChildAge_7',arrAges[i-1]);
             ddl.style.visibility = 'visible';
             ddl.style.display = 'block';
              break;
         }
    }
    if(childCount > 0){
        var tbl = document.getElementById('tblChildAges');
        tbl.style.visibility = 'visible';
        tbl.style.display = 'block';
    }
    
}
//function added by excelasoft-end
function clearPaging(){
    document.getElementById('divPaging').innerHTML = '';
    document.getElementById('divPagingBottom').innerHTML = '';
    g_currentPage = 1;
}

function drawPaging(div,pageCount, currentPage,bottom){
    //var html = '<div class="pager" id="pager" style="display: block;">';
    var html = "";
    if(pageCount > 1 && currentPage < pageCount ){
        html += '<a href="#" onclick="changePage(' + (currentPage+1) + ');';
        if(bottom == true)
            html += 'document.location = \'#resultsTop\';';
        html+= '" title="nästa sida">&gt;&gt;</a>';
    }
    var firstVisiblePage = currentPage - 5;
    if(firstVisiblePage < 1)
        firstVisiblePage = 1;
    var lastVisiblePage = currentPage + 5;
    if(lastVisiblePage > pageCount)
        lastVisiblePage = pageCount;

    for(var i = lastVisiblePage; i >= firstVisiblePage; --i){
        var cssClass = '';
        if(i == currentPage)
            cssClass = 'currentPage';
        html += '<a href="#" class="'+cssClass+'" onclick="changePage('+i+');';
        if(bottom == true)
            html += 'document.location = \'#resultsTop\';';
        html += '">'+i+'</a>';
    }        
    /*
    for(var i = pageCount; i >= 1; --i){
        var cssClass = '';
        if(i == currentPage)
            cssClass = 'currentPage';
        html += '<a href="#" class="'+cssClass+'" onclick="changePage('+i+');';
        if(bottom == true)
            html += 'document.location = \'#resultsTop\';';
        html += '">'+i+'</a>';
    }
*/
    if(pageCount > 1 && currentPage > 1) {
        html += '<a href="#" onclick="changePage(' + (currentPage-1) + ');';
        if(bottom == true)
            html += 'document.location = \'#resultsTop\';';
        html += '" title="föregående sida">&lt;&lt;</a>';
    }
    html += '</div>';
    div.innerHTML = html;
}

function regclick(agencyName, url, from, to, departureDate, returnDate, adultCount, childCount, bIsOneWay) {
    var isOneWay = '0';
    if(bIsOneWay)
        isOneWay = '1';
        
    sendRequest('/services/Click.aspx?agencyName='+agencyName+'&url='+url+'&from='+from+'&to='+to+'&departureDate='+departureDate+'&returnDate='+returnDate+'&isOneWay='+isOneWay+'&adultCount='+adultCount+'&childCount='+childCount,null);
}

function regview(){
    sendRequest('/services/RegisterView.aspx');
}

function sendRequest(url, callback, postData) {
	var req = createXMLHTTPObject();
	if (!req) return;
	var method = (postData) ? "POST" : "GET";
	req.open(method,url,true);
	req.setRequestHeader('User-Agent','XMLHTTP/1.0');
	if (postData)
		req.setRequestHeader('Content-type','application/x-www-form-urlencoded');
	req.onreadystatechange = function () {
		if (req.readyState != 4) return;
		if (req.status != 200 && req.status != 304) {
//			alert('HTTP error ' + req.status);
			return;
		}
		//callback(req);
	}
	if (req.readyState == 4) return;
	req.send(postData);
}

var XMLHttpFactories = [
	function () {return new XMLHttpRequest()},
	function () {return new ActiveXObject("Msxml2.XMLHTTP")},
	function () {return new ActiveXObject("Msxml3.XMLHTTP")},
	function () {return new ActiveXObject("Microsoft.XMLHTTP")}
];

function createXMLHTTPObject() {
	var xmlhttp = false;
	for (var i=0;i<XMLHttpFactories.length;i++) {
		try {
			xmlhttp = XMLHttpFactories[i]();
		}
		catch (e) {
			continue;
		}
		break;
	}
	return xmlhttp;
}

var g_errorSpan = 0;
function setErrorSpan(span){
    g_errorSpan = span;
}

function showErrorMessage(msg){
    //alert('show-error');
    document.getElementById('divProgress').style.display='none';
    //document.getElementById('ctl00_mainPlaceHolder_lbErrorMessage').innerHTML=msg;
    
    //document.getElementById('<%=lbErrorMessage.ClientID%>').innerHTML=msg;
    document.getElementById('divError').style.display='block';
    g_errorSpan.innerHTML = msg;
}

function sortTrips(desc){
    //alert('length before sort: ' + g_totalCount);
    var trips = new Array();
    for(var pageIndex = 0; pageIndex < g_pageTrips.length; ++pageIndex){
        var pageTrips = g_pageTrips[pageIndex];
        for(var tripIndex = 0; tripIndex < pageTrips.length; ++tripIndex){
            trips[trips.length++] = pageTrips[tripIndex];
        }
    }
    if(g_orderBy == 'traveltime'){
        trips.sort(_sortByTravelTime);
        if(g_IsOneWay == false)
            g_quickestTime = (trips[0]._wayLeave[0].TravelTime + trips[0]._wayReturn[0].TravelTime);
        else
            g_quickestTime = (trips[0]._wayLeave[0].TravelTime);
        document.getElementById('spanOrderBy').innerHTML = 'restid';
        document.getElementById('travelTimeActive').className= 'active';
        document.getElementById('priceActive').className= '';
    }else if(g_orderBy == 'price'){
        trips.sort(_sortByTotalCost);
        document.getElementById('spanOrderBy').innerHTML = 'pris';
        document.getElementById('priceActive').className= 'active';
        document.getElementById('travelTimeActive').className= '';
    }
    
    
    delete g_pageTrips;
    g_pageTrips = new Array();
    var pageIndex = 0;
    var tripIndex = 0;
    var tripsOnPage = new Array();
    for(var i = 0; i < trips.length; ++i){
        tripsOnPage[tripsOnPage.length++] = trips[i];
        if(tripsOnPage.length >= g_pageLimit){
            g_pageTrips[pageIndex++] = tripsOnPage;
            tripsOnPage = new Array();
        }
    }
    
    if(tripsOnPage.length > 0)
        g_pageTrips[pageIndex++] = tripsOnPage;
    
    //alert('length after sort: ' + trips.length);
}

function _sortByTravelTime(a,b){
    var x = 0;
    if(g_IsOneWay == false)
        x = a._wayLeave[0].TravelTime + a._wayReturn[0].TravelTime;
    else
        x = a._wayLeave[0].TravelTime;
    var y = 0;
    if(g_IsOneWay == false)
        y = b._wayLeave[0].TravelTime + b._wayReturn[0].TravelTime;
    else
        y = b._wayLeave[0].TravelTime;
        
    return ((x < y) ? -1 : ((x > y) ? 1 : 0));
}

function _sortByTotalCost(a,b){
    var x = parseFloat(trim(a.PriceInfo.TotalPrice));
    var y = parseFloat(trim(b.PriceInfo.TotalPrice));
    return ((x < y) ? -1 : ((x > y) ? 1 : 0));
}

function getTimeString(value){
    var hours = Math.floor(value);
    var minutes = Math.floor((value-hours)*60);
    var s = '';
    if(hours > 0){
        s += hours + ' h ';
    }
    
    if(minutes > 0){
        s += minutes + ' min';
    }

    return s;
}

function initSearch(){
//    document.getElementById('btnSortByTravelTime').disabled = 'disabled';
//    document.getElementById('btnSortByPrice').disabled = 'disabled';
    document.getElementById('priceActive').className= 'active';
    document.getElementById('travelTimeActive').className= '';
    g_orderBy = 'price';
}

function pagingComplete(){
    document.getElementById('navcontainer').style.display = 'block';
    document.getElementById('navcontainer').style.display = 'block';
}

function onCalendarShown(sender,args){
    sender._switchMode("years", true); 

    //sender._switchMode("months", true);            
}

//modified by excelasoft to show child ages dropdown as per no of child seleted
function show_child_ddl(childCount){
    var tbl = document.getElementById('tblChildAges');
    if(childCount == 0){
        tbl.style.visibility='hidden';
        tbl.style.display='none';
    } else {
        tbl.style.visibility='visible';
        tbl.style.display='block';
    }
    
    for(var i = 1; i < 8; ++i){
        
         switch(i)
         {
         case 1:
             ddl = document.getElementById('ctl00_mainPlaceHolder_selChildAge_1');
             break;
         case 2:
              ddl = document.getElementById('ctl00_mainPlaceHolder_selChildAge_2');
              break;
          case 3:
              ddl = document.getElementById('ctl00_mainPlaceHolder_selChildAge_3');
              break;
          case 4:
              ddl = document.getElementById('ctl00_mainPlaceHolder_selChildAge_4');
              break;
          case 5:
              ddl = document.getElementById('ctl00_mainPlaceHolder_selChildAge_5');
              break;
          case 6:
              ddl = document.getElementById('ctl00_mainPlaceHolder_selChildAge_6');
              break;
          case 7:
              ddl = document.getElementById('ctl00_mainPlaceHolder_selChildAge_7');
              break;
         }
         
         
        //var ddl = document.getElementById('ctl00_mainPlaceHolder_selChildAge_1');
        
        if(childCount >= i){
            //alert('i = ' + i + ', visible');
            ddl.style.visibility='visible';
            ddl.style.display='block';
        } else{
            //alert('i = ' + i + ', hidden');
            ddl.style.visibility='hidden';
            ddl.style.display='none';
        }
            
    }
}

function show_child_ddl_small(childCount){
    var tbl = document.getElementById('tblChildAgesSmall');
    
    if(childCount == 0){
        tbl.style.visibility='hidden';
        tbl.style.display='none';
    } else {
        tbl.style.visibility='visible';
        tbl.style.display='block';
    }
    
    for(i = 1; i < 8; ++i){
        var ddl = document.getElementById('selChildAgeSmall_'+i);
        
        if(childCount >= i){
            //alert('i = ' + i + ', visible');
            ddl.style.visibility='visible';
            ddl.style.display='block';
        } else{
            //alert('i = ' + i + ', hidden');
            ddl.style.visibility='hidden';
            ddl.style.display='none';
        }
            
    }
}
//function added by excelasoft-Start
//function is used in search mechanism in default page(from repeater pop up link.)
//it redirects default page to searchpage by accepting seaarch parameter.
function RedirectTosearch(valsrc,valdes,valst,valrt)
{
 var QueryStr="src="+valsrc+"&des="+valdes+"&st="+valst+"&rt="+valrt;
 QueryStr=QueryStr+"&ret=0&ac=1&cc=0&cages=0&isPredefinedSearch=1";
 window.location="search.aspx?"+encodeURI(QueryStr);
}
//function added by excelasoft-end