
/**
 *	Attaches any javascript functionality to elements.
 *
 */
function initialize(){
	var allElements = document.body.getElementsByTagName("*");
	for (var i = 0; i < allElements.length; i++){
		/*create shadows */
		if(allElements[i].getAttribute('_shadow_me')){
			eval("var properties = "+allElements[i].getAttribute('_shadow_me')+";");
			var el = allElements[i];
			//alert(el.getAttribute('_nifty_selector')+"; "+el.getAttribute('_nifty_bk')+"; "+el.getAttribute('_nifty_color')+"; ");
			shadowElement(el,properties);
		}
		/*highlight */
		if(allElements[i].getAttribute('_ds_highlight') == "true"){
			allElements[i].timer = null;
			allElements[i]._ds_brightness = _ds_minval;
			//Assign the Attribute to a property to prevent repeat calls using getAttribute. This dramatically increaes performance in this case.
			allElements[i]._ds_highlighttype = allElements[i].getAttribute("_ds_highlighttype");
			//Set starting opacity
			changeStyle(allElements[i], allElements[i]._ds_brightness);
			//Add Evenet Listeners
			if(allElements[i].addEventListener){
				allElements[i].addEventListener("mouseover", highlightElement, false);
				allElements[i].addEventListener("mouseout", unhighlightElement, false);
			}else{
				allElements[i].attachEvent("onmouseover", highlightElement);
				allElements[i].attachEvent("onmouseout", unhighlightElement);
			}
		}
		/*create tabs */
		if(allElements[i].getAttribute('_tabMe')){
			var el = allElements[i];
			tabHandler(el);
		}
		/*nifty corners */
		if(allElements[i].getAttribute('_roundmycorners')){
			//alert("var properties = "+allElements[i].getAttribute('_roundmycorners'));
			eval("var properties = "+allElements[i].getAttribute('_roundmycorners'));
			var selectors = properties['selector'];
			var el = allElements[i];
			//alert(el.getAttribute('_nifty_selector')+"; "+el.getAttribute('_nifty_bk')+"; "+el.getAttribute('_nifty_color')+"; ");
			Rounded(properties['selector'],properties['bgcolour'],properties['colour'],properties['size'],properties['toponly'], properties['borderColour']);
		}
		/*shrink/scale images */
		if(allElements[i].getAttribute('_shrinkMe')){
			var shrinkMeProps = allElements[i].getAttribute('_shrinkMe').split(',');
			shrinkObject(shrinkMeProps[0], shrinkMeProps[1], allElements[i], 'inline');
		}
	}
	
	fixBrokenImages();
	
}

//--------CHECK FOR ENTER ON SEARCH BOX-----------------------------------------------------------------------------------------------------------------------

function checkItSearch(e)
{ 
  var charCode = (navigator.appName == "Netscape") ? e.which : e.keyCode;
  status = charCode;
  if (charCode == 13)
  {
    SearchWindow();
	return false;
  }
  return true;
} 

//--------SEARCH WINDOW --------------------------------------------------------------------------------------------------------------------------------------
function SearchWindow () {
	var winl =(screen.width)?(screen.width-625)/2:100;
	var wint =(screen.height)?(screen.height-400)/2:100;
	var settings ='height='+420+',';
	settings +='width='+516+',';
	settings +='height='+420+',';
	settings +='top='+wint+',';
	settings +='left='+winl+',';
	settings +='scrollbars=yes'+',';
	settings +='resizable=no';
	win=window.open("../../search/search.asp?search="+document.forms["frmSiteSearch"].search.value+"&mode=allwords",'siteSearch',settings);
	win.focus();

}


//--------REQUEST WINDOW --------------------------------------------------------------------------------------------------------------------------------------
function RequestWindow () {

	var winl =(screen.width)?(screen.width-500)/2:100;
	var wint =(screen.height)?(screen.height-500)/2:100;
	var settings ='height='+500+',';
	settings +='width='+500+',';
	settings +='top='+wint+',';
	settings +='left='+winl+',';
	settings +='scrollbars=yes'+',';
	settings +='resizable=no';
	win=window.open("../global/request.asp",'request',settings);
	win.focus();

}

//--------LOGIN WINDOW --------------------------------------------------------------------------------------------------------------------------------------
function LoginWindow () {

	var winl =(screen.width)?(screen.width-625)/2:100;
	var wint =(screen.height)?(screen.height-400)/2:100;
	var settings ='height='+400+',';
	settings +='width='+625+',';
	settings +='height='+400+',';
	settings +='top='+wint+',';
	settings +='left='+winl+',';
	settings +='scrollbars=yes'+',';
	settings +='resizable=no';
	win=window.open("../global/login.asp",'login',settings);
	win.focus();

}

//--------WALKTHROUGH WINDOW --------------------------------------------------------------------------------------------------------------------------------------
function WalkthroughWindow () {

	var winl =(screen.width)?(screen.width-625)/2:100;
	var wint =(screen.height)?(screen.height-400)/2:100;
	var settings ='height='+400+',';
	settings +='width='+700+',';
	settings +='height='+400+',';
	settings +='top='+wint+',';
	settings +='left='+winl+',';
	settings +='scrollbars=yes'+',';
	settings +='resizable=no';
	win=window.open("../global/walkthrough.asp",'walkthrough',settings);
	win.focus();

}



if (navigator.appName == "Netscape")
{
	window.captureEvents(Event.KEYPRESS)
	window.onKeyPress = checkIt;
}

function submitLogin(){
if (document.forms["login"].userID.value=="") {
    alert("Please enter a valid User Name");
    document.forms["login"].userID.focus();
    //return false;
    }
else if (document.forms["login"].password.value=="") {
    alert("Please enter a valid Password");
    document.forms["login"].password.focus();
    //return false;
    }	
else{
	document.forms["login"].submit();
	return true;
	}
}

function submitNewsletter(){
if (document.forms["newsletter"].nlEmail.value.indexOf('@',0)==-1 ||
    document.forms["newsletter"].nlEmail.value.indexOf('@',0)== 0 ||
    document.forms["newsletter"].nlEmail.value.indexOf('.',0)==-1) {
    alert("Please enter a valid E-mail");
    document.forms["newsletter"].nlEmail.focus();
    //return false;
    }
else{
	document.forms["newsletter"].submit();
	return true;
}
//return true;
}

function checkIt(e)
{ 
  var charCode = (navigator.appName == "Netscape") ? e.which : e.keyCode;
  //status = charCode;
  if (charCode == 13)
  {
    checkFields();
  }
  return true;
} 

function checkIt2(e)
{ 
  var charCode = (navigator.appName == "Netscape") ? e.which : e.keyCode;
  //status = charCode;
  if (charCode == 13)
  {
    submitLogin();
  }
  return true;
}

function checkIt3(e)
{ 
  var charCode = (navigator.appName == "Netscape") ? e.which : e.keyCode;
  //status = charCode;
  if (charCode == 13)
  {
    submitNewsletter();
	return false;
  }
  return true;
} 


function swapImg(name, ON_OFF, path, stat_txt){
	var suff = ""
	var type = ".gif";
		suff = ON_OFF ? "_h" : "";
	document.images[name].src = path + name + suff + type;
	window.status = stat_txt;
}


function NewWindow(mypage,myname,w,h){
	var winl =(screen.width)?(screen.width-w)/2:100;
	var wint =(screen.height)?(screen.height-h)/2:100;
	var settings ='height='+h+',';
	settings +='width='+w+',';
	settings +='height='+h+',';
	settings +='top='+wint+',';
	settings +='left='+winl+',';
	settings +='scrollbars=yes'+',';
	settings +='resizable=no';
	win=window.open(mypage,myname,settings);
	win.focus();
}

function NewWindowPdf(mypage,myname){
w=600
h=500
if(navigator.userAgent.indexOf("MSIE")==-1)
{
	var winl =(screen.width)?(screen.width-w)/2:100;
	var wint =(screen.height)?(screen.height-h)/2:100;
	var settings ='height='+h+',';
	settings +='width='+w+',';
	settings +='height='+h+',';
	settings +='top='+wint+',';
	settings +='left='+winl+',';
	settings +='scrollbars=yes'+',';
	settings +='resizable=yes';
	win=window.open(mypage,myname,settings);
	win.focus();

}
else
{
	var winl =(screen.width)?(screen.width-w)/2:100;
	var wint =(screen.height)?(screen.height-h)/2:100;
	var settings ='height='+h+',';
	settings +='width='+w+',';
	settings +='height='+h+',';
	settings +='top='+wint+',';
	settings +='left='+winl+',';
	settings +='scrollbars=auto'+',';
	settings +='resizable=yes';
	win=window.open(mypage,myname,settings);
	win.focus();
}
}

function NewWindowDisc(mypage,myname){
if(navigator.userAgent.indexOf("MSIE")==-1)
{
w=480;
h=283;
	var winl =(screen.width)?(screen.width-w)/2:100;
	var wint =(screen.height)?(screen.height-h)/2:100;
	var settings ='height='+h+',';
	settings +='width='+w+',';
	settings +='height='+h+',';
	settings +='top='+wint+',';
	settings +='left='+winl+',';
	settings +='scrollbars=no'+',';
	settings +='resizable=no';
	win=window.open(mypage,myname,settings);
	win.focus();

}
else
w=480;
h=304;
{
	var winl =(screen.width)?(screen.width-w)/2:100;
	var wint =(screen.height)?(screen.height-h)/2:100;
	var settings ='height='+h+',';
	settings +='width='+w+',';
	settings +='height='+h+',';
	settings +='top='+wint+',';
	settings +='left='+winl+',';
	settings +='scrollbars=no'+',';
	settings +='resizable=no';
	win=window.open(mypage,myname,settings);
	win.focus();
}
}

function NewWindowPU(mypage,myname,h){
if(navigator.userAgent.indexOf("MSIE")==-1)
{
w=480;
	var winl =(screen.width)?(screen.width-w)/2:100;
	var wint =(screen.height)?(screen.height-h)/2:100;
	var settings ='height='+h+',';
	settings +='width='+w+',';
	settings +='height='+h+',';
	settings +='top='+wint+',';
	settings +='left='+winl+',';
	settings +='scrollbars=no'+',';
	settings +='resizable=no';
	win=window.open(mypage,myname,settings);
	win.focus();

}
else
w=480;
{
	var winl =(screen.width)?(screen.width-w)/2:100;
	var wint =(screen.height)?(screen.height-h)/2:100;
	var settings ='height='+h+',';
	settings +='width='+w+',';
	settings +='height='+h+',';
	settings +='top='+wint+',';
	settings +='left='+winl+',';
	settings +='scrollbars=no'+',';
	settings +='resizable=no';
	win=window.open(mypage,myname,settings);
	win.focus();
}
}

 function makeRemote(areaName,sectionName) {
    //alert(areaName);
	//alert(areaName);
	opener.location="../"+areaName+"/"+sectionName;
    }
	
	
function validateRequestInfo(){
	var isError = false;
	var errorMessage = "You have encountered the following errors:\n";
	var isFirst = document.forms[0].fName.value;
	var isLast = document.forms[0].fName.value;
	var isEmail = document.forms[0].email.value;
	
	if (isFirst == ""){
		isError = true;
		errorMessage += "First Name cannot be empty\n";
	}
	if (isLast == ""){
		isError = true;
		errorMessage += "Last Name cannot be empty\n";
	}
	if (isEmail == ""){
		isError = true;
		errorMessage += "Email address cannot be empty\n";
	}else{
		var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
		if (filter.test(isEmail)){
		}else{
			isError = true;
			errorMessage += "Email address is invalid\n"
		}
	}
	if (isError){
		alert(errorMessage);
		return false;
	}else{
		return true;
	}
}


function validateCallYou(){
	var isError = false;
	var errorMessage = "You have encountered the following errors:\n";
	var isPhone = document.forms[0].phoneNumber.value;
	var isName = document.forms[0].fullName.value;
	var isEmail = document.forms[0].email.value;
	var isState = document.forms[0].stateProvince.value;
	
	if (isPhone == ""){
		isError = true;
		errorMessage += "Phone number cannot be empty\n";
	}else{
		phoneRegex = /^\d\d\d\-\d\d\d-\d\d\d\d$/;
		if( !isPhone.match( phoneRegex ) ) {
			isError = true;
			errorMessage += "Please enter a valid phone number\n";
		}
	}
	
	if (isName == ""){
		isError = true;
		errorMessage += "Full Name cannot be empty\n";
	}
	
	if (isEmail == ""){
		isError = true;
		errorMessage += "Email address cannot be empty\n";
	}else{
		var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
		if (filter.test(isEmail)){
		}else{
			isError = true;
			errorMessage += "Email address is invalid\n";
		}
	}
	
	if (isState == "0" || isState=="States" || isState=="Provinces"){
		isError = true;
		errorMessage += "Select State/Province\n";
	}
	
	if (isError){
		alert(errorMessage);
		return false;
	}else{
		return true;
	}
}

/**
	 * Scales an objects height and width to the specifications passed in.
	 * @param {Object} width - The width to resize to
	 * @param {Object} height - The height to resize to
	 * @param {Object} img - The object Node
	 * @param {Object} display - Optional - The style display to apply to the object node
	 * 								after scaling has taken effect. Use this if display: 'none'
	 * 								has been assigned to the object to prevent rendering
	 * 								before scaling has been applied.
	 */
function shrinkObject(width, height, obj, display){
	var tempWidth, tempHeight;
	//IE does not support img.width for img tags only Image objects. So, create Image.
	if(!(obj.height && obj.width)&&obj.tagName=="IMG"){
		var temp = new Image();
		temp.src = obj.src;
		tempWidth = temp.width;
		tempHeight = temp.height;
	}else{
		tempWidth = obj.width;
		tempHeight = obj.height;
	}

	
	if(tempHeight > height){
		//alter height whilst maintaning scale
		tempWidth = height/tempHeight*tempWidth;
		tempHeight = height;
	}
	if(tempWidth > width){
		//alter width whilst maintaning scale
		tempHeight = width/tempWidth*tempHeight;
		tempWidth = width;
	}
	obj.width = tempWidth;
	obj.height = tempHeight;
	if(obj.style && display)
		obj.style.display = display;
}

function fixBrokenImages(){
	for (var i = 0; i < document.images.length; i++) {
		isImageThere = true;
		// During the onload event, IE correctly identifies any images that
		// weren't downloaded as not complete. Others should too. Gecko-based
		// browsers act like NS4 in that they report this incorrectly.
		if (!document.images[i].complete) {
			isImageThere = false;
		}
	
		// However, they do have two very useful properties: naturalWidth and
		// naturalHeight. These give the true size of the image. If it failed
		// to load, either of these should be zero.
		if (typeof document.images[i].naturalWidth != "undefined" && document.images[i].naturalWidth == 0) {
			isImageThere = false;
		}
	
		// No other way of checking: assume it's ok.
		if(!isImageThere)
			document.images[i].style.visibility = "hidden";
	}	
}
