// Load the Google Transliteration API

google.load("elements", "1", {packages: "transliteration"});
google.load("language", "1");
	
jQuery(function($) { 
$(document).ready(function(){
	var options = {
		sourceLanguage:google.elements.transliteration.LanguageCode.ENGLISH,
		destinationLanguage:google.elements.transliteration.LanguageCode.MALAYALAM,
	  shortcutKey: 'ctrl+m',
	  transliterationEnabled: false
	};
	// Create an instance on TransliterationControl with the required options.
	var control = new google.elements.transliteration.TransliterationControl(options);

	var curElem = null;
	// Enable transliteration in the textfields with the given ids.
	var arElem = new Array();
	var arBranding = new Array();
	var i = 0;
	if(document.location.toString().indexOf("/community/member.php") != -1)return;
	var nameRegEx = new RegExp("user|email|captcha");
	$('textarea').each(function(){
		$this = $(this);
		var visible = ($this.css('display') != 'none' && $this.css('visibility') != 'hidden');
		if((visible || $this.next('iframe').length > 0) && !$this.hasClass('noTranslit')){
			arElem[i] = this;
			$this.wrap('<table class="translitControl"><tr><td></td></tr></table>').closest('tr').before('<tr><td></td></td>');
			$this.height($this.height() - 45);
			$this.focus(onFocus).before('<table class="translitControl"><tr><td><div id="translitControlButton_'+i+'" class="btnTranslit" href="#"></div></td><td><span id="translitMessage'+i+'"></span></td></tr></table').after('<div class="branding" id="gBranding'+i+'"></div>');
			google.language.getBranding('gBranding'+i);
			this.controlButton = $('#translitControlButton_'+i)[0];
			$('#translitControlButton_'+i)[0].inputField = this;
			i++;
		}
	});
	$(':text').each(function(){
		$this = $(this);
		var name = $this.attr('name') ? $this.attr('name') : $this.attr('id');
		var size = $this.attr('size');
		if(!(name.match(nameRegEx) || (size && size < 6) || $this.hasClass('noTranslit'))){
			$this.focus(onFocus).before('<a id="translitControlButton_'+i+'" class="btnTranslit" href="#"> </a>');
			this.controlButton = $('#translitControlButton_'+i)[0];
			$('#translitControlButton_'+i)[0].inputField = this;
			arElem[i] = this;
			width = $this.width();
			if(width > 100)$this.width(width - 25);
			i++;
		}
	});
	control.addEventListener(google.elements.transliteration.TransliterationControl.EventType.STATE_CHANGED, setCurElemState);

	control.makeTransliteratable(arElem, {adjustTextareaStyle:false});
	$('.btnTranslit').click(toggleState).each(function(){
		if(this.inputField.id && $.cookie('translit_'+this.inputField.id) == '1')$(this).click();
		else setCurElem(this.inputField);//setState(false, this.inputField);
	});
	$('#debug').next().after('<div class="branding" id="gBranding"></div>');
	google.language.getBranding('gBranding');
	function onFocus(){
		setCurElem(this)
	}
	function setCurElem(el){
		curElem = el;
		setState(el.state ? el.state : false, el);
	}
	function setCurElemState(e){
		if(curElem){
			//curElem.state = e.transliterationEnabled;
			var state = e.transliterationEnabled;
			curElem.state = state;
			setState(state, curElem);
		}
	}
	function toggleState(){
		setCurElem(this.inputField);
		control.toggleTransliteration();
		setState(control.isTransliterationEnabled(), this.inputField);
		return false;
	}
	function setState(state, elem){
		if(!elem){
			if(!curElem)return;
			else elem = curElem;
		}
		if(elem.id) $.cookie('translit_'+elem.id, state ? '1' : '0');
		elem.state = state;
		if(state){
			$(elem.controlButton).addClass('btnTranslitEnabled').next().html("Type in '<i>Manglish</i>' and hit space. Press Ctrl + M to switch to English.");
			if(!control.isTransliterationEnabled()) control.enableTransliteration();
		}else{
			if(control.isTransliterationEnabled()) control.disableTransliteration();
			$(elem.controlButton).removeClass('btnTranslitEnabled').next().html('Press Ctrl + M to switch to Malayalam.');
		}
	}
	
});
});
