//+-----------------------------------------------------------+
//|                   The Soul Of Fighters                    |
//+-----------------------------------------------------------+
//| Last Modified:                  07-Jan-2006               |
//| Web Site:                       http://www.yxScripts.com  |
//| EMail:                          m_yangxin@hotmail.com     |
//+-----------------------------------------------------------+
//|      Copyright 2003   Xin Yang  All Rights Reserved.      |
//+-----------------------------------------------------------+


var imgPath = "images/", sceneTimer = 0, gameStarted = false, gameInitialed = false;

var allMoves = "static_type=stance|static_src=static.gif,594,160|static_nof=1|static_1=0,61,high,37,62,21,70,39,72,30,79,54,82,47,69,56,89,26,102,36,101,18,127,50,122,8,154,49,153|static_=static,1,1;connect01f,1,1;connect01b,1,1;akick1,1,1;akick2,1,1;akick3,1,1;apunch1,1,1;apunch2,1,1;dashf,1,1;dashb,1,1;dodge,1,1;block01,1,1;mpunch,1,1;rush1,1,1;rush2,1,1;skick,1,1;skickx,1,1;spunch,1,1;wkick,1,1;wpunch,1,1;epunch,1,1;hkick,1,1;kkick,1,1;lkick,1,1;lkickx,1,1;ppunch,1,1;mkick,1,1;jump,1,1;mhurt,1,1;hhurt1,1,1;hhurt2,1,1;ahurt1,1,1;ahurt2,1,1;sdkick,1,1;sdkickx,1,1|static_static=0|static_connect01f=22|static_connect01b=0|static_akick1=1|static_akick2=6|static_akick3=12|static_apunch1=11|static_apunch2=16|static_dashf=0|static_dashb=-33|static_dodge=-13|static_block01=0|static_mpunch=0|static_rush1=0|static_rush2=0|static_skick=1|static_skickx=1|static_spunch=-2|static_wkick=-3|static_wpunch=0|static_epunch=2|static_hkick=6|static_kkick=6|static_lkick=0|static_lkickx=0|static_ppunch=0|static_mkick=0|static_jump=5|static_mhurt=-10|static_hhurt1=-10|static_hhurt2=-15|static_ahurt1=-15|static_ahurt2=-15|static_sdkick=6|static_sdkickx=6|# static_turn=0||connect01f_type=connect|connect01f_src=static.gif,594,160|connect01f_nof=1|connect01f_1=184,234,mid,30,91,14,92,34,98,9,103,36,112,24,104,45,119,16,121,22,120,12,135,40,136,8,154,29,150|connect01f_=crouch,1,1|connect01f_crouch=10||connect01b_type=connect|connect01b_src=static.gif,594,160|connect01b_nof=1|connect01b_1=184,234,mid,30,91,14,92,34,98,9,103,36,112,24,104,45,119,16,121,22,120,12,135,40,136,8,154,29,150|connect01b_=crouch,1,1;gblock02,1,1;gkick,1,1|connect01b_crouch=-1|connect01b_gblock02=-5|connect01b_gkick=-4||crouch_type=stance|crouch_src=static.gif,594,160|crouch_nof=1|crouch_1=235,285,low,24,104,10,106,27,111,5,122,35,122,20,114,43,128,13,136,18,134,10,129,39,148,8,154,22,153|crouch_=crouch,1,1;connect02f,1,1;connect02b,1,1;gblock01,1,1;gkick,1,1;gpunch,1,1;lpunch,1,1;ghurt1,1,1;ghurt2,1,1|crouch_crouch=0|crouch_connect02f=1|crouch_connect02b=-10|crouch_gblock01=-12|crouch_gkick=-12|crouch_gpunch=1|crouch_lpunch=-8|crouch_ghurt1=-6|crouch_ghurt2=-6|# crouch_gturn=-6||connect02f_type=connect|connect02f_src=static.gif,594,160|connect02f_nof=1|connect02f_1=184,234,mid,30,91,14,92,34,98,9,103,36,112,24,104,45,119,16,121,22,120,12,135,40,136,8,154,29,150|connect02f_=static,1,1;block02,1,1|connect02f_static=0|connect02f_block02=0||connect02b_type=connect|connect02b_src=static.gif,594,160|connect02b_nof=1|connect02b_1=184,234,mid,30,91,14,92,34,98,9,103,36,112,24,104,45,119,16,121,22,120,12,135,40,136,8,154,29,150|connect02b_=static,1,1|connect02b_static=-22||akick1_type=kick|akick1_src=akick.gif,687,160|akick1_nof=8|akick1_hit=3,high,right,2;4,high,right,3;5,mid,right,2|akick1_1=0,62,air,41,48,29,54,40,62,26,51,44,73,36,34,59,85,29,82,32,85,5,99,55,97,11,120,32,106|akick1_2=63,144,air,69,43,57,49,67,57,49,44,65,69,56,32,76,78,53,75,56,79,40,60,62,111,13,73,50,102|akick1_3=145,215,air,44,41,33,44,43,51,21,39,37,59,8,27,45,66,30,76,32,76,51,51,26,97,60,21,5,109|akick1_4=216,332,air,44,43,36,43,29,52,23,38,33,61,7,35,49,59,42,73,38,78,67,66,27,91,104,45,14,89|akick1_5=333,430,air,37,44,29,43,20,50,16,37,30,55,5,36,40,53,30,71,26,77,59,84,17,93,90,104,10,87|akick1_6=431,528,air,37,48,29,47,20,54,16,41,30,59,5,40,40,57,30,75,26,81,59,88,17,97,90,108,10,91|akick1_7=529,616,air,30,49,22,48,16,53,12,47,24,63,4,42,33,60,25,80,19,81,52,92,16,103,79,116,6,104|akick1_8=617,686,air,31,54,24,63,16,64,12,58,26,52,7,52,38,44,22,85,20,87,46,102,23,113,57,129,5,126|akick1_off_1=-24|akick1_off_2=24|akick1_off_3=-7|akick1_off_4=6|akick1_off_5=0|akick1_off_6=6|akick1_off_7=0|akick1_=static,8,1|akick1_static=-6||akick2_type=kick|akick2_src=akick.gif,687,160|akick2_nof=8|akick2_hit=3,high,right,3;4,high,right,3;5,mid,right,3|akick2_1=0,62,air,41,48,29,54,40,62,26,51,44,73,36,34,59,85,29,82,32,85,5,99,55,97,11,120,32,106|akick2_2=63,144,air,69,43,57,49,67,57,49,44,65,69,56,32,76,78,53,75,56,79,40,60,62,111,13,73,50,102|akick2_3=145,215,air,44,41,33,44,43,51,21,39,37,59,8,27,45,66,30,76,32,76,51,51,26,97,60,21,5,109|akick2_4=216,332,air,44,43,36,43,29,52,23,38,33,61,7,35,49,59,42,73,38,78,67,66,27,91,104,45,14,89|akick2_5=333,430,air,37,44,29,43,20,50,16,37,30,55,5,36,40,53,30,71,26,77,59,84,17,93,90,104,10,87|akick2_6=431,528,air,37,48,29,47,20,54,16,41,30,59,5,40,40,57,30,75,26,81,59,88,17,97,90,108,10,91|akick2_7=529,616,air,30,49,22,48,16,53,12,47,24,63,4,42,33,60,25,80,19,81,52,92,16,103,79,116,6,104|akick2_8=617,686,air,31,54,24,63,16,64,12,58,26,52,7,52,38,44,22,85,20,87,46,102,23,113,57,129,5,126|akick2_off_1=-19|akick2_off_2=28|akick2_off_3=-3|akick2_off_4=9|akick2_off_5=2|akick2_off_6=8|akick2_off_7=2|akick2_=static,8,1|akick2_static=-5||akick3_type=kick|akick3_src=akick.gif,687,160|akick3_nof=8|akick3_hit=3,high,right,3;4,high,right,3;5,mid,right,3|akick3_1=0,62,air,41,48,29,54,40,62,26,51,44,73,36,34,59,85,29,82,32,85,5,99,55,97,11,120,32,106|akick3_2=63,144,air,69,43,57,49,67,57,49,44,65,69,56,32,76,78,53,75,56,79,40,60,62,111,13,73,50,102|akick3_3=145,215,air,44,41,33,44,43,51,21,39,37,59,8,27,45,66,30,76,32,76,51,51,26,97,60,21,5,109|akick3_4=216,332,air,44,43,36,43,29,52,23,38,33,61,7,35,49,59,42,73,38,78,67,66,27,91,104,45,14,89|akick3_5=333,430,air,37,44,29,43,20,50,16,37,30,55,5,36,40,53,30,71,26,77,59,84,17,93,90,104,10,87|akick3_6=431,528,air,37,48,29,47,20,54,16,41,30,59,5,40,40,57,30,75,26,81,59,88,17,97,90,108,10,91|akick3_7=529,616,air,30,49,22,48,16,53,12,47,24,63,4,42,33,60,25,80,19,81,52,92,16,103,79,116,6,104|akick3_8=617,686,air,31,54,24,63,16,64,12,58,26,52,7,52,38,44,22,85,20,87,46,102,23,113,57,129,5,126|akick3_off_1=-13|akick3_off_2=34|akick3_off_3=2|akick3_off_4=14|akick3_off_5=3|akick3_off_6=12|akick3_off_7=5|akick3_=static,8,1|akick3_static=-2||apunch1_type=punch|apunch1_src=apunch.gif,405,160|apunch1_nof=7|apunch1_hit=4,mid,left,2|apunch1_1=0,55,air,33,59,18,54,36,58,4,64,44,65,9,78,50,71,12,74,14,74,16,91,38,81,10,114,24,89|apunch1_2=56,110,air,32,33,33,41,18,35,43,56,4,33,51,48,12,23,21,66,19,66,41,78,37,83,26,102,28,109|apunch1_3=111,156,air,33,27,17,31,32,31,4,36,23,12,8,37,36,22,18,60,23,56,32,50,33,84,35,78,20,104|apunch1_4=157,218,air,41,38,32,33,41,49,18,23,48,72,34,26,57,94,15,58,23,61,31,46,27,85,22,70,5,87|apunch1_5=219,280,air,41,48,34,44,41,58,17,31,47,81,33,35,57,103,15,66,23,71,30,55,28,94,23,82,5,96|apunch1_6=281,346,air,42,59,33,54,43,69,19,44,46,92,35,45,59,110,16,78,24,82,32,67,28,105,23,92,5,109|apunch1_7=347,403,air,33,69,24,66,36,79,7,59,39,99,17,60,50,110,9,92,18,97,24,84,23,117,16,110,5,131|apunch1_off_1=-4|apunch1_off_2=2|apunch1_off_3=1|apunch1_off_4=0|apunch1_off_5=0|apunch1_off_6=8|apunch1_=static,7,1|apunch1_static=-18||apunch2_type=punch|apunch2_src=apunch.gif,405,160|apunch2_nof=7|apunch2_hit=4,mid,left,3|apunch2_1=0,55,air,33,59,18,54,36,58,4,64,44,65,9,78,50,71,12,74,14,74,16,91,38,81,10,114,24,89|apunch2_2=56,110,air,32,33,33,41,18,35,43,56,4,33,51,48,12,23,21,66,19,66,41,78,37,83,26,102,28,109|apunch2_3=111,156,air,33,27,17,31,32,31,4,36,23,12,8,37,36,22,18,60,23,56,32,50,33,84,35,78,20,104|apunch2_4=157,218,air,41,38,32,33,41,49,18,23,48,72,34,26,57,94,15,58,23,61,31,46,27,85,22,70,5,87|apunch2_5=219,280,air,41,48,34,44,41,58,17,31,47,81,33,35,57,103,15,66,23,71,30,55,28,94,23,82,5,96|apunch2_6=281,346,air,42,59,33,54,43,69,19,44,46,92,35,45,59,110,16,78,24,82,32,67,28,105,23,92,5,109|apunch2_7=347,403,air,33,69,24,66,36,79,7,59,39,99,17,60,50,110,9,92,18,97,24,84,23,117,16,110,5,131|apunch2_off_1=1|apunch2_off_2=7|apunch2_off_3=5|apunch2_off_4=3|apunch2_off_5=2|apunch2_off_6=9|apunch2_=static,7,1|apunch2_static=-15||dashf_type=dash|dashf_src=dash.gif,545,160|dashf_nof=3|dashf_1=206,300,high,63,82,48,86,62,88,31,95,55,69,34,98,70,73,47,114,55,114,33,135,76,128,8,153,77,150|dashf_2=301,412,mid,90,102,80,111,70,95,68,118,55,90,87,119,72,89,53,121,52,121,34,140,85,123,5,154,97,152|dashf_3=413,469,high,41,80,28,83,44,86,41,94,47,99,52,86,51,105,25,110,32,111,17,133,51,126,6,154,41,153|dashf_off_1=0|dashf_off_2=58|dashf_=static,3,1;wpunch,2,1;dashf,2,2;dodge,3,1;block02,3,1;spunch,3,2;connect01f,2,1;skick,3,2;wkick,3,2;hkick,3,1;mkick,3,1;rush1,2,1;rush2,2,1;akick2,3,1;akick3,3,1;sdkick,3,3|dashf_static=0|dashf_wpunch=38|dashf_dashf=10|dashf_dodge=-21|dashf_block02=-10|dashf_spunch=-2|dashf_connect01f=72|dashf_skick=14|dashf_wkick=37|dashf_hkick=-2|dashf_mkick=0|dashf_rush1=53|dashf_rush2=53|dashf_akick2=15|dashf_akick3=21|dashf_sdkick=22||dashb_type=dash|dashb_src=dash.gif,545,160|dashb_nof=3|dashb_1=206,300,high,63,82,48,86,62,88,31,95,55,69,34,98,70,73,47,114,55,114,33,135,76,128,8,153,77,150|dashb_2=301,412,mid,90,102,80,111,70,95,68,118,55,90,87,119,72,89,53,121,52,121,34,140,85,123,5,154,97,152|dashb_3=413,469,high,41,80,28,83,44,86,41,94,47,99,52,86,51,105,25,110,32,111,17,133,51,126,6,154,41,153|dashb_off_1=-25|dashb_off_2=0|dashb_=static,3,1;connect01b,2,1;skick,3,1;skickx,3,1;wpunch,2,1;epunch,3,1;ppunch,3,1;wkick,3,1;hkick,3,1;mkick,3,1;lkick,3,1;lkickx,3,1;dodge,3,1;apunch1,3,1;rush1,3,1;akick1,3,1;block02,2,1;sdkick,3,2;sdkickx,3,2|dashb_static=-7|dashb_connect01b=0|dashb_skick=-10|dashb_skickx=-10|dashb_wpunch=-7|dashb_epunch=2|dashb_ppunch=0|dashb_wkick=-10|dashb_hkick=-3|dashb_mkick=0|dashb_lkick=0|dashb_lkickx=0|dashb_dodge=-21|dashb_apunch1=0|dashb_rush1=0|dashb_akick1=0|dashb_block02=-7|dashb_sdkick=10|dashb_sdkickx=10||dodge_type=dodge|dodge_src=dash.gif,545,160|dodge_nof=3|dodge_1=470,544,high,29,74,17,77,37,82,15,91,36,91,29,98,39,74,23,110,31,110,9,127,48,129,11,154,68,153|dodge_2=0,75,high,26,76,15,77,35,84,16,89,28,94,29,99,32,76,23,110,29,110,6,125,49,131,12,154,68,153|dodge_3=76,139,high,40,60,26,67,41,70,36,75,51,75,54,70,54,83,29,101,37,101,20,129,51,123,6,154,51,153|dodge_off_1=-1|dodge_off_2=12|dodge_=static,3,1;block02,3,1|dodge_static=2|dodge_block02=0||block01_type=connect|block01_src=dash.gif,545,160|block01_nof=1|block01_1=76,139,high,40,60,26,67,41,70,36,75,51,75,54,70,54,83,29,101,37,101,20,129,51,123,6,154,51,153|block01_=block02,1,1|block01_block02=0||block02_type=block|block02_src=dash.gif,545,160|block02_nof=1|block02_1=140,205,high,49,71,36,79,43,79,61,84,56,84,59,70,60,93,35,109,41,109,23,131,60,126,5,154,51,153|block02_=block02,1,1;block03,1,1|block02_block02=0|block02_block03=0||block03_type=connect|block03_src=dash.gif,545,160|block03_nof=1|block03_1=76,139,high,40,60,26,67,41,70,36,75,51,75,54,70,54,83,29,101,37,101,20,129,51,123,6,154,51,153|block03_=static,1,1|block03_static=0||gblock01_type=connect|gblock01_src=static.gif,594,160|gblock01_nof=1|gblock01_1=286,334,low,26,103,17,103,33,109,7,117,40,128,17,124,32,131,18,132,28,131,5,128,43,152,12,154,35,149|gblock01_=gblock02,1,1|gblock01_gblock02=-2||gblock02_type=block|gblock02_src=static.gif,594,160|gblock02_nof=1|gblock02_1=335,382,low,22,105,8,109,29,105,18,122,28,122,30,105,18,131,19,128,24,131,5,126,42,151,16,153,29,145|gblock02_=gblock02,1,1;gblock03,1,1|gblock02_gblock02=0|gblock02_gblock03=2||gblock03_type=connect|gblock03_src=static.gif,594,160|gblock03_nof=1|gblock03_1=286,334,low,26,103,17,103,33,109,7,117,40,128,17,124,32,131,18,132,28,131,5,128,43,152,12,154,35,149|gblock03_=crouch,1,1|gblock03_crouch=1||mpunch_type=punch|mpunch_src=mpunch.gif,434,160|mpunch_nof=6|mpunch_hit=3,mid,left,2|mpunch_1=0,63,high,40,60,26,67,41,70,36,75,51,75,54,70,54,83,29,101,37,101,20,129,51,123,6,154,51,153|mpunch_2=64,149,high,54,68,48,78,35,73,61,89,27,78,76,83,35,88,34,107,42,109,22,131,61,123,8,154,65,154|mpunch_3=150,260,mid,68,77,52,78,69,85,56,90,83,97,74,86,105,95,43,111,50,110,27,134,75,124,8,154,69,154|mpunch_4=150,260,mid,68,77,52,78,69,85,56,90,83,97,74,86,105,95,43,111,50,110,27,134,75,124,8,154,69,154|mpunch_5=261,357,high,55,70,39,74,54,76,50,85,67,89,68,74,89,97,38,106,44,107,23,131,67,122,8,154,68,154|mpunch_6=358,433,high,44,64,30,72,47,73,39,81,59,81,57,68,69,92,35,104,42,104,22,127,60,121,7,154,59,153|mpunch_off_1=0|mpunch_off_2=2|mpunch_off_3=0|mpunch_off_4=0|mpunch_off_5=0|mpunch_=static,6,1;ppunch,6,1;wkick,4,1;mkick,5,1;rush1,6,1;rush2,6,1|mpunch_static=0|mpunch_ppunch=0|mpunch_wkick=18|mpunch_mkick=0|mpunch_rush1=0|mpunch_rush2=0||gkick_type=kick|gkick_src=gkick.gif,745,160|gkick_nof=10|gkick_hit=4,low,right,4|gkick_1=0,48,low,26,103,17,103,33,109,7,117,40,128,17,124,32,131,18,132,28,131,5,128,43,152,12,154,35,149|gkick_2=49,118,low,36,105,45,106,27,114,45,119,18,123,62,124,24,124,53,131,48,134,27,134,34,150,12,149,45,154|gkick_3=119,218,low,17,107,19,114,9,119,8,126,21,122,5,141,32,118,28,136,26,138,59,141,17,149,94,149,26,154|gkick_4=219,333,low,24,108,23,115,16,120,13,128,34,121,5,142,42,115,36,138,33,142,73,145,21,150,110,153,31,153|gkick_5=334,446,low,24,106,24,114,14,119,10,126,27,117,6,142,41,114,35,138,31,140,75,145,21,150,108,153,29,154|gkick_6=447,534,low,19,104,18,111,10,116,7,124,25,119,5,142,36,118,28,138,24,140,58,141,19,149,74,155,22,154|gkick_7=535,600,low,14,103,7,112,12,113,4,125,20,120,14,140,29,121,20,136,16,136,49,141,14,147,52,155,15,154|gkick_8=601,647,low,22,101,15,105,19,110,4,117,16,120,20,127,28,127,14,133,20,136,32,151,41,142,20,155,24,147|gkick_9=648,696,low,27,104,11,105,28,109,6,119,25,121,22,121,30,134,14,133,24,134,18,132,43,143,5,154,28,152|gkick_10=697,744,low,24,105,10,107,29,113,6,122,31,126,22,117,40,136,14,137,18,135,11,130,42,144,6,154,27,153|gkick_off_1=-9|gkick_off_2=21|gkick_off_3=-3|gkick_off_4=1|gkick_off_5=6|gkick_off_6=6|gkick_off_7=-8|gkick_off_8=-8|gkick_off_9=2|gkick_=crouch,10,1;lpunch,9,1|gkick_crouch=4|gkick_lpunch=0||gpunch_type=punch|gpunch_src=gpunch.gif,528,160|gpunch_nof=8|gpunch_hit=2,low,right,2;3,high,right,4|gpunch_1=0,57,low,44,110,31,107,47,113,16,113,44,125,29,125,54,134,24,130,33,134,9,151,47,125,5,154,46,153|gpunch_2=58,138,mid,57,88,55,101,44,89,61,119,52,103,76,110,67,100,38,121,35,121,25,148,60,129,7,154,49,153|gpunch_3=139,213,high,50,67,57,71,42,77,70,63,51,76,60,49,62,81,42,107,42,105,26,131,62,122,6,154,51,152|gpunch_4=214,285,high,47,68,50,73,37,78,67,64,48,77,58,54,57,83,39,108,38,105,27,132,60,122,6,154,52,152|gpunch_5=286,353,high,44,70,48,74,35,78,63,71,46,76,56,60,55,83,38,106,37,104,24,133,59,123,5,154,50,153|gpunch_6=354,419,high,49,71,36,79,43,79,61,84,56,84,59,70,60,93,35,109,41,109,23,131,60,126,5,154,51,153|gpunch_7=420,476,high,42,80,28,83,44,85,41,95,47,97,53,85,52,106,25,111,32,111,16,133,50,127,6,154,41,153|gpunch_8=477,527,mid,30,91,14,92,34,98,9,103,36,112,24,104,45,119,16,121,22,120,12,135,40,136,8,154,29,150|gpunch_off_1=-4|gpunch_off_2=1|gpunch_off_3=2|gpunch_off_4=2|gpunch_off_5=0|gpunch_off_6=10|gpunch_off_7=14|gpunch_=crouch,8,1;lpunch,7,1;gkick,7,1|gpunch_crouch=10|gpunch_lpunch=0|gpunch_gkick=0||rush1_type=kick|runs1_src=rush.gif,742,160|rush1_nof=11|rush1_hit=5,high,left,4;6,high,left,4|rush1_1=0,64,mid,47,78,29,79,44,79,42,90,56,95,59,80,49,101,24,108,31,108,18,133,50,125,6,154,45,153|rush1_2=65,128,air,45,57,27,54,43,60,10,60,49,77,4,77,58,67,18,78,24,79,26,102,22,106,5,114,16,139|rush1_3=129,196,air,43,39,30,49,45,43,18,63,62,37,19,80,60,28,34,79,39,78,58,83,26,104,53,109,7,125|rush1_4=197,251,air,25,38,15,49,29,37,4,65,40,29,8,81,36,14,32,76,35,72,49,94,32,93,40,121,8,109|rush1_5=252,348,air,16,36,14,43,6,50,28,39,4,65,43,30,9,78,26,72,20,70,21,100,51,72,13,111,87,75|rush1_6=349,446,air,18,38,22,42,11,52,32,35,4,71,35,27,9,84,31,77,28,77,24,101,61,62,22,117,93,57|rush1_7=447,511,air,15,43,8,50,10,51,25,55,4,71,28,43,17,73,17,87,23,81,13,111,39,74,18,135,60,76|rush1_8=512,568,air,17,53,5,64,20,59,17,74,18,77,27,58,32,78,17,91,23,90,14,122,37,90,15,148,49,110|rush1_9=569,627,mid,32,85,19,84,37,89,4,86,42,95,13,91,50,103,19,113,26,113,14,133,44,132,11,154,40,151|rush1_10=628,683,mid,33,87,20,87,35,92,4,89,39,95,14,95,47,103,19,117,26,116,14,135,43,134,11,154,39,151|rush1_11=684,741,high,32,76,16,77,35,81,11,86,42,94,27,88,50,103,18,109,26,108,17,127,44,125,8,154,39,153|rush1_off_1=17|rush1_off_2=-6|rush1_off_3=13|rush1_off_4=17|rush1_off_5=4|rush1_off_6=17|rush1_off_7=5|rush1_off_8=1|rush1_off_9=0|rush1_off_10=-1|rush1_=static,11,1|rush1_static=-12||rush2_type=kick|runs2_src=rush.gif,742,160|rush2_nof=11|rush2_hit=5,high,left,4;6,high,left,4|rush2_1=0,64,mid,47,78,29,79,44,79,42,90,56,95,59,80,49,101,24,108,31,108,18,133,50,125,6,154,45,153|rush2_2=65,128,air,45,57,27,54,43,60,10,60,49,77,4,77,58,67,18,78,24,79,26,102,22,106,5,114,16,139|rush2_3=129,196,air,43,39,30,49,45,43,18,63,62,37,19,80,60,28,34,79,39,78,58,83,26,104,53,109,7,125|rush2_4=197,251,air,25,38,15,49,29,37,4,65,40,29,8,81,36,14,32,76,35,72,49,94,32,93,40,121,8,109|rush2_5=252,348,air,16,36,14,43,6,50,28,39,4,65,43,30,9,78,26,72,20,70,21,100,51,72,13,111,87,75|rush2_6=349,446,air,18,38,22,42,11,52,32,35,4,71,35,27,9,84,31,77,28,77,24,101,61,62,22,117,93,57|rush2_7=447,511,air,15,43,8,50,10,51,25,55,4,71,28,43,17,73,17,87,23,81,13,111,39,74,18,135,60,76|rush2_8=512,568,air,17,53,5,64,20,59,17,74,18,77,27,58,32,78,17,91,23,90,14,122,37,90,15,148,49,110|rush2_9=569,627,mid,32,85,19,84,37,89,4,86,42,95,13,91,50,103,19,113,26,113,14,133,44,132,11,154,40,151|rush2_10=628,683,mid,33,87,20,87,35,92,4,89,39,95,14,95,47,103,19,117,26,116,14,135,43,134,11,154,39,151|rush2_11=684,741,high,32,76,16,77,35,81,11,86,42,94,27,88,50,103,18,109,26,108,17,127,44,125,8,154,39,153|rush2_off_1=20|rush2_off_2=-4|rush2_off_3=14|rush2_off_4=20|rush2_off_5=4|rush2_off_6=20|rush2_off_7=5|rush2_off_8=1|rush2_off_9=0|rush2_off_10=-1|rush2_=static,11,1|rush2_static=-12||skick_type=kick|skick_src=skick.gif,824,160|skick_nof=10|skick_hit=4,high,right,4;5,high,right,3|skick_1=0,59,high,35,59,26,66,43,68,17,76,51,82,20,71,35,88,30,98,39,98,18,123,45,125,11,152,53,153|skick_2=60,113,high,20,66,34,67,24,76,45,58,13,88,37,62,7,76,48,97,48,93,22,113,41,123,10,136,46,151|skick_3=114,170,high,18,67,29,69,16,79,45,66,4,90,51,68,6,74,44,96,44,98,21,111,35,124,39,108,41,152|skick_4=255,345,high,9,66,23,69,6,80,37,77,20,76,55,78,27,60,45,83,39,90,63,67,33,121,86,53,31,153|skick_5=346,444,high,11,65,24,68,5,78,37,76,18,74,56,75,25,60,40,88,37,93,60,71,32,123,92,62,30,153|skick_6=445,539,high,10,63,22,68,5,76,36,75,15,70,53,73,25,62,39,89,35,94,62,76,30,124,81,84,28,153|skick_7=609,672,high,10,58,20,64,5,73,35,67,7,85,39,56,19,86,27,91,28,97,58,95,33,123,45,117,28,153|skick_8=673,722,high,12,58,18,67,5,71,32,69,6,83,34,57,18,85,22,94,21,97,44,114,31,117,20,134,29,153|skick_9=723,767,high,19,58,21,70,11,69,33,70,20,80,39,57,27,91,28,94,25,94,26,126,39,122,7,148,34,153|skick_10=768,823,high,32,60,19,69,32,69,32,76,32,79,45,63,44,82,30,99,37,98,19,126,48,124,5,154,44,153|skick_off_1=13|skick_off_2=8|skick_off_3=13|skick_off_4=1|skick_off_5=1|skick_off_6=1|skick_off_7=-1|skick_off_8=-4|skick_off_9=-9|skick_=static,10,1;mkick,8,1;spunch,8,2;wpunch,8,1;skick,9,1;wkick,9,1;hkick,7,1;lkick,8,1;lkickx,8,1;dashb,9,1;dodge,9,1;connect01b,10,1;sdkick,7,4|skick_static=-7|skick_mkick=-16|skick_spunch=-32|skick_wpunch=-32|skick_skick=-15|skick_wkick=-19|skick_hkick=-16|skick_lkick=-16|skick_lkickx=-16|skick_dashb=-50|skick_dodge=-30|skick_connect01b=0|skick_sdkick=0||skickx_type=fake|skickx_src=skick.gif,824,160|skickx_nof=6|skickx_1=0,59,high,35,59,26,66,43,68,17,76,51,82,20,71,35,88,30,98,39,98,18,123,45,125,11,152,53,153|skickx_2=60,113,high,20,66,34,67,24,76,45,58,13,88,37,62,7,76,48,97,48,93,22,113,41,123,10,136,46,151|skickx_3=609,672,high,10,58,20,64,5,73,35,67,7,85,39,56,19,86,27,91,28,97,58,95,33,123,45,117,28,153|skickx_4=673,722,high,12,58,18,67,5,71,32,69,6,83,34,57,18,85,22,94,21,97,44,114,31,117,20,134,29,153|skickx_5=723,767,high,19,58,21,70,11,69,33,70,20,80,39,57,27,91,28,94,25,94,26,126,39,122,7,148,34,153|skickx_6=768,823,high,32,60,19,69,32,69,32,76,32,79,45,63,44,82,30,99,37,98,19,126,48,124,5,154,44,153|skickx_off_1=13|skickx_off_2=15|skickx_off_3=-1|skickx_off_4=-4|skickx_off_5=-9|skickx_=static,6,1;mkick,4,1;spunch,4,2;wpunch,4,1;skick,5,1;wkick,5,1;hkick,3,1;lkick,4,1;lkickx,4,1;dashb,5,1;dodge,5,1;connect01b,6,1;sdkick,3,4|skickx_static=-7|skickx_mkick=-16|skickx_spunch=-32|skickx_wpunch=-32|skickx_skick=-15|skickx_wkick=-19|skickx_hkick=-16|skickx_lkick=-16|skickx_lkickx=-16|skickx_dashb=-50|skickx_dodge=-30|skickx_connect01b=0|skickx_sdkick=0||spunch_type=punch|spunch_src=spunch.gif,833,160|spunch_nof=10|spunch_hit=4,high,right,3|spunch_1=0,64,high,37,61,22,68,42,71,18,80,56,80,36,76,54,85,29,99,35,99,18,126,51,123,5,154,52,152|spunch_2=65,142,high,40,60,29,71,47,70,19,83,63,74,33,79,72,66,35,102,41,100,23,127,59,121,5,154,61,152|spunch_3=143,225,high,42,63,29,70,46,71,18,79,66,72,27,80,77,63,36,102,42,101,22,129,60,123,6,154,61,152|spunch_4=226,331,high,59,70,65,72,50,80,86,71,62,75,102,72,72,64,49,102,48,101,32,130,61,125,6,153,60,153|spunch_5=332,421,high,59,69,65,72,48,80,85,75,61,78,82,83,71,63,48,103,47,101,32,129,60,125,5,153,59,153|spunch_6=422,512,high,59,69,66,74,48,79,86,78,62,78,80,87,72,66,49,105,48,103,32,131,59,124,6,154,61,153|spunch_7=513,604,high,59,68,65,73,48,79,85,76,57,72,86,83,71,67,47,103,46,102,32,130,60,125,5,154,61,153|spunch_8=605,689,high,55,65,55,74,42,74,71,78,53,70,79,74,66,71,39,102,38,101,25,130,57,125,5,154,56,153|spunch_9=690,768,high,42,60,38,70,31,69,53,75,41,74,70,72,56,70,35,100,30,99,21,131,53,122,5,154,54,153|spunch_10=769,832,high,40,60,26,67,41,70,36,75,51,75,54,70,54,83,29,101,37,101,20,129,51,123,6,154,51,153|spunch_off_1=-2|spunch_off_2=0|spunch_off_3=-1|spunch_off_4=3|spunch_off_5=-1|spunch_off_6=0|spunch_off_7=2|spunch_off_8=3|spunch_off_9=4|spunch_=static,10,1;spunch,8,2;epunch,8,1;skick,9,2;skick,9,2;mkick,9,1;lkick,9,1;lkickx,9,1;sdkick,8,2;sdkickx,8,2|spunch_static=2|spunch_spunch=0|spunch_epunch=9|spunch_skick=23|spunch_mkick=2|spunch_lkick=2|spunch_lkickx=2|spunch_sdkick=27|spunch_sdkickx=27||wkick_type=kick|wkick_src=wkick.gif,477,160|wkick_nof=7|wkick_hit=3,low,right,2|wkick_1=0,70,high,54,65,51,70,44,71,62,66,49,80,66,57,60,79,37,101,38,96,25,126,55,123,7,149,52,153|wkick_2=71,125,high,11,59,14,65,4,68,27,62,16,63,39,50,25,69,24,92,20,94,49,95,30,120,22,100,20,153|wkick_3=126,216,high,13,60,19,67,5,71,37,68,18,70,51,65,28,59,31,91,25,94,60,101,23,123,84,121,26,152|wkick_4=217,305,high,13,61,18,66,5,70,32,71,18,67,47,69,27,57,30,92,25,94,56,104,23,123,81,123,24,153|wkick_5=306,369,high,13,60,18,66,5,69,31,74,17,67,45,71,29,58,28,94,24,96,52,109,26,125,56,130,22,153|wkick_6=370,419,high,11,60,14,66,4,70,27,75,16,73,42,72,31,67,26,93,20,95,43,112,28,122,32,135,20,153|wkick_7=420,476,high,37,60,23,68,39,70,35,77,48,78,50,66,50,84,27,102,35,101,20,127,48,123,4,150,44,153|wkick_off_1=42|wkick_off_2=2|wkick_off_3=2|wkick_off_4=0|wkick_off_5=-1|wkick_off_6=-32|wkick_=static,7,1;spunch,6,2;wpunch,6,1;skick,6,1;skickx,6,1;hkick,6,1;mkick,6,1;lkick,6,1;lkickx,6,1;sdkick,5,3|wkick_static=-5|wkick_spunch=-43|wkick_wpunch=-43|wkick_skick=-36|wkick_skickx=-36|wkick_hkick=-30|wkick_mkick=-20|wkick_lkick=-20|wkick_lkickx=-20|wkick_sdkick=-12||wpunch_type=punch|wpunch_src=wpunch.gif,426,160|wpunch_nof=5|wpunch_hit=2,high,left,1|wpunch_1=0,73,high,47,62,32,69,48,69,37,82,44,82,52,70,51,90,35,101,41,101,24,128,59,124,10,154,61,152|wpunch_2=74,171,high,45,64,30,74,52,70,28,82,71,69,45,75,93,63,34,103,40,102,22,128,57,122,6,154,56,153|wpunch_3=172,268,high,42,63,29,71,50,71,26,80,69,72,45,73,91,67,33,103,40,103,21,127,56,123,6,153,57,153|wpunch_4=269,355,high,42,63,26,70,45,71,28,81,59,76,47,72,80,71,31,102,39,102,20,128,55,124,6,154,56,152|wpunch_5=356,425,high,41,62,25,70,44,73,32,80,50,84,47,71,60,89,31,102,38,101,22,127,55,124,8,153,57,152|wpunch_off_1=4|wpunch_off_2=0|wpunch_off_3=0|wpunch_off_4=0|wpunch_=static,5,1;mpunch,5,2;spunch,3,3;epunch,4,1;ppunch,5,1;wkick,4,1;skick,5,1;skick,5,1;skickx,5,1;lkick,5,1;lkickx,5,1;sdkick,5,1;sdkickx,5,1|wpunch_static=8|wpunch_mpunch=0|wpunch_spunch=-4|wpunch_epunch=8|wpunch_ppunch=0|wpunch_wkick=5|wpunch_skick=14|wpunch_skickx=14|wpunch_lkick=0|wpunch_lkickx=0|wpunch_sdkick=14|wpunch_sdkickx=14||epunch_type=punch|epunch_src=epunch.gif,406,160|epunch_nof=5|epunch_hit=2,high,left,2|epunch_1=0,67,high,53,66,37,69,58,77,38,81,49,90,56,77,32,101,38,99,44,99,24,127,61,124,4,154,56,149|epunch_2=68,162,mid,61,82,45,87,65,83,29,92,86,82,18,104,71,93,39,115,46,113,27,138,70,124,6,154,83,154|epunch_3=163,257,mid,55,79,39,84,60,80,23,86,80,83,14,97,65,93,37,113,45,111,28,134,68,125,6,154,83,154|epunch_4=258,335,high,48,69,31,75,50,75,22,85,70,82,26,89,61,91,34,106,40,105,22,130,57,120,8,154,65,152|epunch_5=336,405,high,40,63,25,71,45,72,24,83,57,80,40,81,55,91,31,101,37,101,22,127,55,124,8,154,57,152|epunch_off_1=0|epunch_off_2=0|epunch_off_3=17|epunch_off_4=8|epunch_=static,5,1;mpunch,4,1;wpunch,4,1;skick,4,1;skickx,4,1;skick,4,1;wkick,4,1;lkick,5,1;lkickx,5,1;sdkick,4,1;sdkickx,4,1|epunch_static=8|epunch_mpunch=14|epunch_wpunch=4|epunch_skick=15|epunch_skickx=15|epunch_wkick=13|epunch_lkick=0|epunch_lkickx=0|epunch_sdkick=21|epunch_sdkickx=21||hkick_type=kick|hkick_src=hkick.gif,649,160|hkick_nof=10|hkick_hit=3,mid,right,3;4,high,right,4|hkick_1=0,74,high,47,65,53,69,37,74,69,65,26,82,67,50,37,80,38,100,35,97,26,126,48,124,5,142,45,152|hkick_2=75,141,high,29,60,39,65,22,71,56,73,4,74,60,66,5,62,42,92,36,95,60,112,38,124,45,136,43,152|hkick_3=142,215,high,27,57,36,64,17,64,48,78,4,55,66,85,13,44,38,91,32,92,63,97,34,120,69,128,37,153|hkick_4=216,271,high,21,52,25,62,9,60,34,79,4,39,47,92,22,35,35,85,29,86,39,51,33,119,40,18,31,151|hkick_5=272,327,high,19,53,24,63,7,59,31,78,4,40,46,91,21,37,33,84,28,88,40,53,29,121,45,21,28,152|hkick_6=328,391,high,16,55,22,64,6,59,30,80,5,47,51,86,22,42,30,84,23,90,41,54,25,121,57,34,26,153|hkick_7=392,477,high,13,57,23,65,5,63,33,77,13,57,52,85,24,47,25,89,18,92,49,75,21,121,75,82,24,153|hkick_8=478,541,high,13,60,18,66,5,69,32,74,20,71,45,71,29,57,27,93,22,95,50,108,26,125,56,130,23,153|hkick_9=542,591,high,11,60,15,66,5,69,28,75,18,72,41,72,30,67,24,92,20,95,43,112,28,122,33,136,20,153|hkick_10=592,648,high,37,60,23,67,38,68,35,76,48,78,51,66,49,84,27,101,35,100,20,127,48,124,4,152,44,153|hkick_off_1=12|hkick_off_2=8|hkick_off_3=8|hkick_off_4=2|hkick_off_5=2|hkick_off_6=2|hkick_off_7=-2|hkick_off_8=0|hkick_off_9=-30|hkick_=static,10,1;skick,9,1;skickx,9,1;spunch,10,2;mkick,9,1|hkick_static=-5|hkick_skick=-34|hkick_skickx=-34|hkick_spunch=-18|hkick_mkick=-18||kkick_type=kick|kkick_src=kkick.gif,689,160|kkick_nof=11|kkick_hit=4,high,right,4;5,high,right,3|kkick_1=0,81,mid,53,79,58,82,44,87,77,76,48,80,69,66,55,71,40,109,39,108,30,130,57,126,6,147,43,152|kkick_2=82,161,mid,55,81,57,87,44,85,75,91,52,83,71,75,57,73,39,111,37,110,29,134,54,128,5,148,42,154|kkick_3=162,206,high,16,60,19,64,5,67,30,75,14,69,41,67,9,60,16,90,15,93,34,113,22,115,9,124,11,151|kkick_4=207,275,air,35,50,25,55,33,56,11,64,48,55,5,76,45,42,43,81,37,85,62,65,25,110,55,92,14,143|kkick_5=276,340,air,28,48,20,52,28,57,8,60,43,55,5,74,39,42,37,78,33,81,59,66,23,108,47,89,12,139|kkick_6=341,402,air,26,47,16,51,24,55,4,56,40,57,8,73,39,44,33,80,29,82,56,73,24,110,48,99,15,140|kkick_7=403,459,air,22,53,13,59,18,63,4,71,29,71,20,79,43,66,25,89,25,91,50,88,29,115,47,118,24,148|kkick_8=460,515,air,29,69,15,68,26,73,4,81,30,81,15,88,40,88,19,101,21,101,44,113,31,120,42,141,24,149|kkick_9=516,574,mid,32,85,19,84,37,89,4,86,42,95,13,91,50,103,19,113,26,113,14,133,44,132,11,154,40,151|kkick_10=575,630,mid,33,87,20,87,35,92,4,89,39,95,14,95,47,103,19,117,26,116,14,135,43,134,11,154,39,151|kkick_11=631,688,high,32,76,16,77,35,81,11,86,42,94,27,88,50,103,18,109,26,108,17,127,44,125,8,154,39,153|kkick_off_1=3|kkick_off_2=38|kkick_off_3=8|kkick_off_4=11|kkick_off_5=9|kkick_off_6=9|kkick_off_7=7|kkick_off_8=2|kkick_off_9=0|kkick_off_10=4|kkick_=static,11,1|kkick_static=0||lkick_type=kick|lkick_src=lkick.gif,342,160|lkick_nof=5|lkick_hit=3,low,left,2|lkick_1=0,51,high,17,64,5,73,21,72,14,81,19,84,28,69,25,92,19,100,27,97,20,126,46,116,8,154,38,130|lkick_2=52,109,high,21,61,8,66,22,69,22,75,16,79,35,70,26,84,17,96,24,94,15,126,38,80,11,153,47,103|lkick_3=110,189,high,16,62,5,71,9,71,24,74,17,76,31,64,26,82,18,98,26,96,17,128,52,115,13,154,75,136|lkick_4=190,270,high,15,61,6,69,12,72,23,74,22,77,30,66,30,84,18,98,25,97,16,128,51,110,13,154,74,132|lkick_5=271,341,high,17,62,6,70,13,71,24,75,24,80,31,70,32,88,18,100,24,99,16,128,48,102,10,154,63,126|lkick_off_1=0|lkick_off_2=-1|lkick_off_3=0|lkick_off_4=1|lkick_=static,5,1;spunch,5,2;wpunch,5,1;ppunch,5,1;skick,5,1;skickx,5,1;wkick,5,1;lkick,4,2;rush1,5,1;rush2,5,1;sdkick,5,2;sdkickx,5,2|lkick_static=0|lkick_spunch=0|lkick_wpunch=0|lkick_ppunch=0|lkick_skick=0|lkick_skickx=0|lkick_wkick=0|lkick_lkick=0|lkick_rush1=0|lkick_rush2=0|lkick_sdkick=20|lkick_sdkickx=20||lkickx_type=fake|lkickx_src=lkick.gif,342,160|lkickx_nof=2|lkickx_1=0,51,high,17,64,5,73,21,72,14,81,19,84,28,69,25,92,19,100,27,97,20,126,46,116,8,154,38,130|lkickx_2=52,109,high,21,61,8,66,22,69,22,75,16,79,35,70,26,84,17,96,24,94,15,126,38,80,11,153,47,103|lkickx_off_1=0|lkickx_=static,2,1;spunch,2,2;wpunch,2,1;ppunch,2,1;skick,2,1;skickx,2,1;wkick,2,1;rush1,2,1;rush2,2,1;sdkick,5,2;sdkickx,5,2|lkickx_static=0|lkickx_spunch=0|lkickx_wpunch=0|lkickx_ppunch=0|lkickx_skick=0|lkickx_skickx=0|lkickx_wkick=0|lkickx_rush1=0|lkickx_rush2=0|lkickx_sdkick=20|lkickx_sdkickx=20||lpunch_type=punch|lpunch_src=lpunch.gif,347,160|lpunch_nof=5|lpunch_hit=2,low,left,1|lpunch_1=0,54,low,38,101,23,102,38,113,13,109,33,121,30,107,47,124,21,130,26,133,9,127,40,154,8,153,30,151|lpunch_2=55,140,low,41,100,27,102,45,110,14,106,62,115,29,104,80,109,22,129,26,130,7,127,39,154,9,153,30,149|lpunch_3=141,224,low,39,99,25,102,44,110,14,106,63,117,29,103,77,112,22,129,26,130,7,127,40,154,9,153,31,150|lpunch_4=225,293,low,38,99,24,102,43,110,13,107,54,121,28,104,63,119,21,130,26,131,9,127,40,154,8,153,30,152|lpunch_5=294,346,low,36,102,20,102,36,113,9,110,42,123,26,108,49,129,19,131,23,134,9,127,41,153,8,153,29,152|lpunch_off_1=-1|lpunch_off_2=0|lpunch_off_3=1|lpunch_off_4=1|lpunch_=crouch,5,1;lpunch,3,1;gpunch,5,1;gkick,4,1|lpunch_crouch=7|lpunch_lpunch=1|lpunch_gpunch=0|lpunch_gkick=-4||ppunch_type=punch|ppunch_src=ppunch.gif,476,160|ppunch_nof=7|ppunch_hit=3,mid,left,2;4,high,left,3|ppunch_1=0,60,high,29,68,16,74,29,80,26,65,16,91,28,52,11,107,24,103,30,104,21,134,49,123,7,154,47,153|ppunch_2=61,120,high,37,64,24,70,38,78,17,65,25,84,34,53,31,94,29,104,35,103,19,132,51,125,6,154,49,153|ppunch_3=121,188,high,38,62,26,71,44,76,14,77,46,93,17,63,64,85,37,100,45,99,25,130,52,127,7,154,48,153|ppunch_4=189,263,high,42,54,32,70,48,64,23,88,63,74,19,84,70,54,36,98,44,97,25,125,51,125,7,154,48,153|ppunch_5=264,338,high,41,55,31,72,49,65,22,88,62,75,20,85,71,57,36,98,45,98,24,126,51,125,8,153,47,153|ppunch_6=339,414,high,41,56,29,72,47,67,23,87,63,77,17,83,71,66,35,100,43,99,23,127,51,123,8,153,47,153|ppunch_7=415,475,high,37,60,22,67,41,69,18,79,56,80,37,75,54,85,27,101,37,100,19,126,49,122,8,154,47,152|ppunch_off_1=0|ppunch_off_2=1|ppunch_off_3=2|ppunch_off_4=0|ppunch_off_5=0|ppunch_off_6=0|ppunch_=static,7,1;wpunch,6,1;epunch,6,1;wkick,6,1;lkick,5,1;lkickx,5,1;rush1,7,1;rush2,7,1|ppunch_static=0|ppunch_wpunch=0|ppunch_epunch=0|ppunch_wkick=-5|ppunch_lkick=0|ppunch_lkickx=0|ppunch_rush1=0|ppunch_rush2=0||mkick_type=kick|mkick_src=mkick.gif,539,160|mkick_nof=7|mkick_hit=4,mid,left,3|mkick_1=0,57,high,25,62,10,70,29,71,14,80,39,85,31,75,48,92,21,101,27,100,15,129,41,121,8,154,43,150|mkick_2=58,111,high,26,61,13,70,33,73,4,73,32,83,12,75,44,92,24,94,32,98,20,123,27,117,17,154,26,142|mkick_3=112,164,air,15,62,21,69,30,57,12,82,48,62,7,77,37,73,34,89,39,91,18,102,5,102,30,124,19,105|mkick_4=165,281,air,20,67,25,71,33,67,45,74,19,82,61,78,6,70,46,93,53,93,26,113,79,92,35,116,111,95|mkick_5=282,394,air,20,67,24,71,34,67,39,69,16,80,53,76,5,67,39,97,46,95,25,118,72,91,34,121,103,97|mkick_6=395,484,air,17,66,14,76,27,69,22,87,21,85,11,95,4,68,30,101,32,96,28,127,60,94,27,136,75,118|mkick_7=485,538,air,24,69,11,75,30,75,4,93,41,87,13,98,24,82,23,103,30,101,16,128,48,119,21,149,36,130|mkick_off_1=-8|mkick_off_2=-11|mkick_off_3=-11|mkick_off_4=5|mkick_off_5=7|mkick_off_6=8|mkick_=static,7,1;spunch,7,2;ppunch,6,1;wkick,6,1|mkick_static=-3|mkick_spunch=12|mkick_ppunch=15|mkick_wkick=5||jump_type=jump|jump_src=jump.gif,283,160|jump_nof=5|jump_1=0,57,air,36,51,20,55,34,55,4,57,37,41,6,62,50,34,19,83,25,78,22,111,46,93,21,148,35,113|jump_2=58,127,air,37,46,22,48,36,45,4,54,46,40,6,66,62,43,17,66,21,67,22,89,45,74,15,114,36,90|jump_3=128,183,air,34,42,18,38,35,40,4,48,43,48,10,62,50,55,10,57,15,58,16,74,38,65,10,97,24,73|jump_4=184,230,air,33,39,16,35,35,39,4,47,32,49,12,64,40,53,11,51,17,49,18,68,37,59,11,84,20,61|jump_5=231,282,air,36,47,19,51,35,50,4,53,25,54,6,57,26,62,20,76,23,72,22,105,46,88,21,142,36,108|jump_off_1=0|jump_off_2=5|jump_off_3=0|jump_off_4=-5|jump_=static,5,1|jump_static=-5||mhurt_type=hurt|mhurt_src=hurt1.gif,411,160|mhurt_nof=4|mhurt_1=0,52,high,29,71,11,73,31,74,10,85,42,87,31,83,40,93,12,103,18,101,13,126,39,121,6,154,41,151|mhurt_2=53,115,high,27,79,10,77,30,79,18,94,25,95,38,96,19,97,5,102,14,102,14,125,35,120,10,154,49,147|mhurt_3=116,184,high,28,80,9,76,30,81,13,95,25,94,29,94,10,96,8,104,18,103,16,124,38,112,13,153,56,138|mhurt_4=0,52,high,29,71,11,73,31,74,10,85,42,87,31,83,40,93,12,103,18,101,13,126,39,121,6,154,41,151|mhurt_off_1=-6|mhurt_off_2=-6|mhurt_off_3=-3|mhurt_=static,4,1|mhurt_static=-11||hhurt1_type=hurt|hhurt1_src=hurt1.gif,411,160|hhurt1_nof=3;|hhurt1_1=185,245,high,20,61,10,71,29,71,4,82,41,82,18,78,52,77,18,100,24,98,16,129,42,122,13,154,50,153|hhurt1_2=246,317,high,20,62,12,74,30,71,5,82,45,78,11,87,52,72,25,101,32,99,26,128,50,119,22,154,59,151|hhurt1_3=185,245,high|hhurt1_off_1=-10|hhurt1_off_2=6|hhurt1_=static,3,1|hhurt1_static=-1||hhurt2_type=hurt|hhurt2_src=hurt1.gif,411,160|hhurt2_nof=6;|hhurt2_1=185,245,high,20,61,10,71,29,71,4,82,41,82,18,78,52,77,18,100,24,98,16,129,42,122,13,154,50,153|hhurt2_2=246,317,high,20,62,12,74,30,71,5,82,45,78,11,87,52,72,25,101,32,99,26,128,50,119,22,154,59,151|hhurt2_3=318,410,high,20,61,10,71,29,71,5,83,42,82,19,76,52,77,18,99,25,98,16,128,42,123,13,154,49,153|hhurt2_4=318,410,high,20,61,10,71,29,71,5,83,42,82,19,76,52,77,18,99,25,98,16,128,42,123,13,154,49,153|hhurt2_5=318,410,high,20,61,10,71,29,71,5,83,42,82,19,76,52,77,18,99,25,98,16,128,42,123,13,154,49,153|hhurt2_6=185,245,high,20,61,10,71,29,71,4,82,41,82,18,78,52,77,18,100,24,98,16,129,42,122,13,154,50,153|hhurt2_off_1=-32|hhurt2_off_2=-16|hhurt2_off_3=-8|hhurt2_off_4=-4|hhurt2_off_5=6|hhurt2_=static,6,1|hhurt2_static=-1||ahurt1_type=hurt|ahurt1_src=hurt2.gif,875,160|ahurt1_nof=9|ahurt1_1=0,66,air,17,42,5,53,20,42,19,60,30,47,31,56,38,43,21,78,25,73,44,98,53,76,49,126,54,102|ahurt1_2=67,170,air,7,62,14,79,19,65,28,75,28,57,40,63,30,50,44,83,44,77,71,89,71,71,92,110,80,90|ahurt1_3=171,286,air,9,109,27,112,21,94,39,117,30,89,54,110,38,78,47,97,48,92,77,101,78,86,101,119,90,106|ahurt1_4=287,356,mid,10,138,16,153,9,148,23,138,19,131,16,123,31,117,41,138,36,136,42,109,27,108,64,94,35,84|ahurt1_5=357,461,low,7,134,13,149,14,139,29,145,23,128,42,128,30,124,41,151,41,146,68,141,60,124,95,145,87,115|ahurt1_6=462,587,ground,8,152,24,153,20,151,42,155,28,144,60,156,40,142,57,149,54,145,81,148,82,134,113,152,97,151|ahurt1_7=588,710,ground,7,144,21,151,22,144,41,155,28,142,58,156,39,141,51,147,51,146,78,146,77,133,112,151,93,150|ahurt1_8=711,809,ground,11,125,6,141,15,130,4,152,31,124,23,155,44,122,32,147,31,143,60,146,57,136,90,150,67,147|ahurt1_9=810,874,ground,26,113,9,119,33,116,6,139,42,127,11,154,41,140,25,146,28,140,34,137,51,138,52,151,46,148|ahurt1_off_1=-45|ahurt1_off_2=-35|ahurt1_off_3=-15|ahurt1_off_4=0|ahurt1_off_5=0|ahurt1_off_6=2|ahurt1_off_7=36|ahurt1_off_8=13|ahurt1_=crouch,9,1|ahurt1_crouch=9||ahurt2_type=hurt|ahurt2_src=hurt2.gif,875,160|ahurt2_nof=6|ahurt2_1=0,66,air,17,42,5,53,20,42,19,60,30,47,31,56,38,43,21,78,25,73,44,98,53,76,49,126,54,102|ahurt2_2=67,170,air,7,62,14,79,19,65,28,75,28,57,40,63,30,50,44,83,44,77,71,89,71,71,92,110,80,90|ahurt2_3=171,286,air,9,109,27,112,21,94,39,117,30,89,54,110,38,78,47,97,48,92,77,101,78,86,101,119,90,106|ahurt2_4=287,356,mid,10,138,16,153,9,148,23,138,19,131,16,123,31,117,41,138,36,136,42,109,27,108,64,94,35,84|ahurt2_5=357,461,low,7,134,13,149,14,139,29,145,23,128,42,128,30,124,41,151,41,146,68,141,60,124,95,145,87,115|ahurt2_6=462,587,ground,8,152,24,153,20,151,42,155,28,144,60,156,40,142,57,149,54,145,81,148,82,134,113,152,97,151|ahurt2_off_1=-45|ahurt2_off_2=-35|ahurt2_off_3=-15|ahurt2_off_4=0|ahurt2_off_5=0|ahurt2_=crouch,6,1|ahurt2_crouch=0||ghurt1_type=hurt|ghurt1_src=ghurt.gif,297,160|ghurt1_nof=3|ghurt1_1=0,51,low,19,103,8,112,28,106,6,124,38,116,22,123,47,125,18,137,22,133,11,132,43,151,13,153,28,153|ghurt1_2=52,109,low,19,104,9,112,28,106,5,123,46,114,18,126,51,124,23,136,26,129,13,132,52,147,22,154,40,153|ghurt1_3=0,51,low,19,103,8,112,28,106,6,124,38,116,22,123,47,125,18,137,22,133,11,132,43,151,13,153,28,153|ghurt1_off_1=-12|ghurt1_off_2=9|ghurt1_=crouch,3,1|ghurt1_crouch=4||ghurt2_type=hurt|ghurt2_src=ghurt.gif,297,160|ghurt2_nof=6|ghurt2_1=0,51,low,19,103,8,112,28,106,6,124,38,116,22,123,47,125,18,137,22,133,11,132,43,151,13,153,28,153|ghurt2_2=52,109,low,19,104,9,112,28,106,5,123,46,114,18,126,51,124,23,136,26,129,13,132,52,147,22,154,40,153|ghurt2_3=110,196,low,22,102,16,111,36,104,5,122,54,106,10,136,67,113,35,128,40,128,25,154,65,139,32,151,75,152|ghurt2_4=197,296,low,17,105,18,115,36,104,6,129,52,102,10,141,70,108,42,127,44,126,28,154,76,139,36,151,88,152|ghurt2_5=52,109,low,19,104,9,112,28,106,5,123,46,114,18,126,51,124,23,136,26,129,13,132,52,147,22,154,40,153|ghurt2_6=0,51,low,19,103,8,112,28,106,6,124,38,116,22,123,47,125,18,137,22,133,11,132,43,151,13,153,28,153|ghurt2_off_1=-12|ghurt2_off_2=-40|ghurt2_off_3=-15|ghurt2_off_4=10|ghurt2_off_5=9|ghurt2_=crouch,6,1|ghurt2_crouch=4||sdkick_type=kick|sdkick_src=skick.gif,824,160|sdkick_nof=9|sdkick_hit=5,high,right,3|sdkick_1=768,823,high,32,60,19,69,32,69,32,76,32,79,45,63,44,82,30,99,37,98,19,126,48,124,5,154,44,153|sdkick_2=723,767,high,19,58,21,70,11,69,33,70,20,80,39,57,27,91,28,94,25,94,26,126,39,122,7,148,34,153|sdkick_3=673,722,high,12,58,18,67,5,71,32,69,6,83,34,57,18,85,22,94,21,97,44,114,31,117,20,134,29,153|sdkick_4=540,608,high,11,60,21,63,5,74,38,66,9,84,50,58,17,75,34,87,28,92,63,83,30,123,56,92,28,153|sdkick_5=346,444,high,11,65,24,68,5,78,37,76,18,74,56,75,25,60,40,88,37,93,60,71,32,123,92,62,30,153|sdkick_6=445,539,high,10,63,22,68,5,76,36,75,15,70,53,73,25,62,39,89,35,94,62,76,30,124,81,84,28,153|sdkick_7=609,672,high,10,58,20,64,5,73,35,67,7,85,39,56,19,86,27,91,28,97,58,95,33,123,45,117,28,153|sdkick_8=673,722,high,12,58,18,67,5,71,32,69,6,83,34,57,18,85,22,94,21,97,44,114,31,117,20,134,29,153|sdkick_9=768,823,high,32,60,19,69,32,69,32,76,32,79,45,63,44,82,30,99,37,98,19,126,48,124,5,154,44,153|sdkick_off_1=12|sdkick_off_2=10|sdkick_off_3=9|sdkick_off_4=0|sdkick_off_5=1|sdkick_off_6=1|sdkick_off_7=0|sdkick_off_8=-13|sdkick_=static,9,1;sdkick,6,4;spunch,8,2;wpunch,8,1;skick,7,1;hkick,7,1;mkick,8,1;wkick,7,2;lkick,8,1;lkickx,8,1;dodge,8,1;dashb,8,1;connect01b,9,1|sdkick_static=-7|sdkick_sdkick=0|sdkick_spunch=-32|sdkick_wpunch=-32|sdkick_skick=-24|sdkick_hkick=-18|sdkick_mkick=-16|sdkick_wkick=7|sdkick_lkick=-16|sdkick_lkickx=-16|sdkick_dodge=-38|sdkick_dashb=-58|sdkick_connect01b=0||sdkickx_type=fake|sdkickx_src=skick.gif,824,160|sdkickx_nof=5|sdkickx_1=768,823,high,32,60,19,69,32,69,32,76,32,79,45,63,44,82,30,99,37,98,19,126,48,124,5,154,44,153|sdkickx_2=723,767,high,19,58,21,70,11,69,33,70,20,80,39,57,27,91,28,94,25,94,26,126,39,122,7,148,34,153|sdkickx_3=609,672,high,10,58,20,64,5,73,35,67,7,85,39,56,19,86,27,91,28,97,58,95,33,123,45,117,28,153|sdkickx_4=673,722,high,12,58,18,67,5,71,32,69,6,83,34,57,18,85,22,94,21,97,44,114,31,117,20,134,29,153|sdkickx_5=768,823,high,32,60,19,69,32,69,32,76,32,79,45,63,44,82,30,99,37,98,19,126,48,124,5,154,44,153|sdkickx_off_1=12|sdkickx_off_2=21|sdkickx_off_3=0|sdkickx_off_4=-13|sdkickx_=static,5,1;spunch,4,2;wpunch,4,1;skick,3,1;hkick,3,1;mkick,4,1;wkick,3,2;lkick,4,1;lkickx,4,1;dodge,4,1;dashb,4,1;connect01b,5,1|sdkickx_static=-7|sdkickx_spunch=-32|sdkickx_wpunch=-32|sdkickx_skick=-24|sdkickx_hkick=-18|sdkickx_mkick=-16|sdkickx_wkick=7|sdkickx_lkick=-16|sdkickx_lkickx=-16|sdkickx_dodge=-38|sdkickx_dashb=-58|sdkickx_connect01b=0||# turn_type=turn|# turn_src=static.gif,594,160|# turn_nof=2|# turn_1=383,442,high|# turn_2=443,501,high|# turn_off_1=0|# turn_=static,2,1|# turn_static=0||# gturn_type=turn|# gturn_src=static.gif,594,160|# gturn_nof=2|# gturn_1=502,547,low|# gturn_2=548,593,low|# gturn_off_1=-9|# gturn_=crouch,2,1|# gturn_crouch=6";
var moveList = new Array();
var scenes = new Array();
var sceneWidth = 640, sceneHeight = 160, speedUnit = 10, baseSpeed = 100, thisSpeed = speedUnit, maxFrame = 11;
var headRadius = 7, armRadius = 4, foreArmRadius = 4, bodyRadius = 5, legRadius = 6, foreLegRadius = 5;

var fighters = new Array(), fighterIdx = 2;

var typeKick = "kick", typePunch = "punch", typeStance = "stance", typeConnect = "connect", typeDash = "dash", typeDodge = "dodge", typeBlock = "block", typeTurn = "turn", typeJump = "jump", typeHurt = "hurt", typeKO = "ko";
var posAir = "air", posHigh = "high", posMid = "mid", posLow = "low", posGround = "ground";
var partLeft = "left", partRight = "right", stanceHigh = "static", stanceLow = "crouch";
var powerWeak = 1, powerMid = 2, powerStrong = 3, powerSuper = 4;
var hurtAir = "ahurt1", hurtHighSmall = "hhurt1", hurtHighBig = "hhurt2", hurtMid = "mhurt", hurtLowSmall = "ghurt1", hurtLowBig = "ghurt2";
var touchAir = hurtAir, touchHigh = hurtHighSmall, touchMid = hurtMid, touchLow = hurtLowSmall;
var lCount = 0, iCount = 0, sCount = 1;
var moveRandom = 0, moveHurt = 2;
var needUpdate = false;
var powerRates = new Array(32, 16, 8, 4, 2);

var browser = null;

function getID() { return "SOF"+(++lCount)+""; }
function _IE_makeLayer(x,y,w,h,p,idx,content) {
  var xID=getID(), _p=(p==null)?document.body:p;
  _p.insertAdjacentHTML("AfterBegin",('<div id="'+xID+'" style="position:absolute; left:'+x+'px; top:'+y+'px; width:'+w+'px; height:'+h+'px; visibility:hidden; z-index:'+idx+';">'+content+'</div>'));
  return document.all[xID];
}
function _IE_setZIndex(l,idx) { if (l!=null) l.style.zIndex=idx; }
function _IE_setBGColor(l,color) { if (l!=null) l.style.backgroundColor=color; }
function _IE_setRect(l,top,right,bottom,left) { if (l!=null) l.style.clip = 'rect('+top+'px,'+right+'px,'+bottom+'px,'+left+'px)'; }
function _IE_showLayer(l) { if (l!=null) l.style.visibility = "visible"; }
function _IE_hideLayer(l) { if (l!=null) l.style.visibility = "hidden"; }
function _IE_moveLayerTo(l,x,y) { if (l!=null) { l.style.pixelLeft=x; l.style.pixelTop=y; } }
function _IE_getWinWidth() { return window.document.body.clientWidth; }

function getDIV() { return document.createElement("DIV"); }
function _N6_makeLayer(x,y,w,h,p,idx,content) {
  var xx=getDIV(), _p=(p==null)?document.body:p;
  with (xx.style) { position="absolute"; width=w+"px"; height=h+"px"; visibility="hidden"; left=x+"px"; top=y+"px"; zIndex=idx; }
  _p.appendChild(xx);
  xx.innerHTML = content;
  return xx;
}
function _N6_setZIndex(l,idx) { if (l!=null) l.style.zIndex=idx; }
function _N6_setBGColor(l,color) { if (l!=null) l.style.backgroundColor=color; }
function _N6_setRect(l,top,right,bottom,left) { if (l!=null) l.style.clip = 'rect('+top+'px,'+right+'px,'+bottom+'px,'+left+'px)'; }
function _N6_showLayer(l) { if (l!=null) l.style.visibility="visible"; }
function _N6_hideLayer(l) { if (l!=null) l.style.visibility="hidden"; }
function _N6_moveLayerTo(l,x,y) { if (l!=null) { l.style.left=x+"px"; l.style.top=y+"px"; } }
function _N6_getWinWidth() { return window.innerWidth; }

function browserOBJ() {
  var yx_nav=navigator.userAgent.toLowerCase();

  var yx_isOpera=(yx_nav.indexOf("opera")!=-1);
  var yx_isIE=(!yx_isOpera && yx_nav.indexOf("msie")!=-1);
  var yx_isIE4=(yx_isIE && yx_nav.indexOf("msie 4")!=-1);

  var isN6up = (yx_nav.indexOf("gecko")!=-1);
  var isIE4up = (yx_isIE && !yx_isIE4);

  if (isIE4up) {
    this.supported = true;
    this.makeLayer = _IE_makeLayer;
    this.setZIndex = _IE_setZIndex;
    this.setBGColor = _IE_setBGColor;
    this.setRect = _IE_setRect;
    this.showLayer = _IE_showLayer;
    this.hideLayer = _IE_hideLayer;
    this.moveLayerTo = _IE_moveLayerTo;
    this.getWinWidth = _IE_getWinWidth;
  }
  else if (isN6up) {
    this.supported = true;
    this.makeLayer = _N6_makeLayer;
    this.setZIndex = _N6_setZIndex;
    this.setBGColor = _N6_setBGColor;
    this.setRect = _N6_setRect;
    this.showLayer = _N6_showLayer;
    this.hideLayer = _N6_hideLayer;
    this.moveLayerTo = _N6_moveLayerTo;
    this.getWinWidth = _N6_getWinWidth;
  }
  else {
    this.supported = false;
  }
}

function switchCombo(n, state) {
	fighters[n].useCombo = state;
}

function findMove(name) {
  for (var i = 0; i < moveList.length; i++) {
    if (moveList[i].name == name) {
      return moveList[i];
    }
  }
}

function findNext(connect, name) {
  for (var i = 0; i < connect.length; i++) {
    if (connect[i].name == name) {
      return i;
    }
  }
}

function setFighterSpeed(n, s) {
  fighters[n].status.nextSpeed = s;
}

function sceneFrameOBJ(_name, _frame0, _frame1) {
  this.name = _name;
  this.sceneFrames = new Array();
  this.sceneFrames[0] = _frame0;
  this.sceneFrames[1] = _frame1;
}

function sceneOBJ(x,y) {
  this.width = sceneWidth;
  this.height = sceneHeight;
  this.x = x;
  this.y = y;
  this.idx = ++iCount;
  this.layer = browser.makeLayer(this.x, this.y, this.width, this.height, null, this.idx, '');

  browser.showLayer(this.layer);
  browser.setBGColor(this.layer, '#cccccc');
  browser.setRect(this.layer, 0, sceneWidth, sceneHeight, 0);
}

function moveOBJ() {
  this.name = "";
  this.type = "";
  this.src = "";
  this.srcWidth = 0;
  this.srcHeight = 0;
  this.nof = 0;
  this.hit = new Array();
  this.frames = new Array();
  this.offsets = new Array();
  this.connects = new Array();
}

function moveFrameOBJ() {
  this.offBegin = 0;
  this.offEnd = 0;
  this.pos = "";
  this.edge = 0;
  this.frameWidth = 0;
  this.skeleton = new skeletonOBJ();
}

function moveConnectOBJ() {
  this.name = "";
  this.frameEnd = 1;
  this.frameBegin = 1;
  this.move = null;
  this.offset = 0;
}

function hitOBJ(f,pos,part,power) {
  this.frame = f;
  this.pos = pos;
  this.part = part;
  this.power = power;
}

function pointOBJ(x,y) {
  this.x = x;
  this.y = y;
}

function skeletonOBJ() {
  this.head = new pointOBJ(0,0);
  this.leftShoulder = new pointOBJ(0,0);
  this.rightShoulder = new pointOBJ(0,0);
  this.leftElbow = new pointOBJ(0,0);
  this.rightElbow = new pointOBJ(0,0);
  this.leftHand = new pointOBJ(0,0);
  this.rightHand = new pointOBJ(0,0);
  this.leftHip = new pointOBJ(0,0);
  this.rightHip = new pointOBJ(0,0);
  this.leftKnee = new pointOBJ(0,0);
  this.rightKnee = new pointOBJ(0,0);
  this.leftFoot = new pointOBJ(0,0);
  this.rightFoot = new pointOBJ(0,0);
}

function setFrameClip(l,f) {
  if (f.dir == 1) {
    browser.setRect(l, 0, f.move.frames[f.frame-1].offEnd+1, f.move.srcHeight, f.move.frames[f.frame-1].offBegin);
  }
  else {
    browser.setRect(l, 0, f.move.srcWidth-f.move.frames[f.frame-1].offBegin, f.move.srcHeight, f.move.srcWidth-f.move.frames[f.frame-1].offEnd-1);
  }
}

function updateMove(me, scene) {
  if (me.lastMove.src != me.move.src || me.lastDir != me.dir) {
    browser.hideLayer(me.lastChars[scene]);
    browser.showLayer(me.chars[scene]);
  }
}

function updateFrame(me, scene) {
  if (me.lastChars != null) {
    updateMove(me, scene);
    me.lastChars = null;
  }
}

function prepareFrames(f) {
  var chars = new Array();
  var charBuilt = false;

  if (f.dir == 1) {
    for (var i = 0; i < f.frameImgs.length; i++) {
      if (f.frameImgs[i].name == f.move.src) {
        chars[0] = f.frameImgs[i].sceneFrames[0];
        chars[1] = f.frameImgs[i].sceneFrames[1];
        charBuilt = true;
        break;
      }
    }
  }
  else {
    for (var i = 0; i < f.frameImgs.length; i++) {
      if (f.frameImgs[i].name == "_" + f.move.src) {
        chars[0] = f.frameImgs[i].sceneFrames[0];
        chars[1] = f.frameImgs[i].sceneFrames[1];
        charBuilt = true;
        break;
      }
    }
  }

  if (!charBuilt) {
    var charSrc = (f.dir == 1)?(f.move.src):("_"+f.move.src);
    var charImg = '<img src="'+imgPath+charSrc+'" border="0" width="'+f.move.srcWidth+'" height="'+f.move.srcHeight+'">'
    chars[0] = browser.makeLayer(0, 0, f.move.srcWidth, f.move.srcHeight, scenes[0].layer, 1, charImg);
    chars[1] = browser.makeLayer(0, 0, f.move.srcWidth, f.move.srcHeight, scenes[1].layer, 1, charImg);

    f.frameImgs[f.frameImgs.length] = new sceneFrameOBJ(charSrc, chars[0], chars[1]);
  }

  return chars;
}

function point_point(x1, y1, x2, y2) {
  return Math.sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
}

function point_line(x1, y1, x2, y2, x3, y3, r1, r2, check) {
  var a1 = (y2 - y3) / (x2 - x3), b1 = (x2 * y3 - x3 * y2) / (x2 - x3), a2 = -1 / a1, b2 = y1 - a2 * x1;
  var x4 = (b2 - b1) / (a1 - a2), y4 = a2 * x4 + b2;
  if ((x2 >= x4 && x4 >= x3 || x2 <= x4 && x4 <= x3) && point_point(x1,y1,x4,y4) <= (r1 + r2)) {
    return true;
  }

  if (check) {
    var dis;
    dis = point_point(x1,y1,x2,y2);
    if (dis <= (r1 + r2)) return true;
    dis = point_point(x1,y1,x3,y3);
    if (dis <= (r1 + r2)) return true;
  }

  return false;
}

function line_cross(x1, y1, x2, y2, x3, y3, x4, y4) {
  var a1 = (y1 - y2) / (x1 - x2);
  var b1 = (x1 * y2 - x2 * y1) / (x1 - x2);
  var a2 = (y3 - y4) / (x3 - x4);
  var b2 = (x3 * y4 - x4 * y3) / (x3 - x4);

  return (b2 - b1) / (a1 - a2);
}

function line_line(x1, y1, x2, y2, x3, y3, x4, y4, r1, r2) {
  var x = line_cross(x1, y1, x2, y2, x3, y3, x4, y4);
  if ((x1 <= x && x <= x2 || x1 >= x && x >= x2) && ((x3 <= x && x <= x4 || x3 >= x && x >= x4))) {
    return true;
  }
  else {
    var dis;
    dis = point_point(x1,y1,x3,y3);
    if (dis <= (r1 + r2)) return true;
    dis = point_point(x1,y1,x4,y4);
    if (dis <= (r1 + r2)) return true;
    dis = point_point(x2,y2,x3,y3);
    if (dis <= (r1 + r2)) return true;
    dis = point_point(x2,y2,x4,y4);
    if (dis <= (r1 + r2)) return true;

    if (point_line(x1,y1,x3,y3,x4,y4,r1,r2,false) || point_line(x2,y2,x3,y3,x4,y4,r1,r2,false) || point_line(x3,y3,x1,y1,x2,y2,r1,r2,false) || point_line(x4,y4,x1,y1,x2,y2,r1,r2,false)) {
      return true;
    }
  }

  return false;
}

function checkHead(part, head, r1, r2) {
  return point_line(head.x, head.y, part[0].x, part[0].y, part[1].x, part[1].y, r1, r2, true);
}

function checkPart(part, p1, p2, r1, r2) {
  return line_line(part[0].x, part[0].y, part[1].x, part[1].y, p1.x, p1.y, p2.x, p2.y, r1, r2);
}

function checkBody(part, myParts, myRadius, him, checkArm, checkForeleg) {
  var hisBody = him.move.frames[him.frame-1].skeleton;
  var hitHim = false;

  if (!hitHim) {
    var head = new pointOBJ(him.x + hisBody.head.x * him.dir, hisBody.head.y);
    hitHim = checkHead(myParts, head, headRadius, myRadius);
  }

  if (checkArm) {
    if (!hitHim) {
      var leftElbow = new pointOBJ(him.x + hisBody.leftElbow.x * him.dir, hisBody.leftElbow.y);
      var leftHand = new pointOBJ(him.x + hisBody.leftHand.x * him.dir, hisBody.leftHand.y);
      hitHim = checkPart(myParts, leftElbow, leftHand, myRadius, foreArmRadius);
    }

    if (!hitHim) {
      var rightElbow = new pointOBJ(him.x + hisBody.rightElbow.x * him.dir, hisBody.rightElbow.y);
      var rightHand = new pointOBJ(him.x + hisBody.rightHand.x * him.dir, hisBody.rightHand.y);
      hitHim = checkPart(myParts, rightElbow, rightHand, myRadius, foreArmRadius);
    }

    if (!hitHim) {
      var leftShoulder = new pointOBJ(him.x + hisBody.leftShoulder.x * him.dir, hisBody.leftShoulder.y);
      var leftElbow = new pointOBJ(him.x + hisBody.leftElbow.x * him.dir, hisBody.leftElbow.y);
      hitHim = checkPart(myParts, leftShoulder, leftElbow, myRadius, armRadius);
    }

    if (!hitHim) {
      var rightShoulder = new pointOBJ(him.x + hisBody.rightShoulder.x * him.dir, hisBody.rightShoulder.y);
      var rightElbow = new pointOBJ(him.x + hisBody.rightElbow.x * him.dir, hisBody.rightElbow.y);
      hitHim = checkPart(myParts, rightShoulder, rightElbow, myRadius, armRadius);
    }
  }

  if (!hitHim) {
    var leftShoulder = new pointOBJ(him.x + hisBody.leftShoulder.x * him.dir, hisBody.leftShoulder.y);
    var leftHip = new pointOBJ(him.x + hisBody.leftHip.x * him.dir, hisBody.leftHip.y);
    hitHim = checkPart(myParts, leftShoulder, leftHip, myRadius, bodyRadius);
  }

  if (!hitHim) {
    var rightShoulder = new pointOBJ(him.x + hisBody.rightShoulder.x * him.dir, hisBody.rightShoulder.y);
    var rightHip = new pointOBJ(him.x + hisBody.rightHip.x * him.dir, hisBody.rightHip.y);
    hitHim = checkPart(myParts, rightShoulder, rightHip, myRadius, bodyRadius);
  }

  if (!hitHim) {
    var leftHip = new pointOBJ(him.x + hisBody.leftHip.x * him.dir, hisBody.leftHip.y);
    var leftKnee = new pointOBJ(him.x + hisBody.leftKnee.x * him.dir, hisBody.leftKnee.y);
    hitHim = checkPart(myParts, leftHip, leftKnee, myRadius, legRadius);
  }

  if (!hitHim) {
    var rightHip = new pointOBJ(him.x + hisBody.rightHip.x * him.dir, hisBody.rightHip.y);
    var rightKnee = new pointOBJ(him.x + hisBody.rightKnee.x * him.dir, hisBody.rightKnee.y);
    hitHim = checkPart(myParts, rightHip, rightKnee, myRadius, legRadius);
  }

  if(checkForeleg) {
    if (!hitHim) {
      var leftKnee = new pointOBJ(him.x + hisBody.leftKnee.x * him.dir, hisBody.leftKnee.y);
      var leftFoot = new pointOBJ(him.x + hisBody.leftFoot.x * him.dir, hisBody.leftFoot.y);
      hitHim = checkPart(myParts, leftKnee, leftFoot, myRadius, foreLegRadius);
    }

    if (!hitHim) {
      var rightKnee = new pointOBJ(him.x + hisBody.rightKnee.x * him.dir, hisBody.rightKnee.y);
      var rightFoot = new pointOBJ(him.x + hisBody.rightFoot.x * him.dir, hisBody.rightFoot.y);
      hitHim = checkPart(myParts, rightKnee, rightFoot, myRadius, foreLegRadius);
    }
  }

  return hitHim;
}

function checkCollision(me, him) {
  var myBody = me.move.frames[me.move.hit[me.hit].frame-1].skeleton;
  var myAttacks = new Array();
  var myRadius, part;
  var checkArm = false, checkForeleg = false;

  if (him.move.frames[him.frame-1].pos == posGround) {
    return false;
  }

  if (him.move.type == typeBlock) {
    checkArm = true;
  }

  if (me.move.type == typePunch) {
    if (me.move.hit[me.hit].part == partLeft) {
      myAttacks[0] = new pointOBJ(me.x + myBody.leftElbow.x * me.dir, myBody.leftElbow.y);
      myAttacks[1] = new pointOBJ(me.x + myBody.leftHand.x * me.dir, myBody.leftHand.y);
    }
    else {
      myAttacks[0] = new pointOBJ(me.x + myBody.rightElbow.x * me.dir, myBody.rightElbow.y);
      myAttacks[1] = new pointOBJ(me.x + myBody.rightHand.x * me.dir, myBody.rightHand.y);
    }

    myRadius = foreArmRadius;
    part = "Punch";
  }
  else {
    if (me.move.hit[me.hit].part == partLeft) {
      myAttacks[0] = new pointOBJ(me.x + myBody.leftKnee.x * me.dir, myBody.leftKnee.y);
      myAttacks[1] = new pointOBJ(me.x + myBody.leftFoot.x * me.dir, myBody.leftFoot.y);
    }
    else {
      myAttacks[0] = new pointOBJ(me.x + myBody.rightKnee.x * me.dir, myBody.rightKnee.y);
      myAttacks[1] = new pointOBJ(me.x + myBody.rightFoot.x * me.dir, myBody.rightFoot.y);
    }

    myRadius = foreLegRadius;
    checkForeleg = true;
    part = "Kick";
  }

  return checkBody(me.frame+":"+part, myAttacks, myRadius, him, checkArm, checkForeleg);
}

function checkSkeleton() {
  var me = fighters[0], him = fighters[1];
  var myBody = me.move.frames[me.frame-1].skeleton;
  var hisBody = him.move.frames[him.frame-1].skeleton;
  var hitMe = false, checkArm = false, checkForeleg = false;
  var myParts = new Array(), hisParts = new Array();

  var myHead = new pointOBJ(me.x + myBody.head.x * me.dir, myBody.head.y);
  var hisHead = new pointOBJ(him.x + hisBody.head.x * him.dir, hisBody.head.y);

  if (!hitMe) {
    hisParts[0] = new pointOBJ(him.x + hisBody.leftShoulder.x * him.dir, hisBody.leftShoulder.y);
    hisParts[1] = new pointOBJ(him.x + hisBody.leftHip.x * him.dir, hisBody.leftHip.y);

    hitMe = checkBody(me.frame+":Left Body", hisParts, bodyRadius, me, checkArm, checkForeleg);
  }

  if (!hitMe) {
    hisParts[0] = new pointOBJ(him.x + hisBody.rightShoulder.x * him.dir, hisBody.rightShoulder.y);
    hisParts[1] = new pointOBJ(him.x + hisBody.rightHip.x * him.dir, hisBody.rightHip.y);

    hitMe = checkBody(me.frame+":Right Body", hisParts, bodyRadius, me, checkArm, checkForeleg);
  }

  if (!hitMe) {
    hisParts[0] = new pointOBJ(him.x + hisBody.leftHip.x * him.dir, hisBody.leftHip.y);
    hisParts[1] = new pointOBJ(him.x + hisBody.leftKnee.x * him.dir, hisBody.leftKnee.y);

    hitMe = checkBody(me.frame+":Left Leg", hisParts, legRadius, me, checkArm, checkForeleg);
  }

  if (!hitMe) {
    hisParts[0] = new pointOBJ(him.x + hisBody.rightHip.x * him.dir, hisBody.rightHip.y);
    hisParts[1] = new pointOBJ(him.x + hisBody.rightKnee.x * him.dir, hisBody.rightKnee.y);

    hitMe = checkBody(me.frame+":Right Leg", hisParts, legRadius, me, checkArm, checkForeleg);
  }

  if (!hitMe) {
    var dis = point_point(myHead.x, myHead.y, hisHead.x, hisHead.y);
    hitMe = (dis < (headRadius + headRadius))?true:false;
  }

  if (!hitMe) {
    myParts[0] = new pointOBJ(me.x + myBody.leftShoulder.x * me.dir, myBody.leftShoulder.y);
    myParts[1] = new pointOBJ(me.x + myBody.leftHip.x * me.dir, myBody.leftHip.y);

    hitMe = checkHead(myParts, hisHead, headRadius, armRadius);
  }

  if (!hitMe) {
    myParts[0] = new pointOBJ(me.x + myBody.rightShoulder.x * me.dir, myBody.rightShoulder.y);
    myParts[1] = new pointOBJ(me.x + myBody.rightHip.x * me.dir, myBody.rightHip.y);

    hitMe = checkHead(myParts, hisHead, headRadius, armRadius);
  }

  if (!hitMe) {
    myParts[0] = new pointOBJ(me.x + myBody.leftHip.x * me.dir, myBody.leftHip.y);
    myParts[1] = new pointOBJ(me.x + myBody.leftKnee.x * me.dir, myBody.leftKnee.y);

    hitMe = checkHead(myParts, hisHead, headRadius, legRadius);
  }

  if (!hitMe) {
    myParts[0] = new pointOBJ(me.x + myBody.rightHip.x * me.dir, myBody.rightHip.y);
    myParts[1] = new pointOBJ(me.x + myBody.rightKnee.x * me.dir, myBody.rightKnee.y);

    hitMe = checkHead(myParts, hisHead, headRadius, legRadius);
  }

  return hitMe;
}

function checkBlock(me, him) {
  var myPos = me.move.hit[me.hit].pos;
  var hisPos = him.move.frames[him.frame-1].pos;

  if (him.move.type == typeBlock) {
    if ((myPos == posHigh || myPos == posMid) && hisPos == posHigh) {
      return true;
    }
    else if (myPos == posLow && hisPos == posLow) {
      return true;
    }
  }

  return false;
}

function setPosition(d0, d1, away) {
  var dx0 = d0, dx1 = d1; 
  var x0 = fighters[0].x + d0, x1 = fighters[1].x + d1;

  if (x0 < 0) {
    dx0 += -x0;
    if (away) {
      dx1 += -x0;
    }
  }
  else if (x0 + fighters[0].move.frames[fighters[0].frame-1].frameWidth > sceneWidth) {
    dx0 = sceneWidth - fighters[0].x - fighters[0].move.frames[fighters[0].frame-1].frameWidth;
  }

  if (x1 > sceneWidth - 1) {
    dx1 -= x1 - sceneWidth + 1;
    if (away) {
      dx0 -= x1 - sceneWidth + 1;
    }
  }
  else if (x1 - fighters[1].move.frames[fighters[1].frame-1].frameWidth + 1 < 0) {
    dx1 = fighters[1].move.frames[fighters[1].frame-1].frameWidth - fighters[1].x - 1;
  }

  fighters[0].x += dx0;
  browser.moveLayerTo(fighters[0].chars[1-sCount], fighters[0].x - fighters[0].move.frames[fighters[0].frame-1].offBegin, fighters[0].y);
  fighters[1].x += dx1;
  browser.moveLayerTo(fighters[1].chars[1-sCount], fighters[1].x - fighters[1].move.srcWidth + 1 + fighters[1].move.frames[fighters[1].frame-1].offBegin, fighters[1].y);
}

function checkBorder() {
  if (fighters[0].x < 0) {
    setPosition(-fighters[0].x, 0, false);
  }
  else if (fighters[1].x + 1 > sceneWidth) {
    setPosition(0, sceneWidth-fighters[1].x-1, false);
  }
  else {
    setPosition(0, 0, false);
  }
}

function syncSpeed(me, him) {
  if (me.status.speed - me.status.speedSeed > him.status.speed - him.status.speedSeed) {
    me.status.speedSeed = me.status.speed - (him.status.speed - him.status.speedSeed);
  }
}

function checkSpeed(me) {
  me.status.speedSeed += speedUnit;

  if (me.status.speedSeed == me.status.speed) {
    me.status.speedSeed = 0;
    me.status.speed = me.status.nextSpeed;
    return true;
  }
  else {
    return false;
  }
}

function getHurtOffset(type) {
  var baseMove = (type == hurtLowSmall || type == hurtLowBig)?stanceLow:stanceHigh;
  var move = findMove(baseMove);
  var next = findNext(move.connects, type);

  return move.connects[next].offset;
}

function getHurt(me,him) {
  var hurtType;
  var myPower = me.move.hit[me.hit].power;
  var myPos = me.move.hit[me.hit].pos;
  var hisPos = him.move.frames[him.frame-1].pos;

  if (myPower == powerSuper && hisPos != posLow || hisPos == posAir) {
    hurtType = hurtAir;
  }
  else if (hisPos == posLow) {
    if (myPower == powerWeak || myPower == powerMid) {
      hurtType = hurtLowSmall;
    }
    else {
      hurtType = hurtLowBig;
    }
  }
  else if (hisPos == posMid) {
    hurtType = hurtMid;
  }
  else if (hisPos == posHigh) {
    if (myPos == posMid) {
      hurtType = hurtMid;
    }
    else if (myPower == powerWeak || myPower == powerMid) {
      hurtType = hurtHighSmall;
    }
    else {
      hurtType = hurtHighBig;
    }
  }

  return hurtType;
}

function getTouch(me) {
  var myPos = me.move.frames[me.frame-1].pos;

  if (myPos == posAir) {
    return touchAir;
  }
  else if (myPos == posHigh) {
    return touchHigh;
  }
  else if (myPos == posMid) {
    return touchMid;
  }
  else if (myPos == posLow) {
    return touchLow;
  }
}

function getBlockOffset(me) {
  var x = me.x;
  var currentEdge = x + me.move.frames[me.frame-1].edge - 1;

  if (me.hit < me.move.hit.length - 1) {
    var nextEdge = x + me.move.offsets[me.frame-1] + me.move.frames[me.frame].edge - 1;
    if (nextEdge > currentEdge) {
      return currentEdge - nextEdge;
    }
  }
  else {
    var maxEdge = currentEdge;
    var nextEdge;

    for (var i = me.frame; i < me.move.frames.length; i++) {
      x += me.move.offsets[i-1];
      nextEdge = x + me.move.frames[i].edge - 1;
      if (maxEdge < nextEdge) {
        maxEdge = nextEdge;
      }
    }

    x += me.move.connects[0].offset;
    nextEdge = x + me.move.connects[0].move.frames[0].edge - 1;;
    if (maxEdge < nextEdge) {
      maxEdge = nextEdge;
    }

    if (me.dir == 1) {
      if (getLeftSide() <= maxEdge) {
        return getLeftSide() - maxEdge - 1;
      }
    }
    else {
      maxEdge = fighters[1].x * 2 - maxEdge;
      if (getRightSide() >= maxEdge) {
        return maxEdge - getRightSide() - 1;
      }
    }
  }

  return 0;
}

function setBlockOffset(me, off, power) {
  me.blockOffset = off;
  me.power = power;
}

function getScore(type) {
  if (type == typeStance) {
    return 2;
  }
  else if (type == typeHurt) {
    return 4;
  }
  else if (type == typeBlock) {
    return 8;
  }
  else {
    return 1;
  }
}

function getRightSide() {
  return fighters[0].x + fighters[0].move.frames[fighters[0].frame-1].edge - 1;
}

function getLeftSide() {
  return fighters[1].x - fighters[1].move.frames[fighters[1].frame-1].edge + 1;
}

function getDistance() {
  return (getLeftSide() - getRightSide() - 1);
}

function goCombo() {
  return Math.random() < 0.5;
}

function getNext(f) {
  if (f.useCombo || f.move.type == typeStance) {
    var frameMoves = new Array(), next = 0;
    for (var i = 0; i < f.move.connects.length; i++) {
      if (f.move.connects[i].frameEnd == f.frame) {
        frameMoves[frameMoves.length] = i;
      }
    }

    while (true) {
      next = frameMoves[Math.floor(Math.random() * frameMoves.length)];
      if (f.move.connects[next].move.type != typeHurt) {
        return next;
      }
    }
  }
  else {
    if (f.move.type == typeBlock) {
      return 1;
    }
    else {
      for (var i = 0; i < f.move.connects.length; i++) {
        if (f.move.connects[i].move.type == typeStance) {
          return i;
        }
      }
    }

    return 0;
  }
}

function prepareMove(scene) {
  setFrameClip(this.chars[scene], this);

  if (this.dir == 1) {
    browser.moveLayerTo(this.chars[scene], this.x - this.move.frames[this.frame-1].offBegin, this.y);
  }
  else {
    browser.moveLayerTo(this.chars[scene], this.x - this.move.srcWidth + 1 + this.move.frames[this.frame-1].offBegin, this.y);
  }
}

function nextMove() {
  var scene = 1 - sCount;
  var goNext = false;

  this.isHitFrame = false;

  updateFrame(this, scene);
  
  if (this.frame < this.move.nof && this.status.mode != moveHurt) {
    goNext = true;

    if (this.useCombo) {
      for (var i = 0; i < this.move.connects.length; i++) {
        if (this.move.connects[i].frameEnd == this.frame) {
          if (goCombo()) {
            goNext = false;
            break;
          }
        }
      }
    }
  }

  if (goNext) {
    this.x += this.move.offsets[this.frame-1] * this.dir;
    this.frame++;

    this.prepare(scene);

    for (var i = 0; i < this.move.hit.length; i++) {
      if (this.frame == this.move.hit[i].frame) {
        this.isHitFrame = true;
        this.hit = i;
        break;
      }
    }
  }
  else {
    var next = 0;
    if (this.status.mode != moveHurt) {
      if (this.status.mode == moveRandom) {
        next = getNext(this);
      }
    }

    if (this.status.mode == moveRandom) {
      this.x += this.move.connects[next].offset * this.dir;

      if (this.move.type == typeBlock && this.blockOffset != 0) {
        next = 0;

        this.x += this.blockOffset * this.dir;
        if (this.blockOffset > 0) {
          this.blockOffset = Math.floor(this.blockOffset/powerRates[this.power]);
        }
        else if (this.blockOffset < 0) {
          this.blockOffset = -Math.floor(-this.blockOffset/powerRates[this.power]);
        }
      }
    }
    else {
      this.x += this.status.offset * this.dir;
    }

    this.lastMove = this.move;
    this.lastChars = this.chars;

    if (this.status.mode == moveRandom) {
      this.frame = this.move.connects[next].frameBegin; 
      this.move = this.move.connects[next].move;
    }
    else {
      this.frame = 1;
      this.move = this.status.move;
    }
    this.chars = prepareFrames(this);

    this.prepare(scene);

    updateMove(this, scene);

    if (this.move.type == typeStance) {
      if (this.move.name == stanceHigh) {
        this.stance = 0;
      }
      else {
        this.stance = 1;
      }
    }
  }

  this.status.mode = this.mode;
  this.status.move = null;
  this.status.offset = 0;
}


// frame unit is the basic time unit in the game
// frame speed is decided by how many frame units it holds for one move frame
// when change occurs(get hurt or pushed), it happens after either the opponent finishes the move frame, or itself finishes its move frame, whichever comes first

function statusOBJ() {
  this.mode = moveRandom;
  this.move = null;
  this.offset = 0;

  this.speed = baseSpeed;
  this.speedSeed = 0;

  this.nextSpeed = baseSpeed;
}

function fighterOBJ(name, dir, x) {
  this.name = name;

  this.dir = dir;
  this.lastDir = dir;

	this.useCombo = false;

  this.x = x;
  this.y = 0;

  this.lastMove = null;
  this.move = moveList[0];
  this.frame = 1;
  this.stance = 0;

  this.isHitFrame = false;
  this.hit = 0;

  this.blockOffset = 0;
  this.power = 1;

  this.prepare = prepareMove;
  this.nextMove = nextMove;
  this.next = 0;

  this.frameImgs = new Array();
  this.lastChars = null;
  this.chars = prepareFrames(this);

  this.mode = moveRandom;
  this.status = new statusOBJ();
}

function buildMoveList() {
  var _connects, _connectData, _frame, _frameData, _off, _move, isHitFrame;

  var _comment_ = /^#/;
  var _type_ = /_type=/;
  var _src_ = /_src=/;
  var _nof_ = /_nof=/;
  var _hit_ = /_hit=/;
  var _connect_ = /_=/;
  
  var _moves = allMoves.split('||');

  var strAry;
  for (var i = 0; i < _moves.length; i++) {
    moveList[i] = new moveOBJ();

    _move = null;
    _move = _moves[i].split('|');

    _connects = null;
    _frame = 0;
    _off = 0;
    for (var j = 0; j < _move.length; j++) {
      strAry = null;

      if (_comment_.test(_move[j])) {
        continue;
      }

      if (_type_.test(_move[j])) {
        strAry = _move[j].split(_type_);
        moveList[i].name = strAry[0];;
        moveList[i].type = strAry[1];
      }
      else if (_src_.test(_move[j])) {
        strAry = _move[j].split(_src_)[1].split(',');
        moveList[i].src = strAry[0];
        moveList[i].srcWidth = parseInt(strAry[1]);
        moveList[i].srcHeight = parseInt(strAry[2]);
      }
      else if (_nof_.test(_move[j])) {
        strAry = _move[j].split(_nof_);
        moveList[i].nof = parseInt(strAry[1]);
      }
      else if (_hit_.test(_move[j])) {
        strAry = _move[j].split(_hit_)[1].split(';');
        for (var ii = 0; ii < strAry.length; ii++) {
          var hitAry = strAry[ii].split(',');
          moveList[i].hit[ii] = new hitOBJ(parseInt(hitAry[0]), hitAry[1], hitAry[2], parseInt(hitAry[3]));
        }
      }
      else if (_move[j].indexOf(moveList[i].name+"_"+(_frame+1)+"=") >= 0) {
        _frameData = null;
        _frameData = _move[j].split('=')[1].split(',');
        moveList[i].frames[_frame] = new moveFrameOBJ();
        moveList[i].frames[_frame].offBegin = parseInt(_frameData[0]);
        moveList[i].frames[_frame].offEnd = parseInt(_frameData[1]);
        moveList[i].frames[_frame].frameWidth = moveList[i].frames[_frame].offEnd - moveList[i].frames[_frame].offBegin + 1;

        moveList[i].frames[_frame].pos = _frameData[2];

        if (_frameData.length > 3) {
          isHitFrame = false;
          for (var ii = 0; ii < moveList[i].hit.length; ii++) {
            if (moveList[i].hit[ii].frame == _frame + 1) {
              isHitFrame = true;
              break;
            }
          }

          moveList[i].frames[_frame].skeleton.head.x = parseInt(_frameData[3]);
          moveList[i].frames[_frame].skeleton.head.y = parseInt(_frameData[4]);

          if (moveList[i].frames[_frame].edge < moveList[i].frames[_frame].skeleton.head.x + headRadius) {
            moveList[i].frames[_frame].edge = moveList[i].frames[_frame].skeleton.head.x + headRadius;
          }

          moveList[i].frames[_frame].skeleton.rightShoulder.x = parseInt(_frameData[5]);
          moveList[i].frames[_frame].skeleton.rightShoulder.y = parseInt(_frameData[6]);
          moveList[i].frames[_frame].skeleton.leftShoulder.x = parseInt(_frameData[7]);
          moveList[i].frames[_frame].skeleton.leftShoulder.y = parseInt(_frameData[8]);

          if (moveList[i].frames[_frame].edge < moveList[i].frames[_frame].skeleton.rightShoulder.x + bodyRadius) {
            moveList[i].frames[_frame].edge = moveList[i].frames[_frame].skeleton.rightShoulder.x + bodyRadius;
          }
          if (moveList[i].frames[_frame].edge < moveList[i].frames[_frame].skeleton.leftShoulder.x + bodyRadius) {
            moveList[i].frames[_frame].edge = moveList[i].frames[_frame].skeleton.leftShoulder.x + bodyRadius;
          }

          moveList[i].frames[_frame].skeleton.rightElbow.x = parseInt(_frameData[9]);
          moveList[i].frames[_frame].skeleton.rightElbow.y = parseInt(_frameData[10]);
          moveList[i].frames[_frame].skeleton.leftElbow.x = parseInt(_frameData[11]);
          moveList[i].frames[_frame].skeleton.leftElbow.y = parseInt(_frameData[12]);

          if (moveList[i].frames[_frame].edge < moveList[i].frames[_frame].skeleton.rightElbow.x + armRadius) {
            moveList[i].frames[_frame].edge = moveList[i].frames[_frame].skeleton.rightElbow.x + armRadius;
          }
          if (moveList[i].frames[_frame].edge < moveList[i].frames[_frame].skeleton.leftElbow.x + armRadius) {
            moveList[i].frames[_frame].edge = moveList[i].frames[_frame].skeleton.leftElbow.x + armRadius;
          }

          moveList[i].frames[_frame].skeleton.rightHand.x = parseInt(_frameData[13]);
          moveList[i].frames[_frame].skeleton.rightHand.y = parseInt(_frameData[14]);
          moveList[i].frames[_frame].skeleton.leftHand.x = parseInt(_frameData[15]);
          moveList[i].frames[_frame].skeleton.leftHand.y = parseInt(_frameData[16]);

          if (isHitFrame) {
            if (moveList[i].frames[_frame].edge < moveList[i].frames[_frame].skeleton.rightHand.x + foreArmRadius) {
              moveList[i].frames[_frame].edge = moveList[i].frames[_frame].skeleton.rightHand.x + foreArmRadius;
            }
            if (moveList[i].frames[_frame].edge < moveList[i].frames[_frame].skeleton.leftHand.x + foreArmRadius) {
              moveList[i].frames[_frame].edge = moveList[i].frames[_frame].skeleton.leftHand.x + foreArmRadius;
            }
          }

          moveList[i].frames[_frame].skeleton.rightHip.x = parseInt(_frameData[17]);
          moveList[i].frames[_frame].skeleton.rightHip.y = parseInt(_frameData[18]);
          moveList[i].frames[_frame].skeleton.leftHip.x = parseInt(_frameData[19]);
          moveList[i].frames[_frame].skeleton.leftHip.y = parseInt(_frameData[20]);

          if (moveList[i].frames[_frame].edge < moveList[i].frames[_frame].skeleton.rightHip.x + bodyRadius) {
            moveList[i].frames[_frame].edge = moveList[i].frames[_frame].skeleton.rightHip.x + bodyRadius;
          }
          if (moveList[i].frames[_frame].edge < moveList[i].frames[_frame].skeleton.leftHip.x + bodyRadius) {
            moveList[i].frames[_frame].edge = moveList[i].frames[_frame].skeleton.leftHip.x + bodyRadius;
          }

          moveList[i].frames[_frame].skeleton.rightKnee.x = parseInt(_frameData[21]);
          moveList[i].frames[_frame].skeleton.rightKnee.y = parseInt(_frameData[22]);
          moveList[i].frames[_frame].skeleton.leftKnee.x = parseInt(_frameData[23]);
          moveList[i].frames[_frame].skeleton.leftKnee.y = parseInt(_frameData[24]);

          if (moveList[i].frames[_frame].edge < moveList[i].frames[_frame].skeleton.rightKnee.x + legRadius) {
            moveList[i].frames[_frame].edge = moveList[i].frames[_frame].skeleton.rightKnee.x + legRadius;
          }
          if (moveList[i].frames[_frame].edge < moveList[i].frames[_frame].skeleton.leftKnee.x + legRadius) {
            moveList[i].frames[_frame].edge = moveList[i].frames[_frame].skeleton.leftKnee.x + legRadius;
          }

          moveList[i].frames[_frame].skeleton.rightFoot.x = parseInt(_frameData[25]);
          moveList[i].frames[_frame].skeleton.rightFoot.y = parseInt(_frameData[26]);
          moveList[i].frames[_frame].skeleton.leftFoot.x = parseInt(_frameData[27]);
          moveList[i].frames[_frame].skeleton.leftFoot.y = parseInt(_frameData[28]);

          if (isHitFrame) {
            if (moveList[i].frames[_frame].edge < moveList[i].frames[_frame].skeleton.rightFoot.x + foreLegRadius) {
              moveList[i].frames[_frame].edge = moveList[i].frames[_frame].skeleton.rightFoot.x + foreLegRadius;
            }
            if (moveList[i].frames[_frame].edge < moveList[i].frames[_frame].skeleton.leftFoot.x + foreLegRadius) {
              moveList[i].frames[_frame].edge = moveList[i].frames[_frame].skeleton.leftFoot.x + foreLegRadius;
            }
          }
        }

        _frame++;
      }
      else if (_move[j].indexOf(moveList[i].name+"_off_"+(_off+1)+"=") >= 0) {
        moveList[i].offsets[_off] = parseInt(_move[j].split('=')[1]);
        _off++;
      }
      else if (_connect_.test(_move[j])) {
        _connects = _move[j].split(_connect_)[1].split(';');
        for (var k = 0; k < _connects.length; k++) {
          _connectData = null
          _connectData = _connects[k].split(',');
          moveList[i].connects[k] = new moveConnectOBJ();

          moveList[i].connects[k].name = _connectData[0];
          moveList[i].connects[k].frameEnd = parseInt(_connectData[1]);
          moveList[i].connects[k].frameBegin = parseInt(_connectData[2]);
        }
      }
      else {
        for (var k = 0; k < moveList[i].connects.length; k++) {
          if (_move[j].indexOf(moveList[i].name+"_"+moveList[i].connects[k].name+"=") >= 0) {
            moveList[i].connects[k].offset = parseInt(_move[j].split('=')[1]);
            break;
          }
        }
      }
    }
  }

  for (var i = 0; i < moveList.length; i++) {
    for (var j = 0; j < moveList[i].connects.length; j++) {
      for (var k = 0; k < moveList.length; k++) {
        if (moveList[i].connects[j].name == moveList[k].name) {
          moveList[i].connects[j].move = moveList[k];
          break;
        }
      }
    }
  }
}

function buildScenes() {
  var w = Math.floor((browser.getWinWidth() - sceneWidth) / 2);
  scenes[0] = new sceneOBJ(w, 36);
  scenes[1] = new sceneOBJ(w, 36);
}

// hit - hit ... hurt both
// open - open ... hurt both

// hit - open ... hurt open
// hit - stance ... hurt stance
// hit - hurt ... hurt hurt

// open - block ... hurt open, push block away

// hurt - stance ... push both away
// hurt - hurt ... push both away
// stance - stance ... push both away
// block - block ... push both away

// hit - block ... push block away

// open - stance ... push stance away
// block - stance ... push stance away

// open - hurt ... push hurt away
// hurt - block ... push hurt away

function showFighters() {
  if (needUpdate) {
    checkBorder();

    var hitIt = false, blockIt = false, hurtIt = false;
    var hurt0 = "", hurt1 = "";
    var dis = getDistance();

    if (dis < 0) {
      if (fighters[0].isHitFrame) {
        if (checkCollision(fighters[0], fighters[1])) {
          if (checkBlock(fighters[0], fighters[1])) {
            blockIt = true;
            setBlockOffset(fighters[1], getBlockOffset(fighters[0]), fighters[0].move.hit[fighters[0].hit].power);
          }
          else {
            hitIt = true;

            hurt1 = getHurt(fighters[0], fighters[1]);
            fighters[1].status.offset = getHurtOffset(hurt1);
            fighters[1].status.move = findMove(hurt1);
            fighters[1].status.mode = moveHurt;

            syncSpeed(fighters[1], fighters[0]);
          }
        }

        browser.setZIndex(fighters[0].chars[sCount], ++fighterIdx)
        browser.setZIndex(fighters[0].chars[1-sCount], ++fighterIdx)
      }

      if (fighters[1].isHitFrame) {
        if (checkCollision(fighters[1], fighters[0])) {
          if (checkBlock(fighters[1], fighters[0])) {
            blockIt = true;
            setBlockOffset(fighters[0], getBlockOffset(fighters[1]), fighters[1].move.hit[fighters[1].hit].power);
          }
          else {
            hitIt = true;

            hurt0 = getHurt(fighters[1], fighters[0]);
            fighters[0].status.offset = getHurtOffset(hurt0);
            fighters[0].status.move = findMove(hurt0);
            fighters[0].status.mode = moveHurt;

            syncSpeed(fighters[0], fighters[1]);
          }
        }

        browser.setZIndex(fighters[1].chars[sCount], ++fighterIdx)
        browser.setZIndex(fighters[1].chars[1-sCount], ++fighterIdx)
      }

      if (!hitIt && !blockIt) {
        if (checkSkeleton()) {
          var score0 = getScore(fighters[0].move.type), score1 = getScore(fighters[1].move.type), score = score0 + score1;
          var hurtF0 = false; hurtF1 = false;

          if (score == 2) {
            hurtIt = true;

            hurtF0 = true;
            hurtF1 = true;
          }
          else if (score == 9) {
            hurtIt = true;

            if (score0 == 8) {
              hurtF1 = true;
            }
            else {
              hurtF0 = true;
            }
          }

          if (hurtIt) {
            hurt0 = getTouch(fighters[0]);
            fighters[0].status.offset = getHurtOffset(hurt0);

            if (hurtF0) {
              fighters[0].status.move = findMove(hurt0);
              fighters[0].status.mode = moveHurt;

              syncSpeed(fighters[0], fighters[1]);
            }
            else {
              setBlockOffset(fighters[0], fighters[0].status.offset, powerWeak);
            }

            hurt1 = getTouch(fighters[1]);
            fighters[1].status.offset = getHurtOffset(hurt1);

            if (hurtF1) {
              fighters[1].status.move = findMove(hurt1);
              fighters[1].status.mode = moveHurt;

              syncSpeed(fighters[1], fighters[0]);
            }
            else {
              setBlockOffset(fighters[1], fighters[1].status.offset, powerWeak);
            }
          }
          else {
            var dis0 = 0, dis1 = 1;

            if (score == 4 || score == 6 || score == 8 || score == 16) {
              dis0 = Math.floor(dis/2);
              dis1 = dis0 - dis;
            }
            else if (score == 3 || score == 10) {
              if (score0 == 2) {
                dis0 = dis;
              }
              else {
                dis1 = -dis;
              }
            }
            else if (score == 5 || score == 12) {
              if (score0 == 4) {
                dis0 = dis;
              }
              else {
                dis1 = -dis;
              }
            }

            setPosition(dis0, dis1, true);
          }
        }
      }
    }

    sCount = 1 - sCount;
    browser.setZIndex(scenes[sCount].layer, ++iCount);

    needUpdate = false;
    // window.status = fighters[0].name + ":" + fighters[0].x + " ... " + fighters[1].name + ":" + fighters[1].x;
  }


  var go0 = checkSpeed(fighters[0]), go1 = checkSpeed(fighters[1]);

  if (go0 || go1) {
    if (go0) {
      fighters[0].nextMove();
    }
    else {
      updateFrame(fighters[0], 1-sCount);
      fighters[0].prepare(1-sCount);
    }

    if (go1) {
      fighters[1].nextMove();
    }
    else {
      updateFrame(fighters[1], 1-sCount);
      fighters[1].prepare(1-sCount);
    }

    needUpdate = true;
  }

  if (needUpdate) {
    sceneTimer = setTimeout("showFighters()", thisSpeed);
    thisSpeed = speedUnit;
  }
  else {
    thisSpeed += speedUnit;
    showFighters();
  }
}

function buildFighters() {
  fighters[0] = new fighterOBJ("K'", 1, sceneWidth/2-100);

  fighters[0].prepare(0);
  fighters[0].prepare(1);
  browser.showLayer(fighters[0].chars[0]);
  browser.showLayer(fighters[0].chars[1]);

  fighters[1] = new fighterOBJ("k'", -1, sceneWidth/2+100);

  fighters[1].prepare(0);
  fighters[1].prepare(1);
  browser.showLayer(fighters[1].chars[0]);
  browser.showLayer(fighters[1].chars[1]);
}

function startGame() {
  browser = new browserOBJ();
  if (browser.supported) {
    buildMoveList();
    buildScenes();
    buildFighters();

    document.forms[0].control.onclick = checkGame;
    document.forms[0].control.style.display = "";

    document.forms[0].control.value = "Start";
    gameStarted = false;

    gameInitialed = true;
  }
  else {
    alert("Sorry!\nYou need a DOM-enabled browser to play this game");
  }
}

function checkGame() {
  if (gameStarted) {
    clearTimeout(sceneTimer);
    document.forms[0].control.value = "Resume";
    gameStarted = false;
  }
  else {
    showFighters();
    document.forms[0].control.value = "Pause";
    gameStarted = true;
  }
}
