// reload (not convert) with UTF-8 encoding  (if necessary)

function evt(t,ds,de,a,f){this.Title=t;this.Start=ds;this.End=de;this.Anchor=a;this.Full=f;}
function course(t,tc,ds,de,l){this.Title=t;this.TitleCn=tc;this.Start=ds;this.End=de;this.Link=l}
var mname=[]
mname['en']=['Jan.','Feb.','Mar.','Apr.','May','June','July','Aug.','Sep.','Oct.','Nov.','Dec.'];
mname['fr']=['janv.','f&eacute;vr.','mars','avr.','mai','juin','juil.','ao&ucirc;t','sept.','oct.','nov.','d&eacute;c.'];
mname['es']=['ene.','feb.','mar.','abr.','mayo','jun.','jul.','ago.','sep.','oct.','nov.','dic.'];

var Course=[], Events=[];
// paste updated lists here

Course.push( new course('FMPR','现代继电保护基础','1/19/2010','1/22/2010','courses/fmpr.htm') );
Course.push( new course('Motors','电机保护','2/9/2010','2/11/2010','courses/motor.htm') );
Course.push( new course('EnerVista','','2/12/2010','2/12/2010','courses/viewpoint.htm') );
Course.push( new course('IEC61850','IEC 61850介绍','2/23/2010','2/25/2010','courses/IEC61850.htm') );
Course.push( new course('UR Platform','UR 万能继电器','4/12/2010','4/14/2010','courses/ur-platform.htm') );
Course.push( new course('FMPR','现代继电保护基础','4/19/2010','4/22/2010','courses/fmpr.htm') );
Course.push( new course('IEC61850','IEC 61850介绍','5/4/2010','5/6/2010','courses/IEC61850.htm') );
Course.push( new course('UR Applications','UR 高级应用','5/10/2010','5/14/2010','courses/ur-apps.htm') );
Course.push( new course('Distribution','配电馈线管理','5/17/2010','5/19/2010','courses/dist.htm') );
Course.push( new course('Motors','电机保护','6/8/2010','6/10/2010','courses/motor.htm') );
Course.push( new course('EnerVista','','6/11/2010','6/11/2010','courses/viewpoint.htm') );
Course.push( new course('UR Platform','UR 万能继电器','6/21/2010','6/23/2010','courses/ur-platform.htm') );

Events.push( new evt('DistribuTech','3/23/2010','3/25/2010','DTECH','DistribuTECH Conference 2010') )
Events.push( new evt('APPA','3/28/2010','3/31/2010','APPA','APPA Engineering & Operations Technical Conference') )
Events.push( new evt('IEEE IAS','3/28/2010','4/1/2010','IEEEIAS','IEEE IAS Cement Industry Technical Conference') )
Events.push( new evt('Texas A&M','3/29/2010','4/1/2010','TexasAM','Texas A&M Protective Relay Conference') )
Events.push( new evt('WPDAC','4/13/2010','4/15/2010','WPDAC','Western Power Delivery Automation Conference (WPDAC)') )
Events.push( new evt('PES T&D Expo','4/19/2010','4/20/2010','IEEEPES','IEEE PES Transmission & Distribution (T&D) Conference & Exposition') )
Events.push( new evt('Georgia Tech','5/5/2010','5/7/2010','GeorgiaTec','64th Annual Georgia Tech Protective Relaying Conference') )
Events.push( new evt('CIM Conf & Expo','5/9/2010','5/11/2010','CIM','27th Canadian Institute of Mining & Metallurgy (CIM) Conference & Exposition') )
Events.push( new evt('Rural Elec. Pwr','5/16/2010','5/19/2010','IEEERural','IEEE Rural Electric Power Conference') )
Events.push( new evt('APPA Power Expo','6/19/2010','6/23/2010','APPA','2010 APPA Public Power Expo') )
Events.push( new evt('IEEE PPIC','6/21/2010','6/23/2010','PPIC','56th Annual IEEE PPIC 2010') )
Events.push( new evt('SEE 2010','6/23/2010','6/25/2010','SEE2010','Southeast Electric Exchange 2010') )
Events.push( new evt('Cdn Util Show','9/14/2010','9/15/2010','CanUtils','Canadian Utilities Equipment & Engineering Show') )
Events.push( new evt('PCIC 2010','9/20/2010','9/22/2010','PCIC','IEEE IAS Petroleum and Chemical Industry Committee (PCIC 2010)') )
Events.push( new evt('Southeast Conf','9/20/2010','9/23/2010','SDAschool','Southeastern Distribution Apparatus School & Conference') )
Events.push( new evt('Iowa/Nebraska Co','10/12/2010','10/14/2010','INSysConf','32nd Annual Iowa/Nebraska System Protection & Substation Conference') )
Events.push( new evt('WPRC 2010','10/17/2010','10/21/2010','WPRC','37th Annual Western Protective Relay Conference (WPRC) 2010') )
Events.push( new evt('MIPSYCON','11/2/2010','11/4/2010','MIPSYCON','46th Annual Minnesota Power Systems Conference (MIPSYCON) 2010') )

function DateSer(d)	// ensure d/m/y is interpreted correctly on user's system
{	if (typeof(d) != 'string') return d;var ary=d.split('/');return new Date(ary[2], eval(ary[0])-1, ary[1]); }

function GetMonth(d, lang)		// fetch name of month in appropriate language
{	if (lang=='') lang='en';var m=DateSer(d).getMonth();return mname[lang][m]; }

function MakeDateRange(s, e, lang)
{	var tmp='';	s=DateSer(s); if (e) e=DateSer(e);
	switch(lang)
	{
	case '':  case 'en':
        tmp += GetMonth(s, lang) + " " + s.getDate() + (lang=='cn'? sCnDay: "")
		if (e && (s<e||s>e)) {
            tmp += "-"
			if (s.getMonth() != e.getMonth())tmp +=  GetMonth(e, lang) + " "
            tmp += e.getDate() + (lang == "cn"? sCnDay: "")
		}
		break;
	case "fr":	case 'es':	// month is after day #
        tmp = s.getDate();
		if (e && (s<e || s>e))	{	// because, can't compare equality between 2 Date objects
			if (s.getMonth() != e.getMonth()) tmp += " " + GetMonth(s, lang)
            tmp += "-" + e.getDate() + " " + GetMonth(e, lang)
		} else tmp += ' ' + GetMonth(s,lang);
	}
    return tmp
}

function ShowEventList( lang)
{
var tmp='', i, count=0;
var sMonth 
var today=new Date();
var hdr = '<div style="margin-bottom: 3px;"><b><span class="quickLinks">&nbsp;&nbsp;</span></b><a href="pr/conflist.htm"><span class="normalLink"><b>Events</b></span><img src="images/home/arrowblock.gif" width="16" height="11" border="0" align="absmiddle"></a></div>';
var first=true;
if(lang)switch(lang){
	case 'fr':
		hdr = '<div style="margin-bottom: 3px;"><b><span class="quickLinks">&nbsp;&nbsp;</span></b><a href="pr/conflist.htm"><span class="normalLink"><b>Événements</b></span><img src="images/home/arrowblock.gif" width="16" height="11" border="0" align="absmiddle"></a></div>';
		break;
	case 'es':
		hdr = '<b><font color="#008AE6"></font><span class="quickLinks">&nbsp;&nbsp;<img src="images/arrowBlue.gif" width="3" height="5" align="absmiddle"></span> <a href="pr/conflist.htm">Próximos Eventos </a></b> <br>';
		break;
}
		document.write(hdr);
for (i=0; i<Events.length; i++)
{

	if (DateSer(Events[i].Start) <= today) continue
	count++;

	var sLink = '<A href="'+(Events[i].Anchor.indexOf('/')!=-1?Events[i].Anchor:'pr/conflist.htm#' + Events[i].Anchor)+'"'+ (Events[i].Full?'title="'+Events[i].Full+'"':'') + '>'
    document.write( '&nbsp;&nbsp;&nbsp;&nbsp;<img src="images/arrowBlue.gif" width="3" height="5" align="absmiddle"> '+sLink +  Events[i].Title.replace(/&/g,'&amp;')  + '</a>: ')
	document.write(sLink+'<span class=normal>');
    document.write(MakeDateRange(Events[i].Start, Events[i].End, lang));
	document.write('</span></a>');
    if (count < 3) document.writeln( "<BR>"); else break;
}
/*if(count==0)switch(GetCookie("MHPlanguage")) {
	case null:
	case '': case 'en':	document.write('&nbsp;&nbsp;&nbsp;&nbsp;No upcoming events'); break;
	case 'fr': document.write('&nbsp;&nbsp;&nbsp;&nbsp;Aucun événement'); break;
	case 'es': document.write ('&nbsp;&nbsp;&nbsp;&nbsp;Ninguno próximo evento ');
}*/
}

function ShowCourseList( lang, nolink, iMax)
{
var tmp='', i, count=0, sMonth, today=new Date();
if (!iMax) iMax=4;
for (i=0; i<Course.length; i++) {
	if (DateSer(Course[i].Start) <= today) continue
	count++;
	var sLink = (nolink||Course[i].Link==''?'':'<A href="support/training/' + Course[i].Link + '">')
    document.write( '&nbsp;&nbsp;&nbsp;&nbsp;<img src="images/arrowBlue.gif" width="3" height="5" align="absmiddle"> '+sLink + (lang=='cn'&&Course[i].TitleCn?Course[i].TitleCn:Course[i].Title.replace(/&/g,'&amp;'))  + (sLink.charAt(0)=='<'?'</a>':'') + ':')
	document.write(sLink+'<span class=normal>');
    document.write(MakeDateRange(Course[i].Start, Course[i].End, lang));
	document.write('</span>' + (sLink.charAt(0)=='<'?'</a>':''));
    if (count < iMax) document.writeln( "<BR>"); else break;
}
}

var  animtimer=null;;
function NextSpot(which) {
	var tmp=curbanner, i;
	clearInterval(animtimer);
	if (!which) tmp++; else if (which==-1) tmp--; else tmp=which;
	if (tmp<1) tmp=banners; else if (tmp>banners) tmp=1;
	curbanner = tmp;
	for (i=1; i<=banners; i++) {
		var obj = document.getElementById?document.getElementById("BANNER"+i):document.all['BANNER'+i];
		if(obj)obj.style.display = i==curbanner?'':'none';
	}
}

function Animate() {	
	var obj, i;
	if (++curbanner > banners) curbanner = 1;
	for (i=1; i<=banners; i++) {
		var obj = document.getElementById?document.getElementById("BANNER"+i):document.all['BANNER'+i];
		if(obj)obj.style.display = i==curbanner?'':'none';
	}
	animtimer = setTimeout("Animate()", 7500);
}
function InitAnimate() { if (banners>1 && document.getElementById || document.all) animtimer = setTimeout("Animate()", 15000); }

function OutputEvent(ary) {
	var ex=GetCookie('CE');
	if (!isNaN(parseInt(ex))) {
		ex = parseInt(ex);
		ex++
	} else ex = new Date().getMinutes() % ary.length;
	if (ex >= ary.length) ex=0;
	document.write(ary[ex]);
	var mat = document.location.pathname.match(/^(\/[^\/]+)/);
	if (!mat) {mat=[]; mat[1]='/';}
	document.cookie = "CE="+ex+"; path="+mat[1]
}