// Initialize version 1.0 of Google AJAX API
google.load("language", "1");
// Google Language API accepts 5000 characters per request, this makes sure the html doesn't get chopped 
var words = 1000;
var mainIndex=0;
var mainLen=0;
var mainLastPart=false;
var mainTranslated="";
var mainText=""
var mainDone=false;
var col3Index=0;
var col3Len=0;
var col3LastPart=false;
var col3Translated="";
var col3Text=""
var col3Done=false;
var navIndex=0;
var navLen=0;
var navLastPart=false;
var navTranslated="";
var navText=""
var navDone=false;
var sourceTextLang = "en";
var lang="";
var translationInProgress='<table cellspacing="0" cellpadding="0" border="0" width="100%"><tr><Td><img src="../../includes/site_images/spacers/spacer.gif" width="20" alt="" border="0"></td><td><br><br><br><br><b>Translation in Progress</b></td></tr></table>';
var translationCookie = 'dcas_language_preference'; // This is the name of the cookie that is used.

var translationText=new Array();
translationText[translationText.length]=["ar","&#1575;&#1604;&#1578;&#1585;&#1580;&#1605;&#1577; &#1601;&#1610; &#1575;&#1604;&#1578;&#1602;&#1583;&#1605;"];
translationText[translationText.length]=["bg","&#1055;&#1088;&#1077;&#1074;&#1086;&#1076;&#1080; &#1074; &#1087;&#1088;&#1086;&#1094;&#1077;&#1089; &#1085;&#1072;"];
translationText[translationText.length]=["ca","Traducci&#243; en curs"];
translationText[translationText.length]=["zh-CN","&#32763;&#35793;&#20013;&#30340;&#36827;&#23637;"];
translationText[translationText.length]=["zh-TW","&#32763;&#35695;&#20013;&#30340;&#36914;&#23637;"];
translationText[translationText.length]=["hr","Prijevodi u tijeku"];
translationText[translationText.length]=["cs","P&#345;eklad v pokrok"];
translationText[translationText.length]=["da","Overs&#230;ttelse i gang"];
translationText[translationText.length]=["nl","Vertaling in progress"];
translationText[translationText.length]=["tl","Pagsasalin sa progreso"];
translationText[translationText.length]=["fi","K&#228;&#228;nt&#228;minen k&#228;ynniss&#228;"];
translationText[translationText.length]=["fr","Traduction en cours"];
translationText[translationText.length]=["de","&#220;bersetzung in progress"];
translationText[translationText.length]=["el","&#924;&#949;&#964;&#940;&#966;&#961;&#945;&#963;&#951; &#963;&#949; &#949;&#958;&#941;&#955;&#953;&#958;&#951;"];
translationText[translationText.length]=["iw","&#1489;&#1514;&#1492;&#1500;&#1497;&#1498; &#1514;&#1512;&#1490;&#1493;&#1501;"];
translationText[translationText.length]=["hi","&#2346;&#2381;&#2352;&#2327;&#2340;&#2367; &#2350;&#2375;&#2306; &#2309;&#2344;&#2369;&#2357;&#2366;&#2342;"];
translationText[translationText.length]=["id","Terjemahan dalam kemajuan"];
translationText[translationText.length]=["it","Traduzione in corso"];
translationText[translationText.length]=["ja","&#36914;&#34892;&#20013;&#12398;&#32763;&#35379;"];
translationText[translationText.length]=["ko","&#51652;&#54665;&#51473;&#51064; &#48264;&#50669;"];
translationText[translationText.length]=["lv","Tulko&#353;anas darbi"];
translationText[translationText.length]=["lt","Vertimo darbai"];
translationText[translationText.length]=["no","Oversettelse p&#229;g&#229;r"];
translationText[translationText.length]=["pl","T&#322;umaczenie w toku"];
translationText[translationText.length]=["pt","Tradu&#231;&#227;o em andamento"];
translationText[translationText.length]=["ro","Traducere &#238;n curs de"];
translationText[translationText.length]=["ru","&#1055;&#1077;&#1088;&#1077;&#1074;&#1086;&#1076; &#1074; &#1087;&#1088;&#1086;&#1075;&#1088;&#1077;&#1089;&#1089;"];
translationText[translationText.length]=["sr","&#1050;&#1083;&#1091;&#1073; &#1112;&#1077; &#1091; &#1090;&#1086;&#1082;&#1091;"];
translationText[translationText.length]=["sk","Preklad v pokrok"];
translationText[translationText.length]=["sl","Prevajanje je v teku"];
translationText[translationText.length]=["es","Traducci&#243;n en progreso"];
translationText[translationText.length]=["sv","&#214;vers&#228;ttning p&#229;g&#229;r"];
translationText[translationText.length]=["uk","&#1055;&#1077;&#1088;&#1077;&#1082;&#1083;&#1072;&#1076; &#1074; &#1087;&#1088;&#1086;&#1075;&#1088;&#1077;&#1089;"];
translationText[translationText.length]=["vi","Ng&#432;&#7901;i d&#7883;ch"];

function translatePage() {
	lang = GetCookie(translationCookie);
	if (lang == null) {
		lang = sourceTextLang;
	}
	if (lang != sourceTextLang){
		mainIndex=0;
		mainLastPart=false;
		mainText = document.getElementById("main_content").innerHTML;
		mainText=mainText.replace(/((\s+(?=<[^<]+?>))|(\s\s))/gi,' ');
		document.getElementById("english_button").style.display='';
		document.getElementById("translate_button").style.display = 'none';
		document.getElementById("progress_text").innerHTML=getTranslationText(lang);
		showProgressPopup();
		document.getElementById("main_content").innerHTML="";
		mainLen = mainText.length;
		mainTranslated="";
		if(mainLen>0){
			if(mainIndex+words<mainLen){
				var endTag=mainText.length;
				var endPTagMain=mainText.toLowerCase().indexOf("</p>",mainIndex+words);
				var endULTagMain=mainText.toLowerCase().indexOf("</ul>",mainIndex+words);
				var endBRTagMain=mainText.toLowerCase().indexOf("<br><br>",mainIndex+words);
				var endTRTagMain=mainText.toLowerCase().indexOf("</tr>",mainIndex+words);
				var endTableTagMain=mainText.toLowerCase().indexOf("</table>",mainIndex+words);
				if(endPTagMain>0){
					endTag=endPTagMain+3;
				}
				if(endULTagMain>0&&endULTagMain<endTag){
					endTag=endULTagMain+4;
				}
				if(endTRTagMain>0&&endTRTagMain<endTag){
					endTag=endTRTagMain+4;
				}
				if(endBRTagMain>0&&endBRTagMain<endTag){
					endTag=endBRTagMain+7;
				}
				if(endTableTagMain>0&&endTableTagMain<endTag){
					endTag=endTableTagMain+7;
				}
				var sectionMainLength=endTag-mainIndex;
				var toTranslate=mainText.substr(mainIndex,sectionMainLength);
				google.language.translate (toTranslate, sourceTextLang, lang, translateMain);
				mainIndex=endTag+1;
			}else{
				mainLastPart=true;
				var toTranslate=mainText.substr(mainIndex);
				google.language.translate (toTranslate, sourceTextLang, lang, translateMain);
				mainIndex=mainLen;
			}
		}
		navIndex=0;
		navLastPart=false;
		navText = document.getElementById("nav_content").innerHTML;
		navText=navText.replace(/((\s+(?=<[^<]+?>))|(\s\s))/gi,' ');
		document.getElementById("nav_content").innerHTML="";
		document.getElementById("image_nav").style.visibility="hidden";
		navLen = navText.length;
		navTranslated="";
		if(navLen>0){
			if(navIndex+words<navLen){
				var endTag=navText.length;
				var endPTagNav=navText.toLowerCase().indexOf("</p>",navIndex+words);
				var endULTagNav=navText.toLowerCase().indexOf("</ul>",navIndex+words);
				var endBRTagNav=navText.toLowerCase().indexOf("<br><br>",navIndex+words);
				var endTRTagNav=navText.toLowerCase().indexOf("</tr>",navIndex+words);
				var endTableTagNav=navText.toLowerCase().indexOf("</table>",navIndex+words);
				if(endPTagNav>0){
					endTag=endPTagNav+3;
				}
				if(endULTagNav>0&&endULTagNav<endTag){
					endTag=endULTagNav+4;
				}
				if(endTRTagNav>0&&endTRTagNav<endTag){
					endTag=endTRTagNav+4;
				}
				if(endBRTagNav>0&&endBRTagNav<endTag){
					endTag=endBRTagNav+7;
				}
				if(endTableTagNav>0&&endTableTagNav<endTag){
					endTag=endTableTagNav+7;
				}
				var sectionNavLength=(endTag-navIndex)+1;
				var toTranslate=navText.substr(navIndex,sectionNavLength);
				google.language.translate (toTranslate, sourceTextLang, lang, translateNav);
				navIndex=endTag+1;
			}else{
				navLastPart=true;
				var toTranslate=navText.substr(navIndex);
				google.language.translate (toTranslate, sourceTextLang, lang, translateNav);
				navIndex=navLen;
			}
		}
		if(document.getElementById("col3_content")){
			col3Index=0;
			col3LastPart=false;
			col3Text = document.getElementById("col3_content").innerHTML;
			col3Text=col3Text.replace(/((\s+(?=<[^<]+?>))|(\s\s))/gi,' ');
			document.getElementById("col3_content").innerHTML="";
			col3Len = col3Text.length;
			col3Translated="";
			if(col3Len>0){
				if(col3Index+words<col3Len){
					var endTag=col3Text.length;
					var endPTagCol3=col3Text.toLowerCase().indexOf("</p>",col3Index+words);
					var endULTagCol3=col3Text.toLowerCase().indexOf("</ul>",col3Index+words);
					var endBRTagCol3=col3Text.toLowerCase().indexOf("<br><br>",col3Index+words);
					var endTRTagCol3=col3Text.toLowerCase().indexOf("</tr>",col3Index+words);
					var endTableRTagCol3=col3Text.toLowerCase().indexOf("</table>",col3Index+words);
					if(endPTagCol3>0){
						endTag=endPTagCol3+3;
					}
					if(endULTagCol3>0&&endULTagCol3<endTag){
						endTag=endULTagCol3+4;
					}
					if(endTRTagCol3>0&&endTRTagCol3<endTag){
						endTag=endTRTagCol3+4;
					}
					if(endBRTagCol3>0&&endBRTagCol3<endTag){
						endTag=endBRTagCol3+7;
					}
					if(endTableRTagCol3>0&&endTableRTagCol3<endTag){
						endTag=endTableRTagCol3+7;
					}
					var sectionCol3Length=(endTag-col3Index)+1;
					var toTranslate=col3Text.substr(col3Index,sectionCol3Length);
					google.language.translate (toTranslate, sourceTextLang, lang, translateCol3);
					col3Index=endTag+1;
				}else{
					col3LastPart=true;
					var toTranslate=col3Text.substr(col3Index);
					google.language.translate (toTranslate, sourceTextLang, lang, translateCol3);
					col3Index=col3Len;
				}
			}
		}else{
			col3Done=true;
		}
	}
}

function getTranslationText(theLanguage){
	for(var i=0;i<translationText.length;i++){
		if(theLanguage==translationText[i][0]){
			return(translationText[i][1]);
		}
	}
}

function setLanguage(theLanguage){
	if(theLanguage.length>0){
		SetCookie(translationCookie,theLanguage);
		doRefresh();
	}
}

function checkDone(){
	if(col3Done&&mainDone&&navDone){
		hideProgressPopup();
		document.getElementById("main_content").innerHTML=mainTranslated;
		document.getElementById("nav_content").innerHTML=navTranslated;
		if(document.getElementById("col3_content")){
			document.getElementById("col3_content").innerHTML=col3Translated;
		}
		document.getElementById("image_nav").style.visibility="visible";
		document.getElementById("image_nav").style.display="none";
		document.getElementById("nav_content").style.display="";
	}
}

function translateMain(result){
	mainTranslated=mainTranslated+result.translation;
	if(mainLastPart){
		mainTranslated=mainTranslated.replace(/text-align:right;direction:rtl/gi,'');
		mainDone=true;
		checkDone();
	}else{
		if(mainIndex+words<mainLen){
			var endTag=mainText.length;
			var endPTagMain=mainText.toLowerCase().indexOf("</p>",mainIndex+words);
			var endULTagMain=mainText.toLowerCase().indexOf("</ul>",mainIndex+words);
			var endBRTagMain=mainText.toLowerCase().indexOf("<br><br>",mainIndex+words);
			var endTRTagMain=mainText.toLowerCase().indexOf("</tr>",mainIndex+words);
			var endTableTagMain=mainText.toLowerCase().indexOf("</table>",mainIndex+words);
			if(endPTagMain>0){
				endTag=endPTagMain+3;
			}
			if(endULTagMain>0&&endULTagMain<endTag){
				endTag=endULTagMain+4;
			}
			if(endTRTagMain>0&&endTRTagMain<endTag){
				endTag=endTRTagMain+4;
			}
			if(endBRTagMain>0&&endBRTagMain<endTag){
				endTag=endBRTagMain+7;
			}
			if(endTableTagMain>0&&endTableTagMain<endTag){
				endTag=endTableTagMain+7;
			}
			var sectionMainLength=endTag-mainIndex;
			var toTranslate=mainText.substr(mainIndex,sectionMainLength);
			google.language.translate (toTranslate, sourceTextLang, lang, translateMain);
			mainIndex=endTag+1;
		}else{
			mainLastPart=true;
			var toTranslate=mainText.substr(mainIndex);
			google.language.translate (toTranslate, sourceTextLang, lang, translateMain);
			mainIndex=mainLen;
		}
	}
}

function translateNav(result){
	navTranslated=navTranslated+result.translation;
	if(navLastPart){
		navTranslated=navTranslated.replace(/text-align:right;direction:rtl/gi,'');
		navDone=true;
		checkDone();
	}else{
		if(navIndex+words<navLen){
			var endTag=navText.length;
			var endPTagNav=navText.toLowerCase().indexOf("</p>",navIndex+words);
			var endULTagNav=navText.toLowerCase().indexOf("</ul>",navIndex+words);
			var endBRTagNav=navText.toLowerCase().indexOf("<br><br>",navIndex+words);
			var endTRTagNav=navText.toLowerCase().indexOf("</tr>",navIndex+words);
			var endTableTagNav=navText.toLowerCase().indexOf("</table>",navIndex+words);
			if(endPTagNav>0){
				endTag=endPTagNav+3;
			}
			if(endULTagNav>0&&endULTagNav<endTag){
				endTag=endULTagNav+4;
			}
			if(endTRTagNav>0&&endTRTagNav<endTag){
				endTag=endTRTagNav+4;
			}
			if(endBRTagNav>0&&endBRTagNav<endTag){
				endTag=endBRTagNav+7;
			}
			if(endTableTagNav>0&&endTableTagNav<endTag){
				endTag=endTableTagNav+7;
			}
			var sectionNavLength=(endTag-navIndex)+1;
			var toTranslate=navText.substr(navIndex,sectionNavLength);
			google.language.translate (toTranslate, sourceTextLang, lang, translateNav);
			navIndex=endTag+1;
		}else{
			navLastPart=true;
			var toTranslate=navText.substr(navIndex);
			google.language.translate (toTranslate, sourceTextLang, lang, translateNav);
			navIndex=navLen;
		}
	}
}

function translateCol3(result){
	col3Translated=col3Translated+result.translation;
	if(col3LastPart){
		col3Translated=col3Translated.replace(/text-align:right;direction:rtl/gi,'');
		col3Done=true;
		checkDone();
	}else{
		if(col3Index+words<col3Len){
			var endTag=col3Text.length;
			var endPTagCol3=col3Text.toLowerCase().indexOf("</p>",col3Index+words);
			var endULTagCol3=col3Text.toLowerCase().indexOf("</ul>",col3Index+words);
			var endBRTagCol3=col3Text.toLowerCase().indexOf("<br><br>",col3Index+words);
			var endTRTagCol3=col3Text.toLowerCase().indexOf("</tr>",col3Index+words);
			var endTableTagCol3=col3Text.toLowerCase().indexOf("</table>",col3Index+words);
			if(endPTagCol3>0){
				endTag=endPTagCol3+3;
			}
			if(endULTagCol3>0&&endULTagCol3<endTag){
				endTag=endULTagCol3+4;
			}
			if(endTRTagCol3>0&&endTRTagCol3<endTag){
				endTag=endTRTagCol3+4;
			}
			if(endBRTagCol3>0&&endBRTagCol3<endTag){
				endTag=endBRTagCol3+7;
			}
			if(endTableRTagCol3>0&&endTableRTagCol3<endTag){
				endTag=endTableRTagCol3+7;
			}
			var sectionCol3Length=(endTag-col3Index)+1;
			var toTranslate=col3Text.substr(col3Index,sectionCol3Length);
			google.language.translate (toTranslate, sourceTextLang, lang, translateCol3);
			col3Index=endTag+1;
		}else{
			col3LastPart=true;
			var toTranslate=col3Text.substr(col3Index);
			google.language.translate (toTranslate, sourceTextLang, lang, translateCol3);
			col3Index=col3Len;
		}
	}
}

function showTranslate(){
	document.getElementById("shim").style.height=document.getElementById("translate_popup").offsetHeight;
	document.getElementById("shim").style.width=document.getElementById("translate_popup").offsetWidth;
	document.getElementById("translate_popup").style.top = 356;
	document.getElementById("translate_popup").style.visibility = "visible";
	document.getElementById("shim").style.top = document.getElementById("translate_popup").style.top;
	document.getElementById("shim").style.visibility = "visible";
}

function hideTranslate(){
	document.getElementById("translate_popup").style.visibility = "hidden";
	document.getElementById("shim").style.visibility = "hidden";
}

function hideProgressPopup(){
	document.getElementById("progress_popup").style.visibility = "hidden";
	document.getElementById("shim").style.visibility = "hidden";
}

function showProgressPopup(){
	document.getElementById("shim").style.height=document.getElementById("progress_popup").offsetHeight;
	document.getElementById("shim").style.width=document.getElementById("progress_popup").offsetWidth;
	document.getElementById("progress_popup").style.top = 356;
	document.getElementById("progress_popup").style.visibility = "visible";
	document.getElementById("shim").style.top = document.getElementById("progress_popup").style.top;
	document.getElementById("shim").style.visibility = "visible";
}

window.onload=translatePage;
