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;
}
}