function getBrowser()
{
	//Get user agent information
	var browser = navigator.userAgent;
	//Cast all information to lower case
	browser = browser.toLowerCase();

	//Return browser name
	if(browser.indexOf('chrome') != -1)
	{
		return'chrome';
	}
	else if(browser.indexOf('msie') != -1)
	{
		return'ie';
	}
	else if(browser.indexOf('firefox') != -1)
	{
		return'firefox';
	}
	else if(browser.indexOf('opera') != -1)
	{
		return'opera';
	}

	return false;
}

//This function will increase the width of an element with "increment" up to "increase" at a timeout of "speed"
//i.e. <td onmouseover="increaseWidth(this, 10, 100, 50);">DEF</td>
function increaseWidth(element, increment, increase, speed)
{
	//Get the browser name
	var browser = getBrowser();
	//Limit the element width to "increase"
	if (element.offsetWidth < increase)
	{
		//Pause for "speed" miliseconds to give an animation effect and then call the function with its parameters recursively
		//The first parameter is a call to the function, the second is the timeout and the rest are parmaters of the function
		if (browser != 'ie')
		{
			//Set the element width
			element.style.width=(element.offsetWidth+increment);
			setTimeout(increaseWidth,speed,element,increment,increase,speed);
		}
	}
}

//This function will decrease the width of an element with "decrement" up to "decrease" at a timeout of "speed"
//i.e. <td onmouseover="decreaseWidth(this, 10, 10, 50);">DEF</td>
function decreaseWidth(element, decrement, decrease, speed)
{
	//Get the browser name
	var browser = getBrowser();
	//Limit the element width to "increase"
	if (element.offsetWidth > decrease)
	{
		//Pause for "speed" miliseconds to give an animation effect and then call the function with its parameters recursively
		//The first parameter is a call to the function, the second is the timeout and the rest are parmaters of the function
		if (browser != 'ie')
		{
			//Set the element width
			element.style.width=(element.offsetWidth-decrement);
			setTimeout(decreaseWidth,speed,element,decrement,decrease,speed);
		}
	}
}

//This function will increase the width of an element with "increment" up to "increase" at a timeout of "speed"
//i.e. <td onmouseover="increaseHeight(this, 10, 100, 50);">DEF</td>
function increaseHeight(element, increment, increase, speed)
{
	//Get the browser name
	var browser = getBrowser();
	//Limit the element width to "increase"
	if (element.offsetHeight < increase)
	{
		//Pause for "speed" miliseconds to give an animation effect and then call the function with its parameters recursively
		//The first parameter is a call to the function, the second is the timeout and the rest are parmaters of the function
		if (browser != 'ie')
		{
			//Set the element width
			element.style.height=(element.offsetHeight+increment);
			setTimeout(increaseHeight,speed,element,increment,increase,speed);
		}
	}
}

//This function will decrease the width of an element with "decrement" up to "decrease" at a timeout of "speed"
//i.e. <td onmouseover="decreaseWidth(this, 10, 10, 50);">DEF</td>
function decreaseHeight(element, decrement, decrease, speed)
{
	//Get the browser name
	var browser = getBrowser();
	//Limit the element width to "increase"
	if (element.offsetHeight > decrease)
	{
		//Pause for "speed" miliseconds to give an animation effect and then call the function with its parameters recursively
		//The first parameter is a call to the function, the second is the timeout and the rest are parmaters of the function
		if (browser != 'ie')
		{
			//Set the element width
			element.style.height=(element.offsetHeight-decrement);
			setTimeout(decreaseHeight,speed,element,decrement,decrease,speed);
		}
	}
}
