﻿function setReq() {
    setVisibility2();
    setRequiredFields();
}

function setRequiredFields() {
	var formType = $("#ContactTypeIDFK").val();

	var inputs = $("input", "#form1");
	var texts = $(".consuText", "#form1");
	var selects = $(".consuSelect", "#form1");
	var radios = $('.consuRadio', "#form1");

	radios.each(function() {
		var id = $(this).attr('name');
		var entry = findEntry(id, formType);
		if (entry != false) {
			$(this).attr("title", entry);

			$('#marker_' + $(this).attr("name")).hide();
			$('#marker_' + $(this).attr("name")).html('');
			if (entry == 'NOK') { // niet verplicht
				$('#consuRequired_' + $(this).attr("name")).html('&nbsp;');
				$('#lbl' + $(this).attr("name")).attr('title', '');
			}
			else { // verplicht
				if (isInvisible(id)) {
					$('#consuRequired_' + $(this).attr("name")).html('&nbsp;');
					$('#lbl' + $(this).attr("name")).attr('title', '');
				} else {
					$('#consuRequired_' + $(this).attr("name")).html('*');
					$('#lbl' + $(this).attr("name")).attr('title', $(this).attr("name"));
				}
			}


		}
	});

	inputs.each(function() {
	    $('.tb.tbErr').each(function() {
	        $(this).removeClass('tbErr');
	    });
    	CheckRequireds(this, formType);
	});
	selects.each(function() {
		CheckRequireds(this, formType);
	});
	texts.each(function() {
		CheckRequireds(this, formType);
	});

}

function CheckRequireds(o, formType) {
    var entry = findEntry($(o).attr("id"), formType)
    if (entry != false) {
        $(o).attr("title", entry);
        if (entry == 'NOK') { // niet verplicht
            setRequired(o, false);
        }
        else { // verplicht
            //alert ( o.id + " - invisible: " + isInvisible(o.id) ) 
            if (isInvisible(o.id)) {
                setRequired(o, false);
            } else {
                setRequired(o, true);
            }
        }
    }
}

function setRequired(o, isRequired) {
    $('#marker_' + $(o).attr("id")).hide();
    $('#marker_' + $(o).attr("id")).html('');
    if (isRequired) {
        $('#consuRequired_' + $(o).attr("id")).html('*');
    } else {
        $(o).attr("title", "");
        $('#consuRequired_' + $(o).attr("id")).html('&nbsp;');
    }
}

var alerted = 0;
function findEntry(key, formType) {
	var rtkey, val, allkeys = [], requiredskeys = [];
	formType = "FormType_" + formType;
	//alert(formType);
	var elem = formElements[key];
	if (elem) {
		if (elem.requireds[formType] != 'undefined') { //Controleer of de required properties bestaan.                    
			if (elem.requireds[formType] == true) { //Het element is verplicht                        
				return elem["title"];
			} else {
				return "NOK"
			}
		}
		else {
			return false
		}
	}
	else {
		return false
	}
}

// Versie 1.4.8 (LRS)
function isBuggyBrowser() {
	if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) {		// test for MSIE x.x;
		var ieversion = new Number(RegExp.$1); 				// capture x.x portion and store as a number
		return (ieversion < 8);
	}
	return false;
}

// Versie 1.4.8 (LRS)
function isReallyBuggyBrowser() {
	if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) {		// test for MSIE x.x;
		var ieversion = new Number(RegExp.$1); 				// capture x.x portion and store as a number
		return (ieversion == 6);
	}
	return false;
}

// Versie 1.4.8 (LRS)
function GenerateErrorSpans() {
	// wrap required text fields in error <span>'s
	//alert("isReallyBuggyBrowser() = " + isReallyBuggyBrowser());
	$("input[type='text']", "#form1").each(function() {
		if (!$(this).parents("span").hasClass("tb")) {
			$(this).wrap("<span class=\"tb" + (isBuggyBrowser() ? " ie" + (isReallyBuggyBrowser() ? "6" : "") : "") + "\"></span>");
			$(this).wrap("<span class=\"tb right" + (isBuggyBrowser() ? " ie" + (isReallyBuggyBrowser() ? "6" : "") : "") + "\"></span>");
		}

		// change background-color if field is readonly
		if ($(this).attr("readonly") != "") {
			$(this).addClass("readonly");
		}
	});

	// round border for textarea's
	$("textarea").each(function() {
		$(this).wrap("<div class=\"consuTextContainer\"></div>");
		$(this).before("<div class=\"consuTextCorner topLeft" + (isBuggyBrowser() ? " ie" + (isReallyBuggyBrowser() ? "6" : "") : "") + "\"></div>");
		$(this).before("<div class=\"consuTextCorner topRight" + (isBuggyBrowser() ? " ie" + (isReallyBuggyBrowser() ? "6" : "") : "") + "\"></div>");
		$(this).before("<div class=\"consuTextCorner bottomLeft" + (isBuggyBrowser() ? " ie" + (isReallyBuggyBrowser() ? "6" : "") : "") + "\"></div>");
		$(this).before("<div class=\"consuTextCorner bottomRight" + (isBuggyBrowser() ? " ie" + (isReallyBuggyBrowser() ? "6" : "") : "") + "\"></div>");
	});

	// add "consuError" class to error <span> for each required field
	$("input").each(function() {
	if ($(this).attr("name") != undefined) {
	    $("#marker_" + $(this).attr("name")).addClass("consuError" + (isBuggyBrowser() ? " ie" + (isReallyBuggyBrowser() ? "6" : "") : ""));
			if (
				($(this).attr("type") == "text" && $(this).attr("title") != "") ||
				($(this).attr("type") == "radio" && $("#consuRequired_" + $(this).attr("name")).text() == "*")) {
			}
			
			// IE fix
			if ($(this).hasClass("consuRadio") && isBuggyBrowser()) {
				$(this).addClass("ie");
			}
		}
	});
	$("select").each(function() {
		//if ($(this).attr("title") != "") {
			$("#marker_" + $(this).attr("name")).addClass("consuError" + (isBuggyBrowser() ? " ie" + (isReallyBuggyBrowser() ? "6" : "") : ""));
		//}
	});
	$("textarea").each(function() {
		//if ($(this).attr("title") != "") {
			$("#marker_" + $(this).attr("name")).addClass("consuError" + (isBuggyBrowser() ? " ie" + (isReallyBuggyBrowser() ? "6" : "") : ""));
		//}
	});
}
