#!/bin/bash
# \
exec wish $0

###
###
################################################################
###                                              ###############
###        Alvaro's Messenger - amsn             ###############
###                                              ###############
###       http://amsn.sourceforge.net            ###############
###     amsn-users@lists.sourceforge.net         ###############
###                                              ###############
################################################################
### airadier at users.sourceforge.net (airadier) ###############
### Universidad de Zaragoza                      ###############
### http://aim.homelinux.com                     ###############
################################################################
### grimaldo@panama.iaehv.nl (LordOfScripts)     ###############
### http://www.coralys.com/linux/                ###############
################################################################
### Original ccmsn                               ###############
### http://msn.CompuCreations.com/               ###############
### Dave Mifsud <dave at CompuCreations dot com> ###############
################################################################
###
###
### This program is free software; you can redistribute it and/or modify
### it under the terms of the GNU General Public License as published by
### the Free Software Foundation; version 2 of the License
###
### This program is distributed in the hope that it will be useful,
### but WITHOUT ANY WARRANTY; without even the implied warranty of
### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
### GNU General Public License for more details.
###
### You should have received a copy of the GNU General Public License
### along with this program; if not, write to the Free Software
### Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
###
###

############################################################
### Hide the window until it has been fully displayed
############################################################
package require Tk
wm state . withdraw


############################################################
### Some global variables
############################################################
set version "0.95"
set date "12/05/2005"
set weburl "http://amsn.sourceforge.net"
set program_dir "."
set HOME ""
set HOME2 ""
set files_dir ""

#=======================================================================


############################################################
### Look if we are launched from a link
### and set the correct working dir
############################################################

#Fixed by Tomasz Nguyen
set program_dir [file dirname [info script]]
set program [file tail [info script]]


while {[catch {file readlink [file join $program_dir $program]} program]== 0} {
	if {[file pathtype $program] == "absolute"} {
		set program_dir [file dirname $program]
	} else {
		set program_dir [file join $program_dir [file dirname $program]]
	}

	set program [file tail $program]
}

set starting_dir [pwd]
cd $program_dir
set program_dir [pwd]
unset program
#unset program_dir

############################################################
### Setup other important directory paths
### depending on the platform
############################################################

if {![catch {tk windowingsystem} wsystem] && $wsystem == "aqua"} {
	set HOME "[file join $env(HOME) Library/Application\ Support/amsn]"
	set files_dir "[file join $env(HOME) Desktop/amsn\ received\ files]"
} elseif {$tcl_platform(platform) == "unix"} {
   set HOME "[file join $env(HOME) .amsn]"
   set files_dir "[file join $env(HOME) amsn_received]"
} elseif {$tcl_platform(platform) == "windows"} {
  if {[info exists env(USERPROFILE)]} {
     set HOME "[file join $env(USERPROFILE) amsn]"
     set files_dir "[file join $env(USERPROFILE) amsn_received]"
  } else {
   set HOME "[file join [pwd] amsn_config]"
   set files_dir "[file join [pwd] amsn_received]"
  }
} else {
   set HOME "[file join [pwd] amsn_config]"
   set files_dir "[file join [pwd] amsn_received]"
}
set HOME2 $HOME

############################################################
### And setup where to find optional packages
############################################################

lappend auto_path [file join ${HOME} plugins]
#Specific folder to check for package on platforms
if {![catch {tk windowingsystem} wsystem] && $wsystem == "aqua"} {
	lappend auto_path [file join utils macosx]
} elseif {$tcl_platform(platform) == "windows"} {
	lappend auto_path [file join utils windows]
} elseif {$tcl_platform(platform) == "unix"} {
	lappend auto_path [file join utils linux]
}
lappend auto_path [file join utils]

set libtls ""

catch { source [file join $HOME tlsconfig.tcl] }

if { $libtls != "" && [lsearch $auto_path $libtls] == -1 } {
    lappend auto_path $libtls
}

#TODO: Move this from here ??
#///////////////////////////////////////////////////////////////////////
#Notebook Pages (Buddies,News,Calendar,etc.)
set pgBuddy ""
set pgNews  ""
#///////////////////////////////////////////////////////////////////////


############################################################
#### Load program modules
############################################################
set initialize_amsn 1


proc reload_files { } {
	#ensure all globals are accessible
	foreach glob [info globals] {
 		global $glob
 	}
	
	source ctthemes.tcl
	source progressbar.tcl	;# Progressbar Megawidget
	source migmd5.tcl
	source des.tcl		;# DES encryption
	source sxml.tcl   	;# Simple XML parser
	
	source mutex.tcl
	source lang.tcl
	source automsg.tcl
	source smileys.tcl
	source skins.tcl	;# Used for skinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	source remote.tcl	;# The remote control proceuskinning purposes
	