/* Copyright (c) 2007-10, iUI Project Members See LICENSE.txt for licensing terms */ // requires iui.js // requires querySelectorAll, therefore iPhone OS 2.x or later // or Safari 3.x or later // requires DOMContentLoaded event /* Portions Copyright (c) 2009, Masabi Ltd http://www.masabi.com/ */ (function() { var TODAY="Today"; var DAYS=new Array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"); var MONTHS=new Array("January","February","March","April","May","June","July","August","September","October","November","December"); var nameLabelLookup = new Array(); var sesh = new Array(); // ************************************************************************************************* window.iui_ext = { // replacements for HTML5 sessionStorage object, not implemented for iPhone Safari ( form"); for (var i = 0; i < nodes.length ; i++) { injectEventMethods(nodes[i]); } }, false); function injectEventMethods(page) { // avoid recursion! if (page.done) return; page.done = true; // overriding methods in the prototype just didn't want to work... if (page.tagName=="FORM") { // preserve any explicitly defined events in markup page._onfocus = page.onfocus; page._onblur = page.onblur; page.onfocus = function(event) { setFormTags(page,"var"); // swap out any special funky screen types (inputs first, because selects > inputs) var fields = page.getElementsByTagName("input"); for (var i=fields.length-1; i>=0; i--) { applyFormTagValue(fields[i]); // if unsupported, html5 types are replaced with 'text' if (hasClass(fields[i],"date") && fields[i].type!="date") convertInputToDatePicker(fields[i]); } fields = page.getElementsByTagName("select"); for (var i=fields.length-1; i>=0; i--) { applyFormTagValue(fields[i]); if (hasClass(fields[i],"panel")) convertSelectToPanel(fields[i]); else if (hasClass(fields[i],"az")) convertSelectToSortedList(fields[i]); } if (page._onfocus) page._onfocus(event); }; page.onblur = function(event) { storeFormTags(page,"input"); storeFormTags(page,"select"); if (page._onblur) page._onblur(event); }; } } function afterInsert(e) { injectEventMethods(e.insertedNode); // injectEventMethods on newly added node } function back() { history.back(); } function storeFormTags(form,tagName) { var fields = form.getElementsByTagName(tagName); for (i=0; i