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

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);
	//alert(tar.size());
	$(tar).contents().remove();
	html = html.replace("\n","");
	if(html.substr(0,1)!="<" && tar.attr("tagName").toLowerCase()=="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(delim);
		//str+='\n'+parts[0]+delim+parts[1];
		if(parts[0]==which) return classes[i].replace(parts[0]+delim,"");
	}
	//alert(str);
	//if(which=="bid") alert(str);
	return false;
}

function updateClass(x,part,val){
	var oldval = _val(x,part);
	if(oldval){
		$(x).removeClass(part+delim+oldval);
	}
	$(x).addClass(part+delim+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 parsePrompt(input){
	var val='';
	var $lbl= input.closest("form").find("label[for="+input.attr("id")+"]");
	if($lbl.size()){
		var prmpt= $lbl.text();
		//alert(prmpt+"\n"+prmpt.indexOf(":"));
		if(prmpt.indexOf(":")!=-1){
			prmpt= prmpt.substring(0,prmpt.indexOf(":"));
		}
		val= prmpt;
	}
	
	return val;
}

function getVal(input,display,mode){
	var val="";
	input=$(input);
	var defval = input.data("defval");
	if(!mode) mode="VIEW";
	//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");
		if(display) type= _val(input,"it");
		switch(type){
			case "textarea":
				//alert(input.val());
			case "text":
				val = input.val();
				if(mode=="PASSIVEEDIT" && display){
					if(!val.length){
						if(defval && defval!=undefined){
							val= defval;
						} else {
							val= parsePrompt(input);
						}
					}
				}
			break;
			case "hidden":
				val = input.val();
				if(display){
					val="";
					if(input.is(":hidden[name$=imageid]")){
						//alert(input.parent().attr("class")+"\n"+input.parent().html());
						if(input.parent().is(".lnk_imguploader")){
							var $img = input.parent().children("img.btn:first").filter(":visible");
						
							//alert($img.size()+"\n"+$rg.attr("class")+"\n"+$rg.attr("id"));
							
							if($img.size()){
								val= {tmbsrc:$img.attr("src"),tmbw:$img.width(),tmbh:$img.height()};
								//console.dir(val);
								//val= $img.attr("src");
							} 
						}
					} 
				}
			break;
			case "select-one":
				val = input.val();
				if(val=='0') val=parseInt(val);
				//alert('val='+val+' '+typeof val);
				if(display && val) val = $("#"+input[0].id+" option:selected").text();
				//alert('val='+val+' '+typeof val);
				if(mode=="PASSIVEEDIT" && display && !val){
					//alert('defval='+defval);
					if(defval && defval!=undefined){
						val= defval;
					} else {
						val= parsePrompt(input);
					}
				}
			break;
			case "checkbox":
				// set checkbox
				if(display) val="N";
				if(input.attr("checked")){
					val = 1;
					if(display) val="Y";
				}
			break;
		}
	}
	//console.dir({disval:val,val:input.val(),input:input});
	//if(input.attr("type")=="textarea") alert("val="+val);
	return val;	
}
	
function setVal(input,val){
	input=$(input);
	if(!input.size()){
		//if(console) console.dir({'missing_input':input});
		return false;
	}
	// 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")==undefined){
			//if(console) console.dir({'missing_input_id':input});
			return false;
		}
	
		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":
				
				if(input.is(":hidden[name$=imageid]")){
					//console.dir({'input':input,'val':val});
					if(input.parent().is(".lnk_imguploader") && typeof val=='object'){
						var $img = input.parent().children("img.btn:first");
						//alert($img.size()+"\n"+input.parent().attr("class")+"\n"+input.parent().html());
						if(!$img.size()){
							input.parent().prepend("<img src='' class='btn'>");
							$img= input.parent().children("img.btn:first");
						}
						
						$img.attr({src:val.tmbsrc,width:val.tmbw,height:val.tmbh});
						$img.parent().css({height:val.tmbh});
						input.val(val.imageid);
					} else{
						input.val(val);
					}
				} else {
					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");
		}
	}
}

function numberFormat(nStr,prefix){
    var prefix = prefix || '';
    nStr += '';
    x = nStr.split('.');
    x1 = x[0];
    x2 = x.length > 1 ? '.' + x[1] : '';
    var rgx = /(\d+)(\d{3})/;
    while (rgx.test(x1))
        x1 = x1.replace(rgx, '$1' + ',' + '$2');
    return prefix + x1 + x2;
}
