
var i18n = (function i18n() {
	var ltrChars = 'A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02B8\u0300-\u0590\u0800-\u1FFF' + '\u2C00-\uFB1C\uFDFE-\uFE6F\uFEFD-\uFFFF',
  	rtlChars = '\u0591-\u07FF\uFB1D-\uFDFD\uFE70-\uFEFC',
    ltrDirCheckRe = new RegExp('^[^' + rtlChars + ']*[' + ltrChars + ']'),
    rtlDirCheckRe = new RegExp('^[^' + ltrChars + ']*[' + rtlChars + ']');

	// Inbuilt addEvent function
  function addEvent(obj, type, fn, tmp) {
  	tmp || (tmp = true);
    if (obj.attachEvent) {
    	obj["e" + type + fn] = fn;
      obj[type + fn] = function() { 
      	obj["e" + type + fn](window.event); 
     	};
      obj.attachEvent("on" + type, obj[type + fn]);
    } 
    else {
    	obj.addEventListener(type, fn, true);
   	};
  };

 	function addElemEvents(elem) {
  	addEvent(elem, "keydown", check);
    addEvent(elem, "keyup", check);
    checkDirection(elem);
 	};

  function check(e) {
  	checkDirection(this);
  };

  function checkDirection(elem) {
  	var text = elem.value;
    elem.dir = isRtlText(text) ? 'rtl' : (isLtrText(text) ? 'ltr' : '');
  };

  function isRtlText(text) {
  	return rtlDirCheckRe.test(text);
  };

  function isLtrText(text) {
  	return ltrDirCheckRe.test(text);
  };

  return {
  	addElements: function(elems) {
    	if (!elems.length) {
    		elems = [elems];
    	}
      for (var i = 0, elem; elem = elems[i]; i++) {
      	addElemEvents(elem);
      };
    }
  };
})();


function formsDirection() {
	//jQuery(".content").css('direction', 'rtl');
	//jQuery("input:text").css('direction', 'rtl');
	//jQuery("textarea").css('direction', 'rtl');
	//jQuery(".content").css('align', 'right');
	
	var fields = new Array;
	var j = 1111;
	
	//
	texts = jQuery("input:text");
	textareas = jQuery("textarea");
	
	//
	jQuery.each(texts, function(key, item) {
		if(item.id == '') {
			var tmp = "input_" + j;
			jQuery(this).attr("id", tmp);
			fields.push(tmp);
		}
		else {
			fields.push(item.id);
		}
		j++;
	});
	
	//
	jQuery.each(textareas, function(key, item) {
		if(item.id == '') {
			var tmp = "textarea_" + j;
			jQuery(this).attr("id", tmp);
			fields.push(tmp);
		}
		else {
			fields.push(item.id);
		}
		j++;
	});
	
	//
	jQuery.each(fields, function(key, item) {
		i18n.addElements([document.getElementById(item)]);
	});	
}

/*
function check(e) {
	checkDirection(this);
};
*/
function checkDirection(text) {
	//var text = elem.value;
  //elem.dir = isRtlText(text) ? 'rtl' : (isLtrText(text) ? 'ltr' : '');
  var dir = isRtlText(text) ? 'rtl' : (isLtrText(text) ? 'ltr' : '');
  return dir;
};

function isRtlText(text) {
	var ltrChars = 'A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02B8\u0300-\u0590\u0800-\u1FFF' + '\u2C00-\uFB1C\uFDFE-\uFE6F\uFEFD-\uFFFF',
  	rtlChars = '\u0591-\u07FF\uFB1D-\uFDFD\uFE70-\uFEFC',
    ltrDirCheckRe = new RegExp('^[^' + rtlChars + ']*[' + ltrChars + ']'),
    rtlDirCheckRe = new RegExp('^[^' + ltrChars + ']*[' + rtlChars + ']');
	
	return rtlDirCheckRe.test(text);
};

function isLtrText(text) {
	var ltrChars = 'A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02B8\u0300-\u0590\u0800-\u1FFF' + '\u2C00-\uFB1C\uFDFE-\uFE6F\uFEFD-\uFFFF',
  	rtlChars = '\u0591-\u07FF\uFB1D-\uFDFD\uFE70-\uFEFC',
    ltrDirCheckRe = new RegExp('^[^' + rtlChars + ']*[' + ltrChars + ']'),
    rtlDirCheckRe = new RegExp('^[^' + ltrChars + ']*[' + rtlChars + ']');
	
	return ltrDirCheckRe.test(text);
};



function contentSettings() {
	var contents = jQuery("#messages .content");
	
	jQuery.each(contents, function (key, element) {
		var dir;
		var content = jQuery(this).text();
		
		content = jQuery.trim(content);
		dir = checkDirection(content);
		jQuery(this).css('direction', dir);
	});	
}

function commentSettings() {
	
}


jQuery(document).ready(function() {
	formsDirection();
	contentSettings();
});	