        var adInputs;
		var showTipTimer;
		var preview;
		function countChars() {
            var totalCount = 0;
            adInputs.each(function() {
                totalCount += $.trim($(this).val()).length;
            });            
            return totalCount + adTextCountOffset;
        }
        
        function renderCharState(charsRemaining, currentInput) {

                if (charsRemaining < 0)
                {
                    var text = $(currentInput).val(); 
                    $(currentInput).val(text.substr(0, text.length- Math.abs(charsRemaining)));
                    charsRemaining = 0;
                }

            $('#charCounter').text((charsRemaining + ' characters remaining')); 
            }
            
        function refreshPreview()
        {
            adInputs.each(function() {
            $('#' + $(this).attr("id") + 'Preview').text($.trim($(this).val()));
            });
        }
        
        function renderDate(date)
        {
             var endDate = Date.parse(date);
                    endDate.add(daysToRun -1).days();
                    var dateString = 'Your ad will run from <strong>' + Date.parse(date).toString("M/d/yyyy") + '</strong> to <strong>' + endDate.toString("M/d/yyyy") + '</strong>';
                    var dateSpan = '<span class="notify-message ui-icon ui-icon-info" style="float: left; margin-right: 0.3em;"></span>'
                    var dateMessage = $('#dateMessage');
                    dateMessage.text('');
                    dateMessage.html(dateSpan + dateString);
                    dateMessage.fadeIn("normal");
        }      

        $(document).ready(function() {
		preview = new Object();
		adInputs = $('.adInput');
            $('#ad_StartDate option').slice(1).each(function() {
                var date = Date.parse(jQuery(this).val());
                dates[date] = true;

                adInputs.each(function() {
				var textarea = $(this);

				
				textarea.handleKeyUp = function() {

                textarea.unbind('keyup', textarea.handleKeyUp);
                if (!preview.updatingPreview) {
								$('#ajaxLoad').show();
                    preview.updatingPreview = true;
                    window.setTimeout(function() { textarea.reloadPreview(); }, 1000);
                }
                return false;
            };
			
			textarea.reloadPreview = function(){
			
				adInputs.each(function() {
					$('#' + $(this).attr("id") + 'Preview').text($.trim($(this).val()));
				});
				preview.updatingPreview = false;
				$('#ajaxLoad').hide();
				this.bind('keyup', this.handleKeyUp);
			};
				
				
                    $(this).keyup(function() {
                        var currentLength = countChars();
                        var charsRemaining = maxChars - currentLength;
                        renderCharState(charsRemaining, $(this));
						
                    });
                    $(this).keypress(function(e) {
					
                        var currentLength = countChars();
                        var ob = e || event;
                        var keyCode = ob.keyCode;
                        var hasSelection = document.selection ? document.selection.createRange().text.length > 0 : this.selectionStart != this.selectionEnd;
                        return !(currentLength + 1 > (maxChars) && (keyCode > 50 || keyCode == 32 || keyCode == 0 || keyCode == 13) && !ob.ctrlKey && !ob.altKey && !hasSelection);
                    });
                    $(this).focus(function() {
                        $(this).prev($('label')).append($('#charCounter'));
                    });
									textarea.reloadPreview();
                });

                $('#ad_StartDate').change(function() {
                    renderDate($(this).val());
                });
                renderCharState((maxChars)-countChars());
                refreshPreview();                

            });


            $('#datepicker').datepicker({
                dateFormat: 'mm-dd-yy',
                buttonImage: '../Content/images/calendar2.png',
                buttonImageOnly: true,
                showOn: 'button',
                onSelect: function(date) {
                    $('#ad_StartDate').val(date);
                    renderDate(date);
                   
                },
                beforeShowDay: function(date) {
                    return [dates[date], ''];
                },
                beforeShow: function() {
                    $(this).val($('#ad_StartDate').val());
                    if ($(this).val() == "01-01-0001") $(this).val($('#ad_StartDate option').slice(1).val());
                    return {};
                }
            });
        });    

