/**
 * PartTimeTranslation
 * Translates parts of the current page to given language
 *
 * @author Fabian Wolf (http://fwolf.info/)
 * @license GPL v2
 */


var arrTranslationTable = new Array();
arrTranslationTable['en'] = new Array();
// page
arrTranslationTable['en']['Leistungen'] = 'Services';
arrTranslationTable['en']['Programmierung'] = 'Programming';
arrTranslationTable['en']['Beratung'] = 'Consulting';
arrTranslationTable['en']['Aktuelle Weblog-Einträge'] = 'Current blog posts';
arrTranslationTable['en']['Aktuelle Bookmarks'] = 'Current bookmarks';
arrTranslationTable['en']['Empfehlungen'] = 'Suggestions';
arrTranslationTable['en']['Netzwerke &amp; Co.'] = 'Networks &amp; Co.';
arrTranslationTable['en']['Netzwerke & Co.'] = 'Networks & Co.';
arrTranslationTable['en']['Partner'] = 'Business partners';
arrTranslationTable['en']['Kontaktaufnahme'] = 'Getting in contact';
arrTranslationTable['en']['Vor- und Nachname'] = 'First and family name';
arrTranslationTable['en']['E-Mail-Adresse'] = 'E-Mail';
arrTranslationTable['en']['Betreff'] = 'Subject';
arrTranslationTable['en']['Mitteilung'] = 'Message';
arrTranslationTable['en']['Kopie an Absender'] = 'Send copy';
arrTranslationTable['en']['Mitteilung absenden'] = 'Send message';
//arrTranslationTable['en']['Leistungen'] = 'Services';
arrTranslationTable['en']['Abbrechen'] = 'Abort';

// navigation
arrTranslationTable['en']['Startseite'] = 'Home';
	arrTranslationTable['en']['Kontakt'] = 'Contact';
arrTranslationTable['en']['Projekte'] = 'Projects';
	arrTranslationTable['en']['Artikel'] = 'Articles';
	arrTranslationTable['en']['Vorträge'] = 'Presentations';
	arrTranslationTable['en']['Vortr&auml;ge'] = arrTranslationTable['en']['Vorträge'];
arrTranslationTable['en']['Über mich'] = 'About';
arrTranslationTable['en']['&Uuml;ber mich'] = arrTranslationTable['en']['Über mich'];
	arrTranslationTable['en']['Fakten'] = 'Some facts';


// var arrTranslatableElements = ['h1', 'h2', 'h3', 'h4', 'dt', 'sup', 'label' , '#navigation li'];
var arrTranslatableElements = ['h1', 'h2', 'h3', 'label' , '#navigation li a'];

var strLanguageCookieName = 'pttLang';

/**
 * function addPartTimeTranslation
 * Translates parts of the current page to given language
 *
 * @param string languageCode Eg. 'en' for english, 'de' for german, etc.
 * @return boolean status Returns true if done, false if error occured.
 */

function addPartTimeTranslation(strLanguageCode) {
	var bReturn = false;

	if(arrTranslationTable.indexOfKey(strLanguageCode)) {
		if(typeof arrTranslationTableBackward != 'undefined') {
			delete arrTranslationTableBackward;
		}

// 		var arrTranslationTableBackward = new Array();
		// translatable elements: headers, definition list headings, labels
		$.each(arrTranslatableElements, function() {

			$.each($('body ' + this + ':not(.ptt-translated)'), function() {
				strCurrentElementText = $(this).text();
				strCurrentElementStripped = $(this).text().replace(':', '');


				if(arrTranslationTable[strLanguageCode].indexOfKey(strCurrentElementStripped) != -1) {
// 					arrTranslationTableBackward[arrTranslationTable[strLanguageCode][strCurrentElementStripped]] = strCurrentElementStripped;

					$(this).addClass('ptt-translated')
					$(this).attr('lang', strCurrentElementStripped);
					$(this).text(strCurrentElementText.replace( strCurrentElementStripped, arrTranslationTable[strLanguageCode][strCurrentElementStripped] ));

					/*console.log(strCurrentElementText + ' => '
						+ strCurrentElementText.replace(
							strCurrentElementText,
							arrTranslationTable[strLanguageCode][strCurrentElementStripped]
						)
					)*/
				}
			});
		});

		set_cookie(strLanguageCookieName, strLanguageCode);
		bReturn = true;

	}



	return bReturn;
}

/**
 * function checkPartTimeTranslation
 * Check if there's a translation cookie set; if so, call addPartTimeTranslation with its value
 */

function checkPartTimeTranslation() {
	if(get_cookie(strLanguageCookieName)) {
		addPartTimeTranslation( get_cookie( strLanguageCookieName ) );
// 		console.log( get_cookie(strLanguageCookieName) );
	}
}


/**
 * function removePartTimeTranslation
 * Translates parts of the current page to given language
 *
 * @param string languageCode Eg. 'en' for english, 'de' for german, etc.
 * @return boolean status Returns true if done, false if error occured.
 */

function removePartTimeTranslation() {


	$.each(arrTranslatableElements, function() {
		$.each($('body ' + this + '.ptt-translated'), function() {

			strCurrentElementText = $(this).text();
			strCurrentElementStripped = $(this).text().replace(':', '');
			strOriginalElementText = $(this).attr('lang');
			$(this).text( strCurrentElementText.replace(strCurrentElementStripped, strOriginalElementText) ).removeClass('ptt-translated');

			//console.log('translated: ' + strCurrentElementStripped + ', original: ' + strOriginalElementText);

		});
	});

	remove_cookie('pttLang');

}