var setCurrentTimeFV = function($control, _ctrType, date, isMilitaryTime, parent, ctrlPropreties){ var curDateTime = ''; if($control != undefined){ var removeSeconds = false; var curDate = ''; var curTime = ''; var curDateDisp = ''; var curTimeDisp = ''; var curDateTimeDisp = ''; var minuteInterval = 1; if(parent && parent.showSeconds && parent.showSeconds.value == false){ removeSeconds = true; } if(parent && parent.minuteInterval && parent.minuteInterval.value){ minuteInterval = parseInt(parent.minuteInterval.value, 10); } if(!minuteInterval || minuteInterval<1 || minuteInterval>60){ minuteInterval = 1; } var minuteIntervalRounding = CONST_ROUNDING_UP; if(isVersion(VERSION_OPTION_MINUTE_INTERVAL_ROUNDING)){ if(parent.rounding && parent.rounding.value){ minuteIntervalRounding = parent.rounding.value; } } var today; if(date != undefined){ today = date; }else{ today = new Date(); } var y = today.getFullYear(); var m = today.getMonth()+1; var d = today.getDate(); var h = today.getHours(); var mi = today.getMinutes(); var s = today.getSeconds(); var mili = today.getMilliseconds(); if(minuteIntervalRounding == 'down'){ var miDown = mi % minuteInterval; mi -= miDown }else if(minuteIntervalRounding == 'updown'){ var miUpDown = mi % minuteInterval; if(miUpDown != 0){ if(miUpDown < (minuteInterval/2)){ mi -= miUpDown; }else{ mi += minuteInterval - miUpDown; } } }else{ var miUp = mi % minuteInterval; if(miUp > 0){ miUp = minuteInterval - miUp; } mi += miUp; } /* var miUp = mi % minuteInterval; if(miUp > 0){ miUp = minuteInterval - miUp; } mi = mi + miUp;*/ if(mi >= 60){ today.setMinutes(mi); y = today.getFullYear(); m = today.getMonth()+1; d = today.getDate(); h = today.getHours(); mi = today.getMinutes(); s = today.getSeconds(); mili = today.getMilliseconds(); } if(_ctrType == CONST_CTRL_TYPE_INPUTDATE || _ctrType == CONST_VALUE_DATE || _ctrType == CONST_VALUE_DATE_SPACE_TIME){ if(m < 10) m = '0' + m; if(d < 10) d = '0' + d; if(authNS && authNS.currentUser && authNS.currentUser.dateFormat == 'dd/MM/yyyy'){ curDateDisp = d + '/' + m + '/' + y; }else if(waDateFormat == 'dd/MM/yyyy'){ curDateDisp = d + '/' + m + '/' + y; }else{ curDateDisp = m + '/' + d + '/' + y; } curDate = m + '/' + d + '/' + y; //curDate = y + '-' + m + '-' + d; //PCA-688 if(curDate != ''){ curDateTime = curDate; curDateTimeDisp = curDateDisp; } } if(_ctrType == CONST_VALUE_TIME || _ctrType == CONST_VALUE_DATE_SPACE_TIME){ var status = 'AM'; if(h >= 12) status = 'PM'; var tmpHours = 0; if(isMilitaryTime){ status = ''; tmpHours = h; if(tmpHours < 10) tmpHours = '0' + tmpHours; }else{ status = ' ' + status; tmpHours = (h >12 ? h -12 : h); if(tmpHours < 10) tmpHours = '0' + tmpHours; if(tmpHours == '00') tmpHours = 12; } var tmpMinutes = mi; if(tmpMinutes < 10) tmpMinutes = '0' + tmpMinutes; var tmpSeconds = s; if(tmpSeconds < 10) tmpSeconds = '0' + tmpSeconds; if(authNS && authNS.currentUser && authNS.currentUser.timeFormat == 'hh:mm aa'){ curTimeDisp = tmpHours + ':' + tmpMinutes + status; }else if(waTimeFormat == 'hh:mm aa'){ curTimeDisp = tmpHours + ':' + tmpMinutes + status; }else{ if(removeSeconds){ curTimeDisp = tmpHours + ':' + tmpMinutes + status; }else{ curTimeDisp = tmpHours + ':' + tmpMinutes + ':' + tmpSeconds + status; } } if(removeSeconds){ curTime = tmpHours + ':' + tmpMinutes + status; }else{ curTime = tmpHours + ':' + tmpMinutes + ':' + tmpSeconds + '.' + mili + status; } if(curTime != ''){ curDateTime = curTime; curDateTimeDisp = curTimeDisp; } // 1738 if(y == 1970 && m == 1 && d == 2 && h == 0){ curDateTime = CONS_MILITARY_24; curDateTimeDisp = getMilitary24(); } } if(_ctrType == CONST_VALUE_DATE_SPACE_TIME){ if(curDate != '' && curTime != ''){ curDateTime = curDate + ' ' + curTime; curDateTimeDisp = curDateDisp + ' ' + curTimeDisp; } } if($control.val() == curDateTimeDisp){ return false; } // persist T format to ctrlPropreties var tValue = undefined; if(parent != undefined && ctrlPropreties != undefined){ tValue = mmddyyyyToTFormat(curDateTime, parent.kind.value); } // get value with advance format for displaying $control.val(curDateTime); var advDTFormatVal = updateDTAdvanceFormat(parent, undefined, false, curDateTime); if(advDTFormatVal != ''){ curDateTimeDisp = advDTFormatVal; } if($control.val() != curDateTimeDisp){ // for saving if(tValue != undefined){ ctrlPropreties.val = tValue; ctrlPropreties.isValueChange = true; setDirtyFlag(true); } // for displaying var data_org = $control.val(); $control.val(curDateTimeDisp).attr('data_fm', curDateTimeDisp).attr('data_org', data_org).attr('data_org_nfm', data_org); $control.trigger('change', true); }else{ if(parent != undefined && parent.advancedFormat && parent.advancedFormat.value && parent.advancedFormat.value.format && parent.advancedFormat.value.format != ''){ var data_org = $control.val(); $control.attr('data_fm', curDateTimeDisp).attr('data_org', data_org).attr('data_org_nfm', data_org); } // for saving if(tValue != undefined){ ctrlPropreties.val = tValue; ctrlPropreties.isValueChange = true; } // for displaying $control.val(curDateTimeDisp); $control.trigger('change'); } } return curDateTime; } var UNSUPPORT_HTML = "abbr|acronym|address|applet|area|article|aside|audio" + "|base|basefont|bdi|bdo|body|button|canvas|caption|center" + "|code|col|colgroup|datalist|dd|datalist|del|details|dialog" + "|dir|dl|dt|embed|fieldset|figcaption|figure|footer" + "|form|frame|frameset|head|header|h1|h2|h3|h4|h5|h6|hr|html|iframe" + "|ins|input|kbd|keygen|label|legend|li|link|main|map|mark|menu" + "|menuitem|meta|meter|nav|noframes|noscript|object|ol" + "|optgroup|option|param|pre|progress|q|rp|rt|ruby|s|samp|script|section" + "|select|source|span|strike|style|summary|table" + "|tbody|td|textarea|tfoot|th|thead|time|title|tr|track|ul|var|video|wbr"; var UNSUPPORT_A_ATTRIBUTE = "charset|coords|download|hreflang|media" + "|name|rel|rev|shape|target|type"; var UNSUPPORT_FONT_ATTRIBUTE = "size"; var UNSUPPORT_IMG_ATTRIBUTE = "align|alt|border|crossorigin|height|hspace" + "|ismap|longdesc|usemap|vspace|width"; var removeUnsupportHTML = function(text) { if (typeof text == 'undefined') { return text; } //remove unsupport tag var re = new RegExp("(<(" + UNSUPPORT_HTML + ")[^>]*>|<\/(" + UNSUPPORT_HTML + ")[^>]*>)", "ig"); text = text.replace(re, ""); //remove unsupport attribute of tag a do { textTrack = text; var re_a = new RegExp("]*>((?!", "i"); temp = re_a.exec(text); temp2 = temp; if(null != temp && temp[0] != "") { var re_aa = new RegExp("(" + UNSUPPORT_A_ATTRIBUTE + ")(\\s)*=(\\s)*['\"][^'\"]*['\"]", "ig"); temp3 = temp2[0].replace(re_aa, ""); text = text.replace(temp[0], temp3); } } while(text != textTrack); //remove unsupport attribute of tag font do { textTrack = text; var re_font = new RegExp("]*>((?!", "i"); temp = re_font.exec(text); temp2 = temp; if(null != temp && temp[0] != "") { var re_font1 = new RegExp("(" + UNSUPPORT_FONT_ATTRIBUTE + ")(\\s)*=(\\s)*['\"][^'\"]*['\"]", "ig"); temp3 = temp2[0].replace(re_font1, ""); text = text.replace(temp[0], temp3); } } while(text != textTrack); //remove unsupport attribute of tag image do { textTrack = text; var re_img = new RegExp("]*>" , "i"); temp = re_img.exec(text); temp2 = temp; if(null != temp && temp[0] != "") { var re_img1 = new RegExp("(" + UNSUPPORT_IMG_ATTRIBUTE + ")(\\s)*=(\\s)*['\"][^'\"]*['\"]", "ig"); temp3 = temp2[0].replace(re_img1, ""); text = text.replace(temp[0], temp3); } } while(text != textTrack); //re = /(<(h|a|b|big)[^>]*>|<\/(h|a|b|big)[^>]*>)/gi; //text = text.replace(re, ""); return text; } var toMMDDYYYYString = function(date){ var y = date.getFullYear(); var m = date.getMonth()+1; var d = date.getDate(); var h = date.getHours(); var mi = date.getMinutes(); var s = date.getSeconds(); var mili = date.getMilliseconds(); var status; if(h==24){ h = 0; status = ' AM'; }else if(h>12){ h = h - 12; status = ' PM'; }else if(h==12){ status = ' PM'; }else{ status = ' AM'; } return m + '/' + d + '/' + y + ' ' + h + ':' + mi + ':' + s + '.' + mili + status; } var parseTime = function(time){ var dt; try{ if(time && time.indexOf(' DST') > -1) { time = time.replace(' DST', ''); } dt = new Date(time); }catch(e){} if(!dt || isNaN(dt.getTime())){ var today = new Date(); var y = today.getFullYear(); var m = today.getMonth()+1; var d = today.getDate(); dt = new Date(m + '/' + d + '/' + y + ' ' + time); } if(isNaN(dt.getTime())){ return undefined; }else{ return dt; } }