(function($) {
	
$(document).ready(function()
{
	var wrapper = $('#NewsletterSignupFormWrapper');
	
	if (wrapper.length == 0)
		return;
	
	$.fn.colorbox({
		inline : true,
		href : '#NewsletterSignupFormWrapper',
		opacity : 0.5,
		close : 'Go straight to site &raquo;',
		onComplete : function() 
		{
            if (typeof sIFR == "function") 
            {
            	sIFR.replaceElement("#NewsletterSignupFormWrapper .content h2", named({
                    sFlashSrc: swf_url + '/archer-semibold.swf',
                    /*sColor: "#8a0000",*/
                    sColor: '#ffffff',
                    sWmode: "transparent"
                }));
                
                sIFR.replaceElement("#NewsletterSignupFormWrapper .content p.border", named({
                    sFlashSrc: swf_url + '/archer-semibold.swf',
                    /*sColor: "#8a0000",*/
                    sColor: '#ffffff',
                    sWmode: "transparent"
                }));
            }
            
            var form = $('#Form_NewsletterSignupForm');
            
            form.find('label').each(function()
            {
            	var label = $(this);
            	label.siblings('div.middleColumn').find('input').val(label.text());
            });
            
            function processInputElement(element)
            {
            	var txt = $(element).parent().siblings('label').text();
    			var val = $(element).val();
    			if (txt == val)
    				return '';
    			
    			return val;
            }
            
            $.validator.addMethod('requiredProcessed', function(value, element)
            {
            	return !(processInputElement(element) == '');
            }, '*');
            
            var validator = form.validate({
            	rules: {
            		firstname : {
            			requiredProcessed : true
            		},
            		lastname : {
            			requiredProcessed : true
            		},
            		email : {
            			requiredProcessed : true,
            			email : true
            		}
            	},
            	messages : {
            		email : '*'
            	},
            	debug : true,
            	invalidHandler : function(form, validator)
            	{
            		var errors = validator.numberOfInvalids();
            		var msg = wrapper.find('p.errMsg');
            		
            		if (errors)
            			msg.show();
            		else
            			msg.hide();
            			
            	},
            	submitHandler : function(theform)
            	{
            		form.ajaxSubmit();
            		
            		wrapper.find('div.content').slideUp();
            		wrapper.find('div.thank-you').slideDown();
            		
            		wrapper.find('div.thank-you a.continue').click(function()
            		{
            			$.fn.colorbox.close();
            			return false;
            		});
            		
            		$('#cboxClose').hide();
            	}
            });
            
            form.find('input.text').focus(function()
            {	
            	var input = $(this);
            	var label = input.parent().siblings('label');
            	
            	if (input.hasClass('error') && (input.val() == '' || input.val() == label.text()))
            	{
            		input.val(label.text());
            		input.get(0).select();
            		return;
            	}
            	
            	if (input.val() == label.text())
            		input.get(0).select();
            });
        }
	});
});
	
})(jQuery);