function requestCallback()
{
	new Effect.Move('leftFloatWrapper', { x: -50, y: 0, mode: 'relative' });

	
	$('lightboxText').innerHTML = '<strong>Get an Instant Callback</strong><br />\n<br />\n<form method="post" id="callbackForm" onsubmit="validateCallbackFrom(); return false;">\n	<label for="callbackName">Your name:</label><input type="text" size="35" name="callbackName" id="callbackName" /><br />\n<br />\n<label for="callbackNumber">Phone number:</label><input type="text" size="35" name="callbackNumber" id="callbackNumber" /><br />\n<br />\n<input type="hidden" name="href" value="' + document.location.href + '" /><input type="submit" value="  Call Me  " />\n</form>';
	
	showLightBox();
}

function showLightBox()
{
	Effect.Appear('lightbox', {duration: 0.3, queue: 'front'});
}

function closeLightBox()
{
	new Effect.Move('leftFloat', { x: 50, y: 0, mode: 'relative' });
	$('lightbox').fade({duration: 0.3});
}

function sendCallbackRequest()
{
	new Ajax.Request('/callback/ajax/',
						{
							method: 'post',
							parameters: $('callbackForm').serialize(true),
							onSuccess: function(transport)
							{
									var response = transport.responseText || 'Error occured';
									$('lightboxText').innerHTML = response;
							},
							
							onFailure: function()
							{
									$('lightboxText').innerHTML = 'Error occured';
							}
						}
					);
	$('lightboxText').innerHTML = '<img src="images/ajax-loader.gif" alt="Sending..." class="loadingImage" />';
}

function trim(str)
{
    if(!str || typeof str != 'string')
        return null;

    return str.replace(/^[\s]+/,'').replace(/[\s]+$/,'').replace(/[\s]{2,}/,' ');
}

function validateCallbackFrom()
{
	var trimmedName = trim($('callbackName').value);
	if ((trimmedName==null) || (trimmedName.length < 3))
	{
		alert('Please enter your name.');
		$('callbackName').focus();
		return;
	}
	
	var telephone = /^(\d| ){6,}$/;
	
	if (!$('callbackNumber').value.match(telephone))
	{
			alert('Please enter your telephone number.\n\n Numbers and spaces only.');
			$('callbackNumber').focus();
			return;
	}
	sendCallbackRequest();
}

function setupMorph()
{
        var badge = $('slider'),
            photo = badge.down('img.slider'),
            tel = badge.down('span.telephone'),
            con = badge.down('span.contactus'),
			timer = null;
            openopt = { duration: .7 }, 
            closeopt = { duration: .4 };
			width = 130;
			
		phoneLeft = -40;
		phoneRight = width + phoneLeft;
		
		var openFunction = function()
			{
				if (timer)
				{
					clearTimeout(timer);
					timer = null;
					return;
				}
			  
				con.setStyle({ width: '0px' }).show().morph('width:' + width + 'px', openopt);
				tel.morph('width:0px', openopt);
				photo.morph('right: ' + -phoneRight + 'px', { duration: .6 });
			};
			
		var closeFunction = function()
			{
				timer = setTimeout(function()
					{
					photo.morph('right:' + -phoneLeft + 'px', closeopt);
					con.morph('width:0px', closeopt);
					tel.morph('width:' + width + 'px', closeopt);
					timer = null;
					}, 500)
			}

	badge.show().observe('mouseover', openFunction).observe('mouseout', closeFunction);	
	setTimeout(closeFunction, 1500);
}

function setupNewsScroller()
{
	var newsScroller = $('newsScroller');
	var scroller = $('scroller');
	var numArticles =  $$('div.article').length;
	
	var heightPerArticle = 190;
	var articles = new Array();
	var onIndex = 0;
	var pause = false;
	
	Event.observe(newsScroller, 'mouseenter', function()
		{
			pause = true;
		});
	
	Event.observe(newsScroller, 'mouseleave', function()
		{  
			pause = false;
		});  
	
	var moveScroller = function()
		{
			if (!pause)
			{
				scroller.morph('top: ' + (-1 * onIndex++ * heightPerArticle) + 'px');
		
				if (onIndex == numArticles)
					onIndex = 0;
			}
				
			setTimeout(function()
						{
							moveScroller();
						}, 3000);
		};
		
	moveScroller();
}
