Is Pages 5 an ELE?

As in Extinction Level Event. As in the Pages program that helps me run my successful small business is no more? Apple, I know people here say you won't respond to questions, but I know you are here because you police the boards. So please, please, to the one Apple employee that is reading this, be my hero and give me hope. I'll learn the new UI, I promise I will. But for the love of all that is good in this world, GIVE ME BACK THE FUNCTIONALITY ON MY MAC.

We're all struggling here.
Pages 4.3 should still be in an iWorks folder within your Applications folder.
Please remember to tell Apple what we need from them at:
http://www.apple.com/feedback/pages.html
There's also a page on the most popular Social Network.

Similar Messages

  • Quando abro o navegador mozzila, qualquer site que eu acesse ele não mostra fotos ou figuras. como solucionar? já atualizei o navegador, os pluggins e nada.

    Meu navegador mozzila não abre nenhum tipo de imagem, somente textos. Se abro um site qualquer ele exibe textos mas nenhuma foto. Ele funcionava normalmente e de repente ficou desse jeito e não consigo solucionar. Já atualizei a versão, atualizei pluggins, etc e nada resolve. Help me!!!

    If images are missing then check that you aren't blocking images from some domains.
    *Check the permissions for the domain in the current tab in "Tools > Page Info > Permissions"
    *Check that images are enabled: Tools > Options > Content: [X] Load images automatically
    *Check the exceptions in "Tools > Options > Content: Load Images > Exceptions"
    *Check the "Tools > Page Info > Media" tab for blocked images (scroll through all the images with the cursor Down key).
    If an image in the list is grayed and there is a check-mark in the box "<i>Block Images from...</i>" then remove that mark to unblock the images from that domain.
    Make sure that you do not block third-party images, the permissions.default.image pref should be 1.
    There are also extensions like Adblock Plus (Tools > Add-ons > Extensions) and security software (firewall, anti-virus) that can block images and other content.
    See also:
    *https://support.mozilla.org/kb/Troubleshooting+extensions+and+themes
    *http://kb.mozillazine.org/Images_or_animations_do_not_load
    A possible cause is security software (firewall,anti-virus) that blocks or restricts Firefox or the plugin-container process without informing you, possibly after detecting changes (update) to the Firefox program.
    Remove all rules for Firefox and the plugin-container from the permissions list in the firewall and let your firewall ask again for permission to get full unrestricted access to internet for Firefox and the plugin-container process and the updater process.
    See:
    *https://support.mozilla.org/kb/Server+not+found
    *https://support.mozilla.org/kb/Firewalls

  • Showing the same page after savin

    hi!!! i m creating website ...i m using ajax.When the page loads..there are 2 combo box one for state and other for city.on select of state city will get populated and on select of city my age will dynamically generate textbox along with combo box.This dynamically generated textbox will contain all the pincode for a particular selected city. and the combo box will contain all the username .
    My problem starts here...
    1.Once i click on save the data is saved but the dynamically created textbox and combo box goes off leaving behind only the 2 static combo box.
    2.While saving if the user selects the state as maharashtra and city and mumbai.he will get to see..list of pincodes available for mumbai.from that list if he selects the pincode ans 400706 and some "xyz" user from the username(combo).and clicks on save.data is saved.but next if he selects the same state and city then the previoulsy saved data ie for pincode 400706 the respective combo shld hav "xyz" as selected..
    for showing the selection i have used some thing like this ...but this dosen't seemd to work<%ArrayList userlist=(ArrayList)request.getAttribute("USERLIST");
    object.operations.UserObject obj=new object.operations.UserObject();
    int size=userlist.size();
    System.out.println("Size is :-->jsp of userlist"+size);%>
        function processRequest()
              document.getElementById(ele).options.length = 0;
    document.getElementById(ele).options[0] = new Option("Select "+ ele,"0");          
            if (req.readyState == 4)
                if(req.status == 200)
                    //get the text send by the servlet
                    textToSplit = req.responseText;
                         //Split the document
                    returnElements=textToSplit.split("||")
                        for ( var i=0; i<returnElements.length; i++ )
                             valueLabelPair = returnElements.split(";")
                             if(valueLabelPair[0]=="") break;
                             document.getElementById(ele).options[i+1] = new
    Option(valueLabelPair[1], valueLabelPair[0]);
    var ct=valueLabelPair[1];
                             var rows=document.getElementById("pinTabel").rows.length;
                             var oCell.innerHTML=<input type='text' name='pincode'
    value='+valueLabelPair[0]+'>;
                             var oCell.innerHTML=<select><option value=''>Select
    user</option><%for(int j=0;j<size;j++)
    obj=(object.operations.UserObject)userlist.get(j);%><option
    value='<%=obj1.getUserId()%>' if(<%=obj1.getUserId()%>==ct){selected}><%=obj1.getfirstName()%></option>%></select>;
    else
    alert("Error loading page\n"+ req.status +":"+ req.statusText);
    3.is there any way out for showing  the values saved by the user along with the static combobox.so that i would be helpful for the users.
    [/i]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

    Onur - Why not just set a package variable or an item in session state to indicate that there was an error and have the page branch back to itself using a Branch to Page branch (one that does not redirect)? The page would then show the error message if the package variable or item were set.
    Scott

  • On a form w Validation, how to redirect to a custom page

    Hi. I have created a form in Dreamweaver CS5 that uses spry validation successfully. Once the form is submitted, the user is redirected to the home page. But I don't want that redirect.
    My question is, how can I have the validated page redirect to a custom thank you page I designed? I don't know the exact code/syntax to write to make it do what I want and, even if I had the code, I wouldn't know exactly where it should be placed. Please help if you can. Here's the source code. )BTW, when I use Dreamweaver Behaviors to add a URL redirect, it ignores the required validation and simply allows you to click the submit button and redirect.) Many thanks!
    <!DOCTYPE HTML>
    <html>
    <head>
    <meta charset="UTF-8">
    <link href="../_css/main.css" rel="stylesheet" media="screen, projection">
    <link href="../_css/forms.css" rel="stylesheet" media="screen, projection">
    <title></title>
    <!--[if lt IE 9]>
    <script src="http://ie7-js.googlecode.com/svn/version/2.1(beta4)/IE9.js"></script><![endif]-->
    <script src="../SpryAssets/SpryValidationTextField.js" type="text/javascript"></script>
    <link href="../SpryAssets/SpryValidationTextField.css" rel="stylesheet" type="text/css">
    <script type="text/javascript">
    <!-- **** I think the line of code for the redirect is here??...I just don't know how to write the code to redirect to the page I want ***** -->
    function MM_goToURL() { //v3.0
      var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
      for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
    </script>
    </head>
    <body>
    <header id="pageHeader">
    <a href="../index.htm"><img src="../_images/logo.gif" width="170" height="91" alt="HMN logo" id="logo"></a>
    <img src="../_images/tagline.png" width="296" height="92" alt="HMN tagline" id="tagline">
    </header>
    <nav id="mainNav">
    <ul>
    <li><a href="../index.htm">Home</a></li>
    <li><a href="../press.htm">Press</a></li>
    <li><a href="../about.htm">About</a></li>
    <li><a href="../contact.htm">Contact</a></li>
    </ul>
    </nav>
    <br class="clear">
    <div class="headerContact">
    </div>
    <article>
      <!-- The file webformmailer.php sits on the web server at godaddy.com in case that matters -->
    <section id="Request">
    <p id="intro">To request your link for the downloadable <span id="highlight">Media Kit</span>, please provide the following information:</p>
    <form name="Request" method="post" action="../../webformmailer.php"> <p id="formCaption">Fields marked with * are required.</p>
      <p><span id="sprytextfield1">
        <label for="first_name">First Name:*</label>
        <input type="text" name="first_name" id="first_name">
        <span class="textfieldRequiredMsg">(required)</span></span></p>
      <p><span id="sprytextfield2">
        <label for="last_name">Last Name:*</label>
        <input type="text" name="last_name" id="last_name">
        <span class="textfieldRequiredMsg">(required)</span></span></p>
      <p><span id="sprytextfield3">
        <label for="company">Company:*</label>
        <input type="text" name="company" id="company">
        <span class="textfieldRequiredMsg">(required)</span></span></p>
      <p>
        <label for="address">Address:</label>
        <input type="text" name="address" id="address">
      </p>
      <p>
        <label for="address_2">Address 2:</label>
        <input type="text" name="address_2" id="address_2">
      </p>
      <p>
        <label for="city">City:</label>
        <input type="text" name="city" id="city">
      </p>
      <p>
        <label for="state">State:</label>
        <input type="text" name="state" id="state">
      </p>
      <p>
        <label for="zip">Zip:</label>
        <input type="text" name="zip" id="zip">
      </p>
      <p><span id="sprytextfield4">
      <label for="email">Email:*</label>
      <input type="text" name="email" id="email">
      <span class="textfieldRequiredMsg">(required)</span><span class="textfieldInvalidFormatMsg">Invalid format.</span></span> </p>
      <p>
      <input name="submit" type="image" id="submit" onClick="MM_goToURL('parent','media_kit_download.htm');return document.MM_returnValue" src="../_images/btn_submit.png">
      </p>
      <p> </p>
    </form>
    <p>
    </p>
    </div>
    </div>
    </section>
    </article>
    <script type="text/javascript">
    var sprytextfield1 = new Spry.Widget.ValidationTextField("sprytextfield1", "none", {validateOn:["blur"]});
    var sprytextfield2 = new Spry.Widget.ValidationTextField("sprytextfield2", "none", {validateOn:["blur"]});
    var sprytextfield3 = new Spry.Widget.ValidationTextField("sprytextfield3", "none", {validateOn:["blur"]});
    var sprytextfield4 = new Spry.Widget.ValidationTextField("sprytextfield4", "email", {validateOn:["blur"]});
    </script>
    </body>
    </html>

    Thanks for replying. The  URL you've bolded is actually the correct page I'd like the redirect to go to when the form is successfully submitted after validation. But for some reason, that URL request is being ignored and the redirect brings me back to the index page in the root directory. I don't see anywhere in the code that makes the request to do that. Unless that's a default behavior if I've gotten the redirect wrong?
    I don't know if this is helpful, but there is also a .js file that Dreamweaver created and attached to the above HTML source file. The .js file appears to have all the spry code validation including code for features and widgets I'm not even using. I searched through the code several times trying to identify where there might be a redirect to the index page but didn't recognize anything that made sense to me. Here is the complete, unedited file:
    // SpryValidationTextField.js - version 0.38 - Spry Pre-Release 1.6.1
    // Copyright (c) 2006. Adobe Systems Incorporated.
    // All rights reserved.
    // Redistribution and use in source and binary forms, with or without
    // modification, are permitted provided that the following conditions are met:
    //   * Redistributions of source code must retain the above copyright notice,
    //     this list of conditions and the following disclaimer.
    //   * Redistributions in binary form must reproduce the above copyright notice,
    //     this list of conditions and the following disclaimer in the documentation
    //     and/or other materials provided with the distribution.
    //   * Neither the name of Adobe Systems Incorporated nor the names of its
    //     contributors may be used to endorse or promote products derived from this
    //     software without specific prior written permission.
    // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
    // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
    // POSSIBILITY OF SUCH DAMAGE.
    (function() { // BeginSpryComponent
    if (typeof Spry == "undefined") window.Spry = {}; if (!Spry.Widget) Spry.Widget = {};
    Spry.Widget.BrowserSniff = function()
        var b = navigator.appName.toString();
        var up = navigator.platform.toString();
        var ua = navigator.userAgent.toString();
        this.mozilla = this.ie = this.opera = this.safari = false;
        var re_opera = /Opera.([0-9\.]*)/i;
        var re_msie = /MSIE.([0-9\.]*)/i;
        var re_gecko = /gecko/i;
        var re_safari = /(applewebkit|safari)\/([\d\.]*)/i;
        var r = false;
        if ( (r = ua.match(re_opera))) {
            this.opera = true;
            this.version = parseFloat(r[1]);
        } else if ( (r = ua.match(re_msie))) {
            this.ie = true;
            this.version = parseFloat(r[1]);
        } else if ( (r = ua.match(re_safari))) {
            this.safari = true;
            this.version = parseFloat(r[2]);
        } else if (ua.match(re_gecko)) {
            var re_gecko_version = /rv:\s*([0-9\.]+)/i;
            r = ua.match(re_gecko_version);
            this.mozilla = true;
            this.version = parseFloat(r[1]);
        this.windows = this.mac = this.linux = false;
        this.Platform = ua.match(/windows/i) ? "windows" :
                        (ua.match(/linux/i) ? "linux" :
                        (ua.match(/mac/i) ? "mac" :
                        ua.match(/unix/i)? "unix" : "unknown"));
        this[this.Platform] = true;
        this.v = this.version;
        if (this.safari && this.mac && this.mozilla) {
            this.mozilla = false;
    Spry.is = new Spry.Widget.BrowserSniff();
    Spry.Widget.ValidationTextField = function(element, type, options)
        type = Spry.Widget.Utils.firstValid(type, "none");
        if (typeof type != 'string') {
            this.showError('The second parameter in the constructor should be the validation type, the options are the third parameter.');
            return;
        if (typeof Spry.Widget.ValidationTextField.ValidationDescriptors[type] == 'undefined') {
            this.showError('Unknown validation type received as the second parameter.');
            return;
        options = Spry.Widget.Utils.firstValid(options, {});
        this.type = type;
        if (!this.isBrowserSupported()) {
            //disable character masking and pattern behaviors for low level browsers
            options.useCharacterMasking = false;
        this.init(element, options);
        //make sure we validate at least on submit
        var validateOn = ['submit'].concat(Spry.Widget.Utils.firstValid(this.options.validateOn, []));
        validateOn = validateOn.join(",");
        this.validateOn = 0;
        this.validateOn = this.validateOn | (validateOn.indexOf('submit') != -1 ? Spry.Widget.ValidationTextField.ONSUBMIT : 0);
        this.validateOn = this.validateOn | (validateOn.indexOf('blur') != -1 ? Spry.Widget.ValidationTextField.ONBLUR : 0);
        this.validateOn = this.validateOn | (validateOn.indexOf('change') != -1 ? Spry.Widget.ValidationTextField.ONCHANGE : 0);
        if (Spry.Widget.ValidationTextField.onloadDidFire)
            this.attachBehaviors();
        else
            Spry.Widget.ValidationTextField.loadQueue.push(this);
    Spry.Widget.ValidationTextField.ONCHANGE = 1;
    Spry.Widget.ValidationTextField.ONBLUR = 2;
    Spry.Widget.ValidationTextField.ONSUBMIT = 4;
    Spry.Widget.ValidationTextField.ERROR_REQUIRED = 1;
    Spry.Widget.ValidationTextField.ERROR_FORMAT = 2;
    Spry.Widget.ValidationTextField.ERROR_RANGE_MIN = 4;
    Spry.Widget.ValidationTextField.ERROR_RANGE_MAX = 8;
    Spry.Widget.ValidationTextField.ERROR_CHARS_MIN = 16;
    Spry.Widget.ValidationTextField.ERROR_CHARS_MAX = 32;
    /* validation parameters:
    *  - characterMasking : prevent typing of characters not matching an regular expression
    *  - regExpFilter : additional regular expression to disalow typing of characters
    *        (like the "-" sign in the middle of the value); use for partial matching of the currently typed value;
    *         the typed value must match regExpFilter at any moment
    *  - pattern : enforce character on each position inside a pattern (AX0?)
    *  - validation : function performing logic validation; return false if failed and the typedValue value on success
    *  - minValue, maxValue : range validation; check if typedValue inside the specified range
    *  - minChars, maxChars : value length validation; at least/at most number of characters
    Spry.Widget.ValidationTextField.ValidationDescriptors = {
        'none': {
        'custom': {
        'integer': {
            characterMasking: /[\-\+\d]/,
            regExpFilter: /^[\-\+]?\d*$/,
            validation: function(value, options) {
                if (value == '' || value == '-' || value == '+') {
                    return false;
                var regExp = /^[\-\+]?\d*$/;
                if (!regExp.test(value)) {
                    return false;
                options = options || {allowNegative:false};
                var ret = parseInt(value, 10);
                if (!isNaN(ret)) {
                    var allowNegative = true;
                    if (typeof options.allowNegative != 'undefined' && options.allowNegative == false) {
                        allowNegative = false;
                    if (!allowNegative && value < 0) {
                        ret = false;
                } else {
                    ret = false;
                return ret;
        'real': {
            characterMasking: /[\d\.,\-\+e]/i,
            regExpFilter: /^[\-\+]?\d(?:|\.,\d{0,2})|(?:|e{0,1}[\-\+]?\d{0,})$/i,
            validation: function (value, options) {
                var regExp = /^[\+\-]?[0-9]+([\.,][0-9]+)?([eE]{0,1}[\-\+]?[0-9]+)?$/;
                if (!regExp.test(value)) {
                    return false;
                var ret = parseFloat(value);
                if (isNaN(ret)) {
                    ret = false;
                return ret;
        'currency': {
            formats: {
                'dot_comma': {
                    characterMasking: /[\d\.\,\-\+\$]/,
                    regExpFilter: /^[\-\+]?(?:[\d\.]*)+(|\,\d{0,2})$/,
                    validation: function(value, options) {
                        var ret = false;
                        //2 or no digits after the comma
                        if (/^(\-|\+)?\d{1,3}(?:\.\d{3})*(?:\,\d{2}|)$/.test(value) || /^(\-|\+)?\d+(?:\,\d{2}|)$/.test(value)) {
                            value = value.toString().replace(/\./gi, '').replace(/\,/, '.');
                            ret = parseFloat(value);
                        return ret;
                'comma_dot': {
                    characterMasking: /[\d\.\,\-\+\$]/,
                    regExpFilter: /^[\-\+]?(?:[\d\,]*)+(|\.\d{0,2})$/,
                    validation: function(value, options) {
                        var ret = false;
                        //2 or no digits after the comma
                        if (/^(\-|\+)?\d{1,3}(?:\,\d{3})*(?:\.\d{2}|)$/.test(value) || /^(\-|\+)?\d+(?:\.\d{2}|)$/.test(value)) {
                            value = value.toString().replace(/\,/gi, '');
                            ret = parseFloat(value);
                        return ret;
        'email': {
            characterMasking: /[^\s]/,
            validation: function(value, options) {
                var rx = /^[\w\.-]+@[\w\.-]+\.\w+$/i;
                return rx.test(value);
        'date': {
            validation: function(value, options) {
                var formatRegExp = /^([mdy]+)[\.\-\/\\\s]+([mdy]+)[\.\-\/\\\s]+([mdy]+)$/i;
                var valueRegExp = this.dateValidationPattern;
                var formatGroups = options.format.match(formatRegExp);
                var valueGroups = value.match(valueRegExp);
                if (formatGroups !== null && valueGroups !== null) {
                    var dayIndex = -1;
                    var monthIndex = -1;
                    var yearIndex = -1;
                    for (var i=1; i<formatGroups.length; i++) {
                        switch (formatGroups[i].toLowerCase()) {
                            case "dd":
                                dayIndex = i;
                                break;
                            case "mm":
                                monthIndex = i;
                                break;
                            case "yy":
                            case "yyyy":
                                yearIndex = i;
                                break;
                    if (dayIndex != -1 && monthIndex != -1 && yearIndex != -1) {
                        var maxDay = -1;
                        var theDay = parseInt(valueGroups[dayIndex], 10);
                        var theMonth = parseInt(valueGroups[monthIndex], 10);
                        var theYear = parseInt(valueGroups[yearIndex], 10);
                        // Check month value to be between 1..12
                        if (theMonth < 1 || theMonth > 12) {
                            return false;
                        // Calculate the maxDay according to the current month
                        switch (theMonth) {
                            case 1:    // January
                            case 3: // March
                            case 5: // May
                            case 7: // July
                            case 8: // August
                            case 10: // October
                            case 12: // December
                                maxDay = 31;
                                break;
                            case 4:    // April
                            case 6: // June
                            case 9: // September
                            case 11: // November
                                maxDay = 30;
                                break;
                            case 2: // February
                                if ((parseInt(theYear/4, 10) * 4 == theYear) && (theYear % 100 != 0 || theYear % 400 == 0)) {
                                    maxDay = 29;
                                } else {
                                    maxDay = 28;
                                break;
                        // Check day value to be between 1..maxDay
                        if (theDay < 1 || theDay > maxDay) {
                            return false;
                        // If successfull we'll return the date object
                        return (new Date(theYear, theMonth - 1, theDay));   //JavaScript requires a month between 0 and 11
                } else {
                    return false;
        'time': {
            validation: function(value, options) {
                //    HH:MM:SS T
                var formatRegExp = /([hmst]+)/gi;
                var valueRegExp = /(\d+|AM?|PM?)/gi;
                var formatGroups = options.format.match(formatRegExp);
                var valueGroups = value.match(valueRegExp);
                //mast match and have same length
                if (formatGroups !== null && valueGroups !== null) {
                    if (formatGroups.length != valueGroups.length) {
                        return false;
                    var hourIndex = -1;
                    var minuteIndex = -1;
                    var secondIndex = -1;
                    //T is AM or PM
                    var tIndex = -1;
                    var theHour = 0, theMinute = 0, theSecond = 0, theT = 'AM';
                    for (var i=0; i<formatGroups.length; i++) {
                        switch (formatGroups[i].toLowerCase()) {
                            case "hh":
                                hourIndex = i;
                                break;
                            case "mm":
                                minuteIndex = i;
                                break;
                            case "ss":
                                secondIndex = i;
                                break;
                            case "t":
                            case "tt":
                                tIndex = i;
                                break;
                    if (hourIndex != -1) {
                        var theHour = parseInt(valueGroups[hourIndex], 10);
                        if (isNaN(theHour) || theHour > (formatGroups[hourIndex] == 'HH' ? 23 : 12 )) {
                            return false;
                    if (minuteIndex != -1) {
                        var theMinute = parseInt(valueGroups[minuteIndex], 10);
                        if (isNaN(theMinute) || theMinute > 59) {
                            return false;
                    if (secondIndex != -1) {
                        var theSecond = parseInt(valueGroups[secondIndex], 10);
                        if (isNaN(theSecond) || theSecond > 59) {
                            return false;
                    if (tIndex != -1) {
                        var theT = valueGroups[tIndex].toUpperCase();
                        if (
                            formatGroups[tIndex].toUpperCase() == 'TT' && !/^a|pm$/i.test(theT) ||
                            formatGroups[tIndex].toUpperCase() == 'T' && !/^a|p$/i.test(theT)
                            return false;
                    var date = new Date(2000, 0, 1, theHour + (theT.charAt(0) == 'P'?12:0), theMinute, theSecond);
                    return date;
                } else {
                    return false;
        'credit_card': {
            characterMasking: /\d/,
            validation: function(value, options) {
                var regExp = null;
                options.format = options.format || 'ALL';
                switch (options.format.toUpperCase()) {
                    case 'ALL': regExp = /^[3-6]{1}[0-9]{12,18}$/; break;
                    case 'VISA': regExp = /^4(?:[0-9]{12}|[0-9]{15})$/; break;
                    case 'MASTERCARD': regExp = /^5[1-5]{1}[0-9]{14}$/; break;
                    case 'AMEX': regExp = /^3(4|7){1}[0-9]{13}$/; break;
                    case 'DISCOVER': regExp = /^6011[0-9]{12}$/; break;
                    case 'DINERSCLUB': regExp = /^3(?:(0[0-5]{1}[0-9]{11})|(6[0-9]{12})|(8[0-9]{12}))$/; break;
                if (!regExp.test(value)) {
                    return false;
                var digits = [];
                var j = 1, digit = '';
                for (var i = value.length - 1; i >= 0; i--) {
                    if ((j%2) == 0) {
                        digit = parseInt(value.charAt(i), 10) * 2;
                        digits[digits.length] = digit.toString().charAt(0);
                        if (digit.toString().length == 2) {
                            digits[digits.length] = digit.toString().charAt(1);
                    } else {
                        digit = value.charAt(i);
                        digits[digits.length] = digit;
                    j++;
                var sum = 0;
                for(i=0; i < digits.length; i++ ) {
                    sum += parseInt(digits[i], 10);
                if ((sum%10) == 0) {
                    return true;
                return false;
        'zip_code': {
            formats: {
                'zip_us9': {
                    pattern:'00000-0000'
                'zip_us5': {
                    pattern:'00000'
                'zip_uk': {
                    characterMasking: /[\dA-Z\s]/,
                    validation: function(value, options) {
                        //check one of the following masks
                        // AN NAA, ANA NAA, ANN NAA, AAN NAA, AANA NAA, AANN NAA
                        return /^[A-Z]{1,2}\d[\dA-Z]?\s?\d[A-Z]{2}$/.test(value);
                'zip_canada': {
                    characterMasking: /[\dA-Z\s]/,
                    pattern: 'A0A 0A0'
                'zip_custom': {}
        'phone_number': {
            formats: {
                //US phone number; 10 digits
                'phone_us': {
                    pattern:'(000) 000-0000'
                'phone_custom': {}
        'social_security_number': {
            pattern:'000-00-0000'
        'ip': {
            characterMaskingFormats: {
                'ipv4': /[\d\.]/i,
                'ipv6_ipv4': /[\d\.\:A-F\/]/i,
                'ipv6': /[\d\.\:A-F\/]/i
            validation: function (value, options) {
                return Spry.Widget.ValidationTextField.validateIP(value, options.format);
        'url': {
            characterMasking: /[^\s]/,
            validation: function(value, options) {
                //fix for ?ID=223429 and ?ID=223387
                /* the following regexp matches components of an URI as specified in http://tools.ietf.org/html/rfc3986#page-51 page 51, Appendix B.
                    scheme    = $2
                    authority = $4
                    path      = $5
                    query     = $7
                    fragment  = $9
                var URI_spliter = /^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;
                var parts = value.match(URI_spliter);
                if (parts && parts[4]) {
                    //encode each component of the domain name using Punycode encoding scheme: http://tools.ietf.org/html/rfc3492
                    var host  = parts[4].split(".");
                    var punyencoded = '';
                    for (var i=0; i<host.length; i++) {
                        punyencoded = Spry.Widget.Utils.punycode_encode(host[i], 64);
                        if (!punyencoded) {
                            return false;
                        } else {
                            if (punyencoded != (host[i] + "-")) {
                                host[i] = 'xn--' + punyencoded;
                    host = host .join(".");
                    //the encoded domain name is replaced into the original URL to be validated again later as URL
                    value = value.replace(URI_spliter, "$1//" + host + "$5$6$8");
                //fix for ?ID=223358 and ?ID=223594
                //the following validates an URL using ABNF rules as defined in http://tools.ietf.org/html/rfc3986 , Appendix A., page 49
                //except host which is extracted by match[1] and validated separately
                 * userinfo=    (?:(?:[a-z0-9\-\._~\!\$\&\'\(\)\*\+\,\;\=:]|%[0-9a-f]{2,2})*\@)?
                 * host=            (?:((?:(?:[a-z0-9][a-z0-9\-]*[a-z0-9]|[a-z0-9])\.)*(?:[a-z][a-z0-9\-]*[a-z0-9]|[a-z])|(?: \[[^\]]*\]))
                 * pathname=    (?:\/(?:[a-z0-9\-\._~\!\$\&\'\(\)\*\+\,\;\=\:\@]|%[0-9a-f]{2,2})*)*
                 * query=            (?:\?(?:[a-z0-9\-\._~\!\$\&\'\(\)\*\+\,\;\=\:\@\/\?]|%[0-9a-f]{2,2})*)?
                 * anchor=        (?:\#(?:[a-z0-9\-\._~\!\$\&\'\(\)\*\+\,\;\=\:\@\/\?]|%[0-9a-f]{2,2})*)?
                var regExp = /^(?:https?|ftp)\:\/\/(?:(?:[a-z0-9\-\._~\!\$\&\'\(\)\*\+\,\;\=:]|%[0-9a-f]{2,2})*\@)?(?: ((?:(?:[a-z0-9][a-z0-9\-]*[a-z0-9]|[a-z0-9])\.)*(?:[a-z][a-z0-9\-]*[a-z0-9]|[a-z])|(?:\[[^ \]]*\]))(?:\:[0-9]*)?)(?:\/(?:[a-z0-9\-\._~\!\$\&\'\(\)\*\+\,\;\=\:\@]|%[0-9a-f]{2,2})*)*( ?:\?(?:[a-z0-9\-\._~\!\$\&\'\(\)\*\+\,\;\=\:\@\/\?]|%[0-9a-f]{2,2})*)?(?:\#(?:[a-z0-9\-\._ ~\!\$\&\'\(\)\*\+\,\;\=\:\@\/\?]|%[0-9a-f]{2,2})*)?$/i;
                var valid = value.match(regExp);
                if (valid) {
                    //extract the  address from URL
                    var address = valid[1];
                    if (address) {
                        if (address == '[]') {
                            return false;
                        if (address.charAt(0) == '[' ) {
                            //IPv6 address or IPv4 enclosed in square brackets
                            address = address.replace(/^\[|\]$/gi, '');
                            return Spry.Widget.ValidationTextField.validateIP(address, 'ipv6_ipv4');
                        } else {
                            if (/[^0-9\.]/.test(address)) {
                                return true;
                            } else {
                                //check if hostname is all digits and dots and then check for IPv4
                                return Spry.Widget.ValidationTextField.validateIP(address, 'ipv4');
                    } else {
                        return true;
                } else {
                    return false;
    2.2.1. Preferred
    x:x:x:x:x:x:x:x, where the 'x's are the hexadecimal values of the eight 16-bit pieces of the address.
    Examples:
        FEDC:BA98:7654:3210:FEDC:BA98:7654:3210
        1080:0:0:0:8:800:200C:417A
    Note that it is not necessary to write the leading zeros in an
    individual field, but there must be at least one numeral in every
    field (except for the case described in 2.2.2.).
    2.2.2. Compressed
    The use of "::" indicates multiple groups of 16-bits of zeros.
    The "::" can only appear once in an address.  The "::" can also be
    used to compress the leading and/or trailing zeros in an address.
        1080:0:0:0:8:800:200C:417A --> 1080::8:800:200C:417A
        FF01:0:0:0:0:0:0:101 --> FF01::101
        0:0:0:0:0:0:0:1 --> ::1
        0:0:0:0:0:0:0:0 --> ::
    2.5.4 IPv6 Addresses with Embedded IPv4 Addresses
        IPv4-compatible IPv6 address (tunnel IPv6 packets over IPv4 routing infrastructures)
        ::0:129.144.52.38
        IPv4-mapped IPv6 address (represent the addresses of IPv4-only nodes as IPv6 addresses)
        ::ffff:129.144.52.38
    The text representation of IPv6 addresses and prefixes in Augmented BNF (Backus-Naur Form) [ABNF] for reference purposes.
    [ABNF http://tools.ietf.org/html/rfc2234]
          IPv6address = hexpart [ ":" IPv4address ]
          IPv4address = 1*3DIGIT "." 1*3DIGIT "." 1*3DIGIT "." 1*3DIGIT
          IPv6prefix  = hexpart "/" 1*2DIGIT
          hexpart = hexseq | hexseq "::" [ hexseq ] | "::" [ hexseq ]
          hexseq  = hex4 *( ":" hex4)
          hex4    = 1*4HEXDIG
    Spry.Widget.ValidationTextField.validateIP = function (value, format)
        var validIPv6Addresses = [
            //preferred
            /^(?:[a-f0-9]{1,4}:){7}[a-f0-9]{1,4}(?:\/\d{1,3})?$/i,
            //various compressed
            /^[a-f0-9]{0,4}::(?:\/\d{1,3})?$/i,
            /^:(?::[a-f0-9]{1,4}){1,6}(?:\/\d{1,3})?$/i,
            /^(?:[a-f0-9]{1,4}:){1,6}:(?:\/\d{1,3})?$/i,
            /^(?:[a-f0-9]{1,4}:)(?::[a-f0-9]{1,4}){1,6}(?:\/\d{1,3})?$/i,
            /^(?:[a-f0-9]{1,4}:){2}(?::[a-f0-9]{1,4}){1,5}(?:\/\d{1,3})?$/i,
            /^(?:[a-f0-9]{1,4}:){3}(?::[a-f0-9]{1,4}){1,4}(?:\/\d{1,3})?$/i,
            /^(?:[a-f0-9]{1,4}:){4}(?::[a-f0-9]{1,4}){1,3}(?:\/\d{1,3})?$/i,
            /^(?:[a-f0-9]{1,4}:){5}(?::[a-f0-9]{1,4}){1,2}(?:\/\d{1,3})?$/i,
            /^(?:[a-f0-9]{1,4}:){6}(?::[a-f0-9]{1,4})(?:\/\d{1,3})?$/i,
            //IPv6 mixes with IPv4
            /^(?:[a-f0-9]{1,4}:){6}(?:\d{1,3}\.){3}\d{1,3}(?:\/\d{1,3})?$/i,
            /^:(?::[a-f0-9]{1,4}){0,4}:(?:\d{1,3}\.){3}\d{1,3}(?:\/\d{1,3})?$/i,
            /^(?:[a-f0-9]{1,4}:){1,5}:(?:\d{1,3}\.){3}\d{1,3}(?:\/\d{1,3})?$/i,
            /^(?:[a-f0-9]{1,4}:)(?::[a-f0-9]{1,4}){1,4}:(?:\d{1,3}\.){3}\d{1,3}(?:\/\d{1,3})?$/i,
            /^(?:[a-f0-9]{1,4}:){2}(?::[a-f0-9]{1,4}){1,3}:(?:\d{1,3}\.){3}\d{1,3}(?:\/\d{1,3})?$/i,    
            /^(?:[a-f0-9]{1,4}:){3}(?::[a-f0-9]{1,4}){1,2}:(?:\d{1,3}\.){3}\d{1,3}(?:\/\d{1,3})?$/i,
            /^(?:[a-f0-9]{1,4}:){4}(?::[a-f0-9]{1,4}):(?:\d{1,3}\.){3}\d{1,3}(?:\/\d{1,3})?$/i
        var validIPv4Addresses = [
            //IPv4
            /^(\d{1,3}\.){3}\d{1,3}$/i
        var validAddresses = [];
        if (format == 'ipv6' || format == 'ipv6_ipv4') {
            validAddresses = validAddresses.concat(validIPv6Addresses);
        if (format == 'ipv4' || format == 'ipv6_ipv4') {
            validAddresses = validAddresses.concat(validIPv4Addresses);
        var ret = false;
        for (var i=0; i<validAddresses.length; i++) {
            if (validAddresses[i].test(value)) {
                ret = true;
                break;
        if (ret && value.indexOf(".") != -1) {
            //if address contains IPv4 fragment, it must be valid; all 4 groups must be less than 256
            var ipv4 = value.match(/:?(?:\d{1,3}\.){3}\d{1,3}/i);
            if(!ipv4) {
                return false;
            ipv4 = ipv4[0].replace(/^:/, '');
            var pieces = ipv4.split('.');
            if (pieces.length != 4) {
                return false;
            var regExp = /^[\-\+]?\d*$/;
            for (var i=0; i< pieces.length; i++) {
                if (pieces[i] == '') {
                    return false;
                var piece = parseInt(pieces[i], 10);
                if (isNaN(piece) || piece > 255 || !regExp.test(pieces[i]) || pieces[i].length>3 || /^0{2,3}$/.test(pieces[i])) {
                    return false;
        if (ret && value.indexOf("/") != -1) {
            // if prefix-length is specified must be in [1-128]
            var prefLen = value.match(/\/\d{1,3}$/);
            if (!prefLen) return false;
            var prefLenVal = parseInt(prefLen[0].replace(/^\//,''), 10);
            if (isNaN(prefLenVal) || prefLenVal > 128 || prefLenVal < 1) {
                return false;
        return ret;
    Spry.Widget.ValidationTextField.onloadDidFire = false;
    Spry.Widget.ValidationTextField.loadQueue = [];
    Spry.Widget.ValidationTextField.prototype.isBrowserSupported = function()
        return Spry.is.ie && Spry.is.v >= 5 && Spry.is.windows
            ||
        Spry.is.mozilla && Spry.is.v >= 1.4
            ||
        Spry.is.safari
            ||
        Spry.is.opera && Spry.is.v >= 9;
    Spry.Widget.ValidationTextField.prototype.init = function(element, options)
        this.element = this.getElement(element);
        this.errors = 0;
        this.flags = {locked: false, restoreSelection: true};
        this.options = {};
        this.event_handlers = [];
        this.validClass = "textfieldValidState";
        this.focusClass = "textfieldFocusState";
        this.requiredClass = "textfieldRequiredState";
        this.hintClass = "textfieldHintState";
        this.invalidFormatClass = "textfieldInvalidFormatState";
        this.invalidRangeMinClass = "textfieldMinValueState";
        this.invalidRangeMaxClass = "textfieldMaxValueState";
        this.invalidCharsMinClass = "textfieldMinCharsState";
        this.invalidCharsMaxClass = "textfieldMaxCharsState";
        this.textfieldFlashTextClass = "textfieldFlashText";
        if (Spry.is.safari) {
            this.flags.lastKeyPressedTimeStamp = 0;
        switch (this.type) {
            case 'phone_number':options.format = Spry.Widget.Utils.firstValid(options.format, 'phone_us');break;
            case 'currency':options.format = Spry.Widget.Utils.firstValid(options.format, 'comma_dot');break;
            case 'zip_code':options.format = Spry.Widget.Utils.firstValid(options.format, 'zip_us5');break;
            case 'date':
                options.format = Spry.Widget.Utils.firstValid(options.format, 'mm/dd/yy');
                break;
            case 'time':
                options.format = Spry.Widget.Utils.firstValid(options.format, 'HH:mm');
                options.pattern = options.format.replace(/[hms]/gi, "0").replace(/TT/gi, 'AM').replace(/T/gi, 'A');
                break;
            case 'ip':
                options.format = Spry.Widget.Utils.firstValid(options.format, 'ipv4');
                options.characterMasking = Spry.Widget.ValidationTextField.ValidationDescriptors[this.type].characterMaskingFormats[ options.format];
                break;
        //retrieve the validation type descriptor to be used with this instance (base on type and format)
        //widgets may have different validations depending on format (like zip_code with formats)
        var validationDescriptor = {};
        if (options.format && Spry.Widget.ValidationTextField.ValidationDescriptors[this.type].formats) {
            if (Spry.Widget.ValidationTextField.ValidationDescriptors[this.type].formats[options.format] ) {
                Spry.Widget.Utils.setOptions(validationDescriptor, Spry.Widget.ValidationTextField.ValidationDescriptors[this.type].formats[options.format]) ;
        } else {
            Spry.Widget.Utils.setOptions(validationDescriptor, Spry.Widget.ValidationTextField.ValidationDescriptors[this.type]);
        //set default values for some parameters which were not aspecified
        options.useCharacterMasking = Spry.Widget.Utils.firstValid(options.useCharacterMasking, false);
        options.hint = Spry.Widget.Utils.firstValid(options.hint, '');
        options.isRequired = Spry.Widget.Utils.firstValid(options.isRequired, true);
        options.additionalError = Spry.Widget.Utils.firstValid(options.additionalError, false);
        if (options.additionalError)
            options.additionalError = this.getElement(options.additionalError);
        //set widget validation parameters
        //get values from validation type descriptor
        //use the user specified values, if defined
        options.characterMasking = Spry.Widget.Utils.firstValid(options.characterMasking, validationDescriptor.characterMasking);
        options.regExpFilter = Spry.Widget.Utils.firstValid(options.regExpFilter, validationDescriptor.regExpFilter);
        options.pattern = Spry.Widget.Utils.firstValid(options.pattern, validationDescriptor.pattern);
        options.validation = Spry.Widget.Utils.firstValid(options.validation, validationDescriptor.validation);
        if (typeof options.validation == 'string') {
            options.validation = eval(options.validation);
        options.minValue = Spry.Widget.Utils.firstValid(options.minValue, validationDescriptor.minValue);
        options.maxValue = Spry.Widget.Utils.firstValid(options.maxValue, validationDescriptor.maxValue);
        options.minChars = Spry.Widget.Utils.firstValid(options.minChars, validationDescriptor.minChars);
        options.maxChars = Spry.Widget.Utils.firstValid(options.maxChars, validationDescriptor.maxChars);
        Spry.Widget.Utils.setOptions(this, options);
        Spry.Widget.Utils.setOptions(this.options, options);
    Spry.Widget.ValidationTextField.prototype.destroy = function() {
        if (this.event_handlers)
            for (var i=0; i<this.event_handlers.length; i++) {
                Spry.Widget.Utils.removeEventListener(this.event_handlers[i][0], this.event_handlers[i][1], this.event_handlers[i][2], false);
        try { delete this.element; } catch(err) {}
        try { delete this.input; } catch(err) {}
        try { delete this.form; } catch(err) {}
        try { delete this.event_handlers; } catch(err) {}
        try { this.selection.destroy(); } catch(err) {}
        try { delete this.selection; } catch(err) {}
        var q = Spry.Widget.Form.onSubmitWidgetQueue;
        var qlen = q.length;
        for (var i = 0; i < qlen; i++) {
            if (q[i] == this) {
                q.splice(i, 1);
                break;
    Spry.Widget.ValidationTextField.prototype.attachBehaviors = function()
        if (this.element) {
            if (this.element.nodeName == "INPUT") {
                this.input = this.element;
            } else {
                this.input = Spry.Widget.Utils.getFirstChildWithNodeNameAtAnyLevel(this.element, "INPUT");
        if (this.input) {
            if (this.maxChars) {
                this.input.removeAttribute("maxLength");
            this.putHint();
            this.compilePattern();
            if (this.type == 'date') {
                this.compileDatePattern();
            this.input.setAttribute("AutoComplete", "off");
            this.selection = new Spry.Widget.SelectionDescriptor(this.input);
            this.oldValue = this.input.value;
            var self = this;
            this.event_handlers = [];
            this.event_handlers.push([this.input, "keydown", function(e) { if (self.isDisabled()) return true; return self.onKeyDown(e || event); }]);
            this.event_handlers.push([this.input, "keypress", function(e) { if (self.isDisabled()) return true; return self.onKeyPress(e || event); }]);
            if (Spry.is.opera) {
                this.event_handlers.push([this.input, "keyup", function(e) { if (self.isDisabled()) return true; return self.onKeyUp(e || event); }]);
            this.event_handlers.push([this.input, "focus", function(e) { if (self.isDisabled()) return true; return self.onFocus(e || event); }]);
            this.event_handlers.push([this.input, "blur", function(e) { if (self.isDisabled()) return true; return self.onBlur(e || event); }]);
            this.event_handlers.push([this.input, "mousedown", function(e) { if (self.isDisabled()) return true; return self.onMouseDown(e || event); }]);
            var changeEvent =
                Spry.is.mozilla || Spry.is.opera || Spry.is.safari?"input":
                Spry.is.ie?"propertychange":
                "change";
            this.event_handlers.push([this.input, changeEvent, function(e) { if (self.isDisabled()) return true; return self.onChange(e || event); }]);
            if (Spry.is.mozilla || Spry.is.safari) {
                //oninput event on mozilla does not fire ondragdrop
                this.event_handlers.push([this.input, "dragdrop", function(e) { if (self.isDisabled()) return true; self.removeHint();return self.onChange(e || event); }]);
            } else if (Spry.is.ie){
                //ondrop&onpropertychange crash on IE
                this.event_handlers.push([this.input, "drop", function(e) { if (self.isDisabled()) return true; return self.onDrop(e || event); }]);
            for (var i=0; i<this.event_handlers.length; i++) {
                Spry.Widget.Utils.addEventListener(this.event_handlers[i][0], this.event_handlers[i][1], this.event_handlers[i][2], false);
            // submit
            this.form = Spry.Widget.Utils.getFirstParentWithNodeName(this.input, "FORM");
            if (this.form) {
                // if no "onSubmit" handler has been attached to the current form, attach one
                if (!this.form.attachedSubmitHandler && !this.form.onsubmit) {
                    this.form.onsubmit = function(e) { e = e || event; return Spry.Widget.Form.onSubmit(e, e.srcElement || e.currentTarget) };
                    this.form.attachedSubmitHandler = true;                
                if (!this.form.attachedResetHandler) {
                    Spry.Widget.Utils.addEventListener(this.form, "reset", function(e) { e = e || event; return Spry.Widget.Form.onReset(e, e.srcElement || e.currentTarget) }, false);
                    this.form.attachedResetHandler = true;                
                // add the currrent widget to the "onSubmit" check queue;
                Spry.Widget.Form.onSubmitWidgetQueue.push(this);
    Spry.Widget.ValidationTextField.prototype.isDisabled = function() {
        return this.input && (this.input.disabled || this.input.readOnly) || !this.input;
    Spry.Widget.ValidationTextField.prototype.getElement = function(ele)
        if (ele && typeof ele == "string")
            return document.getElementById(ele);
        return ele;
    Spry.Widget.ValidationTextField.addLoadListener = function(handler)
        if (typeof window.addEventListener != 'undefined')
            window.addEventListener('load', handler, false);
        else if (typeof document.addEventListener != 'undefined')
            document.addEventListener('load', handler, false);
        else if (typeof window.attachEvent != 'undefined')
            window.attachEvent('onload', handler);
    Spry.Widget.ValidationTextField.processLoadQueue = function(handler)
        Spry.Widget.ValidationTextField.onloadDidFire = true;
        var q = Spry.Widget.ValidationTextField.loadQueue;
        var qlen = q.length;
        for (var i = 0; i < qlen; i++)
            q[i].attachBehaviors();
    Spry.Widget.ValidationTextField.addLoadListener(Spry.Widget.ValidationTextField.processLoa dQueue);
    Spry.Widget.ValidationTextField.addLoadListener(function(){
        Spry.Widget.Utils.addEventListener(window, "unload", Spry.Widget.Form.destroyAll, false);
    Spry.Widget.ValidationTextField.prototype.setValue = function(newValue) {
        this.flags.locked = true;
        this.input.value = newValue;
        this.flags.locked = false;
        this.oldValue = newValue;
        if (!Spry.is.ie) {
            this.onChange();
    * save the state of the input (selection and value) so we can revert to it
    * should call this just before modifying the input value
    Spry.Widget.ValidationTextField.prototype.saveState = function()
        this.oldValue = this.input.value;
        this.selection.update();
    Spry.Widget.ValidationTextField.prototype.revertState = function(revertValue)
        if (revertValue != this.input.value) {
            this.input.readOnly = true;
            this.input.value = revertValue;
            this.input.readOnly = false;
            if (Spry.is.safari && this.flags.active) {
                this.input.focus();
      if (this.flags.restoreSelection) {
        this.selection.moveTo(this.selection.start, this.selection.end);
        this.redTextFlash();
    Spry.Widget.ValidationTextField.prototype.removeHint = function()
        if (this.flags.hintOn) {
            this.input.value = "";
            this.flags.hintOn = false;
            this.removeClassName(this.element, this.hintClass);
            this.removeClassName(this.additionalError, this.hintClass);
    Spry.Widget.ValidationTextField.prototype.putHint = function()
        if(this.hint && this.input && this.input.type == "text" && this.input.value == "") {
            this.flags.hintOn = true;
            this.input.value = this.hint;
            this.addClassName(this.element, this.hintClass);
            this.addClassName(this.additionalError, this.hintClass);
    Spry.Widget.ValidationTextField.prototype.redTextFlash = function()
        var self = this;
        this.addClassName(this.element, this.textfieldFlashTextClass);
        setTimeout(function() {
            self.removeClassName(self.element, self.textfieldFlashTextClass)
        }, 100);
    Spry.Widget.ValidationTextField.prototype.doValidations = function(testValue, revertValue)
        if (this.isDisabled()) return false;
        if (this.flags.locked) {
            return false;
        if (testValue.length == 0 && !this.isRequired) {
            this.errors = 0;
            return false;
        this.flags.locked = true;
        var mustRevert = false;
        var continueValidations = true;
        if (!this.options.isRequired && testValue.length == 0) {
            continueValidations = false;
        var errors = 0;
        var fixedValue = testValue;
        //characterMasking - test if all characters are valid with the characterMasking (keyboard filter)
        if (this.useCharacterMasking && this.characterMasking) {
            for(var i=0; i<testValue.length; i++) {
                if (!this.characterMasking.test(testValue.charAt(i))) {
                    errors = errors | Spry.Widget.ValidationTextField.ERROR_FORMAT;
                    fixedValue = revertValue;
                    mustRevert = true;
                    break;
        //regExpFilter - character mask positioning (additional mask to restrict some characters only in some position)
        if (!mustRevert && this.useCharacterMasking && this.regExpFilter) {
            if (!this.regExpFilter.test(fixedValue)) {
                errors = errors | Spry.Widget.ValidationTextField.ERROR_FORMAT;
                mustRevert = true;
        //pattern - testValue matches the pattern so far
        if (!mustRevert && this.pattern) {
            var currentRegExp = this.patternToRegExp(testValue.length);
            if (!currentRegExp.test(testValue)) {
                errors = errors | Spry.Widget.ValidationTextField.ERROR_FORMAT;
                mustRevert = true;
            } else if (this.patternLength != testValue.length) {
                //testValue matches pattern so far, but it's not ok if it does not have the proper length
                //do not revert, but should show the error
                errors = errors | Spry.Widget.ValidationTextField.ERROR_FORMAT;
        if (fixedValue == '') {
            errors = errors | Spry.Widget.ValidationTextField.ERROR_REQUIRED;
        if (!mustRevert && this.pattern && this.useCharacterMasking) {
            var n = this.getAutoComplete(testValue.length);
            if (n) {
                fixedValue += n;
        if(!mustRevert && this.minChars !== null  && continueValidations) {
            if (testValue.length < this.minChars) {
                errors = errors | Spry.Widget.ValidationTextField.ERROR_CHARS_MIN;
                continueValidations = false;
        if(!mustRevert && this.maxChars !== null && continueValidations) {
            if (testValue.length > this.maxChars) {
                errors = errors | Spry.Widget.ValidationTextField.ERROR_CHARS_MAX;
                continueValidations = false;
        //validation - testValue passes widget validation function
        if (!mustRevert && this.validation && continueValidations) {
            var value = this.validation(fixedValue, this.options);
            if (false === value) {
                errors = errors | Spry.Widget.ValidationTextField.ERROR_FORMAT;
                continueValidations = false;
            } else {
                this.typedValue = value;
        if(!mustRevert && this.validation && this.minValue !== null && continueValidations) {
            var minValue = this.validation(this.minValue.toString(), this.options);
            if (minValue !== false) {
                if (this.typedValue < minValue) {
                    errors = errors | Spry.Widget.ValidationTextField.ERROR_RANGE_MIN;
                    continueValidations = false;
        if(!mustRevert && this.validation && this.maxValue !== null && continueValidations) {
            var maxValue = this.validation(this.maxValue.toString(), this.options);
            if (maxValue !== false) {
                if( this.typedValue > maxValue) {
                    errors = errors | Spry.Widget.ValidationTextField.ERROR_RANGE_MAX;
                    continueValidations = false;
        //an invalid value was tested; must make sure it does not get inside the input
        if (this.useCharacterMasking && mustRevert) {
            this.revertState(revertValue);
        this.errors = errors;
        this.fixedValue = fixedValue;
        this.flags.locked = false;
        return mustRevert;
    Spry.Widget.ValidationTextField.prototype.onChange = function(e)
        if (Spry.is.opera && this.flags.operaRevertOnKeyUp) {
            return true;
        if (Spry.is.ie && e && e.propertyName != 'value') {
            return true;

  • How to Disable the Lead selection Action on aTable n How to Refreh a Page

    HI....
    1)How to Disable the Lead selection Action on aTable n How to Refreh a Page r web dynpro application.
    In my case i have a table n user enters data on multiple rows in table , n i have some input fields outside of table for those Inputs fields am settiing the data  at the screen initilization(in Init() moethod by hard code).the problem is whenever the is clicking in th 2nd row of a table the Lead Selection is triggerig and the data in the Input Fields outside the table is not displayinig.
    So by removing the lead Selection Action of a table i thought i can reslove this,
    2) How to refresha page(like we click F5 on key board),is it can be done thru code in web dynpro application
    Regards
    Rajesh

    Hi,
    You did not explained what is your functionality or coding in leadselection. Is that action on leadselection is necessary for you?.
    1)If you just want to remove the action then go to table properties and remove the action for leadselection.
    2)If you still want to continue with your leadselect action, then what you can do is.. write the code in leadselection action to again set the input fields which are out from table.  That is what you did in your init method.
    Page Refreshing
    3) What do you mean by page refreshing? is that refreshing your table only or both the table and input fields. 
         What I understood is you are allowing the user to enter values in table and soon after pressing a button the values should be saved and the data in input fields shld be deleted.  For this if you only invalidate the node then the user entered data will be lost. 
    So what you do is after getting the input data from the user add it to a ArrayList and then invalidate the node which clears the data in input field. Finally bind the Arraylist to your node.  see the following code. This is a concept make changes according to your requirement
    ArrayList list1=new ArrayList();
    wdContext.nodeAbc().bind(list1);
    IPrivateExcelviw.IAbcElement ele = wdContext.createAbcElement();
      ele.setNo(wdContext.currentAbcElement().getNo());
      ele.setName(wdContext.currentAbcElement().getName());
      ele.setMarks(wdContext.currentAbcElement().getMarks());
      list1.add(ele);
      wdContext.nodeAbc().invalidate();
    wdContext.nodeAbc().bind(list1);
    Revert me if you have any doubts
    Regards
    Raghu
    Edited by: Raghunandan Madarikuruva on Oct 16, 2008 8:07 AM

  • Issue with templates and updating .html pages in my website

    Hello,
    I have taken over updating a website for the charity I work for. I have updated some eleements of the .dwt template page, however it does not seem to be updating the other .html pages for the website. I do not get the update pages box just a box saying 'You placed the editable region "breadcrumbs" inside a block tag. Users of this template will not be able to create new blocks in this region. Move the region outside the block tag if you want users to be able to do this" - I click OK and it saves the .dwt page, but does not update any other .html pages.

    I cannot answer your question(s), I have only hearsay experience, but I can offer some links on where to get information regarding Flash SEO...
    http://www.seobook.com/archives/001457.shtml
    http://www.flashseo.com/
    http://blog.searchenginewatch.com/090317-120653
    and the O'Reilly book: Search Engine Optimization for Flash by Todd Perkins, ISBN: 978-0-596-52252-0

  • Merging data in table rows into single page form to be printed?

    Hello all,
    I've been trying to make this work but after much hair pulling have had no luck with it.
    I have a three page pdf. On the first page are two tabls of employee names. Each row in the tables includes a cell for the employee name and also one that holds a checkbox. 
    The second and third pages are time sheets appropriate for the department that each employee is in. These two pages are hidden.
    So the idea is that if a particular employee is selected by the check mark, a time sheet with his name, dates and other info would be printed. One department is straightforward in that there is one sheet per employee.
    The trouble is with the other department, in that for that department, each time sheet has four columns, at the top of each goes one employee's name. So the logic for this department is as follows:
    1. count how many names are selected
    2. if four or less are selected, enter first selected name into the first row of the first column, the second into the first rown of the second column, the third into the first row of the third colum etc.  
    3. if more than four are selected, enter the first four names into the first page, print the page, and enter the remaining into the second page and print, and so on until all selected names are processed.
    1. works fine
    2. works fine
    3. works but not correctly.
    So if I have say six names selected, for example, aaa, ,bbb, ccc, ddd, eee, and fff what end at the top of the columns on first page is:
    eee, fff, ccc, ddd  and on the second page its the same thing
    The actual bit of formcalc script to do this is below, obviously it is incorrect or else missing something.
    Any pointers and suggestions (in formcalc if possible) would be very welcome and appreciated.
    Thanks.
    // use a for loop to count number of names selected. tabel has 15 employee names
    for i = 0 upto 14 do
          if ((not (form1.main.front.Table2.Row[i].dbmname.isNull | form1.main.front.Table2.Row[i].dbmname == "")) and (form1.main.front.Table2.Row[i].Checkbox == 1)) then    
                   ns = ns + 1    // ns = number of names selected
          endif
    endfor
    for i = 0 upto 14 do                         //if any names are selected then process and print desk and maintenance sheet
                                                           //check to see if selected rows are not empty     
                   if ((not (form1.main.front.Table2.Row[i].dbmname.isNull | form1.main.front.Table2.Row[i].dbmname == "")) and (form1.main.front.Table2.Row[i].Checkbox == 1)) then
                                                          //enter first selected name into column 1 and second into colum 2 etc... 
                 form1.dbm_sheet.Table3.header2.dbm_name[np] = form1.main.front.Table2.Row[i].dbmname.rawValue 
                                                           //np = name position to select next column that the next name will go into
                  np = np + 1
                                                           //ok - check if number of names selected was 4 or more and if first four names have been entered, lets print the first timesheet
                  if ((ns >= 4) and (np == 4)) then
                            xfa.host.print(1, "2", "2", 1, 1, 0, 0, 0)          //print sheet
                                                           //first sheet with 4 names is printed, therefore reduce ns by 4
                            ns = ns - 4
                                                           //first sheet printed, reset np to zero
                            np = 0
                                                          //if less than 4 names were selected OR are left after printing first 4 then process remaining names
                elseif ((ns  < 4) and (np == ns)) then
                                                 xfa.host.print(1, "2", "2", 1, 1, 0, 0, 0)
                                                        // blank remaining columns that are supposed to be empty : if there are less than four names to be printed on the sheet
                    for i = (np) upto 3 do
                                                                          form1.dbm_sheet.Table3.header2.dbm_name[np] = ""
                 endfor        
            endif
                        endfor
      endif
      endfor

    helo DV,
    to insert a new node element in the resulting model node following code can he used.
    wdContext.node<Node name>().validate();
    IPublic<controller>.I<node>Element ele = wdContext.create<node>Element(new <model structure type>());
    ele.set<attribute name>("<value>");
    wdContext.node<node name>().addElement(ele);
    now to traverse the model node and change a column value following code can be used.
    for(int i=0;i<wdContext.node<node name>().size();i++
    IPublic<controller>.I<node>Element ele = wdContext.node<node name>().get<node name>ElementAt(i);
    ele.set<attribute name>("");
    Regards,
    Piyush.

  • Having trouble installing photoshop elements 10. Keeps telling me "file archive part of PS ele 10 is missing. need all parts to extract??

    Having trouble installing photoshop elements 10. Keeps telling me "file archive part of PS ele 10 is missing. need all parts to extract??

    there are two files for win os, an 7z and an exe.
    download both, place both in the same directory and click (or double click) the exe.
    Downloadable installation files available:
    Suites and Programs:  CC 2014 | CC | CS6 | CS5.5 | CS5 | CS4, CS4 Web Standard | CS3
    Acrobat:  XI, X | 9,8 | 9 standard
    Premiere Elements:  13 |12 | 11, 10 | 9, 8, 7
    Photoshop Elements:  13 |12 | 11, 10 | 9,8,7
    Lightroom:  5.7.1| 5 | 4 | 3
    Captivate:  8 | 7 | 6 | 5
    Contribute:  CS5 | CS4, CS3
    Download and installation help for Adobe links
    Download and installation help for Prodesigntools links are listed on most linked pages.  They are critical; especially steps 1, 2 and 3.  If you click a link that does not have those steps listed, open a second window using the Lightroom 3 link to see those 'Important Instructions'.
    window using the Lightroom 3 link to see those 'Important Instructions'.

  • Using my current registered Adobe PhotoShop Elements 7 disk to install on new laptop, or install ele

    How can I do this?

    Don't have the new laptop to try and install it, and since it will come with no CD/DVD drive, I was told by store there might be a way to download it for free from Adobe site.
    Date: Fri, 10 Jan 2014 14:35:26 -0800
    From: [email protected]
    To: [email protected]
    Subject: Using my current registered Adobe PhotoShop Elements 7 disk to install on new laptop, or install ele
        Re: Using my current registered Adobe PhotoShop Elements 7 disk to install on new laptop, or install ele
        created by Barbara B. in Photoshop Elements - View the full discussion
    Just install it. Are you getting some kind of error message? Do you need help with transferring a catalog?
         Please note that the Adobe Forums do not accept email attachments. If you want to embed a screen image in your message please visit the thread in the forum to embed the image at http://forums.adobe.com/message/6001898#6001898
         Replies to this message go to everyone subscribed to this thread, not directly to the person who posted the message. To post a reply, either reply to this email or visit the message page: http://forums.adobe.com/message/6001898#6001898
         To unsubscribe from this thread, please visit the message page at http://forums.adobe.com/message/6001898#6001898. In the Actions box on the right, click the Stop Email Notifications link.
               Start a new discussion in Photoshop Elements at Adobe Community
      For more information about maintaining your forum email notifications please go to http://forums.adobe.com/thread/416458?tstart=0.

  • How can I change pre. Ele. 3.0 registration with new CD

    I lost my original premiere elements CD. I purchased a new CD thru ebay. When I try to install the software it says the registration is invalid and reinstall Pre. Ele. 3.0. How do I change the registration(product key no.) in my computer so that I can install Pre. Ele. 3.0 again to access my old photos and vedios. If there is way to go into regedit and change the key I will do that. But I do not know whre the product key for Pre. Ele. 3.0 was kept in the system. If somebody knows the way to solve the problem please help me, So that I do not have to buy the software thirdtime from Adobe or Panasonic. The software bundle came with my Panasonic vedio camere which I bought in Feb. 2009. I went to the seller and asked for resolution and he said I have to buy the software again.

    This is something that you will need to contact Adobe Customer Support (Contact at top of the main forum page) to do. If you registered your copy of PrE, you should also be able to get the S/N through your Adobe I.D., though it sounds like you have your S/N, but it's just not working. Is that correct? Though it's too late now, you might want to see this THREAD from the Adobe Photoshop Forum on purchasing Adobe products from eBay.
    Good luck,
    Hunt

  • Pages não abre

    Ola.. Meu pages no new Ipad não abre mais.. Quando clico ele pisca e não abre. Meu Ipad está atualizados. Não sei o que faço.. Já apaguei e instalei novamente, mas o problema persiste..

    Ola.. Meu pages no new Ipad não abre mais.. Quando clico ele pisca e não abre. Meu Ipad está atualizados. Não sei o que faço.. Já apaguei e instalei novamente, mas o problema persiste..

  • Open Pages from Discoverer Report

    Hi,
    Is there a way to invoke a webpage or even better, an oracle function (that links to forms or self-service) from a discoverer report row ?
    for example, I want a report for employees where the person looking at the report will click on the employee name and is taken straight to the person details page for that employee.
    Regards.

    Hi,
    You can create a link to a form function using fnd_run_function.get_run_function_url. You can create a calculation either in a view or using a calculated item in the EUL (you will have to map the get_run_function_url in the EUL to do this). You then set the content type property of the EUL item to FILE so that when the item is selected in the workbook it appears as a hyperlink.
    Most forms in apps except parameters so that you can pass the employee id to the form and the form will open up with the employee record. For example, if you are using a seed HR person form you create a calculation,
    fnd_run_function.get_run_function_url(3494      -- PERWSHRG-404
                                         ,800       -- HR
                                         ,fnd_global.RESP_ID     -- caller's responsibility
                                         ,0        -- Business Group
                                         ,         -- Parameters
         'P_PERSON_ID='||TO_CHAR(person_id, 'fm9999999999999')||
         ' P_EFFECTIVE_DATE='||TO_CHAR(SYSDATE, 'YYYY/MM/DD'))Rod West

  • Error While Running a page on JDeveloper

    Hi All ,
    I am getting the following error while running a page in Jdeveloper . Can any body help me?
    (AppsContext.java:686) at oracle.apps.fnd.common.WebAppsContext.(WebAppsContext.java:846) at oracle.apps.fnd.framework.server.OAUtility.getWebAppsContext(OAUtility.java:351) at oracle.apps.fnd.framework.CreateIcxSession.getEncryptedSessId(CreateIcxSession.java:144) at oracle.apps.fnd.framework.CreateIcxSession.createSession(CreateIcxSession.java:80) at runregion.jspService(runregion.jsp:96) at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:56) at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:317) at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:465) at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:379) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:727) at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:306) at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:767) at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:259) at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:106) at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:797) at java.lang.Thread.run(Thread.java:534) oracle.apps.fnd.framework.OAException: Application: FND, Message Name: FND_GENERIC_MESSAGE. Tokens: MESSAGE = java.sql.SQLException: ORA-00904: "SERVERRESP_ENABLED_FLAG": invalid identifier ; (Could not lookup message because there is no database connection) at oracle.apps.fnd.framework.OAException.wrapperException(OAException.java:888) at oracle.apps.fnd.framework.OAException.wrapperException(OAException.java:862) at oracle.apps.fnd.framework.server.OAExceptionUtils.processAOLJErrorStack(OAExceptionUtils.java:980) at oracle.apps.fnd.framework.server.OAUtility.getWebAppsContext(OAUtility.java:352) at oracle.apps.fnd.framework.CreateIcxSession.getEncryptedSessId(CreateIcxSession.java:144) at oracle.apps.fnd.framework.CreateIcxSession.createSession(CreateIcxSession.java:80) at runregion.jspService(runregion.jsp:96) at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:56) at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:317) at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:465) at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:379) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:727) at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:306) at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:767) at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:259) at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:106) at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:797) at java.lang.Thread.run(Thread.java:534) ## Detail 0 ## java.sql.SQLException: ORA-00904: "SERVERRESP_ENABLED_FLAG": invalid identifier at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134) at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289) at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:583) at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1983) at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:1141) at oracle.jdbc.driver.OracleStatement.doExecuteQuery(OracleStatement.java:2487) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2854) at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:622) at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:550) at oracle.apps.fnd.profiles.Profiles.getProfileOption(Profiles.java:1328) at oracle.apps.fnd.profiles.Profiles.getProfile(Profiles.java:384) at oracle.apps.fnd.profiles.ExtendedProfileStore.getSpecificProfileFromDB(ExtendedProfileStore.java:210) at oracle.apps.fnd.profiles.ExtendedProfileStore.getSpecificProfile(ExtendedProfileStore.java:169) at oracle.apps.fnd.profiles.ExtendedProfileStore.getMultiSpecificProfileFromDB(ExtendedProfileStore.java:368) at oracle.apps.fnd.common.WebAppsContext.setProfileValues(WebAppsContext.java:4177) at oracle.apps.fnd.common.AppsContext.setDBEnv(AppsContext.java:3407) at oracle.apps.fnd.common.AppsContext.getPrivateConnectionFinal(AppsContext.java:2508) at oracle.apps.fnd.common.AppsContext.getPrivateConnection(AppsContext.java:2398) at oracle.apps.fnd.common.AppsContext.getJDBCConnection(AppsContext.java:2257) at oracle.apps.fnd.common.AppsContext.getJDBCConnection(AppsContext.java:2072) at oracle.apps.fnd.common.AppsContext.getJDBCConnection(AppsContext.java:1976) at oracle.apps.fnd.profiles.Profiles.getConnection(Profiles.java:2494) at oracle.apps.fnd.profiles.Profiles.getProfileOption(Profiles.java:1304) at oracle.apps.fnd.profiles.Profiles.getProfile(Profiles.java:384) at oracle.apps.fnd.profiles.ExtendedProfileStore.getSpecificProfileFromDB(ExtendedProfileStore.java:210) at oracle.apps.fnd.profiles.ExtendedProfileStore.getSpecificProfile(ExtendedProfileStore.java:169) at oracle.apps.fnd.profiles.ExtendedProfileStore.getProfile(ExtendedProfileStore.java:148) at oracle.apps.fnd.common.logging.DebugEventManager.configureUsingDatabaseValues(DebugEventManager.java:1147) at oracle.apps.fnd.common.logging.DebugEventManager.configureLogging(DebugEventManager.java:1008) at oracle.apps.fnd.common.logging.DebugEventManager.internalReinit(DebugEventManager.java:977) at oracle.apps.fnd.common.logging.DebugEventManager.reInitialize(DebugEventManager.java:944) at oracle.apps.fnd.common.logging.DebugEventManager.reInitialize(DebugEventManager.java:931) at oracle.apps.fnd.common.AppsLog.reInitialize(AppsLog.java:570) at oracle.apps.fnd.common.AppsContext.initLog(AppsContext.java:873) at oracle.apps.fnd.common.AppsContext.initializeContext(AppsContext.java:858) at oracle.apps.fnd.common.AppsContext.initializeContext(AppsContext.java:827) at oracle.apps.fnd.common.AppsContext.(AppsContext.java:686) at oracle.apps.fnd.common.WebAppsContext.(WebAppsContext.java:846) at oracle.apps.fnd.framework.server.OAUtility.getWebAppsContext(OAUtility.java:351) at oracle.apps.fnd.framework.CreateIcxSession.getEncryptedSessId(CreateIcxSession.java:144) at oracle.apps.fnd.framework.CreateIcxSession.createSession(CreateIcxSession.java:80) at runregion.jspService(runregion.jsp:96) at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:56) at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:317) at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:465) at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:379) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:727) at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:306) at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:767) at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:259) at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:106) at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:797) at java.lang.Thread.run(Thread.java:534) ">

    check your DBC file, we have discussed this issue in the forum, search for SERVERRESP_ENABLED_FLAG

  • Filename in Footer in Pages 5

    In Pages 09 I could add a filename to the footer. If I saved a document with a new filename, this would then be automatically updated in the footer in the new document.  I cannot find out how to update the Filename in pages 5, other than doing it manually.
    Is this yet another example of the new iWork being dumbed down?  Also missing is the ability to use keyboard shortcuts for formatting, and a lot of the Inspector features.
    Do I have to go back to Pages 09 for all the missing features?

    Feature removed in Pages 5.
    Pages '09 should still be in your Applications/iWork folder.
    Trash/archive Pages 5 after Exporting any Pages 5 docs to Pages '09 files.
    Then rate/review Pages 5 in the App Store.
    Peter

  • Can not refresh page after save properly(When not saving master record)

    I am using jdeveloper 11g R2 (11.1.2.3) JSF Facelet
    In some use case I have Address as master table and Person as detail table
    For some business reason I need to don't save same addresses
    eg:
    If +1 Test St+ is in database already and new user coming and adding this address with new person
    I need to use the row in database not creating a new address
    I do saving in doDML method of Address with some hashing algorithm and it is fine
    My problem is that I can not refresh page after save properly
    User coming to page think Adding a new address and a new person but in fact no new
    address added because of business I describe above
    Any ideas how I can implement this?
    Appreciate that
    Regards
    Mohsen

    Hi,
    from your description it is not clear why the page doesn't refresh. It could be a problem in your implementation code - who knows. What if you perform the address check on a command button that actually submits the new address? If the check returns true (address exists) you would call row.refresh(forget new row); and re-query the view object so the address coming from the database is displayed. If you wanted to use the doDML then yuou need to be aware that doDML doesn't help removing the row the user created. It just ignores the database update but the entity is still around, which in my suggested solution wont be the case.
    Frank

Maybe you are looking for

  • Misc Basic PL/SQL Application Design/Programming Questions 101 (101.1)

    ---****** background for all these questions is at bottom of this post: Question 1: I read a little on the in and out parameters and that IN is "by reference" and OUT and IN-OUT are by value. To me "by reference" means "pointer" as in C programming.

  • Bluetooth disconnecting on Samsung Stratosphere?

    Hello all! I have a Samsung Stratosphere, and I use a Plantronics Voyager Pro + Bluetooth headset with it.  I have been having trouble with the phone not connecting to the headset if it has been idle for a while, and I have even had the Bluetooth dis

  • How to dynamic select based on runtime value ?

    how to dynamic select based on runtime value ? I want to write a select function, which do selecting based on parameters. eg, CREATE OR REPLACE FUNCTION myfunction (tableName VARCHAR2, pkName VARCHAR2, pkValue VARCHAR2, requestString VARCHAR2) RETURN

  • Can I make a dual boot with Windows 7?

    After taking every precaution I can think of for installing Windows 7 on my wifes laptop. System recovery disk, backups(2 DVD's),and an image I made over 6 DVDs. I thought of why not just shrink the Vista Partition, install Windows 7 in the created p

  • Dynamic reporting, time dependent columns

    Hello, We are trying to make some dynamic reports, for example with the columns: the last six months , quarter, current year, last year etc etc (a half year report). Is it possible to give in a year\period which is the "current period", so that all d