﻿function AddWaterMarks() {
    for (var i = 0; i < document.forms[0].elements.length; i++) {
        var aFrmElement = document.forms[0].elements[i];
        if (aFrmElement.getAttribute('WatermarkText') != null) {
            AddWaterMark(aFrmElement.id);
        }
    }
    window.onresize = function() { ResetPos(); };
}

function ResetPos() {
    for (var i = 0; i < document.forms[0].elements.length; i++) {
        var aFrmElement = document.forms[0].elements[i];
        if (aFrmElement.getAttribute('WatermarkText') != null) {
            var aDiv = document.getElementById(aFrmElement.id + "watermark");
            if (aDiv != null) {
                var aTxt = $get(aFrmElement.id);
                aDiv.style.left = findPosX(aTxt) + "px";
                aDiv.style.top = findPosY(aTxt) + "px";
            }
        }
    }
}

function AddWaterMark(txtID) {
    var aTxt = $get(txtID);
    if (aTxt != null) {
        if (aTxt.value == "") {
            var aDiv = document.getElementById(txtID + "watermark");
            if (aDiv == null) {
                aDiv = document.createElement('div');
                aDiv.id = txtID + "watermark";
                aDiv.className = aTxt.getAttribute('WatermarkCssClass');
                aDiv.innerHTML = aTxt.getAttribute('WatermarkText');
                aDiv.style.left = findPosX(aTxt) + "px";
                aDiv.style.top = findPosY(aTxt) + "px";
                aDiv.onclick = function() { RemoveWaterMark(txtID, true); };
                aTxt.onfocus = function() { RemoveWaterMark(txtID); };
                aTxt.onblur = function() { AddWaterMark(txtID); };
                aTxt.parentNode.insertBefore(aDiv, aTxt);
            }
        }
    }
}

function RemoveWaterMark(txtID, setFocus) {
    var aTxt = $get(txtID);
    if (aTxt != null) {
        var aDiv = document.getElementById(txtID + "watermark");
         if(aDiv != null){
             aTxt.parentNode.removeChild(aDiv);
         }
         if (setFocus) { aTxt.focus(); }
     }

     aTxt.select();
}

function findPosX(obj) {
    var curleft = 0;
    if (obj.offsetParent)
        while (1) {
        curleft += obj.offsetLeft;
        if (!obj.offsetParent)
            break;
        obj = obj.offsetParent;
    }
    else if (obj.x)
        curleft += obj.x;
    return curleft;
}

function findPosY(obj) {
    var curtop = 0;
    if (obj.offsetParent)
        while (1) {
        curtop += obj.offsetTop;
        if (!obj.offsetParent)
            break;
        obj = obj.offsetParent;
    }
    else if (obj.y)
        curtop += obj.y;
    return curtop;
}


