/* $Id: tbl_change.js,v 1.1 2005/11/23 19:10:30 nijel Exp $ *//*** Modify from controls when the "NULL" checkbox is selected** @param string the MySQL field type* @param string the urlencoded field name* @param string the md5 hashed field name** @return boolean always true*/function nullify(theType, urlField, md5Field, multi_edit){var rowForm = document.forms['insertForm'];if (typeof(rowForm.elements['funcs' + multi_edit + '[' + urlField + ']']) != 'undefined') {rowForm.elements['funcs' + multi_edit + '[' + urlField + ']'].selectedIndex = -1;}// "SET" field , "ENUM" field with more than 20 characters// or foreign key fieldif (theType == 1 || theType == 3 || theType == 4) {rowForm.elements['field_' + md5Field + multi_edit + '[]'].selectedIndex = -1;}// Other "ENUM" fieldelse if (theType == 2) {var elts = rowForm.elements['field_' + md5Field + multi_edit + '[]'];// when there is just one option in ENUM:if (elts.checked) {elts.checked = false;} else {var elts_cnt = elts.length;for (var i = 0; i < elts_cnt; i++ ) {elts[i].checked = false;} // end for} // end if}// Other field typeselse /*if (theType == 5)*/ {rowForm.elements['fields' + multi_edit + '[' + urlField + ']'].value = '';} // end if... else if... elsereturn true;} // end of the 'nullify()' function/*** Unchecks the "NULL" control when a function has been selected or a value* entered** @param string the urlencoded field name** @return boolean always true*/function unNullify(urlField, multi_edit){var rowForm = document.forms['insertForm'];if (typeof(rowForm.elements['fields_null[multi_edit][' + multi_edit + '][' + urlField + ']']) != 'undefined') {rowForm.elements['fields_null[multi_edit][' + multi_edit + '][' + urlField + ']'].checked = false} // end ifif (typeof(rowForm.elements['insert_ignore_' + multi_edit]) != 'undefined') {rowForm.elements['insert_ignore_' + multi_edit].checked = false} // end ifreturn true;} // end of the 'unNullify()' functionvar day;var month;var year;var hour;var minute;var second;var clock_set = 0;/*** Opens calendar window.** @param string calendar.php parameters* @param string form name* @param string field name* @param string edit type - date/timestamp*/function openCalendar(params, form, field, type) {window.open("./calendar.php?" + params, "calendar", "width=400,height=200,status=yes");dateField = eval("document." + form + "." + field);dateType = type;}/*** Formats number to two digits.** @param int number to format.* @param string type of number*/function formatNum2(i, valtype) {f = (i < 10 ? '0' : '') + i;if (valtype && valtype != '') {switch(valtype) {case 'month':f = (f > 12 ? 12 : f);break;case 'day':f = (f > 31 ? 31 : f);break;case 'hour':f = (f > 24 ? 24 : f);break;default:case 'second':case 'minute':f = (f > 59 ? 59 : f);break;}}return f;}/*** Formats number to two digits.** @param int number to format.* @param int default value* @param string type of number*/function formatNum2d(i, default_v, valtype) {i = parseInt(i, 10);if (isNaN(i)) return default_v;return formatNum2(i, valtype)}/*** Formats number to four digits.** @param int number to format.*/function formatNum4(i) {i = parseInt(i, 10)return (i < 1000 ? i < 100 ? i < 10 ? '000' : '00' : '0' : '') + i;}/*** Initializes calendar window.*/function initCalendar() {if (!year && !month && !day) {/* Called for first time */if (window.opener.dateField.value) {value = window.opener.dateField.value;if (window.opener.dateType == 'datetime' || window.opener.dateType == 'date') {if (window.opener.dateType == 'datetime') {parts = value.split(' ');value = parts[0];if (parts[1]) {time = parts[1].split(':');hour = parseInt(time[0],10);minute = parseInt(time[1],10);second = parseInt(time[2],10);}}date = value.split("-");day = parseInt(date[2],10);month = parseInt(date[1],10) - 1;year = parseInt(date[0],10);} else {year = parseInt(value.substr(0,4),10);month = parseInt(value.substr(4,2),10) - 1;day = parseInt(value.substr(6,2),10);hour = parseInt(value.substr(8,2),10);minute = parseInt(value.substr(10,2),10);second = parseInt(value.substr(12,2),10);}}if (isNaN(year) || isNaN(month) || isNaN(day) || day == 0) {dt = new Date();year = dt.getFullYear();month = dt.getMonth();day = dt.getDate();}if (isNaN(hour) || isNaN(minute) || isNaN(second)) {dt = new Date();hour = dt.getHours();minute = dt.getMinutes();second = dt.getSeconds();}} else {/* Moving in calendar */if (month > 11) {month = 0;year++;}if (month < 0) {month = 11;year--;}}if (document.getElementById) {cnt = document.getElementById("calendar_data");} else if (document.all) {cnt = document.all["calendar_data"];}cnt.innerHTML = "";str = ""//heading tablestr += '<table class="calendar"><tr><th width="50%">';str += '<form method="NONE" onsubmit="return 0">';str += '<a href="javascript:month--; initCalendar();">«</a> ';str += '<select id="select_month" name="monthsel" onchange="month = parseInt(document.getElementById(\'select_month\').value); initCalendar();">';for (i =0; i < 12; i++) {if (i == month) selected = ' selected="selected"';else selected = '';str += '<option value="' + i + '" ' + selected + '>' + month_names[i] + '</option>';}str += '</select>';str += ' <a href="javascript:month++; initCalendar();">»</a>';str += '</form>';str += '</th><th width="50%">';str += '<form method="NONE" onsubmit="return 0">';str += '<a href="javascript:year--; initCalendar();">«</a> ';str += '<select id="select_year" name="yearsel" onchange="year = parseInt(document.getElementById(\'select_year\').value); initCalendar();">';for (i = year - 25; i < year + 25; i++) {if (i == year) selected = ' selected="selected"';else selected = '';str += '<option value="' + i + '" ' + selected + '>' + i + '</option>';}str += '</select>';str += ' <a href="javascript:year++; initCalendar();">»</a>';str += '</form>';str += '</th></tr></table>';str += '<table class="calendar"><tr>';for (i = 0; i < 7; i++) {str += "<th>" + day_names[i] + "</th>";}str += "</tr>";var firstDay = new Date(year, month, 1).getDay();var lastDay = new Date(year, month + 1, 0).getDate();str += "<tr>";dayInWeek = 0;for (i = 0; i < firstDay; i++) {str += "<td> </td>";dayInWeek++;}for (i = 1; i <= lastDay; i++) {if (dayInWeek == 7) {str += "</tr><tr>";dayInWeek = 0;}dispmonth = 1 + month;if (window.opener.dateType == 'datetime' || window.opener.dateType == 'date') {actVal = "" + formatNum4(year) + "-" + formatNum2(dispmonth, 'month') + "-" + formatNum2(i, 'day');} else {actVal = "" + formatNum4(year) + formatNum2(dispmonth, 'month') + formatNum2(i, 'day');}if (i == day) {style = ' class="selected"';current_date = actVal;} else {style = '';}str += "<td" + style + "><a href=\"javascript:returnDate('" + actVal + "');\">" + i + "</a></td>"dayInWeek++;}for (i = dayInWeek; i < 7; i++) {str += "<td> </td>";}str += "</tr></table>";cnt.innerHTML = str;// Should we handle time also?if (window.opener.dateType != 'date' && !clock_set) {if (document.getElementById) {cnt = document.getElementById("clock_data");} else if (document.all) {cnt = document.all["clock_data"];}str = '';init_hour = hour;init_minute = minute;init_second = second;str += '<form method="NONE" class="clock" onsubmit="returnDate(\'' + current_date + '\')">';str += '<input id="hour" type="text" size="2" maxlength="2" onblur="this.value=formatNum2d(this.value, init_hour, \'hour\'); init_hour = this.value;" value="' + formatNum2(hour, 'hour') + '" />:';str += '<input id="minute" type="text" size="2" maxlength="2" onblur="this.value=formatNum2d(this.value, init_minute, \'minute\'); init_minute = this.value;" value="' + formatNum2(minute, 'minute') + '" />:';str += '<input id="second" type="text" size="2" maxlength="2" onblur="this.value=formatNum2d(this.value, init_second, \'second\'); init_second = this.value;" value="' + formatNum2(second, 'second') + '" />';str += '<br />';str += '<input type="submit" value="' + submit_text + '"/>';str += '</form>';cnt.innerHTML = str;clock_set = 1;}}/*** Returns date from calendar.** @param string date text*/function returnDate(d) {txt = d;if (window.opener.dateType != 'date') {// need to get timeh = parseInt(document.getElementById('hour').value,10);m = parseInt(document.getElementById('minute').value,10);s = parseInt(document.getElementById('second').value,10);if (window.opener.dateType == 'datetime') {txt += ' ' + formatNum2(h, 'hour') + ':' + formatNum2(m, 'minute') + ':' + formatNum2(s, 'second');} else {// timestamptxt += formatNum2(h, 'hour') + formatNum2(m, 'minute') + formatNum2(s, 'second');}}window.opener.dateField.value = txt;window.close();}