﻿var maxStickyPaperCount = 99;
var currentStickyPaperCount = 0;
var lastX = 0;
var lastY = 0;

function generateNextStickyPaperNumber()
{
    return currentStickyPaperCount++;
}

function Point(x, y)
{
    this.x = x;
    this.y = y;
}

function getNextStickyPaperPosition()
{
    lastX += 20;
    if (lastX > 400) {
        lastX = 20;
    }
    lastY += 20;
    if (lastY > 200) {
        lastY = 20;
    }
    return new Point(lastX, lastY);      
}

function addStickyPaper()
{
    if (currentStickyPaperCount >= maxStickyPaperCount)
    {
        window.alert('これ以上スティッキーを追加できません');
        return;
    }
    
    var num = generateNextStickyPaperNumber();

    // メモリリークを防ぐために、生成したエレメントはすぐに DOM ツリーに属させていく。
    var ph = $get('placeholderForClientSideScript');
    var elemBase = document.createElement('div');      
    ph.appendChild(elemBase);
    var elemHandle = document.createElement('div');
    elemBase.appendChild(elemHandle);
    var txt1 = document.createTextNode('DRAG ME');
    elemHandle.appendChild(txt1);
    var elemTextArea = document.createElement('textarea');
    elemBase.appendChild(elemTextArea);

    // Base 部分の設定    
    elemBase.setAttribute('id', 'StickyPaperBaseId'+num);
    elemBase.style.backgroundColor = '#fafad2';
    elemBase.style.border = 'solid 1px #EAEAEA';
    elemBase.style.width = '100px';
    elemBase.style.height = '64px';
    elemBase.style.wordBreak = 'break-all';
    
    // Handle 部分の設定
    elemHandle.setAttribute('id', 'StickyPaperHandleId'+num);
    elemHandle.style.backgroundColor = '#fffacd';
    elemHandle.style.color = '#cccccc';
    elemHandle.style.width = '98px';
    elemHandle.style.height = '16px';

    // テキスト部分の設定
    elemTextArea.setAttribute('id', 'StickyPaperTextAreaId'+num);
    elemTextArea.style.width = '98px';
    elemTextArea.style.height = '46px';
    
    
    // ===== FloatingBehavior の生成と設定 =====
    var pos = getNextStickyPaperPosition();
    var strpos = pos.x + ',' + pos.y;
    var fb = $create(Sys.Preview.UI.FloatingBehavior, {'location' : strpos, 'handle' : elemHandle}, null, null, elemBase);

    //for (var i in fb)
    //{
    //    $get('debugTrace').innerHTML += i + '<br />';
    //}
    
    //fb.drop = function () {
    //    $get('debugTrace').innerHTML += 'onDragEnd<br />';
    //}


    // ===== InPlaceEditBehavior の生成と設定
    var ipe = $create(nStuff.Samples.InPlaceEdit.InPlaceEditBehavior, {'labelCssClass' : 'StickyLabelBody', 'labelHoverCssClass':'StickyLabelBodyHover'}, null, null, elemTextArea);

    // 残り枚数の表示を更新
    $get('remainStickyPaperCount').innerHTML = maxStickyPaperCount - currentStickyPaperCount;
}
