var invalidKeys = new Array('60','62');
var validIntKeys = new Array('48','49','50','51','52','53','54','55','56','57','8','0');

function chk(obj,val,showhtmltext)  {
    var resultArray = new Array();
    for(var property in obj) {
        if(val) { if(val == property) { resultArray.push(property + ' = ' + obj[property]); } }
        else {
	        if(showhtmltext) { resultArray.push(property + ' = ' + obj[property]); }
	        else { if(property != 'innerHTML' && property != 'innerText' && property != 'outerHTML' && property != 'outerText') {resultArray.push(property + ' = ' + obj[property]); } }
        } }
    resultArray.sort(); var message = new String(resultArray); alert(message.replace(/,/g,', ')); } 

function ValidInputs(eventObj, obj) {
    var keyCode, x, str=obj.value;
	if (document.all){ keyCode = eventObj.keyCode; } else{ keyCode = eventObj.which; }
	if (keyCode == 0) { return true; }
	var textPostion = getCursorPos(obj);
	var start = str.substring(0,textPostion);
	var end = obj.value.substring(textPostion,obj.value.length);
	var newFullText = start + String.fromCharCode(keyCode) + end;
	var allowed = true;
	var outputData='';
	for (var i=0; (i < newFullText.length); i++) { if (CheckData(outputData,newFullText.charCodeAt(i)) == false) { allowed = false; break; } else { outputData += newFullText.substring(i,i+1) } }
	return allowed; }

function CheckData(str, keyCode) {
	for (x in invalidKeys) { if (invalidKeys[x] == keyCode) { return false; } }
	if (str.substring(str.length-1,str.length) == '&' && keyCode == '35') { return false; }
	return true; }

function PastValidInput(obj) {
    if (window.clipboardData.getData('Text').length > 0) {
        var outputData='';
        var textPostion = getCursorPos(obj);
        var start = obj.value.substring(0,textPostion);
        var end = obj.value.substring(textPostion,obj.value.length);
        var fullText = start + window.clipboardData.getData('Text') + end;
        var length = fullText.length;
        for (var i=0; (i < length); i++) { if (CheckData(outputData,fullText.charCodeAt(i))) { outputData += fullText.substring(i,i+1) } }
        if (outputData.length>obj.maxLength){ outputData = outputData.substring(0,obj.maxLength); }
        obj.value = outputData; }
    return false; }

function ValidIntInputs(eventObj, obj) {
    var CurrentKeyCode, str=obj.value;
	if (document.all){ keyCode = eventObj.keyCode; } else{ keyCode = eventObj.which; }
	if (keyCode == 0) { return true; }
	for (x in validIntKeys) { if (validIntKeys[x] == keyCode) { return true; } }
	return false; }
	

function getCursorPos(textElement) {  
    if(document.selection) {
        var text="^<P>^", range = document.selection.createRange(), orig = textElement.value; max = textElement.maxLength;
        textElement.maxLength = max + text.length;
        range.text = text;
        var actual = tmp = textElement.value, cursorPos = 0;
        for(var diff = 0; diff < orig.length; diff++) { if(orig.charAt(diff) != actual.charAt(diff)) { break; } } 
        cursorPos=diff;
        textElement.value=replaceText(textElement.value,text,'');
        textElement.maxLength = max;
        var resetRange = textElement.createTextRange(); 
        resetRange.move("character", diff); 
        resetRange.select(); 
        return cursorPos; }
    else if (textElement.selectionStart || textElement.selectionStart == '0') { return textElement.selectionStart; } }
	
function TextAreaLength(eventObj, obj, maxLength, isPaste)
{
    var str=obj.value;
    var strLength=str.length;

    if (isPaste == 'y') {
        if (strLength < maxLength) {
        var pasteData = str + window.clipboardData.getData("Text");
        var pasteLength = pasteData.length;
        
        if ((strLength + pasteLength) > maxLength) {
            alert('Pasted text is longer than max field lentgh.\nPasted data will be trimmed.');
            
            obj.value += pasteData.substring(0,(maxLength-strLength));
        }
        else { return true; } } }
        else { if (ValidInputs(eventObj,obj)) {
                var keyCode;
	            if (document.all){ keyCode = eventObj.keyCode; } else{ keyCode = eventObj.which; }
                if ((strLength < maxLength) || (keyCode=="8" || keyCode=="0")) { return true; }
            } }
    return false;}

function DisplayErrorMsg(source, args) { if (source.parentNode.className != 'Warning') { source.parentNode.className = 'Warning'; } }
function ResetErrorMsg(source, args) { if (source.parentNode.className == 'Warning') { source.parentNode.className = 'WarningWrapper'; } }

function getDate(string) {
    var myDate=new Date();
    // string formatted as yyyy-mm-dd
    var year, month, day;
    year = string.substring(0,4);
    month = string.substring(7,5) - 1;
    day = string.substring(10,8);
    myDate.setFullYear(year,month,day)
    return myDate; }

function replaceText(string,text,by) {
	var strLength = string.length, txtLength = text.length;
	if ((strLength == 0) || (txtLength == 0)) return string;
	var i = string.indexOf(text);
	if ((!i) && (text != string.substring(0,txtLength))) return string;
	if (i == -1) return string;
	var newstr = string.substring(0,i) + by;
	if (i + txtLength < strLength) { newstr += replaceText(string.substring(i + txtLength,strLength),text,by); }
	return newstr; }
