/*
  (C) by KSI media sp. z o.o. ( www.ksimedia.pl )  
  Description : Search window params class.
  Author      : MS
  Create date : 2010-08-22
  Comment     :
*/

function classSearchWindow ()
{
  this.onLoadSrchParams = new Array();
  
  this.getCmpntValue = function ( srchName, cmpntName )
  {
    var value ;
    if ( document.getElementById ( srchName + cmpntName ) != null )
    {
      value = document.getElementById ( srchName + cmpntName ).value ;
      return value ;
    }
    else
    {
      return null ;
    }
  }
  
  this.setCmpntValue = function ( srchName, cmpntName, value )
  {
    if ( document.getElementById ( srchName + cmpntName ) != null )
    {
      ExtComponents.setValue ( srchName + cmpntName, value ) ;
    }
  }

  this.addParamArray = function ( paramName, strParam, addNullParams )
  {
    if ( strParam == null ) return '' ;
    var url = new String ;
    if ( addNullParams == undefined ) addNullParams = false ;
    if ( ( addNullParams == true )&&( strParam == '' ) )
    {
      url = '&' + paramName + '=' + strParam ;
    }
    else
    {
      if ( strParam == '' ) return '' ;
      var tmp ;
      var i ;
      url = '' ;
      tmp = strParam.split ( ';' ) ;
      for ( i = 0 ; i<tmp.length ; i++ )
      {
        url = url + '&' + paramName + '[]=' +tmp[i] ;
      }
    }
    return url ;
  }
  
  this.addParam = function ( paramName, strParam, addNullParams )
  {
    if ( strParam == null ) return '' ;
    if ( addNullParams == undefined ) addNullParams = false ;
    if (( addNullParams == false )&&( strParam == '' )) return '' ;
    var url = new String ;
    url = '&' + paramName + '=' + strParam ;
    return url ;
  }
  
  this.generateUrl = function ( srchParams, addNullParams, paramPrefix )
  {    
    var url = new String ;
    if ( addNullParams == undefined ) addNullParams = false ;
    if ( paramPrefix == undefined ) paramPrefix = 'srch' ;
    url = '' ;
    url = url + this.addParamArray ( paramPrefix+'CountryRegion', srchParams [ '_countryRegion' ], addNullParams ) ;    
    url = url + this.addParamArray ( paramPrefix+'Country', srchParams['_country' ], addNullParams ) ;
    url = url + this.addParamArray ( paramPrefix+'Region', srchParams['_region' ], addNullParams ) ;
    url = url + this.addParamArray ( paramPrefix+'City', srchParams['_city' ], addNullParams ) ;
    url = url + this.addParamArray ( paramPrefix+'DepartureFrom', srchParams [ '_departureFrom' ], addNullParams ) ;
    url = url + this.addParam      ( paramPrefix+'DepartureDateFrom', srchParams [ '_departureDateFrom' ], addNullParams ) ;
    url = url + this.addParam      ( paramPrefix+'DepartureDateTo', srchParams [ '_departureDateTo' ], addNullParams ) ;
    url = url + this.addParam      ( paramPrefix+'ReturnDateFrom', srchParams [ '_returnDateFrom' ], addNullParams ) ;
    url = url + this.addParam      ( paramPrefix+'ReturnDateTo', srchParams [ '_returnDateTo' ], addNullParams ) ;
    url = url + this.addParam      ( paramPrefix+'Adults', srchParams [ '_adults' ], addNullParams ) ;
    url = url + this.addParamArray ( paramPrefix+'Children', srchParams [ '_children' ], addNullParams ) ;
    url = url + this.addParamArray ( paramPrefix+'Feeding', srchParams [ '_feeding' ], addNullParams ) ;
    url = url + this.addParamArray ( paramPrefix+'Category', srchParams [ '_category' ], addNullParams ) ;
    url = url + this.addParamArray ( paramPrefix+'Transport', srchParams [ '_transport' ], addNullParams ) ;
    url = url + this.addParamArray ( paramPrefix+'Price', srchParams [ '_price' ], addNullParams ) ;
    url = url + this.addParamArray ( paramPrefix+'OfferName', srchParams [ '_offerName' ], addNullParams ) ;
    url = url + this.addParamArray ( paramPrefix+'Attributes', srchParams [ '_attributes' ], addNullParams ) ;
    url = url + this.addParamArray ( paramPrefix+'OfferType', srchParams [ '_offerType' ], addNullParams ) ;
    url = url + this.addParamArray ( paramPrefix+'Length', srchParams [ '_length' ], addNullParams ) ;
    url = url + this.addParamArray ( paramPrefix+'Rating', srchParams [ '_rating' ], addNullParams ) ;
    url = url + this.addParamArray ( paramPrefix+'Gps', srchParams [ '_gps' ], addNullParams ) ;
    url = url + this.addParamArray ( paramPrefix+'RoomType', srchParams [ '_roomType' ], addNullParams ) ;
    url = url + this.addParam      ( paramPrefix+'ResultsPerPage', srchParams [ '_resultsPerPage' ], addNullParams ) ;
    url = url + this.addParam      ( paramPrefix+'ResultsPageNumber', srchParams [ '_resultsPageNumber' ], addNullParams ) ;
    url = url + this.addParamArray ( paramPrefix+'OfferId', srchParams [ '_offerId' ], addNullParams ) ;
    url = url + this.addParamArray ( paramPrefix+'OfferCatalog', srchParams [ '_offerCatalog' ], addNullParams ) ;
    url = url + this.addParamArray ( paramPrefix+'Sort', srchParams [ '_sort' ], addNullParams ) ;
    url = url + this.addParamArray ( paramPrefix+'Temperature', srchParams [ '_temperature' ], addNullParams ) ;
    url = url + this.addParam      ( paramPrefix+'Currency', srchParams [ '_currency' ], addNullParams ) ;
    url = url + this.addParamArray ( paramPrefix+'TourOperator', srchParams [ '_tourOperator' ], addNullParams ) ;
    url = url + this.addParamArray ( paramPrefix+'Text', srchParams [ '_text' ], addNullParams ) ;
    return url ;    
  }
  
  this.collectData = function ( srchName, addNullParams, paramPrefix )
  {
    var params ;
    if ( addNullParams == undefined ) addNullParams = false ;
    if ( paramPrefix == undefined ) paramPrefix = 'srch' ;
    params = new Array ;
    params['_countryRegion' ]     = this.getCmpntValue ( srchName, 'countryRegion' ) ;    
    params['_country' ]           = this.getCmpntValue ( srchName, 'country' ) ;
    params['_region' ]            = this.getCmpntValue ( srchName, 'region' ) ;
    params['_city' ]              = this.getCmpntValue ( srchName, 'city' ) ;
    params['_departureFrom' ]     = this.getCmpntValue ( srchName, 'departureFrom' ) ;
    params['_departureDateFrom' ] = this.getCmpntValue ( srchName, 'departureDateFrom' ) ;
    params['_departureDateTo' ]   = this.getCmpntValue ( srchName, 'departureDateTo' ) ;
    params['_returnDateFrom' ]    = this.getCmpntValue ( srchName, 'returnDateFrom' ) ;
    params['_returnDateTo' ]      = this.getCmpntValue ( srchName, 'returnDateTo' ) ;
    params['_adults' ]            = this.getCmpntValue ( srchName, 'adults' ) ;
    params['_children' ]          = this.getCmpntValue ( srchName, 'children' ) ;
    params['_feeding' ]           = this.getCmpntValue ( srchName, 'feeding' ) ;
    params['_category' ]          = this.getCmpntValue ( srchName, 'category' ) ;
    params['_transport' ]         = this.getCmpntValue ( srchName, 'transport' ) ;
    params['_price' ]             = this.getCmpntValue ( srchName, 'price' ) ;
    params['_offerName' ]         = this.getCmpntValue ( srchName, 'offerName' ) ;
    params['_attributes' ]        = this.getCmpntValue ( srchName, 'attributes' ) ;
    params['_offerType' ]         = this.getCmpntValue ( srchName, 'offerType' ) ;
    params['_length' ]            = this.getCmpntValue ( srchName, 'length' ) ;
    params['_rating' ]            = this.getCmpntValue ( srchName, 'rating' ) ;
    params['_gps' ]               = this.getCmpntValue ( srchName, 'gps' ) ;
    params['_roomType' ]          = this.getCmpntValue ( srchName, 'roomType' ) ;
    params['_resultsPerPage' ]    = this.getCmpntValue ( srchName, 'resultsPerPage' ) ;
    params['_resultsPageNumber' ] = this.getCmpntValue ( srchName, 'resultsPageNumber' ) ;
    params['_offerId' ]           = this.getCmpntValue ( srchName, 'offerId' ) ;
    params['_offerCatalog' ]      = this.getCmpntValue ( srchName, 'offerCatalog' ) ;
    params['_sort' ]              = this.getCmpntValue ( srchName, 'sort' ) ;
    params['_temperature' ]       = this.getCmpntValue ( srchName, 'temperature' ) ;
    params['_currency' ]          = this.getCmpntValue ( srchName, 'currency' ) ;
    params['_tourOperator' ]      = this.getCmpntValue ( srchName, 'tourOperator' ) ;
    params['_text']               = this.getCmpntValue ( srchName, 'text' ) ;    
    return this.generateUrl ( params, addNullParams, paramPrefix ) ;
  }
  
  this.updateComponentsValues = function ( srchName ) 
  {    
    this.setCmpntValue ( srchName, 'countryRegion', this.onLoadSrchParams['_countryRegion' ] ) ;
    this.setCmpntValue ( srchName, 'country', this.onLoadSrchParams['_country' ] ) ;
    this.setCmpntValue ( srchName, 'region', this.onLoadSrchParams['_region' ] ) ;
    this.setCmpntValue ( srchName, 'city', this.onLoadSrchParams['_city' ] ) ;
    this.setCmpntValue ( srchName, 'departureFrom', this.onLoadSrchParams['_departureFrom' ] ) ;
    this.setCmpntValue ( srchName, 'departureDateFrom', this.onLoadSrchParams['_departureDateFrom' ] ) ;
    this.setCmpntValue ( srchName, 'departureDateTo', this.onLoadSrchParams['_departureDateTo' ] ) ;
    this.setCmpntValue ( srchName, 'returnDateFrom', this.onLoadSrchParams['_returnDateFrom' ] ) ;
    this.setCmpntValue ( srchName, 'returnDateTo', this.onLoadSrchParams['_returnDateTo' ] ) ;
    this.setCmpntValue ( srchName, 'adults', this.onLoadSrchParams['_adults' ] ) ;
    this.setCmpntValue ( srchName, 'children', this.onLoadSrchParams['_children' ] ) ;
    this.setCmpntValue ( srchName, 'feeding', this.onLoadSrchParams['_feeding' ] ) ;
    this.setCmpntValue ( srchName, 'category', this.onLoadSrchParams['_category' ] ) ;
    this.setCmpntValue ( srchName, 'transport', this.onLoadSrchParams['_transport' ] ) ;
    this.setCmpntValue ( srchName, 'price', this.onLoadSrchParams['_price' ] ) ;
    this.setCmpntValue ( srchName, 'offerName', this.onLoadSrchParams['_offerName' ] ) ;
    this.setCmpntValue ( srchName, 'attributes', this.onLoadSrchParams['_attributes' ] ) ;
    this.setCmpntValue ( srchName, 'offerType', this.onLoadSrchParams['_offerType' ] ) ;
    this.setCmpntValue ( srchName, 'length', this.onLoadSrchParams['_length' ] ) ;
    this.setCmpntValue ( srchName, 'rating', this.onLoadSrchParams['_rating' ] ) ;
    this.setCmpntValue ( srchName, 'gps', this.onLoadSrchParams['_gps' ] ) ;
    this.setCmpntValue ( srchName, 'roomType', this.onLoadSrchParams['_roomType' ] ) ;
    this.setCmpntValue ( srchName, 'resultsPerPage', this.onLoadSrchParams['_resultsPerPage' ] ) ;
    this.setCmpntValue ( srchName, 'resultsPageNumber', this.onLoadSrchParams['_resultsPageNumber' ] ) ;
    this.setCmpntValue ( srchName, 'offerId', this.onLoadSrchParams['_offerId' ] ) ;
    this.setCmpntValue ( srchName, 'offerCatalog', this.onLoadSrchParams['_offerCatalog' ] ) ;
    this.setCmpntValue ( srchName, 'sort', this.onLoadSrchParams['_sort' ] ) ;
    this.setCmpntValue ( srchName, 'temperature', this.onLoadSrchParams['_temperature' ] ) ;
    this.setCmpntValue ( srchName, 'currency', this.onLoadSrchParams['_currency' ] ) ;
    this.setCmpntValue ( srchName, 'tourOperator', this.onLoadSrchParams['_tourOperator' ] ) ;
    this.setCmpntValue ( srchName, 'text', this.onLoadSrchParams['_text'] ) ;
  }
  
  this.closeParamItems = function ( objName )
  {
    if ( document.getElementById ( objName ) != null )
    {
      document.getElementById ( objName ).style.display = 'none' ;
    }
  }
  
  this.closeAllParams = function ( obj )
  {    
    this.closeParamItems ( 'itemsList_' + obj + 'countryRegion' ) ;
    this.closeParamItems ( 'itemsList_' + obj + 'country' ) ;
    this.closeParamItems ( 'itemsList_' + obj + 'region' ) ;
    this.closeParamItems ( 'itemsList_' + obj + 'city' ) ;
    this.closeParamItems ( 'itemsList_' + obj + 'departureFrom' ) ;
    this.closeParamItems ( 'itemsList_' + obj + 'departureDateFrom' ) ;
    this.closeParamItems ( 'itemsList_' + obj + 'departureDateTo' ) ;
    this.closeParamItems ( 'itemsList_' + obj + 'returnDateFrom' ) ;
    this.closeParamItems ( 'itemsList_' + obj + 'returnDateTo' ) ;
    this.closeParamItems ( 'itemsList_' + obj + 'adults' ) ;
    this.closeParamItems ( 'itemsList_' + obj + 'children' ) ;
    this.closeParamItems ( 'itemsList_' + obj + 'feeding' ) ;
    this.closeParamItems ( 'itemsList_' + obj + 'category' ) ;
    this.closeParamItems ( 'itemsList_' + obj + 'transport' ) ;
    this.closeParamItems ( 'itemsList_' + obj + 'price' ) ;
    this.closeParamItems ( 'itemsList_' + obj + 'offerName' ) ;
    this.closeParamItems ( 'itemsList_' + obj + 'attributes' ) ;
    this.closeParamItems ( 'itemsList_' + obj + 'offerType' ) ;
    this.closeParamItems ( 'itemsList_' + obj + 'length' ) ;
    this.closeParamItems ( 'itemsList_' + obj + 'rating' ) ;
    this.closeParamItems ( 'itemsList_' + obj + 'gps' ) ;
    this.closeParamItems ( 'itemsList_' + obj + 'roomType' ) ;
    this.closeParamItems ( 'itemsList_' + obj + 'resultsPerPage' ) ;
    this.closeParamItems ( 'itemsList_' + obj + 'resultsPageNumber' ) ;
    this.closeParamItems ( 'itemsList_' + obj + 'offerId' ) ;
    this.closeParamItems ( 'itemsList_' + obj + 'offerCatalog' ) ;
    this.closeParamItems ( 'itemsList_' + obj + 'sort' ) ;
    this.closeParamItems ( 'itemsList_' + obj + 'temperature' ) ;
    this.closeParamItems ( 'itemsList_' + obj + 'currency' ) ;
    this.closeParamItems ( 'itemsList_' + obj + 'tourOperator' ) ;
    this.closeParamItems ( 'itemsList_' + obj + 'text' ) ;
  }

}

SearchWindow = new classSearchWindow () ;
