;; Elisp source code header -*- coding: utf-8 -*-
;; Created: [00-56:39 Февраль 20 2008]
;; Modified: [23-42:45 Май 31 2008]
;; Description: 
;; Author: Stanislav M. Ivankin
;; Email: stas@concat.info
;; Tags: elisp, emacs
;; License: 

(require 'htmlize)

(setq htmlize-output-type 'inline-css
      htmlize-html-major-mode 'html-mode)

(defun my-reparse-htmlize-buffer ()
  (interactive)
  (message "htmlize buffer is: %s" (buffer-name))
  (save-excursion
    (save-restriction
      (save-match-data
        (widen)
        (goto-char (point-min))
        (search-forward "<pre>" nil t)
        (delete-region (point-min) (point))
        (insert (format
                 "<table width=\"100\" cellspacing=\"1\" cellpadding=\"5\" border=\"0\" bgcolor=\"%s\">
<tr><td width=\"100%%\">
<font color=\"%s\">
<b><pre>"
                 (frame-parameter nil 'background-color)
                 (frame-parameter nil 'foreground-color)))
        (goto-char (point-max))
        (search-backward "</pre>" nil t)
        (delete-region (point) (point-max))
        (insert "</pre></b>
</font>
</td></tr>
</table>")))))

;;(add-hook 'htmlize-after-hook 'my-reparse-htmlize-buffer)

;;;; WM3 stuff ;;;;

(require 'w3m-load)
(require 'w3m)
(require 'w3m-ccl)

(defun w3m-new-tab ()
  (interactive)
  (w3m-copy-buffer nil nil nil t))

(global-set-key (kbd "s-t") 'w3m-new-tab)

(defun w3m-browse-url-new-tab (url &optional new-session)
  (interactive)
  (w3m-new-tab)
  (w3m-browse-url url))

(setq browse-url-browser-function 'w3m-browse-url-new-tab)

(setq w3m-use-cookies t)

(setq w3m-home-page "about:blank")

 (defun w3m-download-with-wget (loc)
  (interactive "DSave to: ")
  (let ((url (or (w3m-anchor) (w3m-image))))
    (if url
        (let ((proc (start-process "wget" (format "*wget %s*" url)
                                   "wget" "--passive-ftp" "-nv" 
                                   "-P" (expand-file-name loc) url)))
          (with-current-buffer (process-buffer proc)
            (erase-buffer))
          (set-process-sentinel proc (lambda (proc str)
                                       (message "wget download done"))))
      (message "Nothing to get"))))

 (defun w3m-download-with-curl (loc)
  (define-key w3m-mode-map "c"
        (lambda (dir)
          (interactive "DSave to: ")
          (cd dir)
          (start-process "curl" "*curl*" "curl.exe" "-O" "-s" (w3m-anchor)))))

;;;; Jabber ;;;;

(add-to-list 'load-path "~/elisp/emacs-jabber")

(require 'jabber)
(require 'jabber-autoaway)

(defun jabber-xosd-display-message (message)
  "Displays MESSAGE through the xosd"
  (let ((process-connection-type nil))
    (start-process "jabber-xosd" nil "osd_cat" "-p" "bottom" "-c" "green" "-A" "right" "-f"
                   "-cronyx-helvetica-bold-r-normal--34-240-100-100-p-130-koi8-r" "-d" 
                   (number-to-string jabber-xosd-display-time))
    (process-send-string "jabber-xosd" message)
    (process-send-eof "jabber-xosd")))

(defun jabber-message-xosd (from buffer text propsed-alert)
  (jabber-xosd-display-message "New message."))

;;(require 'autosmiley)
(add-hook 'jabber-chat-mode-hook #'(lambda ()
                                     (setq fill-column 72)
                                     (turn-on-auto-fill)))
;;                                   (autosmiley-mode)

(add-hook 'jabber-post-connect-hook 'jabber-autoaway-start)
(setq jabber-nickname "user"
      jabber-password "password"
      jabber-server "concat.info"
      jabber-resource "notebook"
      jabber-username "stas")
(setq jabber-xosd-display-time 5)
(setq jabber-history-enabled t
      jabber-use-global-history nil
      jabber-history-dir "~/emacs/tmp/.emacs-jabber"
      jabber-backlog-days 60
      jabber-backlog-number 200)
(jabber-mode-line-mode)
(setq jabber-history-enable-rotation t
      jabber-history-size-limit 2048)
(setq jabber-vcard-avatars-retrieve nil)

(setq jabber-lost-connection-hook 'my-connect-jabber)
(add-to-list 'jabber-alert-message-hooks
             'jabber-message-xosd)

(defun my-connect-jabber ()
  (interactive)
  (if (and *jabber-connected* (not *jabber-disconnecting*))
      (progn
        (jabber-disconnect)
        (jabber-mode-line-mode nil)
        (message "We have disconnected from jabber"))
    (progn
      (jabber-mode-line-mode t)
      (jabber-connect jabber-nickname jabber-server jabber-resource nil jabber-password))))

(global-set-key [f6] 'my-connect-jabber)

;;;; google-define ;;;;
;;(require 'google-define)

;;;; http-emacs ;;;;
(require 'http-cookies)
(require 'http-get)
(require 'http-post)

;;;; LJ-Update ;;;;
(require 'ljupdate)
(setq lj-cache-dir "~/emacs/tmp/.ljupdate"
      lj-default-username "grep_z")

;;;; NewsTicker ;;;;
;;(autoload 'newsticker-start "newsticker" "Emacs Newsticker" t)
;;(autoload 'newsticker-show-news "newsticker" "Emacs Newsticker" t)
;;(add-hook 'newsticker-mode-hook 'imenu-add-menubar-index)
;;(setq newsticker-retrieval-interval 7200
;;      newsticker-keep-obsolete-items t
;;      newsticker-use-full-width nil
;;;;      newsticker-item-format "%t %d %l"
;;      newsticker-url-list
;;      '(("Emacs planet (ru)" "http://emacs.defun.ru/atom.xml" nil nil nil)
;;      ("Emacs planet (en)" "http://planet.emacsen.org/atom.xml" nil nil nil)))