(function($) {

	   $.fn.transictionto = function(options) {
	      var settings = $.extend({
	   }, options || {});
	   //wrap into div if no div is present.
	   $(this).each(function() {
	      if ($(this).parent('div').size() == 0) {
	         $(this).wrap('<div></div>')
	      }
	      //now swap with background trick
	      $(this)
	      .parent()
	         .css('background-image', 'url(' + settings.destinationImage + ')')
	         .css('background-repeat', 'no-repeat')
	         .css('background-position', 'top left')
	         .css('background-color', 'transparent')
	      .end()
	      .fadeOut(1000, function() {
	         this.src = settings.destinationImage;
	         $(this).show();
	      });
	   });
	};
	
	$.errors = function(){

		$('span.tooltip').each(function(i){
			var parent = $('ul.errors li',$(this).parent().get(0));
			var element = $('input',$(this).parent().get(0));
			$(this).qtip({
				content: {
						text: parent
					},
					show: 'mouseover',
					hide: 'mouseout',
					position : {corner: {tooltip : 'bottomLeft' , target : 'topRight'}},
					style : {name: 'red',tip: 'bottomLeft'}
				});

			$(this).qtip({
				content: {
						text: parent
					},
					show: {when:{target:element,event:'focus'}},
					hide: {when:{target:element,event:'blur'}},
					position : {corner: {tooltip : 'bottomLeft' , target : 'topRight'}},
					style : {name: 'red',tip: 'bottomLeft'}
				});
			
			});
		}
	
	$.getAddress = function ( button ) {
        var num = encodeURIComponent($('input#address1').val());
        var pc = encodeURIComponent($('input#postcode').val());
		  var elm = $(button);
		  var spinner = $('<img src="/assets/images/spinner.gif" width="16" height="16" alt="" />');
		  $('#getAddressFeedback').remove();
		  $('#getAddressResults').remove();
		  elm.parent().append( spinner );

        $.ajax(
            {
					data: {
						num: num,
						pc: pc
					},
					dataType: 'json',
					url: '/index/getaddress/num/' + num + '/postcode/' + pc,
					success: function( data )
					{
						$(spinner).remove();

						if ( 0 == data.length )
						{
							elm.parent().append( '<span id="getAddressFeedback">No Address Matched</span>' );
						}
						else if ( 1 == data.length )
						{
							$.setAddress( data[0] );
						}
						else
						{
							var addresses = $('<select id="getAddressResults" size="10"></select>' );
							addresses.click( function()
								{
									var val = $(this).val();
									var address = val.split( '#:#' );
									address = {
										houseNo: address[0],
										address1: address[1],
										address2: address[2],
										town: address[3],
										county: address[4],
										postcode: address[5],
										country: address[6]
									};
									$.setAddress( address );
								}
							);
							for ( var i = 0; i < data.length; i++ )
							{
								var address = data[i];
								var val = address.houseNo + '#:#' + address.address1 + '#:#' + address.address2 + '#:#' + address.town + '#:#' + address.county + '#:#' + address.postcode + '#:#' + address.country;
								var disp = [];
								disp.push( address.houseNo );
								disp.push( address.address1 );
								if ( address.address2 ) { disp.push( address.address2 ) };
								disp.push( address.town );
								disp.push( address.county );
								disp = disp.join( ', ' );
								var option = $('<option value="' + val + '">' + disp + '</option>' );
								addresses.append( option );
							}
							elm.parent().append( addresses );
						}

						return false;
					}
				}
        );
		  return false;
    }

	 $.setAddress = function( address ) {
		$('#address1').val( address.houseNo );
		$('#address2').val( address.address1 );
		$('#address3').val( address.address2 );
		$('#town').val( address.town );
	 };
	
	$.showOffers = function (utype) {
		return false;
        $('#popup-offers').html('<img src="/assets/images/vx_offers_'+utype+'.png" usemap="#m_01" /><map name="m_01" id="m_01"><area shape="rect" coords="272,559,354,590" href="/retailerlocator/" /></map>');
        $('#popup-offers').dialog({
        	modal:false, 
        	title:'VAUXHALL PARTNERS SPECIAL OFFERS',
        	dialogClass: 'offerPopup',
        	width:700, 
        	resizable:false, 
        	minHeight:100,
        	autoOpen: true,
        	close: function(event, ui) {$('#popup-offers').dialog('destroy');}
        	});
    }
	
	$.showRetailerRegistration = function () {
	        $('#registrationForm').dialog({
	        	modal:false, 
	        	title:'Retailer registration',
	        	width:380,
	        	resizable:false, 
	        	minHeight:100,
	        	autoOpen: true,
	        	position:['center',50],
	        	close: function(event, ui) {$('#registrationForm').dialog('destroy');}
	        	});
	};
	
})(jQuery);

function sendData(e) {
    if(e == 'add') {
        var num = encodeURIComponent($('input#LUnum').val());
        var street = encodeURIComponent($('input#LUstreet').val());
        var town = encodeURIComponent($('input#LUtown').val());
        $('#pcl').load('/index/getaddress/task/search/lookupType/add/num/' + num + '/street/' + street + '/town/' + town);
    } else {
        var num = encodeURIComponent($('input#LUnum').val());
        var postcode = encodeURIComponent($('input#LUpostcode').val());
        $('#pcl').load('/index/getaddress/task/search/lookupType/pc/num/' + num + '/postcode/' + postcode);
    }
}

jQuery.fn.labelOver = function() {
	var $bound = false;
	this.each(function() {
		var $label = $(this);
		var $target = $('#' + $label.attr('for'));
		
		if (!$bound) {
			var $parent = $label.parents('form').get(0).id;
			$('form#' + $parent).bind('submit', function() {
				$inputs = $('form#' + $parent + ' input');
				$inputs.each(function() { 
					var $theInput = $(this);
					var $myLabel = $('label[for=' + $theInput.attr('id') + ']');
					if ($myLabel.hasClass('overlaid')) {
						if ($theInput.val() == $myLabel.html()) {
							$theInput.val('');
						}
					}
				});
			});
			$bound = true;
		}
		
		$label.css({width: '0px', height: '0px', overflow: 'hidden', display: 'block'}).addClass('overlaid');
		if ($target.val() == '') {$target.val($label.html());}
		$target
			.bind('focus', function($e) {
				var $thisLabel = $('label[for=' + $(this).attr('id') + ']');
				if ($(this).val() == $thisLabel.html()) { 
					$(this).val('');
				}
			})
			.bind('blur', function($e) {
				var $thisLabel = $('label[for=' + $(this).attr('id') + ']');
				if ($(this).val() == '') { 
					$(this).val($thisLabel.html());
				}
			});
	});
}

