var airmilesSoFar =  0 ;
var friendsSoFar = 0 ;
var friendToMilesMultiplier = 200 ;
var potentialMilesCopyArray = ["nodata"] ;
var friendsMilesCopyArray = ["nodata"] ;
var milesImageArray = ["nodata"] ;

var AddMoreFriends = new Class
({
	_rows: null,
	_validrowCount: 0,
	_validrowPoint: 50,
	_airmilesCounterSwf : null,
	_multiplier: friendToMilesMultiplier,
	

	initialize: function()
	{
		this._rows = $$( ".friend-items .formrow" );
		this._rowData = new Array( this._rows.length );
		this.attachTopSwf();
		this.attachBottomSwf();
		
		var rowCounter = 0;
		this._rows.each( function( row )
		{
			var inputs = row.getElements( 'input' );
			var firstName = inputs[0];
			var lastName = inputs[1];
			var emailName = inputs[2];
			
			this._rowData[rowCounter++] = { FirstName: firstName, LastName: lastName, Email: emailName };
			
//remove the bindings then re-attach. this because we're adding new friend rows (using ajax now) and we run initialize each time to make sure the new friend rows have the event bound
			firstName.removeEvent( 'keydown', this.Eval.bind( this ) ).removeEvent( 'keyup', this.Eval.bind( this ) );
			lastName.removeEvent( 'keydown', this.Eval.bind( this ) ).removeEvent( 'keyup', this.Eval.bind( this ) );
			emailName.removeEvent( 'keydown', this.Eval.bind( this ) ).removeEvent( 'keyup', this.Eval.bind( this ) );
			
			firstName.addEvent( 'keydown', this.Eval.bind( this ) ).addEvent( 'keyup', this.Eval.bind( this ) );
			lastName.addEvent( 'keydown', this.Eval.bind( this ) ).addEvent( 'keyup', this.Eval.bind( this ) );
			emailName.addEvent( 'keydown', this.Eval.bind( this ) ).addEvent( 'keyup', this.Eval.bind( this ) );
		}, this );
		
		
		var obj = $('enter-details');
		var sendBtn = $$('.btn-recommend-now')[0];
		var oldFunc = sendBtn.onclick;
		sendBtn.onclick = null;
		sendBtn.addEvent('click',function() {
		    oldFunc();
		    window.scrollTo(0,obj.getPosition().y);
		}.bind(this));
		// if postback, scroll to enter details form
		// nasty hack
		//if ($(document.body).hasClass('postback'))
		//    window.scrollTo(0,obj.getPosition().y);
		    
		    
		    
		    
	},
	attachTopSwf : function() {
	
	   // var flashvarstop = {copyArray:["Lets add miles","So you could get 200 Miles - enough for a Gourmet Society membership","So you could get 400 Miles - enough for a thrilling day at Alton Towers","So you could get 600 Miles - enough for a free entry to over 55 attractions","So you could get 800 Miles - enough for a free flight to a Zone 1 city like Paris","So you could get 1000 Miles - enough for great seats to a West End performance","1So you could get 1200 Miles - enough for a great day out driving a sports car","So you could get 1400 Miles - enough for treating yourself and a friend to a spa day","So you could get 1600 Miles - enough for a free Zone 2 city like Rome"],multiplier:this._multiplier,imageArray:["000.jpg","200.jpg","400.jpg","600.jpg","800.jpg","1000.jpg","1200.jpg","1400.jpg","1600.jpg"]};
	    var flashvarstop = {copyArray:potentialMilesCopyArray,multiplier:this._multiplier,imageArray:milesImageArray};
	    var params = {multiplier:this._multiplier};
	    var attributes = {
			id : "flash-counter-object-top",
			name : "flash-counter-object-top"
	    }
	    flashvarstop.initNum = airmilesSoFar ;
		//note: flashvarstop will be passed in by the thanks page once it has been calculated
	    swfobject.embedSWF("/assets/flash/RevolvingNumbers.swf", "flash-counter-alt-top", "600", "88", "8.0.0", false, flashvarstop, params, attributes );
	},
	
	attachBottomSwf : function() {
	    //var flashvars = {copyArray:["Lets add miles","That’s enough for a Gourmet Society membership","That’s enough to get you a thrilling day at Alton Towers","Get a London Pass for free entry to over 55 attractions","That’s enough for a free flight to a Zone 1 city like Paris","That could get you great seats to a West End performance","That’s enough for a great day out driving a sports car","That’s enough to treat yourself and a friend to a spa day","You could use these for a free flight to a Zone 2 city like Rome"],multiplier:this._multiplier,imageArray:["000.jpg","200.jpg","400.jpg","600.jpg","800.jpg","1000.jpg","1200.jpg","1400.jpg","1600.jpg"]};
	    var flashvars = {copyArray:friendsMilesCopyArray,multiplier:this._multiplier,imageArray:milesImageArray};
	    var params = {multiplier:this._multiplier};
	    var attributes = {
			id : "flash-counter-object-bottom",
			name : "flash-counter-object-bottom"
	    }
	    flashvars.initNum = airmilesSoFar ;
	    swfobject.embedSWF("/assets/flash/RevolvingNumbers.swf", "flash-counter-alt-bottom", "600", "88", "8.0.0", false, flashvars, params, attributes );

	},
		
	Eval: function( e )
	{
		this._validrowCount = friendsSoFar ;
		
		for( var i = 0; i < this._rowData.length; i++ )
		{
			var row = this._rowData[i];
			var valid = row.FirstName.value.length > 0 && row.LastName.value.length > 0 && row.Email.value.length > 0;
			
			if( valid ) this._validrowCount++;	
		}
		
		this._airmilesCounterSwf = $('flash-counter-object-bottom').updateNumberFlash(this._multiplier *  this._validrowCount );

	}
});

var addFriends;

window.addEvent( 'load', function()
{
   if ($('section-recommend-to-friend') || $('section-thanks')) {
	    addFriends = new AddMoreFriends();
	}
	    
	    
	Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);	    
	 
  
});

function airmilesCounterFlashLoaded() {
    // called by flash
    if (addFriends)
        addFriends.Eval();
}

function target(name)
{
   window.location.hash=name;
}

function EndRequestHandler(sender, args)
{
	// do code for update panel reload here
	addFriends.initialize();
}
	