//------------------------------------------------------------------------------
// IPS XML HTTP REQUEST:: GET NEW POSTS
//------------------------------------------------------------------------------
// Supports Safari, Mozilla 1.3+ (Firefox, etc) and IE 5.5+
// (c) 2005 Invision Power Services, Inc.
// http://www.invisionpower.com
//------------------------------------------------------------------------------

/*--------------------------------------------*/
// INIT VARS
/*--------------------------------------------*/

var gnp_div  = 'get-new-posts_menu';
var msg_div  = 'get-new-msgs_menu';
var mem_div  = 'get-members';
var divobj;
var divopen  = 0;
var xmlobj;
var reg_img	 = '';

var myass_main;
var myass_loaded   = 0;
var pm_cycle_count = 0;
var search_cache   = {};
var posts_st       = 0;

/*--------------------------------------------*/
// Get NEXT posts link
/*--------------------------------------------*/

function xml_show_new_posts( st )
{
	posts_st = st;
	xml_myassistant_init( 'posts' );
}

/*--------------------------------------------*/
// Load MyASSISTANT!
/*--------------------------------------------*/

function xml_myassistant_init( tab )
{
	myass_main    = document.getElementById( 'get-myassistant' );
	myass_drag    = document.getElementById( 'myass-drag' );
	myass_content = document.getElementById( 'myass-content' );
	
	/*--------------------------------------------*/
	// Main function to do on request
	// Must be defined first!!
	/*--------------------------------------------*/
	
	do_request_function = function()
	{
		//----------------------------------
		// Ignore unless we're ready to go
		//----------------------------------
		
		if ( ! xmlobj_myass.readystate_ready_and_ok() )
		{
			// Could do a little loading graphic here?
			return;
		}
		
		//----------------------------------
		// INIT
		//----------------------------------
		
		var html = xmlobj_myass.xmlhandler.responseText;
		
		//----------------------------------
		// Stop IE showing select boxes over
		// floating div [ 1 ]
		//----------------------------------
		
		if ( is_ie )
		{
			 html = "<iframe id='myass-shim' src='" + ipb_var_image_url + "/iframe.html' class='iframshim' scrolling='no' frameborder='0' style='position:absolute; top:0px; left:0px; right:0px; display: none;'></iframe>" + html;
		}
		
		myass_content.innerHTML = html;
		
		//----------------------------------
		// Stop IE showing select boxes over
		// floating div [ 1 ]
		//----------------------------------
				
		if ( is_ie )
		{
			drag_html      = myass_drag.innerHTML;
			main_drag_html = "<iframe id='myass-shim-two' src='" + ipb_var_image_url + "/iframe.html' class='iframshim' scrolling='no' frameborder='0' style='position:absolute; top:0px; left:0px; right:0px; display: none;'></iframe>" + drag_html;
			
			myass_drag.innerHTML = main_drag_html;
		}		
		
		//----------------------------------
		// Stop IE showing select boxes over
		// floating div [ 2 ]
		//----------------------------------
		
		if ( is_ie )
		{
			myass_shim               = document.getElementById('myass-shim');
			myass_shim.style.width   = myass_content.offsetWidth;
			myass_shim.style.height  = myass_content.offsetHeight;
			myass_shim.style.zIndex  = myass_content.style.zIndex - 1;
			myass_shim.style.top     = myass_content.style.top;
			myass_shim.style.left    = myass_content.style.left;
			myass_shim.style.display = "block";
			
			myass_shim_d               = document.getElementById('myass-shim-two');
			myass_shim_d.style.width   = myass_drag.offsetWidth;
			myass_shim_d.style.height  = myass_drag.offsetHeight;
			myass_shim_d.style.zIndex  = myass_drag.style.zIndex - 1;
			myass_shim_d.style.top     = myass_drag.style.top;
			myass_shim_d.style.left    = myass_drag.style.left;
			myass_shim_d.style.display = "block";			
		}
	};
	
	xmlobj_myass = new ajax_request();
	xmlobj_myass.onreadystatechange( do_request_function );
	
	//----------------------------------
	// LOAD XML
	//----------------------------------
	
	if ( ! tab )
	{
		xmlobj_myass.process( ipb_var_base_url + 'act=buddy&xml=1' );
	}
	else if ( tab == 'newpms' )
	{
		//----------------------------------
		// Figure out where we are..
		//----------------------------------
		
		var limit_a = 0;
		
		pm_cycle_count++;
		
		if ( pm_cycle_count <= ipb_new_msgs )
		{
			limit_a = pm_cycle_count - 1;
		}
		else
		{
			pm_cycle_count = 1;
		}
		
		xmlobj_myass.process( ipb_var_base_url + 'act=buddy&xml=1&tab=' + tab + '&limit=' + limit_a );

		myass_content.style.width    = '398px';
		myass_content.style.overflow = 'auto';
		myass_content.style.overflowX = 'hidden';
	}
	else if ( tab == 'posts' )
	{
		xmlobj_myass.process( ipb_var_base_url + 'act=buddy&xml=1&tab=' + tab + '&st=' + posts_st );
	}
	else
	{
		xmlobj_myass.process( ipb_var_base_url + 'act=buddy&xml=1&tab=' + tab );
	}
  	
  	myass_main.style.position = 'absolute';
	myass_main.style.display  = 'block';
	myass_main.style.zIndex   = 99;
	
	//----------------------------------
	// Not loaded? INIT
	//----------------------------------
	
	if ( ! myass_loaded )
	{
		//----------------------------------
		// Figure width and height
		//----------------------------------
		
		var my_width  = 0;
		var my_height = 0;
		
		if ( typeof( window.innerWidth ) == 'number' )
		{
			//----------------------------------
			// Non IE
			//----------------------------------
		  
			my_width  = window.innerWidth;
			my_height = window.innerHeight;
		}
		else if ( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) )
		{
			//----------------------------------
			// IE 6+
			//----------------------------------
			
			my_width  = document.documentElement.clientWidth;
			my_height = document.documentElement.clientHeight;
		}
		else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) )
		{
			//----------------------------------
			// Old IE
			//----------------------------------
			
			my_width  = document.body.clientWidth;
			my_height = document.body.clientHeight;
		}
		
		//----------------------------------
		// Get div height && width
		//----------------------------------
		
		var divheight = parseInt( myass_main.style.Height );
		var divwidth  = parseInt( myass_main.style.Width );
		
		divheight = divheight ? divheight : 400;
		divwidth  = divwidth  ? divwidth  : 400;
		
		//----------------------------------
		// Got it stored in a cookie?
		//----------------------------------
		
		var divxy = my_getcookie( 'ipb-myass-div' );
		var co_ords;
		
		if ( divxy && divxy != null )
		{
			co_ords = divxy.split( ',' );
		
			//----------------------------------
			// Got co-ords?
			//----------------------------------
			
			if ( co_ords.length )
			{
				var final_width  = co_ords[0];
				var final_height = co_ords[1];
				
				if ( co_ords[0] > my_width )
				{
					//----------------------------------
					// Keep it on screen
					//----------------------------------
					
					final_width = my_width - divwidth;
				}
				
				if ( co_ords[1] > my_height )
				{
					//----------------------------------
					// Keep it on screen
					//----------------------------------
					
					final_height = my_height - divheight;
				}
				
				myass_main.style.left = final_width  + 'px';
				myass_main.style.top  = final_height + 'px';
			}
		}
		else
		{
			//----------------------------------
			// Reposition DIV roughly centered
			//----------------------------------
			
			myass_main.style.left = my_width  / 2  - (divwidth / 2)  + 'px';
			myass_main.style.top  = my_height / 2 - (divheight / 2 ) + 'px';
		}
		
		Drag.cookiename = 'ipb-myass-div';
		Drag.init( myass_drag, myass_main );
		
		myass_loaded = 1;
	}
};

/*--------------------------------------------*/
// Alter DST Retrieve XML document
/*--------------------------------------------*/

function xml_myassistant_search( url )
{
	var keywords  = document.getElementById('myass-search-input').value;
	var msg_field = document.getElementById('myass-search-message');
	var url       = ipb_var_base_url+'act=Search&CODE=01&forums=all&cat_forum=forum&joinname=1&search_in=posts&result_type=topics&xml=1&keywords='+escape(keywords);

	if ( keywords.length < 4 )
	{
		msg_field.innerHTML = ipb_myass_chars_lang;
		return false;
	}
	
	//----------------------------------
	// Already cached?
	//----------------------------------
	
	if ( search_cache[ keywords ] )
	{
		msg_field.innerHTML = search_cache[ keywords ];
		return;
	}
	
	/*--------------------------------------------*/
	// Main function to do on request
	// Must be defined first!!
	/*--------------------------------------------*/
	
	do_request_function = function()
	{
		//----------------------------------
		// Ignore unless we're ready to go
		//----------------------------------
		
		if ( ! xmlobj.readystate_ready_and_ok() )
		{
			xmlobj.show_loading();
			return;
		}
		
		xmlobj.hide_loading();
		
		//----------------------------------
		// INIT
		//----------------------------------
		
		var html = xmlobj.xmlhandler.responseText;
	
		msg_field.innerHTML      = html;
		search_cache[ keywords ] = html;
	};
	
	//----------------------------------
	// LOAD XML
	//----------------------------------
	
	xmlobj = new ajax_request();
	xmlobj.onreadystatechange( do_request_function );
	
	xmlobj.process( url );
};

/*--------------------------------------------*/
// Alter DST Retrieve XML document
/*--------------------------------------------*/

function xml_dst_set( url )
{
	/*--------------------------------------------*/
	// Main function to do on request
	// Must be defined first!!
	/*--------------------------------------------*/
	
	do_request_function = function()
	{
		//----------------------------------
		// Ignore unless we're ready to go
		//----------------------------------
		
		if ( ! xmlobj.readystate_ready_and_ok() )
		{
			// Could do a little loading graphic here?
			return;
		}
		
		//----------------------------------
		// INIT
		//----------------------------------
		
		var html = xmlobj.xmlhandler.responseText;
	
		if ( html == 'error' )
		{
			window.location = url.replace( '&xml=1', '&xml=0');
		}
	};
	
	//----------------------------------
	// LOAD XML
	//----------------------------------
	
	xmlobj = new ajax_request();
	xmlobj.onreadystatechange( do_request_function );
	
	xmlobj.process( url );
};


/*-------------------------------------------------------------------------*/
// INIT Post GD Image
/*-------------------------------------------------------------------------*/

function init_gd_image()
{
	var reg_img = document.getElementById('gd-antispam');
	
	try
	{
		reg_img.style.cursor = 'pointer';
	}
	catch(e)
	{
		reg_img.style.cursor = 'hand';
	};
	
	reg_img._ready  = 1;
	
	reg_img.onclick = do_change_img;
};

function do_change_img()
{
	var rc 	    = '';
	var act	    = 'Reg';
	var code    = 'image';
	var reg_img = document.getElementById('gd-antispam');
	
	var qparts  = reg_img.src.split("?");
	
	if ( ! reg_img._ready )
	{
		return false;
	}
	
	if ( qparts.length > 1 ) 
	{
		var qvars = qparts[1].split("&");

		for ( var i=0; (i < qvars.length); i++ ) 
		{
			var qparts = qvars[i].split("=");
			
			if ( qparts[0] == 'rc' )
			{
				rc = qparts[1];
			};
			
			if ( qparts[0] == 'act' )
			{
				act = qparts[1];
			};
			
			if ( qparts[0] == 'CODE' )
			{
				code = qparts[1];
			};
		};
	};

	var url = ipb_var_base_url+'act=xmlout&do=change-gd-img&img='+rc;
	
	do_request_function = function()
	{
		//----------------------------------
		// Ignore unless we're ready to go
		//----------------------------------
		
		if ( ! xmlobj.readystate_ready_and_ok() )
		{
			// Could do a little loading graphic here?
			return;
		}
		
		//----------------------------------
		// INIT
		//----------------------------------
		
		var html = xmlobj.xmlhandler.responseText;

		reg_img.src = ipb_var_base_url+'act='+act+'&CODE='+code+'&rc='+html;
		
		var reg_field  	= document.getElementById('regid');
		reg_field.value = html;
		
		reg_img._ready = 1;
	};
	
	//----------------------------------
	// LOAD XML
	//----------------------------------
	
	reg_img._ready = 0;
	
	xmlobj = new ajax_request();
	xmlobj.onreadystatechange( do_request_function );
	xmlobj.process( url );
}


