function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

/*copyright*/
function ShowNowYear() {
   var now = new Date();
   var year = now.getFullYear();
   document.write(year);
}

TextFieldWithExample = Class.create();
TextFieldWithExample.prototype = {
	initialize: function(inputElementId, defaultText, options) {
	  this.setOptions(options);

		this.input = $(inputElementId);
		this.name = this.input.name;
		this.defaultText = defaultText;
		this.createHiddenInput();

		this.checkAndShowExample();

		Event.observe(this.input, "blur", this.onBlur.bindAsEventListener(this));
		Event.observe(this.input, "focus", this.onFocus.bindAsEventListener(this));
		Event.observe(this.input, "select", this.onFocus.bindAsEventListener(this));
		Event.observe(this.input, "keydown", this.onKeyPress.bindAsEventListener(this));
		Event.observe(this.input, "click", this.onClick.bindAsEventListener(this));
	},
	createHiddenInput: function() {
		this.hiddenInput = document.createElement("input");
		this.hiddenInput.type = "hidden";
		this.hiddenInput.value = "";
		this.input.parentNode.appendChild(this.hiddenInput);
	},
	setOptions: function(options) {
    	this.options = { exampleClassName: 'example' };
    	Object.extend(this.options, options || {});
  	},
	onKeyPress: function(event) {
		if (!event) var event = window.event;
	 	var code = (event.which) ? event.which : event.keyCode
	 	if (this.isAlphanumeric(code)) {
	 		this.removeExample();
	 	}
	},
	onBlur: function(event) {
		this.checkAndShowExample();
	},
	onFocus: function(event) {
		if (this.exampleShown()) {
		    this.removeExample();
	  	}
	},
	onClick: function(event) {
		this.removeExample();
	},
	isAlphanumeric: function(keyCode) {
		return keyCode >= 40 && keyCode <= 90;
	},
	checkAndShowExample: function() {
		if (this.input.value == '') {
			this.input.value = this.defaultText;
			this.input.name = null;
			this.hiddenInput.name = this.name;
			Element.addClassName(this.input, this.options.exampleClassName);
		}
	},
  removeExample: function() {
		if (this.exampleShown()) {
			this.input.value = '';
			this.input.name = this.name;
			this.hiddenInput.name = null;
			Element.removeClassName(this.input, this.options.exampleClassName);
		}
	},
	exampleShown: function() {
		return Element.hasClassName(this.input, this.options.exampleClassName);
	}
}
