var cB = {
  initEmail: function() {
    if (!document.getElementById) return;
    var email = document.getElementById("email");
    cB.addEvent(email, 'focus', cB.clearEmail, false);
    cB.addEvent(email, 'blur', cB.checkEmail, false);
  },


  clearEmail: function(e) {
    if (typeof e == "undefined") {
      e = window.event;
    }
    var target = cB.getEventTarget(e);
    var emailValue = target.value;
    if(emailValue == 'youremail@gmail.com') {
      target.value = '';
    }
    setTimeout(function() {
      var email = document.getElementById("email");
      cB.addEvent(email, 'focus', cB.clearEmail, false);
    }, 200);
  },

  checkEmail: function(e) {
    if (typeof e == "undefined") {
      e = window.event;
    }
    var target = cB.getEventTarget(e);
    var emailValue = target.value;
    if(emailValue == '' || emailValue == 'youremail@gmail.com') {
      target.value = 'youremail@gmail.com';
    } else {
      // verify email address
    }
    setTimeout(function() {
      var email = document.getElementById("email");
      cB.addEvent(email, 'blur', cB.checkEmail, false);
    }, 200);
  },

  extrenalLinks: function() {
    if (!document.getElementsByTagName) return;
    var anchors = document.getElementsByTagName("a");
    for (var i=0; i<anchors.length; i++) {
      var anchor = anchors[i];
      if (anchor.getAttribute("href") && anchor.getAttribute("rel") == "external")
        anchor.target = "_blank";
    }
  },


  getEventTarget: function(event) {
    var targetElement = null;
    if(typeof event.target != "undefined") {
      targetElement = event.target;
    } else {
      targetElement = event.srcElement;
    }
    while(targetElement.nodeType == 3 && targetElement.parentNode != null) {
      targetElement = targetElement.parentNode;
    }
    return targetElement;
  },

  addEvent: function(elm, evType, fn, useCapture) {
    if (elm.addEventListener) {
      elm.addEventListener(evType, fn, useCapture);
      return true;
    } else if (elm.attachEvent) {
      var r = elm.attachEvent('on' + evType, fn);
      return r;
    } else {
      elm['on' + evType] = fn;
    }
  },
  
  getElementsByAttribute: function(attribute, attributeValue) {
    var elementArray = new Array();
    var matchedArray = new Array();
    if(document.all) {
      elementArray = document.all;
    } else {
      elementArray = document.getElementsByTagName("*");
    }
    for(var i=0; i< elementArray.length; i++) {
      if(attribute == "class") {
        var pattern = new RegExp("(^| )" + attributeValue + "( |$)");
        if(pattern.test(elementArray[i].className)) {
          matchedArray[matchedArray.length] = elementArray[i];
        }
      } else if (elementArray[i].getAttribute(attribute) == attributeValue) {
        matchedArray[matchedArray.length] = elementArray[i];
      }
    }
    return matchedArray;
  }
}

cB.addEvent(window, 'load', cB.initEmail, false);
cB.addEvent(window, 'load', cB.extrenalLinks, false);
