/**
 * Klasa za prevod teksta sa cirilice na latinicu.	
 * @author Jelena Kutlaca [mailto:jelena.kutlaca@activez.net]
 */

	var sadrzaj;

	var prevod;
		
	function setSadrzaj(sadrzaj){
	//	sadrzaj=sadrzaj;
		
	}

	function getPrevod(){
		return prevod;
	} 
	
	function cir2lat(Source) { 
		var retValue = Source;
		latinica = new Array('lj','nj','dž','Lj','Nj','Dž','a','b','v','g','d','đ','e','ž','z','i','j','k','l','m','n','o','p','r','s','t','ć','u','f','h','c','č','š','A','B','V','G','D','Đ','E','Ž','Z','I','J','K','L','M','N','O','P','R','S','T','Ć','U','F','H','C','Č','Š'); 
		cirilica = new Array ('љ','њ','џ','Љ','Њ','Џ','а','б','в','г','д','ђ','е','ж','з','и','ј','к','л','м','н','о','п','р','с','т','ћ','у','ф','х','ц','ч','ш','А','Б','В','Г','Д','Ђ','Е','Ж','З','И','Ј','К','Л','М','Н','О','П','Р','С','Т','Ћ','У','Ф','Х','Ц','Ч','Ш'); 
		
		for(i=0; i<latinica.length; i++){
			p = new RegExp(cirilica[i], "g");
			retValue = retValue.replace(p, latinica[i]);
		}
		return retValue;
	} 
	
	function cirSmall2Big(Source) { 
		var retValue = Source;
		cirilica_big = new Array('Љ','Њ','Џ','Љ','Њ','Џ','Џ','А','Б','В','Г','Д','Ђ','Е','Ж','З','И','Ј','К','Л','М','Н','О','П','Р','С','Т','Ћ','У','Ф','Х','Ц','Ч','Ш','А','Б','В','Г','Д','Ђ','Е','Ж','З','И','Ј','К','Л','М','Н','О','П','Р','С','Т','Ћ','У','Ф','Х','Ц','Ч','Ш'); 
		cirilica_small = new Array ('љ','њ','џ','Љ','Њ','Џ','Џ','а','б','в','г','д','ђ','е','ж','з','и','ј','к','л','м','н','о','п','р','с','т','ћ','у','ф','х','ц','ч','ш','А','Б','В','Г','Д','Ђ','Е','Ж','З','И','Ј','К','Л','М','Н','О','П','Р','С','Т','Ћ','У','Ф','Х','Ц','Ч','Ш'); 
		
		for(i=0; i<cirilica_big.length; i++){
			p = new RegExp(cirilica_small[i], "g");
			retValue = retValue.replace(p, cirilica_big[i]);
		}
		return retValue;
	}
	
	function latSmall2Big(Source) { 
		var retValue = Source;
		latinica_big = new Array('Č','Ć','Ž','Š','Đ'); 
		latinica_small = new Array ('č','ć','ž','š','đ'); 

		for(i=0; i<latinica_big.length; i++){
			p = new RegExp(latinica_small[i], "g");
			retValue = retValue.replace(p, latinica_big[i]);
		}
		return retValue;
	} 
	
	
	function lat2uni(Source) { 
		var retValue = Source;
		latinica = new Array('lj','nj','dž','Lj','LJ','Nj','NJ','Dž','DŽ','a','b','v','g','d','đ','e','ž','z','i','j','k','l','m','n','o','p','r','s','t','ć','u','f','h','c','č','š','A','B','V','G','D','Đ','E','Ž','Z','I','J','K','L','M','N','O','P','R','S','T','Ć','U','F','H','C','Č','Š'); 
		uni = new Array ('lj','nj','d&#382;','Lj','LJ','NJ','NJ','D&#382;','&#381;','a','b','v','g','d','&#273;','e','&#382;','z','i','j','k','l','m','n','o','p','r','s','t','&#263;','u','f','h','c','&#269;','&#353;','A','B','V','G','D','&#272;','E','&#381;','Z','I','J','K','L','M','N','O','P','R','S','T','&#262;','U','F','H','C','&#268;','&#352;'); 

		for(i=0; i<latinica.length; i++){
			p = new RegExp(latinica[i], "g");
			retValue = retValue.replace(p, uni[i]);
		}
		return retValue;
	} 
	
	function stripLatinTags(Source) {
		var retValue = Source;
		
		patternCodeLatStart = new RegExp('&lt;lat', "g");
		retValue = retValue.replace(patternCodeLatStart, '');
		patternCodeLatEnd = new RegExp('/lat&gt;', "g");
		retValue = retValue.replace(patternCodeLatEnd, '');
		
		return retValue;
	}
	
	function changeLatinTags(Source) {
		var retValue = Source;
		
		patternCodeLatStart = new RegExp('&lt;lat', "g");
		retValue = retValue.replace(patternCodeLatStart, '&amp;lt;lat');
		patternCodeLatEnd = new RegExp('/lat&gt;', "g");
		retValue = retValue.replace(patternCodeLatEnd, '/lat&amp;gt;');
		
		return retValue;
	}
	
	function stripInputLatinTags(Source) {
		var retValue = Source;
		
		patternCodeLatStart = new RegExp('<lat', "g");
		retValue = retValue.replace(patternCodeLatStart, '');
		patternCodeLatEnd = new RegExp('/lat>', "g");
		retValue = retValue.replace(patternCodeLatEnd, '');
		
		return retValue;
	}
	
	function lat2cir(Source) { 
		var retValue = Source;
		var patArray = new Array();
		var splitArray = new Array();

		latinica = new Array('lj','nj','dž','Lj','LJ','Nj','NJ','Dž','DŽ','a','b','v','g','d','đ','e','ž','z','i','j','k','l','m','n','o','p','r','s','t','ć','u','f','h','c','č','š','A','B','V','G','D','Đ','E','Ž','Z','I','J','K','L','M','N','O','P','R','S','T','Ć','U','F','H','C','Č','Š');
		cirilica = new Array ('љ','њ','џ','Љ','Љ','Њ','Њ','Џ','Џ','а','б','в','г','д','ђ','е','ж','з', 'и', 'ј', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'ћ', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'А', 'Б', 'В', 'Г', 'Д', 'Ђ', 'Е', 'Ж', 'З', 'И', 'Ј', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'Ћ', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш'); 
//		specSerbCharacters = new Array ('&нбсп', '&лт', '&гт', '&qуот', '&амп', '&лсqуо', '&рсqуо', '&бдqуо', '&лдqуо', '&рдqуо', '&ндасх', '&поунд', '&копy', '&рег', '&yен', '&пара', '&лаqуо', '&раqуо', '&цент', '&еуро', '&фрасл', '&мдасх', '&лсаqуо', '&рсаqуо');
//		specLatCharacters = new Array ('&nbsp', '&lt', '&gt', '&quot', '&amp', '&lsquo', '&rsquo', '&bdquo', '&ldquo', '&rdquo', '&ndash', '&pound', '&copy', '&reg', '&yen', '&para', '&laquo', '&raquo', '&cent', '&euro', '&frasl', '&mdash', '&lsaquo', '&rsaquo');

		specSerbCharacters = new Array ('&нбсп;', '&амп;', '&qуот;', '&цент;', '&еуро;', '&поунд;', '&yен;', '&цопy;', '&рег;', '&траде;', '&пермил;', '&мицро;', '&миддот;',
				'&булл;', '&хеллип;', '&приме;', '&Приме;', '&сецт;', '&пара;', '&сзлиг;', '&лсаqуо;', '&рсаqуо;', '&лаqуо;', '&раqуо;', '&лсqуо;',
				'&рсqуо;', '&лдqуо;', '&рдqуо;', '&сбqуо;', '&бдqуо;', '&лт;', '&гт;', '&ле;', '&ге;', '&ндасх;', '&мдасх;', '&мацр;', '&олине;', '&цуррен;',
				'&брвбар;', '&умл;', '&иеxцл;', '&иqуест;', '&цирц;', '&тилде;', '&дег;', '&минус;', '&плусмн;', '&дивиде;', '&фрасл;', '&тимес;',
				'&суп1;', '&суп2;', '&суп3;', '&фрац14;', '&фрац12;', '&фрац34;', '&фноф;', '&инт;', '&сум;', '&инфин;', '&радиц;', '&асyмп;', '&не;',
				'&еqуив;', '&прод;', '&нот;', '&цап;', '&парт;', '&ацуте;', '&цедил;', '&ордф;', '&ордм;', '&даггер;', '&Даггер;', '&Аграве;', '&Аацуте;',
				'&Ацирц;', '&Атилде;', '&Аумл;', '&Аринг;', '&АЕлиг;', '&Ццедил;', '&Еграве;', '&Еацуте;', '&Ецирц;', '&Еумл;', '&Играве;', '&Иацуте;',
				'&Ицирц;', '&Иумл;', '&ЕТХ;', '&Нтилде;', '&Ограве;', '&Оацуте;', '&Оцирц;', '&Отилде;', '&Оумл;', '&Осласх;', '&ОЕлиг;', '&Сцарон;',
				'&Уграве;', '&Уацуте;', '&Уцирц;', '&Уумл;', '&Yацуте;', '&Yумл;', '&ТХОРН;', '&аграве;', '&аацуте;', '&ацирц;', '&атилде;', '&аумл;', '&аринг;',
				'&аелиг;', '&ццедил;', '&еграве;', '&еацуте;', '&ецирц;', '&еумл;', '&играве;', '&иацуте;', '&ицирц;', '&иумл;', '&етх;', '&нтилде;',
				'&ограве;', '&оацуте;', '&оцирц;', '&отилде;', '&оумл;', '&осласх;', '&оелиг;', '&сцарон;', '&уграве;', '&уацуте;', '&уцирц;', '&уумл;', '&yацуте;',
				'&тхорн;', '&yумл;', '&Бета;', '&Гамма;', '&Делта;', '&Епсилон;', '&Зета;', '&Ета;', '&Тхета;', '&Иота;', '&Каппа;', '&Ламбда;', '&Му;',
				'&Ну;', '&Xи;', '&Омицрон;', '&Пи;', '&Рхо;', '&Сигма;', '&Тау;', '&Упсилон;', '&Пхи;', '&Цхи;', '&Пси;', '&Омега;', '&алпха;', '&бета;', '&гамма;',
				'&делта;', '&епсилон;', '&зета;', '&ета;', '&тхета;', '&иота;', '&каппа;', '&ламбда;', '&му;', '&ну;', '&xи;', '&омицрон;', '&пи;',
				'&рхо;', '&сигмаф;', '&сигма;', '&тау;', '&упсилон;', '&пхи;', '&цхи;', '&пси;', '&омега;', '&ларр;', '&уарр;', '&рарр;', '&дарр;',
				'&харр;', '&лоз;', '&цлубс;', '&хеартс;', '&диамс;');
  				
		specLatCharacters = new Array ('&#160;', '&#38;', '&#34;', '&#162;', '&#8364;', '&#163;', '&#165;', '&#169;', '&#174;', '&#8482;', '&#8240;', '&#181;', '&#183;', 
  			'&#8226;', '&#8230;', '&#8242;', '&#8243;', '&#167;', '&#182;', '&#223;', '&#8249;', '&#8250;', '&#171;', '&#187;', '&#8216;',
  			'&#8217;', '&#8220;', '&#8221;', '&#8218;', '&#8222;', '&#60;', '&#62;', '&#8804;', '&#8805;', '&#8211;', '&#8212;', '&#175;', 
  			'&#8254;', '&#164;', '&#166;', '&#168;', '&#161;', '&#191;', '&#710;', '&#732;', '&#176;', '&#8722;', '&#177;', '&#247;', '&#8260;',
  			'&#215;', '&#185;', '&#178;', '&#179;', '&#188;', '&#189;', '&#190;', '&#402;', '&#8747;', '&#8721;', '&#8734;', '&#8730;', '&#8776;',
  			'&#8800;', '&#8801;', '&#8719;', '&#172;', '&#8745;', '&#8706;', '&#180;', '&#184;', '&#170;', '&#186;', '&#8224;', '&#8225;', '&#192;', 
  			'&#193;', '&#194;', '&#195;', '&#196;', '&#197;', '&#198;', '&#199;', '&#200;', '&#201;', '&#202;', '&#203;', '&#204;', '&#205;', '&#206;', 
  			'&#207;', '&#208;', '&#209;', '&#210;', '&#211;', '&#212;', '&#213;', '&#214;', '&#216;', '&#338;', '&#352;', '&#217;', '&#218;', '&#219;', 
  			'&#220;', '&#221;', '&#376;', '&#222;', '&#224;', '&#225;', '&#226;', '&#227;', '&#228;', '&#229;', '&#230;', '&#231;', '&#232;', '&#233;', 
  			'&#234;', '&#235;', '&#236;', '&#237;', '&#238;', '&#239;', '&#240;', '&#241;', '&#242;', '&#243;', '&#244;', '&#245;', '&#246;', '&#248;', 
  			'&#339;', '&#353;', '&#249;', '&#250;', '&#251;', '&#252;', '&#253;', '&#254;', '&#255;', '&#914;', '&#915;', '&#916;', '&#917;', '&#918;', 
  			'&#919;', '&#920;', '&#921;', '&#922;', '&#923;', '&#924;', '&#925;', '&#926;', '&#927;', '&#928;', '&#929;', '&#931;', '&#932;', '&#933;',
  			'&#934;', '&#935;', '&#936;', '&#937;', '&#945;', '&#946;', '&#947;', '&#948;', '&#949;', '&#950;', '&#951;', '&#952;', '&#953;', '&#954;',
  			'&#955;', '&#956;', '&#957;', '&#958;', '&#959;', '&#960;', '&#961;', '&#962;', '&#963;', '&#964;', '&#965;', '&#966;', '&#967;', '&#968;', 
  			'&#969;', '&#8592;', '&#8593;', '&#8594;', '&#8595;', '&#8596;', '&#9674;', '&#9827;', '&#9829;', '&#9830;');

		var patternCodeLatStart = new RegExp('&lt;lat', "g");
		retValue = retValue.replace(patternCodeLatStart, '<lat');
		var patternCodeLatEnd = new RegExp('/lat&gt;', "g");
		retValue = retValue.replace(patternCodeLatEnd, '/lat>');
		
		pattern = new RegExp('<.*?>', "g");
		patArray = retValue.match(pattern);
		
		for(i=0; i<latinica.length; i++){
			p = new RegExp(latinica[i], "g");
			retValue = retValue.replace(p, cirilica[i]);
		}
		
		newPatArray = retValue.match(pattern);
		posOfPatArray = new Array();
		if(patArray != null && patArray.length>0){
			var pos = 0;
			var splitPos = 0;
			var maxNum = 0;
			var newRetValue = "";
			
			splitArray = retValue.split(pattern);	
			posOfSplitArray = new Array();
				
			for(i=0; i<patArray.length; i++){
				pos = retValue.indexOf(newPatArray[i], pos);
				posOfPatArray[i] = pos;
				pos = pos + newPatArray[i].length;
			}
			
			if(splitArray != null && splitArray.length>0){
				for(i=0; i<splitArray.length; i++){
					splitPos = retValue.indexOf(splitArray[i], splitPos);
					posOfSplitArray[i] = splitPos;
					splitPos = splitPos + splitArray[i].length;
				}
				maxNum = patArray.length + splitArray.length;
				
				var j = 0;
				var k = 0;
				for(i=0; i<maxNum; i++){				
					if(k<patArray.length){
						if(j<splitArray.length){
							if(posOfPatArray[k] < posOfSplitArray[j]){
								newRetValue = newRetValue + patArray[k];
								k++;
							} else {
										newRetValue = newRetValue + splitArray[j];
										j++;
									}					
						} else {
									if(k<=patArray.length){
										newRetValue = newRetValue + patArray[k];
										k++;
									}
								}					
					} else {
								if(j<=splitArray.length){
									newRetValue = newRetValue + splitArray[j];
									j++;
								}
							}										
				}
			} else {
						var k = 0;
						maxNum = patArray.length;
						for(i=0; i<maxNum; i++){
							if(k<=patArray.length){
								newRetValue = newRetValue + patArray[k];
								k++;
							}						
						}
					}	
													
			for(i=0; i<specSerbCharacters.length; i++){
				specPattern = new RegExp(specSerbCharacters[i], "g");
				newRetValue = newRetValue.replace(specPattern, specLatCharacters[i]);
			}			
	//		alert("newRetValue:  " + newRetValue);
			patternCodeLatStart = new RegExp('<lat', "g");
			newRetValue = newRetValue.replace(patternCodeLatStart, '');
			patternCodeLatEnd = new RegExp('/lat>', "g");
			newRetValue = newRetValue.replace(patternCodeLatEnd, '');

	//		alert("newRetValue:  " + newRetValue);	
			return 	newRetValue;					
		}	
		
		for(i=0; i<specSerbCharacters.length; i++){
			specPattern = new RegExp(specSerbCharacters[i], "g");
			retValue = retValue.replace(specPattern, specLatCharacters[i]);
		}
	//	alert("retValue:  " + retValue);		
		return retValue;
	} 

/*	function cir2uni(Source) { 
		uni = new Array('&#1113;','&#1114;','&#1119;','&#1033;','&#1033;',
			     '&#1034;','&#1034;','&#1039;','&#1039;','&#1072;',
			     '&#1073;','&#1074;','&#1075;','&#1076;','&#1106;',
			     '&#1077;','&#1078;','&#1079;','&#1080;','&#1112;',
			     '&#1082;','&#1083;','&#1084;','&#1085;','&#1086;',
			     '&#1087;','&#1088;','&#1089;','&#1090;','&#1115;',
			     '&#1091;','&#1092;','&#1093;','&#1094;','&#1095;',
			     '&#1096;','&#1040;','&#1041;','&#1042;','&#1043;',
			     '&#1044;','&#1026;','&#1045;','&#1046;','&#1047;',
			     '&#1048;','&#1032;','&#8226;','&#1051;','&#1052;',
			     '&#1053;','&#1050;','&#1055;','&#1056;','&#1057;',
			     '&#1058;','&#1035;','&#1059;','&#1060;','&#1061;','&#1062;'); 
			     
			     
		cirilica = new Array ('љ','њ','џ','Љ','Љ',
				    'Њ','Њ','Џ','Џ','а',
				    'б','в','г','д','ђ',
				    'е','ж','з','и','ј',
				    'к','л','м','н','о',
				    'п','р','с','т','ћ',
				    'у','ф','х','ц','ч',
				    'ш','А','Б','В','Г',
				    'Д','Ђ','Е','Ж','З',
				    'И','Ј','K','Л','М',
				    'Н','O','П','Р','С',
				    'Т','Ћ','У','Ф','Х',
				    'Ц'); 
		return preg_replace(cirilica,uni,Source); 
	} */
	
	function cir2unilat(Source) {   			 //cirilica u latinicni unicod 
		var retValue = Source;
		cirilica = new Array('љ','њ','џ','Љ','Љ',
				    'Њ','Њ','Џ','Џ','а',
				    'б','в','г','д','ђ',
				    'е','ж','з','и','ј',
				    'к','л','м','н','о',
				    'п','р','с','т','ћ',
				    'у','ф','х','ц','ч',
				    'ш','А','Б','В','Г',
				    'Д','Ђ','Е','Ж','З',
				    'И','Ј','K','Л','М',
				    'Н','O','П','Р','С',
				    'Т','Ћ','У','Ф','Х',
				    'Ц'); 
		uni = new Array ('lj','nj','d&#382;','Lj','LJ',
			      'NJ','NJ','D&#382;','&#381;',
			      'a','b','v','g','d','&#273;',
			      'e','&#382;','z','i','j','k',
			      'l','m','n','o','p','r','s',
			      't','&#263;','u','f','h','c',
			      '&#269;','&#353;','A','B','V',
			      'G','D','&#272;','E','&#381;',
			      'Z','I','J','K','L','M','N','O',
			      'P','R','S','T','&#262;','U','F',
			      'H','C','&#268;','&#352;'); 
			      
		for(i=0; i<cirilica.length; i++){
			p = new RegExp(cirilica[i], "g");
			retValue = retValue.replace(p, uni[i]);
		}
		return retValue;
	} 
	
	function cir2uni(Source) { 	 		//cirilica u unikod
		var retValue = Source;
		uni = new Array('&#1113;','&#1114;','&#1119;','&#1033;','&#1033;',
			     '&#1034;','&#1034;','&#1039;','&#1039;','&#1072;',
			     '&#1073;','&#1074;','&#1075;','&#1076;','&#1106;',
			     '&#1077;','&#1078;','&#1079;','&#1080;','&#1112;',
			     '&#1082;','&#1083;','&#1084;','&#1085;','&#1086;',
			     '&#1087;','&#1088;','&#1089;','&#1090;','&#1115;',
			     '&#1091;','&#1092;','&#1093;','&#1094;','&#1095;',
			     '&#1096;','&#1040;','&#1041;','&#1042;','&#1043;',
			     '&#1044;','&#1026;','&#1045;','&#1046;','&#1047;',
			     '&#1048;','&#1032;','&#1051;','&#1052;','&#1053;',
			     '&#1055;','&#1056;','&#1057;','&#1058;','&#1035;',
			     '&#1059;','&#1060;','&#1061;','&#1062;','&#1063;',
			     '&#1064;'); 
		cirilica = new Array ('љ','њ','џ','Љ','Љ',
				    'Њ','Њ','Џ','Џ','а',
				    'б','в','г','д','ђ',
				    'е','ж','з','и','ј',
				    'к','л','м','н','о',
				    'п','р','с','т','ћ',
				    'у','ф','х','ц','ч',
				    'ш','А','Б','В','Г',
				    'Д','Ђ','Е','Ж','З',
				    'И','Ј','K','Л','М',
				    'Н','O','П','Р','С',
				    'Т','Ћ','У','Ф','Х',
				    'Ц'); 
		
		for(i=0; i<cirilica.length; i++){
			p = new RegExp(cirilica[i], "g");
			retValue = retValue.replace(p, uni[i]);
		}
		return retValue;	    
		//return preg_replace(cirilica,uni,Source); 
	} 
