
var thisRok		= "";
var thisBlok		= "";
var nextRok	= "";
var nextBlok	= "";
var thisControlType;
var blokid=0;

function dom(x){ // returns dom obj
	switch(typeof x){
		case "object":
			if(x.id==undefined && x[0]!=undefined) return x[0];
		break;
		case "string":
			return document.getElementById(x.replace("#",""));
		break;
	}
	return x;
}

function jq(x){ // returns jquery obj
	switch(typeof x){
		case "object":
			if(x.id!=undefined) return $('#'+x.id);
		break;
		case "string":
			if(x[0]!='#') x = '#'+x;
			x = $(x);
			return x;
		break;
	}
	return x;
}

function _filter(tip,selector){
	tip = jq(tip);
	return tip.find(selector).andSelf().filter(selector);
}

function replaceContents(tar,html,edited){
	var tar = jq(tar);
	$(tar).contents().remove();
	html = html.replace("\n","");
	if(html.substr(0,1)!="<" && tar.attr("tagName")=="TABLE"){
		html = "<tr><td>"+html+"</td></tr>";
	}
	$(tar).prepend(html);
	
	//alert($(tar).html());
	/*
	$(tar).contents().each(function(e){
		$(this).prepend("<span class=edited>"+this.tagName+"</span>");
	});
	*/
	if(edited) $(tar).addClass('edited');
	init($(tar));
}

function stopDef(e) {
	if (e &&e.preventDefault) e.preventDefault();
	else if (window.event && window.event.returnValue)
	window.eventReturnValue = false;
}

function isa(what,x){
	//x = jq(x);
	//alert(what+" "+x);
	if($(x).hasClass(what)) return true;
	return false;
}

function _handler(frm){
	var handler = jq(frm).find(":input[name=handler]").val();
	return handler;
}


function _tag(x,which){
	var wpr = eval('wrapper_'+which);
	var temp = new Array();
	temp = x.id.split(wpr);
	//alert("id="+id);
	var tag = wpr + temp[1] + wpr;
	return tag;
}

function _val(x,which){
	x = $(x);
	//if(what=='loc') alert($(obj).attr("class"));
	if(!x || $(x).attr("class")==undefined) {
		dump(x,"X");
		alert("don't have an x in _val, which="+which);
		return false;
	}
	var classes = x.attr("class").split(" ");
	//if(which=="bid") alert(x.attr("class"));
	//var str='';
	for(var i=0;i<classes.length;i++){
		var parts = classes[i].split(":");
		//str+='\n'+parts[0]+":"+parts[1];
		if(parts[0]==which) return classes[i].replace(parts[0]+":","");
	}
	//if(which=="bid") alert(str);
	return false;
}

function updateClass(x,part,val){
	var oldval = _val(x,part);
	if(oldval){
		$(x).removeClass(part+":"+oldval);
	}
	$(x).addClass(part+":"+val);
}

function trim(str, chars) {
	return ltrim(rtrim(str, chars), chars);
}
 
function ltrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
 
function rtrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

function _classStr(obj){
	var classes = $(obj).attr("class").split(" ");
	return classes;
}

function wrapRok(id){
	return wrapper_rok + id + wrapper_rok;
}

function wrapBlok(id){
	return wrapper_blok + id + wrapper_blok;
}

function rokName(rokTag){
	var temp = new Array();
	temp = rokTag.split(wrapper_rok);
	return temp[1];
}

function padString(str,len){
	var strlen = len;
	while(str.length <= strlen){
		str += "&nbsp;";
		strlen ++;
	}
	return str;
}		
		
			
function isEnter(e){
	if(e.which==13)	return true;
	return false;
}	

function isTab(e){
	//alert("e="+e.which);
	if(e.which==9)	return true;
	return false;
}			


function inEditMode(x){
	if(isa("inEditMode",x)||isa("TG0",x)) return true;
	return false;
}

function mySerializeArray(frm){
	frm=$(frm);
	var data = new Array();
	frm.find(":input").each(function(e){ 
		var myname = this.name;
		var myval = getVal($(this));
		//if(myname.indexOf("te_blob")!=-1) alert(this.id+' \n'+myname+'='+myval+'\n'+this.tagName);
		data.push({name:myname,value:myval }); 
	});
	//dump(data,"in mySerialize");
	return data;
}

function getVal(input,display){
	var val="";
	input=$(input);
	//if($('#'+rokid).attr("type")!="hidden") alert("rokname="+rokName(rokid)+" : " + $('#'+rokid).attr("type"));
	// if display is set to one, return display value
	// if display is not set, return db value
	if(isa("mce",input)){
		//alert(input[0].id);
		val = tinyMCE.get(input[0].id).getContent();
	} else {
		var type = input.attr("type");
		switch(type){
			case "textarea":
				//alert(input.val());
			case "text":
			case "hidden":
				val = input.val();
			break;
			case "select-one":
				val = input.val();
				if(display) val = $("#"+input[0].id+" option:selected").text();
			break;
			case "checkbox":
				// set checkbox
				if(display) val="N";
				if(input.attr("checked")){
					val = 1;
					if(display) val="Y";
				}
			break;
		}
	}
	//if(input.attr("type")=="textarea") alert("val="+val);
	return val;	
}
	
function setVal(input,val){
	input=$(input);
	// if display is set to one, return display value
	// if display is not set, return db value
	if(isa("mce",input)){
		//alert(input[0].id+' '+val);
		tinyMCE.get(input[0].id).setContent(val);
	} else {
		
		if($(input).attr("id").indexOf("__is_")!=-1){
			var chkid = $(input).attr("id").replace("__is_","__chk_is_");
			var chk = jq(chkid);
			if(chk.size()>0) setVal(chk,val);
		}
		
		switch($(input).attr("type")){
			case "select-one":
				var op = input.find("option[value="+val+"]");
				if(op.size()==0) input.append("<option value='"+val+"'>Loading</option>");
				input.val(val);
			case "textarea":
			case "text":
			case "hidden":
				input.val(val);
				
			break;
			case "checkbox":
				// set checkbox
				$(input).val(val);
				var checked = false;
				if(val==1) checked=true;
				//alert("in common");
				if(val) $(input).attr("checked",checked);
					
			break;
		}
		
	}
	
	if(input.hasClass("chnd")){
		var to = _val(input,"chndto");
		if(to){
			to = $('#'+to);
			//alert("before:"+_val(to,"v1"));
			updateClass(to,"v1",val);
			to.removeClass("loaded");
			//alert("after:"+_val(to,"v1"));
		}
	}
	//alert("val="+val);
}


function pid_(tar,pid){
	tar = $(tar);
	//alert(tar.attr('id')+' '+pid);
	//alert(tar.find(":input[name$=parentid]").size());
	tar.find(":input[name$=parentid]:first").val(pid);
	updateClass(tar,"pid",pid);
}

function justAdded(){
	//alert("in just added");
	var $blok=$('#justadded div.blok');
	var bloktag = blokTag($blok[0].id);
	$('#justadded').attr('id','li'+bloktag);
	
	//  if new item in edit mode, disable the rest
}


function setRequired(rokdivid){
	// VALIDATION
	// check to see if it's required
	var rokid = rokTag(rokdivid) + blokTag(rokdivid);
	//alert("required rokid="+rokid);
	if ($("#" + rokid +'_valid').is("input.valid")) {
		if(!$("#" + rokid).hasClass("required")){
			$("#" + rokid).addClass("required");
			$("#" + rokdivid).addClass("required");
		}
	}
}