﻿//Don't need to keep info about upper case versions because domain names are case insensitive.. |aburnazy 16.08.08
window.RUSSIAN_LANG = {
	name: "russian",
	translitMap: {
		"а":"a", "б":"b", "в":["v","w"], "г":"g", "д":"d",	"е":"e", "ё":["jo","yo","e"],
		"ж":["zh", "j"],"з":["z", "3"],	"и":"i", "й":"j","к":"k","л":"l", "м":"m",
		"н":"n","о":["o", "0"],"п":"p","р":"r","с":"s","т":"t","у":"u","ф":"f","х": ["kh", "x", "h"],
		"ц":["c","ts", "tc"],"ч":["ch", "4", "tch"],"ш":"sh","щ": "sh",	"ъ":"",	"ы":"y","ь":"",
		"э":"e","ю":["ju","yu"],"ю":["ju","yu"], "я": ["ja", "ya"]
	}
}


window.FRENCH_LANG = {
	name: "french",
	translitMap: {
		"a":"a", "b":"b", "c":"c", "d":"d", "e":"e", "f":"f", "g":"g", "h":"h", "i":"i", 
		"j":"j", "k":"k", "l":"l", "m":"m", "n":"n", "o":"o", "p":"p", "q":"q", "r":"r", 
		"s":"s", "t":"t", "u":"u", "v":"v", "w":"w", "x":"x", "y":"y", "z":"z", "á":"a", 
		"à":"a", "â":"a", "ä":"a", "æ":"a", "ç":"c", "é":"e", "è":"e", "ê":"e", "ë":"e", 
		"î":"i", "í":"i", "ï":"i", "ñ":"n", "ô":"o", "ö":"o", "ó":"o", "œ":"o", "ß":"s", 
		"ú":"u", "ù":"u", "û":"u", "ü":"u", "ÿ":"y" 
	}
}

window.GERMAN_LANG = {
	name: "german",
	translitMap: {
		"a":"a", "b":"b", "c":"c", "d":"d", "e":"e", "f":"f", "g":"g", "h":"h", "i":"i", 
		"j":"j", "k":"k", "l":"l", "m":"m", "n":"n", "o":"o", "p":"p", "q":"q", "r":"r", 
		"s":"s", "t":"t", "u":"u", "v":"v", "w":"w", "x":"x", "y":"y", "z":"z", "á":"a", 
		"à":"a", "â":"a", "ä":"a", "æ":"a", "ç":"c", "é":"e", "è":"e", "ê":"e", "ë":"e", 
		"î":"i", "í":"i", "ï":"i", "ñ":"n", "ô":"o", "ö":"o", "ó":"o", "œ":"o", "ß":"s", 
		"ú":"u", "ù":"u", "û":"u", "ü":"u", "ÿ":"y" 
	}
}

window.SPANISH_LANG = {
	name: "spanish",
	translitMap: {
		"a":"a", "b":"b", "c":"c", "d":"d", "e":"e", "f":"f", "g":"g", "h":"h", "i":"i", 
		"j":"j", "k":"k", "l":"l", "m":"m", "n":"n", "o":"o", "p":"p", "q":"q", "r":"r", 
		"s":"s", "t":"t", "u":"u", "v":"v", "w":"w", "x":"x", "y":"y", "z":"z", "á":"a", 
		"à":"a", "â":"a", "ä":"a", "æ":"a", "ç":"c", "é":"e", "è":"e", "ê":"e", "ë":"e", 
		"î":"i", "í":"i", "ï":"i", "ñ":"n", "ô":"o", "ö":"o", "ó":"o", "œ":"o", "ß":"s", 
		"ú":"u", "ù":"u", "û":"u", "ü":"u", "ÿ":"y" 
	}
}


window.ARMENIAN_LANG = {
	name: "armenian",
	translitMap: {
		"ա": "a", "բ": "b", "գ": "g", "դ": "d", "ե": ["e", "3"], "զ": "z", "է": "e", "ը": "y", "թ": ["t", "th"], 
		"ժ": ["zh", "j"], "ի": "i", "լ": "l", "խ": ["kh", "x"], "ծ": ["ts", "tc", "c"],
		"կ": "k", "հ": "h", "ձ": "dz", "ղ": ["gh", "x"], "ճ": ["tch", "tsh"], "մ": "m", 
		"յ": ["y", "j"], "ն": "n", "շ": "sh", "ո": ["o", "0"], "չ": "ch", "պ": "p", 
		"ջ": ["j", "dj"], "ռ": "r", "ս": "s", "վ": "v", "տ": "t", "ր": "r", 
		"ց": ["ts", "tc", "c"], "ու": "u", "փ": ["p", "ph"], "ք": ["q", "k"], 
		"և": ["ev", "3v"], "օ": ["o", "0"], "ւ": "u", "ֆ": "f"			
	},
	
	/*
	*This function is called for inside Transliterator.transliterate method. Applies language specific transliteration rules.
	*/
	applyTranslitRules: function(word, currIndex) {
		if(word.length < currIndex) {
			throw new Error("ERROR: Index is out of bounds");
		}
		
		var retVal = null;
		
		var currChar = word.charAt(currIndex);
		switch(currChar) {
			case "ո":
				if(currIndex != word.length - 1) {
					if(word.charAt(currIndex+1) == "ւ") {
						if(currIndex == 0) {
							retVal = {latinChar: "u", moveCursor:	1 };
						} else {
							retVal = {latinChar: ["u", "ou", "oo"], moveCursor:	1 };						
						}					
					}  else if(currIndex == 0) {
						retVal = {latinChar: ["vo", "wo"]};	
					} 
				} else if(currIndex == 0) {
					retVal = {latinChar: ["vo", "wo"]};	
				}
			break;

			case "ե":
				if(currIndex == 0) {
					retVal = {latinChar: ["ye", "je", "e", "3"]};					
				}
			break;

			case "և":
				if(currIndex == 0 && word.length == 1) {
					retVal = {latinChar: ["yev", "jev", "y3v", "j3v"]};					
				}
			break;
			case "կ":
			case "ք":
				if(currIndex != word.length - 1) {
					if(word.charAt(currIndex+1) == "ս") {
						retVal = {latinChar: ["x", "ks", "qs"], moveCursor:	1 };
					}		
				}
			break;
		}
		
		return retVal;
	}
}
