﻿function findElementById(a) {
    return document.all + "" != "undefined" ? document.all[a] : document.getElementById(a);
}

function resetField(a, b) {
    if (a.value.length == 0) {
        a.value = b;
        return;
    }
    if (a.value == b) {
        a.value = "";
    }
}

function txtKeyPress2(myfield, loginButtonId) {
    var keycode;
    if (window.event) keycode = window.event.keyCode;
    else {
        try {
            keycode = event.which;
        } catch (e) {
        return true; 
        }
    }

    if (keycode == 13) {
        var LoginButton = document.getElementById(loginButtonId);
        if (LoginButton == undefined)
            return true;
        else {
            LoginButton.click();
            return false;
        }
    } else return true;
}


function doSomething(e) {
    if (!e) var e = window.event;
    alert(e.type);
}



// Note: I recommend you use a more comprehensive event management script for
// production (aka "live") pages.
// Dean Edwards' event manipulation functions is a good example. You can find
// them here: http://dean.edwards.name/weblog/2005/10/add-event2/
var LoadHandler = {
  handlers:[],
  add:function(fn){
    if(window.onload!=LoadHandler.theHandler) LoadHandler._push(window.onload);
    LoadHandler._push(fn);
    window.onload=LoadHandler.theHandler;
  },
  _push:function(fn){
    if(typeof(fn)!='function') return;
    LoadHandler.handlers[LoadHandler.handlers.length]=fn;
  },
  theHandler:function(){
    var handlers=LoadHandler.handlers,i=-1,fn;
    while(fn=handlers[++i]) fn();
  }
}

/*Example 1 works in Firefox, Netscape 6+, Opera 9.x, Opera 7.2x through 
7.5x, and Safari 1.2+. (It's very buggy in Opera 7.0x and 7.1x. It doesn't 
work at all in Opera 8.x or in IE/Win.) For comparison, Example 2 works in 
IE5+/Win, Firefox, Netscape 6+, Opera 7+, Safari 1.2+, and Konqueror 3.5. 
Example 2 is a little buggy in IE5/Mac, but it mostly works in this new 
version. Example 2 crashes Konqueror 3.3 and 3.4 and Safari 1.0. I put in a 
conditional to keep the script from running in those browsers. Neither works 
in iCab 3.*/

// Example 1
/*
LoadHandler.add(function(){
  var allowInputTypeChange = true;
  var fld1 = findElementById('ctl00_BoxLoginContent_ctl00_Login1_Password');
  if(document.getElementById) {
    try { // to keep IE from showing errors.
      fld1.type = 'text';
      if(fld1.type == 'text') fld1.value = 'PASSWORD';
      else allowInputTypeChange = false;
    } catch(e) { allowInputTypeChange = false; }
  }
  if(allowInputTypeChange) {
    fld1.onfocus = function() {
      var tempVal = this.value; // NS6 fix.
      var iType = this.type; // Opera 7 fix.
      if(this.type != 'password') this.type = 'password';
      this.value = tempVal; // NS6 fix.
      if(this.value.toLowerCase()=='password')
        this.value = '';
      if(window.opera && iType != 'password') this.focus();
    }
    fld1.onblur = function() {
      if(this.type == 'password')
      if(this.value=='' || this.value.toLowerCase()=='password') {
        this.type = 'text';
        this.value = 'PASSWORD';
      }
    }
  }
});*/


// Example 2 (JS part 1)
function changeInputType(
  oldElm, // a reference to the input element
  iType, // value of the type property: 'text' or 'password'
  iValue, // the default value, set to 'password' in the demo
  blankValue, // true if the value should be empty, false otherwise
  noFocus)
{  // set to true if the element should not be given focus
    if(!oldElm || !oldElm.parentNode || (iType.length<4) || !document.getElementById || !document.createElement) return;
    var isMSIE = /*@cc_on!@*/false; //http://dean.edwards.name/weblog/2007/03/sniff/
    if(!isMSIE) {
        var newElm = document.createElement('input');
        newElm.type = iType;
    } else {
        var newElm = document.createElement('span');
        newElm.innerHTML = '<input type="' + iType + '" name="' + oldElm.name + '">';
        newElm = newElm.firstChild;
    }
    var props = ['name','id','className','size','tabIndex','accessKey'];
    for(var i=0,l=props.length;i<l;i++) {
        if(oldElm[props[i]]) newElm[props[i]] = oldElm[props[i]];
    }
    newElm.onfocus = function() {
        return function() {
            if(this.hasFocus) return;
            var newElm = changeInputType(this,'password',iValue, (this.value.toLowerCase()==iValue.toLowerCase())?true:false);
            if(newElm) newElm.hasFocus = true;
        }
    } ();
    
    newElm.onblur = function() {
        return function() {
            if(this.hasFocus)
            if(this.value == '' || (this.value.toLowerCase() == iValue.toLowerCase())) {
                changeInputType(this,'text',iValue,false,true);
            }
        }
    } ();

    newElm.onkeypress = function() {
        return function() {
            return txtKeyPress2(this, btnLogin);
            }
    } ();


    
    // hasFocus is to prevent a loop where onfocus is triggered over and over again
    newElm.hasFocus=false;
    // some browsers need the value set before the element is added to the page
    // while others need it set after
    if(!blankValue) newElm.value = iValue;
    oldElm.parentNode.replaceChild(newElm,oldElm);
    if(!isMSIE && !blankValue) newElm.value = iValue;
    if(!noFocus || typeof(noFocus) == 'undefined') {
        window.tempElm=newElm;
        setTimeout("tempElm.hasFocus=true;tempElm.focus();",1);
    }
    return newElm;
}

// Example 2 (JS part 2)
LoadHandler.add(function() {
    // Normally I use object detection, however, in this case since I need to 
    // detect Konqueror and Safari which don't have unique objects,
    // I will use the user agent string to detect them. Only use this type of 
    // detection as a last resort.
    // I'm doing this because example 2 crashes Konqueror 3.4 and Safari 1.0

    var ua = navigator.userAgent.toLowerCase();
    if (!((ua.indexOf('konqueror') != -1) && /khtml\/3\.[0-4]/.test(ua)) && !(((ua.indexOf('safari') != -1) && !window.print))) {

        // Set the third value to the text you want to appear in the field.
        try {
            changeInputType(findElementById(btnTxtPassword), 'text', 'PASSWORD', false, true);
        } catch (e) {

        }
    }
});