'
' Seneca.vbs
'

'
' GetCurrentLegsId
'
Function GetCurrentLegsId
	Dim OAIRequest
	Dim oXML
	Dim OAISummary
	Dim OAILegId

  GetCurrentLegsId = "0"

	OAIRequest = OAIBuildRequestListRecords("legislaturas","","","","","","",0,1,1000)
	If OAIRequest <> "" Then
 			OAIResponse = OAIGetResponse(OAIRequest)
			Set oXML = Server.CreateObject("Microsoft.XMLDOM")
			oXML.async = False
			If oXML.LoadXML(OAIResponse) Then
				Set OAISummary = oXML.SelectSingleNode("/OAI-PMH/ListRecords/summary")
				If not (OAISummary Is nothing) Then
				 	If OAISummary.GetAttribute("totalRecords") > 0 Then
       		 		Set OAILegId = oXML.SelectSingleNode("/OAI-PMH/ListRecords/record[@cursor=""" & OAISummary.GetAttribute("totalRecords") & """]/metadata/oai_actOfParliament:actOfP/actOfP:legs.id")
          		If not (OAILegId Is nothing) Then
          				GetCurrentLegsId = OAILegId.Text
          		End If
          End If
        End If
      End If
  End If
End Function
'
' GetLegsName
'
Function GetLegsName(aLegsId)
	Dim OAIRequest
	Dim OAIResponse
	Dim oXML
	Dim OAILegs
	Dim OAILeg
	Dim OAILegId
	Dim OAILegCo
	Dim OAILegName

	GetLegsName = "(undefined)"

	OAIRequest = OAIBuildRequestListRecords("legislaturas","","","","","","",0,1,1000)	
	If OAIRequest <> "" Then			
 			OAIResponse = OAIGetResponse(OAIRequest)
			Set oXML = Server.CreateObject("Microsoft.XMLDOM")
			oXML.async = False
			If oXML.LoadXML(OAIResponse) Then
			   Set OAILegs = oXML.SelectNodes("OAI-PMH/ListRecords/record")
			   If not (OAILegs is Nothing) Then
			       For each OAILeg in OAILegs
						    If not (OAILeg is Nothing)	Then
							     Set OAILegId = OAILeg.SelectSingleNode("metadata/oai_actOfParliament:actOfP/actOfP:legs.id")
							     Set OAILegCo = OAILeg.SelectSingleNode("metadata/oai_actOfParliament:actOfP/actOfP:legs.ordinal")
							     Set OAILegName = OAILeg.SelectSingleNode("metadata/oai_actOfParliament:actOfP/actOfP:legs.name")

							     If (UCase(OAILegId.Text)=UCase(aLegsId)) or (UCase(OAILegCo.Text)=UCase(aLegsId)) Then
										GetLegsName = OAILegName.Text
							     End If
                End If
             Next
			   End If
      End If
  End If
End Function
'
' GetLegsCo
'
Function GetLegsCo
	Dim OAIRequest
	Dim oXML
	Dim OAISummary
	Dim OAILegCo

    GetLegsCo = "?"

	OAIRequest = OAIBuildRequestListRecords("legislaturas","","","","","","",0,1,1000)
	If OAIRequest <> "" Then
 		OAIResponse = OAIGetResponse(OAIRequest)
		Set oXML = Server.CreateObject("Microsoft.XMLDOM")
		oXML.async = False
		If oXML.LoadXML(OAIResponse) Then
			Set OAISummary = oXML.SelectSingleNode("/OAI-PMH/ListRecords/summary")
			If not (OAISummary Is nothing) Then
			 	If OAISummary.GetAttribute("totalRecords") > 0 Then
    	 			Set OAILegCo = oXML.SelectSingleNode("/OAI-PMH/ListRecords/record[@cursor=""" & OAISummary.GetAttribute("totalRecords") & """]/metadata/oai_actOfParliament:actOfP/actOfP:legs.ordinal")
       				If not (OAILegCo Is nothing) Then
       					GetLegsCo = OAILegCo.Text
       				End If
				End If
			End If
		End If
	End If
End Function
'
' GetCurrentLegsName
'
Function GetCurrentLegsName
	Dim OAIRequest
	Dim oXML
	Dim OAISummary
	Dim OAILegName

  GetCurrentLegsName = "(unknown)"

	OAIRequest = OAIBuildRequestListRecords("legislaturas","","","","","","",0,1,1000)
	If OAIRequest <> "" Then
 			OAIResponse = OAIGetResponse(OAIRequest)
			Set oXML = Server.CreateObject("Microsoft.XMLDOM")
			oXML.async = False
			If oXML.LoadXML(OAIResponse) Then
				Set OAISummary = oXML.SelectSingleNode("/OAI-PMH/ListRecords/summary")
				If not (OAISummary Is nothing) Then
				 	If OAISummary.GetAttribute("totalRecords") > 0 Then
       		 		Set OAILegName = oXML.SelectSingleNode("/OAI-PMH/ListRecords/record[@cursor=""" & OAISummary.GetAttribute("totalRecords") & """]/metadata/oai_actOfParliament:actOfP/actOfP:legs.name")
          		If not (OAILegName Is nothing) Then
          				GetCurrentLegsName = OAILegName.Text
          				If OAILegName.Text <> "" Then
                     GetCurrentLegsName = OAILegName.Text
                  Else
                     GetCurrentLegsName = "(undefined)"
          				End If
              Else
                   GetCurrentLegsName = "(no legs name)"
          		End If
          Else
              GetCurrentLegsName = "(no legs in db)"
          End If
       End If
      End If
  End If
End Function
'
' GetLegsSelect
'
Function GetLegsSelect(aLegsIdDefault,aEnableNullSelect,aStyle,aOnChange)
	Dim OAIRequest
	Dim oXML
	Dim OAISummary
	Dim OAILegs
	Dim OAILeg
	Dim OAILegId
	Dim OAILegCo
	Dim OAILegName

	OAIRequest = OAIBuildRequestListRecords("legislaturas","","","","","","",0,1,1000)
 	OAIResponse = OAIGetResponse(OAIRequest)
	Set oXML = Server.CreateObject("Microsoft.XMLDOM")
	oXML.async = False
	If oXML.LoadXML(OAIResponse) Then
			GetLegsSelect = "<SELECT name=""legs"" id=""legs"" class=""queryform_input"" style=""" & aStyle & """ onchange=""" & aOnChange & """>"
			If aEnableNullSelect Then
				GetLegsSelect = GetLegsSelect & "<OPTION value="""" >(Todas las legislaturas)" & "</OPTION>"
			End If
			Set OAILegs = oXML.SelectNodes("OAI-PMH/ListRecords/record")
			if not (OAILegs is Nothing) Then
			   For each OAILeg in OAILegs
						If not (OAILeg is Nothing)	Then
							Set OAILegId = OAILeg.SelectSingleNode("metadata/oai_actOfParliament:actOfP/actOfP:legs.id")
							Set OAILegCo = OAILeg.SelectSingleNode("metadata/oai_actOfParliament:actOfP/actOfP:legs.ordinal")
							Set OAILegName = OAILeg.SelectSingleNode("metadata/oai_actOfParliament:actOfP/actOfP:legs.name")

							If not (OAILegName is Nothing) Then
									If (UCase(aLegsIdDefault) <> "") and ((UCase(OAILegId.Text) = UCase(aLegsIdDefault)) or (UCase(OAILegCo.Text) = UCase(aLegsIdDefault))) Then
										GetLegsSelect = GetLegsSelect & "<OPTION value="""& OAILegCo.Text &""" SELECTED>" & OAILegName.Text & "</OPTION>"
									Else
										GetLegsSelect = GetLegsSelect & "<OPTION value="""& OAILegCo.Text &""">" & OAILegName.Text & "</OPTION>"
									End If
						  End If
            End If
				Next
			End If
			GetLegsSelect = GetLegsSelect & "</SELECT>"
  End If
End Function

'
' GetGBodySelectLegs
'

Function GetGBodySelectLegs(aLegs,aGBodyIdDefault,aStyle,aOnChange)
	Dim OAIRequest
	Dim oXML
	Dim OAISummary
	Dim OAIOrganos
	Dim OAIOrgano
	Dim OAIGBodyId
	Dim OAIGBodyCo
	Dim OAIGBodyName
	Dim OAIGBodyNameLast
	Dim OAILegId
	Dim OAILegCo
	Dim OAILegName
	Dim LegsName

	OAIRequest = OAIBuildRequestListRecords("organos","",aLegs,"","","","",0,1,1000)
 	OAIResponse = OAIGetResponse(OAIRequest)
	Set oXML = Server.CreateObject("Microsoft.XMLDOM")
	oXML.async = False
	If oXML.LoadXML(OAIResponse) Then
			GetGBodySelectLegs = "<SELECT name=""gbody"" id=""gbody"" class=""queryform_input"" style=""" & aStyle & """ onchange=""" & aOnChange & """>"
			If aLegs <> "" then
				GetGBodySelectLegs = GetGBodySelectLegs & "<OPTION value="""" >(Todos los órganos - " & GetLegsName(aLegs) & ")" & "</OPTION>"
			Else
			   GetGBodySelectLegs = GetGBodySelectLegs & "<OPTION value="""" >(Todos los órganos)" & "</OPTION>"
			End If
			
			Set OAIOrganos = oXML.SelectNodes("OAI-PMH/ListRecords/record")
			if not (OAIOrganos is Nothing) Then
				OAIGBodyNameLast = ""
				For each OAIOrgano in OAIOrganos
						If not (OAIOrgano is Nothing)	Then
							Set OAIGBodyId = OAIOrgano.SelectSingleNode("metadata/oai_actOfParliament:actOfP/actOfP:governing-body.id")
							Set OAIGBodyCo = OAIOrgano.SelectSingleNode("metadata/oai_actOfParliament:actOfP/actOfP:governing-body.co")
							Set OAIGBodyName = OAIOrgano.SelectSingleNode("metadata/oai_dc:dc/dc:title")
							Set OAILegId = OAIOrgano.SelectSingleNode("metadata/oai_actOfParliament:actOfP/actOfP:legs.id")
							Set OAILegCo = OAIOrgano.SelectSingleNode("metadata/oai_actOfParliament:actOfP/actOfP:legs.ordinal")
							Set OAILegName = OAIOrgano.SelectSingleNode("metadata/oai_actOfParliament:actOfP/actOfP:legs.name")

							If not (OAIGBodyName is Nothing) Then
								If (OAIGBodyNameLast="") or (UCase(aLegs)<>"") or (UCase(OAIGBodyName.Text) <> UCase(OAIGBodyNameLast)) Then
								  If UCase(aLegs)="" Then
									OAIGBodyNameLast = OAIGBodyName.Text
									If (UCase(aGBodyIdDefault)= UCase(OAIGBodyId.text)) or (UCase(aGBodyIdDefault)= UCase(OAIGBodyCo.text)) Then
									   	GetGBodySelectLegs = GetGBodySelectLegs & "<OPTION value="""& LCase(OAIGBodyCo.text) &""" SELECTED>" & OAIGBodyName.text & "</OPTION>"
									Else
									    GetGBodySelectLegs = GetGBodySelectLegs & "<OPTION value="""& LCase(OAIGBodyCo.text) &""" >" & OAIGBodyName.text & "</OPTION>"
									End If
								  Else
									OAIGBodyNameLast = OAIGBodyName.Text
									If (UCase(OAILegId.text)=UCase(aLegs)) or (UCase(OAILegCo.text)=UCase(aLegs)) Then
									   If (UCase(aGBodyIdDefault)= UCase(OAIGBodyId.text)) or (UCase(aGBodyIdDefault)= UCase(OAIGBodyCo.text)) Then
									     GetGBodySelectLegs = GetGBodySelectLegs & "<OPTION value="""& LCase(OAIGBodyCo.text) &"""  SELECTED>" & OAIGBodyName.text & "</OPTION>"
									   Else
									     GetGBodySelectLegs = GetGBodySelectLegs & "<OPTION value="""& LCase(OAIGBodyCo.text) &""" >" & OAIGBodyName.text & "</OPTION>"
									   End If
								    End If
								  End If
								End If
							End If
						End If
				Next
			End If
			GetGBodySelectLegs = GetGBodySelectLegs & "</SELECT>"
  End If
End Function

'
' GetSpeakerSelect
'

Function GetSpeakerSelect(aLegsId,aSpeakerDefault,aStyle,aOnChange)
	Dim OAIRequest
	Dim oXML
	Dim OAISummary
	Dim OAIOradores
	Dim OAIOrador
	Dim OAIOradorId
	Dim OAIOradorNombre

	OAIRequest = OAIBuildRequestListRecords("oradores","","","","","","",0,1,1000)
 	OAIResponse = OAIGetResponse(OAIRequest)
	Set oXML = Server.CreateObject("Microsoft.XMLDOM")
	oXML.async = False
	If oXML.LoadXML(OAIResponse) Then
			GetSpeakerSelect = "<SELECT name=""spkr"" id=""speaker"" class=""queryform_input"" style=""" & aStyle & """>"
			'GetGBodySelectLegs = GetGBodySelectLegs & "<OPTION value="""" >Todos los oradores (" & aLegsId &")</OPTION>"
			GetSpeakerSelect = GetSpeakerSelect & "<OPTION value=""all"" >(Todos los oradores)" & aSpeakerDefault & "</OPTION>"
			Set OAIOradores = oXML.SelectNodes("OAI-PMH/ListRecords/record")
			if not (OAIOradores is Nothing) Then
			   For each OAIOrador in OAIOradores
						If not (OAIOrador is Nothing)	Then
							Set OAIOradorId = OAIOrador.SelectSingleNode("metadata/oai_actOfParliament:actOfP/actOfP:speaker.id")
							Set OAIOradorName = OAIOrador.SelectSingleNode("metadata/oai_actOfParliament:actOfP/actOfP:speaker.name")

							If (UCase(OAIOradorId.Text)= UCase(aSpeakerDefault)) or (UCase(OAIOradorName.Text)=UCase(aSpeakerDefault)) Then
							   GetSpeakerSelect = GetSpeakerSelect & "<OPTION value="""& OAIOradorId.Text &""" SELECTED>" & OAIOradorName.Text & " (" & OAIOradorId.Text & ")" & "</OPTION>"
							Else
								 GetSpeakerSelect = GetSpeakerSelect & "<OPTION value="""& OAIOradorId.Text &""" >" & OAIOradorName.Text & " (" & OAIOradorId.Text & ")" &  "</OPTION>"
							End If
            End If
				Next
			End If
			GetSpeakerSelect = GetSpeakerSelect & "</SELECT>"
  End If
End Function
'
'
'
Function GetMeetingId()
    Dim qSet
    Dim qIdentifier
    Dim OAIRequest
    Dim OAIResponse
    Dim oXML
    
    GetMeetingId = 0
  	If GetQueryStringTokensId(qSet,qIdentifier) Then
  		If (qSet<>"") and (qIdentifier <> "") Then
       	    OAIRequest = OAIBuildGetRecordRequest(qSet,qIdentifier)
              OAIResponse = OAIGetResponse(OAIRequest)
    			Set oXML = Server.CreateObject("Microsoft.XMLDOM")
  	   		oXML.async = False
  		    If oXML.LoadXML(OAIResponse) Then
    			   Set Meeting = oXML.SelectSingleNode("OAI-PMH/GetRecord/record/metadata/oai_actOfParliament:actOfP/actOfP:meeting.id")
    			   If Not (Meeting Is Nothing) Then
    				  GetMeetingId = CInt(Meeting.Text)
    			   End If
  			End If
  		End If
  	End If
End Function
'
'
'
Function GetSpeechSpeakerName()
    Dim qSet
    Dim qIdentifier
    Dim OAIRequest
    Dim OAIResponse
    Dim oXML
    
    GetSpeechSpeakerName = ""
	If GetQueryStringTokensId(qSet,qIdentifier) Then
		If (qSet<>"") and (qIdentifier <> "") Then
     	    OAIRequest = OAIBuildGetRecordRequest(qSet,qIdentifier)
            OAIResponse = OAIGetResponse(OAIRequest)
  			Set oXML = Server.CreateObject("Microsoft.XMLDOM")
	   		oXML.async = False
		    If oXML.LoadXML(OAIResponse) Then
  			   Set SpeakerName = oXML.SelectSingleNode("OAI-PMH/GetRecord/record/metadata/oai_actOfParliament:actOfP/actOfP:speech.speaker.name")
  			   If Not (SpeakerName Is Nothing) Then
  				  GetSpeechSpeakerName = SpeakerName.Text
  			   End If
			End If
		End If
	End If	
End Function
'
' GetPageBanner
'
Function GetPageBanner()   
   GetPageBanner = _
    "<div id=""banner"" style=""background: url('images/" + Application("BANNERBG") +"')"">" & _
    "	<img src=""images/"+ Application("BANNER") + """ width=""980px""/>" & _
    "</div>" 
    GetPageBanner = GetPageBanner & Chr(13) & Chr(10)	
End Function

'
' GetPageFooter
'
Function GetPageFooter()   
	GetPageFooter = ""
	If Application("TITLE") <> "" Then
		GetPageFooter = Application("TITLE")
	End if
	
	GetPageFooter = GetPageFooter & "<br/>" &_
		"<a href="""+Application("HOME_URL")+""">"+Application("HOME_TITLE")+"</a>"
	
	GetPageFooter = GetPageFooter & "<br/>&nbsp;"
End Function
'
' GetSenecaMenu
'
Function GetSenecaMenu(aPageId)   

	GetSenecaMenu = _
		"<div id=""menu"" style=""width:100%"">"
    GetSenecaMenu = GetSenecaMenu &_
	    "<table style=""width:100%""><tr>"
    GetSenecaMenu = GetSenecaMenu &_
	    "<td><a class=""menuitem_enabled"" onclick=""javascript:{toogleOpacity('main');window.location.replace('./ds.asp');}"">&nbsp;Diario de Sesiones</a>&nbsp;"
    GetSenecaMenu = GetSenecaMenu & "&nbsp;|&nbsp;" &_
	    "<a class=""menuitem_enabled"" onclick=""javascript:{toogleOpacity('main');window.location.replace('./gb.asp');}"">&nbsp;Organos Parlamentarios</a>&nbsp;"		
    GetSenecaMenu = GetSenecaMenu & "&nbsp;|&nbsp;" &_
	    "<a class=""menuitem_enabled"" onclick=""javascript:{toogleOpacity('main');window.location.replace('./or.asp');}"">&nbsp;Oradores</a>&nbsp;"
    GetSenecaMenu = GetSenecaMenu & "&nbsp;|&nbsp;" &_
	    "<a class=""menuitem_enabled"" onclick=""javascript:{toogleOpacity('main');window.location.replace('./bs.asp');}"">&nbsp;Buscar&nbsp;</a></td>"
	GetSenecaMenu = GetSenecaMenu &_
	    "<td style=""text-align:right""><a class=""menuitem_enabled"" onclick=""javascript:{toogleOpacity('main');window.location.replace('"+Application("HOME_URL")+"');}"">&nbsp;"+Application("HOME_TITLE")+"&nbsp;</a></td>"		
	GetSenecaMenu = GetSenecaMenu & _
        "</tr></table></div>"
   
	GetSenecaMenu = GetSenecaMenu & Chr(13) & Chr(10)
End Function
'
' GetSenecaHeader
'
Function GetSenecaHeader(aTitle,aSubtitle,aPagesSummary,aPagesIndex)
  GetSenecaHeader = _
    "<div class=""header"" style=""width:100%;"">" & _
		"<table style=""width:100%"">" & _
			"<tr style=""width:100%;height:25px"">" & _
				"<td valign=""top"" style=""text-align:left;"">" &_
					"<span class=""header_title"" id=""header_title"">" & aTitle & "&nbsp;</span>" & _
				"</td>" &_
				"<td valign=""top"" style=""text-align:right;"">" &_
					"<span class=""pages"">" & aPagesSummary & "&nbsp;</span>" & _
				"</td>" &_
			"</tr>" & _
			"<tr style=""width:100%"">" & _				
				"<td class="""" style=""text-align:left;"">" &_
					"<span class=""header_subtitle"" id=""header_subtitle"">" & aSubTitle & "</span>" & _
				"</td>" &_
				"<td class="""" style=""text-align:right;"">" &_
					"<span>" & aPagesIndex & "&nbsp;</span></td>" & _
				"</td>" &_
			"</tr>" & _
		"</table>" & _
    "</div>"
  
  GetSenecaHeader = GetSenecaHeader & Chr(13) & Chr(10)   
  
  
End Function
'
' GetSenecaFooter
'
Function GetSenecaFooter(aPagesSummary,aPagesIndex)	
	GetSenecaFooter = ""	
	'GetSenecaFooter = _
	'	"<div class=""header"" style=""width:100%;height:18px"">" & _
	'		"<table style=""width:100%"">" & _
	'			"<tr>" & _
	'				"<td class=""header"" style=""text-align:left;"">" &_
	'					"<span>&nbsp;" & aPagesSummary & "&nbsp;</span></td>" & _
	'				"</td>" &_
	'				"<td class=""header"" style=""text-align:right;"">" &_
	'					"<span>" & aPagesIndex & "&nbsp;</span></td>" & _
	'				"</td>" &_
	'			"</tr>" & _
	'		"</table>" & _
	'	"</div>"	  
	'GetSenecaFooter = GetSenecaFooter & Chr(13) & Chr(10)
End Function
'
' GetPagesIndex
'
Function GetPagesIndex(aOAIResponse)
	Dim oXML
	Dim oOAIRequest
	Dim oOAIError
	Dim oOAISummary
	Dim OAIVerb
	Dim OAITotalPages
	Dim OAIPageSizeRequest
	Dim OAIPageSize
	Dim OAICursorPage
	Dim OAITotalRecords
	Dim OAICursorRecord
	Dim PageIndexSizeMax
    Dim PageIndexSize
    Dim PageIndexFirst
    Dim BaseURL
    Dim GoURL
	Dim HTMLRefToPrior,HTMLRefToNext,HTMLRefToIndex

	GetPagesIndex = ""

	OAITotalPages = 0
	OAIPageSizeRequest = 0
	OAIPageSize = 0
	OAICursorPage = 0
	OAICursorRecord = 0

	BaseURL = Request.ServerVariables("URL")
	If Request.QueryString<>"" Then
	   BaseURL = BaseURL +"?"+Request.QueryString
	End If
	if Request.QueryString("ps") <> "" Then
	   BaseURL = Replace(BaseURL,"&ps="+Request.QueryString("ps"),"")	
	   BaseURL = Replace(BaseURL,"ps="+Request.QueryString("ps"),"")
	End If
	if Request.QueryString("p") <> "" Then		
	   BaseURL = Replace(BaseURL,"&p="+Request.QueryString("p"),"")	
	   BaseURL = Replace(BaseURL,"p="+Request.QueryString("p"),"")
	End If
	BaseURL = Trim(BaseURL)
	If Right(BaseURL,1)="?" Then
		BaseURL = Left(BaseURL,Len(BaseUrl)-1)
	End If
	

	If OAIGetResponseSummaryInfo(aOAIResponse,OAITotalPages,OAIPageSizeRequest,OAIPageSize,OAICursorPage,OAITotalRecords,OAICursorRecord) Then
		HTMLRefToPrior = ""
		HTMLRefToNext = ""
		HTMLRefToIndex = ""
		If OAITotalPages > 1 then
			'página anterior
			If OAICursorPage > 1 then
				GoURL = BaseURL	
				If InStr(GoURL,"?")<>0 Then
				   GoURL = GoURL + "&"
				Else				
				   GoURL = GoURL + "?"
				End If
				GoURL = GoURL + "ps=" & CInt(OAIPageSizeRequest) & "&p=" & CStr(OAICursorPage-1)			
				HTMLRefToPrior = "<span class=""pages pageindex_enabled"" title=""Ir a pag. anterior"" onclick=""javascript:{toogleOpacity('main');window.location.replace('" & GoURL & "');return true;}""><a class=""pageindex_enabled"">&nbsp;&laquo;&nbsp;</a></span>"
			Else
				HTMLRefToPrior = "<span class=""pages pageindex_disabled"" title=""Ir a pag. anterior""" & ">&nbsp;&laquo;&nbsp;</span>"
			End If

			'página siguiente
			If (OAITotalPages>1) and (OAICursorPage < OAITotalPages) Then
				GoURL = BaseURL	
				If InStr(GoURL,"?")<>0 Then
				   GoURL = GoURL + "&"
				Else				
				   GoURL = GoURL + "?"
				End If
				GoURL = GoURL + "ps=" & CInt(OAIPageSizeRequest) & "&p=" & CStr(OAICursorPage+1)			
				HTMLRefToNext = "<span class=""pages pageindex_enabled"" title=""Ir a pag. siguiente"" onclick=""javascript:{toogleOpacity('main');window.location.replace('" & GoURL & "');return true;}""><a class=""pageindex_enabled"">&nbsp;&raquo;&nbsp;</a></span>"
			Else
				HTMLRefToNext = "<span class=""pages pageindex_disabled"" title=""Ir a pag. siguiente""" & ">&nbsp;&raquo;&nbsp;</span>"
			End If

			' El índice es sobre un numero impar de paginas (max. 10), centrado en la pagina actual
			PageIndexSizeMax = 10
			If OAITotalPages > PageIndexSizeMax Then
    			PageIndexSize = PageIndexSizeMax
				If (PageIndexSize \ 2) = 0 Then
					PageIndexSize = PageIndexSize +1
				End If
     			PageIndexFirst = OAICursorPage - (PageIndexSize \ 2)
				If PageIndexFirst <= 0 Then
					PageIndexFirst = 1
				ElseIf (PageIndexFirst+PageIndexSize)>OAITotalPages Then
				      PageIndexFirst = OAITotalPages-PageIndexSize+1
				End If
				i = 0
    		Else
    			PageIndexSize =  OAITotalPages
      			PageIndexFirst = 1
			End if

			HTMLRefToIndex = ""
    		For i = (PageIndexFirst) to ((PageIndexFirst+PageIndexSize)-1)
    			If i<>PageIndexFirst Then
    				HTMLRefToIndex = HTMLRefToIndex & "&nbsp;"
    			End If
    			If CInt(i) <> CInt(OAICursorPage) Then
    				If CInt(i) <= CInt(OAITotalPages) Then
						GoURL = BaseURL	
						If InStr(GoURL,"?")<>0 Then
						   GoURL = GoURL + "&"
						Else				
						  GoURL = GoURL + "?"
						End If
						GoURL = GoURL + "ps=" & CInt(OAIPageSizeRequest) & "&p=" & i			    				
    					HTMLRefToIndex = HTMLRefToIndex & "<span class=""pages pageindex_enabled"" title=""Ir a pag." & i & """ onclick=""javascript:{toogleOpacity('main'); window.location.replace('" & GoURL & "'); return true;}"">" & "<a class=""pageindex_enabled"">&nbsp;" & i & "&nbsp;</a></span>"
					End If
    			Else
    				HTMLRefToIndex = HTMLRefToIndex & "<span class=""pages pageindex_selected""  >&nbsp;" & i & "&nbsp;</span>"
    			End If
			Next
			HTMLRefToIndex = "<span class=""pages pageindex_disabled"">&nbsp;</span>" & HTMLRefToIndex & "<span class=""pages pageindex pageindex_disabled"">&nbsp;</span>"
			GetPagesIndex =  HTMLRefToPrior & HTMLRefToIndex & HTMLRefToNext
		End If
	End If
End Function
'
' GetTotalRecords
'
Function GetTotalRecords(aOAIResponse)
	
	Dim OAITotalPages
	Dim OAIPageSizeRequest
	Dim OAIPageSize
	Dim OAICursorPage
	Dim OAITotalRecords
	Dim OAICursorRecord

	GetTotalRecords = 0

	If OAIGetResponseSummaryInfo(aOAIResponse,OAITotalPages,OAIPageSizeRequest,OAIPageSize,OAICursorPage,OAITotalRecords,OAICursorRecord) Then
		GetTotalRecords = OAITotalRecords 
	End If
End Function
'
' GetPagesSummary
'
Function GetPagesSummary(aOAIResponse)
	
	Dim OAITotalPages
	Dim OAIPageSizeRequest
	Dim OAIPageSize
	Dim OAICursorPage
	Dim OAITotalRecords
	Dim OAICursorRecord

	GetPagesSummary = ""

	OAITotalPages = 0
	OAIPageSizeRequest = 0
	OAIPageSize = 0
	OAICursorPage = 0
	OAITotalRecords = 0
	OAICursorRecord = 0
	
	If OAIGetResponseSummaryInfo(aOAIResponse,OAITotalPages,OAIPageSizeRequest,OAIPageSize,OAICursorPage,OAITotalRecords,OAICursorRecord) Then
		If OAITotalPages > 1 Then	
			GetPagesSummary = GetPagesSummary & "<span class=""pages"">" & "Página " & OAICursorPage & " de " & OAITotalPages & ".</span>"
		End If
	End If
End Function
'
' GetSenecaIT
'
Function GetSenecaIT(block)
	Dim qSet
	Dim qLegs
	Dim qGBody
	Dim qSpeaker
	Dim qDate
	Dim qPage
	Dim qPageSize
	Dim qReset
	Dim PagesSummary
	Dim PagesIndex

	GetSenecaIT = ""
   
	qSet = ""
	qLegs = ""
	qGBody = ""
	qDate = ""
	qDateSelect = ""
	qPage = 1
	qPageSize = 100
	qCount = 0
	qReset = 0	
		
	qSet = "intervenciones"
	qLegs = GetLegsCo
	qGBody = GetQueryStringTokensGBody()
	qSpeaker = GetQueryStringTokensSpeaker()
	If GetQueryStringTokensPage(qPage,qPageSize,100) Then
	End If
	qCount = qPageSize

	'OAIRequest = OAIBuildRequestListRecords(qSet,"",qLegs,qGBody,"","","",qCount,qPage,qPageSize)
	OAIRequest =  "verb=ListRecords&set=intervenciones&speaker="+qSpeaker+"&top=10&p=1&ps=10"
	OAIResponse = OAIGetResponse(OAIRequest)

	GetSenecaIT = GetSenecaIT & _ 
		GetXMLAsHTML(OAIResponse,"xsl\it.xsl")
End Function
'
' GetSenecaDS
'
Function GetSenecaDS(block)
   Dim qSet
   Dim qLegs
   Dim qGBody
   Dim qDate
   Dim qPage
   Dim qPageSize
   Dim qReset
   Dim PagesSummary
   Dim PagesIndex

   GetSenecaDS = ""
   
	qSet = ""
	qLegs = ""
	qGBody = ""
	qDate = ""
	qDateSelect = ""
	qPage = 0
	qPageSize = 0
	qCount = 0
	qReset = 0	
		
	qSet = "sesiones"
	qLegs = GetLegsCo
	'If CInt(Application("DS_ONLY_CURRENT_LEGS")) = 1 Then
	'	qLegs = GetLegsCo
	'Else
	'	qLegs = GetQueryStringTokensLegs()
	'End If
	
	qPageSize = CInt(Application("DS_PAGESIZE"))
	If (Request.QueryString="") or (Request.QueryString("op") = "reset") Then
		qReset = 1
		qPage = 1
	Else
		qGBody = GetQueryStringTokensGBody()
		If GetQueryStringTokensPage(qPage,qPageSize,CInt(Application("DS_PAGESIZE"))) Then
	    End If
	End If

	If (Request.QueryString="") or (Request.QueryString("count") = "") Then
		qCount = CInt(Application("DS_COUNT"))
	Else
		qCount = GetQueryStringTokensCount()
	End If
	
    OAIRequest = OAIBuildRequestListRecords(qSet,"",qLegs,qGBody,"","","",CInt(Application("DS_COUNT")),qPage,qPageSize)
    OAIResponse = OAIGetResponse(OAIRequest)
    PagesSummary = GetPagesSummary(OAIResponse)
	PagesIndex = GetPagesIndex(OAIResponse)
	
	if (not block) Then
		GetSenecaDS = _
				GetSenecaMenu("ds") & _
				GetSenecaHeader("Diario de Sesiones", _
		              "Se muestran las sesiones más recientes. Para consultas más específicas sobre las sesiones ir a <span class=""menuitem_enabled"" onclick=""toogleOpacity('main');javascript:{window.location.replace('./bs.asp');}"">&nbsp;<a class=""pages pageindex_enabled"">[Buscar]</a></span>", _
					  PagesSummary, _
					  PagesIndex)
	End If
	
	if (not block) Then
		GetSenecaDS = GetSenecaDS & _		
			"<div class=""datalist"">" & _ 
			GetXMLAsHTML(OAIResponse,"xsl\ds.xsl") & _		
			"</div>"
	Else
		GetSenecaDS = GetSenecaDS & _		
			GetXMLAsHTML(OAIResponse,"xsl\dsb.xsl")
	End If

	if (not block) Then
		GetSenecaDS = GetSenecaDS & _
			GetSenecaFooter(PagesSummary,PagesIndex)
			
		If CInt(Application("DEBUG")) = 1 Then
			GetSenecaDS = _
				"<div><span style=""color:black; background:white"">HttpRequest:" & Request.ServerVariables("URL") & "?" & Request.QueryString & "</span></div>" &_
				"<div><span style=""color:black; background:white"">OAIRequest:" & OAIRequest & "</span></div>" & _
				GetSenecaDS
		End If
	End If
End Function

'
' GetSenecaGB
'
Function GetSenecaGB()
   Dim qSet
   Dim qLegs
   Dim qGBody
   Dim qDate
   Dim qPage
   Dim qPageSize
   Dim qReset
   Dim PagesSummary
   Dim PagesIndex

   GetSenecaGB = ""
   
	qSet = ""
	qLegs = ""
	qGBody = ""
	qDate = ""
	qDateSelect = ""
	qPage = 1
	qPageSize = 0
	qReset = 0
		
	qSet = "organos"
	qLegs = GetLegsCo
	If (Request.QueryString="") or (Request.QueryString("op") = "reset") Then
		qReset = 1
		qPage = 1
		qPageSize = CInt(Application("GB_PAGESIZE"))
	Else
		qGBody = GetQueryStringTokensGBody()
		If GetQueryStringTokensPage(qPage,qPageSize,CInt(Application("GB_PAGESIZE"))) Then
	    End If
	End If

    'OAIRequest = "verb=ListRecords&mf=oai_dc&set=organos&legs=VIII&top=0&p=1&ps=15"
	OAIRequest = OAIBuildRequestListRecords(qSet,"",qLegs,"","","","",0,qPage,qPageSize)
    OAIResponse = OAIGetResponse(OAIRequest)
    PagesSummary = GetPagesSummary(OAIResponse)
	PagesIndex = GetPagesIndex(OAIResponse)
	
    GetSenecaGB = _
				GetSenecaMenu("gb") & _
				GetSenecaHeader("Organos Parlamentarios", _
		              "Se muestran las organos parlamentarios de la legistatura actual. Para consultas sobre legislaturas anteriores ir a <span class=""menuitem_enabled"" onclick=""toogleOpacity('main');javascript:{window.location.replace('./bs.asp');}"">&nbsp;<a class=""pages pageindex_enabled"">[Buscar]</a></span>", _
					  PagesSummary, _
					  PagesIndex)
		
    GetSenecaGB = GetSenecaGB & _		
		"<div class=""datalist"">" & _ 
		GetXMLAsHTML(OAIResponse,"xsl\gb.xsl") & _		
	    "</div>"
		
	GetSenecaGB = GetSenecaGB & _
		GetSenecaFooter(PagesSummary,PagesIndex)
		
	If CInt(Application("DEBUG")) = 1 Then
		GetSenecaGB = _
			"<div><span style=""color:black; background:white"">HttpRequest:" & Request.ServerVariables("URL") & "?" & Request.QueryString & "</span></div>" &_
			"<div><span style=""color:black; background:white"">OAIRequest:" & OAIRequest & "</span></div>" & _
			GetSenecaGB
	End If
End Function


Function GetAlphaStyle(alpha,current_alpha)
	if (alpha = current_alpha) Then
		GetAlphaStyle = "alpha_index_selected"
	ElseIf (alpha = "[Todos]") and (current_alpha = "") Then
		GetAlphaStyle = "alpha_index_selected"
	Else
		GetAlphaStyle = "alpha_index"
	End If
End Function

Function GetAlphaLink(alpha,current_alpha,with_separator)

	GetAlphaLink = "<a class=""" & GetAlphaStyle(alpha,current_alpha) & """ onclick=""javascript:{window.location.replace('./or.asp?alpha=" & alpha & "');}"">&nbsp;" & alpha & "&nbsp;</a>"
	If with_separator Then
		GetAlphaLink = GetAlphaLink & "<span class=""alpha_index_separator"">&nbsp;|&nbsp;</span>" 
	End If
End Function
'
' GetSenecaOradores
'
Function GetSenecaSpeakers()
	Dim qSet
	Dim qLegs
	Dim qGBody
	Dim qAlpha
	Dim qPage
	Dim qPageSize
	Dim qReset
	Dim PagesSummary
	Dim PagesIndex
	Dim AphaIndex
	
	GetSenecaSpeakers = ""

	qSet = ""
	qLegs = ""
	qGBody = ""
	qAlpha = ""
	qPage = 0
	qPageSize = 0
	qReset = 0

	qSet = "oradores"
	If (Request.QueryString="") or (Request.QueryString("op") = "reset") Then
      qReset = 1
      qPage = 1
      qPageSize = CInt(Application("OR_PAGESIZE"))
	Else
      qGBody = GetQueryStringTokensGBody()
	  If GetQueryStringTokensPage(qPage,qPageSize,CInt(Application("OR_PAGESIZE"))) Then
	  End If
	End If

	If (Request.QueryString <> "") and (Request.QueryString("alpha") <> "" ) Then
		qAlpha = Request.QueryString("alpha")
	End If
	
	OAIRequest = OAIBuildRequestListRecords(qSet,"","","","","","",0,qPage,qPageSize)
	If (qAlpha <> "")  Then
		OAIRequest = OAIRequest & "&alpha=" & qAlpha
	End If
	OAIResponse = OAIGetResponse(OAIRequest)
	PagesSummary = GetPagesSummary(OAIResponse)
	PagesIndex = GetPagesIndex(OAIResponse)

	AphaIndex = _
		"<div class=""alpha_index"" style=""display:inline"">" & _
		GetAlphaLink("A",qAlpha,true) & _		
		GetAlphaLink("B",qAlpha,true) & _
		GetAlphaLink("C",qAlpha,true) & _
		GetAlphaLink("D",qAlpha,true) & _
		GetAlphaLink("E",qAlpha,true) & _
		GetAlphaLink("F",qAlpha,true) & _
		GetAlphaLink("G",qAlpha,true) & _
		GetAlphaLink("H",qAlpha,true) & _
		GetAlphaLink("I",qAlpha,true) & _
		GetAlphaLink("J",qAlpha,true) & _
		GetAlphaLink("K",qAlpha,true) & _
		GetAlphaLink("L",qAlpha,true) & _
		GetAlphaLink("M",qAlpha,true) & _
		GetAlphaLink("N",qAlpha,true) & _
		GetAlphaLink("Ñ",qAlpha,true) & _
		GetAlphaLink("O",qAlpha,true) & _
		GetAlphaLink("P",qAlpha,true) & _
		GetAlphaLink("Q",qAlpha,true) & _
		GetAlphaLink("R",qAlpha,true) & _
		GetAlphaLink("S",qAlpha,true) & _
		GetAlphaLink("T",qAlpha,true) & _
		GetAlphaLink("U",qAlpha,true) & _
		GetAlphaLink("V",qAlpha,true) & _
		GetAlphaLink("W",qAlpha,true) & _
		GetAlphaLink("X",qAlpha,true) & _
		GetAlphaLink("Y",qAlpha,true) & _
		GetAlphaLink("Z",qAlpha,true) & _
		GetAlphaLink("[Todos]",qAlpha,false) &_
		"</div>"

	GetSenecaSpeakers = _
		GetSenecaMenu("or") & _
		GetSenecaHeader("Oradores", AphaIndex, PagesSummary, PagesIndex)
							
	GetSenecaSpeakers = GetSenecaSpeakers & _
		"<div class=""datalist"">" & _
		GetXMLAsHTML(OAIResponse,"xsl\or.xsl") & _
		"</div>"
	
	if aAlpha <> "" Then
		GetSenecaSpeakers = GetSenecaSpeakers & _
			GetSenecaFooter("","")
	Else
		GetSenecaSpeakers = GetSenecaSpeakers & _
			GetSenecaFooter(PagesSummary,PagesIndex)
	End if

	If CInt(Application("DEBUG")) = 1 Then
		GetSenecaSpeakers = _
			"<div><span style=""color:black; background:white"">HttpRequest:" & Request.ServerVariables("URL") & "?" & Request.QueryString & "</span></div>" &_
			"<div><span style=""color:black; background:white"">OAIRequest:" & OAIRequest & "</span></div>" & _
			GetSenecaSpeakers
	End If
	
End Function
'
' GetBSDatePicker
'
Function GetBSDatePicker(aDateFrom,aDateUntil,aDateSelect)

  GetBSDatePicker = GetBSDatePicker & "<SELECT id=""date_select"" class=""queryform_input"" style=""width:148px;height:19px;line-height:19px;vertical-align:middle"" OnChange=""javascript:{SetDateFromUntilMode(this.value);}"">"
  If aDateSelect <> "from_until" Then
      GetBSDatePicker = GetBSDatePicker & "<OPTION value=""date"" SELECTED>Una fecha</OPTION>"
	  GetBSDatePicker = GetBSDatePicker & "<OPTION value=""from_until"">Rango de fechas</OPTION>"
  Else
      GetBSDatePicker = GetBSDatePicker & "<OPTION value=""date"" >Una fecha</OPTION>"
      GetBSDatePicker = GetBSDatePicker & "<OPTION value=""from_until"" SELECTED>Rango de fechas</OPTION>"
  End If
	GetBSDatePicker = GetBSDatePicker & "</SELECT>"
	
  GetBSDatePicker = GetBSDatePicker & "<span id=""date_from_label"" class=""queryform_label"">&nbsp;&nbsp;&nbsp;Desde:&nbsp;</span>"
  GetBSDatePicker = GetBSDatePicker & "<input id=""datepicker_from"" type=""text"" class=""queryform_input"" style=""vertical-align:middle;font-size:8pt;height:13px;line-height:13px;"" onkeydown=""javascript:{if ((event.which && event.which == 13) || (event.keyCode && event.keyCode == 13)) {GoBS(0);} else {}}"" size=""14"" value=""" & aDateFrom &  """/>"
  GetBSDatePicker = GetBSDatePicker & "&nbsp;<img src=""images/datepicker.gif"" style=""vertical-align:middle"" onclick=""$('#datepicker_from').datepicker('show');""/>" 
  
  GetBSDatePicker = GetBSDatePicker & "<span id=""date_until_block"">"
  GetBSDatePicker = GetBSDatePicker & "<span id=""date_until_label"" class=""queryform_label"">&nbsp;&nbsp;&nbsp;Hasta:&nbsp;</span>"
  GetBSDatePicker = GetBSDatePicker & "<input id=""datepicker_until"" type=""text"" class=""queryform_input"" style=""vertical-align:middle;font-size:8pt;height:13px;line-height:13px;"" onkeydown=""javascript:{if ((event.which && event.which == 13) || (event.keyCode && event.keyCode == 13)) {GoBS(0);} else {}}"" size=""14"" value=""" & aDateUntil &  """/>"
  GetBSDatePicker = GetBSDatePicker & "&nbsp;<img src=""images/datepicker.gif"" style=""vertical-align:middle"" onclick=""$('#datepicker_until').datepicker('show');""/>" 
  GetBSDatePicker = GetBSDatePicker & "</span>"
  
  GetBSDatePicker = GetBSDatePicker & _
      "<SCRIPT type=""text/javascript"">" & _
      "function SetDateFromUntilMode(aDateSelect) {" & _
      " if (aDateSelect != 'from_until') {" & _
      "    document.getElementById('date_from_label').innerHTML = '&nbsp;&nbsp;&nbsp;';" &_
      "    document.getElementById('datepicker_until').value='';" & _
      "    document.getElementById('date_until_block').style.visibility='hidden';" & _
      " } else {" & _
      "    document.getElementById('date_from_label').innerHTML = '&nbsp;&nbsp;&nbsp;Desde:&nbsp;';" & _
      "    document.getElementById('date_until_block').style.visibility='visible';" & _
      " }" & _
      "}" & _
      "</SCRIPT>"
  GetBSDatePicker = GetBSDatePicker & "<SCRIPT type=""text/javascript"">SetDateFromUntilMode('" & aDateSelect & "')</SCRIPT>" 
End Function
'
' GetBSTextSelect
'
Function GetBSTextSelect(aKeywords)
	GetBSTextSelect = _
        "<input class=""queryform_input"" style=""width:600px;vertical-middle:top"" type=""text"" id=""keywords"" value='" & aKeywords & "' onkeydown=""javascript:{if ((event.which && event.which == 13) || (event.keyCode && event.keyCode == 13)) {GoBS(0);}}"">"

    'GetBSTextSelect = GetBSTextSelect & aKeywords
    
End Function

'
' GetBSTextOptions
'
Function GetBSTextOptions(aKeywordsOptions)
    
    If aKeywordsOptions = "1" Then
		GetBSTextOptions = "&nbsp;<input style=""vertical-align:middle"" type=""checkbox"" id=""kw_exact"" CHECKED>" & "<span class=""queryform_label"" style=""vertical-align:middle"">&nbsp;Buscar texto exacto."
	Else
		GetBSTextOptions = "&nbsp;<input style=""vertical-align:middle"" type=""checkbox"" id=""kw_exact"" >" & "<span class=""queryform_label"" style=""vertical-align:middle"">&nbsp;Buscar texto exacto."
	End If
		
End Function

'
' GetBSQueryForm
'
Function GetBSQueryForm(aSet, aLegs, aGBody, aDateFrom, aDateUntil,aDateSelect, aKeywords,aKeywordsOptions)
    GetBSQueryForm = _
      "<div>" & _
	    "<form id=""queryform"" class=""queryform"" method=""GET"" action=""javascript:{GoBS(0);}"">"        
	
    GetBSQueryForm = GetBSQueryForm & _
        "<table>"
   
    If Application("BS_ONLY_CURRENT_LEGS") = 0 Then
		GetBSQueryForm = GetBSQueryForm & _
			"<tr style=""height:28px;"">" & _
				"<td style=""width:90px;vertical-align:middle;""><span class=""queryform_label"">&nbsp;Legislatura:&nbsp;&nbsp;</span></td>" & _
				"<td style=""width:100%;vertical-align:middle;""><span class=""queryform_input"">" & GetLegsSelect(aLegs,TRUE,"width:248px;height:19px;line-height:19px;","javascript:{GoBS(1);}") & "</span></td>" & _
			"</tr>"
    End If
    
    GetBSQueryForm = GetBSQueryForm & _
			"<tr style=""height:28px"">" & _
				"<td style=""width:90px;vertical-align:middle;""><span class=""queryform_label"">&nbsp;Órgano:&nbsp;&nbsp;</span></td>" & _
				"<td style=""width:100%;vertical-align:middle;""><span class=""queryform_input"">" & GetGBodySelectLegs(aLegs,aGBody,"width:605px;height:19px;line-height:19px;","") & "</span></td>" & _
			"</tr>"

    GetBSQueryForm = GetBSQueryForm & _
			"<tr style=""height:28px"">" & _
				"<td style=""width:90px;vertical-align:middle;""><span class=""queryform_label"">&nbsp;Fecha:&nbsp;&nbsp;</span></td>" & _
				"<td style=""width:100%;vertical-align:middle;"">" & GetBSDatePicker(aDateFrom,aDateUntil,aDateSelect) & "</td>" & _
			"</tr>"
        
    GetBSQueryForm = GetBSQueryForm & _
			"<tr style=""height:28px"">" & _
				"<td style=""width:90px;vertical-align:middle;""><span class=""queryform_label"">&nbsp;Texto:&nbsp;&nbsp;</span></td>" & _
				"<td style=""width:100%;vertical-align:middle;"">" & _
					GetBSTextSelect(aKeywords) & "&nbsp;" & GetBSTextOptions(aKeywordsOptions) & _
				"</td>" & _
			"</tr>"

	''        "<td class=""queryform"" style=""width:100%;""><span class=""queryform_input"">" & GetBSTextSelect(aKeywords,aKeywordsOptions) & "</span></td>" & _

	GetBSQueryForm = GetBSQueryForm & _
        "<tr style=""height:35px;"">" & _
        "<td style=""width:90px;""><span>&nbsp;</span></td>" & _
        "<td style=""width:100%;"">" & _
			"<a href=""#"" class=""grey-button pcb"" onclick=""javascript:{GoBS(0);}""><span>Buscar</span></a>" & _
			"&nbsp;&nbsp;&nbsp;&nbsp;" & _
			"<a href=""#"" class=""grey-button pcb"" onclick=""javascript:{GoBS(2);}""><span>Limpiar</span></a>" & _
			"&nbsp;&nbsp;" & _
			"<span id=""wait_message"" class=""wait_message""></span>" & _
		"</td>"		

    GetBSQueryForm = GetBSQueryForm & _
        "</table>"
    
    GetBSQueryForm = GetBSQueryForm & _
	    "</form>" 
    GetBSQueryForm = GetBSQueryForm & _
	    "</div>"
	GetBSQueryForm = GetBSQueryForm & Chr(13) & Chr(10)

End Function
'
' GetSenecaBS
'
Function GetSenecaBS()
	Dim qSet
	Dim qSubset
	Dim qLegs
	Dim qGBody
	Dim qDate
	Dim qDateFrom
	Dim qDateUntil
	Dim qDateSelect
	Dim qKeywords
	Dim qKeywordsOptions
	Dim qSpkr
	Dim qPage
	Dim qReset

	GetSenecaBS = ""

	qSet = ""
	qSubset = ""
	qLegs = ""
	qGBody = ""
	qDate = ""
	qDateFrom = ""
	qDateUntil = ""
	qDateSelect = ""
	qKeywords = ""
	qKeywordsOptions = ""
	qSpkr = ""
	qPage = 0
	qPageSize = 0
	qReset = 0
	PagesSummary = ""
	PagesIndex = ""
	ErrorText = ""
   
	If (Request.QueryString="") or (Request.QueryString("op") = "reset") Then
		qReset = 1
		qPage = 1
		qPageSize = CInt(Application("DS_PAGESIZE"))
	End If

	qSet = "sesiones"
	If CInt(Application("BS_ONLY_CURRENT_LEGS")) = 1 Then
		qLegs = GetLegsCo
	Else
		qLegs= GetQueryStringTokensLegs()
	End If

	If qReset = 1 then
		qGBody = ""
	eLSE
		qGBody = GetQueryStringTokensgBody()
	End If

	If qReset = 0 then
		If GetQueryStringTokensDateFromUntil(qDateFrom,qDateUntil,qDateSelect) Then
	    End If
		qKeywords = GetQueryStringTokensKeywords()
		qKeywordsOptions = GetQueryStringTokensKeywordsOptions()
		If GetQueryStringTokensPage(qPage,qPageSize,CInt(Application("BS_PAGESIZE"))) Then
		End If
		
		OAIRequest = OAIBuildSearchRequest(qSet,qLegs,qGBody,qDateFrom,qDateUntil,qKeywords,qKeywordsOptions,qPage,qPageSize)
		OAIResponse = OAIGetResponse(OAIRequest)
	End If

	If (qReset = 0) Then
		If GetTotalRecords(OAIResponse) > 0 Then
			PagesSummary = GetPagesSummary(OAIResponse)
			PagesIndex = GetPagesIndex(OAIResponse)
			
			GetSenecaBS = _
				GetSenecaMenu("bs") & _
				GetSenecaHeader("Buscar","Introduzca los criterios de búsqueda y pulse ""Buscar"". (Debe indicarse una Legislatura, un Organo, una Fecha o un Texto para buscar)",PagesSummary,PagesIndex) 

			GetSenecaBS = GetSenecaBS & _
				GetBSQueryForm(qSet,qLegs,qGBody,qDateFrom,qDateUntil,qDateSelect,qKeywords,qKeywordsOptions)
				
			GetSenecaBS = GetSenecaBS & _				
				"<div style=""margin-top:3px; margin-bottom:3px;"">Se han encontrado <strong>"& GetTotalRecords(OAIResponse) & "</strong> sesiones con los criterios especificados.</div>"
			GetSenecaBS = GetSenecaBS & _
				"<div class=""datalist"">" & _ 
				GetXMLAsHTML(OAIResponse,"xsl\bs.xsl") & _ 
				"</div>"
			GetSenecaBS = GetSenecaBS & _
				GetSenecaFooter(PagesSummary,PagesIndex)
		Else
			GetSenecaBS = _
				GetSenecaMenu("bs") & _
				GetSenecaHeader("Buscar", "Introduzca los criterios de búsqueda y pulse ""Buscar"". (Debe indicarse una Legislatura, un Organo, una Fecha o un Texto para buscar)", "","")

			GetSenecaBS = GetSenecaBS & _
				GetBSQueryForm(qSet,qLegs,qGBody,qDateFrom,qDateUntil,qDateSelect,qKeywords,qKeywordsOptions)
			
			If ErrorText <> "" Then
				GetSenecaBS = GetSenecaBS  & _
					GetHTMLBoxError(ErrorText,"")
			Else
				GetSenecaBS = GetSenecaBS  & _
					GetHTMLBoxError("No se encontraron sesiones con los criterios especificados.","")
			End If			
		End If
	Else
		GetSenecaBS = _
			GetSenecaMenu("bs") & _
			GetSenecaHeader("Buscar", "Introduzca los criterios de búsqueda y pulse ""Buscar"". (Debe indicarse una Legislatura, un Organo, una Fecha o un Texto para buscar)", "","") 
		GetSenecaBS = GetSenecaBS & _
			GetBSQueryForm(qSet,qLegs,qGBody,qDateFrom,qDateUntil,qDateSelect,qKeywords,qKeywordsOptions)
	End If
  	  
	If CInt(Application("DEBUG")) = 1 Then
		GetSenecaBS = _
			"<div><span style=""color:black; background:white"">HttpRequest:" & Request.ServerVariables("URL") & "?" & Request.QueryString & "</span></div>" &_
			"<div><span style=""color:black; background:white"">Keywords:" & qKeywords& "</span></div>" &_
			"<div><span style=""color:black; background:white"">OAIRequest:" & OAIRequest & "</span></div>" & _
			GetSenecaBS
    End If					  	  
End Function
'
'
'
Function GetSessionTitle()
   Dim OAIRequest
   Dim OAIResponse
   Dim qSet
   Dim qIdentifier
   Dim qKeywords

   GetSessionTitle = ""

   qKeywords = GetQueryStringTokensKeywords()

   qSet = ""
   qIdentifier = ""
   If GetQueryStringTokensId(qSet,qIdentifier) Then
	    OAIRequest = OAIBuildGetRecordRequest("sesiones",qIdentifier)
	    OAIResponse = OAIGetResponse(OAIRequest)
        GetSessionTitle = GetXMLAsHTML(OAIResponse, "xsl\st.xsl")
   Else
        GetSessionTitle = "Can't get entity id (" & Request.QueryString & ")"
   End If
   
   GetSessionTitle = GetSessionTitle
End Function

'
'
'

Function GetSessionAbstract()
   Dim OAIRequest
   Dim OAIResponse
   Dim qSet
   Dim qIdentifier
   Dim qKeywords

   GetSessionAbstract = ""

   qKeywords = GetQueryStringTokensKeywords()

   qSet = ""
   qIdentifier = ""
   If GetQueryStringTokensId(qSet,qIdentifier) Then
	    OAIRequest = OAIBuildGetRecordRequest("sesiones",qIdentifier)
	    OAIResponse = OAIGetResponse(OAIRequest)
        GetSessionAbstract = GetXMLAsHTML(OAIResponse, "xsl\od.xsl")
   Else
        GetSessionAbstract = "Can't get entity id (" & Request.QueryString & ")"
   End If
   
   GetSessionAbstract = GetSessionAbstract
End Function


'
'
'
Function GetSessionInfo()
   Dim OAIRequest
   Dim OAIResponse
   Dim qSet
   Dim qIdentifier
   Dim qKeywords

   GetSessionInfo = ""

   qKeywords = GetQueryStringTokensKeywords()

   qSet = ""
   qIdentifier = ""
   If GetQueryStringTokensId(qSet,qIdentifier) Then
	    OAIRequest = OAIBuildGetRecordRequest(qSet,qIdentifier)
	    OAIResponse = OAIGetResponse(OAIRequest)
        GetSessionInfo = GetXMLAsHTML(OAIResponse, "xsl\si.xsl")
   Else
        GetSessionInfo = "Can't get entity id (" & Request.QueryString & ")"
   End If
   
   GetSessionInfo = GetSessionInfo & Chr(13) & Chr(10)
End Function

'
' GetPlayList
'
Function GetPlayList()
   Dim OAIRequest
   Dim OAIResponse
   Dim oXML   
   Dim MeetingId
   Dim MeetingTitle
   Dim qKeywords
   Dim MediaAssets
   Dim MediaAssetsCount
   Dim MediaAsset
   Dim MediaAssetId
   Dim MediaAssetIdFirst
   Dim MediaAssetClipIn
   Dim MediaSourceType
   Dim MediaSourceURL
   'Dim MediaStreamingProtocolDefault
   'Dim MediaStreamingProtocol
   'Dim MediaStreamingPort
   Dim Asset
   Dim AssetOffset
   Dim AssetTab

   GetPlayList = ""

   MeetingId = GetMeetingId()
   MeetingTitle=""
   Asset=""
   AssetOffset=""
   AssetTab = -1
   If GetQueryStringTokensAsset(Asset,AssetOffset) Then
   End If
   qKeywords = GetQueryStringTokensKeywords()
   MediaAssetsCount = 0
   
   If MeetingId <> 0 Then
     	OAIRequest = OAIBuildGetRecordRequest("sesiones","oai:seneca:sesiones/" & MeetingId)
        OAIResponse = OAIGetResponse(OAIRequest)
  		Set oXML = Server.CreateObject("Microsoft.XMLDOM")
	   	oXML.async = False
		If oXML.LoadXML(OAIResponse) Then
			Set MeetingTitle= oXML.SelectSingleNode("OAI-PMH/GetRecord/record/metadata/oai_actOfParliament:actOfP/actOfP:governing-body.name")
             
			MediaAssetsCount = 0
            Set MediaAssets = oXML.SelectNodes("OAI-PMH/GetRecord/record/metadata/oai_media:media/media:mediaAssets/media:mediaAsset")
			If not (MediaAssets is Nothing)	Then
				For each MediaAsset in MediaAssets
					If not (MediaAsset is Nothing)	Then
						MediaAssetsCount = MediaAssetsCount + 1
						Set MediaAssetId = MediaAsset.SelectSingleNode("media:mediaAsset.id")
						Set MediaAssetClipIn = MediaAsset.SelectSingleNode("media:mediaAsset.clip/media:mediaAsset.clip.timecode_begin_offset")
						Set MediaSourceType = MediaAsset.SelectSingleNode("media:mediaAsset.sources/media:mediaAsset.source[@nsource='1']/media:mediaAsset.source.type")

						If not (MediaSourceType is Nothing) Then
							If (Asset<>"") and  (MediaAssetId.Text = Asset) Then
								AssetTab = MediaAssetsCount - 1
							End If
   									   '
							' Utilizar OAI para obtener una ASX para el media player
							'
							MediaSourceURL = "oai/asx.asp?id=" & MediaAssetId.Text
							
							'MediaStreamingProtocolDefault = "http"
							'MediaStreamingProtocol = Application("STREAMING_PROTOCOL")							
							'if MediaStreamingProtocol = "" Then
							'   MediaStreamingProtocol = MediaStreamingProtocolDefault
							'End If
						    '	
							'If MediaStreamingProtocol <> MediaStreamingProtocolDefault Then
					   		'    MediaSourceURL = MediaSourceURL & "&proto=" & MediaStreamingProtocol 
							'End If
							'
							'MediaStreamingPort = Application("STREAMING_PORT")
							'If (MediaStreamingPort <> 0) Then
							'	MediaSourceURL = MediaSourceURL & "&port=" & MediaStreamingPort
							'End If
							'
							If MediaAssetClipIn Is Nothing Then
								GetPlayList = GetPlayList & _
									"<script type=""text/javascript"" language=""javascript"">WMPAddStream(" & MediaAssetId.Text & ",'" & MediaSourceType.Text & "','" & MediaSourceURL & "');</script>"
							Else
								GetPlayList = GetPlayList & _
									"<script type=""text/javascript"" language=""javascript"">WMPAddClippedStream(" & MediaAssetId.Text & ",'" & MediaSourceType.Text & "','" & MediaSourceURL & "','" & MediaAssetClipIn.Text & "');</script>"
							End If
						End If
					End If
				Next
			End If
        End If
   End If

   'If GetPlayList = "" Then
   '   GetPlayList = GetPlayList & _
   '		   "<script type=""text/javascript"" language=""javascript"">alert('NoStreamsFound!')</script>"
   'End If
   

   If (MeetingId <> 0 ) and (MediaAssetsCount>0) Then 
       OAIRequest = OAIBuildRequestListRecords("intvcom","oai:seneca:sesiones/" & MeetingId,"","","","",qKeywords, 1000, 1, 1000)
       OAIResponse = OAIGetResponse(OAIRequest)
       GetPlayList = GetPlayList & GetXMLAsHTML(OAIResponse,"xsl\pl.xsl")
   End If
   
   If (Asset <> "") and (AssetOffset <> "") Then
     GetPlayList = GetPlayList & _
 	       "<script type=""text/javascript"" language=""javascript"">var $tabs = $('#tabs').tabs(); $tabs.tabs('select'," & AssetTab & ");</script>"
     GetPlayList = GetPlayList & _
 	       "<script type=""text/javascript"" language=""javascript"">WMPSetStart('/oai/asx.asp?id=" & Asset & "','" & AssetOffset & "');</script>"
   End If
End Function

'
' GetSenecaPlay
'
Function GetSenecaPlay()
	GetSenecaPlay = ""
	
	GetSenecaPlay = _
		GetSenecaMenu("play") & _
		GetSenecaHeader("Archivo de video","","<img src=""images/close.png"" style=""width:14px;height:14px;vertical-align:top;cursor:pointer;"" onclick=""javascript: window.history.back(); return false;""/>","")

	GetSenecaPlay = GetSenecaPlay & _
		"<div class=""player"" style=""border-bottom:0;"">" & _
		"  <table style=""width:100%"">" & _
		"		<tr>" & _
		"			<td style=""padding:1px"">" & _
		"				<div id=""wmplayer_container"">" & _
		"				</div>" & _
		"				<script type=""text/javascript"">" & _
		"					WMPCreate('wmplayer_container',1);" & _
		"				</script>" & _
		"			</td>" & _
		"			<td style=""width:100%;"">" & _
		"				<div style=""height:265px;margin-left:5px;margin-right:5px;vertical-align:top;"">" & _
		"					" & GetSessionInfo() & _
		"				</div>" & _
		"				<div style=""border-top:1px solid silver;"">" & _
		"					<span id=""player_status""></span>" & _
		"				</div>" & _
		"			</td>" & _
		"		</tr>" & _
		"	</table>" & _
		"</div>"

	GetSenecaPlay = GetSenecaPlay & _
		"<div class=""player"" style=""border-top:0"">" & GetPlaylist() & "</div>"	
			
	'GetSenecaPlay = GetSenecaPlay & _
	'	"<div style=""height:21px; margin-left:2px;margin-top:2px;margin-right:2px;"">" & _
	'	"	<span>" & _
	'	"		<img src=""images/information.gif"" align=""absmiddle"" border=""0"" />&nbsp;Seleccione una grabación o intervención para reproducir." & _
	'	"	</span>" & _
	'	"</div>"

	GetSenecaPlay = GetSenecaPlay & Chr(13) & Chr(10)
End Function

'
' GetSenecaPlayBox
'
Function GetSenecaPlayBox()
	
	GetSenecaPlayBox = "<div style=""width:100%;background-color:white;"">" 
	GetSenecaPlayBox = GetSenecaPlayBox &_
					   "<div style=""width:100%;text-align:right;font-size:7pt;""><a class=""tiptip"" title=""Ver el video en pantalla compelta"" onclick=""if (wmplayer) wmplayer.fullScreen=true;"">[Pantalla completa]</a></div>"
	GetSenecaPlayBox = GetSenecaPlayBox &_
						"<div style=""background-color:silver;width:100%;text-align:left;"">" & _
						GetSessionTitle &_
						"</div>"

	GetSenecaPlayBox = GetSenecaPlayBox & _
						"<div style=""width:100%"">" & _
						"	 <div id=""wmplayer_container"" style=""width:100%;"">" & _
						"	 </div>" & _
						"	 <script type=""text/javascript"">" & _
						"	   WMPCreate('wmplayer_container',1);" & _
						"	 </script>" & _
						"</div>"

	GetSenecaPlayBox = GetSenecaPlayBox & _
						"<div class=""player"" style=""height:410px;border-top:0;border-width:1px;border-color:silver;padding:1px;"">" &_
						GetPlaylist() &_
						"</div>"	
			
	'GetSenecaPlay = GetSenecaPlay & _
	'	"<div style=""height:21px; margin-left:2px;margin-top:2px;margin-right:2px;"">" & _
	'	"	<span>" & _
	'	"		<img src=""images/information.gif"" align=""absmiddle"" border=""0"" />&nbsp;Seleccione una grabación o intervención para reproducir." & _
	'	"	</span>" & _
	'	"</div>"

	GetSenecaPlayBox = GetSenecaPlayBox & "</div>"
	
	offset = Request.QueryString("offset")
	GetSenecaPlayBox = GetSenecaPlayBox &_
						"<script type=""text/javascript"">" &_						
						"var tc_start = '" & offset & "';" &_ 						
						"</script>"						
End Function

Function GetSenecaAbstractBox()

	GetSenecaAbstractBox = "<div style=""width:99%;background-color:silver;text-align:left;"">" & _
						   GetSessionTitle &_
						   "</div>"
						
	GetSenecaAbstractBox = GetSenecaAbstractBox & _
						   "<div style=""height:15px"">&nbsp</div>"

	GetSenecaAbstractBox = GetSenecaAbstractBox & _
						"<div style=""width:99%;padding:6;background-color:white;"">" &_
							"<div style=""width:100%;font-size:12pt;text-align:left;"">" &_
								"Orden del día" &_
							"</div>" &_
						   "<div style=""height:15px"">&nbsp</div>" &_							
							"<div style=""width:100%;padding:2px;font-size:8pt;text-align:left;"">" &_
								GetSessionAbstract &_
							"</div>" &_
						"</div>"
						
	GetSenecaAbstractBox = GetSenecaAbstractBox & "</div>"
End Function

'
' GetGbHelperResponse
'
Function GetGbHelperResponse()
   	
   if (request.QueryString <> "") Then
       GetGbHelperResponse = GetSenecaDS(true)
   else	
       GetGbHelperResponse = "(void)"
   end if	 
End Function

'
' GetOrHelperResponse
'
Function GetOrHelperResponse()
   	
   if (request.QueryString <> "") Then
       GetOrHelperResponse = GetSenecaIT(true)
   else	
       GetOrHelperResponse = "(void)"
   end if	 
End Function


