/*
-- application.js
-- This file contains all the javascript calls used throughout the site (excluding scriptaculous framework)
--
*/




function slideshow(thisName, iSpeed, iDuration) {


	// Local Variables
	var slideShowSpeed = iSpeed;
	var crossFadeDuration = iDuration;

	var thisObjectsName = thisName;

	var preLoad = new Array();

	var t;
	var j = 0;
	var p = 0;

	this.addImage = function(imgsrc) {
		var cnt = preLoad.length;
		p++;
		preLoad[cnt] = new Image();
		preLoad[cnt].src = imgsrc;

	}

	this.startSlideShow = function() {

		this.runSlideShow();
	}


	this.fadeInImage = function(imgId) {
		var src = preLoad[imgId].src;

		$('dummyfade').src = src;

		var e = new Effect.Appear('dummyfade', { duration : crossFadeDuration, afterFinishInternal : function() { $('skyline').src = src; $('dummyfade').style.display='none'; } });
	}


	this.runSlideShow = function(){

		this.fadeInImage(j);

		 j = j + 1;
		 if (j > (p - 1)) j = 0;

		t = setTimeout(thisObjectsName + '.runSlideShow()', slideShowSpeed);
	}

}



function newsScroller(containerID, objname) {


	// Local Variables
	var onEl=-1;
	var thisObjectsName = objname;
	var scrollingObject = $(containerID);


	var newsitems = new Array();

	this.startScroller = function() {
		this.nextElement();
	}

	this.addItem = function(itemText, itemLink, itemLinkType) {
		var itemElement = new Object();

		itemElement.text = itemText;
		if(itemLink)
			itemElement.link = itemLink;
		else
			itemElement.link = null;


		if(itemLinkType)
			itemElement.linktype = itemLinkType;
		else
			itemElement.linktype = 'external';
	
	
		newsitems[newsitems.length] = itemElement;
	}

	this.nextElement = function() {

		if(newsitems.length == 0)
			return;

		onEl=(onEl<(newsitems.length-1)) ? (onEl+1) : 0;


		// Set the text of the element
		var scrollHTML = "";

		if(newsitems[onEl].link)
			scrollHTML += '<a href="' + newsitems[onEl].link + '" target="' + ((newsitems[onEl].linktype == 'external') ? '_blank' : '_self') + '">';

		scrollHTML += newsitems[onEl].text;

		if(newsitems[onEl].link)
			scrollHTML += '</a>';

		
		scrollingObject.style.left = "800px";

		scrollingObject.innerHTML = scrollHTML;

		this.doScroll();
	}


	this.doScroll = function(){

		var scrollingLeft=parseInt(scrollingObject.style.left);

		if(scrollingLeft>5){
			scrollingObject.style.left=(scrollingLeft-3) + 'px';
			setTimeout(thisObjectsName + ".doScroll()",40);
		} else {
			scrollingObject.style.left=5;
			setTimeout(thisObjectsName + ".nextElement()",3000);
		}

	}
}



/* Form Validation */

function fieldRequired(fieldObject){
	if(!fieldObject)
		return false;

	var fieldClass = fieldObject.className;

	if(fieldClass.length == 0)
		return false;

	if(fieldClass.indexOf("required")>-1)
		return true;
	else
		return false;

}

function validateForm(formObject){
	if(!formObject)
		return false;

	var foundErrors = false;

	for( var i = 0; i < formObject.length; i++ ) {
		fieldObject = formObject[i];

		if(fieldRequired(fieldObject)){
	
			
			// Check for values
			if(fieldObject.value.length == 0) {
				foundErrors = true;

				fieldObject.style.background = '#FCD1D1';
				fieldObject.style.border='1px solid #f77e7e';
				
				// Is it an agreement checkbox?
				if(fieldObject.name == "agreement") {
					$('agreement-text').style.border='1px Solid #f77e7e';		
					$('agreement-text').style.background = '#FCD1D1';
				}

			} else {
				fieldObject.style.background = '#efefef';
				fieldObject.style.border='1px solid #7d7d7d';

				// Is it an agreement checkbox?
				if(fieldObject.name == "agreement") {
					$('agreement-text').style.border='none';		
					$('agreement-text').style.background = '#fff';
				}
				
			}

		}

	}


	return (foundErrors) ? false : true;


}




