#!/bin/sh
# the next line restarts using wish \
exec wish "$0" "$@"

#
#
if ![string compare $tcl_platform(platform) "unix"] { 
	set  installpath [exec where.tcl]
	if ![string compare $installpath ""] {
		puts "Zipper! Path Not in PATH list"
		exit
	}
	exec "ridx" 
} else {
	tk_dialog .bgerror "NOTICE" "Multiplatform Support is Underway.\n
			     Some Functions May not be supported.\n
			     Package Index will have to be manually
			     Updated."  "info" 0 "Ok"
	set  installpath "CHANGE TO ZIPPER INSTALLED DIRECTORY"
	exec tclsh $installpath/ridx $installpath
}
set auto_path "$auto_path $installpath"
package require ctcp 1.63
package require custom 1.63
package require server 1.63
package require user 1.5
package require personal 1.63
package require dccchat 1.63
package require winman 1.63
package require clicks 1.63
package require util 1.63
package require events 1.63
package require setup 1.62
package require inet 1.63
package require fontman 1.63
package require tked 1.0

set plat $tcl_platform(platform)

set dccapplist ""
set serverpass ""
set settingschanged 0
set dccsavdir "~"
set autoacceptchat 0
set autoacceptsend 0
set giftype [expr round( rand()*10 )]



set expandtitle yes
set version 1.631
set device "eth0"
set actwin ""
set xip ""
set esvrSock ""
set currchan ""
set response ""
set ctcp_message ""
set parm1 ""
set parm2 ""
set parm3 ""
set parm4 ""
set parm5 ""
set parm6 ""
set varlist ""
set userlist ""
set aliaslist ""
set eventlist ""
set notify ""
set isonlist ""
set longip ""
set serveractive 0
set ignore ""
set ctag "0"
set whoisvisible 1
set bansvisible 1
set whoisuser ""
set channels ""
set chef 0
set notifywindow 1
set bytefloodlimit 350
set timerarray(00) "multi|0|0|"
set wavplayer "wavp"
set appdir ""
set webbrowser "netscape"
set urllist ""
set currdccdir "~"
set logdir "~/zipperlogs"
set logchannels 1
set logmsg 1
set logdcc 1
set openloglist ""

####
set chanb1 0
set chanb2 0
set chanb3 0

set byteorder $tcl_platform(byteOrder)
#set default event style
set kickst ""
set joinst ""
set notfst ""
set notcst ""
set actst  ""
set partst ""

set kickcol 4
set joincol 3
set notfcol 3
set notccol 7
set actcol  6
set partcol 3
set modecol 3

### Window Information Data structure
set chaninfo(server,type) "server"
set chaninfo(server,nickchan) "server"
set chaninfo(server,stat) "I"
set chaninfo(server,name) ".zipperserver"
set chaninfo(server,winnumber) "server"
set chaninfo(server,socket) "undefined"
set chaninfo(server,history) ""
set chaninfo(server,historyidx) 0
set chaninfo(server,logging) 0
set chaninfo(server,logfile) ""
set chanrev(.zipperserver) "server"

set historyidx(server) 0
set history(server) ""

# flood detection settings example
# current message count
# start time of count
# number secs in time limit
# lines per timelimit 
# average lines per time limit

set flooddetect(userhost,count) 0
set flooddetect(userhost,start) 0
set flooddetectsecs 10
set flooddetectlimit 5
set flooddetect(userhost,avglpm) 0



set servers ""
set userpopups(notify) ""
set userpopups(userlist) ""
set userpopups(channel) ""
set userpopups(query) ""
set listmatch ""
set varlist ""
set loadscript ""
set defaultquit "Ok..Luv you...Byebye!"



if ![string compare $plat unix] {
## LOGNAME change thanks to Dave Richards

	set tmp $env(LOGNAME)
	set homedir $tmp
	set rcdir "[file dirname ~]/$tmp"
	set rcdir "$rcdir/.zipper"
} else {
	set rcdir $installpath
}

set allowsaverc 1

#
#       0 white       8 yellow
#       1 black       9 lightgreen
#       2 blue       10 cyan
#       3 green      11 lightcyan
#       4 red        12 lightblue
#       5 brown      13 pink
#       6 purple     14 grey
#       7 orange     15 lightgrey
#                       


array set mirccolors {
        0 #ffffff   8 #ffff00
        1 #000000   9 #8cff8c
        2 #0000ff   10 #00ffff
        3 #00ff00   11 #e0ffff
        4 #ff0000   12 #add8e6
        5 #a52a2a   13 #ffc0cb
        6 #a020b0   14 #bebebe
        7 #ffa500   15 #d3d3d3
}
                       



set rc [lindex $argv 0]
set sav [lindex $argv 1]


if ![sNull $rc] {
	set rcdir $rc
}
if ![sNull $sav] {
	set allowsaverc $sav
}


init_check_rc
init_user_rc
init_ctcp_rec
init_events
init_aliases
init_notify
init_ignore
init_channels
init_servers
init_users
init_stylecolors
init_url
set_styles
create_fonts
#####

#set default fonts
set serverfont   ZipperN
set channelfont  ZipperN
set queryfont    ZipperN


set winlist ""
set winbase 0
set myuserhost "$nick!$username@$hostname"



wm withdraw .
set w server
new_server $w "Zipper: Not Connected"
notify_window
splash
loadscript $rcdir/startup.zipper
after 1000 processtimers
tkwait window .zipperserver
