var TEXT_NODE = 3;
var elmsText = new Array();
var elmsObj = new Array();

function TranslationCallback(result){
	for (var i=0; i<result.length;i++){
	    elmsObj[i].nodeValue = result[i];
	}
	if (document.getElementById("trRes")){
	    document.getElementById("trRes").style.display='block';
	}
}
function TrimStr(str) {
    return str.replace(/(^\s+)|(\s+$)/g, "");
}

function TranslationObserve(baseLng, destLang) {
    elmsText.length=0;
    elmsObj.length=0;
    FillTextElements(document, elmsText, elmsObj);
    TranslateArray(baseLng, destLang, elmsText, elmsObj);
}

function FillTextElements(control) {
    if (!control) {
        return;
    }
    for (var i = 0; i < control.childNodes.length; i++) {
        var ctrl = control.childNodes[i];
        if (ctrl.nodeName == 'SCRIPT' || ctrl.nodeName == 'NOSCRIPT' || ctrl.id=='trRes') {
            continue;
        }
        if (ctrl.nodeType != TEXT_NODE && ctrl.hasChildNodes()) {
            FillTextElements(ctrl);
        }
        if (ctrl.nodeType == TEXT_NODE && TrimStr(ctrl.nodeValue) != '' && !TrimStr(ctrl.nodeValue).match("^[|\\.,\\-=_+0-9]+$")) {
            elmsText.push(TrimStr(ctrl.nodeValue));
            elmsObj.push(ctrl);
        }
    }
}

function TranslateArray(baseLng, destLng, elmsText, elmsObj) {
    Translation.Translate(baseLng, destLng, elmsText, TranslationCallback);
}
