// VERY IMPORTANT - DO NOT DELETE

// prevents flicker with moving background images for those IE users who have their cache

// settings for those IE users who have their cache settings to 'every visit to the page'

try { document.execCommand("BackgroundImageCache",false,true); } catch(e) {};



// node functions

if(!window.Node){

	var Node = {ELEMENT_NODE : 1, TEXT_NODE : 3};

}



checkNode = function(node,filter){

	return(node==null||node.nodeType==Node[filter]||node.nodeName.toUpperCase()== filter.toUpperCase());

}



getAllChildren = function(node,filter){

	var result = new Array();

	var children = (node.all)? node.all:node.getElementsByTagName('*');

	for(i=0;i<children.length;i++){

  		if(node.all){

			var test = new Array();

			if(children[i].tagName==filter.toUpperCase()){

    			result[result.length] = children[i];

    		}

    	}else{

    		if(checkNode(children[i],filter)) result[result.length] = children[i];

		}

	}

  	return result;

}



getChildren = function(node,filter){

	var result = new Array();

	var children = (node.all)? node.all:node.getElementsByTagName('*');

 	for(i=0;i<children.length;i++){

		if(node.all){

			var test = new Array();

			if(children[i].tagName==filter.toUpperCase()){

    			result[result.length] = children[i];

    		}

    	}else{

    		if(checkNode(children[i],filter)) result[result.length] = children[i];

    	}

	}

  	return result;

}



getParent = function(el,pTagName){

	if(el==null){

		return null;

	}else if(el.nodeType == 1 && el.tagName.toLowerCase() == pTagName.toLowerCase()){

		return el;

	}else{

		return getParent(el.parentNode, pTagName);

	}

}



getElementsByClassName = function(oElm, strTagName, strClassName){

    var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);

    var arrReturnElements = new Array();

    strClassName = strClassName.replace(/\-/g, "\\-");

    var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");

    var oElement;

    for(var i=0; i<arrElements.length; i++){

        oElement = arrElements[i];      

        if(oRegExp.test(oElement.className)){

            arrReturnElements.push(oElement);

        }   

    }

    return (arrReturnElements)

}

// /node functions



// adds functionality to the form elements

formElements = function(){

	return;

}



formElements.addFunctions = function(){

	if(!document.getElementById||!document.createTextNode){return;}

	if(!document.getElementsByTagName){

		return;

	}

	var aInputs = document.getElementsByTagName("input");

	for(i=0; i < aInputs.length; i++){

		if(aInputs[i].type=='text'||aInputs[i].type=='password'){

			aInputs[i].onfocus = function() {

				//this.style.backgroundColor = '#FED8D1';

				//this.style.border = 'solid 1px #999';

				if(this.className=='clearText'){

					this.value = '';

				}

			}

			aInputs[i].onblur = function() {

				this.style.backgroundColor = '#fff';

				this.style.border = 'solid 1px #999';

			}

		}		

	}

	/*var aTextAreas = document.getElementsByTagName("textarea");

	for(i=0; i < aTextAreas.length; i++){

		aTextAreas[i].onfocus = function() {

			this.style.backgroundColor = '#FED8D1';

			this.style.border = 'solid 1px #999';

		}

		aTextAreas[i].onblur = function() {

			this.style.backgroundColor = '#fff';

			this.style.border = 'solid 1px #999';

		}

	}*/

}



// main image toggle stuff

mainImage = function(){

	return;

}

mainImage.toggleFeatures = function(iIndex){

	

	if(!document.getElementById){

		return;	

	}

	var sObjBox = document.getElementById('mainImageContainerGallery');

	var sSelectedSrc = document.getElementById('mainImage0'+iIndex);

	if(!sObjBox||!sSelectedSrc){

		return;

	}

	sObjBox.innerHTML = sSelectedSrc.innerHTML;
	
	initLightbox();

}



mainImage.getMainImage = function(){

	if(!document.getElementById||!document.createTextNode){return;}

	if(!document.getElementsByTagName){

		return;

	}

	if(!document.getElementById('mainImageContainerGallery')||!document.getElementById('thumbContainer')){

		return;

	}

	var container = document.getElementById('thumbContainer');

	var aLinks = getAllChildren(container,'a')

	for(i=0;i<aLinks.length;i++){

		aLinks[i].id = i+1;

		aLinks[i].onclick = function(){

			mainImage.toggleFeatures(this.id);

			this.href = 'javascript:;';

			this.blur();	

		}

	}

}


// blurs all anchors

blurAnchors = function (){

  if(document.getElementsByTagName){

    var a = document.getElementsByTagName("a");

    for(var i = 0; i < a.length; i++){

      a[i].onfocus = function(){this.blur()};

    }

  }

}



// add our functions

var WindowListener = {

  add : function(event,func){

    var e = this.Functions[event];

    e[func] = func;

  },

  remove : function(event,func){

    var e = this.Functions[event];

    delete e[func];

  },

  addEvent : function(event){

    window["on"+event] = function(){WindowListener.run(event)};

    this.Functions[event] = {};

  },

  removeEvent : function(event){

    window["on"+event] = null;

    delete this.Functions[event];

  },

  run : function(event){// Private

    var e = this.Functions[event];

    for(var i in e) eval(e[i]);

  },

  Functions : {}

};


// changes the background colour of a input (type=text) form element

var onfocus_color = '#c9caa5'; // the colour to change to

function inputFocus(){

	if(!document.getElementsByTagName){

		return;

	}

	var type;	

	var inputs = document.getElementsByTagName("input");

	for(i=0; i < inputs.length; i++){

		type = inputs[i].type;

		if(type=='text'||type=='password'){

			

			inputs[i].onfocus = function() {

				this.style.backgroundColor = onfocus_color;

			}

			inputs[i].onblur = function() {

				this.style.backgroundColor = '#fff';

			}

		}		

	}

	var textareas = document.getElementsByTagName("textarea");

	for(i=0; i < textareas.length; i++){

		textareas[i].onfocus = function() {

			this.style.backgroundColor = onfocus_color;

		}

		textareas[i].onblur = function() {

			this.style.backgroundColor = '#fff';

		}

	}

}

//make sure main images from mainImageContainer are loaded and then faded in. This ensures that users
//do not click on the lightbox before everything is loaded.

document.write("<style type='text/css'>#mainImageContainerGallery {visibility:hidden;}</style>");


function initImage() {
	Element.hide('mainImageContainerGallery');
	imageId = 'mainImageContainerGallery';
	image = document.getElementById(imageId);
	 
	image.style.visibility = "visible";
	fadeIn(imageId);
}
function fadeIn(objId) {
	if (document.getElementById) {
		obj = document.getElementById(objId);
			new Effect.Appear(obj, { duration: 0.5, from: 0.0, to: 1.0 });
	}
}

EXD = function(){
	//EXDss is a class
}

EXD.emailCheck = function (str) {
	var at					= "@";
	var dot					= ".";
	var lat					= str.indexOf(at);
	var lstr				= str.length;
	var ldot				= str.indexOf(dot);
	
	if (str.indexOf(at) == -1) {
		return false;
	}

	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr) {
	   return false;
	}

	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr) {
	  return false;
	}
	
	if (str.indexOf(at,(lat+1))!=-1) {
		return false;
	}
	
	if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot) {
		return false;
	}
	
	if (str.indexOf(dot,(lat+2))==-1) {
		return false;
	}
	
	if (str.indexOf(" ")!=-1) {
		return false;
	}

	return true;
}



// add functions to listener

WindowListener.addEvent("load");

WindowListener.add("load","formElements.addFunctions()");

WindowListener.add("load","initImage()");

WindowListener.add("load","inputFocus()");

WindowListener.add("load","mainImage.getMainImage()");

//WindowListener.add("load","initLightbox()");



