function CV_getObjNN4(obj,name){
	var x = obj.layers;
	var foundLayer;
	
	for (var i=0;i<x.length;i++)
	{
		if (x[i].id == name)
			foundLayer = x[i];
		else if (x[i].layers.length)
			var tmp = CV_getObjNN4(x[i],name);
		if (tmp) foundLayer = tmp;
	}
	return foundLayer;
}
	
function CV_getObjectById(name){
	var obj;
	
	if(document.getElementById){
		obj = document.getElementById(name);
	}
	else if(document.all)
	{
		obj = document.all[name];
	}
	else if(document.layers)
	{
		obj = CV_getObjNN4(document,name);
		obj.style = obj;
	}
	return obj;
}

function CV_add_event(element, evento, funcion) {
	if (element.attachEvent) {
		element.attachEvent("on"+evento, funcion);
	}
	else {
		element.addEventListener(evento, funcion, false);
	}
}

function CV_isAllDigits(str){
    for(i = 0; i < str.length; i++){
        var ch = str.charAt(i);
        if( (ch != '0') && (ch != '1') &&
            (ch != '2') && (ch != '3') &&
            (ch != '4') && (ch != '5') &&
            (ch != '6') && (ch != '7') &&
            (ch != '8') && (ch != '9') )
            return false;
    }
    return true;
}

function CV_inGroup(element, groupArray){
	for(i = 0; i < groupArray.length; i++){
		if(groupArray[i] == element) return true;
	}
	return false;
}

function CV_luhnCheck(cardNumber) {
    if (CV_isLuhnNum(cardNumber)) {
        var no_digit = cardNumber.length;
        var oddoeven = no_digit & 1;
        var sum = 0;
        for (var count = 0; count < no_digit; count++) {
            var digit = parseInt(cardNumber.charAt(count));
            if (!((count & 1) ^ oddoeven)) {
                digit *= 2;
                if (digit > 9) digit -= 9;
            };
            sum += digit;
            };
        if (sum == 0) return false;
        if (sum % 10 == 0) return true;
    };
    return false;
}

function CV_isLuhnNum(argvalue) {
    argvalue = argvalue.toString();
    if (argvalue.length == 0) {
        return false;
    }
    for (var n = 0; n < argvalue.length; n++) {
        if ((argvalue.substring(n, n+1) < "0") ||
            (argvalue.substring(n,n+1) > "9")) {
            return false;
        }
    }
    return true;
}