// reload UTF-8 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=[], trans_home
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.'];
mname['ch']=['1&#26376;','2&#26376;','3&#26376;','4&#26376;','5&#26376;','6&#26376;','7&#26376;','8&#26376;','9&#26376;','10&#26376;','11&#26376;','12&#26376;'];
var sCnDay='&#26085;';
//alert(mname)

var Course=[], Events=[];
// paste updated lists here

Course.push( new course('IEC61850','IEC 61850介绍','3/5/2012','3/7/2012','courses/IEC61850.htm') );
Course.push( new course('D20/D200','','3/12/2012','3/16/2012','../../../substationautomation/training/d20_training.htm') );
Course.push( new course('D400 Essentials','','3/27/2012','3/29/2012','../../../substationautomation/training/d400_training.htm') );
Course.push( new course('DNP3 I/O Modules','','4/12/2012','4/12/2012','../../../substationautomation/training/dnp_training.htm') );
Course.push( new course('D25 with ConfigPro','','4/16/2012','4/20/2012','../../../substationautomation/training/d25_training.htm') );
Course.push( new course('iBox with ConfigPro','','4/23/2012','4/27/2012','../../../substationautomation/training/ibox_training.htm') );
Course.push( new course('IEC61850','IEC 61850介绍','5/2/2012','5/4/2012','courses/IEC61850.htm') );
Course.push( new course('FMPR','现代继电保护基础','5/7/2012','5/10/2012','courses/fmpr.htm') );
Course.push( new course('UR Applications','UR 高级应用','5/7/2012','5/11/2012','courses/ur-apps.htm') );
Course.push( new course('Distribution','配电馈线管理','5/16/2012','5/18/2012','courses/dist.htm') );
Course.push( new course('Motors','电机保护','6/4/2012','6/6/2012','courses/motor.htm') );
Course.push( new course('EnerVista','','6/7/2012','6/8/2012','courses/viewpoint.htm') );
Course.push( new course('D20/D200','','6/11/2012','6/15/2012','../../../substationautomation/training/d20_training.htm') );
Course.push( new course('D400 Essentials','','6/26/2012','6/28/2012','../../../substationautomation/training/d400_training.htm') );
Course.push( new course('DNP3 I/O Modules','','7/12/2012','7/12/2012','../../../substationautomation/training/dnp_training.htm') );
Course.push( new course('D25 with ConfigPro','','7/16/2012','7/20/2012','../../../substationautomation/training/d25_training.htm') );
Course.push( new course('FMPR','现代继电保护基础','7/16/2012','7/20/2012','courses/fmpr.htm') );
Course.push( new course('D400 Essentials','','7/23/2012','7/25/2012','../../../substationautomation/training/d400_training.htm') );
Course.push( new course('D400 Essentials','','8/8/2012','8/10/2012','../../../substationautomation/training/d400_training.htm') );
Course.push( new course('D25 with ConfigPro','','8/13/2012','8/17/2012','../../../substationautomation/training/d25_training.htm') );
Course.push( new course('D20/D200','','8/20/2012','8/24/2012','../../../substationautomation/training/d20_training.htm') );
Course.push( new course('Distribution','配电馈线管理','8/28/2012','8/30/2012','courses/dist.htm') );
Course.push( new course('FMPR','现代继电保护基础','9/11/2012','9/14/2012','courses/fmpr.htm') );
Course.push( new course('Motors','电机保护','9/24/2012','9/26/2012','courses/motor.htm') );
Course.push( new course('EnerVista','','9/27/2012','9/28/2012','courses/viewpoint.htm') );
Course.push( new course('IEC61850','IEC 61850介绍','10/2/2012','10/4/2012','courses/IEC61850.htm') );
Course.push( new course('UR Applications','UR 高级应用','10/22/2012','10/26/2012','courses/ur-apps.htm') );
Course.push( new course('D20/D200','','10/29/2012','11/2/2012','../../../substationautomation/training/d20_training.htm') );
Course.push( new course('FMPR','现代继电保护基础','11/12/2012','11/15/2012','courses/fmpr.htm') );
Course.push( new course('Motors','电机保护','12/3/2012','12/5/2012','courses/motor.htm') );
Course.push( new course('EnerVista','','12/6/2012','12/7/2012','courses/viewpoint.htm') );

Events.push( new evt('SME Meeting','2/19/2012','2/22/2012','2012-2','Society of Mining, Metallurgy & Exploration (SME) Annual Meeting') )
Events.push( new evt('PowerTest 2012','2/27/2012','3/1/2012','2012-2','') )
Events.push( new evt('MCI Energy Summit','2/29/2012','','2012-2','MCI West 2012 Energy Summit') )
Events.push( new evt('SynchroPhasor Initiative','2/29/2012','3/1/2012','2012-2','North American SynchroPhasor Initiative Working Group Meeting') )
Events.push( new evt('TechAdvantage Expo 2012','3/6/2012','3/9/2012','2012-3','') )
Events.push( new evt('WA Hands-on Relay School','3/12/2012','3/16/2012','2012-3','29th Annual Washington State University Hands-on Relay School 2012') )
Events.push( new evt('Relaying Short Course','3/13/2012','3/15/2012','2012-3','Midwestern Protective Relaying Short Course') )
Events.push( new evt('Clemson PSC 2012','3/13/2012','3/16/2012','2012-3','10th Annual Clemson Power Systems Conference 2012') )
Events.push( new evt('Power Delivery Conference','3/27/2012','3/29/2012','2012-3','Western Power Delivery Automation Conference') )
Events.push( new evt('Texas A&M Conference','4/2/2012','4/5/2012','2012-4','65th Annual Texas A&M Conference for Protective Relay Engineers') )
Events.push( new evt('IEEE Rural Conference','4/15/2012','4/18/2012','2012-4','IEEE Rural Electric Conference 2012') )
Events.push( new evt('Dist Auto 2012','4/17/2012','4/18/2012','2012-4','Distribution Automation 2012') )
Events.push( new evt('GeorgiaTech','4/24/2012','4/26/2012','2012-4','66th Annual GeorgiaTech Protective Relaying Conference 2012') )
Events.push( new evt('CIM Conference','5/6/2012','5/9/2012','2012-5','Canadian Institute of Mining (CIM) Conference and Exhibition 2012') )
Events.push( new evt('IEEE T&D Conference','5/7/2012','5/10/2012','2012-5','2012 IEEE Power & Energy Society Transmission and Distribution Conference and Exposition') )
Events.push( new evt('IEEE-IAS/PCA Tech Conf.','5/13/2012','5/17/2012','2012-5','54th IEEE-IAS/PCA Cement Industry Technical Conference') )
Events.push( new evt('OCE Discovery \'12','5/14/2012','5/15/2012','2012-5','Ontario Centre of Excellence (OCE\'s) Discovery \'12') )
Events.push( new evt('NASPI Group Meeting','6/6/2012','6/7/2012','2012-6','NASPI Work Group Meeting') )
Events.push( new evt('IEEE Pulp&Paper','6/17/2012','6/21/2012','2012-6','58th IEEE/IAS Pulp & Paper Industry Conference (PPIC) 2012') )
Events.push( new evt('EU PCIC Apps Conference','6/19/2012','6/21/2012','2012-6','9th PCIC Europe Electrical and Instrumentation Applications Conference') )
Events.push( new evt('SEE 2012','6/20/2012','6/22/2012','2012-6','Southeastern Electrical Exchange (SEE) 2012') )
Events.push( new evt('GovEnergy 2012','8/19/2012','8/21/2012','2012-8','') )
Events.push( new evt('CIGRÉ Exhibition','8/26/2012','8/31/2012','2012-8','CIGRÉ Technical Exhibition – Session 44') )
Events.push( new evt('System P&S Conference','9/11/2012','9/13/2012','2012-9','36th Annual Iowa/Nebraska System Protection and Substation Conference') )
Events.push( new evt('IEEE PCIC 2012','9/23/2012','9/25/2012','2012-9','IEEE/IAS Petro-Chemical Industrial Conference (PCIC) 2012') )
Events.push( new evt('CIGRÉ Canada','9/24/2012','9/26/2012','2012-9','CIGRÉ Canada 2012') )
Events.push( new evt('MINExpo','9/24/2012','9/26/2012','2012-9','MINExpo INTERNATIONAL 2012') )
Events.push( new evt('Apparatus School','9/24/2012','9/27/2012','2012-9','Southeastern Distribution Apparatus School & Conference') )
Events.push( new evt('WPRC 2012','10/16/2012','10/18/2012','2012-10','Western Protective Relay Conference 2012') )
Events.push( new evt('MIPSYCON 2012','11/5/2012','11/7/2012','2012-11','Minnesota Power Systems Conference (MIPSYCON) 2012') )

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': case null:
        tmp += GetMonth(s, lang) + " " + s.getDate() + (lang=='ch'? sCnDay: "")
		if (e && (s<e||s>e)) {
            tmp += "-"
			if (s.getMonth() != e.getMonth())tmp +=  GetMonth(e, lang) + " "
            tmp += e.getDate() + (lang == "ch"? 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);
		break;
	case 'ch': 
        tmp += GetMonth(s, lang) + s.getDate() + (lang=='ch'? sCnDay: "")
		if (e && (s<e||s>e)){
            tmp += "-"
			if (s.getMonth() != e.getMonth()) tmp +=  GetMonth(e, lang) + " "
            tmp += e.getDate() + (lang == "ch"? sCnDay: "")
		}
		break;	
	}
    return tmp
}

if(window.jQuery)jQuery(document).ready( function(){ setTimeout('EVEarrInit()',0); });
function EVEarrInit() {
	if ($('#EVE').length==0) return;
	var newLang = getLang();
	//newLang = 'ch';
	var today=new Date();
	var cnt =0;
	var i;
	var hdr = '<div id="EVEwrap" style="left:-3000px; top:0px;">'+
			'<table style="border-left:1px solid #CCC; border-right:1px solid #CCC;border-bottom:1px solid #CCC;border-top:1px solid #CCC;" width="340" height="100" cellpadding="0" cellspacing="0" >'+
			'<TR><td style="padding:10px 0px 3px 15px;"><b><a href="'+Uprefix+'multilin/EventCalendar.htm">Events</a></b></td><td width="20">&nbsp;</td><td style="padding-top:10px;padding-bottom:3px;"><b><a href="'+Uprefix+'multilin/support/training/schedule.htm">Training</a><b></td></tr>' 
	hdr += '<TR><td style="padding-left:15px;" valign=top align=left>'
	for (i=0; i<Events.length; i++) {
		if (DateSer(Events[i].End) <= today) continue
		cnt++;
		hdr += '<a href="'+Uprefix+'multilin/EventCalendar.htm#'+Events[i].Anchor+'" '+(Events[i].Full?'title="'+Events[i].Full+'"':'')+'>'+Events[i].Title+': '+MakeDateRange(Events[i].Start,Events[i].End,newLang)+'</a>'
		if (cnt<5) hdr+='<BR/>'; else break;
	}
	hdr+='</td>'
	hdr+='<td width="20">&nbsp;</td><td valign=top align=left>'
	cnt=0;
	for (i=0; i<Course.length; i++) {
		if (DateSer(Course[i].Start) <= today) continue
		cnt++;
		//document.write(sLink + (lang=='ch'&&Course[i].TitleCn?Course[i].TitleCn:Course[i].Title.replace(/&/g,'&amp;'))   + ': ')
		
		hdr += '<a href="'+(Course[i].Link.substr(0,4)=='http'?Course[i].Link:Course[i].Link.charAt(0)=='/'?Uprefix+Course[i].Link.substr(1):Uprefix+'multilin/support/training/'+Course[i].Link)+'">'+(newLang=='ch'&&Course[i].TitleCn?Course[i].TitleCn:Course[i].Title)+': '+MakeDateRange(Course[i].Start,Course[i].End,newLang)+'</a>'
		if (cnt<5) hdr+='<BR/>';else break;
	}
	hdr += '</td></tr>'
	hdr += '<TR><td>&nbsp;</td></tr>'
	hdr += '</table></div>';

	$('body').append(hdr);

	if (typeof(EVEinit)=='function') EVEinit();
	 
}
function getLang()
{
	function GetCookie (name) {
		var arg = new RegExp('; ' + name + "=([^;]*)")
		if (('; '+document.cookie).match(arg))
			return unescape(RegExp.$1);
		else
			return null;
	}

	var l_lang 
	if (document.location.pathname.match(/^(\/digitalenergy)?(\/..)\/.*/)) {l_lang = RegExp.$2.substr(1);}
	else
	l_lang= GetCookie("DEpreflang") || navigator.browserLanguage || navigator.language || 'en'
	l_lang = l_lang.substr(0,2)
	if (l_lang == 'zh') l_lang = 'ch'
 	return l_lang
}

function ShowEventList( lang , nolink)
{
	var tmp='', i, count=0, iMax=2	// max listed - if < max listed in Events, then more Training will be shown
	var sMonth 
	var today=new Date();
	var hdr 
	var first=true;
	//alert(lang);
	//if (!Uprefix) Uprefix=document.domain.toLowerCase().indexOf('gedigitalenergy.com')!=-1?'/':'/digitalenergy'
	if(lang)switch(lang.toLowerCase()){
		case 'en': case 'fr': case 'ch': lang=lang.toLowerCase(); break;	// OK
		default: lang='en';
	} else lang='en'
	hdr = '<div style="margin-bottom: 1px;"><a href="'+Uprefix+'multilin/EventCalendar.htm"><span class="normalLink">'+__('Events',lang)+'</span></a></div>';
	document.write(hdr);
	for (i=0; i<Events.length; i++) {
		if (DateSer(Events[i].End) <= today) continue
		count++;
		var sLink = '<A href="'+(Events[i].Anchor.indexOf('/')!=-1?Events[i].Anchor:'EventCalendar.htm#' + Events[i].Anchor)+'"'+ (Events[i].Full?'title="'+Events[i].Full+'"':'') + '>'
		document.write( sLink +  Events[i].Title.replace(/&/g,'&amp;')  + ': ')
		document.write('<span class=normal>');
		document.write(MakeDateRange(Events[i].Start, Events[i].End, lang));
		document.write('</span></a>');
		if (count < iMax) document.writeln( "<BR>"); else break;
	}
	if(count==0) {
		document.write('<span class=bodyfont>'+__('Listing temporarily unavailable',lang)+'</span>')
		count=1
	}
	iMax += iMax-count;

	tmp=''; count=0
	hdr = '<div style="margin-bottom: 1px;margin-top:5px;"><a href="'+Uprefix+'multilin/support/training/schedule.htm"><span class="normalLink">Training</span></a></div>';
	document.writeln(hdr)
	for (i=0; i<Course.length; i++) {
		if (DateSer(Course[i].Start) <= today) continue
		count++;
		var sLink = (nolink||Course[i].Link==''?'':'<A href="' + (Course[i].Link.substr(0,4)=='http'?Course[i].Link:'support/training/' + Course[i].Link) + '">')
		document.write(sLink + (lang=='ch'&&Course[i].TitleCn?Course[i].TitleCn:Course[i].Title.replace(/&/g,'&amp;'))   + ': ')
		document.write('<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;
	}
	if(count==0)document.write('<span class=bodyfont>'+__('Listing temporarily unavailable',lang)+'</span>'); 

}

trans_home={'Events':{'fr':"évènements", 'es':"Eventos", 'ch':"近期培训课程"},
			'Listing temporarily unavailable':{'fr':'Liste temporairement indisponible', 'es':'Listado indisponible temporalmente', 'ch':"上市暂时无法使用"}
};
function __(msg,lang)
{
	if (!lang||lang=='en'||!trans_home[msg]||!trans_home[msg][lang]) return msg
	return trans_home[msg][lang]
}


