var g_data_loop;
var g_user_id = 25;
var g_start_pos; // vorher 317
var	g_end_pos = 535;
var g_channel_count = 1;
var g_anim_timeout_array = new Array();
var g_trigger_error = false;
var g_sequence_array = new Array();
var g_queue_delay = 0;
var g_queue_timeout;
var g_switching = false;
var g_date = new Date();
var g_time = g_date.getTime();
var g_anim_delay_array = new Array();
var g_set_pos = false;
var g_room_id = 687;
var g_destinations = new Array();
var g_flood = false;
var	g_bubble_id = 0;
var g_bubble_init = false;
var g_wait_timeout;
var g_bg_mode = -1;
var g_anim_in_progress = false;
var g_my_player = $('#player_0');
var g_at_merchant = false;
var g_at_fight_preperation = false;
var g_at_work = false;
var g_cycle_timeout;
var g_cycle_code = false;
var g_bg_anim = false;
var g_force_stop = new Array();
var g_theme_id = '';
var g_start_task = false;
var requiredMajorVersion = 8;
var requiredMinorVersion = 0;
var requiredRevision = 0;
var jsVersion = 1.0;
var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
var jsVersion = 1.1;
var jump_page = 'Gib die Nummer der Seite an, zu der du gehen möchtest.:';
var on_page = '';
var per_page = '';
var base_url = '';
var style_cookie = 'phpBBstyle';
var style_cookie_settings = '; path=/';
var onload_functions = new Array();
var onunload_functions = new Array();
var g_corner_radius = 20;
var g_corner_radius_s = 5;
var g_corner_settings = {
	tl: { radius: g_corner_radius },
	tr: { radius: g_corner_radius },
	bl: { radius: g_corner_radius_s },
	br: { radius: g_corner_radius },
	antiAlias: true,
	autoPad: false	
}
var g_corner_settings_r = {
	tl: { radius: g_corner_radius },
	tr: { radius: g_corner_radius },
	bl: { radius: g_corner_radius },
	br: { radius: g_corner_radius_s },
	antiAlias: true,
	autoPad: false	
}
var g_corner_settings_n = {
	tl: { radius: g_corner_radius },
	tr: { radius: g_corner_radius },
	bl: { radius: g_corner_radius },
	br: { radius: g_corner_radius },
	antiAlias: true,
	autoPad: false	
}
var landscape;
var guy;
var male;
var female;
var player;
var cloud;
var sequence = [];
	sequence.step = 0;
var g_block = false;
var g_dir = 'left';
var g_player = 0;
var volume_value = 50;
	
$(document).ready(
	function()
		{ 
			// document.getElementById("no_js").style.visibility = "hidden";
			$('#player_getclick').click(function(e){ animate_get_click(e, 'player_0') });
			$("#infobox").css({
			   opacity: '0.65'
			 });
			//data_loop_mode(1);
			if(g_start_js)
			{
				$('#player_0').show().attr('id', 'player_0').attr('name', 'player_0').css('left', '0px');
				$('#player_0_title').attr('id', 'player_0_title').attr('name', 'player_0_title').css('left', '-20px').show();
				animate_start_idle();
			}
			if($.browser.version == '6.0' && $.browser.msie)
			{
						$('#img_footer').css({
							width:		'990px',	
							left:		'0px',
							backgroundPosition:	'-50px 0px'
						});
						
						$('.audiocontrol').css('left', '909px');
				
				$('#wrap').css({
					left: '0px',
					position:	'relative'
				});
			}
				$('#page-body').css({
					'min-height': '547px',
					'height': '547px'
				});
			g_ready = true;
			var hasRightVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);
			if(hasRightVersion) 
			{  
			} 
			else 
			{  // Flash ist veraltet, oder das Plug-In wurde nicht ermittelt
				if(g_start_js)
				{
					document.getElementById('no_flash').style.visibility='visible';
				}
			}// javascript proxy for triggering sounds
		//	check_volstates();
			var volume_value = 50;
		}
	
);

function JSGetSwfVer(i){
	if (navigator.plugins != null && navigator.plugins.length > 0) {
		if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
			var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
      		var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
			descArray = flashDescription.split(" ");
			tempArrayMajor = descArray[2].split(".");
			versionMajor = tempArrayMajor[0];
			versionMinor = tempArrayMajor[1];
			if ( descArray[3] != "" ) {
				tempArrayMinor = descArray[3].split("r");
			} else {
				tempArrayMinor = descArray[4].split("r");
			}
      		versionRevision = tempArrayMinor[1] > 0 ? tempArrayMinor[1] : 0;
            flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
      	} else {
			flashVer = -1;
		}
	}
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
	else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
	else {
		
		flashVer = -1;
	}
	return flashVer;
} 

function show_info( param )
{
	$('#infobox').hide(200);
	$('#infobox').html(lang[0] + '<br />'+lang[param]);//+((param<3) ? '<br /><a href="#" style="position:absolute;right:6px;top:3px;cursor:pointer;width:40px;" class="dark_bg" onclick="show_info('+(param+1)+');"><div><b>'+lang[99]+'</b></div></a>' : ''));
	$('#infobox').show(400);
}

function show_guest_login()
{
	$('#infobox').hide(200);
	$('#infobox').html(lang[0] + '<br />' + lang[6]+'<br /><br />' + $('#pop_login').html());
	$('#infobox').show(400);
}

function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision) 
{
 	reqVer = parseFloat(reqMajorVer + "." + reqRevision);
	for (i=25;i>0;i--) {	
		if (isIE && isWin && !isOpera) {
			versionStr = VBGetSwfVer(i);
		} else {
			versionStr = JSGetSwfVer(i);		
		}
		if (versionStr == -1 ) { 
			return false;
		} else if (versionStr != 0) {
			if(isIE && isWin && !isOpera) {
				tempArray         = versionStr.split(" ");
				tempString        = tempArray[1];
				versionArray      = tempString .split(",");				
			} else {
				versionArray      = versionStr.split(".");
			}
			versionMajor      = versionArray[0];
			versionMinor      = versionArray[1];
			versionRevision   = versionArray[2];
			
			versionString     = versionMajor + "." + versionRevision;   // 7.0r24 == 7.24
			versionNum        = parseFloat(versionString);
			// ist die Hauptrevision >= angeforderte Hauptrevision UND die Nebenversion >= angeforderte Nebenversion
			if ( (versionMajor > reqMajorVer) && (versionNum >= reqVer) ) {
				return true;
			} else {
				return ((versionNum >= reqVer && versionMinor >= reqMinorVer) ? true : false );	
			}
		}
	}	
	
	return (reqVer ? false : 0.0);
}

function find_username(url)
{
	popup(url, 760, 570, '_usersearch');
	return false;
}

window.onload = function()
{
	for (var i = 0; i <= onload_functions.length; i++)
	{
		eval(onload_functions[i]);
	}
}

window.onunload = function()
{
	for (var i = 0; i <= onunload_functions.length; i++)
	{
		eval(onunload_functions[i]);
	}
}

function getFlashMovie(movieName) 
{   
	var isIE = navigator.appName.indexOf("Microsoft") != -1;   
	return (isIE) ? window[movieName] : document[movieName];  
}  

function myFSCommand(command, args) {
	switch(command)
	{
		case "init": 
			volume_set(volume_value);
		break;
		default : 
			alert("fscmd error!"); 
		break;
	}
}

function data_loop_mode(p_mode)
{
	if(p_mode)
	{
		g_data_loop = setInterval(get_data_loop, 1200);
	}
	else
	{
		window.clearInterval(g_data_loop);
	}
}

function get_data_loop()
{
	x_tribes_get_data(get_data_loop_cb);
}

function get_data_loop_cb(p_val)
{
	bubble_init();
	
	// $('#currency_1_amount').text('Users: ' + g_channel_count);
	// myDebug('hier g channel count');
	
	if(typeof(p_val) == 'object')
	{
		l_len = p_val['data_len'];
		
		for(z=0;z<l_len;z++)
		{
			l_objname = 'player_' + p_val[z][0];
			if(p_val[z][1])
			{
				chat_data(p_val[z][1], p_val[z][3], l_objname, p_val[z][4], p_val[z][5], p_val[z][0], p_val[z][6]);
			}

			if(p_val[z][2])
			{
				if($('#' + l_objname + ':visible').attr('id') == undefined && !p_val[z][6])
				{
					animate_player_join(l_objname, p_val[z][4], 0, p_val[z][6]);
				}
				
				animate_get_start_pos();
				animate_get_x(parseInt(g_start_pos)+parseInt(p_val[z][2]), l_objname);
			}
		}
	}
}

function chat_data(p_chat_msg, p_user_name, p_obj, p_char_id, p_room_id, p_user_id, p_hidden)
{
	if(p_chat_msg == '/607')
	{
		chat_add_msg('<b><i>' + p_user_name + ' geht..</i></b>');
		animate_clear_player(p_obj);
	}
	else if(p_chat_msg == '/609')
	{
		if(g_channel_count != 5)
		{
			chat_add_msg('<b><i>' + p_user_name + ' kommt..</i></b>');
			animate_player_join(p_obj, p_char_id, 0, p_hidden);
		}
		else
		{
			myDebug('room is full report this bug');
		}
	}
	else if(p_chat_msg == '/610')
	{
		if(g_room_id == p_room_id)
		{
			animate_player_join(p_obj, p_char_id, 0, p_hidden);
		}
		else
		{
			animate_clear_player(p_obj);
		}
	}
	else if(p_chat_msg == '/611')
	{
		animate_hide(true, p_user_id);
	}
	else if(p_chat_msg == '/612')
	{
		$('#' + p_obj).attr('attrhidden', 0);	
		animate_player_join(p_obj, p_char_id, 0, p_hidden);
	}
	else
	{
		l_chat_msg = '<b>' + p_user_name + '</b>: ' + p_chat_msg;
		
		chat_add_msg(l_chat_msg);
		if(g_room_id == p_room_id)
		{
			bubble(p_chat_msg, p_user_id);
		}
	}
}

function chat_add_msg(p_msg)
{
	l_txt_start = '<div style="width:170px;" >';
	l_txt_end = '</div>';

	$('#chat_text').append(l_txt_start + p_msg + l_txt_end);
	$('#chat_text').each(function(){this.scrollTop = this.scrollHeight});
}

function chat_submit()
{
	if (!g_flood)
	{
		val = document.getElementById("chat_send").value;
		x_tribes_chat_msg(val, no_cb);
		document.getElementById("chat_send").value = "";
		chat_add_msg('<b>AndreasDieter</b>: ' + val);
		g_flood = true;
		setTimeout("UnFlood()", 1000);
		bubble(val, 25);
		document.getElementById('chat_send').focus();
	}
}

function UnFlood()
{
	g_flood=false;
}

function switch_room(p_direction)
{
	x_tribes_get_visitors(p_direction, get_visitors_cb);
}

function get_visitors_cb(p_val)
{
	if(p_val['visitors'])
	{
		g_switching = true;
		l_width = 535;
		l_player = $('#player_0');
		l_switch_time = 5000;
		l_elm =	$('#player_movement_bg');
	
		p_direction = p_val['direction'];
	
		if(p_direction)
		{
			l_pos = -l_width;
			l_left = 435;
			l_direction = 'right';
		}
		else
		{
			l_pos = l_width;
			l_left = 0;
			l_direction = 'left';
		}
	
		l_bg_pos = l_elm.css('backgroundPosition');
		l_new_pos = l_bg_pos.split(" ");
		l_new_pos = l_new_pos[0].replace(/%/, '').replace(/px/, '');
		l_new_pos = parseInt(l_new_pos)+parseInt(l_pos);

		animate_get_others(false);	
		animate_clear(l_player);
	
		l_elm.animate({
			backgroundPosition: '(' + l_new_pos + 'px 0px)'
		}, l_switch_time);
		
		play(function() {
			l_player.animate({
				left:	l_left + "px"
			},	l_switch_time, 'easeInOutQuad');
			l_player.direction = l_direction;
	        start_cycle('walk', l_player);
	    }, l_player);
	    wait(l_switch_time, l_player);
	    
		play(function() {
			start_cycle('idle', l_player);
		}, l_player);
		
		do_sequence(l_player);
		
		l_vis_len = p_val['vis_len'];
		l_visitors = p_val['visitors'];
		
		g_channel_count = 0;
		
		for(j=0; j<l_vis_len; j++)
		{
			l_tmp_obj = 'player_' + l_visitors[j]['room_visitor_user_id'];

			animate_player_join(l_tmp_obj, l_visitors[j]['char_id'], l_visitors[j]['char_last_msg_posx'], l_visitors[j]['room_visitors_hidden']);
			
			l_tmp_elm = $('#' + l_tmp_obj);
		}
		
		g_channel_count = parseInt(g_channel_count+1);		
		g_room_id = p_val['id'];
	}

}

function no_cb()
{
	return;
}

function cycle(p_elm)
{
	l_tmp_class = p_elm.cycle_class;
	l_tmp_type = p_elm.attr('attrmobtype');
	var l_stop_me = true;
	l_kill_me = false;

	if(l_tmp_class)
	{
		if(l_tmp_class.indexOf('walk') != -1)
		{
			l_date = new Date();
			l_time = l_date.getTime();
			l_time_diff = parseInt(l_time)-parseInt(g_time);
		
			if(p_elm.css('left') == g_destinations[p_elm.attr('id')] + 'px')	
			{
				window.clearTimeout(g_anim_timeout_array[p_elm.attr('id')]);
				start_cycle('idle', p_elm);
				l_stop_me = true;
				g_anim_in_progress = false;
				l_kill_me = true;
			}
		}
	}

	if(l_stop_me)
	{
		if(!g_switching || p_elm.attr('id') == 'player_' + g_user_id)
		{
		    if (!p_elm.cycle) return;
		    if (!p_elm.direction) p_elm.direction = 'right';
		    if (!p_elm.cycle_frame) p_elm.cycle_frame = 1;
		    var new_frame_num = p_elm.cycle_frame >= 4 ? 1 : p_elm.cycle_frame + 1;
		    var new_class = p_elm.cycle +'_' + p_elm.direction + '_' + new_frame_num;
		    if (p_elm.cycle_class) $(p_elm).removeClass(p_elm.cycle_class);
		    if(l_tmp_type != undefined && l_tmp_type != '')
		    {
		    	new_class = l_tmp_type + '_' + new_class;
		    }
		    $(p_elm).addClass(new_class);
		    p_elm.cycle_class = new_class;
		    p_elm.cycle_frame = new_frame_num;
			if(!g_force_stop[p_elm.attr('id')])
			{
				g_anim_timeout_array[p_elm.attr('id')] = setTimeout(function() {cycle(p_elm)}, 250);
			}	
			cycle_cb(l_kill_me);
		}
	}
	
	l_stop_me = false;
}

function cycle_cb(p_mode)
{
	if(p_mode)
	{
		if(g_cycle_code != false)
		{
			eval(g_cycle_code);
			g_cycle_code = false;
		}
	}
}	

function start_cycle(name, elm)
{
	g_force_stop[elm.attr('id')] = false;

	if(name == 'walk')
	{
		g_date = new Date();
		g_time = g_date.getTime();		
	}

    if (elm.cycle) {
        elm.cycle = name;
    }
    else {
        elm.cycle = name;
		window.clearTimeout(g_anim_timeout_array[elm.attr('id')]);
        cycle(elm);
    }    
}

function bubble_init()
{
	if(!g_bubble_init)
	{
		var cornersObj = new curvyCorners(g_corner_settings, document.getElementById('bubble_box'));
		cornersObj.applyCornersToAll();
		var cornersObj_r = new curvyCorners(g_corner_settings_r, document.getElementById('bubble_box_r'));
		cornersObj_r.applyCornersToAll();
		var cornersObj_n = new curvyCorners(g_corner_settings_n, document.getElementById('bubble_box_n'));
		cornersObj_n.applyCornersToAll();				
		
		g_bubble_init = true;
	}
}

function bubble(p_text, p_user_id, p_obj, p_duration)
{
	g_bubble_id = parseInt(g_bubble_id+1);

	if(p_duration)
	{
		duration = p_duration;
	}
	else
	{
		duration = 3000;
	}
	
	classname= 'left_bubble_1';

	if(!p_obj)
	{
		l_tmp_user = $('#player_' + p_user_id);
	}
	else
	{
		l_tmp_user = p_obj;
	}
	l_tmp_left = parseInt(l_tmp_user.css('left'));
	
	if(l_tmp_user.attr('className').indexOf('left') != -1)
	{
		l_tmp_left = parseInt(l_tmp_left-160);
		l_bubble = $('#bubble_box_r');
	}
	else
	{
		l_tmp_left = parseInt(l_tmp_left+60);
		l_bubble = $('#bubble_box');
	}

	l_text = bubble_break_me(p_text);

	l_clone = l_bubble.clone().attr({
		id: 	'bubble_' + g_bubble_id,
		name:	'bubble_' + g_bubble_id
	}).css('left', l_tmp_left + 'px');
	$('#player_bubbles').append(l_clone);
	
	var bubble_2 = $('#bubble_' + g_bubble_id);	
	bubble_2.html(l_text);
	bubble_2.append(l_bubble.html());
	bubble_2.addClass('bubble');
	bubble_2.addClass(classname);
	bubble_2.hide();	

	//  && $.browser.version == '6.0' im 7er auch probs ?

	if($.browser.msie)
	{
		bubble_2.show();
		setTimeout(function() { bubble_2.hide() }, duration);
	}
	else
	{
		bubble_2.fadeIn(1000);
		setTimeout(function() { bubble_2.fadeOut(1000) }, duration);
	}
}

function bubble_break_me(p_txt)
{
	l_txt = p_txt;
	l_len = l_txt.length;
	l_tmp_txt = '';
	l_counter = 0;
	
	for(y=0; y<l_len; y++)
	{
		if(l_counter == 11)
		{
			if(l_txt.substring(y+1, y+2) != ' ' && l_txt.substring(y+1, y+2) != '.')
			{
				l_tmp_txt = l_tmp_txt + l_txt.substring(y, y+1) + '-<br />';
			}
			else
			{
				l_tmp_txt = l_tmp_txt + l_txt.substring(y, y+1);
			}
			
				l_counter = 0;
		}
		else
		{
			l_tmp_txt = l_tmp_txt + l_txt.substring(y, y+1);
			if(l_txt.substring(y+1, y+2) != ' ' && y+2 < l_len)
			{
				l_counter++;
			}
			else
			{
				l_counter = 0;
			}
		}
	}
	
	return l_tmp_txt;	
}

function play(fnc, elm)
{
	g_sequence_array[elm.attr('id')].push(fnc);
}

function wait(dur, elm)
{
	if(g_sequence_array[elm.attr('id')].length != undefined)
	{
		g_sequence_array[elm.attr('id')].push(dur);
	}
}

function do_sequence(elm)
{
    if (typeof(g_sequence_array[elm.attr('id')][g_sequence_array[elm.attr('id')].step]) == 'number') {
        
        g_sequence_array[elm.attr('id')].step++;
        setTimeout(function() {do_sequence(elm)}, g_sequence_array[elm.attr('id')][g_sequence_array[elm.attr('id')].step-1]);
    }
    else if (typeof(g_sequence_array[elm.attr('id')][g_sequence_array[elm.attr('id')].step]) == 'function') {
        g_sequence_array[elm.attr('id')][g_sequence_array[elm.attr('id')].step]();
        g_sequence_array[elm.attr('id')].step++;

        do_sequence(elm);
        g_set_pos = false;
    }
}

function animate_clear_player(p_obj)
{
	l_count = parseInt(g_channel_count-1);
	
	if(l_count < 0)
	{
		l_count = 0;
	}	
	
	l_new_id = 'player_' + l_count;
	
	$('#' + p_obj).fadeOut('slow');
	window.clearTimeout(g_anim_timeout_array[$('#' + p_obj).attr('id')]);
	$('#' + p_obj).attr({
		id:		l_new_id,
		name:	l_new_id
	});
	
	g_channel_count = l_count;	
}

function animate_player_join(p_obj, p_char_id, p_pos, p_hidden)
{
//	myDebug(g_channel_count + '|' + p_obj);
	
	if($('#player_' + g_channel_count).attr('id') == undefined)
	{
		// $('#player_' + g_channel_count).attr('id'));
	}
	
	$('#player_' + g_channel_count).attr('id', p_obj).attr('name', p_obj);
	
	if(p_hidden == 0 && !g_at_merchant)
	{
		$('#' + p_obj).fadeIn('slow').css('background', 'url(./images/characters/anim_' + p_char_id + '.gif)').css({
			left: 		p_pos + 'px',
			opacity:	1,
			display:	'block'
		});
	}
	else
	{
		$('#' + p_obj).css('background', 'url(./images/characters/anim_' + p_char_id + '.gif)').css({
			left: 		p_pos + 'px',
			opacity:	0
		});
	}
	
	g_channel_count = parseInt(g_channel_count)+1;
	g_switching = false;
	
	l_elm = $('#' + p_obj);
	
	if(p_hidden == 0 && !g_at_merchant)
	{
		start_cycle('idle', l_elm);
	}
	animate_clear(l_elm);
}

function animate_hide_others(p_mode)
{
	l_id = 'player_';
	l_tmp_others = $('#player_movement > [is_me=0][attrhidden=0]');
	
	if(!p_mode)
	{
		l_tmp_others.fadeOut();
	}
	else
	{
		l_tmp_others.fadeIn();
	}	
}

function animate_get_others(p_mode)
{
	l_id = 'player_';
	i=0;
	l_tmp_others = $('#player_movement > [is_me=0]').each(function(){
		$(this).attr({
			id: 	l_id + i,
			name:	l_id + i
		});
		i++;
	});
	
	if(!p_mode)
	{
		l_tmp_others.fadeOut();
	}
	else
	{
		l_tmp_others.fadeIn();
	}
}

function animate_clear(elm)
{
	elm.removeClass();
//	elm.stop();
		
	g_sequence_array[elm.attr('id')] = [];
	g_sequence_array[elm.attr('id')].step = 0;
}

function animate_clear_timeout(elm)
{
	window.clearTimeout(g_anim_timeout_array[elm.attr('id')]);
	g_force_stop[elm.attr('id')] = true;
	
	g_set_pos = false;
}

function animate_fight_prepare(p_mode)
{
	if(p_mode)
	{
		g_at_fight_preperation = true;
		l_offset = 0;
		
		l_player = $('#player_0');
		
		animate_clear_timeout(l_player);
		animate_clear(l_player);
		l_player.stop();
		l_player.css('left', '0px');
		if(g_theme_id == 1)
		{
			$('#player_boot').css('left', '-77px');
		}
		l_player.direction = 'right';
		start_cycle('idle', l_player);
		
		l_mob_img = $('#mob_img');
		
		animate_get_start_pos();
		l_width = l_mob_img.width();
		
		if(l_width > 100)
		{
			l_offset = 100;
		}
		
		l_posi = g_end_pos-l_width+l_offset;
		
		l_mob_img.show().css('left', l_posi);
	}
	else
	{
		g_at_fight_preperation = false;
	}
}

function animate_get_start_pos()
{
	// parents offset + 115
	l_page_body = document.getElementById('page-body').offsetLeft;
	l_wrap = document.getElementById('wrap').offsetLeft;

	g_start_pos = parseInt(l_page_body)+parseInt(l_wrap)+115;
}

function animate_get_click(p_click, p_obj)
{
	if(!g_set_pos && !g_at_merchant && !g_at_fight_preperation && !g_at_work && !g_bg_anim && !g_start_task)
	{
		animate_get_start_pos();
		animate_get_x(p_click.pageX, p_obj);
	}
}

function animate_get_x(p_pos, p_obj, p_offset)
{
	if(p_pos)	
	{
		g_anim_in_progress = true;
		
		l_player = $('#' + p_obj);
		l_is_player = l_player.attr('is_me');

		l_player_title = $('#' + p_obj + '_title');

		l_player_width = Math.round(l_player.width()); // should fix the position /2 doesn't work 
		l_delay_multi = 1000;

		l_move_obj = l_player;		
		if(p_pos > parseInt((g_start_pos+g_end_pos-l_player_width)))
		{
			l_pos_x = parseInt((g_start_pos+g_end_pos-l_player_width));
			l_player.direction = 'right';
		}
		else if(p_pos < g_start_pos)
		{
			l_pos_x = g_start_pos;
			l_player.direction = 'left';
		}
		else
		{		
			l_pos_x = p_pos;
		}

		if(p_offset > 0 && l_player.direction == 'right')
		{
			l_offset = parseInt(p_offset);
		}
		else
		{
			l_offset = 0;
		}
		
		l_pos_x = (l_pos_x-g_start_pos)+l_offset;

		l_p_left = l_player.css('left');
		l_p_left_x = l_p_left.replace(/px/i, '');
		
		if(l_p_left_x < l_pos_x)
		{
	        l_direction = 'right';
	        l_diff = -(l_p_left_x-l_pos_x);
		}
		else if(l_p_left_x != l_pos_x)
		{
	        l_direction = 'left';
	        l_diff = -(l_pos_x-l_p_left_x);
		}
		else
		{
			l_direction = l_player.direction;
			l_diff = 0;
		}

		l_delay = Math.round(l_diff/100)*l_delay_multi;
		if(l_delay <= 0)
		{
			l_delay = l_delay_multi;
		}
		
		animate_clear(l_player);

		play(function() {
			if(g_theme_id == 1 && l_is_player)
			{
				l_boot_posi = parseInt(l_pos_x+(-77)) + "px";
				l_anim_type = 'linear'; // easeInOutQuad
				
				$('#player_boot').animate({
					left:	l_boot_posi					
				},	l_delay, l_anim_type);
				l_player.animate({
					left:	l_pos_x + "px"
				},	l_delay, l_anim_type);
				
				l_player.direction = 'right';
			}
			else
			{
				l_title_pos_x = l_pos_x-20;
				
				l_player.animate({
					left:	l_pos_x + "px"
				},	l_delay, 'easeInOutQuad');
				l_player.direction = l_direction;
		        start_cycle('walk', l_player);
		        l_player_title.animate({
		        	left:	l_title_pos_x + 'px'
		        },	l_delay, 'easeInOutQuad');
	        }
	    }, l_player);
	    wait(l_delay, l_player);

	    play(function() {
	        start_cycle('idle', l_player);
	    }, l_player);

		do_sequence(l_player);

		g_destinations[l_player.attr('id')] = l_pos_x;
		g_queue_delay = l_delay;
		g_anim_delay_array[l_player.attr('id')] = l_delay;
		
		if('player_' + g_user_id == p_obj)
		{
			g_set_pos = true;

			x_tribes_set_pos(l_pos_x, no_cb);		}
	}
}
function animate_screen()
{
	g_block = true;
	var bg_movement = 230;//(Math.round(Math.random()*10)+230);
	var bg_change_dir = (Math.round(Math.random())==1);
	if(bg_change_dir)
	{
		if(g_dir=='right')
		{
			g_dir = 'left';
		}
		else
		{
			g_dir = 'right';		
		}
	}
	l_bg1 = $('#anim_background_1');
	var act_pos_bg = l_bg1.css('backgroundPosition');
	act_pos_bg = act_pos_bg.split(" ");
	act_pos_bg = parseInt(act_pos_bg[0].replace(/%/, '').replace(/px/, ''));
	l_fg1 = $('#anim_foreground_1');
	var act_pos_fg = l_fg1.css('backgroundPosition');
	act_pos_fg = act_pos_fg.split(" ");
	act_pos_fg = parseInt(act_pos_fg[0].replace(/%/, '').replace(/px/, ''));
	if(g_dir=='right' && ((act_pos_bg - bg_movement) < 0))
	{
		g_dir = 'left';
	}
	else if(g_dir=='left' && ((act_pos_bg + bg_movement) > 2280))
	{
		g_dir = 'right';
	}
	
	offset = (g_dir=='left') ? 0 :100;
	
	new_pos_fg = (g_dir == 'right') ? (act_pos_fg - bg_movement*2) : (act_pos_fg + bg_movement*2);
	new_pos_bg = (g_dir == 'right') ? (act_pos_bg - bg_movement) : (act_pos_bg + bg_movement);
	l_fg = $('#anim_foreground_1');
	
	for(i=0;i<=4;i++)
	{
		l_player = $('#player_'+i);
		animate_move('player_'+i, Math.round(Math.random()*20+10), (g_dir=='left'), 0);
     }
	setTimeout("l_fg1.animate({		backgroundPosition: '('+new_pos_fg+'px 0px)'	}, 2000, 'swing', idle_all());", 900);	
	setTimeout("l_bg1.animate({		backgroundPosition: '('+new_pos_bg+'px 0px)'	}, 2000, 'swing', g_block=false);", 900);
	
 	
}

function idle_all()
{
	start_cycle('idle', $('#player_0'));
	start_cycle('idle', $('#player_1'));
	start_cycle('idle', $('#player_2'));
	start_cycle('idle', $('#player_3'));
	start_cycle('idle', $('#player_4'));
}
function random_movements()
{
	var player_id = g_player;//Math.round(Math.random()*4);
	var bg_movement = (Math.round(Math.random()*100)<10);
	if(g_block)
	{
	
	}
	else
	{
		if(bg_movement)
		{
			
			animate_screen();
		}
		else
		{
			g_player++;
			if(g_player >4) g_player = 0;
			var dir = (Math.round(Math.random())==1);
			var cd = (Math.round(Math.random()*10)>1);
			if(cd)
			{
				var far = Math.round(Math.random()*170+40);
			}
			else
			{
				var far = 15;
			}
			l_player = 'player_'+player_id;
			//l_player = 'player_0';
			//alert(g_set_pos +' '+ g_at_merchant +' '+ g_at_fight_preperation +' '+ g_at_work +' '+ g_bg_anim +' '+ g_start_task);
			animate_move(l_player, far, dir, 50);
		}
	}
	setTimeout('random_movements();',1000);
}

function animate_start_idle()
{
	start_cycle('idle', $('#player_0'));
	start_cycle('idle', $('#player_1'));
	start_cycle('idle', $('#player_2'));
	start_cycle('idle', $('#player_3'));
	start_cycle('idle', $('#player_4'));
	animate_get_start_pos();

	setTimeout('random_movements();',2500);
}
/**
 * p_obj - like 'player_0'
 * p_move - amount in pixel like 100
 * p_direction - true = left || false = right
 * p_offset
 */
function animate_move(p_obj, p_move, p_direction, p_offset)
{
//	alert(p_obj + ' - ' + p_move + ' - ' + p_direction );
	if(p_offset > 0)
	{
		l_offset = p_offset;
	}
	else
	{
		l_offset = 0;
	}

	l_obj = $('#' + p_obj);
	l_left = l_obj.css('left');
	l_left_x = l_left.replace(/px/i, '');

	if(p_direction)
	{
		l_move = l_left_x-p_move;
	}
	else
	{
		l_move = parseInt(l_left_x)+parseInt(p_move);
	}
	
	l_move = l_move+g_start_pos;
	
	animate_get_x(l_move, p_obj, l_offset);
}


function animate_bg(p_new_bg, p_url)
{
	l_date = new Date();
	l_time = l_date.getTime();
	l_delay = 2000;
	l_new_bg = './images/bg_tmp/' + p_new_bg + '?no_cache=' + l_time;
	l_bg1 = $('#anim_background_1');
	l_bg2 = $('#anim_background_2');
	l_fg = $('#anim_foreground_1');
	l_fg_url = './images/bg_tmp/' + p_new_bg.replace(/theme_tmp/g, "fg_theme_tmp") + '?no_cache=' + l_time;
	l_fg_url = l_fg_url.replace(/jpg/g, "gif");
	l_bg1_image = 'url(' + l_new_bg + ')';
	l_fg_image = 'url(' + l_fg_url + ')';

	g_bg_anim = true;
	
	if(g_theme_id == '')
	{
		l_mission_cache_split = mission_cache.split('\|');
		g_theme_id = l_mission_cache_split[16];
	}
	
	l_fg.css('background-image', l_fg_image);
	
	if(g_theme_id == 1)
	{
		animate_fg_cycle(9);
		$('#player_boot').show();
	}
	
	// EVENTUELL FADE BEIM PLAYER WEG

	$('#task_2_next').hide();
	if(g_bg_mode != 0 || g_bg_mode == -1)
	{
		$('#player_0').fadeOut(l_delay, function() {
			animate_clear($(this));
			$(this).css('left', '0px');
			$(this).direction = 'right';			
			start_cycle('idle', $(this));
		});
		l_bg1.fadeOut(l_delay, function () {
			$(this).css('background-image', 'url(' + l_new_bg + ')');		
		}).fadeIn(l_delay, function () {
			$('#player_0').fadeIn(l_delay, function () {
				$('#task_2_next').show();
				g_bg_anim = false;
			});			
		});
	}
	else if(g_bg_mode == 0)
	{
		$('#player_0').fadeOut(l_delay, function() {
			animate_clear($(this));
			$(this).css('left', '0px');
			$(this).direction = 'right';			
			start_cycle('idle', $(this));
		});
		

		l_bg2.css('background-image', l_bg1_image);
		l_fg.css('background-image', l_fg_image);
		
		l_bg1.animate({
			backgroundPosition: '(-760px 0px)'
		}, 4000).fadeIn(l_delay, function () {
			$('#player_0').fadeIn(l_delay, function () {
				$('#task_2_next').show();
				g_bg_anim = false;
			});	
			$(this).css({
				backgroundImage: l_bg1_image,
				backgroundPosition: '0px 0px'
			});	
		});		
	}
}

function animate_bg_fg(p_bg, p_fg)
{
	if(p_bg != false)
	{
		$('#anim_background_1').css('background-image', 'url(' + p_bg + ')');
	}
	
	if(p_fg != false)
	{
		$('#anim_foreground_1').css('background-image', 'url(' + p_fg + ')');
	}
}

function animate_bg_cycle()
{
	l_multi = 86400;
	l_new_pos = -(l_multi*2280);
	l_speed = (-(l_new_pos))*7;

	$('#anim_background_1').stop().animate({
		backgroundPosition:	'(' + l_new_pos + 'px 0px)'
	}, l_speed, 'linear');
}

function animate_fg_cycle(p_speed)
{
	if(p_speed > 0)
	{
		l_speed = p_speed;
	}
	else
	{
		l_speed = 5;
	}
	
	l_multi = 86400;
	l_new_pos = -(l_multi*2280);
	l_speed = (-(l_new_pos))*l_speed;
	
	$('#anim_foreground_1').stop().animate({
		backgroundPosition:	'(' + l_new_pos + 'px 0px)'
	}, l_speed, 'linear');		
}

function animate_fg_stop()
{
	$('#anim_foreground_1').stop().css('background-image', 'url()');
}





function animate_hide(p_mode, p_user_id, p_smode)
{
	if(p_mode)
	{
		l_obj = 'player_' + p_user_id;
		$('#' + l_obj).hide().attr('attrhidden', 1);
		animate_clear_timeout($('#' + l_obj));
		g_channel_count--;
	}
	else
	{
		x_tribes_hide(p_smode, no_cb);
	}
}

function animate_load_mob(p_mob_data)
{
	l_mob_url = './images' + p_mob_data[1];
	
	l_img_data = p_mob_data[22].split('x');
	l_img_type = '';
	
	myDebug('MOB_IMG_DATA: ' + l_img_data);
	
	animate_clear($('#mob_img'));
	myDebug('clear_old_mob()');
	
	if(l_mob_url.indexOf('mobs') != -1)
	{
		l_img_type = l_mob_url.split('-');		
		l_img_type = l_img_type[1].split('.');
		l_img_type = l_img_type[0];
	}
	
	l_m_width = l_img_data[0];
	l_m_height = l_img_data[1];
	
	if(p_mob_data[1].indexOf('npcs') == -1)
	{
		l_mob_cycle_height = 3;
	}
	else
	{
		l_mob_cycle_height = 2;
	}
	
	l_div_width = l_m_width/8;
	l_div_height = l_m_height/l_mob_cycle_height;
	
	if(l_div_width == 0)
	{
		l_div_width = 100;
	}
	
	if(l_div_height == 0)
	{
		l_div_height = 200;
	}
	
	l_mob_obj = $('#mob_img').css({
		width:					l_div_width,
		height:					l_div_height,
		backgroundImage:		'url(' + l_mob_url + ')'
	}).attr('attrmobtype', l_img_type);
	
	l_mob_obj.direction = 'left';
	start_cycle('idle', l_mob_obj);
}

function animate_clear_mob()
{
	l_mob_clear_obj = $('#mob_img');
	animate_clear(l_mob_clear_obj);
	animate_clear_timeout(l_mob_clear_obj);
	
	l_mob_clear_obj.attr({
		className:		'',
		attrmobtype:	''
	}).css('visibility', 'visible');	
}

function animate_change_me(p_obj, p_img)
{
	p_obj.css('background-image', 'url(' + p_img + ')');
}

	
	var g_p_msg_count = 0;
	var g_force_debug = false;
	var g_sfx_delay;

	var positionFix;
	var oldTitle = document.title;

	function page_redirect(p_url)
	{
		alertp_url();
		return;
		if(p_url != '')
		{
			l_url = p_url;
		}
		else
		{
			l_url = document.location.href;
		}
		
		document.location.href = l_url;
	}

	function show_level_up(p_level_data)
	{
		myDebug('mach levelup mit ' + p_level_data);
	}

	function animate_change_money(p_currency, p_amount)
	{
		l_amount = parseInt(p_amount);
			
		if(p_currency)
		{
			l_curr_target = $('#currency_1_amount');
		}
		else
		{
			l_curr_target = $('#premium_currency_1_amount');
		}
		
		l_old_currency = parseInt(l_curr_target.html());
		l_new_currency = l_old_currency+l_amount;
		
		l_curr_target.text(l_new_currency);
	}

	function change_title_timer(p_ts, p_sajax_ts)
	{
		user_last_state_ts = 0;
		l_sajax_ts = 0;

		user_last_state_ts = p_ts;
		l_sajax_ts = p_sajax_ts;
		if(!p_ts)
		{
			user_last_state_ts = 0;
		}
		current = new Date();
		get_time = current.getTime();
		get_time = Math.round(get_time/1000);
		if(p_sajax_ts)
		{
			get_time = l_sajax_ts;
		}


		// hier um timer ende zu testen
		// user_last_state_ts = 0;

		if(user_last_state_ts > get_time)
		{
			diff_seconds = user_last_state_ts - get_time;
			// future = new Date(user_last_state_ts);		
			
			time_hours = Math.floor(diff_seconds / 60 / 60);
			time_mins = Math.floor((diff_seconds / 60) - (time_hours * 60) );
			time_seconds = diff_seconds - (time_hours * 60 * 60) - (time_mins * 60);
			
			if(time_hours < 10)
			{
				time_hours = '0' + time_hours;
			}
			if(time_mins < 10)
			{
				time_mins = '0' + time_mins;
			}
			if(time_seconds < 10)
			{
				time_seconds = '0' + time_seconds;
			}
			
			if(time_hours == '00')
			{
				hours = '';
			}
			else
			{
				hours = time_hours + ':';
			}
			
			newTime = hours + time_mins + ':' + time_seconds;
			
			newTitle = newTime + ' - ' + oldTitle;
			document.title = newTitle;
			if(document.getElementById('task_2_fight_nolight'))
			{
				// fight screen
				l_ready_text = 'Kampf in ' + newTime + ' ';

				$('#task_2_fight_nolight').text(l_ready_text);
				$('#task_2_fight_highlight').text(l_ready_text);		
			}
			
			// for all progress bars || fight_form bla
			if(document.getElementById('quest_form'))
			{
				l_percent = 5.68;
				l_start = document.getElementById('quest_form').work_quest_duration.value;
				if(l_start == '')
				{
					l_start = g_val_time*60*60;
				}
				
				l_progress_val = Math.round( ( diff_seconds*100 ) / ( l_start ) );
				
				if(l_progress_val < 100)
				{
					l_progress_val = l_progress_val;
				}
				else
				{
					l_progress_val = 100;
				}					
				
				l_new_width = l_percent*(100-l_progress_val);
				
				if(current_state == 2)
				{
					$('#work_progress').width(l_new_width);
					$('#work_progress_text').text(newTime);
				}
				else if(current_state == 1)
				{
					$('#work_rest_time').text(newTime);
				}
			}
			if(l_sajax_ts)
			{
				l_sajax_ts++;
			}
			setTimeout("change_title_timer(user_last_state_ts, l_sajax_ts)", 1000);
		}
		else
		{
			document.title = oldTitle;
			// call after_title_timer
			if(window.after_title_timer)
			{
				$(document).ready(function(){
					after_title_timer();
				});
			}
		}	
	}
	// show_hide( ( element_id # [0|1] ) | next_element) 0 - hide 1 - show
	function show_hide(p_string)
	{
		if(p_string)
		{
			l_show_hide_string = p_string.split('\|');
			
			for(z=0; z<l_show_hide_string.length; z++)
			{
				l_show_hide_tmp = l_show_hide_string[z].split('#');
				
				if(l_show_hide_tmp[1] == 0)
				{
					$('#' + l_show_hide_tmp[0]).hide();
					$('#' + l_show_hide_tmp[0]).css('visibility', 'hidden');	
				}
				else
				{
					$('#' + l_show_hide_tmp[0]).show();
					$('#' + l_show_hide_tmp[0]).css('visibility', 'visible');					
				}
			}
		}
		else
		{
			myDebug('no params');		
		}
	}	

	function hide_debug()
	{
		$('.myDebug').hide();
	}

	
	function myError(p_msg, p_url, p_line)
	{
		g_error_msg = p_msg;
		g_error_url = p_url;
		g_error_line = p_line;
		
	//	return true; // will hide JS errors at the client
	}
		
function popit(content)
{
	TagToTip(content,BALLOON,false,STICKY,true,DELAY, 0,BGCOLOR,'',BORDERWIDTH,0,CLICKCLOSE,true);
}
function popit2(content)
{
	TagToTip(content,STICKY,true,DELAY, 0,CLICKCLOSE,true);
}
function popit3(content)
{
	TagToTip(content,BALLOON,false,STICKY,true,DELAY, 0,BGCOLOR,'',BORDERWIDTH,0,CENTERWINDOW,true,FOLLOWSCROLL,true,CLICKCLOSE,false);
}