;var ajaxError,root_path; var application = { iam:'adeveloper', iSay:'Theory is when you know everything but nothing works. Practical is when everything works but no one knows why.', fr:0, url_index:'./parser.php', url_ajax:'./parser.php', url_grid:'./parser.php', url_search:'./parser.php', module:'', cofigpath:'', json_data : [], getQueryVariable: function (variable) { var query = window.location.search.substring(1); var vars = query.split("&"); for (var i = 0; i < vars.length; i++) { var pair = vars[i].split("="); if (pair[0] == variable) { return pair[1]; } } return null; }, exec:function(exec, Params, target){ var ajax_url,cofigpath ,target = target || 'application'; this.module = this.getQueryVariable('module'); if( ( this.module==null ) && ( typeof window['url'] =="string" ) ){ ajax_url = url ; }else{ ajax_url = this.url_ajax ; } if( (typeof window['cfgpath']) !="undefined"){ this.cofigpath = window['cfgpath'] ; }else{ this.cofigpath = null ; } Params += '&cfgpath='+this.cofigpath; Params += '&module='+this.module; if(typeof Opentip=='function'){ if(typeof hideAllTips=='function'){ hideAllTips(); } } if($(target)) { targetNode = $(target).nodeName; if(targetNode =='TD' || targetNode=='SPAN' || targetNode=='DIV'){ if(target=='application'){ application.splashScreen(); } try{ new Ajax.Request(ajax_url,{ method:'post', parameters:'function='+exec+'&'+Params+'&fr='+this.fr, onException : function(req , Exception){ console.log( req ); console.log( Exception ); alert('An unhandled Exception Occurred'); return true; }, on403:function(t){ alert("You have been Idle for too long. Please re-login to continue working."); window.top.location = window.top.location; return true; }, onSuccess:function(request){ Element.update(target,request.responseText); if(target=='feeback'){ new Effect.Highlight('feeback') } }, onFailure:function(request){ alert('An unhandled Error Occurred'); return true; } }); }catch(e){ } }else{ alert("Target element should either be a SPAN,DIV or TD\nAJAX target-type '"+targetNode+"' is not supported"); } }else{ alert("DOM Element '"+target+"' does not exist.\nTerminating AJAX call..."); } }, get_json:function(exec, params ) { this.module = this.getQueryVariable('module'); var _jsonData; try{ new Ajax.Request( application.url_ajax ,{ method:'post', parameters: 'module='+this.module+'&function='+exec+'&json=1&'+params, requestHeaders: { Accept: 'application/json'}, onComplete: function(request) { if(request.status==200){ return _jsonData = request.responseText; }else{ alert("Server Error Occured while processing the request"); } } } ); }catch(e) {} return _jsonData; }, focusFirstElement:function(form){ var form = form || $('frmManage'); if($(form)){ var inputs = form.getElements(); var num_inputs = 0; inputs.each(function(input){ if($(input.id)){ ++num_inputs; } }); if(num_inputs>0){ form.focusFirstElement(); } } }, validate:function(validate){ /* erastus : 25/jun/13 : version 3.1 : @todo : check required data types & field data length */ var error=0,isValid, to_validate, validate_index,targetNode,emptyFields= new Array , numemptyFields=0,estr = '',isay=''; var to_validate = $w(validate); if(to_validate.length >0){ validate_index=0; to_validate.each(function(field){ ++validate_index; if($(field)){ if ($F(field)==''){ targetNode = $(field).nodeName; var label = $$('label[for='+field+']'); if(typeof label[0] =='object'){ var labeltext = label[0].innerHTML; if( labeltext !=''){ emptyFields[validate_index] = labeltext; }else{ emptyFields[validate_index] = field; } }else{ emptyFields[validate_index] = field; } switch(targetNode) { case 'INPUT': case 'TEXTAREA': new Effect.Highlight(field,{ startcolor: '#FFE5E5', endcolor: '#ffffff', duration:4}); break; } } }else{ /*alert(field+' does not exist');*/ } }); } if(emptyFields.length>0){ emptyFields.each(function(fld){ estr = estr+'\n -'+fld; ++numemptyFields; }); isay = numemptyFields > 1 ? 's are' : ' is'; alert('The Following '+numemptyFields+' field'+isay+' required '+estr); return false; } return true; }, view:function(){ var inDataGrid = (typeof window['DataGrid']) !="undefined" ? true : false; if(inDataGrid){ manageData.reload_grid(); }else{ var append = null; if($('frmFilter')){ var inputs = $('frmFilter').getElements(); inputs.each(function(input){if($F(input.id)!=''){append +='&'+input.id+'='+$F(input.id);}}); if(append!=''){append+='&act=filter&filter=1&';} } vars = append || ''; this.exec('_list',vars,'application'); } }, manage:function(vars){ this.fr = 1; var vars = vars || ''; this.exec('manage',vars,'application'); if($('frmManage')) { Form.disable('frmManage'); } }, filters:function(){ var append = null; if($('frmFilter')){ var inputs = $('frmFilter').getElements(); inputs.each(function(input){if($F(input.id)!=''){append +='&'+input.id+'='+$F(input.id);}}); if(append!=''){append+='&act=filter&filter=1&';} } return append || ''; }, find:function(){this.exec('_list','act=find&find='+$F('txtFind'),'application')}, filter:function(){var filter_vars = Form.serialize('frmFilter');this.exec('_list','act=filter&filter=1&'+filter_vars,'application');}, remove_filters:function(){Form.reset('frmFilter');this.exec('_list','act=remove_filter','application');}, lock_buttons:function(){ if($('btnSave')){ $('btnSave').disabled=true; $('btnSave').update('Saving...').removeClassName('approve').addClassName('clock');} if($('btnDelete')){ $('btnDelete').disabled=true;} if($('btnCancel')){ $('btnCancel').disabled=true;} }, unlock_buttons:function(){ if($('btnSave')){ $('btnSave').disabled=false;$('btnSave').update('Save').removeClassName('clock').addClassName('approve');} if($('btnDelete')){ $('btnDelete').disabled=false;} if($('btnCancel')){ $('btnCancel').disabled=false;} }, add:function(){this.exec('manage','','application')}, save:function(required, target, maintainform , elements_to_clear){ var _maintainform = false , _target='application'; if(typeof arguments[1]!='undefined' && arguments[1]!=''){ _target = target; }else{ if(typeof manageData!='undefined' && typeof manageData.target!='undefined'){ _target = manageData.target; } } if(typeof arguments[2]!='undefined' && arguments[2]==1){ _maintainform = true; } // force reload of data from db this.fr = 1; if(required!='' && this.validate(required)){ data=Form.serialize('frmManage'); Form.disable('frmManage'); this.lock_buttons(); this.exec('save', data, _target); //if we are in data grid ,list var inDataGrid = (typeof window['DataGrid']) !="undefined" ? true : false; if(inDataGrid && !(_maintainform) ) { setTimeout("manageData.reload_grid();",200); } if(_maintainform){ if(typeof arguments[3]=='string'){ $w(elements_to_clear).each(function(element_to_clear){ if( $(element_to_clear)){ $(element_to_clear).clear(); } }); } } } Form.enable('frmManage'); this.unlock_buttons(); }, edit:function(id){ this.fr = 1; this.exec('manage','id='+id,'application'); if($('frmManage')) { Form.disable('frmManage'); } }, purge:function(id,name){ if($('frmManage')) { Form.disable('frmManage'); } this.lock_buttons(); var inDataGrid = (typeof window['DataGrid']) !="undefined" ? true : false; if(inDataGrid){ manageData.purge(id,name); }else{ if(confirm("Delete '"+name+"?' ")){ application.exec('delete','id='+id,'application'); }else{ if($('frmManage')) { Form.enable('frmManage'); } } } }, page_next:function(){if($('start_record')){if(Number($F('start_record'))0 ){ application.select_clear(field); selectObj = $(field); data[field].each(function(i){ application.select_add_option(selectObj, i.text, i.value, i.selected); }); } }else if(typeof data[field] =='boolean' ){ application.select_preset_option( field , '' ); $(field).disabled = data[field]; } break; case 'BUTTON': if(typeof data[field] =='boolean'){ if(data[field]==true){ $(field).disabled = false; }else if(data[field]==false){ $(field).disabled = true; } }else if(typeof data[field] =='number'){ if(data[field]==1){ $(field).disabled = false; }else if(data[field]==0){ $(field).disabled = true; } } break; default: console.log(targetNode); } } }); if( typeof _afterload_call_js_function == 'string'){ /*dont be Eval*/ eval(_afterload_call_js_function+"();"); } /*hide auto filter divs -> copy to modules section after change fn*/ var selectFilters = $$('div.selectFilter'); if ( selectFilters.length>0 ){ selectFilters.each(function(div){ if($(div.id)){ /*$(div.id).hide();*/ } }); } } } ); }catch(e){ } } }, select_clear:function(selectid){ if($(selectid)){ var selectElemRef = $(selectid); while (selectElemRef.length> 0) { selectElemRef.remove(0); } } }, select_preset_option:function(selectid, default_value){ $$('select#'+selectid+' option').each(function(o) { o.selected = o.readAttribute('value') == default_value; }); }, select_add_option:function(selectObj, text, value, isSelected){ if (selectObj != null && selectObj.options != null){ selectObj.options[selectObj.options.length] = new Option(text, value, false, isSelected); } }, form_select_fromJSON:function(selectid, jsondata, optselected ){ if($(selectid)){ $H(jsondata).each(function(opts){ alert(opts); optselected = opts.optselected==1? true : false; alert(optselected); if(typeof opts.key =='string' && typeof opts.value=='string'){ alert(opts.key); alert(opts.value); application.select_add_option( $(selectid), opts.value, opts.key, optselected); } }); } }, select_populate_from_arraydata :function ( select, data, value_key, text_key ) { if($(select)) { var opt = document.createElement('option'); opt.text = ''; opt.value = ''; $(select).options.add(opt); for(var i=0;i=0){ return $(select).options[i].text; } } } return ''; }, selectFilterData: {} , selectFilter:function(selectId, filter) { if($(selectId+'_divFilter')){ $(selectId+'_divFilter').style.display='block'; } var list = $(selectId); if(!this.selectFilterData[selectId]) { this.selectFilterData[selectId] = new Array(); for(var i = 0; i < list.options.length; i++) this.selectFilterData[selectId][i] = list.options[i]; } list.options.length = 0; for(var i = 0; i < this.selectFilterData[selectId].length; i++) { var o = this.selectFilterData[selectId][i]; if(o.text.toLowerCase().indexOf(filter.toLowerCase()) >= 0) { var opt = document.createElement('option'); opt.text = o; opt.value = o; $(selectId).options.add(o); } } }, selectOption:function(selectId) { if($(selectId+'_ac_name')){ $(selectId+'_ac_name').value = this.select_text(selectId); } if($(selectId+'_ac_id')){ $(selectId+'_ac_id').value = $F(selectId); } if($(selectId+'_divFilter')){ $(selectId+'_divFilter').style.display='none'; } }, table_stripe:function(tableid, row_class){ if($(tableid)){ var tbodies = $(tableid).childNodes; for (var c = 0; c < tbodies.length; ++c) { if (tbodies[c].tagName != 'TBODY') { continue; } var trs = tbodies[c].childNodes; if(typeof trs =='object' && trs.length>0){ for (var i = 0; i < trs.length; ++i) { if (trs[i].tagName == 'TR' && trs[i].className==row_class) { if($(trs[i].id)){ Element.remove(trs[i].id); }else{ alert("Table Row '"+i+"' Does Not Have an ID"); } } }//for }//if }//for }else{ alert("Table '"+tableid+"' does not exist "); } }, IsNumeric:function(strString){ var strValidChars="0123456789.-";var strChar;var blnResult=true;if(strString.length==0)return false;for(i=0;i1?'.'+x[1]:''; var rgx=/(\d+)(\d{3})/;while(rgx.test(x1)){x1=x1.replace(rgx,'$1'+','+'$2');} return x1+x2+xe; }else{ return nStr; } }, tokenize:function(str){ var tokenized_str,dt=new Date(),dtString=''+dt.getFullYear()+dt.getMonth()+dt.getDate()+dt.getHours()+dt.getMinutes()+dt.getMilliseconds();tokenized_str=str+'&token='+dtString;return tokenized_str; }, splashScreen: function() { if($('application')){ var div = document.createElement('div'); div.appendChild(document.createTextNode("")); div.setAttribute("style", "position: fixed; " + "width: 100%; height: 100%; " + "left: 0; top: 0; " + "z-index: 1000; " + "background: #fff url('"+root_path+"gui/indicators/uniplus.gif') no-repeat center; " + "font-size: x-large; " + "text-align: center; " + "line-height: 3em; " + "opacity: 0.75; " + "filter: alpha(opacity=75); "); $('application').update(''); $('application').appendChild(div); return true; } } } ; var progress = { init: function(){ if($('application')){ $('application').update("") } var working=document.createElement("div"); working.setAttribute('id','working'); if($('working')){ $('working') .absolutize() .setStyle({display:'none',backgroundColor:'#fff',height:'16px',top:'3px',fontSize:'12px',fontFamily:'sans-serif'}) } }, show: function(text){ if($('working')){ $('working') .absolutize() .update(text) .setStyle({display:'block'}) } }, hide:function(){ if($('working')){ $('working') .hide() } } } //init ;application.module = application.getQueryVariable('module'); if( typeof window['cfgpath'] !="undefined" ){ application.cofigpath = window['cfgpath']; } // ;progress.init(); ;application.splashScreen();