function initControls(tip,disable){
	if(isa('ctrl',tip)) initControl(ctrl,disable);
	//alert(appMode);
	//console.dir({'tip':tip});
	var ctrls = $("#"+tip[0].id+ ' .ctrl').each(function(e){ initControl(this,disable); });
}

function initControl(ctrl,disable){
	ctrl = $(ctrl);
	ctrl.unbind();
	var ct = _val(ctrl,'ct');
	if(ct=='appMode') {
		$(ctrl).removeClass("selected");
		if($(ctrl).val()==appMode){ $(ctrl).addClass("selected"); }
	}
	
	if(_ctrlShow(ctrl)){
		
		ctrl = $(ctrl);
		if($(ctrl).hasClass("hidden")) $(ctrl).removeClass("hidden");
		$(ctrl).show();
		if(disable) {
			$(ctrl).addClass('ui-state-disabled');
			$(ctrl).attr("enabled","disabled");
		} else {
			//alert(ctrl.attr("class")+"\n"+"frm"+delim+"modal\n"+ctrl.hasClass("frm"+delim+"modal").toString());
			$(ctrl).removeClass('ui-state-disabled');
			$(ctrl).attr("enabled","enabled");
			if(ctrl.hasClass('frm'+delim+'post')){
				ctrl.click(function(e){ stopDef(e); $("#frm_"+_val(ctrl,'ct')).submit(); });
			} else if(_val(ctrl,'href')){
				ctrl.click(function(e){ stopDef(e); document.location = _val($(this),"href"); });
			} else if(ctrl.hasClass('frm'+delim+'modal')){
				//alert(_val(ctrl,"ct"));
				ctrl.click(function(e){ 
					//alert("hi");
					stopDef(e);
					var dia = $("#dia_frm_"+_val($(this),'ct'));
					mfButtons_(dia,"Login");
					dia.dialog('open');
				});
			} else {
				ctrl.click(function(e){ controlClick(this,e); });
			}
		}
	} else {
		$(ctrl).hide();
	}
	return false;
}


function loadForm(response){
	$('body').append(response.frm);
	//alert(response.frm);
	init($("#dia_"+response.id));
	$("#app .ctrl.loadingForm").removeClass("loadingForm").trigger("click");
}
function controlClick(x,e){
	var ct = _val(x,'ct');  // ct = ctrl type
	//alert('ct='+ct);
	//alert($(x).attr("class"));
	var loc = _val(x,'loc');
	var grploc = _val(x,'grploc');
	var tar = _val(x,'tar');
	var pid = _val(x,'pid');
	var btn = $(x);
	var cg = $(btn).parents(".ctrlgrp");
	var xbkt = $("#"+tar);
	var mb = $(xbkt).parents(".moxblok");
	var $tar=$("#"+tar);
	var cust= btn.metadata().cust;
	if(cust==="override") ct+='_custom';
	var cust_called=false;
	//alert(tar);
	//alert(btn);
	//alert(cg.size());
	switch(ct){
		case "appMode":
			if(appMode==x.value){
				xbukketClick(e);
			} else {
				if(x.value!="SEO"){
					//alert(x.value);
					appMode = x.value;
					$.post("ajax.php", {appMode:appMode, handler:'appModes'});
					init();
				} else {
					var frm = 'frm_pageSEO';
					var dia = $('#dia_'+frm);
		
					mfButtons_(dia,"SC");
					dia.dialog('open');
					//alert("SEO");
				}
			}
			break;
		case "xblokADD":
			var cn = xbkt.metadata().cn;
			if(!cn) cn='';
			var frm = 'frm_xblokADD__'+loc+'-'+cn;
			if(!$("#"+frm).size()) {
				frm= 'frm_xblokADD__'+grploc+'-'+cn;
			}
			var dia = $('#dia_'+frm);
			var $frm = $('#'+frm);
			
			//console.dir(xbkt.metadata());
			if(xbkt.metadata().savereplace!=undefined) {
				$replace= $(":input[name=replace]",$frm);
				if(!$replace.size()){
					$frm.append("<input type='hidden' name='replace' value=''>");
					$replace= $(":input[name=replace]",$frm);
				}
				$replace.val(xbkt.metadata().savereplace);
				
				//alert("size of replace field="+$replace.size());
				//alert("size of replace field="+$replace.size());
				//return false;
			}
			//alert(dia.size());
			if(!dia.size()){
				var url = "ajax.php";
				$(x).addClass("loadingForm");
				var data = { pls:'form', 'id':frm };
				$.get(url, data , function(response){ loadForm(response); } ,"json");
				return false;
			} else {
				//alert(frm+ $("#"+frm).size());
				$('#'+frm+' :input[name=tar]').val(tar);
				$('#'+frm+' :input[name=loc]').val(loc);
				mfButtons_(dia,"SC");
				dia.dialog('open');
			}
			break;
		
		case "xbktpagmr":
			var paginator = $(x).parents('div.paginator');
			var pagxbkt = $(paginator).children('.pagxbukket');
			$(x).siblings().removeClass("ui-pagmr-control-disabled");
			
			//alert($(paginator).size());
			var mr = parseInt($(x).text());
			//alert(" tr="+_val(pagxbkt,'pagtr'));
			var tr = parseInt(_val(pagxbkt,'pagtr'));
			var np = Math.ceil(tr/mr);
			var sr = cp = 0;
			//alert("mr="+mr+" tr="+tr);
			updateClass(pagxbkt,'pagmr',mr);
			updateClass(pagxbkt,'pagnp',np);
			updateClass(pagxbkt,'pagcp',cp);
			$(x).addClass("ui-pagmr-control-disabled");
			//alert($(pagxbkt).attr('class'));
			$(pagxbkt).pagination('force-change', { pages:np, current:cp });
			initPaginator($(paginator));
		break;
		case "xbktQE":
			if($(x).hasClass("qeMode")){
				xbktQEOn(x,xbkt);
	
			} else {
				xbktQEOff(x,xbkt);
			}
			break;
		case "xbktQD":
			if($(x).hasClass("qdMode")){
				xbktQDOn(x,xbkt);
		
			} else {
				xbktQDOff(x,xbkt);
			}
			break;
		case "xbktSORT":
			var xbkt = $("#"+tar);
			//var cg = $(x).parent(".ctrlgrp");
			//alert($(cg).size());
			if($(x).hasClass("sortMode")){
				$(x).removeClass("sortMode");
				$(x).text("SORT");
				xbukketEnterSortMode(xbkt,false);
				//init(xbkt,false);
				xbktEnable(xbkt,true);
				//init(cg,false);
			} else {
				xbktEnable(xbkt,false);
				initControl(x);
				//init(cg,true);
				$(x).text("Done Sorting");
				$(x).addClass("sortMode");
				xbukketEnterSortMode(xbkt,true);
				//$(xbkt).sortable('enable');
			}
			break;
		default:
			cust_called=true;
			custom_controlClick(x,e);
			break;
	}
	if(cust==="append" && !cust_called) custom_controlClick(x,e);
	return false;
}


function _ctrlShow(ctrl){
	ctrl = $(ctrl);
	var am = _val(ctrl,'am').toLowerCase();
	if(appMode.toLowerCase() != am && am!='all') return false;
	var cg = _val(ctrl,'cg');
	var ct = _val(ctrl,'ct');
	if(cg=='xbkt') {
		var tar = _val(ctrl,"tar");
		var xbkt = $("#"+tar);
		switch(ct){
			case "xblokADD":
				var datmax = _val(xbkt,'datmax');
				datmax = parseInt(datmax);
				var datmin = _val(xbkt,'datmin');
				datmin = parseInt(datmin);
				var len 	= _xbkt(xbkt,'len');
				//alert('tar='+tar+' max='+datmax+' and len='+len);
				if((len>=datmax && datmax!=0) || (datmax==0 && datmin==0)) return false;
				//alert(ctrl.text()=="ADD REQUEST");
				if(trim(ctrl.text())=="ADD REQUEST") return false;
			break;
		}
	}
	return true;
}

function _tagPart(tag,part){
	if(!part) part=1;
	var parts = tag.split("-");
	return parts[part];
}

function xbktQEOn(x,xbkt,cancel){
	$(x).removeClass("qeMode");
	$(x).text("QUICK EDIT");
	
	var btnid = $(x).attr("id")+"_cancel";
	var btn = jq(btnid);
	btn.remove();
	
	xbukketEnterQEMode(xbkt,false,cancel);
	xbktEnable(xbkt,true);
}

function xbktQEOff(x,xbkt){
	xbktEnable(xbkt,false);
	
	initControl(x);
	$(x).text("SAVE EDITS");
	$(x).addClass("qeMode");
	xbukketEnterQEMode(xbkt,true);
	
	var btn = $(x).clone();
	btn.text("CANCEL");
	btn.attr("id",$(x).attr("id")+"_cancel");
	$(x).after(btn);
	btn.click(function(e){ xbktQEOn(x,xbkt,true); });
	
}

function xbktQDOn(x,xbkt,cancel){
	xbktEnable(xbkt,true);
	$(x).removeClass("qdMode");
	$(x).text("QUICK DELETE");
	
	var btnid = $(x).attr("id")+"_cancel";
	var btn = jq(btnid);
	btn.remove();
	
	xbukketEnterQDMode(xbkt,false,cancel);
	
}

function xbktQDOff(x,xbkt){
	xbktEnable(xbkt,false);
	
	initControl(x);
	$(x).text("SAVE DELETES");
	$(x).addClass("qdMode");
	xbukketEnterQDMode(xbkt,true);
	
	var btn = $(x).clone();
	btn.text("CANCEL");
	btn.attr("id",$(x).attr("id")+"_cancel");
	$(x).after(btn);
	btn.click(function(e){ xbktQDOn(x,xbkt,true); });
	
}




