*===============================================================================================
* Fhrt eine Suche auf dem BVLARCHIVIO-Server durch und zeigt die ersten drei Treffer direkt an.
*=============================================================================??================

    WAIT "S E A R C H I N G..." WINDOW NOWAIT

	*--------------------------------------------------------------------------------------
	* HTTP Client laden (SCHRITT 1)
	*--------------------------------------------------------------------------------------
	Local loHttp
	loHttp = NewObject ("cHTTPClient", "cHTTPClient.prg")
	
	*--------------------------------------------------------------------------------------
	* Die Zugangsdaten zum Archivio-Server (SCHRITT 2)
	*--------------------------------------------------------------------------------------
	loHttp.cUserName = "Archivio1"
	loHttp.cPassword = "***"
	If not loHttp.Connect ("192.168.1.101")
        WAIT CLEAR
		Return
	EndIf 
	
	*------------------------------------------------------------------------------------------------------------
	* USER-Anmeldung (SCHRITT 3) / Sofern keine Userverwaltung aktiviert ist, kann Schritt 3 bis 5 entfallen 
	*------------------------------------------------------------------------------------------------------------

        lc_pass_1="!bvli!"
        lc_pass_2="User1"
        lc_pass_3="Pass1"

	Local loEncoding, lcParam
	loEncoding = NewObject ("CHttpEncoding", "cHTTPClient.prg")
	lcParam = "bvl1=" + loEncoding.UrlEncode (Alltrim (lc_pass_1)) + "&bvl2=" + loEncoding.UrlEncode (Alltrim (lc_pass_2)) + "&bvl3=" + loEncoding.UrlEncode (Alltrim (lc_pass_3))

	*--------------------------------------------------------------------------------------
	* Ldt die Ergebnisseite im HTML Format herunter. (SCHRITT 4)
	*--------------------------------------------------------------------------------------
	Local lcHtmlCode
	lcHtmlCode = loHttp.Get ("http://192.168.1.101/BvLTech1.afp?" + m.lcParam)
	If "IDENTIFIZIEREN SIE SICH" $ m.lcHtmlCode
        WAIT CLEAR
	  MessageBox ("Useranmeldung erfolglos!")
	  Return
	EndIf

	*---------------------------------------------------------------------------------------------------------
	* Im HTML Dokument die aktuelle Session-Id auslesen und zusammen mit der Suchanfrage bergeben (SCHRITT 5)
	*---------------------------------------------------------------------------------------------------------
	Local lcFileUrl, lcResultFile, lcExt
	lcFileUrl = StrExtract (m.lcHtmlCode, "<IHRE_SESSION_ID>", "</IHRE_SESSION_ID>", 1)
	lcExt = SubStr (m.lcFileUrl, Rat("=", m.lcFileUrl) + 1)
        lcParam2="bvl2511="+lcExt



	*--------------------------------------------------------------------------------------
	* Den Suchtext bergeben. Weitere Suchbegriffe knnen ber bvl2, bvl3, usw. bergeben 
	* werden
	*--------------------------------------------------------------------------------------

        lc_gesucht_wird_1=ALLTRIM(Thisform.txtSuchtext.Value)   && den ersten Suchbegriff speichern
        lc_gesucht_wird_2=ALLTRIM(Thisform.txtSuchtext2.Value)  && den zweiten Suchbegriff speichern


	Local loEncoding, lcParam
	loEncoding = NewObject ("CHttpEncoding", "cHTTPClient.prg")
	lcParam = lcParam2+"&bvl1=" + loEncoding.UrlEncode (Alltrim (lc_gesucht_wird_1)) + "&bvl2=" + loEncoding.UrlEncode (Alltrim (lc_gesucht_wird_2))

	*--------------------------------------------------------------------------------------
	* Ldt die Ergebnisseite im HTML Format herunter. Diese knnte jetzt im Browser
	* angezeigt werden.
	*--------------------------------------------------------------------------------------
	Local lcHtmlCode
	lcHtmlCode = loHttp.Get ("http://192.168.1.101/BvLTech1.afp?" + m.lcParam)
	If "<br>FORBIDDEN</FONT></FONT><br>" $ m.lcHtmlCode
            WAIT CLEAR
	    MessageBox ("Ihre Suchanfrage ist nicht erlaubt!")
	    Return
	EndIf
	If not "<BVL_ARCHIVIO_LINK>" $ m.lcHtmlCode
            WAIT CLEAR
	    MessageBox ("Die Suche ergab keinen Treffer!")
	    Return
	EndIf
	



	*--------------------------------------------------------------------------------------
	* Im HTML Dokument sind alle Treffer in historischer Reihenfolge, die Links
        * zu den Dokumenten jeweils mit BVL_ARCHIVIO_LINK gekennzeichnet. 
        * Wir ermitteln den Link zum ersten Treffer
	*--------------------------------------------------------------------------------------
	Local lcFileUrl, lcResultFile, lcExt
	lcFileUrl = StrExtract (m.lcHtmlCode, "<BVL_ARCHIVIO_LINK>", "</BVL_ARCHIVIO_LINK>", 1)
	lcExt = SubStr (m.lcFileUrl, Rat("=", m.lcFileUrl) + 1)

	*--------------------------------------------------------------------------------------
	* Die Url enthlt nicht direkt die gewnschte Datei, sondern eine weitere
	* HTML Seite, die per Meta-Refresh die eigentliche Datei herunterldt. Wir
	* ermitteln die Url der zu ladenden Datei.
	*--------------------------------------------------------------------------------------
	Local lcResult, lcUrl
	lcResult = loHttp.Get (m.lcFileUrl)
	lcUrl = StrExtract (m.lcResult,  [<a href="], ["])

	*--------------------------------------------------------------------------------------
	* API Deklaration
	*--------------------------------------------------------------------------------------
	DECLARE Integer ShellExecute ;
	 IN shell32.dll ;
	 Integer hwndParent, ;
	 String cVerb, ;
	 String cFileName, ;
	 String cParameters, ;
	 String cDirectory, ;
	 Integer nCmdShow

	*--------------------------------------------------------------------------------------
	* Die Datei (PDF-Dokument, MSG Datei, etc.) wird in das temporre Verzeichnis
	* heruntergeladen und von dort ber den Standardviewer geladen.
	*--------------------------------------------------------------------------------------
	Local lcFile, lcContent
	lcFile = Addbs (Sys(2023)) + "01_" + Sys(2015) + "." + m.lcExt
	lcContent = loHttp.Get (m.lcUrl)
	StrToFile (m.lcContent, m.lcFile)
        WAIT CLEAR
	ShellExecute (0, "open", m.lcFile, "", "", 0)
 




	*--------------------------------------------------------------------------------------
	* Im HTML Dokument sind alle Treffer in historischer Reihenfolge, die Links
        * zu den Dokumenten jeweils mit BVL_ARCHIVIO_LINK gekennzeichnet. 
        * Wir ermitteln den Link zum zweiten Treffer
	*--------------------------------------------------------------------------------------
	Local lcFileUrl, lcResultFile, lcExt
	lcFileUrl = StrExtract (m.lcHtmlCode, "<BVL_ARCHIVIO_LINK>", "</BVL_ARCHIVIO_LINK>", 2)

        IF NOT EMPTY(lcFileUrl)
		lcExt = SubStr (m.lcFileUrl, Rat("=", m.lcFileUrl) + 1)

		*--------------------------------------------------------------------------------------
		* Die Url enthlt nicht direkt die gewnschte Datei, sondern eine weitere
		* HTML Seite, die per Meta-Refresh die eigentliche Datei herunterldt. Wir
		* ermitteln die Url der zu ladenden Datei.
		*--------------------------------------------------------------------------------------
		Local lcResult, lcUrl
		lcResult = loHttp.Get (m.lcFileUrl)
		lcUrl = StrExtract (m.lcResult,  [<a href="], ["])


		*--------------------------------------------------------------------------------------
		* API Deklaration
		*--------------------------------------------------------------------------------------
		DECLARE Integer ShellExecute ;
		 IN shell32.dll ;
		 Integer hwndParent, ;
		 String cVerb, ;
		 String cFileName, ;
		 String cParameters, ;
		 String cDirectory, ;
		 Integer nCmdShow

		*--------------------------------------------------------------------------------------
		* Die Datei (PDF-Dokument, MSG Datei, etc.) wird in das temporre Verzeichnis
		* heruntergeladen und von dort ber den Standardviewer geladen.
		*--------------------------------------------------------------------------------------
		Local lcFile, lcContent
		lcFile = Addbs (Sys(2023)) + "02_" + Sys(2015) + "." + m.lcExt
		lcContent = loHttp.Get (m.lcUrl)
		StrToFile (m.lcContent, m.lcFile)
		ShellExecute (0, "open", m.lcFile, "", "", 0)
 
	ENDIF






	*--------------------------------------------------------------------------------------
	* Im HTML Dokument sind alle Treffer in historischer Reihenfolge, die Links
        * zu den Dokumenten jeweils mit BVL_ARCHIVIO_LINK gekennzeichnet. 
        * Wir ermitteln den Link zum dritten Treffer
	*--------------------------------------------------------------------------------------
	Local lcFileUrl, lcResultFile, lcExt
	lcFileUrl = StrExtract (m.lcHtmlCode, "<BVL_ARCHIVIO_LINK>", "</BVL_ARCHIVIO_LINK>", 3)

        IF NOT EMPTY(lcFileUrl)
		lcExt = SubStr (m.lcFileUrl, Rat("=", m.lcFileUrl) + 1)

		*--------------------------------------------------------------------------------------
		* Die Url enthlt nicht direkt die gewnschte Datei, sondern eine weitere
		* HTML Seite, die per Meta-Refresh die eigentliche Datei herunterldt. Wir
		* ermitteln die Url der zu ladenden Datei.
		*--------------------------------------------------------------------------------------
		Local lcResult, lcUrl
		lcResult = loHttp.Get (m.lcFileUrl)
		lcUrl = StrExtract (m.lcResult,  [<a href="], ["])


		*--------------------------------------------------------------------------------------
		* API Deklaration
		*--------------------------------------------------------------------------------------
		DECLARE Integer ShellExecute ;
		 IN shell32.dll ;
		 Integer hwndParent, ;
		 String cVerb, ;
		 String cFileName, ;
		 String cParameters, ;
		 String cDirectory, ;
		 Integer nCmdShow

		*--------------------------------------------------------------------------------------
		* Die Datei (PDF-Dokument, MSG Datei, etc.) wird in das temporre Verzeichnis
		* heruntergeladen und von dort ber den Standardviewer geladen.
		*--------------------------------------------------------------------------------------
		Local lcFile, lcContent
		lcFile = Addbs (Sys(2023)) + "02_" + Sys(2015) + "." + m.lcExt
		lcContent = loHttp.Get (m.lcUrl)
		StrToFile (m.lcContent, m.lcFile)
		ShellExecute (0, "open", m.lcFile, "", "", 0)
 
	ENDIF



