// common js functions
// 
// Copyright (c) 2004 Tribal DDB Canada
// James Marshall www.tribalddb.ca
// 
// v3.01

// image swapping
var flagSound = false;

function swapToImg( id, img ) {
	document.getElementById( id ).src = img;
}

function swap( id, img ) {
	document.getElementById( id ).src = img.src;
}


function isNumeric(alphaField, errMsg ) {
	if (isNaN(alphaField.value)==false  && alphaField.value > 0)
	{
		return true;
	}else{
		alert(errMsg);
		alphaField.focus();
		alphaField.select();
		return false;
	}
}

function isNumericMaxLength(alphaField, errMsg, maxLength ) {
	if (isNaN(alphaField.value)==false  && alphaField.value > 0 && alphaField.value.length <= maxLength )
	{
		return true;
	}else{
		alert(errMsg);
		alphaField.focus();
		alphaField.select();
		return false;
	}
}


function isName( alphaField, errMsg ) {
	if ( alphaField.value.match(/^[A-Za-z\'\- ]+$/) )
	{
		return true;
	}else{
		alert(errMsg);
		alphaField.focus();
		alphaField.select();
		return false;
	}
}

function isEmail( alphaField, errMsg ) {
	if ( alphaField.value.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1 ) {
		return true;
	} else {
		alert(errMsg);
		alphaField.focus();
		alphaField.select();
		return false;
	}
}

function isEmailMulti( alphaField, errMsg ) {
	// email addresses separated by commas
	if ( alphaField.value.search(/^(\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+(,( )?)?)+$/) != -1 ) {
		return true;
	} else {
		alert(errMsg);
		alphaField.focus();
		alphaField.select();
		return false;
	}
}


function isEmpty( alphaField, errMsg ) {
	// email addresses separated by commas
	if ( alphaField.value != "") {
		return true;
	} else {
		alert(errMsg);
		alphaField.focus();
		alphaField.select();
		return false;
	}
}

function hasValues( alphaField, errMsg ) {
	// email addresses separated by commas
	if ( alphaField.value == "") {
		return false;
	} else {
		alert(errMsg);
		alphaField.focus();
		alphaField.select();
		return true;
	}
}


function isSelectEmpty( alphaField, errMsg ) {
	// email addresses separated by commas
	if ( alphaField.value != "") {
		return true;
	} else {
		alert(errMsg);
		alphaField.focus();
		return false;
	}
}

function isSelectEmpty2( alphaField, errMsg ) {
	// email addresses separated by commas

	if ( alphaField.value != "") {
		return true;
	//		alert(alphaField.value);
	} else {
		//alert(errMsg);
	//	alphaField.focus();
//	alert("flase");
		return false;
	}
}

function isDate(year, month, day) {
	// month argument must be in the range 1 - 12
	month = month - 1; // javascript month range : 0- 11
	var tempDate = new Date(year,month,day);
	if( (tempDate.getYear() == year) && (month == tempDate.getMonth()) && (day == tempDate.getDate()) )
	{
		return true;
	}
	else
	{
		return false;
	}
}

function isAdminDate( alphaField, errMsg ) {
	// 4+2+1 digit
	if( alphaField.value.match(/^\d\d\d\d\-\d\d\-\d\d$/) )
	{
	return true;
	}else{
	alert(errMsg);
	alphaField.focus();
	alphaField.select();
	return false;
	}
}


function isPhone( alphaField, errMsg ) {
	// 3+3+4 digit
	if( alphaField.value.match(/^\d\d\d\-\d\d\d\-\d\d\d\d$/) )
	{
	return true;
	}else{
	alert(errMsg);
	alphaField.focus();
	alphaField.select();
	return false;
	}
}

function isPhoneStr( alphaField, errMsg ) {
	// 3+3+4 digit
	if( alphaField.match(/^\d\d\d\-\d\d\d\-\d\d\d\d$/) )
	{
	return true;
	}else{
	alert(errMsg);
	alphaField.focus();
	alphaField.select();
	return false;
	}
}

function fixPhone( phone ) {
	var num = phone.value;
	var newnum = "";
	var output = "";
	// strip out non-numbers
	for ( var i = 0; i < num.length; i++ )
		if ( num.charAt( i ).match(/\d/) )
			newnum += num.charAt( i );
	if ( newnum ) {
		// rebuild number with hyphen
		for ( var i = 0; i < newnum.length; i++ ) {
			if ( i == 3 || i == 6 )
				output += "-";
			else if ( i == 10 )
				output += " ";
			output += newnum.charAt( i )
		}
	}
	// return value
	phone.value = output;
}


function isZipOrPC(alphaField, errMsg ) {
	// 5 digit zips
	if( alphaField.value.match(/^\d\d\d\d\d$/) )
	{
		return true;
		}
	// 5+4 digit zips
	if( ( alphaField.value.match(/^\d\d\d\d\d\d\d\d\d$/) ) || ( alphaField.value.match(/^\d\d\d\d\d\-\d\d\d\d$/) ) )
	{
		return true;
	}else{	
	
		pc=alphaField.value;
			if( ( pc.match(/^[A-Za-z]\d[A-Za-z]\d[A-Za-z]\d$/) ) || ( pc.match(/^[A-Za-z]\d[A-Za-z] \d[A-Za-z]\d$/) ) )
			{
				return true;
			}else{
				alert(errMsg);
				alphaField.focus();
				alphaField.select();
				return false;
			}
	}
}

function isZipOrPC2(alphaField ) {
	// 5 digit zips
	if( alphaField.value.match(/^\d\d\d\d\d$/) )
	{
		return true;
		}
	// 5+4 digit zips
	if( ( alphaField.value.match(/^\d\d\d\d\d\d\d\d\d$/) ) || ( alphaField.value.match(/^\d\d\d\d\d\-\d\d\d\d$/) ) )
	{
		return true;
	}else{	
	
		pc=alphaField.value;
			if( ( pc.match(/^[A-Za-z]\d[A-Za-z]\d[A-Za-z]\d$/) ) || ( pc.match(/^[A-Za-z]\d[A-Za-z] \d[A-Za-z]\d$/) ) )
			{
				return true;
			}else{
//alert("asdfa");
	//			alphaField.focus();
		//		alphaField.select();
				return false;
			}
	}
}


function isZip( alphaField, errMsg ) {
	// 5 digit zips
	if( alphaField.value.match(/^\d\d\d\d\d$/) )
	{
		return true;
		}
	// 5+4 digit zips
	if( ( alphaField.value.match(/^\d\d\d\d\d\d\d\d\d$/) ) || ( alphaField.value.match(/^\d\d\d\d\d\-\d\d\d\d$/) ) )
	{
		return true;
	}else{	
	alert(errMsg);
	alphaField.focus();
	alphaField.select();
	return false;
	}
}

function isPostalCode( alphaField, errMsg ) {
	// canadian postal codes (6 or 7 characters)
		pc=alphaField.value;
		if( ( pc.match(/^[A-Za-z]\d[A-Za-z]\d[A-Za-z]\d$/) ) || ( pc.match(/^[A-Za-z]\d[A-Za-z] \d[A-Za-z]\d$/) ) )
		{
		return true;
		}else{
		alert(errMsg);
		alphaField.focus();
		alphaField.select();
		return false;
		}
}

function fixPostalCode( pc ) {
	var newpc = "";
	var output = "";
	// strip out non-alphanumeric
	for ( var i = 0; i < pc.value.length; i++ )
		if ( pc.value.charAt( i ).match(/\w/) )
			newpc += pc.value.charAt( i );
	if ( newpc ) {
		// rebuild number with space
		for ( var i = 0; i < 6; i++ ) {
			output += newpc.charAt( i )
			if ( i == 2 )
				output += " ";
		}
	}
	// return value in uppercase
	pc.value = output.toUpperCase();
}



// popup windows
function popup( url, name, w, h ) {
	var x = (screen.width - w) / 2;
	var y = (screen.availHeight - h) / 2;
	var page = window.open(url,name,"toolbar=no,location=no,directories=no,status=no,menubar=no,resizable=no,scrollbars=no,width=" + w + ",height=" + h + ",screenX=" + x + ",screenY=" + y + ",top=" + y + ",left=" + x + "");
	
	if(page == null)
	{
	    alert("Please turn off your popup blocker");
	}else{
	    page.focus();
	}
	return page;
}

// popup windows
function popupScroll( url, name, w, h ) {
	var x = (screen.width - w) / 2;
	var y = (screen.availHeight - h) / 2;
	var page = window.open(url,name,"toolbar=no,location=no,directories=no,status=no,menubar=no,resizable=no,scrollbars=yes,width=" + w + ",height=" + h + ",screenX=" + x + ",screenY=" + y + ",top=" + y + ",left=" + x + "");
	page.focus();
	return page;
}


function trim(strToTrim) 
{
	return strToTrim.replace(/^(\s+)?(.*\S)(\s+)?$/, '$2');
}

function checkAlphaNumeric(alphaField, illegalChars)
	{
				for(var j=0; j< alphaField.length; j++)
					{
					theChar = alphaField.charAt(j);

						if(illegalChars.indexOf(theChar) > -1)
						{
							return false;
						} 
					}
				return true;
			}

			function validateAlphaNumeric(alphaField, minLength, maxLength, errorMsg)
			{
			illegalChars="\"()\\";
			alphaValue = trim(alphaField.value);
			
			if(((alphaValue.length > 0) && (!checkAlphaNumeric(alphaValue,illegalChars)) || (alphaValue.length > maxLength) || (alphaValue.length < minLength))){
				
					if(alphaValue.length < minLength)
					{
					alert(errorMsg);
					}else{
					alert(errorMsg + "(" + illegalChars + ")" );
					}
				
				alphaField.focus();
				alphaField.select();
				return false;
				}else{
				return true;
				}
			}

		function validateDDChosen(ddName, errorMsg)
		{
			if(ddName.selectedIndex == -1)
			{
			alert(errorMsg);
			ddName.focus();
			return false;
			}else{
			return true;
			}
		}

var req;
var msg;

//***************************************
// Simple Ajax Code, does get or post on passed Query String

var request = new Array(3) 

 if (window.XMLHttpRequest)
     {
        request[0] = new window.XMLHttpRequest();
        request[1] = new window.XMLHttpRequest();
        request[2] = new window.XMLHttpRequest();
        request[3] = new window.XMLHttpRequest();

    } else if (window.ActiveXObject) 
    {
        request[0] = new ActiveXObject("Microsoft.XMLHTTP");
        request[1] = new ActiveXObject("Microsoft.XMLHTTP");
        request[2] = new ActiveXObject("Microsoft.XMLHTTP");
        request[3] = new ActiveXObject("Microsoft.XMLHTTP");
    } 

function Ajax2Function(serverFunction, url, formStr, callBackFunction,requestId) 
{ 
		request[requestId].onreadystatechange = eval(callBackFunction);

				if(serverFunction=="POST")
				{
					request[requestId].open("POST", url, true);
					request[requestId].setRequestHeader('Content-Type','application/x-www-form-urlencoded');
					request[requestId].setRequestHeader("Content-length", formStr.length);
					request[requestId].setRequestHeader("Connection", "close");
					request[requestId].send(formStr);
				}else{       
					request[requestId].open("GET", url+"?"+formStr, true);
					request[requestId].send(null);
    			}
}

//*** Creates a new XMLHttpRequest and assigns to the correct id 
function requestReset(id)
{
if (window.XMLHttpRequest)
     {
        request[id] = new window.XMLHttpRequest();

    } else if (window.ActiveXObject) 
    {
        request[id] = new ActiveXObject("Microsoft.XMLHTTP");
    } 
}

// *** Strips out javascript from between tags and executes it
function processInlineJavascript(response)
{
    var re = /<script.*?>([\s\S]*?)<\//igm;
     while (match = re.exec(response)) { 
       eval(match[1]); 
     }
}


function sendToFriend()
{
	if(document.getElementById("send2friendbox").style.display=="block")
	{
	document.getElementById("send2friendbox").style.display="none";
	}else{
	document.getElementById("send2friendbox").style.display="block";	
	}
}

function overForType( typeid ) {	
	if(document.getElementById("explanationForType"+typeid).style.display=="block")
	{
		document.getElementById("explanationForType"+typeid).style.display="none";
	} else {		
		document.getElementById("explanationForType"+typeid).style.display="block";	
	}
	
}

function doEmail(traveltype)
{
form = 	document.getElementById("form1");
if( !isName(form.yourname, "Veuillez entrer votre nom") ) return false;	
if( !isEmail(form.youremail, "Veuillez entrer une adresse de courriel") ) return false;
if( !isName(form.friendname, "Veuillez entrer le nom de votre ami") ) return false;
if( !isEmail(form.friendemail, "Veuillez entrer une adresse de courriel") ) return false;

//$_GET["yourname"]) && isset($_GET["friendname"]) && isset($_GET["friendemail"]) && isset($_GET["parkid"])
Ajax2Function("GET","ajaxCmd.php","CMD=sendToFriend&yourname="+form.yourname.value+"&friendname="+form.friendname.value+"&friendemail="+form.friendemail.value+"&youremail="+form.youremail.value,"send2friendCallback",1); 
}

function send2friendCallback()
{
	 if (request[1].readyState == 4)
	 {
		document.getElementById("send2friendbox").style.display="none";
		requestReset(1);
	}
}

function soundlikesubmit() {
	
	soundsLikeYouObj = document.getElementsByName("soundsLikeYou");
	selectedItem = -1;
	
	for(i=0;i<4;i++)
	{
		if(soundsLikeYouObj[i].checked == true)
		{
			selectedItem = i;
		}
	}
	
	if(selectedItem==-1)
	{
	alert("Sélectionnez une réponse pour la question ");
	}else{
		selectedItem= selectedItem+1
		Ajax2Function("GET","ajaxCmd.php","CMD=setscore&score="+selectedItem,"callBackStub",1); 
		document.getElementById("slu").style.display="none";
		document.getElementById("thankstable").style.display="block";
		
		for(i=0;i<4;i++)
		{
			soundsLikeYouObj[i].disabled = true
		}
		
	}
}

function callBackStub()
{
	 if (request[1].readyState == 4)
	 {
		requestReset(1);
	}
}