/***************************************
Click auf Checkbox
***************************************/
function check_changeVal( event, obj ){
	if(event==null) event = window.event;
	var e = event;
	if( e == null) return;
	
	var src = obj;
	if(e != null && src == null ){
		e.cancelBubble = true;
		src = e.srcElement ? e.srcElement : e.target;
	}
	
	
	while(src!=null && src.tagName != "SPAN"){
		src = src.parentNode;
	}
	if(src == null) return;
	
	
	var i = src.lastChild;
	
	var inamep = i.nameProp ? i.nameProp : (i.src.substring(i.src.lastIndexOf("/")+1));
	var curVal = parseInt(inamep.substr(0, inamep.indexOf(".")));
	if(isNaN(curVal)) curVal = 0;

	var maxVal = parseInt(src.maxVal);
	if (maxVal == 2) {
		switch (curVal) {
			case 0: curVal = 2; break;
			case 1: curVal = 0; break;
			case 2: curVal = 1; break;
		}
	} else {
		curVal++;
	}
	$(src).trigger("change");
	check_setValue(src, curVal);
}



/***************************************
Keydown auf einer CheckBox
***************************************/
function check_keyPress(event, checkBoxElement, value){
	var ev = event;
	if(ev == null) ev = window.event;
	if(ev == null) return;
	
	var src = ev.srcElement ? ev.srcElement : ev.target;
	
	if( src!=null && src.tagName=="SPAN" ){
		var cc = ev.which != null ? ev.which : ev.keyCode;
		if(cc==13 || cc==32){
			ev.returnValue = false;
			ev.cancelBubble = true;
			
			var r = src.lastChild.parentNode;
			if(r.fireEvent){
				r.fireEvent("onclick");
			}else{
				r.onclick(ev);
			}
			
		}
	}
}

/***************************************
Ermittelt den Wert einer CheckBox
----------------------
checkBoxElement = SPAN-Element
***************************************/
function check_getValue(checkBoxElement){
	if (checkBoxElement == null) return;
	var s = $(checkBoxElement).closest("SPAN");
	var v = s.children("INPUT:hidden").val();
	if(v){
		return parseInt(v);
	} else {
		var sr = s.children("IMG").attr("src");
		if (sr) {
			var srl = sr.length;
			if (srl > 6 && sr.substr(srl - 4) == ".gif" && sr.substr(srl - 6, 1) == "/") {
				var r = parseInt(sr.substr(srl - 5, 1));
				if (!isNaN(r)) {
					return r;
				}
			}
		}
		return;
	}
}


/***************************************
Setzt den Wert einer CheckBox
----------------------
checkBoxElement = SPAN- oder INPUT-Element
value = neuer Wert
***************************************/
function check_setValue(checkBoxElement, value){
	if (checkBoxElement == null) return;
	var $cb = $(checkBoxElement).closest("SPAN");

	var maxVal = parseInt($cb.attr("maxVal")) || 1;
	if (value > maxVal) value = 0;

	var $img = $cb.find("INPUT").val(value).end().find("IMG:eq(0)");
	var src = $img.attr("src") || "";
	src = src.substr(0, src.lastIndexOf("/") + 1) + value + ".gif";
	$img.attr("src", src);
}
