Просмотр исходного кода

Fixes and cleanup of javascript and css.

mingodad 12 лет назад
Родитель
Сommit
87913c6560

+ 3 - 3
SquiLu-ourbiz/s/ourbiz/ajax-data-table.js

@@ -30,11 +30,11 @@ function newAjaxDataTableWindow(title){
 		data.data_table = Jaml.render('2TRDataTable', data);
 		var win = dad.newWindow(newId, 160,20, 600, 400, title, Jaml.render('AjaxDataTable', data));
 
-		var myform = $(data.form_id);
+		var myform = $id(data.form_id);
 		dad.setupEditForm(myform);
 
-		var btn = $('btnGo' + newId);
-		btn._url_input = $('url_' + newId);
+		var btn = $id('btnGo' + newId);
+		btn._url_input = $id('url_' + newId);
 		
 		btn.ajax = dad.newAjaxDataTableAjax(win, newId);
 		btn.ajax._withHeaders = true;

+ 145 - 37
SquiLu-ourbiz/s/ourbiz/app-base.js

@@ -1,6 +1,6 @@
 dad = {}
 
-function $(id){return document.getElementById(id);}
+function $id(id){return document.getElementById(id);}
 
 dad.detectEnvironment = function () {
   var n = navigator;
@@ -168,12 +168,72 @@ dad.getFirstChildWithTagName = function( element, tagName ) {
 	}
 }
 
+dad.isSpace = function( ch ) {
+		return (ch == " ") || (ch == "\t") || (ch == "\n") || (ch == "\r") || (ch == "\v");
+}
+
+dad.strHasWord = function(str, word){
+	var found = str.indexOf(word);
+	while(found >= 0) {
+		if(found == 0){
+			if( (str.length == word.length) ||
+				(dad.isSpace(str[word.length])) ) return true;
+		} else {
+			if( dad.isSpace(str[found-1]) ) {
+				if( (str.length == found+word.length) ||
+					(dad.isSpace(str[found+word.length]))) return true;
+			}
+		}
+		found = str.indexOf(word, found+1);
+	}
+	return false;
+}
+
+dad.strRemoveWord = function(str, word){
+	var found = str.indexOf(word);
+	while(found >= 0) {
+		if(found == 0){
+			if(str.length == word.length) return "";
+			if(dad.isSpace(str[word.length])) return str.substring(word.length+1);
+		} else {
+			if( dad.isSpace(str[found-1]) ) {
+				var lastPos = found+word.length;
+				if(str.length == lastPos) {
+					return str.substring(0, found-1);
+				}
+				if(dad.isSpace(str[lastPos])) {
+					return str.substring(0, found-1) + str.substring(lastPos);
+				}
+			}
+		}
+		found = str.indexOf(word, found+1);
+	}
+	return str;
+}
+
+dad.hasClass = function(elm, className) {
+	var elm_className = elm.className;
+	return elm_className && dad.strHasWord(elm_className, className);
+}
+
+dad.addClass = function(elm, className) {
+	if(dad.hasClass(elm, className)) return;
+	var elm_className = elm.className;
+	if(elm_className) elm.className = elm_className + " " + className;
+	else elm.className = className;
+}
+
+dad.removeClass = function(elm, className) {
+	elm.className = dad.strRemoveWord(elm.className, className);
+}
+
 dad.getFirstChildWithClassName = function( element, className ) {
 	if(element.childNodes){
 		var cn = element.childNodes;
 		for ( var i = 0, cnl = cn.length; i < cnl; i++ ) {
 			var elm = cn[i];
-			if ( elm.className == className ) return elm;
+			if(dad.hasClass(elm, className)) return elm;
+	
 			var found = dad.getFirstChildWithClassName( elm, className );
 			if( found ) return found;
 		}
@@ -195,7 +255,7 @@ dad.getFirstChildWithAttribute = function( element, attrName, attrValue ) {
 dad.getFirstParentWithClassName = function( element, className ) {
 	var pn = element;
 	while(pn = pn.parentNode){
-		if ( pn.className == className ) return pn;
+		if ( dad.hasClass(pn, className) ) return pn;
 	}
 }
 
@@ -245,11 +305,11 @@ dad.initTab = function(tabContainer) {
 		// Assign onclick events to the tab links, and
 			item.onclick = dad.showTab;
 		// highlight the first tab
-			if ( j == 0 ) item.className = 'selected';
-			var tabContent = $(id);
+			if ( j == 0 ) dad.addClass(item, 'selected');
+			var tabContent = $id(id);
 			table_rows[id] = tabContent;
 			// Hide all content divs except the first
-			if ( j > 0 ) tabContent.className = 'tabContent hide';
+			if ( j > 0 ) dad.addClass(tabContent, 'tabContent hide');
 			j++;
 		}
   }
@@ -263,11 +323,11 @@ dad.showTab = function() {
   var buttons = this.tabObj.buttons;
   for ( var id in table_rows ) {
 		if ( id == selectedId ) {
-			buttons[id].className = 'selected';
-			table_rows[id].className = 'tabContent';
+			dad.addClass(buttons[id], 'selected');
+			dad.removeClass(table_rows[id], 'hide');
 		} else {
-			buttons[id].className = '';
-			table_rows[id].className = 'tabContent hide';
+			dad.removeClass(buttons[id], 'selected');
+			dad.addClass(table_rows[id], 'hide');
 		}
   }
   // Stop the browser following the link
@@ -308,13 +368,13 @@ dad.dragDrop = {
 	draggedObject: undefined,
 	initElement: function (element, dragThisObj, keyboardLink) {
 		var dd = dad.dragDrop;
-		if (typeof element == 'string') element = $(element);
+		if (typeof element == 'string') element = $id(element);
 		element.onmousedown = dd.startDragMouse;
 		element.ontouchstart = dd.startDragMouse;
 		element._dragThisObj = dragThisObj;
 		if(keyboardLink) {
 			if (typeof keyboardLink == 'string')
-				keyboardLink = $(keyboardLink);
+				keyboardLink = $id(keyboardLink);
 			keyboardLink.relatedElement = element;
 			keyboardLink.onclick = dd.startDragKeys;
 		}
@@ -348,7 +408,7 @@ dad.dragDrop = {
 		dd.startX = dragThisObj.offsetLeft;
 		dd.startY = dragThisObj.offsetTop;
 		dd.draggedObject = dragThisObj;
-		obj.className += ' dragged';
+		dad.addClass(obj, 'dragged');
 		if(dragThisObj.onStartDragging)  dragThisObj.onStartDragging();
 	},
 	dragMouse: function (e) {
@@ -419,7 +479,7 @@ dad.dragDrop = {
 		removeEventMulti(document,'keypress keydown',dd.dragKeys);
 		removeEvent(document,'keypress',dd.switchKeyEvents);
 		var dobj = dd.draggedObject;
-		dobj.className = dobj.className.replace(/dragged/,'');
+		dad.removeClass(dobj, 'dragged');
 		if(dobj.onStopDragging)  dobj.onStopDragging();
 		dd.draggedObject = null;
 	}
@@ -525,7 +585,7 @@ dad.find_topmost_zindex = function() {
 
 dad.bringToFront = function(el){
 	if (typeof el == 'string')
-			el = $(el);
+			el = $id(el);
 	if(el != dad._topmost_zindex){
 		el.style.zIndex = dad.find_topmost_zindex()+1;
 		dad._topmost_zindex = el;
@@ -548,6 +608,7 @@ dad.getStyle = function(el,styleProp){
 }
 
 dad._winOnAfterResize = function(){
+/*
 	var child = this.firstChild;
 	if(child){
 		var style = this.style;
@@ -556,13 +617,24 @@ dad._winOnAfterResize = function(){
 		var newTop = parseInt(style.top)+border;
 		var newWidth = parseInt(style.width)-border;
 		var newHeight = parseInt(style.height)-border;
-		style = child.style;
+		//style = child.style;
 		var AsPixels = dad.getAsPixels;
-		style.left = AsPixels(newLeft);
-		style.top = AsPixels(newTop);
-		style.width = AsPixels(newWidth);
-		style.height = AsPixels(newHeight);
+		//child.left = AsPixels(newLeft);
+		//child.top = AsPixels(newTop);
+		//child.width = AsPixels(newWidth);
+		//child.height = AsPixels(newHeight);
 	}
+*/
+	if(this._onAfterResizeList){
+		for(id in this._onAfterResizeList){
+			this._onAfterResizeList[id]();
+		}
+	}
+}
+
+dad.addWinOnAfterResize = function(win, id, func){
+	if(!win._onAfterResizeList) win._onAfterResizeList = {};
+	win._onAfterResizeList[id] = func;
 }
 
 dad._windows = {}
@@ -572,7 +644,7 @@ dad.closeTopParent = function (child){
 	if(topParent) {
 		for(win in dad._windows){
 			if(topParent == dad._windows[win]) {
-				if(topParent.className.indexOf("mainWindow") == -1){
+				if(!dad.hasClass(topParent, "mainWindow")){
 					dad._windows[win] = null;
 					document.body.removeChild(topParent);
 				}
@@ -584,7 +656,7 @@ dad.closeTopParent = function (child){
 }
 
 dad.hideWindow = function (win){
-	if(win && (win.className.indexOf("mainWindow") == -1)){
+	if(win && (!dad.hasClass(win, "mainWindow"))){
 		win.style.display="none";
 	}
 	return false;
@@ -645,6 +717,33 @@ Jaml.register('Window', function(args) {
 			)
 		)
 	});
+
+Jaml.register('Window2', function(args) {
+		var AsPixels = dad.getAsPixels;
+		var swidth = "";
+		if(args.x > 0) swidth += "left:" + AsPixels(args.x) + ";";
+		if(args.y > 0) swidth += "top:" + AsPixels(args.y) + ";";
+		if(args.w > 0) swidth += "width:" + AsPixels(args.w) + ";";
+		if(args.h > 0) swidth += "height:" + AsPixels(args.h) + ";";
+		
+		var winOptClass = args.noWinOpt ? "noWinOpt" : "winOpt";
+		
+		div({
+				style: swidth,
+				"class":"resizeable window",
+				onAfterResize: "dad._winOnAfterResize"
+			},
+			div({style: "height:1.5em;", "class":"winTitle winHeader"},
+				args.title,
+				a({href:"#",  onclick: "return dad.closeTopParent(this)", cls: winOptClass}, "X"),
+				a({href:"#", cls: winOptClass}, "^"),
+				a({href:"#",  onclick: "return dad.hideTopParent(this)", cls: winOptClass}, "_")
+			),
+			div({style:"position:absolute;top:1.6em;bottom:0.1em;left:0.1em;right:0.1em", "class":"winContent", id:"divContent" + args.id},
+				args.content
+			)
+		)
+	});
 	
 dad.setOpacity = function setOpacity(obj, value) {
 	obj.style.opacity = value/10;
@@ -658,13 +757,14 @@ dad.newWindow = function(id,x,y,w,h,title, content, noWinOpt, noCenter){
 	elm.innerHTML = swin;
 	document.body.appendChild(elm);
 	var win = elm.firstChild;
+	win.onAfterResize = dad._winOnAfterResize;
 	elm.parentNode.replaceChild(win, elm);
 	win = document.body.lastChild;
 	win.style.position = "absolute";
 
 	win.ud = {};
-	win.ud.content = dad.getFirstChildWithClassName(win, "winContent");
 	win.ud.header = dad.getFirstChildWithClassName(win, "winHeader");
+	win.ud.content = dad.getFirstChildWithClassName(win, "winContent");
 	//set draggable
 	dad.dragDrop.initElement(win.ud.header, win);
 	win.onStartDragging = function(){
@@ -681,7 +781,7 @@ dad.newWindow = function(id,x,y,w,h,title, content, noWinOpt, noCenter){
 }
 
 dad.setContentOverflow = function(id, value){
-	var divContent = $("divContent" + id);
+	var divContent = $id("divContent" + id);
 	divContent.style.overflow = value || "auto";
 }
 
@@ -876,7 +976,7 @@ dad.getResizeDirection = function(el, evt) {
 
 dad._resizingObject = null;
 dad.getIsCalssResizeable = function(el){
-	return el.className.indexOf("resizeable") != -1;
+	return dad.hasClass(el, "resizeable");
 }
 
 dad.getWindowForChild = function(child){
@@ -1084,7 +1184,7 @@ dad.formFillByRecord = function(form, record, prefix){
 
 dad.formAjaxLoadResponse = function(id){
 	if(this.status == 200){
-		var form = $('form' + id);
+		var form = $id('form' + id);
 		var result_array;
 		if(form.processResponse){
 			result_array = form.processResponse(this.responseText);
@@ -1194,7 +1294,7 @@ dad.formOnSubmit = function(EditWindowRefresh, form, table) {
 dad.listEditWindowOnSubmitRespose = function (id) {
 	if(this.status == 200){
 		//retrieve result as an JavaScript object
-		var myform = $('form' +id);
+		var myform = $id('form' +id);
 		var record = dad.parseSLEData2Object(this.responseText);
 		if(record.changes == 1){
 			myform._dbrecord._version_++;
@@ -1225,7 +1325,7 @@ dad.setupKeyboardNavigation = function(node, extra_tags){
 }
 
 dad.onLoadInit = function(){	
-	dad.appLogShow = $("logShow");
+	dad.appLogShow = $id("logShow");
 	dad.addEventMulti(document, 'mousedown', dad.appOnMouseDown);
 	dad.addEventMulti(document, 'mousemove', dad.appOnMouseMove);
 	dad.addEventMulti(document, 'mouseup', dad.appOnMouseUp);
@@ -1259,16 +1359,16 @@ dad._getTableAndHeaderKey = function(id){
 
 dad.AjaxDataTableResizeHeader = function(id) {
 	var keys = dad._getTableAndHeaderKey(id);
-	var table_src = $(keys.table_key);
-	var table_dest = $(keys.table_header_key);
+	var table_src = $id(keys.table_key);
+	var table_dest = $id(keys.table_header_key);
 	var th0 = table_dest.tHead.rows[0].cells;
 	var th1_rows = table_src.tFoot.rows[0];
 	var th1 = th1_rows.cells;
 
 	var col_count = th0.length-1;
-	for(var i=col_count; i >= 0 && (th0[i].className == "display_none"); --i, --col_count){};
+	for(var i=col_count; i >= 0 && (dad.hasClass(th0[i], "display_none")); --i, --col_count){};
 	for(var i=0; i < col_count; ++i){
-		if(th0[i].className == "display_none") continue;
+		if(dad.hasClass(th0[i], "display_none")) continue;
 		th0[i].style.width = (th1[i].offsetWidth -3) +'px';
 	}
 }
@@ -1354,7 +1454,8 @@ dad.formatBoolean = function(v){
 
 dad.fillTableById = function(records, id){
 	var keys = dad._getTableAndHeaderKey(id);
-	var table = $(keys.table_key);
+	var table = $id(keys.table_key);
+	table.style.display = "none";
 	var header_title_col = 1
 	var record_header = table.my_record_header;
 	if(!record_header) {
@@ -1370,7 +1471,7 @@ dad.fillTableById = function(records, id){
 	var first_row_click_cb = table.first_row_click_cb;
 	var selection_click_cb = table.selection_click_cb;
 	var th_row = table.tFoot.rows[0];
-	if(!dad.isFF) th_row.style.visibility = "hidden";
+	/*if(!dad.isFF)*/ th_row.style.visibility = "hidden";
 	var th_cells = th_row.cells;
 	var tBody = table.tBodies[0];
 	try { 
@@ -1383,7 +1484,7 @@ dad.fillTableById = function(records, id){
 	}
 	var rows = tBody.rows;
 
-	var table_header = $(keys.table_header_key);
+	var table_header = $id(keys.table_header_key);
 	var th_header_row = table_header.tHead.rows[0];
 	var th_cells_header = th_header_row.cells;
 	
@@ -1408,7 +1509,7 @@ dad.fillTableById = function(records, id){
 			}
 		}
 		if(ar[2] && ar[2] == "0"){
-			new_th.className = "display_none";//hide the col
+			dad.addClass(new_th, "display_none");//hide the col
 		}
 		var format = ar[4];
 		if(format == "M") myColsFormat[i] = dad.formatCurrency;
@@ -1431,7 +1532,7 @@ dad.fillTableById = function(records, id){
 			var tr = rows[i];
 			if(!tr){
 				tr = tBody.insertRow(-1);
-				if(i%2) tr.className = "odd";
+				if(i%2) dad.addClass(tr, "odd");
 				if(row_over_cb) tr.onmouseover = row_over_cb;
 				if(row_click_cb) tr.onclick = row_click_cb;
 				else if(row_dblclick_cb) tr.ondblclick = row_dblclick_cb;
@@ -1463,10 +1564,12 @@ dad.fillTableById = function(records, id){
 			}
 		}
 	}
+	table.style.display = "table";
 	//setEditTable(table_id, 2);
 	setTimeout(function() {
 		dad.AjaxDataTableResizeHeader(id);
 	},100);
+	return table;
 }
 		
 dad.parseSLEData = function(data, withHeader){
@@ -1506,6 +1609,11 @@ dad.newAjaxDataTableAjax = function(win, newId){
 				//remove headers
 				if(!this._withHeaders) records.shift();
 				dad.fillTableById(records, id);
+				dad.addWinOnAfterResize(win, newId, function(){
+							setTimeout(function() {
+							dad.AjaxDataTableResizeHeader(newId);
+						},100);
+					});	
 			} else {
 				alert("An error has occured making the request");
 			}

+ 3 - 3
SquiLu-ourbiz/s/ourbiz/calendar-chooser.js

@@ -92,7 +92,7 @@ function CalendarChooserMakemonth(y,m){
 
 function CalendarChooserSetDate(id, op){
 	//alert(table_month_id + ':' + op)
-	var table_month = document.getElementById("cc_days_month" + id);
+	var table_month = $id("cc_days_month" + id);
 	var date = table_month._date ? table_month._date : 0;
 	switch(op){
 		case '-y': date.setFullYear(date.getFullYear()-1); break;
@@ -115,7 +115,7 @@ function CalendarChooserSetDate(id, op){
 			table_month._date = new Date();
 	}
 
-	var cc_header = document.getElementById("cc_header" + id);
+	var cc_header = $id("cc_header" + id);
 	cc_header.innerHTML = table_month._date.toLocaleString();
 	
 	var monthArray = CalendarChooserMakemonth(table_month._date.getFullYear(), table_month._date.getMonth());
@@ -199,7 +199,7 @@ function newCalendarChooserWindow(){
 		var win = dad.newWindow(newId, 220,20, 300, 0, _tr(title), Jaml.render('CalendarChooserWindow', data));
 		CalendarChooserSetDate(newId, 0);
 		
-		var myform = document.getElementById(data.form_id);
+		var myform = $id(data.form_id);
 		for ( var i = 0, cnl = myform.length; i < cnl; i++ ) {
 			var elm = myform[i];
 			if ( dad.isFocusableTag(elm.tagName) ){

+ 3 - 3
SquiLu-ourbiz/s/ourbiz/dadlib.js

@@ -93,7 +93,7 @@ function BarChartFillByAjax(id){
 		var records = dad.parseSLEData(this.responseText);
 		var row_count = records.length;
 		
-		var btnShowChart = $("btnShowChart" + id);
+		var btnShowChart = $id("btnShowChart" + id);
 		var chart = btnShowChart._chart;
 
 		//chart.set_bar_num_format_decimals(0);
@@ -111,8 +111,8 @@ function BarChartFillByAjax(id){
 }
 
 dad.setupBarchart = function(bid, ajaxParamsFunc){
-	var btnShowChart = $("btnShowChart" + bid);
-	var canvasChart = $("canvas" + bid);
+	var btnShowChart = $id("btnShowChart" + bid);
+	var canvasChart = $id("canvas" + bid);
 	btnShowChart._chart = new dad.barChart();
 	btnShowChart._chart.init(canvasChart);
 	btnShowChart.ajaxData = new dad.Ajax(BarChartFillByAjax, bid, false);

+ 6 - 6
SquiLu-ourbiz/s/ourbiz/entities.js

@@ -236,11 +236,11 @@ function newEntityEditWindow(all_sales_buys){
 		}
 		var win = dad.newWindow(newId,220,20, 800, 500, _tr(title), Jaml.render('EntityEditWindow', data));
 		//dad.setContentOverflow(newId);
-		dad.initTab($(main_tabs_id));
-		dad.initTab($(notes_tabs_id));
+		dad.initTab($id(main_tabs_id));
+		dad.initTab($id(notes_tabs_id));
 		win.ud.ajaxLoad = new dad.Ajax(dad.formAjaxLoadResponse, newId, false);
 
-		var choiceHistory = $('history_type_id' + newId);
+		var choiceHistory = $id('history_type_id' + newId);
 		choiceHistory.ajaxLoadHistory = dad.newAjaxDataTableAjax(win, 
 				{id:newId, table:table_history_id, table_header:table_history_header_id});
 		choiceHistory.onchange = function(){
@@ -255,18 +255,18 @@ function newEntityEditWindow(all_sales_buys){
 			return 'list=entities&statistics=' + win.ud.edit_id + '&sab=' + win.ud.sab;
 		});
 		
-		var myform = $(data.form_id);
+		var myform = $id(data.form_id);
 		myform.my_field_prefix = "e_";
 		myform.onFillForm = EntityEditWindowOnFillForm;
 		dad.setupEditForm(myform);
 		myform.ajaxSubmit = new dad.Ajax(dad.listEditWindowOnSubmitRespose, newId, false);
 		
-		var btnRptEntitiesList = $("rptEntitiesList" + newId);
+		var btnRptEntitiesList = $id("rptEntitiesList" + newId);
 		btnRptEntitiesList.onclick = function(){
 			var url = '/DB/GetList?list=entities&pdf=1';
 			window.open(url, "printPDF");
 		}
-		var btn = $(btnAction_id);
+		var btn = $id(btnAction_id);
 		btn.onclick = EntityEditWindowOnSubmit;
 	}
 	

+ 2 - 2
SquiLu-ourbiz/s/ourbiz/gl-chart.js

@@ -98,13 +98,13 @@ function newGLChartEditWindow(all_sales_buys){
 		//dad.setContentOverflow(newId);
 		win.ud.ajaxLoad = new dad.Ajax(dad.formAjaxLoadResponse, newId, false);
 		
-		var myform = $(data.form_id);
+		var myform = $id(data.form_id);
 		myform.my_field_prefix = "glc_";
 		myform.onFillForm = GLChartEditWindowOnFillForm;
 		dad.setupEditForm(myform);
 		myform.ajaxSubmit = new dad.Ajax(dad.listGLChartWindowOnSubmitRespose, newId, false);
 		
-		var btn = $(btnAction_id);
+		var btn = $id(btnAction_id);
 		btn.onclick = GLChartEditWindowOnSubmit;
 		
 		var ajaxGlGroups = new dad.Ajax(function(select){

+ 3 - 3
SquiLu-ourbiz/s/ourbiz/gl-groups.js

@@ -70,7 +70,7 @@ function newGLGroupsListEditWindow(){
 		data.data_table = Jaml.render('2TRDataTable', data);
 
 		var win = dad.newWindow(newId,220,20, 460, 420, _tr(title), Jaml.render('GLGroupsListEdit', data));
-		var myform = $(data.form_id);
+		var myform = $id(data.form_id);
 		win.ud.form = myform;
 		win.ud.WindowRefresh = GLGroupsListEditWindowRefresh;
 		myform.my_field_prefix = "glg_";
@@ -78,13 +78,13 @@ function newGLGroupsListEditWindow(){
 		myform.ajaxSubmit = new dad.Ajax(dad.listEditWindowOnSubmitRespose, newId, false);
 		win.ud.ajaxLoad = new dad.Ajax(dad.formAjaxLoadResponse, newId, false);
 
-		var mytable = $(table_id);
+		var mytable = $id(table_id);
 		mytable.my_record_header = ["id|ID|0", "code|Code|8",
                 "description|Description|-1", "debit_op|Dbt|8|C", "credit_op|Cdt|8|C"];
 		mytable.row_click_cb = GLGroupsListEditWindowOnTableRowClick;
 		win.ud.ajaxTable = new dad.newAjaxDataTableAjax(win, newId);
 
-		var btn = $(btnAction_id);
+		var btn = $id(btnAction_id);
 		btn.onclick = GLGroupsListEditWindowOnSubmit;
 
 		GLGroupsListEditWindowRefresh(win.ud.ajaxTable);

+ 7 - 7
SquiLu-ourbiz/s/ourbiz/gl-transactions.js

@@ -149,9 +149,9 @@ function newGLTransationsEditWindow(all_sales_buys){
 		var win = dad.newWindow(newId,220,20, 800, 500, _tr(title), Jaml.render('GLTransationsEditWindow', data));
 		//dad.setContentOverflow(newId);
 
-		var data_table = $(table_id);
+		var data_table = $id(table_id);
 		data_table.className = data_table.className + " gl_transactions_lines";
-		var myform = $(data.form_id);
+		var myform = $id(data.form_id);
 		
 		win.ud.form = myform;
 		myform.my_field_prefix = "glt_";
@@ -169,7 +169,7 @@ function newGLTransationsEditWindow(all_sales_buys){
 			return result_array;
 		}
 
-		var mytable = $(table_id);
+		var mytable = $id(table_id);
 		mytable.my_record_header = ["id|ID|0",
                 "code|Code|8",
                 "description|Account|-1",
@@ -189,7 +189,7 @@ function newGLTransationsEditWindow(all_sales_buys){
 			if(this.status == 200){
 				//retrieve result as an JavaScript object
 				var record = dad.parseSLEData2Object(this.responseText); 
-				var form = $(data.form_id);
+				var form = $id(data.form_id);
 				dad.formFillByRecord(form, record, "tl_");
 				//if(!record.__table__) form.ol_quantity.focus();
 			} else {
@@ -201,7 +201,7 @@ function newGLTransationsEditWindow(all_sales_buys){
 			if(this.status == 200){
 				//retrieve result as an JavaScript object
 				var record = dad.parseSLEData2Object(this.responseText);
-				var form = $(data.form_id);
+				var form = $id(data.form_id);
 				dad.fillFormWithExistingFields(form, record);
 				form.ol_description.focus();
 			} else {
@@ -228,14 +228,14 @@ function newGLTransationsListSearchWindow(all_sales_buys){
 	var title = dad._getSABTitle(all_sales_buys, 'GL Transactions List/Search');
 	var win = newListSearchWindow(all_sales_buys, title, colHeaders, showGLTransationsEditWindow,
 		"gl_transactions", 'GLTransationsListSearchOn', null, all_sales_buys);
-	var data_table = $("table" + win.ud.win_id);
+	var data_table = $id("table" + win.ud.win_id);
 	data_table.className = data_table.className + " gl_transactions_list";
 
 	var ajaxOrderType = new dad.Ajax(function(id){
 		if(this.status == 200){
 			//retrieve result as an JavaScript object
 			var records = dad.parseSLEData(this.responseText); 
-			var select = $('group_filter' + id);
+			var select = $id('group_filter' + id);
 			dad.fillSelectByRecords(select, records, true);
 		}
 	}, win.ud.win_id, false);

+ 3 - 3
SquiLu-ourbiz/s/ourbiz/groups.js

@@ -128,7 +128,7 @@ function fillGroupsTree(ctx){
 }
 
 function fillGroupsTreeById(records, id){
-	var div_tree = $('div_tree' +id);
+	var div_tree = $id('div_tree' +id);
 	var tree_ctx = {records:records, parent:0, idx:0, div_tree:div_tree};
 	var result = fillGroupsTree(tree_ctx);
 	if(result) div_tree.innerHTML = result;
@@ -152,7 +152,7 @@ function newGroupsListEditWindow(){
 		}
 
 		var win = dad.newWindow(newId,220,20, 800, 560, _tr(title), Jaml.render('GroupsListEdit', data));
-		var myform = $(data.form_id);
+		var myform = $id(data.form_id);
 		win.ud.form = myform;
 		win.ud.WindowRefresh = GroupsListEditWindowRefresh;
 		myform.my_field_prefix = "ot_";
@@ -174,7 +174,7 @@ function newGroupsListEditWindow(){
 			}
 		}, newId, false);
 
-		var btn = $(btnAction_id);
+		var btn = $id(btnAction_id);
 		btn.onclick = GroupsListEditWindowOnSubmit;
 		
 		GroupsListEditWindowRefresh(win.ud.ajaxTable);

+ 10 - 1
SquiLu-ourbiz/s/ourbiz/index.html

@@ -80,6 +80,14 @@ background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGBAM
 	font-size: 80%;
 	padding: 0 .5em 0 .5em;
 }
+a.winOpt {
+	width: 1.2em;
+	text-decoration:none;
+	border: 1px solid white;
+	float:right;
+	text-align:center;
+	margin: 0 0.2em 0 0.2em;
+}
 .divTable {border: 1px solid #888; background: #FFFFFF;}
 .winContent {padding: 5px; width:98%;height:98%;}
 .winContent td {vertical-align:top;}
@@ -109,7 +117,8 @@ legend {color:#333;padding:0 10px;margin:0;font-size:1.5em;font-weight:400;}
 /*table*/
 table {border-collapse:collapse;}
 
-.wrappedTable {width:100%;}
+.wrappedTable {box-sizing:border-box;width:100%;}
+.wrappedTable  tfoot {visibility:hidden;}
 .wrappedTable th {
   color: #eee; background: #4e8c0b; text-shadow: 1px 1px 1px rgba(0,0,0,0.5);
   border: 1px solid #fff;

+ 5 - 5
SquiLu-ourbiz/s/ourbiz/listsearch.js

@@ -103,7 +103,7 @@ function newListSearchWindow(all_sales_buys, title, colHeaders, editWindow, dbTa
 		win.ud.all_sales_buys = all_sales_buys;
 		win.ud.win_id = newId;
 
-		var myform = $(data.form_id);
+		var myform = $id(data.form_id);
 		win.ud.form = myform;
 		dad.setupEditForm(myform);
 
@@ -124,16 +124,16 @@ function newListSearchWindow(all_sales_buys, title, colHeaders, editWindow, dbTa
 			myform.btnSearch.onclick();
 		}
 		
-		var group_filter = $('group_filter' + newId);
+		var group_filter = $id('group_filter' + newId);
 		group_filter.onchange=function(evt){
-			var btn = $(btnSearch_id);
+			var btn = $id(btnSearch_id);
 			btn.onclick();
 		}
 
-		var btn = $(btnSearch_id);
+		var btn = $id(btnSearch_id);
 		btn.dbTable = dbTable;
 		btn.dbExtraType = db_extra_type;
-		var mytable = $(table_id);
+		var mytable = $id(table_id);
 		mytable.my_record_header = colHeaders;
 		win.ud.mySelection = {};
 		mytable.row_dblclick_cb = ListSearchWindowOnTableRowClick;

+ 2 - 2
SquiLu-ourbiz/s/ourbiz/main-menu.js

@@ -94,10 +94,10 @@ function newMainMenuWindow(){
 		win = dad.newWindow(newId,10,10, 0, 0, title, Jaml.render('MainMenu', data), true, true);
 		win.className = win.className + ' mainWindow';
 		if(dad.isIE && (dad.isIE < 9)) win.firstChild.style.width = '';
-		var tabsObj = $(tabs_id);
+		var tabsObj = $id(tabs_id);
 		dad.initTab(tabsObj)
 		//dad.setupKeyboardNavigation(tabsObj, ["A", "LI"]);
-		var myform = $(data.form_id);
+		var myform = $id(data.form_id);
 		dad.setupEditForm(myform);
 	}
 	dad.bringToFront(win);

+ 3 - 3
SquiLu-ourbiz/s/ourbiz/measure-units.js

@@ -78,7 +78,7 @@ function newMeasureUnitsListEditWindow(){
 		data.data_table = Jaml.render('2TRDataTable', data);
 
 		var win = dad.newWindow(newId,220,20, 550, 450, _tr(title), Jaml.render('MeasureUnitsListEdit', data));
-		var myform = $(data.form_id);
+		var myform = $id(data.form_id);
 		win.ud.form = myform;
 		win.ud.WindowRefresh = MeasureUnitsListEditWindowRefresh;
 		myform.my_field_prefix = "mu_";
@@ -86,7 +86,7 @@ function newMeasureUnitsListEditWindow(){
 		myform.ajaxSubmit = new dad.Ajax(dad.listEditWindowOnSubmitRespose, newId, false);
 		win.ud.ajaxLoad = new dad.Ajax(dad.formAjaxLoadResponse, newId, false);
 
-		var mytable = $(table_id);
+		var mytable = $id(table_id);
 		mytable.my_record_header = ["id|ID|0",
                 "code|Code|8",
                 "description|Description|-1",
@@ -94,7 +94,7 @@ function newMeasureUnitsListEditWindow(){
 		mytable.row_click_cb = MeasureUnitsListEditWindowOnTableRowClick;
 		win.ud.ajaxTable = new dad.newAjaxDataTableAjax(win, newId);
 
-		var btn = $(btnAction_id);
+		var btn = $id(btnAction_id);
 		btn.onclick = MeasureUnitsListEditWindowOnSubmit;
 		
 		MeasureUnitsListEditWindowRefresh(win.ud.ajaxTable);

+ 3 - 3
SquiLu-ourbiz/s/ourbiz/order-types.js

@@ -136,7 +136,7 @@ function newOrderTypesListEditWindow(){
 		data.data_table = Jaml.render('2TRDataTable', data);
 
 		var win = dad.newWindow(newId,220,20, 800, 560, _tr(title), Jaml.render('OrderTypesListEdit', data));
-		var myform = $(data.form_id);
+		var myform = $id(data.form_id);
 		win.ud.form = myform;
 		win.ud.WindowRefresh = OrderTypesListEditWindowRefresh;
 		myform.my_field_prefix = "ot_";
@@ -144,7 +144,7 @@ function newOrderTypesListEditWindow(){
 		myform.ajaxSubmit = new dad.Ajax(dad.listEditWindowOnSubmitRespose, newId, false);
 		win.ud.ajaxLoad = new dad.Ajax(dad.formAjaxLoadResponse, newId, false);
 
-		var mytable = $(table_id);
+		var mytable = $id(table_id);
 		mytable.my_record_header = ["id|ID|0|R",
                 "code|Code|6|R",
                 "description|Description|-1",
@@ -156,7 +156,7 @@ function newOrderTypesListEditWindow(){
 		mytable.row_click_cb = OrderTypesListEditWindowOnTableRowClick;
 		win.ud.ajaxTable = new dad.newAjaxDataTableAjax(win, newId);
 
-		var btn = $(btnAction_id);
+		var btn = $id(btnAction_id);
 		btn.onclick = OrderTypesListEditWindowOnSubmit;
 		
 		OrderTypesListEditWindowRefresh(win.ud.ajaxTable);

+ 11 - 11
SquiLu-ourbiz/s/ourbiz/orders.js

@@ -412,11 +412,11 @@ function newOrderEditWindow(all_sales_buys){
 
 		var win = dad.newWindow(newId,220,20, 800, 500, _tr(title), Jaml.render('OrderEditWindow', data));
 		//dad.setContentOverflow(newId);
-		dad.initTab($(tabs_id));
+		dad.initTab($id(tabs_id));
 
-		var data_table = $(table_id);
+		var data_table = $id(table_id);
 		data_table.className = data_table.className + " orders_lines";
-		var myform = $(data.form_id);
+		var myform = $id(data.form_id);
 		
 		win.ud.form = myform;
 		myform.my_field_prefix = "o_";
@@ -446,7 +446,7 @@ function newOrderEditWindow(all_sales_buys){
 			return 'list=orders&statistics=1&sab=' + win.ud.sab;
 		});
 
-		var mytable = $(table_id);
+		var mytable = $id(table_id);
 		mytable.my_record_header = ['id|ID|0', 'product_id|Code|6|R',
 			'description|Description|-1', 'quantity|Quantity|8|R|N',
 			'price|Price|8|R|M', 'first_total|1st Total|8|R|M'];
@@ -457,7 +457,7 @@ function newOrderEditWindow(all_sales_buys){
 			tr.parentNode.removeChild(tr);
 		}
 		
-		var btnPrint = $("btnPrint" + newId);
+		var btnPrint = $id("btnPrint" + newId);
 		btnPrint.onclick = function(){
 			var url = '/DB/GetOne?orders=' + this.form._dbrecord.id + '&pdf=1';
 			window.open(url, "printPDF");
@@ -467,7 +467,7 @@ function newOrderEditWindow(all_sales_buys){
 			if(this.status == 200){
 				//retrieve result as an JavaScript object
 				var records = dad.parseSLEData(this.responseText); 
-				var select = $(select_ot_id);
+				var select = $id(select_ot_id);
 				dad.fillSelectByRecords(select, records, false);
 			}
 		});
@@ -482,7 +482,7 @@ function newOrderEditWindow(all_sales_buys){
 			if(this.status == 200){
 				//retrieve result as an JavaScript object
 				var record = dad.parseSLEData2Object(this.responseText); 
-				var form = $(data.form_id);
+				var form = $id(data.form_id);
 				dad.formFillByRecord(form, record, "ol_");
 				if(!record.__table__) form.ol_quantity.focus();
 			} else {
@@ -494,7 +494,7 @@ function newOrderEditWindow(all_sales_buys){
 			if(this.status == 200){
 				//retrieve result as an JavaScript object
 				var record = dad.parseSLEData2Object(this.responseText);
-				var form = $(data.form_id);
+				var form = $id(data.form_id);
 				dad.fillFormWithExistingFields(form, record);
 				form.ol_description.focus();
 			} else {
@@ -516,7 +516,7 @@ function newOrderEditWindow(all_sales_buys){
 			if(this.status == 200){
 				//retrieve result as an JavaScript object
 				var record = dad.parseSLEData2Object(this.responseText); 
-				var form = $(data.form_id);
+				var form = $id(data.form_id);
 				dad.formFillByRecord(form, record, "t_");
 			} else {
 				alert("An error has occured making the totals request");
@@ -556,10 +556,10 @@ function newOrdersListSearchWindow(all_sales_buys){
 	var title = dad._getSABTitle(all_sales_buys, 'Orders List/Search');
 	var win = newListSearchWindow(all_sales_buys, title, colHeaders, showOrderEditWindow,
 		"orders", 'OrdersListSearchOn', null, all_sales_buys);
-	var data_table = $("table" + win.ud.win_id);
+	var data_table = $id("table" + win.ud.win_id);
 	data_table.className = data_table.className + " orders_list";
 	
-	var group_filter = $('group_filter' + win.ud.win_id);
+	var group_filter = $id('group_filter' + win.ud.win_id);
 	if(group_filter.options.length == 0){
 		var ajaxOrderType = new dad.Ajax(function(id){
 			if(this.status == 200){

+ 3 - 3
SquiLu-ourbiz/s/ourbiz/payment-types.js

@@ -86,7 +86,7 @@ function newPaymentTypesListEditWindow(){
 		data.data_table = Jaml.render('2TRDataTable', data);
 		
 		var win = dad.newWindow(newId,220,20, 550, 450, _tr(title), Jaml.render('PaymentTypesListEdit', data));
-		var myform = $(data.form_id);
+		var myform = $id(data.form_id);
 		win.ud.form = myform;
 		win.ud.WindowRefresh = PaymentTypesListEditWindowRefresh;
 		myform.my_field_prefix = "pt_";
@@ -94,7 +94,7 @@ function newPaymentTypesListEditWindow(){
 		myform.ajaxSubmit = new dad.Ajax(dad.listEditWindowOnSubmitRespose, newId, false);
 		win.ud.ajaxLoad = new dad.Ajax(dad.formAjaxLoadResponse, newId, false);
 		
-		var mytable = $(table_id);
+		var mytable = $id(table_id);
 		mytable.my_record_header = ["id|ID|0",
                 "code|Code|8|C",
                 "description|Description|-1",
@@ -102,7 +102,7 @@ function newPaymentTypesListEditWindow(){
 		mytable.row_click_cb = PaymentTypesListEditWindowOnTableRowClick;
 		win.ud.ajaxTable = new dad.newAjaxDataTableAjax(win, newId);
 
-		var btn = $(btnAction_id);
+		var btn = $id(btnAction_id);
 		btn.onclick = PaymentTypesListEditWindowOnSubmit;
 		
 		PaymentTypesListEditWindowRefresh(win.ud.ajaxTable);

+ 10 - 10
SquiLu-ourbiz/s/ourbiz/products.js

@@ -270,11 +270,11 @@ function newProductEditWindow(all_sales_buys){
 		}
 		var win = dad.newWindow(newId,220,20, 800, 500, _tr(title), Jaml.render('ProductEditWindow', data));
 		//dad.setContentOverflow(newId);
-		dad.initTab($(main_tabs_id));
-		dad.initTab($(notes_tabs_id));
+		dad.initTab($id(main_tabs_id));
+		dad.initTab($id(notes_tabs_id));
 		win.ud.ajaxLoad = new dad.Ajax(dad.formAjaxLoadResponse, newId, false);
 
-		var choiceHistory = $('history_type_id' + newId);
+		var choiceHistory = $id('history_type_id' + newId);
 		choiceHistory.ajaxLoadHistory = dad.newAjaxDataTableAjax(win, 
 				{id:newId, table:table_history_id, table_header:table_history_header_id});
 		choiceHistory.onchange = function(){
@@ -289,13 +289,13 @@ function newProductEditWindow(all_sales_buys){
 			return 'list=products&statistics=' + win.ud.edit_id + '&sab=' + win.ud.sab;;
 		});
 
-		var myform = $(data.form_id);
+		var myform = $id(data.form_id);
 		myform.my_field_prefix = "p_";
 		dad.setupEditForm(myform);
 		myform.ajaxSubmit = new dad.Ajax(dad.listEditWindowOnSubmitRespose, newId, false);
 		myform.afterFill = function(){
 			var img_id = this._dbrecord.image_id;
-			var img = $('prod_img_' + newId);
+			var img = $id('prod_img_' + newId);
 			dad.getImageForImg(img, img_id);
 		}
 
@@ -305,7 +305,7 @@ function newProductEditWindow(all_sales_buys){
 			myform[calc_fields_list[i]].onchange = onProductEditCalcPrice;
 		}
 		
-		var btnRptProductsList = $("rptProductsList" + newId);
+		var btnRptProductsList = $id("rptProductsList" + newId);
 		btnRptProductsList.onclick = function(){
 			var url = '/DB/GetList?list=products&pdf=1';
 			window.open(url, "printPDF");
@@ -342,14 +342,14 @@ function newProductEditWindow(all_sales_buys){
 			if(this.status == 200){
 				//retrieve result as an JavaScript object
 				var record = dad.parseSLEData2Object(this.responseText); 
-				var form = $(data.form_id);
+				var form = $id(data.form_id);
 				dad.formFillByRecord(form, record, "p_");
 			} else {
 				alert("An error has occured making the request");
 			}
 		}, null, false);
 		
-		var btn = $(btnAction_id);
+		var btn = $id(btnAction_id);
 		btn.onclick = ProductEditWindowOnSubmit;
 	}
 	dad.bringToFront(win);
@@ -384,10 +384,10 @@ function newProductsListSearchWindow(all_sales_buys){
 	var win = newListSearchWindow(all_sales_buys, title, colHeaders, showProductEditWindow,
 		"products", 'ProductsListSearchOn', null, all_sales_buys);
 	var myId = win.ud.win_id;
-	var ltbl =  $('table' +myId);
+	var ltbl =  $id('table' +myId);
 	ltbl.row_over_cb =  function(evt){
 		var img_id = this.cells[10].innerHTML;
-		var img = $('ls_img_' + myId);
+		var img = $id('ls_img_' + myId);
 		dad.getImageForImg(img, img_id, true);
 	};
 	return win;

+ 3 - 3
SquiLu-ourbiz/s/ourbiz/sales-tax-rates.js

@@ -77,7 +77,7 @@ function newSalesTaxListEditWindow(){
 		data.data_table = Jaml.render('2TRDataTable', data);
 
 		var win = dad.newWindow(newId,220,20, 460, 420, _tr(title), Jaml.render('SalesTaxListEdit', data));
-		var myform = $(data.form_id);
+		var myform = $id(data.form_id);
 		win.ud.form = myform;
 		win.ud.WindowRefresh = SalesTaxListEditWindowRefresh;
 		myform.my_field_prefix = "st_";
@@ -85,13 +85,13 @@ function newSalesTaxListEditWindow(){
 		myform.ajaxSubmit = new dad.Ajax(dad.listEditWindowOnSubmitRespose, newId, false);
 		win.ud.ajaxLoad = new dad.Ajax(dad.formAjaxLoadResponse, newId, false);
 
-		var mytable = $(table_id);
+		var mytable = $id(table_id);
 		mytable.my_record_header = ["id|ID|0", "rate1|V.A.T. %|8|R", "rate2|R.E. %|8|R",
 			"description|Description|-1", "is_active|Active|5|C|B"];
 		mytable.row_click_cb = SalesTaxListEditWindowOnTableRowClick;
 		win.ud.ajaxTable = new dad.newAjaxDataTableAjax(win, newId);
 
-		var btn = $(btnAction_id);
+		var btn = $id(btnAction_id);
 		btn.onclick = SalesTaxListEditWindowOnSubmit;
 
 		SalesTaxListEditWindowRefresh(win.ud.ajaxTable);

+ 5 - 5
SquiLu-ourbiz/s/ourbiz/scroll.js

@@ -1,6 +1,6 @@
 var testEl,position=0;
 window.onload = function () {
-	testEl = $('testElement');
+	testEl = $id('testElement');
 	testEl.onmousedown = testEl.ontouchstart = startDrag;
 	var divs = testEl.getElementsByTagName('div');
 	for (var i=0;i<divs.length;i+=1) {
@@ -17,8 +17,8 @@ function startDrag(e) {
 	var step = 50,	// in milliseconds
 		startPos,speed,
 		distance = 0,
-		min = -position + $('wrapper').offsetWidth/2,
-		max = $('wrapper').offsetWidth/2;
+		min = -position + $id('wrapper').offsetWidth/2,
+		max = $id('wrapper').offsetWidth/2;
 	clearInterval(scroll);
 
 	testEl.ontouchmove = testEl.onmousemove = moveDrag;
@@ -29,7 +29,7 @@ function startDrag(e) {
 		var dist = end - origin;
 		var time = endTime - originTime;
 		speed = dist/(time/1000); // pixels per second
-		$('log').innerHTML = 'Speed is ' + Math.abs(Math.round(speed)) + ' pixels per second!';
+		$id('log').innerHTML = 'Speed is ' + Math.abs(Math.round(speed)) + ' pixels per second!';
 		scroll = setInterval(extraScroll,step);
 		testEl.ontouchmove = testEl.ontouchend = testEl.onmousemove = document.onmouseup = null;
 	}
@@ -70,6 +70,6 @@ function startDrag(e) {
 	}
 }
 
-function $(id) {
+function $id(id) {
 	return document.getElementById(id);
 }

+ 3 - 3
SquiLu-ourbiz/s/ourbiz/warranty-types.js

@@ -78,7 +78,7 @@ function newWarrantyTypesListEditWindow(){
 		data.data_table = Jaml.render('2TRDataTable', data);
 
 		var win = dad.newWindow(newId,220,20, 550, 450, _tr(title), Jaml.render('WarrantyTypesListEdit', data));
-		var myform = $(data.form_id);
+		var myform = $id(data.form_id);
 		win.ud.form = myform;
 		win.ud.WindowRefresh = WarrantyTypesListEditWindowRefresh;
 		myform.my_field_prefix = "wt_";
@@ -86,7 +86,7 @@ function newWarrantyTypesListEditWindow(){
 		myform.ajaxSubmit = new dad.Ajax(dad.listEditWindowOnSubmitRespose, newId, false);
 		win.ud.ajaxLoad = new dad.Ajax(dad.formAjaxLoadResponse, newId, false);
 
-		var mytable = $(table_id);
+		var mytable = $id(table_id);
 		mytable.my_record_header = ["id|ID|0",
                 "code|Code|8",
                 "description|Description|-1",
@@ -94,7 +94,7 @@ function newWarrantyTypesListEditWindow(){
 		mytable.row_click_cb = WarrantyTypesListEditWindowOnTableRowClick;
 		win.ud.ajaxTable = new dad.newAjaxDataTableAjax(win, newId);
 
-		var btn = $(btnAction_id);
+		var btn = $id(btnAction_id);
 		btn.onclick = WarrantyTypesListEditWindowOnSubmit;
 		
 		WarrantyTypesListEditWindowRefresh(win.ud.ajaxTable);