function initRoks(tip,disable){
	//if(isa("rok",tip)) initRok(tip,disable);
	//$(tip).find(".rok").each(function(e){ initRok(this,disable); });
}

function initRok(rok,disable){
	var mode = _val(rok,"md");
	
	//$(rok).append("<span>"+mode+"</span>");
	//$(rok).filter(".required").find(":input:not(:hidden)").each(function(){ initInputValidation(this)});
	
}
function rokClick(){
	
}

function initRokValidation(input){
	input = $(input);
	var rok = input.parents(".rok");
	
	if(rok.hasClass("rokValidation_inited")){
		rokValidationReset(rok);
	} else {
		var asterisk = "<strong>*</strong>";
		rok.find("label").html(rok.find("label").html().replace(":",asterisk+":"));
		initInputValidation(input);
		input.unbind();
		input.blur(function(){ 
			rokValidate($(this).parents(".rok")); 
		});
		input.keydown(function(e){
			if(!isTab(e)){
				//alert("keydown");
				if(isEnter(e)){
					rokValidate($(this).parents(".rok"));
				} else {
					rokValidationReset($(this).parents(".rok")); 
				}
			}
		});
		input.change(function(e){
			rokValidationReset($(this).parents(".rok")); 
			rokValidate($(this).parents(".rok"));
		});
		rok.addClass("rokValidation_inited");
	}
}


function rokValidationReset(rok){
	rok = $(rok);
	//alert("resetting rok");
	rok.removeClass('valid');
	rok.removeClass('invalid');
	rok.removeClass('validated');
	rok.find(".vMsg").remove();
}



function rokValidate(rok){
	//_rok(rok,"input").unbind();
	rok = $(rok);
	if(!rok.hasClass("validating") && !rok.hasClass("validated")){
		//alert("validating");
		rokValidationReset(rok);
		rok.addClass('validating');
		rokValidationMsg_(rok,'validating...','validating');
		//alert(_rok(rok,"id")+"\n"+_rok(rok,"iptid"));
		var value = _rok(rok,"value");
		var rid = _val(rok,"rid");
		var handler = "validateRok";
		var tar = _rok(rok,"id");
		var data = {tar:tar,rid:rid,value:value,handler:'validateRok'};
		$.post("ajax.php", data, rokValidated,'json');
		//$.post("ajax.php?debug=1", data, rokValidated, null);
	}
}




function rokValidated(response){
	dump(response);
	//alert("validated");
	var rok = jq(response.tar);
	if(rok.size()==1){
		rok.removeClass("validating");
		rok.addClass("validated");
		if(response.success){
			cls = 'valid';
		} else {
			cls = 'invalid';
		}
		rok.addClass(cls);
		rokValidationMsg_(rok,response.msg,cls);
	} 
}

function rokValidationMsg_(rok,msg,cls){
	var span = "<span class=\"vMsg "+cls+"\">&nbsp;"+msg+"</span>";
	var vmsg = rok.find(".vMsg");
	//ipt.after(span);
	if(vmsg.size()==0){
		var ipt = _rok(rok,"input");
		ipt.after(span);
	} else {
		vmsg.replaceWith(span);
	}
}

function _rok(rok,what){
	rok = $(rok);
	var id = rok.attr("id");
	var iptid = id.replace("rok","");
	var input = jq(iptid);
	switch(what){
		case "value":
			return getVal(input);
		break;
		default:
			return eval(what);
		break;
	}
	
}
