/**
 * @fileoverview
 * AstralObj 
 * http://config.7821k.com/js/astralObj.js
 *
 * Various methods, useful functions
 * 
 * http://astral.com
 * Copyright 2011, ARN
 *
 * @author	Astral Radio Numérique / Astral Radio Digital
 * @version	Date: Thu Nov 11 19:04:53 2010 -0500
 */

/**
 * This function will load an external CSS on the fly.
 *
 * @param {String} cssPath	Full URL of the CSS file to be loaded
 *
 */
function loadCss (cssPath)
{
                var url = '/EI/SharedObjects/Handlers/ProxyHandler.ashx?url=' + cssPath;
                if(document.createStyleSheet) {
                               try { document.createStyleSheet(url); } catch (e) { }
                }
                else {
                               var css;
                               css         = document.createElement('link');
                               css.rel     = 'stylesheet';
                               css.type    = 'text/css';
                               css.media   = "all";
                               css.href    = url;
                               document.getElementsByTagName("head")[0].appendChild(css);
                }
                
}

/**
 * Detects some cell phone devices
 * This function will need to be maintained to add new technologies and missing phones when necessary.
 *
 * @return			object containing browser, device and os
 *
 * @type {Object}	
 *
 */
function detectPlatform(){
	var uagent = navigator.userAgent.toLowerCase();	
	var browser = 'pc browser';
	var device = 'pc';
	var os = 'pc os';
	if (uagent.search('iphone') > -1){
		browser = 'mobile safari';
		device = 'iphone';	
		os = 'ios';
	}
	else if (uagent.search('ipad') > -1){
		browser = 'mobile safari';
		device = 'ipad';	
		os = 'ios';
	}
	else if (uagent.search('ipod') > -1){
		browser = 'mobile safari';
		device = 'ipod';	
		os = 'ios';
	}
	else if (uagent.search('android') > -1){
		browser = 'mobile chrome';
		device = 'android phone';	
		os = 'android';
	}
	else if (uagent.search('windows ce') > -1){
		browser = 'internet explorer';
		device = 'windows mobile';
		os = "windows ce"
	}
	else if (uagent.search('blackberry') > -1){
		browser = 'wapbrowser';
		device = 'blackberry';
		os = "blackberry os"
	}
	else if (uagent.search('palm') > -1){
		browser = 'blazer';
		device = 'palm';
		os = 'palm os';
	}
	// S60 Open source browser
	else if (uagent.search('webkit') > -1){
    	if ((uagent.search('series60') > -1 || uagent.search('symbian') > -1)){
			browser = 's60 browser';
			device = 's60';
			os = 'symbian os';
		}
	}

	return {browser:browser, device:device, os:os};
}

/**
 * Logout from BaseStation, reloads the page when done
 *
 */
function logoutUser() {
	jQuery.ajax({
		type: "POST",
		url: "/_Shared/Content/Public/Membership.asmx/LogoutMember",
		data: "{}",
		contentType: "application/json; charset=utf-8",
		dataType: "json",
		success: function(msg) {
			if (typeof(gigya) != 'undefined') {
				gigya.services.socialize.logout({},{});
			}
			location.reload(true);
		}
	});
}

/**
 * Adds a replaceAll method to the String prototype
 *
 * @param {String} arg[0]	String to find
 * @param {String} arg[1]	String to replace
 *
 * @return			Return the string with the all replaced values
 *
 * @type {String}	
 *
 */
String.prototype.replaceAll=function() {
	return this.split(arguments[0]).join(arguments[1])
}

/**
 * Checks if "enter" is pressed in the textbox field, calls the SearchSite function if it has been pressed
 *
 * @return			True if the "enter" key is pressed, else returns false
 *
 * @type {Bool}	
 *
 */
function SubmitOnEnter(myfield, e) {
    var keycode;
    if (window.event)
        keycode = window.event.keyCode;
    else if (e)
        keycode = e.which;
    else
        return true;
    if (keycode == 13) {
        SearchSite();
        return false;
    } else
        return true;
}

/**
 * Submits the search box
 */
function SearchSite() {
    window.location.href = '/searchresults.aspx?q=' + encodeURIComponent(document.getElementById('q').value);
}

/**
 * Returns the Google Search Appliance value according to the Dart Site name
 *
 * @return			Return the Google Search Appliance value
 *
 * @type {String}	
 *
 */
function googleCollection() {
	return arDart.site.replace('sri.', '').replaceAll('.', '_');
}
 
/**
 * Reads the cookie and returns the desired value
 *
 * @param {String} c_name	Name of the cookie variable to retrieve
 *
 * @return			Return the value of the cookie variable
 *
 * @type {String}	
 *
 */
function getCookie(c_name) {
	if (document.cookie.length>0) {
		c_start=document.cookie.indexOf(c_name + "=");
		if (c_start != -1) {
			c_start = c_start + c_name.length + 1;
			c_end = document.cookie.indexOf(";", c_start);
			if (c_end == -1) c_end=document.cookie.length;
			return unescape(document.cookie.substring(c_start, c_end));
		}
	}
	return "";
} 
 
 
/**
 * Translates characters in str using given translation tables 
 *
 * @param {String} str		This is a string parameter
 * @param {String} from		This is a string parameter
 * @param {String} to		This is a string parameter
 *
 * @return			Return the result of this and this
 *
 * @type {String}	
 *
 */
function strtr(str, from, to) {
	var i = 0, j = 0, lenStr = 0, lenFrom = 0, fromTypeStr = '', toTypeStr = '', istr = '';
	var ret = '';
	var match = false;

	// Walk through subject and replace chars when needed
	lenStr  = str.length;
	lenFrom = from.length;
	fromTypeStr = typeof from === 'string';
	toTypeStr = typeof to === 'string';

	for (i = 0; i < lenStr; i++) {
		match = false;
		if (fromTypeStr) {
			istr = str.charAt(i);
			for (j = 0; j < lenFrom; j++) {
				if (istr == from.charAt(j)) {
					match = true;
					break;
				}
			}
		}
		else {
			for (j = 0; j < lenFrom; j++) {
				if (str.substr(i, from[j].length) == from[j]) {
					match = true;
					// Fast forward
					i = (i + from[j].length) - 1;
					break;
				}
			}
		}
		if (match) {
			ret += toTypeStr ? to.charAt(j) : to[j];
		} else {
			ret += str.charAt(i);
		}
	}

	return ret;
}



/**
 * Remove all the accented characters
 *
 * @param {String} string	This is a string parameter
 *
 * @return	Return the string without any accented characters
 *
 * @type {String}	
 *  
 * @requires	function strtr
 *
 */
function removeAccents(string) {
	string = strtr(string, "ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿ", "AAAAAAACEEEEIIIIDNOOOOOOUUUUYbsaaaaaaaceeeeiiiidnoooooouuuyyby").replace(/[^a-zA-Z0-9]+/g, '').toLowerCase();  
	return string;
}



/**
 * Finds and returns the parameter 'ji' in the url
 *
 * @param {String}  ji	-	This is a string parameter
 *
 * @return	-	Return the value of the url paramter 'ji'
 *
 * @type {String}	
 *
 */
function querySt(ji) {
	var hu, gy, i, ft;
	hu = window.location.search.substring(1);
	gy = hu.split("&");
	for (i = 0; i < gy.length; i++) {
		ft = gy[i].split("=");
		if (ft[0] == ji) {
			return ft[1];
		}
	}
	return '';
}


/**
 * Finds and returns the parameter 'var_name' in the url
 *
 * @param {String}  var_name	-	This is a string parameter
 *
 * @return	-	Return the value of the url paramter 'var_name'
 *
 * @type {String}	
 *
 */
function getUrlVar(var_name) {
	var tmp = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
	var ret = null;

	for(var i = 0; i < tmp.length; i++){
			   tmpA = tmp[i].split('=');
			   if (tmpA[0] == var_name){
							   ret = tmpA[1];
							   break;
			   }
	}

	return ret;
}


/**
 * Checks if the user is logged into BaseStation
 *
 * @return {Bool} True if logged in, else False
 */
function isLogged() {
	return (ei_UserID != '') && (ei_UserID != '00000000-0000-0000-0000-000000000000');
}


/**
 * ObjOmniture Class that can initialize variables for Omniture
 */
function objOmniture() { 
	this.zone = '';  // Default Omniture section
	this.zone2 = ''; // Default Omniture section - level 2
	this.zone3 = ''; // Default Omniture section - level 3
	this.zone4 = ''; // Default Omniture section - level 4
	if ((typeof(ei_SiteSection) !== 'undefined') && (ei_SiteSection !== '')) { this.zone = ei_SiteSection.toLowerCase().replaceAll(' ', ''); }	// Section provided by Emmis
	if (typeof(realSubSection) !== 'undefined') {		
		var tempSect = ei_SiteSection;	// Section provided by Emmis (exception for player)
		if(ei_SiteSection == 'Home') { tempSect = 'radio player'; }
		this.section = tempSect.toLowerCase().replaceAll(' ', '');
		
		this.zone = realSubSection.toLowerCase().replaceAll(' ', '');
		this.zone2 = tempSect.toLowerCase().replaceAll(' ', '');
	}
	if ((typeof(arZoneOverride) !== 'undefined') && (arZoneOverride !== '')) { this.zone = arZoneOverride.toLowerCase().replaceAll(' ', ''); }	// Allows the section to be overridden by the webmaster
	s.channel = s.prop1 = s.eVar1 = this.zone;
	s.prop2 = s.eVar2 = this.zone2;
	s.prop3 = s.eVar3 = this.zone3;
	s.prop4 = s.eVar4 = this.zone4;
	s.prop5 = s.eVar5 = getTitles('dynamicTitle');
	s.prop6 = s.eVar6 = s.prop1+'|'+s.prop2+'|'+s.prop3+'|'+s.prop5;
	s.prop7 = s.eVar7 = ''; // Index/Content
	s.prop12 = document.location.href;
	s.prop14 = s.eVar14 = unescape(querySt('q'));
	s.prop15 = s.eVar15 = (ei_UserID !== '') ? "Logged In" : "Not Logged In";
	s.prop16 = s.eVar16 = ei_UserID;
	s.hier1 = s.prop1+'>'+s.prop2+'>'+s.prop3;
	s.pageName=document.title.replace(/^\s+|\s+$/g,"").replaceAll("  ::", " ::").replaceAll("::  ", ":: ");

	/* user time of day variables */
	var myDays=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];
	var d = new Date();
	s.prop8 = s.eVar8 = ("0"+d.getHours()).slice(-2);
	s.prop9 = s.eVar9 = ("0"+d.getHours()).slice(-2)+':'+("0"+d.getMinutes()).slice(-2);
	s.prop10 = s.eVar10 = myDays[d.getDay()];
	if ((d.getDay() == 0) || (d.getDay() == 6)) {
		s.prop11 = s.eVar11 = 'Weekend';
	} else {
		s.prop11 = s.eVar11 = 'Weekday';
	}

	this.writeOmniture = function () {
		var s_code = s.t();
		if (s_code) {
			document.write(s_code);
		}
		//if(navigator.appVersion.indexOf('MSIE')>=0)document.write(unescape('%3C')+'\!-'+'-');
	};
}



/**
 * This function returns a string with whitespace stripped from the beginning and end of 'stringToTrim'
 *
 * @param {String}  stringToTrim	-	This is a string parameter
 *
 * @return	-	string with whitespace stripped from the beginning and end
 *
 * @type {String}	
 *
 */
function trim(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g, "");
}



/**
 * This function returns the current window title (choice between 'defaultTitle', 'dynamicTitle', 'customTitle')
 *
 * @param {String}  stringT		-	This is a string parameter	-	Value available: 'defaultTitle', 'dynamicTitle', 'customTitle'
 *
 * @return	-	value of the variable of current window title
 *
 * @type {String}	
 *
 */
function getTitles(type) {
	var titles = document.title.split("::", 3);
	var tLength = titles.length;

	switch (type) {
		case 'defaultTitle':
			return (typeof(titles[0]) != 'undefined') ? trim(titles[0]) : '';
		case 'dynamicTitle':
			if (tLength == 3) {
				return (typeof(titles[1]) != 'undefined') ? trim(titles[1]) : '';
			} else {
				return '';
			}
			break;
		case 'customTitle':
			if (tLength == 3) {
				return (typeof(titles[2]) != 'undefined') ? trim(titles[2]) : '';
			} else {
				return (typeof(titles[1]) != 'undefined') ? trim(titles[1]) : '';
			}
	}
}



/**
 * Useful Dart Object
 */
function objDart() {
	this.site = 'sri.remontreal';				// Default site		
	this.section = 'ROS';						// Default Dart section
	this.position = 'top';
	this.tile = 1;
	this.size = '728x90';
	this.randNum = Math.random() * 10000000000000000; // do not override this property as it must stay consistant throughout the page
	this.keyvalues = ';ss=' + removeAccents(getTitles('dynamicTitle')) + ';ss=' + removeAccents(getTitles('customTitle'));

	this.writeBanner = function(target_element_id) {
		var keyvalues = this.keyvalues;
		if ((typeof ei_SiteSection !== 'undefined') && (ei_SiteSection !== '')) { this.section = ei_SiteSection.toLowerCase().replaceAll(' ', ''); } // Section provided by Emmis
		if (typeof(realSubSection) !== 'undefined') {
			var tempSect = ei_SiteSection;	// Section provided by Emmis (exception for player)
			if(ei_SiteSection == 'Home') { tempSect = 'radio player'; }
			this.section = tempSect.toLowerCase().replaceAll(' ', '');
		}
		if ((typeof arZoneOverride !== 'undefined') && (arZoneOverride !== '')) { this.section = arZoneOverride.toLowerCase().replaceAll(' ', ''); } // Allows the section to be overridden by the webmaster
		var section = this.section;
		if (parseInt(querySt("dartTest"), 10) == 1) { this.site = 'sri.testing'; }	// Activate the Dart test zone via dartTest=1 in querystring (typically used for english sites)
		if (parseInt(querySt("dartTest"), 10) == 2) { this.site = 'sri.testing2'; } // Activate the Dart test zone via dartTest=1 in querystring (typically used for french sites)
		if (this.tile == 1) { keyvalues += ';dcopt=ist'; }							// Enable DHTML for top leaderbaord
		if ((this.tile > 2) && (this.tile != 5)) { this.position = 'bottom'; }		// below the fold, execption for 295x95 for radionrj.ca (tile=5)
		//if (this.tile == 3) { section = 'lowerdisplaypackage'; }					// for stations with more than 2 ad units

		if((typeof target_element_id !== 'undefined') && (target_element_id !== ''))
		{
			var adSizeList = this.size.split('x');
			var adUrl = 'http://ad.doubleclick.net/adi/' + this.site + '/' + this.section + ';pos=' + this.position + ';sz=' + this.size + ';tile=' + this.tile + ';ord=' + this.randNum;
		$('#' + target_element_id).html('<iframe width=' + adSizeList[0] + ' height=' + adSizeList[1] + ' src="' +  adUrl + '" frameborder="0" scrolling="no" marginheight="0" marginwidth="0"></iframe>');
			
			
		}
		else
		{
			document.write("<sc"+"ript type=\"text/jav"+"ascript\" src=\"http://ad.double"+"click.net/adj/"+this.site+"/"+section+keyvalues+";pos="+this.position+";tile="+this.tile+";sz="+this.size+";ord="+this.randNum+"?\"><\/scr"+"ipt>");
		}
	};
	
		// Creates iframe ad in the specified element, used for companion ads or to load ads when html layout is already loaded
	this.writeIframeAd = function(target_element_id){
		var adSizeList = this.size.split('x');
		var adUrl = 'http://ad.doubleclick.net/adi/' + this.site + '/' + this.section + ';pos=' + this.position + ';sz=' + this.size + ';tile=' + this.tile + ';ord=' + this.randNum;
		$('#' + target_element_id).html('<iframe width=' + adSizeList[0] + ' height=' + adSizeList[1] + ' src="' +  adUrl + '" frameborder="0" scrolling="no" marginheight="0" marginwidth="0"></iframe>');
	};
}




/**
 * This function write the Comscore Tag (useful for PPM)
 */
function writeComscore() {
	newImg = new Image(1, 1);
	newImg.id = 'comscorebeacon';
	newImg.src = "http://beacon.scorecardresearch.com/scripts/beacon.dll?C1=2&C2=3000024&C3=3000024&C4=" + escape(window.location.hostname) + escape(window.location.pathname) + "&C5=&C6=&C7=" + escape(window.location.href) + "&C8=" + escape(document.title) + "&C9=" + escape(document.referrer) + "&rn=" + Math.floor(Math.random()*99999999);
}



/**
 * Add the script passed as a parameter in the header and performs the callback function
 *
 * @param {String}	url				-	Url of the JS Script
 * @param {Function}	callback	-	Callback Function
 *
 */
function loadScript(url, callback) {
    var script = document.createElement("script");
    script.type = "text/javascript";

    if (script.readyState){  //IE
        script.onreadystatechange = function() {
            if (script.readyState == "loaded" || script.readyState == "complete") {
                script.onreadystatechange = null;
                callback();
            }
        };
    } else {  //Others
        script.onload = function(){
            callback();
        };
    }

    script.src = url;
    document.getElementsByTagName("head")[0].appendChild(script);
}



/**
 * Writing the script of Brightcove player by taking into account the parameters passed as argument
 *
 * @param {String} publisherID		Publisher ID
 * @param {String} playerID			Player ID
 * @param {String} refID			ID of the division where the player will be written
 * @param {String} width			Palyer Width
 * @param {String} height			Player Height
 *
 */
function writePlayer(publisherID, playerID, refID, width, height, playlistID) {
	var divTag;
	if (refID == '') {
        divTag = document.createElement("div");
        divTag.id = "DIVmyExperience" + playlistID;
        document.body.appendChild(divTag);
	} else
		divTag = document.getElementById(refID);
	$(document).ready( function() {var tempPlayer = '<div style="display:none"></div><object id="myExperience'+playlistID+'" class="BrightcoveExperience"><param name="bgcolor" value="#000000" /><param name="width" value="'+width+'" /><param name="height" value="'+height+'" /><param name="playerID" value="'+playerID+'" /><param name="publisherID" value="'+publisherID+'"/><param name="isUI" value="true" /><param name="dynamicStreaming" value="true" />';
		  if ((playlistID == null) || (playlistID == '')) {
			  tempPlayer = tempPlayer + '<param name="isAudio" value="true" /><param name="@audioPlayer" value="ref:'+refID+'" />';
		  } else {
			  tempPlayer = tempPlayer + '<param name="isVid" value="true" /><param name="@videoList" value="'+playlistID+'" /><param name="itunesFeed" value="itpc://brightcove.amri.ca/rss.php?playlistID='+playlistID+'&publisherID='+publisherID+'" /><param name="rssFeed" value="http://brightcove.amri.ca/rss.php?playlistID='+playlistID+'&publisherID='+publisherID+'" /><param name="linkBaseURL" value="'+window.location.href+'" />';
		  }
		tempPlayer = tempPlayer + '</object>';
		divTag.innerHTML = tempPlayer;} );
	brightcove.createExperiences();
}



/**
 * Writing the script of Brightcove player who can play the audio Burli
 *
 * @param {Int} refID
 *
 * @requires	function writePlayer()
 */
function writePlayerBurli(refID) {
	writePlayer(85733530001, 593291619001, refID, 300, 20);
}



/**
 * Writing the script of Brightcove player who can play the music audio
 *
 * @param {Int} refID
 *
 * @requires	function writePlayer()
 */
function writePlayerMusic(refID) {
	writePlayer(85733530001, 109304487001, refID, 25, 25);
}




/**
 * Writing the script of Brightcove player who can play the audio
 *
 * @param {Int} publisherID
 * @param {Int} refID
 *
 * @requires	function writePlayer()
 */
function writePlayerAudio(publisherID, refID) {
	writePlayer(publisherID, 109304487001, refID, 25, 25);
}




/**
 * Useful function for NRJ & RD
 * This function returns the region of the website.
 *
 * @return	-	website region
 *
 * @type {String}	
 *
 * @requires	function objDart()
 */
function getRegion() {
  var region = '';
  switch (arDart.site) {
	 case 'sri.redrummondville': region = 'drummondville'; break;
	 case 'sri.regatineau': region = 'gatineau'; break;
	 case 'sri.remontreal': region = 'montreal'; break;
	 case 'sri.requebec': region = 'quebec'; break;
	 case 'sri.rerimouski': region = 'rimouski'; break;
	 case 'sri.rerouyn': region = 'rouyn'; break;
	 case 'sri.resaguenay': region = 'saguenay'; break;
	 case 'sri.resherbrooke': region = 'sherbrooke'; break;
	 case 'sri.retroisrivieres': region = 'mauricie'; break;
	 case 'sri.revaldor': region = 'valdor'; break;
	 case 'sri.rdamqui': region = 'amqui'; break;
	 case 'sri.rddrummondville': region = 'drummondville'; break;
	 case 'sri.rdestrie': region = 'estrie'; break;
	 case 'sri.rdgatineau': region = 'gatineau'; break;
	 case 'sri.rdmauricie': region = 'mauricie'; break;
	 case 'sri.rdmontreal': region = 'montreal'; break;
	 case 'sri.rdquebec': region = 'quebec'; break;
	 case 'sri.rdrimouski': region = 'rimouski'; break;
	 case 'sri.rdsaguenay': region = 'saguenay';break;
	 case 'sri.bmstjean': region = 'stjean'; break;
	 case 'sri.bmsthyacinthe': region = 'sthyacinthe'; break;
	 case 'thebearrocks': region = 'edmonton'; break;
	 default: region = 'montreal'; break;
  }
  return region;
}


/**
 * This function returns the province of the website.
 *
 * @return	-	website province
 *
 * @type {String}	
 *
 * @requires	function objDart()
 */
function getProvince() {
  var province = '';
  switch (arDart.site) {
	 case 'sri.bigdog1009': province = 'Nova Scotia'; break;
	 case 'sri.capitalfm': province = 'New Brunswick'; break;
	 case 'sri.catcountry995': province = 'Nova Scotia'; break;
	 case 'sri.cj104': province = 'New Brunswick'; break;
	 case 'sri.foxrocks': province = 'New Brunswick'; break;
	 case 'sri.k93': province = 'New Brunswick'; break;
	 case 'sri.khj': province = 'New Brunswick'; break;
	 case 'sri.max1049': province = 'New Brunswick'; break;
	 case 'sri.1015thebear': province = 'British Columbia'; break;
	 case 'sri.kelowna.okoldies': province = 'British Columbia'; break;
	 case 'sri.summerland.okoldies': province = 'British Columbia'; break;
	 case 'sri.cjdccountry': province = 'British Columbia'; break;
	 case 'sri.golden.myezrock': province = 'British Columbia'; break;
	 case 'sri.osoyoos.myezrock': province = 'British Columbia'; break;
	 case 'sri.penticton.myezrock': province = 'British Columbia'; break;
	 case 'sri.revelstoke.myezrock': province = 'British Columbia'; break;
	 case 'sri.salmonarm.myezrock': province = 'British Columbia'; break;
	 case 'sri.ftstjohn.peaceenergyfm': province = 'British Columbia'; break;
	 case 'sri.ftnelson.peaceenergyfm': province = 'British Columbia'; break;
	 case 'sri.silk': province = 'British Columbia'; break;
	 case 'sri.thesunkelowna': province = 'British Columbia'; break;
	 case 'sri.thesunpenticton': province = 'British Columbia'; break;
	 case 'sri.thesunvernon': province = 'British Columbia'; break;
	 case 'sri.cjfw': province = 'British Columbia'; break;
	 case 'sri.trail.kbsradio': province = 'British Columbia'; break;
	 case 'sri.kitimat.themixbc': province = 'British Columbia'; break;
	 case 'sri.princerupert.themixbc': province = 'British Columbia'; break;
	 case 'sri.terrace.themixbc': province = 'British Columbia'; break;
	 case 'sri.1011thefarm': province = 'Manitoba'; break;
	 case 'sri.kx96online': province = 'Manitoba'; break;
	 case 'sri.cjay92': province = 'Alberta'; break;
	 case 'sri.ckmx': province = 'Alberta'; break;
	 case 'sri.vibe985': province = 'Alberta'; break;
	 case 'sri.cfrn': province = 'Alberta'; break;
	 case 'sri.ezrock1049': province = 'Alberta'; break;
	 case 'sri.thebearrocks': province = 'Alberta'; break;
	 case 'sri.820cham': province = 'Ontario'; break;
	 case 'sri.k-litefm': province = 'Ontario'; break;
	 case 'sri.oldies1150': province = 'Ontario'; break;
	 case 'sri.q975': province = 'Ontario'; break;
	 case 'sri.am1410': province = 'Ontario'; break;
	 case 'sri.bx93': province = 'Ontario'; break;
	 case 'sri.cjbk': province = 'Ontario'; break;
	 case 'sri.chom': province = 'Quebec'; break;
	 case 'sri.cjad': province = 'Quebec'; break;
	 case 'sri.virginradio96': province = 'Quebec'; break;
	 case 'sri.ottawa997': province = 'Ontario'; break;
	 case 'sri.virginradio1069': province = 'Ontario'; break;
	 case 'sri.star96': province = 'Ontario'; break;
	 case 'sri.bigdog927': province = 'Saskatchewan'; break;
	 case 'sri.1057ezrock': province = 'Ontario'; break;
	 case 'sri.610cktb': province = 'Ontario'; break;
	 case 'sri.htzfm': province = 'Ontario'; break;
	 case 'sri.ezrock': province = 'Ontario'; break;
	 case 'sri.cfrb': province = 'Ontario'; break;
	 case 'sri.virginradio999': province = 'Ontario'; break;
	 case 'sri.650cisl': province = 'British Columbia'; break;
	 case 'sri.virginradio953': province = 'British Columbia'; break;
	 case 'sri.hot103live': province = 'Manitoba'; break;
	 case 'sri.qx104fm': province = 'Manitoba'; break;
	 case 'sri.cjdctv': province = 'British Columbia'; break;
	 case 'sri.cftktv': province = 'British Columbia'; break;
	 case 'sri.bmstjean': province = 'Quebec'; break;
	 case 'sri.bmsthyacinthe': province = 'Quebec'; break;
	 case 'sri.redrummondville': province = 'Quebec'; break;
	 case 'sri.regatineau': province = 'Quebec'; break;
	 case 'sri.remontreal': province = 'Quebec'; break;
	 case 'sri.requebec': province = 'Quebec'; break;
	 case 'sri.rerimouski': province = 'Quebec'; break;
	 case 'sri.rerouyn': province = 'Quebec'; break;
	 case 'sri.resaguenay': province = 'Quebec'; break;
	 case 'sri.resherbrooke': province = 'Quebec'; break;
	 case 'sri.retroisrivieres': province = 'Quebec'; break;
	 case 'sri.revaldor': province = 'Quebec'; break;
	 case 'sri.rdamqui': province = 'Quebec'; break;
	 case 'sri.rddrummondville': province = 'Quebec'; break;
	 case 'sri.rdestrie': province = 'Quebec'; break;
	 case 'sri.rdgatineau': province = 'Quebec'; break;
	 case 'sri.rdmauricie': province = 'Quebec'; break;
	 case 'sri.rdmontreal': province = 'Quebec'; break;
	 case 'sri.rdquebec': province = 'Quebec'; break;
	 case 'sri.rdrimouski': province = 'Quebec'; break;
	 case 'sri.rdsaguenay': province = 'Quebec'; break;
	 default: province = 'Quebec'; break;
  }
  return province;
}



/**
 * Return the domain name of the website
 *
 * @return	-	domain name
 *
 * @type {String}	
 *
 * @requires	function objDart()
 */
function getDomain() {
	switch (arDart.site.substring(0, 6)) {
	case 'sri.re':
		return 'www.radionrj.ca';
	case 'sri.rd':
		return 'www.rougefm.ca';
	case 'sri.bm':
		return 'www.boomfm.com';
	default:
		var host=/([^\.]+\.)?([^\.]+)(\.[^\\/\\]+\/|\\)?/.exec(location.hostname) || [];
		host = window.location.hostname.split('.');
		return host[host.length - 2]+'.'+host[host.length - 1];
	}
}



/**
 * Script that lets you listen to a mp3 in popup
 *
 * @param {Int} idmulti		-	id du Mp3
 * @param {Int} titre		- 	Titre du Mp3
 * @param {Int} table
 *
 */
function openMP3player(idmulti, titre, table) {
	if (!table) {
		table = 'multimedia';
	}
	var siteDomain = getDomain();
	if (siteDomain === 'www.boomfm.com') {
		player_link = "http://" + siteDomain + "/musique/playerMP3/?id=" + idmulti + "&titre=" + titre + "&table=" + table + '&dartSite=' + arDart.site.replace("sri.", "");		
	} else {
		player_link = "http://" + siteDomain + "/" + getRegion() + "/musique/playerMP3/?id=" + idmulti + "&titre=" + titre + "&table=" + table + '&dartSite=' + arDart.site.replace("sri.", "");		
	}
	sv_window = window.open(player_link, "lecteur", "width=748,height=450,left=100,top=200");
	sv_window.focus();
}




/**
 * Displays the Hitlist Teaser
 *
 * @param {Int} nb				-	number of positions to be displayed
 * @param {Int} hitlistID		- 	Hitlist Id
 * @param {Int} destURL			-	Destination Url
 */
function writeHitlistPreview(nb, hitlistID, destURL) {
	if (typeof(destURL) == 'undefined') { destURL = '/Hitliste.aspx'; }
	if (typeof(hitlistID) == 'undefined') { hitlistID = ''; }
	if (typeof(nb) == 'undefined') { nb = 1; }
	document.write('<div id="retrievedData' + hitlistID + '">&nbsp;</div>');
	$.get("/EI/SharedObjects/Handlers/ProxyHandler.ashx?url=http://www.radionrj.ca/" + getRegion() + "/index/test/id/" + hitlistID + "&nb=" + nb + "&destURL=" + escape(destURL), function(data) {
	$("#retrievedData" + hitlistID).html(data);
	});
}




/**
 * function that writes an album to listen.
 * if Id Album, it must be int the URL
 */
function writeAlbumListener() {
	var albumID = querySt('albumID');
	if (typeof(albumID) == 'undefined') { albumID = ''; }
	var page = querySt('page');
	if (typeof(page) == 'undefined') { page = ''; }
	document.write('<div id="retrievedData">&nbsp;</div>');
	$.get("/EI/SharedObjects/Handlers/ProxyHandler.ashx?url=http://www.radionrj.ca/index/testsalleecoute&albumID=" + albumID + "&page=" + page + "&dartSite=" + arDart.site, function(data) {
	$("#retrievedData").html(data);
	});
}




/**
 * Old Function to write Burli News
 */
function writeBurli(limit) {
	var articleID = querySt('articleID');
	if (typeof(articleID) == 'undefined') { articleID = ''; }
	if (typeof(limit) == 'undefined') { limit = ''; }
	if (typeof(retourLink) == 'undefined') { retourLink = ''; }
	document.write('<div id="retrievedData">&nbsp;</div>');
	$.get("/EI/SharedObjects/Handlers/ProxyHandler.ashx?url=http://www.radionrj.ca/index/testnews&articleID=" + articleID + "&dartSite=" + arDart.site + "&limit=" + limit + "&retourLink=" + retourLink, function(data) {
	$("#retrievedData").html(data);
	});
}




/**
 * Opens the URL passed as parameter in popUp
 *
 * @param {String} URL		-	url du popUp
 *
 */
function openLivePlayer(URL) {
	day = new Date();
	id = day.getTime();
	eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=750,height=500,left = 0,top = 0');");
}




/**
 * Displays the string passed as a parameter in a box warning
 *
 * @param {String} string
 *
 */
function debug(string) { alert(string); }




/**
 * Opens a window for adding 
 *
 * @requires	function objDart()
 */
function open160x80AdWindow() {
	var rando;
	rando = Math.floor(Math.random()*500001);
	document.getElementById('hitlistBanner').innerHTML = '';
	document.getElementById("hitlistBanner").innerHTML = '<a href="http://ad.doubleclick.net/jump/' + arDart.site + '/' + arDart.section + ';pos=top;ss=' + removeAccents(getTitles('customTitle')) + ';tile=6;sz=160x80;ord=' + arDart.randNum + ';cb=' + rando + '?" target="_blank"><img id="dartimg" src="http://ad.doubleclick.net/ad/' + arDart.site + '/' + arDart.section + ';pos=top;ss=' + removeAccents(getTitles('customTitle')) + ';tile=6;sz=160x80;ord=' + arDart.randNum + ';cb=' + rando + '?" width="160" height="80" border="0" alt=""/></a>';
	$("#voting").dialog("open");
	$("#closeVote").live("click", function() {
								   $("#voting").dialog("close");
				   });
}




/**
 * Opens the URL passed as parameter in popUp
 *
 * @param {String} URL		-	url du popUp
 *
 */
function openUrlInNewWindow(url) {
	var pageForm = document.getElementById("aspnetForm");
	var currentAction = pageForm.action;

	document.getElementById("__VIEWSTATE").name = "VIEWSTATE";
	document.getElementById("__EVENTTARGET").name = "EVENTTARGET";
	document.getElementById("__EVENTARGUMENT").name = "EVENTARGUMENT";

	pageForm.action = url;
	pageForm.target = '_new';
	pageForm.submit();
	pageForm.action = currentAction;
	pageForm.action = '_self';

	document.getElementById("__VIEWSTATE").name = "__VIEWSTATE";
	document.getElementById("__EVENTTARGET").name = "__EVENTTARGET";
	document.getElementById("__EVENTARGUMENT").name = "__EVENTARGUMENT";
}




/**
 * Resizes the hitlist
 *
 * @param {Int} num_songs		-	number of positions to be displayed
 */
function resizeHitlist(num_songs) {
	var song_height = 115;
	var h = (num_songs * song_height) + 20;
	document.getElementById('hitlistflash').style.height = h + "px";
	document.getElementById('hitlistswf').setAttribute("height",h);
}




/**
 * Displays the Hitlist Teaser
 *
 * @param {Int} hitlistID		-	Hitlist Id
 * @param {Bool} hide_votes
 */
function writeHitlist(hitlistID,hide_votes) {
	var hitlist_url = null;
	var hitlist_post_url = null; //'http://www.radionrj.ca:8080/vote'

	document.write('<link href="http://' + document.domain + '/Other/css/main.css" rel="stylesheet" type="text/css" media="all" />');
	document.write('<link href="http://' + document.domain + '/Other/css/jquery-ui-1.7.2.custom.css" rel="stylesheet" type="text/css" media="all" />');
	document.write('<scr' + 'ipt type="text/jav' + 'ascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js"></scr' + 'ipt>');
	document.write('<scr' + 'ipt type="text/jav' + 'ascript" src="http://' + document.domain + '/Other/js/jquery.commons.js"></scr' + 'ipt>');

	if (hitlistID !== undefined) {
		hitlist_url = 'http://www.radionrj.ca/' + getRegion() + '/index/testflash/id/' + hitlistID;
	}

	if (flashSupported) {
		document.write('<div id="voting" style="display:none"><p>Ton vote a bien &eacute;t&eacute; comptabilis&eacute;</p><br clear="all" /><div id="hitlistBanner"></div><br clear="all" /><div><input class="" id="closeVote" type="image"  src="http://' + document.domain + '/Pics/img_storage/HitListe/searchGo_btn.gif"/></div></div><br>&nbsp;<div id="hitlistflash" style="width:580px;"></div>');

		$(document).ready(function() {
			var date = new Date();
			var randomnumber = date.getTime();
			var so = new SWFObject("http://" + document.domain + "/Flash/hitlist.swf?cb=" + randomnumber, "hitlistswf", "100%", "10", "8", "#FFFFFF");
			so.addParam("quality", "high");
			so.addParam("wmode", "transparent");
			so.addParam("salign", "TL");
			so.addVariable("document_domain", "http://" + document.domain);
			// to override url to load xml and to count hits 
			if (hide_votes){so.addVariable("hide_votes","1");}
			if (hitlist_url !== null){so.addVariable("hitlist_url",hitlist_url);}
			if (hitlist_post_url !== null){so.addVariable("hitlist_post_url",hitlist_post_url);}
			so.write("hitlistflash");
		});
	} else { // jquery
		 document.write('<div id="retrievedData" style="padding-top:15px">&nbsp;</div>');
		 $.get("/EI/SharedObjects/Handlers/ProxyHandler.ashx?url=http://www.radionrj.ca/" + getRegion() + "/index/test/id/" + hitlistID, function(data) {
		 $("#retrievedData").html(data);
		 });
	}
}






/**
 * Displays the Hitlist Teaser
 *
 * @param {Int} idsection		-	Id Section for The audio
 * @param {Bool} full			-	true = all audio, false = teaser
 * @param {Bool} reloadlist		- 	inutile
 *
 */
function writeMultimediaList(idsection,full,reloadlist) { 
	var fulls = '';
	if (full){fulls = '_full';}
	var subfolder = '';
	if (document.domain.match(/radionrj/g)){
				   subfolder = 'RE';
	}
	else if (document.domain.match(/rougefm/g)) {
				   subfolder = 'RD';
	}
	else if (document.domain.match(/boom/g)){
				   subfolder = 'Boom';
	}
	if (!reloadlist){
	   document.write('<link rel="stylesheet" type="text/css" href="/Other/CSS/audio_section.css" />');
	   document.write('<div id="extrait_audio_' + idsection + '" class="extraitAudio"></div>');
	}
	$.ajax({
	   type: "GET",
	   url: "/EI/SharedObjects/Handlers/ProxyHandler.ashx?url=http://www.radionrj.ca/rss/" + subfolder + "/section/" + idsection + fulls + ".xml",
	   dataType: "xml",
	   success: function (xml){
					 var html_text = '';
					 var i;
					 if (full){
												   i = 0;
												   $(xml).find("title").each(function(){
																  html_text += '<h3>' +  $(this).text() + '</h3>';
																  return false;
												   });
					  }

								   html_text += '<ul>';
					  i = 1;
					  if (reloadlist){
									  $("#href_voirplus_" + idsection).replaceWith('Plus...');
					  }              
					  $(xml).find("item").each(function(){
									 if (!reloadlist || (reloadlist && i > parseInt($(xml).find("nbaudio").text(), 10))) {
													  html_text += '<li onclick=\'openMP3player("' + $(this).find("idmulti").text() + '","' + $(this).find("urlencodedtitle").text() + '","multimedia");\'><a href="javascript:">' + $(this).find("title").text() + '</a></li>';
									 }
													  i++;
					  });
					  html_text += '</ul>';

					  if (!full && i >= parseInt($(xml).find("nbaudio").text(), 10)){
									  html_text += '<div id="div_voirplus_' + idsection + '" style="padding-top:10px;"><a id="href_voirplus_' + idsection + '" href="javascript:" onClick="document.location.href=\'http://' + document.domain + '/audios.aspx?idsection=' + idsection + '\'">Voir plus >></a></div>'; 
					  }              
					  $("#extrait_audio_" + idsection).append(html_text);
	   }
	});
}






/**
 * Load XML into a JS Obj
 *
 * @param {String} 	dname	-	Url of the XML
 *
 * @return			Return a JS xml object 
 *
 * @type {XML OBJ}	
 *
 */
function loadXMLDoc(dname)
{
	if (window.XMLHttpRequest) {
		xhttp=new XMLHttpRequest();
	} else {
		xhttp=new ActiveXObject("Microsoft.XMLHTTP");
	}
	xhttp.open("GET",dname,false);
	xhttp.send();
	return xhttp.responseXML;
}





/**
 * Script that displays the Burli News
 *
 * @param {Int} 	NbNewsDisplay		-	number of news (max 10)
 * @param {String} 	DisplayNewsTemplate	-	Define template to use (cyber or liste)
 * @param {String} 	MoreNewsLink		-	Text for the 'more' link (ex: Voir/View more...)
 * @param {Bool} 	DisplayDateNews		-	Display or hide the date
 * @param {Bool} 	DisplayContentNews	-	Display or hide the content of the news
 * @param {String} 	MoreNewsLinkDELETE	-	?? don't know. Not use in this function
 * @param {Array} 	BackNews			-	link to News List	[0] = image, [1] = Text, [2] = link
 *
 * @requires	function loadXMLDoc
 */
function getBurli(NbNewsDisplay,DisplayNewsTemplate,MoreNewsLink,DisplayDateNews,DisplayContentNews,MoreNewsLinkDELETE,BackNews) {
	  var articleID = querySt('articleID');
	  if (typeof(articleID) == 'undefined') { articleID = ''; }
	  if (typeof(NbNewsDisplay) == 'undefined') { NbNewsDisplay = 10; }
	  if (typeof(retourLink) == 'undefined') { retourLink = ''; }
	  if (typeof(DisplayNewsTemplate) == 'undefined') { DisplayNewsTemplate = 'liste'; }
	  pageBurli = getUrlVar('page');
	  if(pageBurli === null) { pageBurli = 1; }

	  //Recupere le XML des nouvelles
	  urlXmlBurli = "/EI/SharedObjects/Handlers/ProxyHandler.ashx?url=http://www.radionrj.ca/index/burli&articleID=" + articleID + "&dartSite=" + arDart.site + "&limit=" + NbNewsDisplay + "&retourLink=" + retourLink + "&page=" + pageBurli;

	  var xmlDoc = loadXMLDoc(urlXmlBurli);
	  var nbPages = Math.ceil(xmlDoc.getElementsByTagName("nbArticles")[0].childNodes[0].nodeValue / NbNewsDisplay);
	  if (nbPages > 11) { nbPages = 11; }

	  var NewsBurliHtml = '';
	  var NewsBurliXml, idNews, TitleNews, DateNews, TexteNews, AudioNews;

	  if(articleID === '')
	  {
					 NewsBurliHtml = '<table cellpadding="0" cellspacing="0" class="NewsTable">';

					 for (x = 0; x < NbNewsDisplay; x++)
					 {
									 NewsBurliXml = xmlDoc.getElementsByTagName("news")[x];
									 if ((typeof NewsBurliXml  != "undefined") && (NewsBurliXml !== null)) { // protection if less than 10 articles
										 idNews = NewsBurliXml.getElementsByTagName("idNews")[0].childNodes[0].nodeValue;
										 TitleNews = NewsBurliXml.getElementsByTagName("TitleNews")[0].childNodes[0].nodeValue;
										 DateNews = NewsBurliXml.getElementsByTagName("DateNews")[0].childNodes[0].nodeValue;
										 TexteNews = NewsBurliXml.getElementsByTagName("TexteNews")[0].childNodes[0].nodeValue;
										 AudioNews = NewsBurliXml.getElementsByTagName("AudioNews")[0].childNodes[0].nodeValue;

										 var TexteNewsTab = TexteNews.split(' ');
										 TexteNews = '';
										 var contSplit = 0;
										 while (contSplit < 30 && typeof(TexteNewsTab[contSplit]) != 'undefined')
										 {
												if(TexteNewsTab[contSplit] == '<script') {
													break;
												}
												else
												{
												   TexteNews += TexteNewsTab[contSplit] + ' ';
												   contSplit++;
												}
										 }
										 TexteNews += '...';

										 if(DisplayNewsTemplate == 'liste')
										 {
														 NewsBurliHtml += '<tr><td class="NewsContent">';
														 if(DisplayDateNews) { NewsBurliHtml += '<span class="DateNews"><img src="/EI/T/Icons/16x16/document.png">' + DateNews + '</span><br>'; }
														 NewsBurliHtml += '<a href="' + BackNews[2] + '?articleID=' + idNews + '" class="TitleNews">' + TitleNews + '</a>';
														 if(AudioNews == 1) { NewsBurliHtml += '&nbsp;&nbsp;&nbsp;<img src="/Pics/icons/audio.png"/>'; }
														 NewsBurliHtml += '<br>';
														 if(DisplayContentNews) { NewsBurliHtml += '<span class="TexteNews">' + TexteNews + ' &nbsp;&nbsp;<a href="' + BackNews[2] + '?articleID=' + idNews + '" class="MoreNews">' + MoreNewsLink + '</a></span>'; }
														 NewsBurliHtml += '</td></tr>';
										 }
										 else
										 {
														 if(x === 0)
														 {
																		NewsBurliHtml += '<tr><td colspan="3" class="FirstNewsContent"><table><tr><td class="AstralLogoNews"></td><td class="FirstNewsContentTd">';
																		if(DisplayDateNews) { NewsBurliHtml += '<span class="DateNews"><img src="/EI/T/Icons/16x16/document.png">' + DateNews + '</span><br>'; }
																		NewsBurliHtml += '<a href="' + BackNews[2] + '?articleID=' + idNews + '" class="TitleNews">' + TitleNews + '</a>';
																		if(AudioNews == 1) { NewsBurliHtml += '&nbsp;&nbsp;&nbsp;<img src="/Pics/icons/audio.png"/>'; }
																		NewsBurliHtml += '<br>';
																		if(DisplayContentNews) { NewsBurliHtml += '<span class="TexteNews">' + TexteNews + ' &nbsp;&nbsp;<a href="' + BackNews[2] + '?articleID=' + idNews + '" class="MoreNews">' + MoreNewsLink + '</a></span></td></tr></table></td></tr>'; }
														 }
														 else if (x>0 && x<4)
														 {
																		if(x==1) { NewsBurliHtml += '<tr><td class="NewsContent" colspan="3"><table><tr>'; }

																		NewsBurliHtml += '<td width="33%" class="NewsThree" valign="top">';
																		if(DisplayDateNews) { NewsBurliHtml += '<span class="DateNews"><img src="/EI/T/Icons/16x16/document.png">' + DateNews + '</span><br>'; }
																		NewsBurliHtml += '<a href="' + BackNews[2] + '?articleID=' + idNews + '" class="TitleNews TitleNewsThree">' + TitleNews + '</a>';
																		if(AudioNews == 1) { NewsBurliHtml += '&nbsp;&nbsp;&nbsp;<img src="/Pics/icons/audio.png"/>'; }
																		NewsBurliHtml += '<br>';
																		if(DisplayContentNews) { NewsBurliHtml += '<span class="TexteNews">' + TexteNews + ' &nbsp;&nbsp;<a href="' + BackNews[2] + '?articleID=' + idNews + '" class="MoreNews">' + MoreNewsLink + '</a></span></td>'; }

																		if(x==3) { NewsBurliHtml += '</tr></table></tr>'; }
														 }
														 else
														 {
																		NewsBurliHtml += '<tr><td class="NewsContent" colspan="3">';
																		if(DisplayDateNews) { NewsBurliHtml += '<span class="DateNews"><img src="/EI/T/Icons/16x16/document.png">' + DateNews + '</span><br>'; }
																		NewsBurliHtml += '<a href="' + BackNews[2] + '?articleID=' + idNews + '" class="TitleNews">' + TitleNews + '</a>';
																		if(AudioNews == 1) { NewsBurliHtml += '&nbsp;&nbsp;&nbsp;<img src="/Pics/icons/audio.png"/>'; }
																		NewsBurliHtml += '<br>';
																		if(DisplayContentNews) { NewsBurliHtml += '<span class="TexteNews">' + TexteNews + ' &nbsp;&nbsp;<a href="' + BackNews[2] + '?articleID=' + idNews + '" class="MoreNews">' + MoreNewsLink + '</a></span>'; }
																		NewsBurliHtml += '</td></tr>';
														 }

										 }
									 }
					 }
					 NewsBurliHtml += '</table>';
					 NewsBurliHtml += '<div align="right">';

					 for (x = 1; x <= nbPages; x++)
					 {
									 if(pageBurli == x) {
													 NewsBurliHtml += '&nbsp;<b>' + x + '</b>&nbsp;';
									 } else {
													 NewsBurliHtml += '&nbsp;<a href="?page=' + x + '"><b>' + x + '</b></a>&nbsp;';
									 }
					 }

					 NewsBurliHtml += '</div>';
	  }
	  else
	  {
					 NewsBurliXml = xmlDoc.getElementsByTagName("news")[0];
					 idNews = NewsBurliXml.getElementsByTagName("idNews")[0].childNodes[0].nodeValue;
					 TitleNews = NewsBurliXml.getElementsByTagName("TitleNews")[0].childNodes[0].nodeValue;
					 DateNews = NewsBurliXml.getElementsByTagName("DateNews")[0].childNodes[0].nodeValue;
					 TexteNews = NewsBurliXml.getElementsByTagName("TexteNews")[0].childNodes[0].nodeValue;
					 AudioNews = NewsBurliXml.getElementsByTagName("AudioNews")[0].childNodes[0].nodeValue;

					 NewsBurliHtml = '<table cellpadding="0" cellspacing="0" class="NewsTable">';
					 NewsBurliHtml += '<tr><td class="NewsContent">';
					 NewsBurliHtml += '<span class="DateNews"><img src="/EI/T/Icons/16x16/document.png">' + DateNews + '</span><br>';
					 NewsBurliHtml += '<a href="' + BackNews[2] + '?articleID=' + idNews + '" class="TitleNews">' + TitleNews + '</a>';
					 if(AudioNews == 1) { NewsBurliHtml += '&nbsp;&nbsp;&nbsp;<img src="/Pics/icons/audio.png"/>'; }
					 NewsBurliHtml += '<br>';
					 NewsBurliHtml += '<span class="TexteNews">' + TexteNews + '</span><br>';
					 NewsBurliHtml += '<br><div align="right"><a href="' + BackNews[2] + '" class="RetourNews">';
					 if(BackNews[0] !== '') { NewsBurliHtml += '<img src="' + BackNews[0] + '" border="0">&nbsp;&nbsp;'; }
					 if(BackNews[1] !== '') { NewsBurliHtml += BackNews[1]; }
					 NewsBurliHtml += '</a></div></td></tr>';
					 NewsBurliHtml += '</table>';
	  }
	  document.write(NewsBurliHtml);
}


/**
 * Search the site language
 *
 * @return			'en' or 'fr'
 *
 * @type {String}	
 *
 */
function getSiteLang() {
	var ret = 'en';
	if ((s_account.substr(0, 8) == 'amr-boom') || (s_account.substr(0, 6) == 'amr-rd') || (s_account.substr(0, 7) == 'amr-nrj') || (s_account.substr(0, 15) == 'amr-rockdetente') || (s_account.substr(0, 16) == 'amr-radioenergie')) {
		ret = 'fr';
	}
	return ret;
}


/**
* Displays weather
*
* @param {String} CodeVille                    Code Ville
*
* @requires     function getSiteLang()
* @requires     function loadXMLDoc
*
*/
function weatherMeteo(CodeVille) {
                langWeather = getSiteLang();
                //Load le XML meteo de la ville choisi
                var urlXml = 'http://amri.ca/MeteoAstral/' + CodeVille + '.xml';
                xmlDoc=loadXMLDoc("/EI/SharedObjects/Handlers/ProxyHandler.ashx?url=" + urlXml);

                var CA = xmlDoc.getElementsByTagName("OBS")[0];
                var lieu = CA.getAttribute("DATE");
                if(langWeather == 'fr') { lieu += ' : ' + CA.getAttribute("STATION_FR"); }

                var MeteoHtml = '';
                MeteoHtml += '<table cellpadding="0" cellspacing="0" class="tableMeteo"><tr><td colspan="3" valign="middle">';

                if(langWeather == 'fr') 
                {
                   MeteoHtml += '<a href="http://www.meteomedia.com/index.htm?ref=astralradlogo" target="_blank"><img src="/Pics/Meteo/logoMeteoMediaEn.png" alt="MeteoMedia" width="116" height="61" border="0" align="right"/></a><br>';
                   MeteoHtml += '<span class="TitleMeteo">Conditions Actuelles</span>&nbsp;&nbsp;&nbsp;';
                }
                else
                {
                   MeteoHtml += '<a href="http://www.theweathernetwork.com/index.htm?ref=astralradlogo" target="_blank"><img src="/Pics/Meteo/logoMeteoMediaEn.png" alt="The Weather Network" width="116" height="61" border="0" align="right"/></a><br>';
                   MeteoHtml += '<span class="TitleMeteo">Current Conditions</span>&nbsp;&nbsp;&nbsp;';
                }

                MeteoHtml += '<span class="LieuMeteo">' + lieu + '</span></td></tr><tr><td class="Princ"><br><table style="width:100%"><tr>';
                MeteoHtml += '<td width="33%">';

                var imgBig = '<img width="80px" height="80px" src="/Pics/Meteo/img/' + CA.getAttribute("ICON") + '.png" />';
                MeteoHtml += imgBig;

                MeteoHtml += '</td><td width="33%">';
                MeteoHtml += '<span class="TempChiffre">';

                imgBig = CA.getAttribute("TEMPERATURE");
                MeteoHtml += imgBig;

                if(langWeather == 'fr') { MeteoHtml += '</span><span class="TempC">&ordm;C</span></td><td width="33%" align="right"><div class="More" align="center"><table><tr><td align="right">Humidit&eacute; : </td><td>';
                } else { MeteoHtml += '</span><span class="TempC">&ordm;C</span></td><td width="33%" align="right"><div class="More" align="center"><table>'; }

                if(CA.getAttribute("REL_HUMIDITY") != null)
                {
                               imgBig = '<tr><td align="right">Humidity : </td><td>' + CA.getAttribute("REL_HUMIDITY") + '%</td></tr>';
                               MeteoHtml += imgBig;
                }
                if(CA.getAttribute("WIND_DIR") != 'Non disponible')
                {
                               if(langWeather == 'fr') { MeteoHtml += '<tr><td align="right">Vents : </td><td>';
                               } else { MeteoHtml += '<tr><td align="right">Wind : </td><td>'; }
                
                               if(langWeather == 'fr') { imgBig = CA.getAttribute("WIND_DIR") + '  ' + CA.getAttribute("WIND_SPEED") + ' km/h';
                               } else { imgBig = CA.getAttribute("WIND_SPEED") + ' km/h'; }
                               MeteoHtml += imgBig + '</td></tr>';
                }

                if(langWeather == 'fr') { MeteoHtml += '<tr><td align="right">Pression : </td><td>';
                } else { MeteoHtml += '<tr><td align="right">Pressure : </td><td>'; }

                imgBig = CA.getAttribute("PRESSURE") + ' kPa';
                MeteoHtml += imgBig;

                if(langWeather == 'fr') { MeteoHtml += '</td></tr><tr><td align="right">Visibilit&eacute; : </td><td>';
                } else { MeteoHtml += '</td></tr><tr><td align="right">Visibility : </td><td>'; }

                imgBig = CA.getAttribute("VISIBILITY_FR") + ' km';
                MeteoHtml += imgBig;

                if(langWeather == 'fr') 
                {
                                                                  MeteoHtml += '</td></tr><tr><td align="right">Plafond : </td><td>';
                                                                  imgBig  = CA.getAttribute("CEILING_FR") + ' pi';
                }
                else
                {
                                                                  MeteoHtml += '</td></tr><tr><td align="right">Ceiling : </td><td>';
                                                                  if(CA.getAttribute("CEILING_FR") == 'illimité') { imgBig  = 'unlimited';
                                                                  } else { imgBig  = CA.getAttribute("CEILING_FR") + ' ft'; }
                }

                MeteoHtml += imgBig;

                MeteoHtml += '</td></tr></table></div></td></tr></table></td></tr><tr><td colspan="3">';

                if(langWeather == 'fr') { MeteoHtml += '<span class="TitleMeteo">Pr&eacute;visions &agrave; court terme</span><br><br><table cellpadding="0" cellspacing="0" class="CT"><tr>';
                } else { MeteoHtml += '<span class="TitleMeteo">Short Term Forecast</span><br><br><table cellpadding="0" cellspacing="0" class="CT"><tr>'; }
                var PCT;
                for (loop = 0; loop < 4; loop++)
                {
                                                                  PCT = xmlDoc.getElementsByTagName('PERIOD')[loop];

                                                                  MeteoHtml += '<td align="center">';
                                                                  if(langWeather == 'fr') { PCTvar = PCT.getAttribute("NAME_FR");
                                                                  } else { PCTvar = PCT.getAttribute("NAME_EN"); }
                                                                  MeteoHtml += '<span class="Period">' + PCTvar + '</span>';
                                                                  MeteoHtml += '<table cellpadding="0" cellspacing="0" style="padding:5px;"><tr><td style="padding:5px;">';
                                                                  PCTvar = PCT.getAttribute("ICON");
                                                                  MeteoHtml += '<img align="left" src="/Pics/Meteo/img/' + PCTvar + '.png" />';
                                                                  MeteoHtml += '</td><td style="width:100%" align="left"><span class="Temp">';
                                                                  PCTvar = PCT.getAttribute("TEMPERATURE");
                                                                  MeteoHtml += PCTvar;
                                                                  MeteoHtml += '</span><span class="TempC">&ordm;C</span>';
                                                                  if(langWeather == 'fr') 
                                                                  {
                                                                                                                             PCTvar = PCT.getAttribute("FORECAST_TEXT_FR");
                                                                                                                             MeteoHtml += '<br><span class="forecast">' + PCTvar + '</span>';
                                                                  }
                                                                  MeteoHtml += '</td></tr></table></td>';
                }

                MeteoHtml += '</tr></table></td></tr>';

                MeteoHtml += '<tr><td colspan="3">';

                if(langWeather == 'fr') { MeteoHtml += '<span class="TitleMeteo">Pr&eacute;visions &agrave; long terme</span><br><br><table cellpadding="0" cellspacing="0" class="LT"><tr>';
                } else { MeteoHtml += '<span class="TitleMeteo">Long Term Forecast </span><br><br><table cellpadding="0" cellspacing="0" class="LT"><tr>'; }

                for (loop = 0; loop < 4; loop++)
                {
                                                                  PCT = xmlDoc.getElementsByTagName('WEEKDAY')[loop];

                                                                  MeteoHtml += '<td align="center">';
                                                                  PCTvar = PCT.getAttribute("NAME_EN");
                                                                  MeteoHtml += '<span class="Period">' + PCTvar + '</span>';
                                                                  MeteoHtml += '<table cellpadding="0" cellspacing="0" style="padding:5px;"><tr><td style="padding:5px;">';
                                                                  PCTvar = PCT.getAttribute("ICON");
                                                                  MeteoHtml += '<img align="left" src="http://montreal.radionrj.ca/Pics/Meteo/img/' + PCTvar + '.png" />';
                                                                  MeteoHtml += '</td><td style="width:100%" align="left"><span class="Temp">';
                                                                  PCTvar = PCT.getAttribute("HIGH_TEMP");
                                                                  MeteoHtml += PCTvar;
                                                                  MeteoHtml += '</span><span class="TempC">&ordm;C</span><br><span class="Temp">';
                                                                  PCTvar = PCT.getAttribute("LOW_TEMP");
                                                                  MeteoHtml += PCTvar;
                                                                  MeteoHtml += '</span><span class="TempC">&ordm;C</span>';
                                                                  if(langWeather == 'fr') 
                                                                  {
                                                                                                                PCTvar = PCT.getAttribute("FORECAST_TEXT_FR");
                                                                                                                MeteoHtml += '<br><span class="forecast">' + PCTvar + '</span>';
                                                                  }
                                                                  MeteoHtml += '</td></tr></table></td>';
                }
                MeteoHtml += '</tr></table></td></tr></table><br /><br /><div align="center">';

                if(langWeather == 'fr')
                {
                                                                  MeteoHtml += '<a href="http://www.meteomedia.com/weathermaps/?ref=astralradcartes" target="_blank">Cartes m&eacute;t&eacute;o</a>&nbsp;|&nbsp;<a href="http://www.meteomedia.com/alerts/?ref=astralradalertes" target="_blank">Avertissements m&eacute;t&eacute;o</a>&nbsp;|&nbsp;<a href="http://www.meteomedia.com/airquality/cancities_fr/?ref=astralradair" target="_blank">Qualit&eacute; de l&acute;air</a>&nbsp;|&nbsp;<a href="http://www.meteomedia.com/airportfx/canairports_fr/?ref=astralradaeroport" target="_blank">Pr&eacute;visions a&eacute;roports</a><br /><a href="http://www.meteomedia.com/weather/maps/?ref=astralradsat" target="_blank">Satellites et radars</a>&nbsp;|&nbsp;<a href="http://www.meteomedia.com/flu/?ref=astralradgrippe" target="_blank">Indice gripal</a>&nbsp;|&nbsp;<a href="http://www.meteomedia.com/skifx/canski_fr?ref=astralradski" target="_blank">Bulletin ski</a>&nbsp;|&nbsp;<a href="http://www.meteomedia.com/hwyfx/cancities_hwy_fr/?ref=astralradroutes" target="_blank">Pr&eacute;visions Routi&egrave;res</a> <br /><br />Donn&eacute;es fournies par &copy; <a href="http://www.meteomedia.com/index.htm?ref=astralradcopyr" target="_blank" class="red_link">M&eacute;t&eacute;oM&eacute;dia</a></div><br /><br />';
                }
                else
                {
                                                                  MeteoHtml += '<a href="http://www.theweathernetwork.com/weathermaps/?ref=topnav_homepage_weathermaps" target="_blank">Weather Maps</a>&nbsp;|&nbsp;<a href="http://www.theweathernetwork.com/alerts/?ref=topnav_weathermaps_alerts" target="_blank">Weather Warnings</a>&nbsp;|&nbsp;<a href="http://www.theweathernetwork.com/airquality/cancitiesaq_en/?ref=topnav_alerts_airquality" target="_blank">Air Quality</a>&nbsp;|&nbsp;<a href="http://www.theweathernetwork.com/airportfx/canairports_en/?ref=topnav_homepage_airportfx" target="_blank">Airport Forecast</a><br /><a href="http://www.theweathernetwork.com/weather/maps/?ref=topnav_airportfx_maps" target="_blank">Satellite and Radar</a>&nbsp;|&nbsp;<a href="http://www.theweathernetwork.com/flu/?ref=topnav_maps_flu" target="_blank">Flu report</a>&nbsp;|&nbsp;<a href="http://www.theweathernetwork.com/skifx/canski_en?ref=topnav_flu_skifx" target="_blank">Ski report</a>&nbsp;|&nbsp;<a href="http://www.theweathernetwork.com/highway_forecast/?ref=topnav_traffic_cameras_highway_forecast" target="_blank">Highway Forecast</a> <br /><br />Data provided by &copy; <a href="http://www.theweathernetwork.com/index.htm?ref=astralradcopyr" target="_blank" class="red_link">The Weather Network</a></div><br /><br />';
                }

                document.write(MeteoHtml);
}


/**
 * Display Music News
 *
 * @param {String} 	feedNewsMusic	Type of the news you want to display (ex: pop)
 * @param {Int} 	nbNewsMusic		number of news to display (max:5)
 *  
 * @requires	function loadXMLDoc
 *
 */
function writeFeedMusic (feedNewsMusic, nbNewsMusic, ImageFeedMusic)
{
	//On check si il s'agit d'un article precis ou de la liste
	var articleID = querySt('articleID');
    if (typeof(articleID) == 'undefined') { articleID = ''; }

	//Ecriture de la box.
	var TeaserMusicCode = '';

	//On recupere le folder des news
	switch (feedNewsMusic)
	{
		case 'cr':
			feedMusicNews = 'http://rss.pulsewebcontent.com/pulsewebfeedcfrb.asp%3Fcalls=cfrb-fm%26passcode=317snow%26fmt=cr';
			break;
		case 'cw':
			feedMusicNews = 'http://rss.pulsewebcontent.com/pulsewebfeedcfrb.asp%3Fcalls=cfrb-fm%26passcode=317snow%26fmt=cw';
			break;
		case 'enews':
			feedMusicNews = 'http://rss.pulsewebcontent.com/pulsewebfeedcfrb.asp%3Fcalls=cfrb-fm%26passcode=317snow%26fmt=enews';
			break;
		case 'mnews':
			feedMusicNews = 'http://rss.pulsewebcontent.com/pulsewebfeedcfrb.asp%3Fcalls=cfrb-fm%26passcode=317snow%26fmt=mnews';
			break;
		case 'ol':
			feedMusicNews = 'http://rss.pulsewebcontent.com/pulsewebfeedcfrb.asp%3Fcalls=cfrb-fm%26passcode=317snow%26fmt=ol';
			break;
		case 'pop':
			feedMusicNews = 'http://rss.pulsewebcontent.com/pulsewebfeedcfrb.asp%3Fcalls=cfrb-fm%26passcode=317snow%26fmt=pop';
			break;
		case 'r&b':
			feedMusicNews = 'http://rss.pulsewebcontent.com/pulsewebfeedcfrb.asp%3Fcalls=cfrb-fm%26passcode=317snow%26fmt=R%26B';
			break;
		case 'rap':
			feedMusicNews = 'http://rss.pulsewebcontent.com/pulsewebfeedcfrb.asp%3Fcalls=cfrb-fm%26passcode=317snow%26fmt=rap';
			break;
		case 'rock':
			feedMusicNews = 'http://rss.pulsewebcontent.com/pulsewebfeedcfrb.asp%3Fcalls=cfrb-fm%26passcode=317snow%26fmt=rock';
			break;
		case 'sjazz':
			feedMusicNews = 'http://rss.pulsewebcontent.com/pulsewebfeedcfrb.asp%3Fcalls=cfrb-fm%26passcode=317snow%26fmt=sjzz';
			break;
	}
	

	//Load du XML
	feedXmlTeaserMusic = '/EI/SharedObjects/Handlers/ProxyHandler.ashx?url=' + feedMusicNews;
	var xmlDoc = loadXMLDoc(feedXmlTeaserMusic);
	var NewsMusicXml = xmlDoc.getElementsByTagName("item");
	
	if(articleID != '')
	{
		for (x=0; x<NewsMusicXml.length; x++)
		{
			var ArticleIdFeed = NewsMusicXml[x].getElementsByTagName('guid')[0].childNodes[0].nodeValue.replace('#PULSE_NEWSITEMID_', '');
			if(articleID == ArticleIdFeed)
			{			
				var TitleRecord = '';
				var ContentRecord = '';
				var ImgRecord = '';
				
				TitleRecord = NewsMusicXml[x].getElementsByTagName('title')[0].childNodes[0].nodeValue;
				ContentRecord = NewsMusicXml[x].getElementsByTagName('description')[0].childNodes[0].nodeValue;
				var ArticleIdFeed = NewsMusicXml[x].getElementsByTagName('guid')[0].childNodes[0].nodeValue.replace('#PULSE_NEWSITEMID_', '');
				if( NewsMusicXml[x].getElementsByTagName('enclosure')[0] != undefined ) 
					var image = NewsMusicXml[x].getElementsByTagName('enclosure')[0].getAttribute("url");
				else var image = null;
				
				TeaserMusicCode += '<div style="clear:both;" class="OrbitNews"><a class="Titre" href="?articleID=' + ArticleIdFeed + '">' + TitleRecord + '</a><br>';			
				
				TeaserMusicCode += '<div class="ContentTrue" style="padding-top:10px;">';
				
				if(image != null && ImageFeedMusic) TeaserMusicCode += '<a style="float:left;padding:15px;padding-left:0px" href="?articleID=' + ArticleIdFeed + '"><img src="' + image + '"></a>';
				
				TeaserMusicCode += ContentRecord + '</div>';
							
				TeaserMusicCode += '<br><div class="separation"></div></div><br>';
			}
		}
	}
	else
	{
		for (x=0; x<NewsMusicXml.length; x++)
		{
			var TitleRecord = '';
			var ContentRecord = '';
			var ImgRecord = '';
			
			TitleRecord = NewsMusicXml[x].getElementsByTagName('title')[0].childNodes[0].nodeValue;
			ContentRecord = NewsMusicXml[x].getElementsByTagName('description')[0].childNodes[0].nodeValue;
			var ArticleIdFeed = NewsMusicXml[x].getElementsByTagName('guid')[0].childNodes[0].nodeValue.replace('#PULSE_NEWSITEMID_', '');
			if( NewsMusicXml[x].getElementsByTagName('enclosure')[0] != undefined ) 
				var image = NewsMusicXml[x].getElementsByTagName('enclosure')[0].getAttribute("url");
			else var image = null;
			
			TeaserMusicCode += '<div style="clear:both;" class="OrbitNews"><a class="Titre" href="?articleID=' + ArticleIdFeed + '">' + TitleRecord + '</a><br>';			
			
			TeaserMusicCode += '<div class="ContentTrue" style="padding-top:10px;">';
			
			if(image != null && ImageFeedMusic) TeaserMusicCode += '<a style="float:left;padding-right:15px;padding-bottom:15px" href="?articleID=' + ArticleIdFeed + '"><img src="' + image + '"></a>';
			
			TeaserMusicCode += ContentRecord.substring(0, 390) + '...</div>';
						
			TeaserMusicCode += '<br><div class="separation"></div></div><br>';
		}
	}
	TeaserMusicCode += '';
	document.write(TeaserMusicCode);
	
}

/**
 * Display Teaser Music News
 *
 * @param {String} 	feedNewsMusic	Type of the news you want to display (ex: pop)
 * @param {Int} 	nbNewsMusic		number of news to display (max:5)
 * @param {Bool} 	ImageFeedMusic	display or hide image from news
 * @param {Int} 	NewsLink		link to the music news page
 *  
 * @requires	function loadXMLDoc
 *
 */
function  writeTeaserFeedMusic (feedNewsMusic, nbNewsMusic, ImageFeedMusic, NewsLink )
{
	//Ecriture de la box.
	var TeaserMusicCode = '';

	//On recupere le folder des news
	switch (feedNewsMusic)
	{
		case 'cr':
			feedMusicNews = 'http://rss.pulsewebcontent.com/pulsewebfeedcfrb.asp%3Fcalls=cfrb-fm%26passcode=317snow%26fmt=cr';
			break;
		case 'cw':
			feedMusicNews = 'http://rss.pulsewebcontent.com/pulsewebfeedcfrb.asp%3Fcalls=cfrb-fm%26passcode=317snow%26fmt=cw';
			break;
		case 'enews':
			feedMusicNews = 'http://rss.pulsewebcontent.com/pulsewebfeedcfrb.asp%3Fcalls=cfrb-fm%26passcode=317snow%26fmt=enews';
			break;
		case 'mnews':
			feedMusicNews = 'http://rss.pulsewebcontent.com/pulsewebfeedcfrb.asp%3Fcalls=cfrb-fm%26passcode=317snow%26fmt=mnews';
			break;
		case 'ol':
			feedMusicNews = 'http://rss.pulsewebcontent.com/pulsewebfeedcfrb.asp%3Fcalls=cfrb-fm%26passcode=317snow%26fmt=ol';
			break;
		case 'pop':
			feedMusicNews = 'http://rss.pulsewebcontent.com/pulsewebfeedcfrb.asp%3Fcalls=cfrb-fm%26passcode=317snow%26fmt=pop';
			break;
		case 'r&b':
			feedMusicNews = 'http://rss.pulsewebcontent.com/pulsewebfeedcfrb.asp%3Fcalls=cfrb-fm%26passcode=317snow%26fmt=R%26B';
			break;
		case 'rap':
			feedMusicNews = 'http://rss.pulsewebcontent.com/pulsewebfeedcfrb.asp%3Fcalls=cfrb-fm%26passcode=317snow%26fmt=rap';
			break;
		case 'rock':
			feedMusicNews = 'http://rss.pulsewebcontent.com/pulsewebfeedcfrb.asp%3Fcalls=cfrb-fm%26passcode=317snow%26fmt=rock';
			break;
		case 'sjazz':
			feedMusicNews = 'http://rss.pulsewebcontent.com/pulsewebfeedcfrb.asp%3Fcalls=cfrb-fm%26passcode=317snow%26fmt=sjzz';
			break;
	}
	

	//Load du XML
	feedXmlTeaserMusic = '/EI/SharedObjects/Handlers/ProxyHandler.ashx?url=' + feedMusicNews;
	var xmlDoc = loadXMLDoc(feedXmlTeaserMusic);
	var NewsMusicXml = xmlDoc.getElementsByTagName("item");
	
	TeaserMusicCode = '<table style="width:100%" class="OrbitNews">';
	
	for (x=0; x<NewsMusicXml.length; x++)
	{
		var TitleRecord = '';
		var ContentRecord = '';
		var ImgRecord = '';
		var ArticleIdFeed = '';
		
		TitleRecord = NewsMusicXml[x].getElementsByTagName('title')[0].childNodes[0].nodeValue;
		var ArticleIdFeed = NewsMusicXml[x].getElementsByTagName('guid')[0].childNodes[0].nodeValue.replace('#PULSE_NEWSITEMID_', '');
		if( NewsMusicXml[x].getElementsByTagName('enclosure')[0] != undefined ) 
			var image = NewsMusicXml[x].getElementsByTagName('enclosure')[0].getAttribute("url");
		else var image = null;
		
		
		TeaserMusicCode += '<tr>';
		
		if(image != null && ImageFeedMusic) TeaserMusicCode += '<td style="padding-right:10px;"><a href="'+ NewsLink + '?articleID=' + ArticleIdFeed + '"><img width="60" height="60" src="' + image + '"></a></td><td>';
		else TeaserMusicCode += '<td colspan="2">';
		
		TeaserMusicCode += '<a class="Titre" href="'+ NewsLink + '?articleID=' + ArticleIdFeed + '">' + TitleRecord + '</a></td>';
		TeaserMusicCode += '</tr><tr><td colspan="2" style="padding-top:5px;padding-bottom:5px;"><div class="separation"></div></td></tr>';
		
		if(nbNewsMusic == x) break;
	}
	
	TeaserMusicCode += '</table>';
	document.write(TeaserMusicCode);
}



/**
 * Change Background of division
 *
 * @param {String} 	idDiv			Id Division
 * @param {String} 	imgSrc			Url of the background
 * @param {Bool} 	childDivTrans	if true, background of children divisions are transparent
 *
 */
function changeMyBg (idDiv, imgSrc, childDivTrans)
{
	if(idDiv == 'left' || idDiv == 'right')
	{
		$('.'+idDiv).css("cssText","overflow:hidden !important;");
		$('.'+idDiv).css('background-image','url('+imgSrc+')');
		$('.'+idDiv).css('background-repeat', 'no-repeat');
		$('.'+idDiv).css('background-color', 'transparent');
		$('.'+idDiv).css('background-position', 'center top');
		if(childDivTrans) { $('.'+idDiv+' div').css('background-color', 'transparent'); }
	}
	else if (idDiv == 'body')
	{
		$(idDiv).css('cssText','background:#F2F2F2 url('+imgSrc+') repeat-x fixed center top !important;');
		$('#aspnetForm').css('background', 'none');
		if(childDivTrans) { $('#'+idDiv+' div').css('background-color', 'transparent');	}
	}
	else 
	{
		$('#'+idDiv).css("cssText","overflow:hidden !important;");
		$('#'+idDiv).css('background-image','url('+imgSrc+')');
		$('#'+idDiv).css('background-repeat', 'no-repeat');
		$('#'+idDiv).css('background-color', 'transparent');
		$('#'+idDiv).css('background-position', 'center top');
		if(childDivTrans) { $('#'+idDiv+' div').css('background-color', 'transparent'); }
	}
}



/**
 * Displays a particular division based on the date
 *
 * @param {String} 			DivId1			Id Division visible before date
 * @param {String} 			DivId2			Id Division normaly after date
 * @param {DateToSwitch} 	childDivTrans	date to switch
 *
 */
function setVisibleByDate (DivId1, DivId2, DateToSwitch)
{
	var DateNow = new Date();
	if(DateToSwitch > DateNow)
	{
		   $('#'+DivId1).css('display', 'block');
		   $('#'+DivId2).css('display', 'none');
	}
	else
	{
		   $('#'+DivId1).css('display', 'none');
		   $('#'+DivId2).css('display', 'block');
	}
}



/**
 * Displays a particular division based on the hour
 *
 * @param {String} 	DivId1		Id Division normaly visible
 * @param {String} 	DivId2		Id Division normaly hiden
 * @param {00:00} 	HourStart	Time when we begin to see the hidden division
  * @param {00:00} 	HourEnd		Time when we stop to view the hidden division
 *
 */
function setVisibleByHour (DivId1, DivId2, HourStart, HourEnd)
{
	var dateNow = new Date();
	var HourNow = dateNow.getHours();
	var MinNow = dateNow.getMinutes();

	HourStart = HourStart.split(':');
	var TrueHourStart = HourStart[0];
	var MinStart = HourStart[1];

	HourEnd = HourEnd.split(':');
	var TrueHourEnd = HourEnd[0];
	var MinEnd = HourEnd[1];

	if( TrueHourStart < HourNow )
	{
		if ( TrueHourEnd > HourNow )
		{
			$('#'+DivId1).css('display', 'none');
			$('#'+DivId2).css('display', 'block');
		}
		else if ( TrueHourEnd == HourNow )
		{
			if ( MinEnd > MinNow )
			{
				$('#'+DivId1).css('display', 'none');
				$('#'+DivId2).css('display', 'block');
			}
			else
			{
				$('#'+DivId1).css('display', 'block');
				$('#'+DivId2).css('display', 'none');
			}
		}
		else 
		{
			$('#'+DivId1).css('display', 'block');
			$('#'+DivId2).css('display', 'none');
		}
	}
	else if ( TrueHourStart == HourNow )
	{
		if ( MinStart <= MinNow )
		{
			if ( TrueHourEnd > HourNow )
			{
				$('#'+DivId1).css('display', 'none');
				$('#'+DivId2).css('display', 'block');
			}
			else if ( TrueHourEnd == HourNow )
			{
				if ( MinEnd > MinNow )
				{
					$('#'+DivId1).css('display', 'none');
					$('#'+DivId2).css('display', 'block');
				}
				else
				{
					$('#'+DivId1).css('display', 'block');
					$('#'+DivId2).css('display', 'none');
				}
			}
			else 
			{
				$('#'+DivId1).css('display', 'block');
				$('#'+DivId2).css('display', 'none');
			}
		}
		else
		{
			$('#'+DivId1).css('display', 'block');
			$('#'+DivId2).css('display', 'none');
		}
	}
	else 
	{
		$('#'+DivId1).css('display', 'block');
		$('#'+DivId2).css('display', 'none');
	}
}



/**
 * this function does not truncate the string in the middle of an html special character 
 * Ex: A string ending with &nbsp; would be removed entirely instead of terminating as &nb... which would not display properly.
 *
 * @param {String} str				This is a string parameter
 * @param {Integer} len				This is an integer parameter
 * @param {String} append			This is a string parameter
 * @param {Boolean} to_last_word	This is a Boolean parameter
 *
 * @return			a string truncated to or under the specified length
 *
 * @type {String}	
 */

function truncate(str,len,append,to_last_word) 
{
	var strA, matchesA, tmp_strA, new_strA = [], i; 
	
	if (str.length > len) {
		str	= str.replace(/\<[^\<]+?\>/gi,'').str.substring(0, len);
		strA = str.split(' ');				
		if (to_last_word){
			str = str.replace(/\w+$/, '');
		}
		else{			
			matchesA = strA[strA.length-1].match(/&[#]*[\w\d]+;/gi);
			tmp_strA = strA[strA.length-1].replace(/&[#]*[\w\d]+;/gi,'|').replace(/&[#]*[\w\d\|]+/gi,'').split('|');	
			new_strA = [];
			for (i = 0; i < tmp_strA.length; i++){
				if (i > 0){
					new_strA.push(matchesA[i-1]);
				}
				new_strA.push(tmp_strA[i]);					
			}
			strA[strA.length-1] = new_strA.join('');
			str = strA.join(' ');
		}
		if (append){
			str += append;
		}
	}
	return str;
}



/**
 * Converts a string formatted as XML to XML which is traversable by jQuery
 * USAGE : var xml = $.fromXMLString(strXML)
 *
 * @param {String} str				This is a string parameter - xml formatted string
 *
 * @return			a string truncated to or under the specified length
 * @type {jQuery XML Object}
 *
 * @require jQuery
 */

jQuery.fromXMLString = function(strXML)
{
	var win = window;	
	
	if (win.DOMParser) {
		return jQuery(new DOMParser().parseFromString(strXML, "text/xml"));
	} 
	else if (win.ActiveXObject) {
		var doc = new ActiveXObject("Microsoft.XMLDOM");
		doc.async = "false";
		doc.loadXML(strXML);
		return jQuery(doc);
	} 
	else {
		return jQuery(strXML);
	}
};































/**
 * Addon to Jquery
 */
;(function( $ ){

	function both( val ){
		return typeof val == 'object' ? val : { top:val, left:val };
	}

	var $scrollTo = $.scrollTo = function( target, duration, settings ){
		$(window).scrollTo( target, duration, settings );
	};

	$scrollTo.defaults = {
		axis:'xy',
		duration: parseFloat($.fn.jquery) >= 1.3 ? 0 : 1
	};

	// Returns the element that needs to be animated to scroll the window.
	// Kept for backwards compatibility (specially for localScroll & serialScroll)
	$scrollTo.window = function( scope ){
		return $(window)._scrollable();
	};

	// Hack, hack, hack :)
	// Returns the real elements to scroll (supports window/iframes, documents and regular nodes)
	$.fn._scrollable = function(){
		return this.map(function(){
			var elem = this,
				isWin = !elem.nodeName || $.inArray( elem.nodeName.toLowerCase(), ['iframe','#document','html','body'] ) != -1;

				if( !isWin ) {
					return elem;
				}

			var doc = (elem.contentWindow || elem).document || elem.ownerDocument || elem;

			return $.browser.safari || doc.compatMode == 'BackCompat' ?
				doc.body : 
				doc.documentElement;
		});
	};

	$.fn.scrollTo = function( target, duration, settings ){
		if( typeof duration == 'object' ){
			settings = duration;
			duration = 0;
		}
		if( typeof settings == 'function' ) {
			settings = { onAfter:settings };
		}

		if( target == 'max' ) {
			target = 9e9;
		}

		settings = $.extend( {}, $scrollTo.defaults, settings );
		// Speed is still recognized for backwards compatibility
		duration = duration || settings.speed || settings.duration;
		// Make sure the settings are given right
		settings.queue = settings.queue && settings.axis.length > 1;

		if( settings.queue ) {
			// Let's keep the overall duration
			duration /= 2;
		}
		settings.offset = both( settings.offset );
		settings.over = both( settings.over );

		return this._scrollable().each(function(){
			var elem = this,
				$elem = $(elem),
				targ = target, toff, attr = {},
				win = $elem.is('html,body');

			switch( typeof targ ){
				// A number will pass the regex
				case 'number':
				case 'string':
					if( /^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(targ) ){
						targ = both( targ );
						// We are done
						break;
					}
					// Relative selector, no break!
					targ = $(targ,this);
				case 'object':
					// DOMElement / jQuery
					if( targ.is || targ.style ) {
						// Get the real position of the target 
						toff = (targ = $(targ)).offset();
					}
			}
			$.each( settings.axis.split(''), function( i, axis ){
				var Pos	= axis == 'x' ? 'Left' : 'Top',
					pos = Pos.toLowerCase(),
					key = 'scroll' + Pos,
					old = elem[key],
					max = $scrollTo.max(elem, axis);

				if( toff ){// jQuery / DOMElement
					attr[key] = toff[pos] + ( win ? 0 : old - $elem.offset()[pos] );

					// If it's a dom element, reduce the margin
					if( settings.margin ){
						attr[key] -= parseInt(targ.css('margin'+Pos), 10) || 0;
						attr[key] -= parseInt(targ.css('border'+Pos+'Width'), 10) || 0;
					}

					attr[key] += settings.offset[pos] || 0;

					if( settings.over[pos] ) {
						// Scroll to a fraction of its width/height
						attr[key] += targ[axis=='x'?'width':'height']() * settings.over[pos];
					}
				}else{
					var val = targ[pos];
					// Handle percentage values
					attr[key] = val.slice && val.slice(-1) == '%' ? 
						parseFloat(val) / 100 * max
						: val;
				}

				// Number or 'number'
				if( /^\d+$/.test(attr[key]) ) {
					// Check the limits
					attr[key] = attr[key] <= 0 ? 0 : Math.min( attr[key], max );
				}

				// Queueing axes
				if( !i && settings.queue ) {
					// Don't waste time animating, if there's no need.
					if( old != attr[key] ) {
						// Intermediate animation
						animate( settings.onAfterFirst );
					}
					// Don't animate this axis again in the next iteration.
					delete attr[key];
				}
			});

			function animate( callback ){
				$elem.animate( attr, duration, settings.easing, callback && function(){
					callback.call(this, target, settings);
				});
			}

			animate( settings.onAfter );

		}).end();
	};


	// Max scrolling position, works on quirks mode
	// It only fails (not too badly) on IE, quirks mode.
	$scrollTo.max = function( elem, axis ){
		var Dim = axis == 'x' ? 'Width' : 'Height',
			scroll = 'scroll'+Dim;

		if( !$(elem).is('html,body') ) {
			return elem[scroll] - $(elem)[Dim.toLowerCase()]();
		}

		var size = 'client' + Dim,
			html = elem.ownerDocument.documentElement,
			body = elem.ownerDocument.body;

		return Math.max( html[scroll], body[scroll] ) - Math.min( html[size]  , body[size] );

	};

})( jQuery );

/**
 * Set opacity of the element
 *
 * @param {Element} elem		-	Element 
 * @param {Int} opacityAsInt	-	opacity (0 to 100)
 *
 */
function SetOpacity(elem, opacityAsInt)
{
	var opacityAsDecimal = opacityAsInt;

	if (opacityAsInt > 100) {
		opacityAsInt = opacityAsDecimal = 100;
	} else if (opacityAsInt < 0) {
		opacityAsInt = opacityAsDecimal = 0; 
	}

	opacityAsDecimal /= 100;
	if (opacityAsInt < 1) {
		opacityAsInt = 1; // IE7 bug, text smoothing cuts out if 0
	}

	elem.style.opacity = opacityAsDecimal;
	elem.style.filter  = "alpha(opacity=" + opacityAsInt + ")";
}

function FadeOpacityStep(elemId, stepNum, steps, fromOpacity, delta, timePerStep)
{
    SetOpacity(document.getElementById(elemId), Math.round(parseInt(fromOpacity, 10) + (delta * stepNum)));

    if (stepNum < steps) {
        setTimeout("FadeOpacityStep('" + elemId + "', " + (stepNum+1) + ", " + steps + ", " + fromOpacity + ", " + delta + ", " + timePerStep + ");", timePerStep);
	}
}

function FadeOpacity(elemId, fromOpacity, toOpacity, time, fps)
{
	var steps = Math.ceil(fps * (time / 1000));
	var delta = (toOpacity - fromOpacity) / steps;

	FadeOpacityStep(elemId, 0, steps, fromOpacity, delta, (time / steps));
}


function Efface(elemId)
{
	SetOpacity(document.getElementById(elemId), 0);
}


/* Rotator Teaser */
function writeTeaserRotator(TimeOutRotator,DurationRotator,WitdhRotator,HeightRotator,DirectionRotator,PictureTeaser,LinkTeaser,BurliTab,MeteoTab) {
                //Set des variables
                langWebsite = getSiteLang();

                var nbTe = '';

                while (document.getElementById('wrapperTeaser' + nbTe) !== null)
                {
                               nbTe++;
                }

                //Def des id et class
                var wrapTe = 'wrapperTeaser' + nbTe;
                var maskTe = 'mask' + nbTe;
                var idItemTe = 'item' + nbTe;
                var classItemTe = 'item' + nbTe;
                var contentTe = 'content' + nbTe;
                var nbDivRot = PictureTeaser.length;

                var nbDivRotFunction = PictureTeaser.length;
                if(BurliTab[0]) { nbDivRotFunction++; }
                if(MeteoTab[0]) { nbDivRotFunction++; }

                $(document).ready(function()
                {
                               var idVisible = 2;
                               if (nbDivRotFunction > 1) {
								   function rotate ()
								   {
												   var idVisibleT = '#' + idItemTe + idVisible;

												   $('#' + wrapTe).scrollTo($(idVisibleT), DurationRotator);

												   idVisible++;
												   if (idVisible == nbDivRotFunction+1) { idVisible = 1; }
								   }
								   setInterval(function() {rotate();}, TimeOutRotator);
                               }
                });

				var TailleMask;
                /*** STYLE  ***/
                if(DirectionRotator == 'vertical')
                {
                               TailleMask = nbDivRotFunction * 100;
                               document.write('<style>#' + wrapTe + ' {width:' + WitdhRotator + 'px;height:' + HeightRotator + 'px;overflow:hidden;} #' + maskTe + ' {height:' + TailleMask + '%;} .' + contentTe + ' {width:' + WitdhRotator + 'px;height:' + HeightRotator + 'px;} </style>');
                }
                else if(DirectionRotator == 'horizontal')
                {
                               TailleMask = nbDivRotFunction * 100;
                               document.write('<style>#' + wrapTe + ' {width:' + WitdhRotator + 'px;height:' + HeightRotator + 'px;overflow:hidden;} #' + maskTe + ' {width:' + TailleMask + '%;} .' + classItemTe + '{float:left;} .' + contentTe + ' {width:' + WitdhRotator + 'px;height:' + HeightRotator + 'px;} </style>');
                }
                else if(DirectionRotator == 'fade')
                {
                               document.write('<style>#' + wrapTe + ' {width:' + WitdhRotator + 'px;height:' + HeightRotator + 'px;position:relative;} .' + classItemTe + '{position:absolute;      left:0px; top:0px;}</style>');
                }

                document.write('<div id="' + wrapTe + '"><div id="' + maskTe + '">');

                for(x = 1; x <= nbDivRot; x++)
                {
                               document.write('<div id="' + idItemTe + x + '" class="' + classItemTe + '"><div class="' + contentTe + '">');
                               document.write('<a href="' + LinkTeaser[x-1] + '">');
                               document.write('<img src="' + PictureTeaser[x-1] + '" border="0">');
                               document.write('</a></div></div>');
                }

                if(BurliTab[0])
                {
                               nbDivRot++;
                               document.write('<div id="' + idItemTe + nbDivRot + '" class="' + classItemTe + '"><div class="' + contentTe + '">');
								var BurliDivTeaser;
                               if(langWebsite == 'fr') { BurliDivTeaser = '<table class="tabNews" onclick=\'window.location.href="' + BurliTab[1] + '";\' style="cursor:pointer"><tr><td class="img"><img src="http://montreal.radionrj.ca/Pics/Teaser_Home/astrallogo.jpg" /></td><td class="news">Nouvelles Astral<br><br><span class="news1">';
							   } else { BurliDivTeaser = '<table class="tabNews" onclick=\'window.location.href="' + BurliTab[1] + '";\' style="cursor:pointer"><tr><td class="img"><img src="http://montreal.radionrj.ca/Pics/Teaser_Home/astrallogo.jpg" /></td><td class="news">Local News<br><br><span class="news1">'; }
                               document.write(BurliDivTeaser);

                               var DisplayNewsTemplate = 'liste';

                               /*
                                *Nombre de nouvelles que l'on souhaite afficher
                                *
                                * ATTENTION si vous utiliser le template cyber
                                * vous NE pouvez PAS mettre 2 et 3
                                * Maximum = 14
                                */
                                var NbNewsDisplay = 1;

                                //Lien pour acceder a la nouvelle
                                var MoreNewsLink = '';

                                /*
                                 * Pour afficher la date = true
                                 * Pour ne pas afficher la date = false
                                 */
                                var DisplayDateNews = false;

                                /*
                                 * Pour afficher le contenu = true
                                 * Pour ne pas afficher le contenu = false
                                 */
                                var DisplayContentNews = false;

                                /*
                                 * Configuration du lien de retour 
                                 * BackNewsImg = image qui sera dans le lien de retour. Peux etre vide, dans ce cas la il y aura juste du texte
                                 * BackNewsTxt = texte qui sera dans le lien de retour. Peux etre vide, dans ce cas la il y aura juste une image
                                 * BackNewsLink = Lien de la page qui contient les nouvelles
                                 */
                                var BackNewsImg = '';
                                var BackNewsTxt = '';
                                var BackNewsLink = BurliTab[1];

                               //Appel du script
                               //DO NOT TOUCH
                               var BackNews = [];
							   BackNews[0] = BackNewsImg;
							   BackNews[1] = BackNewsTxt;
							   BackNews[2] = BackNewsLink;
                               getBurli(NbNewsDisplay,DisplayNewsTemplate,MoreNewsLink,DisplayDateNews,DisplayContentNews,MoreNewsLink,BackNews);

                               BurliDivTeaser = '</span></td></tr></table>';
                               document.write(BurliDivTeaser);
                               document.write('</div></div>');
                }

                if(MeteoTab[0])
                {
                             //Meteo
                             var urlXml = 'http://amri.ca/MeteoAstral/' + MeteoTab[2] + '.xml';
                             xmlDoc=loadXMLDoc("/EI/SharedObjects/Handlers/ProxyHandler.ashx?url=" + urlXml);
							 if(xmlDoc == null)
                             {							 
							 	document.write('<div id="' + idItemTe + nbDivRot + '" class="' + classItemTe + '"><div class="' + contentTe + '">');
                               var meteoDiv = '<table class="tabMeteo" onclick=\'window.location.href="' + MeteoTab[1] + '";\' style="cursor:pointer"><tr><td colspan="2">';
                               if(langWebsite == 'fr') { meteoDiv += '<span class="villeMeteo">Condition Actuelle</span></td></tr><tr><td class="imageMeteo">';
							   } else { meteoDiv += '<span class="villeMeteo">Current Weather</span></td></tr><tr><td class="imageMeteo">'; }
                               meteoDiv += '<img width="80px;" height="80px" src="http://montreal.radionrj.ca/Pics/Meteo/img/unknown.png" />';
                               meteoDiv += '</td><td valign="top" class="condition"><span class="Temperature">';
                               meteoDiv += '-</span><span style="vertical-align:text-top;">&ordm;C</span>';
                               
                               meteoDiv += '</td></tr></table>';
                               document.write(meteoDiv);
                               document.write('</div></div>');
							 }
							 else if(!xmlDoc.getElementsByTagName("OBS")[0])							 
							 {								 
								 document.write('<div id="' + idItemTe + nbDivRot + '" class="' + classItemTe + '"><div class="' + contentTe + '">');
                               var meteoDiv = '<table class="tabMeteo" onclick=\'window.location.href="' + MeteoTab[1] + '";\' style="cursor:pointer"><tr><td colspan="2">';
                               if(langWebsite == 'fr') { meteoDiv += '<span class="villeMeteo">Condition Actuelle</span></td></tr><tr><td class="imageMeteo">';
							   } else { meteoDiv += '<span class="villeMeteo">Current Weather</span></td></tr><tr><td class="imageMeteo">'; }
                               meteoDiv += '<img width="80px;" height="80px" src="http://montreal.radionrj.ca/Pics/Meteo/img/unknown.png" />';
                               meteoDiv += '</td><td valign="top" class="condition"><span class="Temperature">';
                               meteoDiv += '-</span><span style="vertical-align:text-top;">&ordm;C</span>';
                               
                               meteoDiv += '</td></tr></table>';
                               document.write(meteoDiv);
                               document.write('</div></div>');							 
							 }
							 else
							 {
								 var CA = xmlDoc.getElementsByTagName("OBS")[0];
							
                               nbDivRot++;

                               document.write('<div id="' + idItemTe + nbDivRot + '" class="' + classItemTe + '"><div class="' + contentTe + '">');
                               var meteoDiv = '<table class="tabMeteo" onclick=\'window.location.href="' + MeteoTab[1] + '";\' style="cursor:pointer"><tr><td colspan="2">';
                               if(langWebsite == 'fr') { meteoDiv += '<span class="villeMeteo">Condition Actuelle</span></td></tr><tr><td class="imageMeteo">';
							   } else { meteoDiv += '<span class="villeMeteo">Current Weather</span></td></tr><tr><td class="imageMeteo">'; }
                               meteoDiv += '<img width="80px;" height="80px" src="http://montreal.radionrj.ca/Pics/Meteo/img/' + CA.getAttribute("ICON") + '.png" />';
                               meteoDiv += '</td><td valign="top" class="condition"><span class="Temperature">';
                               meteoDiv += CA.getAttribute("TEMPERATURE") + '</span><span style="vertical-align:text-top;">&ordm;C</span>';
                               if(langWebsite == 'fr') { meteoDiv += '<br><span class="Temps">' + CA.getAttribute("FORECAST_TEXT_FR") + '</span>'; }
                               meteoDiv += '</td></tr></table>';
                               document.write(meteoDiv);
                               document.write('</div></div>');	
							 }
                }

                document.write('</div></div>');

                if (DirectionRotator == 'fade')
                {
                               var VarCount = nbDivRot;
                               var idFadeV = idItemTe;

                               for (x=1; x<nbDivRot; x++) 
                               {
                                               Efface(idItemTe + x);
                               }

                               function ChangeTeaser ()
                               {
                                               var teaserId = idFadeV + VarCount;
                                               FadeOpacity(teaserId, 100, 0, 1000, 10);
                                               document.getElementById(teaserId).style.display = 'none';
                                               VarCount ++;
                                               if (VarCount == nbDivRot+1) { VarCount = 1; }
                                               teaserId = idFadeV + VarCount;
                                               document.getElementById(teaserId).style.display = 'block';
                                               FadeOpacity(teaserId, 0, 100, 1000, 10);

                               }

                               setInterval(function() {ChangeTeaser();}, TimeOutRotator);
                }
}

jQuery.fn.onImagesLoaded = function(_cb) { 
  return this.each(function() {
 
    var $imgs = (this.tagName.toLowerCase()==='img')?$(this):$('img',this),
        _cont = this,
            i = 0,
    _done=function() {
      if( typeof _cb === 'function' ) _cb(_cont);
    };
 
    if( $imgs.length ) {
      $imgs.each(function() {
        var _img = this,
        _checki=function(e) {
          if((_img.complete) || (_img.readyState=='complete'&&e.type=='readystatechange') )
          {
            if( ++i===$imgs.length ) _done();
          }
          else if( _img.readyState === undefined ) // dont for IE
          {
            $(_img).attr('src',$(_img).attr('src')); // re-fire load event
          }
        }; // _checki \\
 
        $(_img).bind('load readystatechange', function(e){_checki(e);});
        _checki({type:'readystatechange'}); // bind to 'load' event...
      });
    } else _done();
  });
};

function html_entity_decode(str) {
  var ta=document.createElement("textarea");
  ta.innerHTML=str.replace(/</g,"&lt;").replace(/>/g,"&gt;");
  return ta.value;
}
