﻿function SmallTalkInitialize() {    
    var smallTalkField = $get(smallTalkFieldId);
    if(smallTalkField!=null) {
        $addHandler(smallTalkField, "keydown", SmallTalkKeyDownHandler);
        $addHandler(smallTalkField, "keyup", SmallTalkKeyUpHandler);
        SmallTalkKeyUpHandler();
    }
}

var postbackElement;
function SmalltalkRequestManagerSetup() {
    Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(function(sender, args) {
        postbackElement = args.get_postBackElement();
        if(postbackElement.id.indexOf(smallTalkButtonId)!=-1) {
            postbackElement.disabled = true;
        }
    }); 

    Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(function(sender, args) {
        if(postbackElement) {
            if(postbackElement.id.indexOf(smallTalkButtonId)!=-1 || 
                postbackElement.id.indexOf("_Pager_")!=-1) {
                SmallTalkInitialize();                    
            }
        
            if(postbackElement.id.indexOf(smallTalkButtonId)!=-1) {
                postbackElement.disabled = false;
                $get(smallTalkFieldId).select();
                $get(smallTalkFieldId).focus();
            }
        }
    });
}

function SmallTalkKeyDownHandler(e) {
    var talkFieldLength = $get(smallTalkFieldId).value.length;

    if(e && e.keyCode==13 && !e.shiftKey) {
        e.preventDefault();
        e.stopPropagation();
        
        if(talkFieldLength>0)
            smallTalkPostRef();
        return;
    }
    
    var charsLeft = smallTalkMaxLength - talkFieldLength;
    if(e && charsLeft<=0 && !Array.contains(smallTalkNonAddChars,e.keyCode)) {
        e.preventDefault();
        e.stopPropagation();
    }
}    

function SmallTalkKeyUpHandler(e) {
    var talkFieldLength = $get(smallTalkFieldId).value.length;
    var charsLeft = smallTalkMaxLength - talkFieldLength;        
    $get(smallTalkCharCounterId).innerHTML = "("+charsLeft+" tegn tilbage)";
}
