/*
canald.js
© 2004 canald.com
*/

// Banner adds
var si_site_name = 'sri.canald';
var si_ord = Math.round(Math.random()*100000000000);
function SIWriteAdvert(si_zone, si_tile_id, si_size) {
  try {
    var dcopt_val = '';
    if (si_tile_id == 1) {
      dcopt_val='dcopt=ist;'
    }
    document.write("<sc"+"ript type=\"text/jav"+"ascript\" src=\"http://ad.double"+"click.net/adj/"+si_site_name+"/"+si_zone+";"+dcopt_val+"tile="+si_tile_id+";sz="+si_size+";ord="+si_ord+"?\"></scr"+"ipt>");
  } catch (e) {
    alert('error');
    return;
  }
}


// Browser detect
var browser;
var isIE4 = (document.all) ? true:false;
if (isIE4) {
  if (navigator.userAgent.indexOf('MSIE 6') > 0) {
    browser = 'IE6';
	} else if (navigator.userAgent.indexOf('MSIE 5') > 0) {
    browser = 'IE5';
  } else {
    browser = 'IE4';
  }
} else {
	if (navigator.userAgent.indexOf('Firefox') > 0) {
    browser = 'FFX';
	} else if (navigator.userAgent.indexOf('Netscape/7') > 0) {
    browser = 'NN7';
  } else if (navigator.userAgent.indexOf('Netscape6/6') > 0) {
    browser = 'NN6';
  } else {
    browser = 'NN4';
  }
}


// OS detect
var OS;
if (navigator.appVersion.indexOf("Mac") != -1) {
  OS = 'mac';
} else {
  OS = 'win';
}

// Menu Flash
/*function printMenu(activeSection, imageUrl)
{
	$('#header_menu').flash(
		{ src: '/_lib/header/Header.swf', width:990, height: 128, bgcolor: '#ffffff', quality: 'high', menu: false, wmode: 'transparent', swliveconnect: 'true', allowScriptAccess: 'always', allowFullScreen: true, flashvars: {
				activeSection: activeSection,
				imageUrl: imageUrl
			}
		},
		{ version: '9.0.115' }
	);
}*/

// Menu Flash SWFObject
function printMenu(activeSection, imageUrl, mainSiteRoot) {
	// On definit les variables du flash
	var flashvars = {
		activeSection: activeSection,
		imageUrl: imageUrl
	};

	// On definit les paramètres du flash
	var params = {
		bgColor: "#ffffff",
		quality: "high",
		wmode: "transparent",
		swliveconnect: "true",
		allowScriptAccess: "always",
		allowFullScreen: true
	};

	// On definit les attributs du flash (c'est le id de l'élément 'swfobject' du DOM qui en résultera)
	var attributes = {
		id: "HeaderD"
	};
	
	var siteRoot = "";
	if (mainSiteRoot)
	{
		siteRoot = mainSiteRoot;
	}
	// On print le flash (pas de # sur le nom du div)
	swfobject.embedSWF(siteRoot + "/_lib/header/Header.swf", "header_menu", "990", "128", "9.0.115", "/flashs/expressInstall.swf", flashvars, params, attributes);

}

// Cookies
function getCookie(cookieName) {
	var results = document.cookie.match (cookieName + '=(.*?)(;|$)');
	if (results) {
		return (unescape(results[1]));
	} else {
		return null;
	}
}
function setCookie(cookieName, cookieValue, cookieDays) {
	if (cookieDays) {
		var date = new Date();
		date.setTime(date.getTime() + (cookieDays*24*60*60*1000));
		var cookieExpires = "; expires=" + date.toGMTString();
	} else {
		var cookieExpires = "";
	}
	document.cookie = cookieName + "=" + cookieValue + cookieExpires + "; path=/";
}

// Function used to include js files. Script must "end" before included script can be active.
function jsInclude(jsFile) {
	document.write('<' + 'script');
	document.write(' language="JavaScript"');
	document.write(' type="text/javascript"');
	document.write(' src="' + jsFile + '">');
	document.write('</' + 'script' + '>');
}

// Fireworks rollovers
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
   var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
   if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}



// Layers
function MM_showHideLayers() { // v3.0
	var i, p, v, obj, args = MM_showHideLayers.arguments;
	for (i = 0; i<(args.length - 2); i += 3) if ((obj=MM_findObj(args[i]))!=null) {
		v = args[i+2];
		if (obj.style) {
			obj = obj.style;
			v = (v == 'show') ? 'visible' : (v='hide') ? 'hidden' : v;
		}
	obj.visibility = v;
	}
}


// Rollovers
function switchToOn(imgName) {
	imgOn = eval(imgName + "on.src");
	document[imgName].src = imgOn;
}
function switchToOff(imgName) {
	imgOff = eval(imgName + "off.src");
	document[imgName].src = imgOff;
}



// Pop-ups
var oNewWindowCanalD = '';
function openNewWindow(strURL, intDimX, intDimY) {
	var newleft = (screen.width - intDimX) / 2;
	var newtop = (screen.height - intDimY) / 2;
	self.name = 'MainWindow';
	if (oNewWindowCanalD.location && !oNewWindowCanalD.closed) {
		oNewWindowCanalD.location.href = strURL;
	} else {
		strFeatures = 'top=' + newtop + ',left=' + newleft + ',toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=' + intDimX + ',height=' + intDimY;
		oNewWindowCanalD = window.open(strURL, 'Emission', strFeatures);
		if (!oNewWindowCanalD.opener) oNewWindowCanalD.opener = self;
	}
	if (window.focus) oNewWindowCanalD.focus();
}


// Pop-ups centres
function popup(page, nom, w, h, t, l, d, s, m, sc, r) {
	var newleft = (screen.width - w) / 2;
	var newtop = (screen.height - h) / 2;
	var prop1 = "toolbar=" + t + ",location=" + l + ",directories=" + d + ",status=" + s + ",menubar=" + m + ",scrollbars=" + sc + ",resizable=" + r +",";
	var prop2 = "width=" + w + ",height=" + h + ",top=" + newtop + ",left=" + newleft;
	window.open(page, nom, prop1 + prop2);
}



// Print window
function printWindow(){
   bV = parseInt(navigator.appVersion)
   if (bV >= 4) window.print()
}


// Random
function getRandom(intMaxValue) {
	var intRandom = Math.floor(Math.random()*(intMaxValue+1));
	if ((intRandom > intMaxValue) || (intRandom == 0)) {
		return getRandom((intMaxValue));
	} else {
		return intRandom;
	}
}


function checkIfNumeric(input) {
	var isNumeric = false;
	var NUMERIC = "0123456789";
	input = input.toUpperCase();
	for(var i=0; i<input.length; i++) {
		var CHAR = input.charAt(i);
		if((NUMERIC.indexOf(CHAR) >= 0) && !isNumeric) {
			isNumeric = true;
		}
	}
	return isNumeric;
}


// Validation email
function checkIfMail(strInput) {
	var emailReg = "^[\\w-_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[\\w]$";
	var regex = new RegExp(emailReg);
	return regex.test(strInput);
}

function checkAbonnement(strAdresse_CTAListeDiffD) {
	var strErreur = "Erreur:\n";
	if (strAdresse_CTAListeDiffD == '') {
		strErreur += "Vous devez entrer une adresse de courriel.\n";
	} else {
		if (!checkIfMail(strAdresse_CTAListeDiffD)) {
			strErreur += "Votre adresse de courriel ne semble pas valide.\n";
		}
	}
	if (strErreur != "Erreur:\n") {
		alert(strErreur);
		return false;
	} else {
		return true;
	}
}


// Form validation
function isValidEmail(emailAddress) {
	var isValid = false;
	var filterRegExp =/.(.*)\@(.*)\...(.*)/;
	if (filterRegExp.test(emailAddress)) {
		isValid = true;
	}
	return isValid;
}

function isValidFile(file) {
	var isValid = true;
	var indexJpeg;
	var indexJpg;
	var indexGif;
	var indexDoc;
	var indexTxt;
	var indexRtf;
	var indexPdf;
	indexJpeg = file.toLowerCase().lastIndexOf('.jpeg');
	indexJpg = file.toLowerCase().lastIndexOf('.jpg');
	indexGif = file.toLowerCase().lastIndexOf('.gif');
	indexDoc = file.toLowerCase().lastIndexOf('.doc');
	indexTxt = file.toLowerCase().lastIndexOf('.txt');
	indexRtf = file.toLowerCase().lastIndexOf('.rtf');
	indexPdf = file.toLowerCase().lastIndexOf('.pdf');
	if ((indexJpeg == -1) && (indexJpg == -1) && (indexGif == -1) && (indexDoc == -1) && (indexTxt == -1) && (indexRtf == -1) && (indexPdf == -1)) {
		isValid = false;
	}
	return isValid;
}

function getRadioValue(radioElement) {
	var checkedValue = -1;
	for (i=0; i<radioElement.length; i++) {
		if (radioElement[i].checked) {
			checkedValue = radioElement[i].value;
		}
	}
	return checkedValue;
}

function checkRecr(recrForm) {
	var errorMsg = "Erreur :\n";
	for (var i=0; i<recrForm.length; i++) {
		var element = recrForm.elements[i];
		if ((element.type != "hidden") && (element.type != "submit")) {
			// Text
			if (element.type == "text") {
				if ((element.name.indexOf("optionnel") == -1) && (element.value == "")) {
					errorMsg += "Veuillez remplir le champ \"" + element.name + "\".\n";
				} else if (element.name == "Courriel") {
					if (!isValidEmail(element.value)) {
						errorMsg += "Votre adresse de courriel ne semble pas valide.\n";
					}
				}
			}
			// Textarea
			if (element.type == "textarea") {
				if ((element.name.indexOf("optionnel") == -1) ) {
					if (element.value == "") {
						errorMsg += "Veuillez remplir le champ \"" + element.name + "\".\n";
					}
				}
			}
			// Radio
			if (element.type == "radio") {
				if (element.name.indexOf("optionnel") == -1) {
					if (getRadioValue(recrForm.elements[element.name]) == -1) {
						if (errorMsg.indexOf(element.name) == -1) {
							errorMsg += "Veuillez faire votre choix pour \"" + element.name + "\".\n";
						}
					}
				}
			}
			// Checkbox (release - voir www.canalvie.com/emission/monenfant_monheros/recrutement2.jsp)
			if (element.type == "checkbox" && element.name == "Release" && element.checked == false) {
					errorMsg += "\nVeuillez cocher la case \"" + element.value + "\".\nEn soumettant votre témoignage, vous devez accepter que \nLes Chaînes Télé Astral puissent publier votre texte, \nune partie de celui-ci ou encore toute photo \nque vous aurez jointe à votre témoignage.";
				}
			// File
			if (element.type == "file") {
				if (element.name.indexOf("optionnel") == -1) {
					if (element.value == "") {
						errorMsg += "Veuillez sélectionner un fichier pour le champ \"" + element.name + "\".\n";
					} else {
						if (!isValidFile(element.value)) {
							errorMsg += "Les seuls fichiers acceptés sont \".gif\", \".jpg\", \".jpeg\", \".doc\", \".rtf\", \".txt\" ou \".pdf\".\n";
						}
					}
				}
			}
		}
	}
	if (errorMsg != "Erreur :\n") {
		alert(errorMsg);
		return false;
	} else {
		if (recrForm.elements["Go"]) {
			recrForm.elements["Go"].disabled = true;
		}
		return true;
	}
}

function checkMail(strMailAddress) {
	var isMailAddressOK = false;
	//var filterRegExp =/.(.*)\@(.*)\...(.*)/;
	var filterRegExp =/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/;
	if (filterRegExp.test(strMailAddress)) isMailAddressOK = true;
	return isMailAddressOK;
}

function getCheckRadioValue(oRadios) {
	var intCheckedValue = -1;
	for (i=0; i<oRadios.length; i++) {
		if (oRadios[i].checked) {
			intCheckedValue = oRadios[i].value;
		}
	}
	return intCheckedValue;
}


// CSS
function switchStyle(oBox, strClassName) {
	oBox.className = strClassName;
}





// Print window
function printWindow(){
   bV = parseInt(navigator.appVersion);
   if (bV >= 4) window.print();
}


// Presse - menu déroulant pour Archives

function jumpBox(list) {location.href =list.options[list.selectedIndex].value}

function jumpBoxBlank(list) {
	url = list.options[list.selectedIndex].value;
	if (url != '') {
		window.open(url);
		}
	}

function dropdown() {document.theform.jump.options[0].selected=true}


// Build a flash videoPlayer (Marco)
function videoPlayer(videoUrl, videoId, firstFrameUrl, autoPlay, isCanadaOnly, divId, SWFObject, proxyId, serverUrl, zoneId) {

	SWFObject.addParam("quality", "high");
	SWFObject.addParam("menu", false);
	SWFObject.addParam("wmode", "transparent");
	SWFObject.addParam('swliveconnect', 'true');
	SWFObject.addParam("allowScriptAccess","always");

	if (serverUrl) {
		SWFObject.addVariable("serverUrl", serverUrl);
		SWFObject.addVariable("zoneid", "'" + zoneId + "'");
	}

	SWFObject.addVariable("lcId", proxyId);
	SWFObject.addVariable('videoFirstFrameUrl', firstFrameUrl);
	SWFObject.addVariable("automaticPlay", autoPlay);
	SWFObject.addVariable("isCanadaOnly", isCanadaOnly);
	SWFObject.addVariable('videoUrl', videoUrl);
	SWFObject.addVariable("videoId", videoId);
	SWFObject.addVariable("urlMovie", document.location);

	SWFObject.write(divId);
}

// Ajouter aux favoris
function favoris(pageName, pageUrl) {
	if ( navigator.appName != 'Microsoft Internet Explorer' ){
		window.sidebar.addPanel(pageName,pageUrl,"");
	} else {
		window.external.AddFavorite(pageUrl, pageName);
	}
}

// On incrémente le compteur de bannière concours
function clickThroughDraw(drawId, imageId, statZone) {
	var ieRant = Math.floor(Math.random()*1000001); // Generate random so that this f***ing IE browser does not cache xml response
	$.ajax({
		type: "GET",
		url: "/_dyn/incDrawCount.jsp",
		data: "drawId=" + drawId + "&imageId=" + imageId + "&statZone=" + statZone + "&ieRant=" + ieRant,
		dataType: "xml",
		success: function(xml) {
			var opResult = $(xml).find("opResult").text();
			var opMessage = $(xml).find("opMessage").text();
			var linkUrl = $(xml).find("linkUrl").text();
			if (opResult == 'ok') {
				self.location.href = linkUrl;
			} else {
				alert(opMessage);
			}
		}
	});
}

// Endswith
function endsWith(str, endStr) {

	// http://preprod.canalvie.com/ decoration/ : 39
	// decoration/ : 11
	var originalStringWithEndStrInserted = str.substring(0, str.length - endStr.length) + endStr;
	
	//alert("str.substring(str.length - endStr.length) + endStr : " + str.substring(0, str.length - endStr.length) + endStr);
	//alert("originalStringWithEndStrInserted : " + originalStringWithEndStrInserted);

	if (str == originalStringWithEndStrInserted) {
		return true;
	} else {
		return false;
	}
}

// Removes white space (leading and trailing)
function trim(toTrim) {
	return toTrim.replace(/^\s+/g,'').replace(/\s+$/g,'');
}

function alphaNumericalOnly(inputStr, replaceOthersWith) {
	var output = inputStr.toLowerCase();

	// Whitelist character verification
	var allowedCharacters = "a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9";
	var outputWithOnlyAllowedChars = "";

	for (var i=0; i<output.length; i++) {
		if (allowedCharacters.indexOf(output.charAt(i)) != -1) {
			outputWithOnlyAllowedChars += output.charAt(i);
		} else {
			outputWithOnlyAllowedChars += replaceOthersWith;
		}
	}

	return outputWithOnlyAllowedChars;
}

function numericalOnly(inputStr, replaceOthersWith) {
	var output = inputStr.toLowerCase();

	// Whitelist character verification
	var allowedCharacters = "0123456789";
	var outputWithOnlyAllowedChars = "";

	for (var i=0; i<output.length; i++) {
		if (allowedCharacters.indexOf(output.charAt(i)) != -1) {
			outputWithOnlyAllowedChars += output.charAt(i);
		} else {
			outputWithOnlyAllowedChars += replaceOthersWith;
		}
	}

	return outputWithOnlyAllowedChars;
}

// ***************************************************** Ad tag generation script *****************************************************
var BASE_AD_TAG = "http://ad.doubleclick.net/adj/sri.";
var SUBDOMAINS_TO_IGNORE = "preprod, wc1, wc2, noc, dev, www, concours";
var pageTile=0;
var ord = "ord=" + Math.round(Math.random()*100000000000) + "?";

function printAdTag(adSize, position) {

	// Init vars
	// var pageURL = self.location.href; Is this for iframes?
	var pageUrl = document.location + "";
	var zonename = "";
	var keyvaluepair1 = "";
	var keyvaluepair2 = "";

	// Increment tiles
	pageTile++;

	// Dcopt for use with tile 1
	var dcopt = "";
	if (pageTile == 1) {
		dcopt = "dcopt=ist;";
	}

	// Adjust position for usage (valid values : top, bottom / Defaults to top)
	if (position == null) {
		var position = "top";
	}
	var pos = "pos=" + position + ";";

	// Valid sizes : 728x90, 300x250, 160x600
	if (adSize == undefined || adSize == '') return 0;

	// Remove http://subdomain.
	var pageUrlTransit = pageUrl.substring(pageUrl.indexOf(".")+1);

	// Split url on /
	var urlSplitArray = pageUrlTransit.split("/");

	// Add site to base ad tag
	var baseAdTagWithSite = BASE_AD_TAG + urlSplitArray[0].substring(0, (urlSplitArray[0].length-4)) + "/";

	// Add subdomain to array if it's not blacklisted
	var subdomain = (document.domain + "").substring(0, (document.domain + "").indexOf("."));
	if (SUBDOMAINS_TO_IGNORE.indexOf(subdomain) == -1) {
		urlSplitArray.splice(1, 0, subdomain);
	}

	// Build zonename
	if (urlSplitArray.length >= 2) {
		if (urlSplitArray[1] != "") {
			zonename = alphaNumericalOnly(urlSplitArray[1], "").toLowerCase();
		} else {
			// This is homepage
			zonename = "homepage";
		}
	}

	// Build keyvaluepair1
	if (urlSplitArray.length >= 3) {
		if (urlSplitArray[2] != "") {
			keyvaluepair1 = "ss=" + alphaNumericalOnly(urlSplitArray[2], "").toLowerCase() + ";";
		} else if (zonename != "homepage" && zonename != "") {
			// This is a section's homepage
			keyvaluepair1 = "ss=sectionhome;";
		}
	}

	// Build keyvaluepair2
	if (urlSplitArray.length >= 4) {
		if (urlSplitArray[3] != "") {
			// Don't use value #3, use all the remaining url
			var restOfUrl = pageUrlTransit.substring(pageUrlTransit.indexOf(urlSplitArray[3]));
			keyvaluepair2 = "title=" + numericalOnly(restOfUrl, "").toLowerCase() + ";";
		}
	}

	// Build ad tag src
	var adTagSrc = baseAdTagWithSite + zonename + ";" + keyvaluepair1 + keyvaluepair2 + dcopt + pos + "tile=" + pageTile + ";sz=" + adSize + ";" + ord;

	// Build ad tag to print
	var adTag = "<sc"+"ript type='text/jav"+"ascript' src='" + adTagSrc + "'></scr"+"ipt>";

	// Finally, print it
	document.write(adTag.toLowerCase())

}

// Cufon - do not delete!!
//Cufon.replace('h1, h2, h3', {hover: 'true', fontFamily: 'MuseoSans'});

