
 var rmsObject = {
 	'txtPos' 			: null,
	'ajaxUrl'   		: 'rmsAjaxRequests.php',
	'wait'   	        : '<span class="waitText">Updating ... </span><img src="../admin/images/pleasewait2.gif" title="Please Wait" align="right"/>',
	'GRAPHICS_PATH' 	: '../images/graphics/',
	'ICON_PATH'     	: '../images/icons/',	
	'plusimg'   		: GRAPHICS_PATH + 'plus.png',
	'minusimg'  		: GRAPHICS_PATH + 'minus.png',
	'waitPos'   		: 'ajaxWait',
	'bcid'      		: 'brdCrumb',
	'FCKeditorAPI' 	: '',
	'errorDiv'        : 'ajaxErrors',
	'query'           : {},	 
	
	init : function(){
		return this;
	},
	
	//get data based on passed parameters
	requestData : function(parms){		
		var mytime 		= new Date().getTime();
		var query  		= Object.isString(parms) ? unescape(parms).toQueryParams() : parms;
		var where  		= isset(query.url) ? query.url: this.ajaxUrl;
		func       		= isset(query.func) ? query.func : 'doNothing';
		query.divid   	= $(query.divid) ? query.divid : (isset(query.sxn) ? idFromClass(query.sxn) : idFromClass(query.divid));
		query.mt   		= mytime;
		query.sxn  		= isset(query.sxn) ? query.sxn : $(query.divid).className;
		query.ajax 		= 1;
		var divid      = query.divid;
		
		clearMsgDiv();
		 var req = new Ajax.Request(where, {
			  method     : 'post',
			  parameters : query,
			  onLoading  : showWait,
			  onLoaded   : hideWait,
			  onSuccess  : function(response){
					$(divid).innerHTML = '';
					new Insertion.Top(divid,response.responseText);
					//$(divid).innerHTML = response.responseText;
			  },
			  onComplete : function(){
					explorerTreeRefreshAll();
			  }
		 });
		 var rt = '';
	},
	//update record field in database table
	updateField : function(parm){	  
		var query     = this.initVars(parm.toQueryParams()); 		
		this.clearMsgDiv();
 		var reg = new Ajax.Request(this.ajaxUrl,{
			 method     : 'Post',
			 parameters : query,
			 onLoading  : doWait,
			 onLoaded   : doWait,
			 onSuccess  : function(response){ 
			   var pos = $('ajaxErrors');
			 	var data = response.responseText.evalJSON();				 
				if(isset(data.showUpRes) && parseInt(data.showUpRes) == 1){
					if(query.showMsg){
						var disp = val.toString().truncate(30, ' [...]');
						var out  = '1 . Updating record ' + id + ' in table ' + table + ', setting ' + fld + ' = ' + disp;
						pos.innerHTML  = out;
						pos.className  = 'showPass';
						pos.show();
					}
				}
			},
			onComplete: function(){
				 resetTableSort();
			}
		});
 	},
 
	initVars : function(obj){
		obj         = isset(obj)         ? obj : {};
		obj.showMsg = isset(obj.showMsg) ? parseInt(obj.showMsg) : 1;
		obj.where   = isset(obj.where)   ? obj.where : '';		
		obj.force   = isset(obj.force)   ? obj.force : 0;
		obj.action  = isset(obj.action)  ? obj.action : 'toggle';
		
		return obj;
	},
	//clear/hide messages
 	clearMsgDiv : function(){
		var flds = ['rmsErrors','ajaxErrors'];
		for(var e=0; e<flds.length; e++){
			var pos = $(flds[e]);
			if(pos) {
				pos.innerHTML = '';
				pos.hide();
			}
		}
	},
	//show animated gif
	doWait: function(show,pos){
		var divWait = isset(pos) ? $(pos) : $(this.waitPos); 
		if(divWait != null){
			if(parseInt(show)){
				divWait.innerHTML = this.wait;
				divWait.show();
			}else{
				divWait.innerHTML = '&nbsp;';
			}
		} 
	},

	//get page details when pagination is done by MySQL query
	pageNav : function (pag, parm, divid,pref) {
		var posid = '';
		posid     = $(divid) ? divid : idFromClass(divid);		   
		var tmp   = parm.toQueryParams();
		tmp.alpha = $('hiddenAlpha') ? $F('hiddenAlpha') : '';
		var num   = tmp.page;
		var cur   = tmp.cur ? tmp.cur : ($('page_' + num) ? 'page_' + num : '');
		var pgInp = $('cpage');
		if(pgInp){
			$('cpage').value = num;
		}
		makeActive(cur, pref, 'li[id ^= '+pref+']');
		
		tmp.divid = posid;
		tmp.url   = pag;
		tmp.sxn   = divid;
		this.requestData(tmp);
		//requestData(pag, parm, 'Post', posid);
	},
	//show/hide osition and change images src
	toggleSwitch : function (im, dv) {
		 var obj = $(im);
		 var pos = $(dv);
		 var sc  = obj.src;
		 var rep = '';
		 if(pos.visible()) {
			  rep = sc.replace('minus.png', 'plus.png');
			  pos.hide();
		 } else {
			  rep = sc.replace('plus.png','minus.png');
			  pos.show();
		 }
		 obj.src = rep;
	},
	
	//page navigation when paginating by body tags
	nextPage : function(page,prefix){
		var bdys = $$('tbody[id ^= '+prefix+']');
		var nums = $$('li[id ^= li'+prefix+']');
		curBody  = parseInt(page) - 1;  
		bdys.invoke('hide');
		nums.invoke('removeClassName','active');
		
		$(prefix+page).show();
		$('li'+prefix+page).addClassName('active');
	},
	
	readText : function(pos,prefix){
	   var posid = prefix+pos;
		var cur   = $(posid);
		if(cur.visible()){
			//cur.hide();
			Effect.SlideUp(posid);
		}else{
			var obj = $$('span[id ^='+prefix+']').invoke('hide');		
			//cur.show();
			Effect.SlideDown(posid);
			//Effect.ScrollTo(cur.id);
		}
		
	},
	
	//displays pass or error messages and assigns the appropriate class
	showMsg : function(msg,divid,typ){
		typ     = isset(typ) 	? parseInt(typ) : 1;
		msg     = isset(msg) 	? msg 			 : '';
		divid   = isset(divid) 	? divid		 	 : this.errorDiv;
		var className;
		
		switch(typ){
			case 3:
			case 1: 	className = 'showErrors';	break;
			case 2: 	className = 'showPass';		break;
			case 4: 	className = 'showWarn';		break;		
		}
		
		new Ajax.Request(this.ajaxUrl,{
			parameters : {'action': 'setError','errorType':typ,'msg':msg},
			onSuccess  : function(response){
				var data 	  = response.responseText.evalJSON();
				var pos 		  = $(divid);
				pos.innerHTML = data.msg;
				pos.className = className;
				pos.show();	
			}
		});
	 
	},
		
	getSelRadio : function(dd) {
		var rads = $$('input[id ^='+dd+']');
		var ret;
		for ( var i = 0; i < rads.length; i++) {
			var e = rads[i];
			if (e.checked) {
				ret = e;
				break;
			}
		}
		return ret;
	},
	
	toggleView : function(imgBtn,obj){
		var imgSrc = $(imgBtn).src;
		if($(obj).visible()){
			$(imgBtn).scr= imgSrc.replace('minus','plus');
		}else{
			$(imgBtn).scr= imgSrc.replace('plus','minus');
		}
		$(obj).toggle();
	},
	
	showTool: function(ee,pp,show){
		$('showTool').value = show;
		showAdminTabs(ee,pp);
	
	},
//******* create buttons *******/
	makeBtn: function(){
		var html = '<a href="#{hh}" id="#{aa}" class="#{bb}"><i></i><span><span></span><i></i>#{cc}</span></a>';	
		var html2 = '<i></i><span><span></span><i></i>#{cc}</span>';
		var html3 = '<i class="rnd"></i><span class="rnd"><span></span><i></i>#{cc}</span>';
		var html4 = '<div id="#{aa}" class="autornd"><i class="rnd"></i><span class="rnd"><span></span><i class="rnd"></i>#{cc}</span></div>';
		//var elem = $$('input['+attrib+' ^='+prefix+']','a['+attrib+' ^='+prefix+']');
		var elem   = $$('#hozMenu a');
	//	var blks   = $$('div [class$=autornd]');
		var ulElem = $('hozMenu');
		var str    = '';
		
		/*blks.each(function(yy){
			var txt   = yy.innerHTML;
			var temp  = new Template(html3);
			var vars  = {aa:yy.id+'_rep', bb:yy.className, cc : txt};
			var str   = temp.evaluate(vars);
			//yy.insert({'after':str});
			//yy.remove();
			//yy.removeClassName('autornd');
			yy.innerHTML = str;
		});
		*/
		elem.each(function(xx){
			//var btype     = xx.type.toLowerCase(); 
			var btype     = xx.type ? xx.type.toLowerCase() : xx.tagName.toLowerCase();
			var txt       = (btype == 'button' || btype == 'a') ? xx.innerHTML : (xx.value ? xx.value : xx.innerHTML);		
			var temp      = new Template(html2);
			var itemID    = xx.id+'_rep';
			var vars      = {aa: itemID, bb: xx.className, cc : txt, hh : xx.href};
			var str       = temp.evaluate(vars);
			xx.innerHTML  = str;
			//ulElem.insert({'after':str});
			//xx.remove();
			//pos            = $(itemID);
			
			xx.addClassName('btn nolist modColor');
			
			//xx.addClassName('nolist');	
			//xx.addClassName('modColor');			
		});
		//$('hozMenu').id ='nolist';		
 
	},
	//show HTML editor when editing compnents. Auto load contents
	showCKEditor : function(obj,fld,all){
	 obj 			= $(obj);
	 all        = isset(all) ? parseInt(all) : 0;
	 this.clearMsgDiv();
	 if(all){
		$$('div[id $= Tech]').invoke('show');
	 }else{
		 var path   = '/admin/editors/ckEditor/ckFinder/';
		 var imgscr = obj.src;
		 var newscr = '';
		 var more   = imgscr.endsWith('plus.png') ? true : false;
		 if(more){
				newscr    = imgscr.replace('plus.png','minus.png');
				var ancid = 'anc_' + fld;
				//Effect.ScrollTo(ancid);
				Effect.SlideDown(fld+'sel');
				var editor = CKEDITOR.replace(fld);
				if(CKFinder){
					CKFinder.SetupCKEditor( editor,path); 
				}
				
				
		 }else{
				newscr   = imgscr.replace('minus.png','plus.png');
				//Effect.SlideUp('rec');
				$(obj).src = plusimg;	 
		 }
	}
}
	
	
 };
 
 rms = rmsObject.init();
var btnPrefix = 'hozBtn';
 document.observe("dom:loaded", function(){
	rms.makeBtn();	 
 });
