var oINPUT_REFER = {

  name_0: 'Last Name',
  name_1: 'First Name',
  email:  'Email'
};

var oClone = { curr : 0, prev : 0 };

jQuery( document ).ready( function () {

  // set focus
  jQuery( 'input:text:first' ).focus();

  // initialize click/blur events
  jQuery( 'input' ).click( function () { jQuery( this ).attr( 'value', '' ); } );
  jQuery( 'form#formRefer input' ).blur( function () { if (jQuery( this ).attr( 'value' ) == '') { jQuery( this ).attr( 'value', oINPUT_REFER[jQuery( this ).attr( 'class' ).replace( 'text ', '' )] ); } } );

  // initialize clone count
  oClone.curr = parseInt( jQuery( 'input#hdnCloneCount' ).attr( 'value' ) );

  // initial add another click
  jQuery( 'input#imgAdd' ).click( function () {

    // increment clone count
    oClone.curr++;
    oClone.prev = oClone.curr - 1;

    var oElement = jQuery( 'div#divRefer_' + oClone.prev ).clone( true ).attr( 'id', 'divRefer_' + oClone.curr );

    oElement.find( 'input.name_0' ).attr( { id: 'txtReferee_' + oClone.curr + '_Name_0', name: 'txtReferee_' + oClone.curr + '_Name_0', value: oINPUT_REFER.name_0 } );
    oElement.find( 'input.name_1' ).attr( { id: 'txtReferee_' + oClone.curr + '_Name_1', name: 'txtReferee_' + oClone.curr + '_Name_1', value: oINPUT_REFER.name_1 } );
    oElement.find( 'input.email' ).attr(  { id: 'txtReferee_' + oClone.curr + '_Email',  name: 'txtReferee_' + oClone.curr + '_Email',  value: oINPUT_REFER.email } );

    oElement.insertAfter( 'div#divRefer_' + oClone.prev );

    // remove buttons from current
    jQuery( 'div#divRefer_' + oClone.prev + ' input[type=image]' ).remove();
    jQuery( 'div#divRefer_' + oClone.prev + ' input[type=hidden]' ).remove();
    jQuery( 'div#divRefer_' + oClone.prev + ' span' ).remove();

    // update clone count
    jQuery( 'input#hdnCloneCount' ).attr( 'value', oClone.curr );

    return false;

  } );

} );
