var jscript //@cc_on =parseFloat(@_jscript_version)
function fixLastPNG() {
	if (self.jscript <= 5.6) {
		var imgs = document.getElementsByTagName("img");
		var img = imgs[imgs.length-1];
		imgSrc = img.src;
		img.src = "/_/images/space.gif";
		img.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+imgSrc+"',sizingMethod='image')";
	}
}

(function(){ /*Use Object Detection to detect IE6*/ var m = document.uniqueID /*IE*/ && document.compatMode /*>=IE6*/ && !window.XMLHttpRequest /*<=IE6*/ && document.execCommand ; try{ if(!!m){ m("BackgroundImageCache", false, true) /* = IE6 only */ } }catch(oh){}; })();

/** Startup **/
$(document).ready(function() {
	$('.nav a').click(function() {
		this.blur();
	});
});

function collectForm(form) {
	var args = {};
	for (var i=0; i<form.elements.length; i++) {
		/*if (form.elements[i].length && form.elements[i][0].type=="radio") {
			console.debug(form.elements[i][j].value, form.elements[i][j].checked);
			for (var j=0; j<form.elements[i][j].length; j++) {
				if (form.elements[i][j].checked) {
					console.debug(form.elements[i][j].value, form.elements[i][j].checked);
					args[form.elements[i][j].name] = form.elements[i][j].value;
				}
			}
		}
		else {*/
		if (form.elements[i].type == "radio") {
			if (form.elements[i].checked) {
				args[form.elements[i].name] = form.elements[i].value;
			}
		}
		else {
			args[form.elements[i].name]
				= form.elements[i].value;
		}
		//}
	}
	return args;
}

function validateForm(args, validSpec, ifFailed) {
	$(".validError").removeClass("validError");
	if (args.tagName == "FORM") {
		args = collectForm(args);
	}
	validSpec = typeof(args)=="string" ? JSON.parse(validSpec) : validSpec;
	
	var errors = [];
	
	for (var field in validSpec) {
		var fieldSpec = validSpec[field];
		var missing = false;
		
		if (fieldSpec.required) {
			if (!args[field]) {
				errors.push({field: field,
					error: "missing",
					description: "'"+field+"' is missing"
				});
				missing = true;
			}
		}
		if (!missing && fieldSpec.regexp) {
			if (!new RegExp(fieldSpec.regexp).test(args[field])) {
				errors.push({field: field,
					error: "failedRegexp",
					description: "'"+field+"' is not in the required format"
						+ (fieldSpec.regexpExplain ? " ("+fieldSpec.regexpExplain+")" : "")
				});
			}
		}
	}
	
	if (errors.length>0) {
		if (ifFailed) {
			return ifFailed(errors);
		}
		else {
			var str = "The form had the following issues:\n\n";
			for (var i in errors) {
				str += "\t- "+errors[i].description+"\n";
				$("input[name="+errors[i].field+"]").addClass("validError");
			}
			alert(str);
			$("input[name="+errors[0].field+"]").focus();
			return false;
		}
	}
}

