﻿keyword="";
curcat =0;
cursubcat =0;
curno= -1;
curLanguage = 0;
baseurl = "/app_templates/corepagelets/TRAININGcenter/"
link="http://videos.altium.com/trainingcenter/player.html?ep=";

languages = new Array("","_de","_cn","_fr","_jp","_kr");
contentXML = "videos.xml";

label1 = new Array("Training Videos","Trainings videos","培训视频","Vidéos de formation","トレーニングビデオ","교육 동영상");

label2 = new Array("With over 100 videos on offer, find out how to get up and running with Altium Designer as quickly as possible. <br><br>Each video runs for around 5 minutes (about the length of a coffee break) and provides in-depth and practical discussions of how to use Altium Designer to solve common design challenges.",
"Diese Videos wurden erstellt, damit Sie so schnell wie möglich mit Altium Designer loslegen können. <br><br>Jedes Video dauert etwa 5 Minuten (also nicht länger, als eine Kaffeepause) und zeigt auf detaillierte und anschauliche Art und Weise, wie sich gängige Designaufgaben mit Altium Designer erledigen lassen.",
"我们为您提供100多个培训视频，便于您快速了解和使用 Altium Designer。<br><br>每个视频约持续5分钟，对如何运用 Altium Designer 解决设计常见难题进行了深入实际地讨论。",
"Grâce à plus de 100 vidéos proposées, atteignez rapidement votre vitesse de croisière avec Altium Designer. <br><br>Chaque vidéo dure environ 5 minutes (soit la durée d’une pause café) et vous donne une présentation pratique approfondie des fonctions d’Altium Designer pour vous aider à résoudre des défis de conception très courants.",
"100本以上のビデオを用意しておりますから、Altium Designerを使って作業効率を上げる方法をすぐに見つけられます。<br><br>ビデオ一つ一つは5分ほどの長さで（休憩時間程度の長さ）、Altium Designerを使ってよくある設計上の課題を解決する方法について掘り下げた実践的な内容を紹介しています。",
"With over 100 videos on offer, find out how to get up and running with Altium Designer as quickly as possible. <br><br>Each video runs for around 5 minutes (about the length of a coffee break) and provides in-depth and practical discussions of how to use Altium Designer to solve common design challenges.");


label3 = new Array("For more in-depth training or for answers to specific questions please contact your nearest <a href='http://www.altium.com/Contacts/'>Sales and Support Center</a> or visit our <a href='http://www.altium.com/SUPPORTcenter/'>SUPPORTcenter</a> for access to further help resources.",
"Für ein ausführlicheres Training oder zur Beantwortung spezifischer Fragen wenden Sie sich bitte an das <a href='http://www.altium.com/Contacts/'>Sales and Support Center</a> in Ihrer Nähe oder besuchen Sie unser <a href='http://www.altium.com/SUPPORTcenter/'>SUPPORTcenter</a>. Dort finden Sie weitere Hilfe-Ressourcen.",
"欲了解更多的深度培训或咨询具体问题，请与离您最近的<a href='http://www.altium.com/Contacts/'>销售和支持中心</a>联系或访问我们的<a href='http://www.altium.com/SUPPORTcenter/'>SUPPORTcenter</a>，以获取更多的帮助资源。",
"Pour une formation plus approfondie ou pour obtenir la réponse à des questions spécifiques, veuillez contacter votre <a href='http://www.altium.com/Contacts/'>centre local de ventes et de support</a> ou visiter notre <a href='http://www.altium.com/SUPPORTcenter/'>SUPPORTcenter</a> pour encore plus d'aides.",
"より詳細なトレーニングおよび具体的な質問をご希望の方は、<a href='http://www.altium.com/Contacts/'>Altiumセールス &amp; サポートセンター</a>までお問い合わせ下さい。また追加情報は<a href='http://www.altium.com/SUPPORTcenter/'>SUPPORTcenter</a>で入手して下さい。",
"깊이 있는 교육이나 특정 질문에 대한 답변이 필요하면 가까운 <a href='http://www.altium.com/Contacts/'>판매 및 지원 센터</a> 연락하거나 당사의 <a href='http://www.altium.com/SUPPORTcenter/'>SUPPORTcenter</a> 를 방문하여 추가 도움말 리소스에 대한 액세스 권한을 요청하십시오.");

label4 = new Array("Search for video","Video suchen","搜索视频","Search for video","ビデオの検索");

label5 = new Array("Search","Suchen","搜索","Rechercher","検索","검색");

label6 = new Array("Clear","Löschen","清除","Effacer","クリア","취소");

label7 = new Array("Browse training videos","Browse training videos","浏览培训视频","Browse training videos","Browse training videos","Browse training videos");

label8 = new Array("Where do you want to go?","Wohin möchten Sie gehen?","查找的类别是什么?","Où voulez-vous aller ?","カテゴリを選択してください。","Where do you want to go?");

label9 = new Array("What is the topic?","Was ist das Thema?","主题是什么?","Quel est le sujet ?","トピックを選択してください。","What is the topic?");

label10 = new Array("What is your question?","Wie lautet Ihre Frage?","您的问题是什么?","Quelle est votre question ?","質問内容を選択してください。","What is your question?");

label11 = new Array("Displaying","Es werden","搜寻到","Affichage de","つの検索結果","Displaying");

label12 = new Array("results","Ergebnisse angezeigt.","个结果","résultats en cours.","を表示しています。","results");

label13 = new Array("Last updated:","Letzte Aktualisierung:","更新日期:","Dernière mise à jour:","最終更新日:","Last updated:");

label14 = new Array("Play Video","Video starten","播放","Lire la vidéo","ビデオ再生","Play Video");

label15 = new Array("Back to video list","Zurück zur Videoliste","返回列表","Retour à la liste des vidéos","ビデオリストに戻る","Back to video list");

function loadByLanguage(lan){
	if (lan >5)
		lan = 0;
	
	curLanguage = lan;
	ShowLoading();
	
	$.ajax({
			type: "GET",
			async: true,
			url: baseurl + "data/contents/xml/" + contentXML,
			dataType: "xml",
			success: function(xmlData)
			{
				xmlDataSet = xmlData;
				showSearch();
				InitXMLData();
				parseURLHistory();
				removeLoading();
			}
	});

}	

function ShowLoading(){
	$("#BrowsePanel").hide();
	$("#ContentPane").hide();
	$("#Navipanel").hide();

	$("#Loading").html("Loading...");
	$("#Loading").show();
}
function removeLoading(){
	$("#BrowsePanel").show();	
	$("#Navipanel").show();
	$("#Loading").hide();
}

function showSearch(){
	 var strSearchform ="";
	 strSearchform += "<form onsubmit='searchXML();return false;'>";
	 strSearchform += "<input name='keyword' id='keyword' type='text' value='"+label4[curLanguage]+"'>&nbsp;&nbsp;";
	 strSearchform +="<b><a href='javascript:void(0);' id='Search'>"+label5[curLanguage]+"</a>&nbsp;&nbsp;";
	 strSearchform +=" <a href='javascript:void(0);' id='Clear'>"+label6[curLanguage]+"</a></form></b>";
	$("#SearchBar").html(strSearchform);
}


var categoryArray;
var subcategoryArray;
var videosArray;
var videolinksArray;
var curvideoLinksArray;
var	linksArray;

function InitXMLData(){
 	categoryArray = new Array();
 	subcategoryArray = new Array();
 	videosArray = new Array();
 	videolinksArray = new Array();
	curvideoLinksArray = new Array();
	linksArray = new Array();
	
	categoryArray.push(new Array("0","All"));
	subcategoryArray.push(new Array("0","All"));
	//<video><videono><title>title_de><title_cn><title_fr><title_jp><title_kr><desc><desc_de><desc_cn><desc_fr><desc_jp><desc_kr><length><date></video>//
	$.each($("video",xmlDataSet), function(i, n){
		var title = $("title" + languages[curLanguage],this).text()!=""?$("title" + languages[curLanguage],this).text():$("title",this).text();
		var desc = $("desc" + languages[curLanguage],this).text()!=""?$("desc" + languages[curLanguage],this).text():$("desc",this).text();
		var lang = ($("title" + languages[curLanguage],this).text()!=""&&curLanguage>0)?languages[curLanguage].replace("_",""):"EN";
		videosArray.push(new Array($("videono",this).text(),title,$("length",this).text(),$("date",this).text(),desc,lang));
	});
	
	$.each( $("category",xmlDataSet), function(i, n){
		var cid 	= $(this).attr("id");
		var cname 	= $(this).attr("name" + languages[curLanguage])!=undefined?$(this).attr("name" + languages[curLanguage]):$(this).attr("name");
		categoryArray.push(new Array(cid,cname));
		$.each($("subcategory",this), function(j, m){
			var sid		= $(this).attr("id");
			var sname 	= $(this).attr("name" + languages[curLanguage])!=undefined?$(this).attr("name" + languages[curLanguage]):$(this).attr("name");
			subcategoryArray.push(new Array(sid,sname));
			$.each($("videolink",this), function(k, l){
				var vid = $(this).attr("id");
				var v = getVideo(vid);
				if (v !=null)
				videolinksArray.push(new Array(vid,v[1],v[2],v[3],v[4],v[5],cid,cname,sid,sname));
			});
		});
	});
	
	
	
	var dateRE = /^(\d{2})[\/\- ](\d{2})[\/\- ](\d{4})/;
	function dmyOrdD(a, b){
		var v1 = a[3].replace(dateRE,"$3$2$1");
		var v2 = b[3].replace(dateRE,"$3$2$1");
		return (v2 > v1)?1:-1;
	}
	var va = getUniqueDataset(videolinksArray);
	va.sort(dmyOrdD);
	for(i=0;i<10;i++){
		var v = va[i];
		videolinksArray.push(new Array(v[0],v[1],v[2],v[3],v[4],v[5],"10","New Videos",v[8],v[9]));
	}
	
	$.each( $("link",xmlDataSet), function(i, n){
		linksArray.push(new Array($("videono",this).text(),$("name",this).text(), $("url",this).text(),$("type",this).text()));
	});
	
	 $("#keyword").click(function(){$("#keyword").select(); });
	 
	 $(document).click(function(e){
		if(e.target.id!="keyword"){
		 	if($("#keyword").val()=="")
		 		$("#keyword").attr("value",label4[curLanguage]);
		}
	 });	 
	 $("#Search").click(function(){searchXML(); });
	 $("#Clear").click(function(){$("#keyword").attr("value","");searchXML();});
	 
	$("#headertext").html(label1[curLanguage]);
	$("#boxtitle").html(label7[curLanguage]);
	$("#TopText").html(label2[curLanguage]);
	$("#BottomText").html(label3[curLanguage]);	
	$("#CategoryContainer").html("<div id='categoryhead'><span class='headnumber'>1.</span> "+label8[curLanguage]+" </div><ul id='categorylayer' class='catlist'></ul>");
	$("#SubCategoryContainer").html("<div id='subcategoryhead'><span class='headnumber'>2.</span> "+label9[curLanguage]+" </div><ul id='subcategorylayer' class='catlist'></ul>");
	$("#VideosContainer").html("<div id='videolisthead'><span class='headnumber'>3.</span> "+label10[curLanguage]+" </div><ul id='videolistlayer' class='catlist'></ul>");
}


function buildMenu(){
	$("#categorylayer").html("");
	$("#subcategorylayer").html("");
	$("#videolistlayer").html("");

	for (i=0;i<categoryArray.length;i++){//each category
		var id = categoryArray[i][0];
		var c = categoryArray[i][1];
		$("#categorylayer").append("<li id='c"+id+"' title=\""+c+"\" class='l1'><a  class='history' href='#"+keyword+","+id+"' >" + c +"</a></li>");
	}

	$(".l1").hide();
	
	ShowNode(curvideolinksArray);
	
 	curvideolinksArray = filterByCategory(curvideolinksArray,curcat);
 	
	$.each( curvideolinksArray, function(i, n){
		var sid = curvideolinksArray[i][8];
		var s = curvideolinksArray[i][9];
		if($('#s'+sid).size()==0)
		$("#subcategorylayer").append("<li id='s"+ sid +"' title=\""+s+"\" class='l2'><a class='history' href='#"+keyword+","+curcat+","+sid+"'>" + s +"</a></li>");
	});
	
 	curvideolinksArray = filterBySubCategory(curvideolinksArray,cursubcat);
	$.each( curvideolinksArray, function(i, n){
		var vid = curvideolinksArray[i][0];
		var t = curvideolinksArray[i][1];
		if ($("#v"+vid).size()==0)
		$("#videolistlayer").append("<li id='v"+ vid +"' title=\""+t+"\" class='l2'><a class='history' href='#"+keyword+","+curcat+","+cursubcat+","+vid+"'>" + t +"</a></li>");
	})	
	
	$("#c"+curcat).addClass("selected");
	$("#s"+cursubcat).addClass("selected");
	$("#v"+curno).addClass("selected");
	
}


function parseURLHistory(){
	var url = location.hash;
	parseURL(url);
}

function parseURL(url){
	keyword = "";
	curcat = 10;
	cursubcat = 0;
	curno = -1;

	if (url.indexOf("#") != -1)
	url = url.substring(url.indexOf("#"), url.length);

	if (url.substring(0,1)=="#"){
		url = url.substring(1);
		url = url.replace(/%2C/gi,',');
		var urlArray = url.split(",",4);
		if (urlArray.length>0)
			keyword = urlArray[0];
		if (keyword!="")
			curcat=0;
		if(urlArray.length>1 && urlArray[1].length>0 && !isNaN(urlArray[1]))
			curcat = urlArray[1];
		if (urlArray.length>2 && urlArray[2].length>0 && !isNaN(urlArray[2]))
			cursubcat = urlArray[2];
		if (urlArray.length>3 && urlArray[3].length>3)
			curno = urlArray[3];
	}

	curvideolinksArray = videolinksArray;

	if (keyword!=""){
		if(keyword.substring(0,2).toLowerCase()=="t-" || (!isNaN(keyword)&&(keyword.length==4))){
			var v = filterByVideono(videolinksArray,keyword);
			if ($(v).size()==0){
				curvideolinksArray = new Array();
			}else if($(getUniqueDataset(v)).size()==1){
				curno = v[0][0];
				curcat = v[0][6];
				cursubcat = v[0][8];
				keyword="";
		 		$("#keyword").attr("value",label4[curLanguage]);
			 	$("#keyword").removeClass("hiliteInput");
			 	$("#keyword").addClass("normalInput");
			 	$("#keyword").css({ background:"#3d3f47"});				
			}else{
				curvideolinksArray = v;
			}
		}else{
			curvideolinksArray = filterByKeyword(curvideolinksArray,keyword);
		}
		if(keyword!=""){
			$("#keyword").attr("value",keyword);
			$("#keyword").removeClass("normalInput");
			$("#keyword").addClass("hiliteInput");
			$("#keyword").css({ background:"#cc9a34"});
		}
	}else{
	 	 $("#keyword").removeClass("hiliteInput");
	 	 $("#keyword").addClass("normalInput");
	 	 $("#keyword").css({ background:"#3d3f47"});
	}
	
	buildMenu();
	$("#ContentPane").hide();
	
	if(curno!=-1){
		showVideoDetail(curno);
	}else{
		browseXML();
	}
	
	$("a.history").click(function(){
		parseURL($(this).attr("href"));
	})
	$.historyEnable();
	
}

function getVideo(videono){
	for (i=0;i<videosArray.length;i++){
		var vno = videosArray[i][0];
		if(vno.indexOf(videono) != -1){
			return videosArray[i];
		}
	}
	return null;
}

function ShowNode(ds){
	$("#c0").show();
	for (j=0;j<ds.length;j++){//each subcategory
		var cid = ds[j][6];
		var sid = ds[j][8];
		var no = ds[j][0];
		$("#c"+cid).show();
		$("#s"+sid).show();
		$("#v"+no).show();
	}
}





function filterByVideono(ds,videono){
	var result = new Array();
	$.each( ds, function(i, n){
		var no = ds[i][0].toLowerCase();
		if(no.indexOf(videono.toLowerCase()) != -1){
			result.push(ds[i]);
			return result;
		}
	});	
	return result;
}

function filterByCategory(ds,cid){
	var result = new Array();
	if (cid==0){
		return ds;
	}else{
		$.each( ds, function(i, n){
			var id = ds[i][6].toLowerCase();
			if(id == cid){
				result.push(ds[i]);
			}
		});	
		return result;
	}
}

function filterBySubCategory(ds,sid){
	
	var result = new Array();
	if (sid==0){
		return ds;
	}else{
		$.each( ds, function(i, n){
			var id = ds[i][8].toLowerCase();
			if(id==sid){
				result.push(ds[i]);
			}
		});
		return result;
	}
}

function filterByKeyword(ds,k){
	var result = new Array();
	if (k == ""){
		return ds;
	}else{
		k = k.toLowerCase();
		$.each( ds, function(i, n){
			var n = ds[i][0].toLowerCase();
			var t = ds[i][1].toLowerCase();
			var c = ds[i][7].toLowerCase();
			var s = ds[i][9].toLowerCase();
			var d = ds[i][4].toLowerCase();
			if (n.indexOf(k) != -1||c.indexOf(k) != -1||s.indexOf(k) != -1||t.indexOf(k) != -1||d.indexOf(k) != -1){
				result.push(ds[i]);
			}
		});
		
	}
	return result;
}

function getUniqueDataset(ds){
	var result = new Array();

	$.each( ds, function(i, n){
		if(containsVideo(result,ds[i][0])==false){
			result.push(ds[i]);
		}
	});
	
	return result;
}

function containsVideo(ds,videono){
	for(i=0;i<ds.length;i++){
		if(ds[i][0]==videono){
			return true;
		}
	}
	return false;
}


function hilite(keyword){
var options = {highlight:$("#Listcontent"),nohighlight :$("p.subtitle"), exact:"partial",style_name_suffix:false,keys:keyword };
  jQuery(function(){
    jQuery(document).SearchHighlight(options);
  });
}


function searchXML(){
	keyword = $("#keyword").val();
	if (keyword =="")
		keyword = ",";
	document.location.hash = keyword;
	parseURL("#"+keyword);
}


function browseXML(){
	if(curcat==0){//if select all
		curvideolinksArray = getUniqueDataset(curvideolinksArray);
	}	
	
	var itemcount = curvideolinksArray.length;
	var dispaly = "<b>"+label11[curLanguage]+" " +itemcount + " "+label12[curLanguage]+"</b>";
	if ((itemcount<2)&&(curLanguage==1))
		dispaly = "<b>Displaying " +itemcount + " result.</b>"
	if(curLanguage==4)
		dispaly = "<b>" +itemcount + "つの検索結果を表示しています。</b>"

	$("#Navbar").html(dispaly);
	$("#Listcontent").html("");
	
	$.each( curvideolinksArray, function(i, n){
		index = i;
		AppendList(curvideolinksArray[i]);
	});

	$("#ContentPane").show();
	log_init('a.log');
	hilite(keyword);
}

function showVideoDetail(no){

	var str = "";
	var ds = filterByVideono(videolinksArray,no);
	
	if ($(ds).size()>0){
		var vid = ds[0][0];
		var title = ds[0][1];
		var l = ds[0][2];
		var da = ds[0][3];
		var de = ds[0][4];
		var vl = ds[0][5]=="EN"?"":"_"+ds[0][5];
		var vn = vl==languages[curLanguage]?"":", EN";
		var imageurl = baseurl+"data/contents/images/" + vid + "_promo.jpg";

		var videoUrl = link + vid + vl;
		if (vid.length==9&&vid.indexOf("-")==5){ //01252-s08
			if (vl=="")
			videoUrl +="-en";
			videoUrl = videoUrl.replace(/_/g,'-').toLowerCase();
		}
		var playvideo = label14[curLanguage]+" ("+l+vn +")";
		
		$("#Navbar").html("<div id='Navbarleft'>"+ title +"</div><div id='Navbarright'>"+label13[curLanguage]+" "+ da +"</div>");
			
		str ="<div class=detaillist>";
		str += "<div class=thumb><img border=0 alt='"+title+"' width='400' height='300' src='"+imageurl+"'></div>";
		str += "<div id='detailcontent'>";
		str += "<div class='desc'>" + de +"</div>";
		str += "<ul class='linksList'>";
		str += "<li class='video'><a target=_blank class='log' title=\""+ title +"\" href='" + videoUrl + "'>"+playvideo+"</a></li>";
		var curLinksArray = filterByVideono(linksArray,vid);
		for(i=0;i<curLinksArray.length;i++){
			var url = curLinksArray[i][2].toLowerCase();
			url = url.substring(0,4)!="http"?baseurl+url:url;
			str += "<li class='"+ curLinksArray[i][3] +"'><a class='log' target=_blank href='" + url + "'>"+curLinksArray[i][1]+"</a></li>";
		}
		
		str +="<li class='backicon'><a class='history' href='#"+keyword+","+curcat+","+cursubcat+"'>"+label15[curLanguage]+"</a></li>";
		str +="</ul>";
		str +="</div>";
		str +="</div>";	
		$('#videolistlayer > li[title="'+title+'"]').addClass("listselected");
	}

	$('.l3').removeClass('listselected');
	$("#Listcontent").html(str);
	$("#ContentPane").show();
	$("#Listcontent").show();
	log_init('a.log');
	hilite(keyword);	
}


function AppendList(ResultItem){

	var vid = ResultItem[0];
	var title = ResultItem[1];
	var l = ResultItem[2];
	var da = ResultItem[3];
	var de = ResultItem[4];
	if (de.length >180)
		de = de.substring(0,180) + " ... <a class='history' href='#"+keyword + ","  + curcat+","+cursubcat+","+vid+"'>More</a>";
	
	var vl = ResultItem[5]=="EN"?"":"_"+ResultItem[5];
	var vn = vl==languages[curLanguage]?"":", EN";
	
	var imageurl = baseurl +"data/contents/thumbs/" + vid + "_promo.jpg";
	var videoUrl = link + vid + vl;
	if (vid.length==9&&vid.indexOf("-")==5){ //01252-s08
		if (vl=="")
		videoUrl +="-en";
		videoUrl = videoUrl.replace(/_/g,'-').toLowerCase();
	}

	var playvideo = label14[curLanguage]+" ("+l+vn +")";
	
	strToAppend = "<div class='videolist'>";

		strToAppend += "<div class=videothumb><a class='history' href='#"+keyword+","+curcat+","+cursubcat+","+vid+"'><img border='0' width='80' height='60' src='"+baseurl+"data/contents/thumbs/" + vid + "_promo.jpg' alt=\""+title+"\"></a></div>" ;
		
		strToAppend += "<div class='videocontent'>";
		strToAppend += "<div class='title'><div class=t1>"+(index +1) +". <a class='history'class='history' href='#"+keyword+","+curcat+","+cursubcat+","+vid+"'>"+ title +"</a></div><div class='t2'><i>" + da +"</i></div></div>";
		strToAppend += "<div class='desc'>" + de+"</div>";
		strToAppend += "<ul class='linksList'>";
		strToAppend += "<li class='video'><a class='log' target=_blank href='" + videoUrl + "'>"+playvideo+"</a></li>";
		
		var curLinksArray = filterByVideono(linksArray,vid);
		for(i=0;i<curLinksArray.length;i++){
			var url = curLinksArray[i][2].toLowerCase();
			url = url.substring(0,4)!="http"?baseurl+url:url;
			strToAppend += "<li class='"+ curLinksArray[i][3] +"'><a class='log' target=_blank href='" + url + "'>"+curLinksArray[i][1]+"</a></li>";
		}
		strToAppend += "</ul>";
		strToAppend += "</div>";
	strToAppend += "</div>";
	
		
	$("#Listcontent").append(strToAppend);
}



function log_init(domChunk){
	$(domChunk).click(function(){
		var t = this.name || this.title || $(this).text() || null;
		var a = this.href || this.alt;
		logClick("/Community/TRAININGcenter/TrainingVideos/"+GetID(t));
		return true;
	});
}

function logClick(url){
	if(window.urchinTracker){
		urchinTracker(url);
	}
}

function GetID(stringwithspace){
	return stringwithspace.replace(/ /g,'').replace(/\'/g,'').replace(/’/g,'').replace(/&/g,'').replace(/\?/g,'');
}