<!--
/*
SPAWN Window
*/
var objWin = new Object;
function openWin( url, width, height, allowScroll, dontClose, allowResize ) {
	if( allowScroll != "" ) { allowScroll = String( allowScroll ).toLowerCase(); }
	if( allowScroll != 'yes' && allowScroll != 'no' ) { allowScroll = 'yes'; }
	if( allowResize != "" ) { allowResize = String( allowResize ).toLowerCase(); }
	if( allowResize != 'yes' && allowResize != 'no' ) { allowResize = 'no'; }
	
	//allowScroll = 'yes'; // Disable allowScroll option, but keep code in place for future use
	var x = (640 - width)/2; var y = (480 - height)/2;
	if( screen ) { y = ( screen.availHeight - height ) / 2; x = ( screen.availWidth - width ) / 2; }
	if( screen.availWidth > 1800 ) { x = ( ( screen.availWidth / 2 ) - width ) / 2; }
	if( objWin.closed == false && dontClose != true ) { objWin.close(); }

	//if( objWin != null ) { objWin.close(); }
	objWin = window.open( url, "Win" + dontClose, 'width=' + width + ',height=' + height + ',status=no,scrollbars=' + allowScroll + ',resizable=' + allowResize + ',screenX=' + x + ',screenY=' + y + ',top=' + y + ',left=' + x );
	objWin.focus();
}


/*
FORM Validation
*/
function validateEmail( emailStr ) {

	var emailPat = /^(.+)@(.+)$/;
	var specialChars = "\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
	var validChars = "\[^\\s" + specialChars + "\]";
	var quotedUser = "(\"[^\"]*\")";
	var ipDomainPat = /^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom = validChars + '+';
	var word = "(" + atom + "|" + quotedUser + ")";
	var userPat = new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat = new RegExp("^" + atom + "(\\." + atom +")*$");

	var matchArray = emailStr.match( emailPat );
	if( matchArray == null ) { return false; }

	var user = matchArray[1];
	var domain = matchArray[2];

	if( user.match(userPat) == null )
    	return false;

	var IPArray = domain.match( ipDomainPat );
	if( IPArray != null ) {
		for( var i = 1; i <= 4; i++ ) {
		    if( IPArray[i] > 255 ) { return false; }
		}
    	return true;
	}

	// Domain is symbolic name
	var domainArray = domain.match( domainPat );
	if( domainArray == null ) { return false; }

	var atomPat = new RegExp( atom,"g" );
	var domArr = domain.match( atomPat );
	var len = domArr.length;
	if( domArr[ domArr.length-1 ].length < 2 || domArr[ domArr.length-1 ].length > 4 ) { return false; }
	if( len < 2 ) { return false; }

	// Email address checks out!
	return true;
}

function validateNewsletterEmail( emailStr ) {

	if( validateEmail( emailStr ) ){
		document.forms[0].submit();
	}else{
		alert('Please provide a valid email address.');
	}

}
// Declaring required variables
var digits = "0123456789";
// non-digit characters which are allowed in phone numbers
var phoneNumberDelimiters = "()- ";
// characters which are allowed in international phone numbers
// (a leading + is OK)
var validWorldPhoneChars = phoneNumberDelimiters + "+";
// Minimum no of digits in an international phone no.
var minDigitsInIPhoneNumber = 10;

function isInteger(s){
	return !isNaN( s );
}

function stripCharsInBag(s, bag){
	var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++) {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}


/*
IMAGE Rollovers
*/
var menuNavButtons = new Array();

function buttonPrototype( imgHover, imgNormal, imgGallery, imgSubTitle ) {
	this.Hover = new Image;
	this.Hover.src = imgHover;
	this.Normal = new Image;
	this.Normal.src = imgNormal;
	if( typeof(imgGallery) != 'undefined' ){		
		this.Gallery = new Image;
		this.Gallery.src = imgGallery;
	}
	if( typeof(imgSubTitle) != 'undefined' ){		
		this.SubTitle = new Image;
		this.SubTitle.src = imgSubTitle;
	}
	//alert("buttonPrototype: "+ this.Hover.src +", "+ this.Normal.src);
}

function rollImg( thisImg, thisState ) {
	//alert( 'menuNavButtons[ \'' + thisImg + '\' ].' + thisState + '.src' );
	//alert( eval( 'menuNavButtons[ \'' + thisImg + '\' ].' + thisState + '.src' ) );
	document.images[ thisImg ].src = eval( 'menuNavButtons[ \'' + thisImg + '\' ].' + thisState + '.src' );
}

function rollGalleryImg( thisArray, thisImg, thisState ) {
	//alert( thisArray.length );
	for($img=0;$img<thisArray.length;$img++){
		document.images[ thisArray[$img][0] ].src = eval( 'menuNavButtons[ \'' + thisArray[$img][0] + '\' ].Normal.src' );
	}
	//alert( 'menuNavButtons[ \'' + thisImg + '\' ].' + thisState + '.src' );
	//alert( eval( 'menuNavButtons[ \'' + thisImg + '\' ].' + thisState + '.src' ) );
	document.images[ thisImg ].src = eval( 'menuNavButtons[ \'' + thisImg + '\' ].' + thisState + '.src' );
	document.images[ 'galleryImage' ].src = eval( 'menuNavButtons[ \'' + thisImg + '\' ].Gallery.src' );
	document.images[ 'subTitle' ].src = eval( 'menuNavButtons[ \'' + thisImg + '\' ].SubTitle.src' );
}

function rollHomeImg( thisImgIndx ) {
	//alert( thisImgIndx );
	//alert( homeImageArray[thisImgIndx] );
	//alert( document.images[ 'homeImage' ].src );
	
	thisImgIndx = thisImgIndx+1;
	
	if( thisImgIndx >= homeImageArray.length )
		thisImgIndx = 0;
	
	fadeIn("homeImage",0);
	document.images[ 'homeImage' ].src = "/images/"+ homeImageArray[ thisImgIndx ];
	
	setTimeout( 'rollHomeImg( '+ thisImgIndx +');', 5000 );
	//alert( thisArray[ thisImgIndx ] );
	//alert( 'menuNavButtons[ \'' + thisImg + '\' ].' + thisState + '.src' );
	//alert( eval( 'menuNavButtons[ \'' + thisImg + '\' ].' + thisState + '.src' ) );
	
}

function rollAboutUsImg( thisArray, thisImgIndex ) {

	

	//alert( thisArray.length );
	for($img=0;$img<thisArray.length;$img++){
		//document.images[ thisArray[$img][0] ].src = eval( 'menuNavButtons[ \'' + thisArray[$img][0] + '\' ].Normal.src' );
	}
	//alert( 'menuNavButtons[ \'' + thisImg + '\' ].' + thisState + '.src' );
	//alert( eval( 'menuNavButtons[ \'' + thisImg + '\' ].' + thisState + '.src' ) );
	//document.images[ thisImg ].src = eval( 'menuNavButtons[ \'' + thisImg + '\' ].' + thisState + '.src' );
	document.images[ 'galleryImage' ].src = eval( 'menuNavButtons[ \'' + thisArray[ thisImgIndex ][0] + '\' ].Gallery.src' );
	document.images[ 'subTitle' ].src = eval( 'menuNavButtons[ \'' + thisArray[ thisImgIndex ][0] + '\' ].SubTitle.src' );

	
}

function PageQuery(q) {
	if(q.length > 1) this.q = q.substring(1, q.length);
	else this.q = null;
	
	this.keyValuePairs = new Array();
	
	if(q) {
		for(var i=0; i < this.q.split("&").length; i++) {
			this.keyValuePairs[i] = this.q.split("&")[i];
		}
	}
	this.getKeyValuePairs = function() { return this.keyValuePairs; }
	this.getValue = function(s) {
		
		for(var j=0; j < this.keyValuePairs.length; j++) {
			if(this.keyValuePairs[j].split("=")[0] == s)
				return this.keyValuePairs[j].split("=")[1];
			}
		return false;
	}
	
	this.getParameters = function() {
	var a = new Array(this.getLength());
	for(var j=0; j < this.keyValuePairs.length; j++) {
	a[j] = this.keyValuePairs[j].split("=")[0];
	}
	return a;
	}
	
	this.getLength = function() { return this.keyValuePairs.length; } 
}

function queryString(key){
	var page = new PageQuery(window.location.search); 
	return unescape(page.getValue(key)); 
}

function displayItem(key){
	if(queryString(key)=='false'){
		return false;
	}else{
		return queryString(key);
	}
}

var navArray = new Array(
	'navProjects',
	'navAbout_Us',
	'navAwards',
	'navPublications',
	'navDirectory'	
);

var subNavArray = new Array(
	'subNavResidential',
	'subNavCommercial'
);

function buildNav( thisPage, thisProjectType ){
	
	document.write(
		'<table border="0" cellpadding="0" cellspacing="0">'+
		'	<tr>'
	);
	
	for($nav=0;$nav<navArray.length;$nav++){
		var imgName = navArray[ $nav ].substr(3);
				
		if( page == imgName )
			document.write('		<td><img name="nav'+ imgName.toLowerCase() +'" src="images/nav/nav'+ imgName +'_on.gif" alt="" border="0"></td>' );
		else
			document.write('		<td><a href="/'+ imgName.toLowerCase() +'.html" onMouseOver="rollImg( \'nav'+ imgName +'\', \'Hover\' );" onMouseOut="rollImg( \'nav'+ imgName +'\', \'Normal\' );"><img name="nav'+ imgName +'" src="images/nav/nav'+ imgName +'_off.gif" alt="" border="0"></a></td>' );
					
	}
	document.write(
		'	</tr>'+
		'	<tr>'+
		'		<td colspan="5" background="images/nav/secondNav_blank.gif">'
	);
	
	if( thisPage == "Projects" ){
		document.write(
			'		<table border="0" cellpadding="0" cellspacing="0">'+
			'			<tr>'
		);
		
		for($subNav=0;$subNav<subNavArray.length;$subNav++){	
			var imgName = subNavArray[ $subNav ].substr(6);
			var thisProjectType = subNavArray[ $subNav ].substr(6).toLowerCase();
			if( projectType == thisProjectType  )
				document.write('				<td><a href="/projects_'+ thisProjectType +'.html"><img name="'+ subNavArray[ $subNav ] +'" src="images/nav/'+ subNavArray[ $subNav ] +'_on.gif" alt="" border="0"></a></td>' );
			else
				document.write('				<td><a href="/projects_'+ thisProjectType +'.html" onMouseOver="rollImg( \''+ subNavArray[ $subNav ] +'\', \'Hover\' );" onMouseOut="rollImg( \''+ subNavArray[ $subNav ] +'\', \'Normal\' );"><img name="'+ subNavArray[ $subNav ] +'" src="images/nav/'+ subNavArray[ $subNav ] +'_off.gif" alt="" border="0"></a></td>' );
					
		}
		
		document.write(
			'			</tr>'+
			'		</table></td>'
		);
	}else{	
		document.write('		<img src="images/spacer.gif" width="1" height="25" border="0"></td>');
	}
	document.write(
		'	</tr>'+
		'</table>'
	);
}

function changeImage( thisImgIndex ){
	
	imageId = 'galleryImage';
	image = document.getElementById(imageId);
			
	//fadeOut("galleryImage",100);
			
	rollAboutUsImg( thisGalleryArray, thisImgIndex );
	thisImgIndex = thisImgIndex+1;
	
	if( thisImgIndex >= thisGalleryArray.length )
		thisImgIndex = 0;
	
	
	fadeIn("galleryImage",0);
	
	setTimeout( 'changeImage( '+ thisImgIndex +');', 5000 );
}

function initImage( imageId ) {
	//imageId = 'galleryImage';
	image = document.getElementById(imageId);
	setOpacity(image, 0);
	image.style.visibility = "visible";
	fadeIn(imageId,0);	
}
function fadeIn(objId,opacity) {
	if (document.getElementById) {
		obj = document.getElementById(objId);
		if (opacity < 100) {
			setOpacity(obj, opacity);
			opacity += 10;
			window.setTimeout("fadeIn('"+objId+"',"+opacity+")", 1);
		}
	}
}

function fadeOut(objId,opacity) {
	if (document.getElementById) {
		obj = document.getElementById(objId);
		if (opacity > 0) {
			setOpacity(obj, opacity);
			opacity -= 10;
			window.setTimeout("fadeOut('"+objId+"',"+opacity+")", 1);
		}
	}
}
function setOpacity(obj, opacity) {
	opacity = (opacity == 100)?99.999:opacity;
	// IE/Win
	obj.style.filter = "alpha(opacity:"+opacity+")";
	// Safari<1.2, Konqueror
	obj.style.KHTMLOpacity = opacity/100;
	// Older Mozilla and Firefox
	obj.style.MozOpacity = opacity/100;
	// Safari 1.2, newer Firefox and Mozilla, CSS3
	obj.style.opacity = opacity/100;
}

function validateIdolContestForm(preferred_language)
{
errMessage = "";
errCount = 0;
x=document.forms[0];

at=x.email.value.indexOf("@");
dot=x.email.value.indexOf(".");

firstName=x.fname.value;
lastName=x.lname.value;
email=x.email.value;

submitOK="True";


if (firstName.length <= 0)
 {
 	if (preferred_language == "eng"){
 		errMessage = errMessage + "\t- First Name\t\n";
	}else if(preferred_language == "fre"){		
 		errMessage = errMessage + "\t- Prénom\t\n";
	}
 errCount++;
 submitOK="False";
 }
if (lastName.length <= 0)
 {
 	if (preferred_language == "eng"){
 errMessage = errMessage + "\t- Last Name\t\n";
	}else if(preferred_language == "fre"){		
 		errMessage = errMessage + "\t- Nom\t\n";
	}
 errCount++;
 submitOK="False";
 }
if (email.length <= 0){
	if (preferred_language == "eng"){
		 errMessage = errMessage + "\t- Email\t\n";
	}else if(preferred_language == "fre"){		
		errMessage = errMessage + "\t- Courriel\t\n";
	}
	errCount++;
	submitOK="False";
	
} else if (email.length != 0){
	if (! validateEmail(email)){
		if (preferred_language == "eng"){
			 errMessage = errMessage + "\t- VALID Email\t\n";
		}else if(preferred_language == "fre"){		
			errMessage = errMessage + "\t- Courriel VALIDE\t\n";
		}
		errCount++;
		submitOK="False";
	}	
}
if (submitOK=="False")
 {
 	if (preferred_language == "eng"){
 		errMessage = "Please enter your:\n\n" + errMessage;
	}else if(preferred_language == "fre"){		
 		errMessage = "Veuillez entrer votre :\n\n" + errMessage;
	}
 alert(errMessage);
 //return false;
 return; 
 }

document.forms[0].submit( );
}

function validateContestForm(preferred_language)
{
errMessage = "";
errCount = 0;
x=document.forms[0];

at=x.email.value.indexOf("@");
dot=x.email.value.indexOf(".");

firstName=x.fname.value;
lastName=x.lname.value;
age=x.age.value;
sex=x.sex;
address=x.address.value;
city=x.city.selectedIndex;
prov=x.prov.selectedIndex;
pc=x.pc.value;
phone=x.phone.value;
email=x.email.value;

submitOK="True";


if (firstName.length <= 0)
 {
 	if (preferred_language == "eng"){
 		errMessage = errMessage + "\t- First Name\t\n";
	}else if(preferred_language == "fre"){		
 		errMessage = errMessage + "\t- Prénom\t\n";
	}
 errCount++;
 submitOK="False";
 }
if (lastName.length <= 0)
 {
 	if (preferred_language == "eng"){
 errMessage = errMessage + "\t- Last Name\t\n";
	}else if(preferred_language == "fre"){		
 		errMessage = errMessage + "\t- Nom\t\n";
	}
 errCount++;
 submitOK="False";
 }
if (age.length <= 0)
 {
 	if (preferred_language == "eng"){
 errMessage = errMessage + "\t- Age\t\n";
	}else if(preferred_language == "fre"){		
 		errMessage = errMessage + "\t- Âge\t\n";
	}
 errCount++;
 submitOK="False";
 }
/*
if (! sex[0].checked && ! sex[1].checked)
 {
 	if (preferred_language == "eng"){
 errMessage = errMessage + "\t- Sex\t\n";
	}else if(preferred_language == "fre"){		
 		errMessage = errMessage + "\t- Sexe\t\n";
	}
 errCount++;
 submitOK="False";
 }
if (address.length <= 0)
 {
 	if (preferred_language == "eng"){
 errMessage = errMessage + "\t- Address\t\n";
	}else if(preferred_language == "fre"){		
 		errMessage = errMessage + "\t- Rue\t\n";
	}
 errCount++;
 submitOK="False";
 }
if (city < 1)
 {
 	if (preferred_language == "eng"){
 errMessage = errMessage + "\t- City\t\n";
	}else if(preferred_language == "fre"){		
 		errMessage = errMessage + "\t- Ville\t\n";
	}
 errCount++;
 submitOK="False";
 }
if (prov < 1)
 {
 	if (preferred_language == "eng"){
 errMessage = errMessage + "\t- Province\t\n";
	}else if(preferred_language == "fre"){		
 		errMessage = errMessage + "\t- Province\t\n";
	}
 errCount++;
 submitOK="False";
 }*/
if (pc.length <= 0)
 {
 	if (preferred_language == "eng"){
 errMessage = errMessage + "\t- Postal Code\t\n";
	}else if(preferred_language == "fre"){		
 		errMessage = errMessage + "\t- Code postal\t\n";
	}
 errCount++;
 submitOK="False";
 }
if (phone.length <= 0)
 {
 	if (preferred_language == "eng"){
 errMessage = errMessage + "\t- Phone\t\n";
	}else if(preferred_language == "fre"){		
 		errMessage = errMessage + "\t- Numéro de téléphone\t\n";
	}
 errCount++;
 submitOK="False";
 }else{
	 if (! checkInternationalPhone(phone,10,10)){
 	if (preferred_language == "eng"){
	 errMessage = errMessage + "\t- VALID Phone\t\n";
	}else if(preferred_language == "fre"){		
 		errMessage = errMessage + "\t- Numéro de téléphone VALIDE\t\n";
	}
 	 errCount++;
	 submitOK="False";	 		
	 }else{
	 phone.value = stripCharsInBag(phone,validWorldPhoneChars);
	 }
 }
if (email.length <= 0){
	if (preferred_language == "eng"){
		 errMessage = errMessage + "\t- Email\t\n";
	}else if(preferred_language == "fre"){		
		errMessage = errMessage + "\t- Courriel\t\n";
	}
	errCount++;
	submitOK="False";
	
} else if (email.length != 0){
	if (! validateEmail(email)){
		if (preferred_language == "eng"){
			 errMessage = errMessage + "\t- VALID Email\t\n";
		}else if(preferred_language == "fre"){		
			errMessage = errMessage + "\t- Courriel VALIDE\t\n";
		}
		errCount++;
		submitOK="False";
	}	
}
if (submitOK=="False")
 {
 	if (preferred_language == "eng"){
 		errMessage = "Please enter your:\n\n" + errMessage;
	}else if(preferred_language == "fre"){		
 		errMessage = "Veuillez entrer votre :\n\n" + errMessage;
	}
 alert(errMessage);
 //return false;
 return; 
 }

document.forms[0].submit( );
}

function checkInternationalPhone(strPhone, phoneMinLength, phoneMaxLength){
	s=stripCharsInBag(strPhone,validWorldPhoneChars);
	return (isInteger(s) && s.length >= phoneMinLength && s.length <= phoneMaxLength);
}
function contest_window(preferred_language,event_id)
{
	if (preferred_language == "eng"){
		window.open("../"+preferred_language+"/contest.php?lang="+preferred_language+"&id="+event_id,"contest_window_fre","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=no,width=476,height=600,top=50,left=50")
	}else if(preferred_language == "fre"){
		window.open("../"+preferred_language+"/contest.php?lang="+preferred_language+"&id="+event_id,"contest_window_eng","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=no,width=476,height=610,top=25,left=25")
	}	
}

function contest_thankyou(preferred_language)
{
window.open("../"+preferred_language+"/contest.php?lang="+preferred_language+"&form=sumbitted","contest_ballot_submitted","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=no,width=476,height=545,top=50,left=50")
}



function validateOptIn(preferred_language)
{
errMessage = "";
errCount = 0;
x=document.forms[0];

at=x.email.value.indexOf("@");
dot=x.email.value.indexOf(".");

firstName=x.fname.value;
lastName=x.lname.value;
email=x.email.value;

submitOK="True";


if (firstName.length <= 0)
 {
 	if (preferred_language == "eng"){
 		errMessage = errMessage + "\t- First Name\t\n";
	}else if(preferred_language == "fre"){		
 		errMessage = errMessage + "\t- Prénom\t\n";
	}
 errCount++;
 submitOK="False";
 }
if (lastName.length <= 0)
 {
 	if (preferred_language == "eng"){
 errMessage = errMessage + "\t- Last Name\t\n";
	}else if(preferred_language == "fre"){		
 		errMessage = errMessage + "\t- Nom\t\n";
	}
 errCount++;
 submitOK="False";
 }

if (email.length <= 0){
	if (preferred_language == "eng"){
		 errMessage = errMessage + "\t- Email\t\n";
	}else if(preferred_language == "fre"){		
		errMessage = errMessage + "\t- Courriel\t\n";
	}
	errCount++;
	submitOK="False";
	
} else if (email.length != 0){
	if (! validateEmail(email)){
		if (preferred_language == "eng"){
			 errMessage = errMessage + "\t- VALID Email\t\n";
		}else if(preferred_language == "fre"){		
			errMessage = errMessage + "\t- Courriel VALIDE\t\n";
		}
		errCount++;
		submitOK="False";
	}	
}
if (submitOK=="False")
 {
 	if (preferred_language == "eng"){
 		errMessage = "Please enter your:\n\n" + errMessage;
	}else if(preferred_language == "fre"){		
 		errMessage = "Veuillez entrer votre :\n\n" + errMessage;
	}
 alert(errMessage);
 //return false;
 return; 
 }

document.forms[0].submit( );
}


//var blnDOM = false, blnIE4 = false, blnNN4 = false;

//if (document.layers) blnNN4 = true;
//else if (document.all) blnIE4 = true;
//else if (document.getElementById) blnDOM = true;


//if (blnNN4) document.captureEvents(Event.KEYDOWN)

//function getKeycode(e){
//  var Keycode;
//  if (blnNN4)
//  {
//    var NN4key = e.which
//    Keycode = NN4key;
//  }
//  if (blnDOM)
//  {
//    var blnkey = e.which
//    Keycode = blnkey;
//  }
//  if (blnIE4)
//  {
//    var IE4key = event.keyCode
//    Keycode = IE4key;
//  }
//  
//  if( Keycode == 13 ) return false;
//}

//document.onkeydown = getKeycode



//-->