timer_obj=new Array();
timer_obj[0]=null;
timer_cnt=new Array();
timer_cnt[0]=0;
ajax_obj=new Array();
ajax_obj[0]=null;
for(i=1;i<=boxes;i++)
{
	timer_cnt[i]=0;
	ajax_obj[i]=getAjax();
}
//ajax=getAjax();

ajax_url=site_url+"ajax_do.php?";

twitterface_ajax_url=site_url+"twitterface_do.php?pageid="+pageid+"&is_login="+is_login+"&";

modes=new Array("me","search","follow");

modes_detail=new Array(new Array("My Account","me.gif",""),

				new Array("Search","search.gif",""),

				new Array("View Profile","everyone.gif",""));

default_error="Unable to reach the server, please try later.";

finish_error="You are on the last page.";

accounts_error="Please add at least one twitter account to perform this action.";

function get_m(mode)

{

	if(mode=="me")

		return 0;

	if(mode=="search")

		return 1;

	if(mode=="follow")

		return 2;

}

function change_mode(cnt)

{

	hide_error(cnt)

	mode_id="mode_"+cnt;

	mode=get_value(mode_id);

	switch(mode)

	{

		case "me": // show Searh mode

			new_mode="search";

			img_me_id="img_me_"+cnt;

			twitter_accounts_id="twitter_accounts_"+cnt;

			replies_id="replies_"+cnt;

			messages_id="messages_"+cnt;

			favorites_id="favorites_"+cnt;

			update_id="update_"+cnt;

			panel_me_id="panel_me_"+cnt;

			info_id="info_"+cnt;

			me_friends_id="me_friends_"+cnt;

			me_followers_id="me_followers_"+cnt;

			me_statuses_id="me_statuses_"+cnt;

			to_hide=new Array(img_me_id,twitter_accounts_id,replies_id,messages_id,favorites_id,update_id,panel_me_id,info_id,me_friends_id,me_followers_id,me_statuses_id);

			img_search_id="img_search_"+cnt;

			search_text_id="search_text_"+cnt;

			panel_search_id="panel_search_"+cnt;

			to_show=new Array(img_search_id,search_text_id,panel_search_id);

		break;

		case "search": // show Follow mode

			new_mode="follow";

			img_search_id="img_search_"+cnt;

			search_text_id="search_text_"+cnt;

			panel_search_id="panel_search_"+cnt;

			to_hide=new Array(img_search_id,search_text_id,panel_search_id);

			img_follow_id="img_follow_"+cnt;

			follow_user_id="follow_user_"+cnt;

			favorites_id="favorites_"+cnt;

			panel_follow_id="panel_follow_"+cnt;

			info_id="info_"+cnt;

			follow_friends_id="follow_friends_"+cnt;

			follow_followers_id="follow_followers_"+cnt;

			follow_statuses_id="follow_statuses_"+cnt;

			to_show=new Array(img_follow_id,follow_user_id,favorites_id,panel_follow_id,info_id,follow_friends_id,follow_followers_id,follow_statuses_id);

		break;

		case "follow": // show Me mode

			if(accounts==0)

				return;

			new_mode="me";

			img_follow_id="img_follow_"+cnt;

			follow_user_id="follow_user_"+cnt;

			follow_user_id="follow_user_"+cnt;

			panel_follow_id="panel_follow_"+cnt;

			follow_friends_id="follow_friends_"+cnt;

			follow_followers_id="follow_followers_"+cnt;

			follow_statuses_id="follow_statuses_"+cnt;

			to_hide=new Array(img_follow_id,follow_user_id,panel_follow_id,follow_friends_id,follow_followers_id,follow_statuses_id);

			img_me_id="img_me_"+cnt;

			twitter_accounts_id="twitter_accounts_"+cnt;

			replies_id="replies_"+cnt;

			messages_id="messages_"+cnt;

			update_id="update_"+cnt;

			panel_me_id="panel_me_"+cnt;

			me_friends_id="me_friends_"+cnt;

			me_followers_id="me_followers_"+cnt;

			me_statuses_id="me_statuses_"+cnt;

			to_show=new Array(img_me_id,twitter_accounts_id,replies_id,messages_id,update_id,panel_me_id,me_friends_id,me_followers_id,me_statuses_id);

		break;

	}

	for(i in to_hide)

		hide(to_hide[i]);	

	for(i in to_show)

		show(to_show[i]);

	set_value(mode_id,new_mode)
	
	page_id=new_mode+"_page_"+cnt;

	page_no_id="page_no_"+cnt;

	set_inner(page_no_id,get_value(page_id));

	//adjust_panel_height(cnt);
	
	task_id="task_"+cnt;

	panel_id="panel_"+new_mode+"_"+cnt;

	panel_inner=trim(remove_tabs(remove_breaks(get_inner(panel_id))));

	if(panel_inner.length==0)

	{

		if(new_mode=="me")

			change_account(cnt);

		else if(new_mode=="search")

			search_text(cnt);

		else

			follow_user(cnt);

	}

	

}

function force_mode(cnt,mode)

{

	mode_id="mode_"+cnt;

	while(true)

	{

		if(get_value(mode_id)!=mode)

			change_mode(cnt);

		else

			break;

	}

}

function hashtag_link(cnt,str)

{
	
	if(is_login==1)
	{
		force_mode(cnt,"search");

		search_text_id="search_text_"+cnt;
		
		set_value(search_text_id,str);
	
		go_home(cnt);
	}
	else
	{
		window.open("http://search.twitter.com/search?q="+str,str,"status=1,toolbar=1,location=1,menubar=1,resizable=1,scrollbars=1");
	}

}

function get_profile(cnt,twitter_name)
{
	if(is_busy(cnt))
		return false;
	do_busy(cnt);
	twitter_accounts_id="twitter_accounts_"+cnt;
	account_id=get_value(twitter_accounts_id);
	params="function=get_profile&account_id="+account_id+"&twitter_name="+urlencode(twitter_name)+"&cnt="+cnt;
	url=twitterface_ajax_url+params;
	ajax_obj[cnt].open("GET",url,true);
	ajax_obj[cnt].send(null);
	ajax_obj[cnt].onreadystatechange=function()
	{
		if(ajax_obj[cnt].readyState==4 && ajax_obj[cnt].status==200)
		{
			ajax_response=ajax_obj[cnt].responseText;
			if(ajax_response=="error" || ajax_response=="failure")
			{
				error="An unexpected error occured, please try again.";
				show_error(cnt,error);
				no_busy(cnt);
			}
			else
			{
				hide_error(cnt);
				email_id="email_"+cnt;
				hide(email_id);
				upload_id="upload_"+cnt;
				hide(upload_id);
				profile_id="profile_"+cnt;
				set_inner(profile_id,ajax_response);
				show(profile_id);
				no_busy(cnt);
			}
		}
	}
}
function close_profile(cnt)
{
	profile_id="profile_"+cnt;
	set_inner(profile_id,"");
	hide(profile_id);
}
function follow_unfollow(cnt,twitter_name,action)
{
	if(is_busy(cnt))
		return;
	/*c=confirm("Are you sure you want to "+action+" "+twitter_name+"?");
	if(c==false)
		return;*/
	do_busy(cnt);
	twitter_accounts_id="twitter_accounts_"+cnt;
	account_id=get_value(twitter_accounts_id);
	params="function=follow_unfollow&account_id="+account_id+"&twitter_name="+urlencode(twitter_name)+"&action="+action;
	url=twitterface_ajax_url+params;
	ajax_obj[cnt].open("GET",url,true);
	ajax_obj[cnt].send(null);
	ajax_obj[cnt].onreadystatechange=function()
	{
		if(ajax_obj[cnt].readyState==4 && ajax_obj[cnt].status==200)
		{
			ajax_response=ajax_obj[cnt].responseText;
			if(ajax_response=="error" || ajax_response=="failure")
			{
				if(ajax_response=="error")
					error="";
				else
					error=default_error;
				if(error!="")
					show_error(cnt,error,"profile");
				else
					show_msg(cnt,false,"profile");
				no_busy(cnt);
			}
			else
			{
				hide_error(cnt,"profile");
				no_busy(cnt);
				get_profile(cnt,twitter_name);
			}
		}
	}
}

function block_unblock(cnt,twitter_name,action)
{
	if(is_busy(cnt))
		return;
	c=confirm("Are you sure you want to "+action+" "+twitter_name+"?");
	if(c==false)
		return;
	do_busy(cnt);
	twitter_accounts_id="twitter_accounts_"+cnt;
	account_id=get_value(twitter_accounts_id);
	params="function=block_unblock&account_id="+account_id+"&twitter_name="+urlencode(twitter_name)+"&action="+action;
	url=twitterface_ajax_url+params;
	ajax_obj[cnt].open("GET",url,true);
	ajax_obj[cnt].send(null);
	ajax_obj[cnt].onreadystatechange=function()
	{
		if(ajax_obj[cnt].readyState==4 && ajax_obj[cnt].status==200)
		{
			ajax_response=ajax_obj[cnt].responseText;
			if(ajax_response=="error" || ajax_response=="failure")
			{
				if(ajax_response=="error")
					error="";
				else
					error=default_error;
				if(error!="")
					show_error(cnt,error,"profile");
				else
					show_msg(cnt,false,"profile");
				no_busy(cnt);
			}
			else
			{
				hide_error(cnt,"profile");
				no_busy(cnt);
				get_profile(cnt,twitter_name);
			}
		}
	}
}

function follow_link(cnt,twitter_name)

{
	
	if(is_login==1)
	{
		force_mode(cnt,"follow");

		follow_user_id="follow_user_"+cnt;
		
		set_value(follow_user_id,twitter_name);
	
		go_home(cnt);
	}
	else
	{
		window.open("http://twitter.com/"+twitter_name,twitter_name,"status=1,toolbar=1,location=1,menubar=1,resizable=1,scrollbars=1");
	}

}

function is_busy(cnt)
{
	busy_id="busy_"+cnt;
	if(get_value(busy_id)==1)
		return true;
	else
		return false;
	/*is_busy=false;
	for(b=1;b<=boxes;b++)
	{
		busy_id="busy_"+b;
		if(get_value(busy_id)==1)
		{
			is_busy=true;
			break;
		}
	}
	return is_busy;*/
}
function do_busy(cnt)
{
	if(!is_busy(cnt))
	{
		busy_id="busy_"+cnt;
		progress_id="progress_"+cnt;
		set_value(busy_id,1);
		visible(progress_id);
	}
}
function no_busy(cnt)
{
	if(is_busy(cnt))
	{
		busy_id="busy_"+cnt;
		progress_id="progress_"+cnt;
		set_value(busy_id,0);
		invisible(progress_id);
	}	
}

function show_error(cnt,str,prefix)

{

	if(prefix===undefined)
		error_id="error_"+cnt;
	else
		error_id=prefix+"_error_"+cnt;

	set_inner(error_id,"<ul><li>"+str+"</li></ul>");

	show(error_id);

}

function hide_error(cnt,prefix)

{

	if(prefix===undefined)
		error_id="error_"+cnt;
	else
		error_id=prefix+"_error_"+cnt;

	set_inner(error_id,"");

	hide(error_id);

}

function change_account(cnt,page)

{

	if(is_busy(cnt))

		return false;

	do_busy(cnt);

	twitter_accounts_id="twitter_accounts_"+cnt;

	account_id=get_value(twitter_accounts_id);

	task_id="task_"+cnt;

	task=get_value(task_id);

	if(task=="messages")

	{

		messages_mode_id="messages_mode_"+cnt;

		messages_mode=get_value(messages_mode_id);

	}

	else

		messages_mode="";	

	if(page===undefined)

		page=1;

	params="function=change_account&account_id="+account_id+"&task="+task+"&page="+page+"&cnt="+cnt+"&messages_mode="+messages_mode;

	url=twitterface_ajax_url+params;

	ajax_obj[cnt].open("GET",url,true);
	
	//start_ajax_timer(cnt);
	ajax_obj[cnt].send(null);
	
	ajax_obj[cnt].onreadystatechange=function()

	{

		if(ajax_obj[cnt].readyState==4 && ajax_obj[cnt].status==200)

		{

			//stop_ajax_timer(cnt);
			update_id="update_"+cnt;

			panel_id="panel_me_"+cnt;

			ajax_response=ajax_obj[cnt].responseText;

			if(ajax_response=="error" || ajax_response=="no" || ajax_response=="failure")

			{

				if(ajax_response=="error")

					error="";

				else if(ajax_response=="no")

					error="No tweets were found.";

				else

					error=default_error;

				if(error!="")

					show_error(cnt,error);

				else

					show_msg(cnt,false);

				hide(update_id);

				set_inner(panel_id,"");

				//adjust_panel_height(cnt);
				no_busy(cnt);

				if(ajax_response=="error" || ajax_response=="failure")

					str="--";

				else

				{

					show(update_id);

					str="0";

				}

				adjust_panel_height(cnt);
				remove_info(cnt,"me",str);

			}

			else if(ajax_response=="finish")

			{

				show_error(cnt,finish_error);

				adjust_panel_height(cnt);
				no_busy(cnt);

			}

			else

			{

				ajax_response=trim(remove_tabs(remove_breaks(ajax_response)));

				if(ajax_response.length>0)

				{

					hide_error(cnt);

					statuses=ajax_response;

					show(update_id);

					set_inner(panel_id,statuses);

					document.getElementById(panel_id).scrollTop=0;

					page_id="me_page_"+cnt;

					set_value(page_id,page);

					page_no_id="page_no_"+cnt;

					set_inner(page_no_id,page);

					adjust_panel_height(cnt);
					no_busy(cnt);

					if(page==1)

						get_info(cnt,"me");

				}

			}

		}

	}

}

function search_text(cnt,page)

{

	if(is_busy(cnt))

		return false;

	search_text_id="search_text_"+cnt;

	str=get_value(search_text_id);

	if(!fillok(str))

		return false;

	do_busy(cnt);

	twitter_accounts_id="twitter_accounts_"+cnt;

	account_id=get_value(twitter_accounts_id);

	if(page===undefined)

		page=1;

	params="function=search_text&account_id="+account_id+"&str="+urlencode(str)+"&page="+page+"&cnt="+cnt;

	url=twitterface_ajax_url+params;

	ajax_obj[cnt].open("GET",url,true);

	ajax_obj[cnt].send(null);

	ajax_obj[cnt].onreadystatechange=function()

	{

		if(ajax_obj[cnt].readyState==4 && ajax_obj[cnt].status==200)

		{

			panel_id="panel_search_"+cnt;

			ajax_response=ajax_obj[cnt].responseText;

			if(ajax_response=="error" || ajax_response=="no" || ajax_response=="failure")

			{

				if(ajax_response=="error")

					error="";

				else if(ajax_response=="failure")

					error=default_error;

				else

					error="Could not find any matching tweets.";

				if(error!="")

					show_error(cnt,error);

				else

					show_msg(cnt,false);

				set_inner(panel_id,"");

			}

			else if(ajax_response=="finish")

			{

				show_error(cnt,finish_error);

			}

			else

			{

				ajax_response=trim(remove_tabs(remove_breaks(ajax_response)));

				if(ajax_response.length>0)

				{

					hide_error(cnt);

					statuses=ajax_response;

					set_inner(panel_id,statuses);

					document.getElementById(panel_id).scrollTop=0;

					page_id="search_page_"+cnt;

					set_value(page_id,page);

					page_no_id="page_no_"+cnt;

					set_inner(page_no_id,page);

				}

			}

			adjust_panel_height(cnt);
			no_busy(cnt);

		}

	}

	return false;

}

function follow_user(cnt,page)

{

	if(is_busy(cnt))

		return false;

	follow_user_id="follow_user_"+cnt;

	twitter_name=get_value(follow_user_id);

	if(!fillok(twitter_name))

		return false;

	do_busy(cnt);

	twitter_accounts_id="twitter_accounts_"+cnt;

	account_id=get_value(twitter_accounts_id);

	task_id="task_"+cnt;

	task=get_value(task_id);

	if(task!="home" && task!="favorites")

		task="home";

	if(page===undefined)

		page=1;

	params="function=follow_user&account_id="+account_id+"&twitter_name="+urlencode(twitter_name)+"&task="+task+"&page="+page+"&cnt="+cnt;

	url=twitterface_ajax_url+params;

	ajax_obj[cnt].open("GET",url,true);

	ajax_obj[cnt].send(null);

	ajax_obj[cnt].onreadystatechange=function()

	{

		if(ajax_obj[cnt].readyState==4 && ajax_obj[cnt].status==200)

		{

			panel_id="panel_follow_"+cnt;

			ajax_response=ajax_obj[cnt].responseText;

			if(ajax_response=="error" || ajax_response=="no" || ajax_response=="failure")

			{

				if(ajax_response=="error")

					error="";

				else if(ajax_response=="no")

					error="No tweets were found.";

				else

					error=default_error;

				if(error!="")

					show_error(cnt,error);

				else

					show_msg(cnt,false);

				set_inner(panel_id,"");

				adjust_panel_height(cnt);
				no_busy(cnt);

				if(ajax_response=="error" || ajax_response=="failure")

					str="--";

				else

					str="0";

				remove_info(cnt,"follow",str);

			}

			else if(ajax_response=="finish")

			{

				show_error(cnt,finish_error);

				adjust_panel_height(cnt);
				no_busy(cnt);

			}

			else

			{

				ajax_response=trim(remove_tabs(remove_breaks(ajax_response)));

				if(ajax_response.length>0)

				{

					hide_error(cnt);

					statuses=ajax_response;

					set_inner(panel_id,statuses);

					document.getElementById(panel_id).scrollTop=0;

					page_id="follow_page_"+cnt;

					set_value(page_id,page);

					page_no_id="page_no_"+cnt;

					set_inner(page_no_id,page);

					adjust_panel_height(cnt);
					no_busy(cnt);

					if(page==1)

						get_info(cnt,"follow");

				}

			}

		}

	}

	return false;

}

function do_update(cnt)

{

	if(is_busy(cnt))

		return false;

	update_text_id="update_text_"+cnt;

	str=get_value(update_text_id);

	if(!fillok(str))

		return false;

	do_busy(cnt);

	str=trim(str);

	//str=str.substr(0,140);

	twitter_accounts_id="twitter_accounts_"+cnt;

	account_id=get_value(twitter_accounts_id);

	check_reply_status(cnt);
	reply_status_user_id="reply_status_user_"+cnt;
	reply_status_id_id="reply_status_id_"+cnt;
	reply_status_user=get_value(reply_status_user_id);
	reply_status_id=get_value(reply_status_id_id);
	params="function=do_update&account_id="+account_id+"&str="+urlencode(str)+"&reply_status_id="+reply_status_id;

	url=twitterface_ajax_url+params;

	ajax_obj[cnt].open("GET",url,true);

	ajax_obj[cnt].send(null);

	ajax_obj[cnt].onreadystatechange=function()

	{

		if(ajax_obj[cnt].readyState==4 && ajax_obj[cnt].status==200)

		{

			ajax_response=ajax_obj[cnt].responseText;

			if(ajax_response=="error" || ajax_response=="failure")

			{

				if(ajax_response=="error")

					error="";

				else

					error=default_error;

				if(error!="")

					show_error(cnt,error);

				else

					show_msg(cnt,false);

				adjust_panel_height(cnt);
				no_busy(cnt);

			}

			else

			{

				hide_error(cnt);

				set_value(update_text_id,"");				
				set_value(reply_status_user_id,"");
				set_value(reply_status_id_id,"0");

				text_count_id="text_count_"+cnt;

				set_inner(text_count_id,"140");

				adjust_panel_height(cnt);
				no_busy(cnt);

				//change_account(cnt);

				go_home(cnt);

			}

		}

	}

	return false;

}

function prepare_email(cnt,id)
{
	name_id="name_"+cnt+"_"+id;
	name=get_inner(name_id);
	text_id="text_"+cnt+"_"+id;
	relative_date_id="relative_date_"+cnt+"_"+id;
	text="<a href='http://twitter.com/"+name+"' target='_blank'><strong>"+name+"</strong></a>: <strong>"+strip_tags(get_inner(text_id))+"</strong><br><a href='http://twitter.com/"+name+"/status/"+id+"' target='_blank'>"+get_inner(relative_date_id)+"</a>";
	hidden_tweet_text_id="hidden_tweet_text_"+cnt;
	tweet_text_id="tweet_text_"+cnt;
	set_value(hidden_tweet_text_id,text);
	set_inner(tweet_text_id,text);
	profile_id="profile_"+cnt;
	hide(profile_id);
	upload_id="upload_"+cnt;
	hide(upload_id);
	email_id="email_"+cnt;
	show(email_id);
}
function send_email(cnt)
{
	if(is_busy(cnt))
		return false;
	email_address_id="email_address_"+cnt;
	email_address=get_value(email_address_id);
	if(!emailok(email_address))
	{
		alert("Enter a valid email address.");
		return false;
	}
	do_busy(cnt);
	account_id_id="email_account_id_"+cnt;
	twitter_accounts_id="twitter_accounts_"+cnt;
	account_id=get_value(twitter_accounts_id);
	set_value(account_id_id,account_id);
	return true;
}
function close_email(cnt)
{
	if(is_busy(cnt))
	{
		email_address_id="email_address_"+cnt;
		email_subject_id="email_subject_"+cnt;
		email_message_id="email_message_"+cnt;
		set_value(email_address_id,"");
		set_value(email_subject_id,"");
		set_value(email_message_id,"");
		no_busy(cnt);
	}
	email_id="email_"+cnt;
	hide(email_id);
}
function prepare_dm(cnt,id)
{
	name_id=name_id="name_"+cnt+"_"+id;
	name="D "+get_inner(name_id)+" ";
	update_text_id="update_text_"+cnt;
	set_value(update_text_id,name);
	mode_id="mode_"+cnt;
	mode=get_value(mode_id);
	if(mode!="me")
		force_mode(cnt,"me");
	task_id="task_"+cnt;
	task=get_value(task_id);
	if(task!="messages")
	{
		set_value(task_id,"messages");
		toggle_message_actions(cnt,"show");
	}
	document.getElementById(update_text_id).focus();
	change_account(cnt);
}
function prepare_do_message(cnt)
{
	if(is_busy(cnt))
		return false;
	message_text_id="message_text_"+cnt;
	str=get_value(message_text_id);
	if(!fillok(str))
		return false;
	regex=/^D [a-zA-Z0-9_]+\s(.)/;
	if(!regex.test(str))
	{
		alert("The format of a direct message should be:\nD [username] [message]");
		return false;
	}
	str=trim(str);
	close_profile(cnt);
	mode_id="mode_"+cnt;
	mode=get_value(mode_id);
	if(mode!="me")
		force_mode(cnt,"me");
	task_id="task_"+cnt;
	task=get_value(task_id);
	if(task!="messages")
	{
		set_value(task_id,"messages");
		toggle_message_actions(cnt,"show");
	}
	update_text_id="update_text_"+cnt;
	set_value(update_text_id,str);
	return do_message(cnt);
}

function do_message(cnt)

{

	if(is_busy(cnt))

		return false;

	update_text_id="update_text_"+cnt;

	str=get_value(update_text_id);

	if(!fillok(str))

		return false;

	regex=/^D [a-zA-Z0-9_]+\s(.)/;

	if(!regex.test(str))

	{

		alert("The format of a direct message should be:\nD [username] [message]");

		return false;

	}

	do_busy(cnt);

	str=trim(str);

	//str=str.substr(0,140);

	twitter_accounts_id="twitter_accounts_"+cnt;

	account_id=get_value(twitter_accounts_id);

	params="function=do_message&account_id="+account_id+"&str="+urlencode(str);
	
	url=twitterface_ajax_url+params;

	ajax_obj[cnt].open("GET",url,true);

	ajax_obj[cnt].send(null);

	ajax_obj[cnt].onreadystatechange=function()

	{

		if(ajax_obj[cnt].readyState==4 && ajax_obj[cnt].status==200)

		{

			ajax_response=ajax_obj[cnt].responseText;

			if(ajax_response=="error" || ajax_response=="failure")

			{

				if(ajax_response=="error")

					error="";

				else

					error=default_error;

				if(error!="")

					show_error(cnt,error);

				else

					show_msg(cnt,false);

				adjust_panel_height(cnt);
				no_busy(cnt);

			}

			else

			{

				hide_error(cnt);

				set_value(update_text_id,"");
				
				reply_status_user_id="reply_status_user_"+cnt;
				reply_status_id_id="reply_status_id_"+cnt;
				set_value(reply_status_user_id,"");
				set_value(reply_status_id_id,"0");

				text_count_id="text_count_"+cnt;

				set_inner(text_count_id,"140");

				adjust_panel_height(cnt);
				no_busy(cnt);

				//change_account(cnt);

				set_messages_mode(cnt,"sent");

			}

		}

	}

	return false;

}

function toggle_favorite(cnt,id,action)

{

	if(is_busy(cnt))

		return;

	if(accounts==0)

	{

		show_error(cnt,accounts_error);	

		return;

	}

	do_busy(cnt);

	twitter_accounts_id="twitter_accounts_"+cnt;

	account_id=get_value(twitter_accounts_id);

	params="function=toggle_favorite&account_id="+account_id+"&status_id="+id+"&action="+action;

	url=twitterface_ajax_url+params;

	ajax_obj[cnt].open("GET",url,true);

	ajax_obj[cnt].send(null);

	ajax_obj[cnt].onreadystatechange=function()

	{

		if(ajax_obj[cnt].readyState==4 && ajax_obj[cnt].status==200)

		{

			ajax_response=ajax_obj[cnt].responseText;

			if(ajax_response=="error" || ajax_response=="failure")

			{

				if(ajax_response=="error")

					error="";

				else

					error=default_error;

				if(error!="")

					show_error(cnt,error);

				else

					show_msg(cnt,false);

				adjust_panel_height(cnt);
				no_busy(cnt);

			}

			else

			{

				hide_error(cnt);

				adjust_panel_height(cnt);
				no_busy(cnt);

				force_mode(cnt,"me")

				get_favorites(cnt);

			}

		}

	}

}

function do_retweet(cnt,id)

{

	if(is_busy(cnt))

		return;

	if(accounts==0)

	{

		show_error(cnt,accounts_error);	

		return;

	}

	if(is_login==1)
	{
		mode_id="mode_"+cnt;
	
		mode=get_value(mode_id);
	
		if(mode!="me")
	
			force_mode(cnt,"me");
	
		name_id="name_"+cnt+"_"+id;
	
		name="RT @"+get_inner(name_id)+" ";
	
		text_id="text_"+cnt+"_"+id;
	
		text=strip_tags(get_inner(text_id));
	
		if(text.indexOf(name)<0)
	
			text=name+text;
	
		update_text_id="update_text_"+cnt;
	
		set_value(update_text_id,text);
	
		document.getElementById(update_text_id).focus();
	}
	else
	{
		name_id="name_"+cnt+"_"+id;
		name="RT @"+get_inner(name_id)+" ";
		text_id="text_"+cnt+"_"+id;
		text=strip_tags(get_inner(text_id));
		if(text.indexOf(name)<0)
			text=name+text;
		if(is_really_login==1)
		{
			text=urlencode(text);
			//url=site_url+susername+"?retweet="+text;
			url=site_url+"twitterface.php?page="+susername+"&retweet="+text;
			//url="http://twitter.com/home?status="+text;
		}
		else
		{
			url="http://twitter.com/home?status="+text;
		}
		window.open(url,susername,"status=1,toolbar=1,location=1,menubar=1,resizable=1,scrollbars=1");
	}
}

function do_reply(cnt,id)

{

	if(is_busy(cnt))

		return;

	if(accounts==0)

	{

		show_error(cnt,accounts_error);	

		return;

	}

	if(is_login)
	{
		mode_id="mode_"+cnt;
	
		mode=get_value(mode_id);
	
		task_id="task_"+cnt;
	
		task=get_value(task_id);
	
		if(mode!="me")
	
			force_mode(cnt,"me");
	
		name_id="name_"+cnt+"_"+id;
	
		if(task!="messages")
	
		{
	
			name=get_inner(name_id);
	
			reply_status_user_id="reply_status_user_"+cnt;
			reply_status_id_id="reply_status_id_"+cnt;
			reply_status_user=get_value(reply_status_user_id);
			reply_status_id=get_value(reply_status_id_id);
			if(reply_status_user=="" && reply_status_id=="0")
			{
				set_value(reply_status_user_id,name);
				set_value(reply_status_id_id,id);
			}
			
			name="@"+name+" ";
	
			update_text_id="update_text_"+cnt;
	
			update_text=get_value(update_text_id);
	
			if(update_text.indexOf(name)<0)
	
				update_text=name+update_text;
	
		}
	
		else
	
		{
	
			name="D "+get_inner(name_id)+" ";
	
			update_text_id="update_text_"+cnt;
	
			update_text=get_value(update_text_id);
	
			if(update_text.indexOf(name)<0)
	
				update_text=name+update_text;
	
		}
	
		set_value(update_text_id,update_text);
	
		cursor_to_end(update_text_id);
	}
	else
	{
		name_id="name_"+cnt+"_"+id;
		name=get_inner(name_id);
		if(is_really_login==1)
		{
			//url=site_url+susername+"?reply="+name+"|"+id;
			url=site_url+"twitterface.php?page="+susername+"&reply="+name+"|"+id;
			//url="http://twitter.com/home?status=@"+name+" &in_reply_to_status_id="+id+"&in_reply_to="+name;
		}
		else
		{
			url="http://twitter.com/home?status=@"+name+" &in_reply_to_status_id="+id+"&in_reply_to="+name;
		}
		window.open(url,susername,"status=1,toolbar=1,location=1,menubar=1,resizable=1,scrollbars=1");
	}
}

function check_reply_status(cnt)
{
	reply_status_user_id="reply_status_user_"+cnt;
	reply_status_id_id="reply_status_id_"+cnt;
	reply_status_user=get_value(reply_status_user_id);
	reply_status_id=get_value(reply_status_id_id);
	name="@"+reply_status_user;
	update_text_id="update_text_"+cnt;
	str=get_value(update_text_id);
	if(!fillok(str))
		return false;
	str=trim(str);
	str=str.substr(0,140);
	if(str.indexOf(name)<0)
	{
		set_value(reply_status_user_id,"");
		set_value(reply_status_id_id,"0");
	}
}

function do_trash(cnt,id)

{

	if(is_busy(cnt))

		return;

	confirmation=confirm('Are you sure you want to delete? There is NO undo!');

	if(!confirmation)

		return;

	do_busy(cnt);

	twitter_accounts_id="twitter_accounts_"+cnt;

	account_id=get_value(twitter_accounts_id);

	task_id="task_"+cnt;

	task=get_value(task_id);

	if(task!="messages")

		params="function=do_trash&trash=status&account_id="+account_id+"&status_id="+id;

	else

		params="function=do_trash&trash=message&account_id="+account_id+"&status_id="+id;

	url=twitterface_ajax_url+params;

	ajax_obj[cnt].open("GET",url,true);

	ajax_obj[cnt].send(null);

	ajax_obj[cnt].onreadystatechange=function()

	{

		if(ajax_obj[cnt].readyState==4 && ajax_obj[cnt].status==200)

		{

			ajax_response=ajax_obj[cnt].responseText;

			if(ajax_response=="error" || ajax_response=="failure")

			{

				if(ajax_response=="error")

					error="";

				else

					error=default_error;

				if(error!="")

					show_error(cnt,error);

				else

					show_msg(cnt,false);

				adjust_panel_height(cnt);
				no_busy(cnt);

			}

			else

			{

				hide_error(cnt);

				adjust_panel_height(cnt);
				no_busy(cnt);

				change_account(cnt)

			}

		}

	}

}

function item_over(cnt,id)

{

	item_id="item_"+cnt+"_"+id;
	document.getElementById(item_id).className="item item_over";
	favorite_id="favorite_"+cnt+"_"+id;
	retweet_id="retweet_"+cnt+"_"+id;
	reply_id="reply_"+cnt+"_"+id;
	email_id="email_"+cnt+"_"+id;
	dm_id="dm_"+cnt+"_"+id;
	trash_id="trash_"+cnt+"_"+id;
	visible(favorite_id);
	visible(retweet_id);
	visible(reply_id);
	visible(email_id);
	visible(dm_id);
	visible(trash_id);
}

function item_out(cnt,id)

{

	item_id="item_"+cnt+"_"+id;
	document.getElementById(item_id).className="item";
		email_id="email_"+cnt+"_"+id;
	favorite_id="favorite_"+cnt+"_"+id;
	retweet_id="retweet_"+cnt+"_"+id;
	reply_id="reply_"+cnt+"_"+id;
	dm_id="dm_"+cnt+"_"+id;
	trash_id="trash_"+cnt+"_"+id;
	invisible(favorite_id);
	invisible(retweet_id);
	invisible(reply_id);
	invisible(email_id);
	invisible(dm_id);
	invisible(trash_id);
}

function go_home(cnt)

{

	if(is_busy(cnt))

		return false;

	mode_id="mode_"+cnt;

	mode=get_value(mode_id);

	task_id="task_"+cnt;

	task=get_value(task_id);

	if(mode=="me")

		toggle_message_actions(cnt,"hide");

	new_task="home";

	set_value(task_id,new_task);

	if(mode=="me")
		change_account(cnt);
	else if(mode=="search")
		search_text(cnt);
	else //if(mode=="follow")
		follow_user(cnt);

}

function get_replies(cnt)

{

	if(is_busy(cnt))

		return false;

	mode_id="mode_"+cnt;

	mode=get_value(mode_id);

	task_id="task_"+cnt;

	task=get_value(task_id);

	if(task=="messages")

		toggle_message_actions(cnt,"hide");

	new_task="replies";

	set_value(task_id,new_task);

	//if(mode=="me")

		change_account(cnt);

}

function get_messages(cnt)

{

	if(is_busy(cnt))

		return false;

	mode_id="mode_"+cnt;

	mode=get_value(mode_id);

	task_id="task_"+cnt;

	task=get_value(task_id);

	new_task="messages";

	set_value(task_id,new_task);

	toggle_message_actions(cnt,"show");

	//if(mode=="me")

		change_account(cnt);

}

function get_favorites(cnt)

{

	if(is_busy(cnt))

		return false;

	mode_id="mode_"+cnt;

	mode=get_value(mode_id);

	task_id="task_"+cnt;

	task=get_value(task_id);

	if(task=="messages")

		toggle_message_actions(cnt,"hide");

	new_task="favorites";

	set_value(task_id,new_task);

	if(mode=="me")

		change_account(cnt);

	if(mode=="follow")

		follow_user(cnt);

}

function toggle_message_actions(cnt,action)

{

	send_update_id="send_update_"+cnt;
	
	send_message_id="send_message_"+cnt;

	message_modes_id="message_modes_"+cnt;

	if(action=="show")

	{

		hide(send_update_id);
		show(send_message_id);
		show(message_modes_id);

	}

	else

	{

		show(send_update_id);
		hide(send_message_id);
		hide(message_modes_id);

	}

}

function set_messages_mode(cnt,messages_mode)

{

	if(is_busy(cnt))

		return false;

	messages_mode_id="messages_mode_"+cnt;

	set_value(messages_mode_id,messages_mode);

	if(messages_mode=="inbox")

	{

		inbox_class="active";

		sent_class="inactive";

	}

	else

	{

		inbox_class="inactive";

		sent_class="active";

	}

	inbox_id="inbox_"+cnt;

	sent_id="sent_"+cnt;

	set_class(inbox_id,inbox_class);

	set_class(sent_id,sent_class);

	change_account(cnt);

}

function rss_feed(cnt)

{

	alert("RSS is temporarity unavailable, please try later...");
		return false;
	
	if(is_busy(cnt))

		return false;

	mode_id="mode_"+cnt;

	mode=get_value(mode_id);

	panel_id="panel_"+mode+"_"+cnt;

	panel_inner=trim(remove_tabs(remove_breaks(get_inner(panel_id))));

	if(panel_inner.length>0)

	{

		twitter_accounts_id="twitter_accounts_"+cnt;

		account_id=get_value(twitter_accounts_id);

		params="mode="+mode+"&account_id="+account_id;

		switch(mode)

		{

			case "me":

				//

			break;

			case "search":

				search_text_id="search_text_"+cnt;

				str=get_value(search_text_id);

				params+="&str="+urlencode(str);

			break;

			case "follow":

				follow_user_id="follow_user_"+cnt;

				twitter_name=get_value(follow_user_id);

				params+="&twitter_name="+urlencode(twitter_name);

			break;

		}

		task_id="task_"+cnt;

		task=get_value(task_id);

		page_id=mode+"_page_"+cnt;

		page=parseInt(get_value(page_id));

		params+="&task="+task+"&page="+page;

		url=site_url+"rss.php?"+params;

		window.open(url,cnt,"status=1,toolbar=1,location=1,menubar=1,resizable=1,scrollbars=1");

	}

}

function paginator(cnt,action)

{

	if(is_busy(cnt))

		return false;

	mode_id="mode_"+cnt;

	mode=get_value(mode_id);

	page_id=mode+"_page_"+cnt;

	page=parseInt(get_value(page_id));

	if(action=="newer")

		new_page=page-1;

	else

		new_page=page+1;

	if(new_page<1)

		return false;

	if(mode=="me")

		change_account(cnt,new_page);

	if(mode=="search")

		search_text(cnt,new_page);

	if(mode=="follow")

		follow_user(cnt,new_page);

}

function get_info(cnt,mode)

{

	if(is_busy(cnt))

		return false;

	do_busy(cnt);

	twitter_accounts_id="twitter_accounts_"+cnt;

	account_id=get_value(twitter_accounts_id);

	params="function=get_info&account_id="+account_id;

	switch(mode)

	{

		case "me":

			//

		break;

		case "follow":

			follow_user_id="follow_user_"+cnt;

			twitter_name=get_value(follow_user_id);

			params+="&twitter_name="+urlencode(twitter_name);

		break;

	}

	url=twitterface_ajax_url+params;

	ajax_obj[cnt].open("GET",url,true);

	ajax_obj[cnt].send(null);

	ajax_obj[cnt].onreadystatechange=function()

	{

		if(ajax_obj[cnt].readyState==4 && ajax_obj[cnt].status==200)

		{

			ajax_response=ajax_obj[cnt].responseText;

			if(ajax_response=="error" || ajax_response=="failure")

			{

				remove_info(cnt,mode,"--");

			}

			else

			{

				info=ajax_response.split("|");

				friends_id=mode+"_"+"friends_"+cnt;

				followers_id=mode+"_"+"followers_"+cnt;

				statuses_id=mode+"_"+"statuses_"+cnt;

				friends_count=info[0];

				followers_count=info[1];

				statuses_count=info[2];

				set_inner(friends_id,friends_count);

				set_inner(followers_id,followers_count);

				set_inner(statuses_id,statuses_count);

			}

			no_busy(cnt);

		}

	}

}

function remove_info(cnt,mode,str)

{

	friends_id=mode+"_"+"friends_"+cnt;

	followers_id=mode+"_"+"followers_"+cnt;

	statuses_id=mode+"_"+"statuses_"+cnt;

	set_inner(friends_id,str);

	set_inner(followers_id,str);

	set_inner(statuses_id,str);

}

function twitter_popup(cnt,what)

{

	mode_id="mode_"+cnt;

	mode=get_value(mode_id);

	panel_id="panel_"+mode+"_"+cnt;

	panel_inner=trim(remove_tabs(remove_breaks(get_inner(panel_id))));

	if(panel_inner.length>0)

	{

		if(mode=="me")

		{

			twitter_accounts_id="twitter_accounts_"+cnt;

			idx=document.getElementById(twitter_accounts_id).selectedIndex;

			twitter_name=document.getElementById(twitter_accounts_id).options[idx].text;

		}

		if(mode=="follow")

		{

			follow_user_id="follow_user_"+cnt;

			twitter_name=get_value(follow_user_id);

		}

		url="http://twitter.com/"+twitter_name;

		switch(what)

		{

			case "friends":

				url+="/friends";

			break;

			case "followers":

				url+="/followers";

			break;

			case "updates":

				//

			break;

		}

		window.open(url,"","status=1,toolbar=1,location=1,menubar=1,resizable=1,scrollbars=1");

	}

}

function show_msg(cnt,success,profile)

{

	if(success)

		success=1;

	else

		success=0;

	params="function=show_msg&success="+success;

	url=ajax_url+params;

	ajax_obj[cnt].open("GET",url,true);

	ajax_obj[cnt].send(null);

	ajax_obj[cnt].onreadystatechange=function()

	{

		if(ajax_obj[cnt].readyState==4 && ajax_obj[cnt].status==200)

		{

			ajax_response=ajax_obj[cnt].responseText;

			ajax_response=trim(remove_tabs(remove_breaks(ajax_response)));

			if(ajax_response.length>0)

			{

				if(profile===undefined)
					error_id="error_"+cnt;
				else
					error_id="profile_error_"+cnt;

				set_inner(error_id,ajax_response);

				show(error_id);

			}

		}

	}

}

function adjust_panel_height(cnt)

{
	if(boxes==1)
		return;
	mode_id="mode_"+cnt;
	mode=get_value(mode_id);
	error_id="error_"+cnt;
	error=trim(remove_tabs(remove_breaks(strip_tags(get_inner(error_id)))));
	error_length=error.length;
	if(boxes==1)
		avg_length=170;
	else if(boxes==2)
		avg_length=80;
	else // boxes==3
		avg_length=50;
	single_line=(error_length<=avg_length)?true:false;
	error_height=(single_line==true)?36:52;
	m=get_m(mode);
	panel_height=parseInt(modes_detail[m][2]);
	switch(mode)
	{
		case "me":
			panel_id="panel_me_"+cnt;
			if(is_displayed(error_id))
			{
				panel_height-=error_height;
				update_id="update_"+cnt;
				if(!is_displayed(update_id))
					panel_height+=75;
			}
		break;
		case "search":
			panel_id="panel_search_"+cnt;
			if(is_displayed(error_id))
				panel_height-=error_height;
		break;
		case "follow":
			panel_id="panel_follow_"+cnt;
			if(is_displayed(error_id))
				panel_height-=error_height;
		break;
	}
	document.getElementById(panel_id).style.height=panel_height+"px";
}

function adjust_panel_heights()

{

	for(cnt=1;cnt<=boxes;cnt++)

		adjust_panel_height(cnt);

}

function trim_urls(cnt)
{
	if(is_busy(cnt))
		return;
	update_text_id="update_text_"+cnt;
	str=get_value(update_text_id);
	if(!fillok(str))
		return;
	do_busy(cnt);
	str=trim(str);
	//str=str.substr(0,140);
	twitter_accounts_id="twitter_accounts_"+cnt;
	account_id=get_value(twitter_accounts_id);
	params="function=trim_urls&account_id="+account_id+"&str="+urlencode(str);
	url=twitterface_ajax_url+params;
	ajax_obj[cnt].open("GET",url,true);
	ajax_obj[cnt].send(null);
	ajax_obj[cnt].onreadystatechange=function()
	{
		if(ajax_obj[cnt].readyState==4 && ajax_obj[cnt].status==200)
		{
			ajax_response=ajax_obj[cnt].responseText;
			hide_error(cnt);
			set_value(update_text_id,ajax_response);			
			text_count_id="text_count_"+cnt;
			text_count(update_text_id,140,text_count_id);
			document.getElementById(update_text_id).focus();
			adjust_panel_height(cnt);
			no_busy(cnt);
		}
	}
}
function do_upload(cnt)
{
	if(is_busy(cnt))
		return false;
	upload_action_id="upload_action_"+cnt;
	upload_action=get_value(upload_action_id);
	if(upload_action=="music")
	{
		search_music_id="search_music_"+cnt;
		str=get_value(search_music_id);
		str=trim(str);
		if(str==document.getElementById(search_music_id).defaultValue || !fillok(str))
			return false;
		else
			set_value(search_music_id,str);
	}
	do_busy(cnt);
	account_id_id="upload_account_id_"+cnt;
	twitter_accounts_id="twitter_accounts_"+cnt;
	account_id=get_value(twitter_accounts_id);
	set_value(account_id_id,account_id);
	return true;
}
function add_photo(cnt)
{
	upload_heading_id="upload_heading_"+cnt;
	set_inner(upload_heading_id,"Add Photo");
	upload_action_id="upload_action_"+cnt;
	set_value(upload_action_id,"photo");
	upload_file_id="upload_file_"+cnt;
	search_music_id="search_music_"+cnt;
	music_results_id="music_results_"+cnt;
	photo_logo_id="photo_logo_"+cnt;
	video_logo_id="video_logo_"+cnt;
	music_logo_id="music_logo_"+cnt;
	show(upload_file_id);
	hide(search_music_id);
	hide(music_results_id);
	show(photo_logo_id);
	hide(video_logo_id);
	hide(music_logo_id);
	upload_button_id="upload_button_"+cnt;
	set_value(upload_button_id,"Upload");
	profile_id="profile_"+cnt;
	hide(profile_id);
	email_id="email_"+cnt;
	hide(email_id);
	upload_id="upload_"+cnt;
	show(upload_id);
}
function add_video(cnt)
{
	upload_heading_id="upload_heading_"+cnt;
	set_inner(upload_heading_id,"Add Video");
	upload_action_id="upload_action_"+cnt;
	set_value(upload_action_id,"video");
	upload_file_id="upload_file_"+cnt;
	search_music_id="search_music_"+cnt;
	music_results_id="music_results_"+cnt;
	photo_logo_id="photo_logo_"+cnt;
	video_logo_id="video_logo_"+cnt;
	music_logo_id="music_logo_"+cnt;
	show(upload_file_id);
	hide(search_music_id);	
	hide(music_results_id);
	hide(photo_logo_id);
	show(video_logo_id);
	hide(music_logo_id);
	upload_button_id="upload_button_"+cnt;
	set_value(upload_button_id,"Upload");
	profile_id="profile_"+cnt;
	hide(profile_id);
	email_id="email_"+cnt;
	hide(email_id);
	upload_id="upload_"+cnt;
	show(upload_id);
}
function add_music(cnt)
{
	upload_heading_id="upload_heading_"+cnt;
	set_inner(upload_heading_id,"Add Music");
	upload_action_id="upload_action_"+cnt;
	set_value(upload_action_id,"music");
	upload_file_id="upload_file_"+cnt;
	search_music_id="search_music_"+cnt;
	music_results_id="music_results_"+cnt;
	photo_logo_id="photo_logo_"+cnt;
	video_logo_id="video_logo_"+cnt;
	music_logo_id="music_logo_"+cnt;
	hide(upload_file_id);
	show(search_music_id);
	show(music_results_id);
	hide(photo_logo_id);
	hide(video_logo_id);
	show(music_logo_id);
	upload_button_id="upload_button_"+cnt;
	set_value(upload_button_id,"Search");
	profile_id="profile_"+cnt;
	hide(profile_id);
	email_id="email_"+cnt;
	hide(email_id);
	upload_id="upload_"+cnt;
	show(upload_id);
}
function put_upload(cnt,upload_url,upload_text)
{
	if(upload_text===undefined)
		upload_text=upload_url;
	else
		upload_text+=" "+upload_url;
	update_text_id="update_text_"+cnt;
	update_text=trim(get_value(update_text_id))+" "+upload_text+" ";
	set_value(update_text_id,update_text);			
	text_count_id="text_count_"+cnt;
	text_count(update_text_id,140,text_count_id);
	cursor_to_end(update_text_id);
	close_upload(cnt);
}
function put_music(cnt,str)
{
	music_results_id="music_results_"+cnt;
	set_inner(music_results_id,str);
}
function close_upload(cnt)
{
	hide_error(cnt,"upload");
	upload_id="upload_"+cnt;
	hide(upload_id);
}

function timer(cnt)
{
	timer_cnt[cnt]++;
	check_ajax_timer(cnt);
}
function start_ajax_timer(cnt)
{
	timer_cnt[cnt]=0;
	timer_obj[cnt]=setInterval("timer("+cnt+")",1000);
}
function check_ajax_timer(cnt)
{
	if(timer_cnt[cnt]==10)
		stop_ajax_timer(cnt,true);
}
function stop_ajax_timer(cnt,abort)
{
	if(abort===undefined)
		abort=false;
	clearInterval(timer_obj[cnt]);
	if(abort)
	{
		ajax_obj[cnt].abort();
		no_busy(cnt);
	}
}