
$(document).ready( gift_init );

function gift_init(){
	message_limit_init();
}

function message_limit_init(){
	text_limit_init( '#GiftMessage', 500 );
}

function text_limit_init( element, limit ){

	var $_ = (element instanceof jQuery) ? element : $( element );
	element = $_.get(0);

	if( element.type == 'hidden' ) return;

	element.maxLength = limit;

	var text = text_limit_text( limit );

	var limitTextDiv = $( '<div class="limitText">' + text + '</div>' ).get(0);

	$_.after( limitTextDiv );

	$_.each( function(){
			this.limitTextDiv = limitTextDiv;
			text_limit_text_update( this )
		} );

	$_.keyup( text_limit_check );
	//$_.change( text_limit_apply );
}

function text_limit_check( event ){

	text_limit_text_update( this )

}

function text_limit_apply(){

	var limit = this.maxLength;

	if( this.value.length > limit )
		this.value = this.value.substring( 0, limit );

	text_limit_text_update( this )
}

function text_limit_text_update( e ){

	var limit = e.maxLength;
	var length = e.value.length;

	var text = text_limit_text( limit, length );


	var $_ = $( e.limitTextDiv );

	$_.text( text );

	var rem = limit - length;
	
	if( rem >= 0 )
		$_.css( {color: null } );
	else 
		$_.css( {color: 'red' } );

}

function text_limit_text( limit, length ){

	if( ! length )
		return limit + ' character limit';

	var rem = limit - length;

	return limit + ' character limit, ' + rem + ' remaining';

}
