// JavaScript Document

var t = null;

function Rotator(c,m,s) {
	this.images = new Array();
	this.maxImages = m;		//maximum number of images
	this.speed = s;			//transition time in seconds
	this.container = document.getElementById(c);
	this.imgTop = document.createElement('div');
	this.imgBtm = document.createElement('div');
	this.imgTop.className = "rTop";
	this.imgBtm.className = "rBtm";
	
	this.container.appendChild(this.imgTop);
	this.container.appendChild(this.imgBtm);
}

//Start Rotation
Rotator.prototype.Start = function() {
	var i = arguments[0];
	var r = this;
	if(typeof(i) == 'undefined'){ i=0; }
	if(typeof(i) == 'number' && r.images.length > 0) {
		
		r.LoadContent(i);
		//r.SwitchClass(i);
		
		if(i < r.images.length-1){ i++; }
		else { i = 0; }
		
		t = setTimeout(function(){ r.Start(i) },r.speed*1000);
	} 
	else { alert("Runtime Error: Unknown Index"); }
}

//Pause rotation and set item for 30 seconds
Rotator.prototype.Pause = function() {
	clearTimeout(t);
	var i = arguments[0];
	var r = this;
	if(typeof(i) == 'undefined'){ i=0; }
	if(typeof(i) == 'number' && r.images.length > 0) {
		
		r.LoadContent(i);
		//r.SwitchClass(i);
		t = setTimeout(function(){ r.Start(i) },((30 - r.speed) * 1000));
	} 
	else { alert("Runtime Error: Unknown Index"); }
}

//load hidden item content
Rotator.prototype.LoadContent = function(id) {
	this.imgTop.style.background = "url(" + this.images[id][0].src + ") no-repeat";
	if(id == 0) { id = this.images.length-1; }
	else { id = id - 1; }
	this.imgBtm.style.background = "url(" + this.images[id][0].src + ") no-repeat";
	
	this.FadeIn(0);
}


Rotator.prototype.FadeIn = function(op) {
	var r = this;
	if(op < 100){ 
		if(navigator.appName.indexOf('Netscape') != -1){
			r.imgTop.style.opacity = (op/100);
			r.imgTop.style.MozOpacity = (op/100);
		}else {
			r.imgTop.style.filter = "progid:DXImageTransform.Microsoft.Alpha(opacity=" + op + ")";
		}
		setTimeout(function(){ r.FadeIn(op + 10); }, 75); 
	} else { 
		if(navigator.appName.indexOf('Netscape') != -1){
			r.imgTop.style.opacity = 1;
			r.imgTop.style.MozOpacity = 1;
		} else {
			r.imgTop.style.filter = "progid:DXImageTransform.Microsoft.Alpha(opacity=100)";
		}
		r.imgBtm.style.display = "block";
	}
}

Rotator.prototype.SwitchClass = function(id) {
	var obj = null;
	for(i=0; i < this.images.length; i++){
		obj = document.getElementById('item'+(i+1));
		if(i == id) { obj.className = 'itemCurrent'; }
		else { obj.className = 'item'; }
	}
}

//Appends image information into image array
Rotator.prototype.AddImage = function(path, desc) {
	if(this.images.length < this.maxImages){
		var img = new Image();
		img.src = path;
		this.images.push(new Array(img, desc));
	}
}

//**********************************************//
//	Form Validation								//
//**********************************************//
var reEmail = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;  // email address
var reDate =  /^(0[1-9]|1[012])(\/)(0[1-9]|[12][0-9]|3[01])(\/)\d{4}$/; // mm/dd/yyyy
var rePhone = /^\d{3}(-)\d{3}(-)\d{4}$/; // xxx-xxx-xxxx
var reZip =   /^\d{5}([\-]\d{4})?$/; // xxxxx or xxxxx-xxxx



//**********************************************//
//	Email DOM Writer							//
//**********************************************//

function EmailDOMWriter(u,d,isLink){
	this.username = u;
	this.domain = d;
	this.isLink = isLink;
}

EmailDOMWriter.prototype.Write = function(){
	var strEmailAddress = this.username + '@' + this.domain;
	if(this.isLink){
		document.write('<a href=\"mailto:' + strEmailAddress + '\" >' + strEmailAddress + '</a>');
	} else {
		document.write(strEmailAddress);
	}
}
