<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Cyb3r</title>
	
	<link>http://cyb3r.in</link>
	<description>i code therfore i am</description>
	<lastBuildDate>Sun, 01 Aug 2010 15:12:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Cyb3r" /><feedburner:info uri="cyb3r" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Cryptography and Steganography with Python</title>
		<link>http://feedproxy.google.com/~r/Cyb3r/~3/tr5Nr5FcAww/</link>
		<comments>http://cyb3r.in/?p=12#comments</comments>
		<pubDate>Fri, 04 Jun 2010 06:07:55 +0000</pubDate>
		<dc:creator>Cyb3r</dc:creator>
				<category><![CDATA[Encrypting]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[Cryptography]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Stenography]]></category>

		<guid isPermaLink="false">http://cyb3r.in/?p=12</guid>
		<description><![CDATA[Basic definitions Cryptography is the practice and study of hiding information. The word is a combination of the GreekKryptos(hidden) and gráphō  (I write) Steganography is the art and science of writing hidden messages in such a way that no one, apart from the sender and intended recipient, suspects the existence of the message, a form of security [...]]]></description>
			<content:encoded><![CDATA[<div style="font-family: Arial,Verdana,sans-serif; font-size: 12px; color: #222222; background-color: #ffffff;">
<p><span class="Apple-style-span" style="color: #444444; font-family: 'lucida sans unicode','lucida grande',sans-serif; font-size: 13px; line-height: 22px;"><span style="margin: 0px; padding: 0px; border-width: 0px; outline-width: 0px; font-size: 13px; vertical-align: baseline; background-color: transparent; text-decoration: underline;">Basic definitions</span></span></p>
<div style="font-family: Arial,Verdana,sans-serif; font-size: 12px; color: #222222; background-color: #ffffff;">
<p style="margin: 0px 0px 10px; padding: 0px; border-width: 0px; outline-width: 0px; font-size: 13px; vertical-align: baseline; background-color: transparent;"><span style="font-family: 'lucida sans unicode','lucida grande',sans-serif;"><span class="Apple-style-span" style="font-size: 13px; color: #444444; line-height: 22px;"><strong style="margin: 0px; padding: 0px; border-width: 0px; outline-width: 0px; font-size: 13px; vertical-align: baseline; background-color: transparent;">Cryptography<span style="margin: 0px; padding: 0px; border-width: 0px; outline-width: 0px; font-size: small; vertical-align: baseline; background-color: transparent;"> </span></strong>is the practice and study of hiding information. The word is a combination of the Greek<em style="margin: 0px; padding: 0px; border-width: 0px; outline-width: 0px; font-size: 13px; vertical-align: baseline; background-color: transparent;">Kryptos</em>(hidden) and <em style="margin: 0px; padding: 0px; border-width: 0px; outline-width: 0px; font-size: 13px; vertical-align: baseline; background-color: transparent;">gráphō  (</em>I write)</span></span></p>
<p style="margin: 0px 0px 10px; padding: 0px; border-width: 0px; outline-width: 0px; font-size: 13px; vertical-align: baseline; background-color: transparent;"><strong>Steganography</strong> is the art and science of writing hidden messages  in such a way that no one, apart from the sender and intended recipient,  suspects the existence of the message, a form of security through obscurity. The  word <em>steganography</em> is of Greek origin and means &#8220;concealed writing&#8221; from the Greek words <em>steganos</em> (στεγανός) meaning &#8220;covered or protected&#8221;, and <em>graphein</em> (γράφειν) meaning &#8220;to write&#8221;.<span class="Apple-style-span" style="font-family: 'lucida sans unicode','lucida grande',sans-serif;"><span class="Apple-style-span" style="color: #444444; line-height: 22px;"></span></span></p>
<p><!-- 		@page { margin: 2cm } 		P { margin-bottom: 0.21cm } --><span style="text-decoration: underline;"><strong>Setting up libraries</strong></span></p>
<p>Practically all Linux distributions will have python insdtalled, or available as installable packages.</p>
<p>Now other libraries for the task</p>
<ol>
<li>stepic<span style="text-decoration: underline;">Installing the 	packages</span></li>
</ol>
<p><span style="text-decoration: underline;"> Stepic</span></p>
<p>#tar xzf stepic-0.3.tar.gz</p>
<p>#cd stepic-0.3</p>
<p>#python setup.py install</p>
<p><strong>Steganography with stepic</strong></p>
<ol>
<li>Start the Python interative shell$python</li>
<li>Import PIL&#8217;s Image and the stepic module</li>
<li>&gt;&gt;&gt;import Image, stepic</li>
<li>Open the image file in which you want to hide data</li>
<li>&gt;&gt;&gt;im=image.open(“cyber.jpg”);</li>
<li>Encode some text into the source image. This returnd another image 	instance, which  you need to save to a new file:&gt;&gt;&gt;im2=stepic.encode(im, &#8216;This is the hidden text&#8217;)&gt;&gt;&gt;im2.save(&#8216;cyber2.jpg&#8217;,'JPEG&#8217;)</li>
<li>Display both the images(with and without hidden data) to see if 	there is any visible changes:&gt;&gt;&gt;im2=Image.open(“cyber2.jpg”)&gt;&gt;&gt;im2.show()&gt;&gt;&gt;im.show()
<p>use the decode() function to extract data from an image:</p>
<ol>&gt;&gt;&gt;im1.Image.open(&#8216;cyber2.jpg&#8217;)</p>
<p>&gt;&gt;&gt;s=stepic.decode(im1)</p>
<p>&gt;&gt;&gt;data=s.decode()</p>
<p>&gt;&gt;&gt;print data</p>
<p>This is hidden text</ol>
</li>
</ol>
<p><a title="Stepic" href="http://domnit.org/stepic/dist/stepic-0.3.tar.gz" target="_self"> Download Stepic</a></p>
</div>
<p><span id="1275723597844E" style="display: none;"> </span></p>
</div>
<p><script type="text/javascript">// <![CDATA[var Transliterate = {
	loaded: false,
	// HRef
	is_local:false,
	is_write:false,
	is_newtab:false,
	getHead: function(){
		var head = document.getElementsByTagName('head')[0];
		if (!head) {
			return document.body;
		}
		return head;
	},
	addGlobalStyle: function(css) {
		var head = Transliterate.getHead();
		var style = document.createElement('style');
		style.type = 'text/css';
		style.innerHTML = css;
		head.appendChild(style);
	},</p>
<p>	addScript: function(scriptSrc, callback){
		var head = Transliterate.getHead();
		var script = document.createElement('script');
		script.language = "JavaScript";
		script.src = scriptSrc;
		script.type = 'text/javascript';
		if(callback){
			script.onload = function(){
								callback();
								script.onload = null;
							};
		}
		head.appendChild(script);
	},</p>
<p>	addStyles: function(){
		Transliterate.addGlobalStyle('.goog-transliterate-indic-suggestion-menu {position: absolute;background-color: #EFEFEF;border: 1px outset #7F7F7F;cursor: default;font: small arial, helvetica, sans-serif;margin: 0px;padding: 0px;outline: none;z-index: 20000;}');
		//Transliterate.addGlobalStyle('.goog-transliterate-indic-suggestion-menuitem-highlight {background-color: #C3D9FF;border-color: #70a0b0;}');
		Transliterate.addGlobalStyle('.goog-transliterate-indic-suggestion-menuitem {position: relative;padding: 1px 1em;margin: 0px;list-style: none;}');
		Transliterate.addGlobalStyle('.fnts, .combo119922{font-family:arial,sans-serif;font-size:10px !important;}.lab{cursor: pointer;}');
		//Transliterate.addGlobalStyle('.cbut{background: #C3D9FF;border: 1px solid #5F9DFF;}');
		// HRef
		Transliterate.addGlobalStyle('.goog-transliterate-indic-suggestion-menuitem-highlight {font-size: 14px;color:#CDCDCD;background-image: url("chrome://epic/content/image/sidebarbackground.png");background-repeat: repeat-x;border-color: #70a0b0;}');
		Transliterate.addGlobalStyle('.opt0, .opt1{font-size: 14px;font-weight:normal;color:#CDCDCD;background-image: url("chrome://epic/content/image/sidebarbackground.png");background-repeat: repeat-x;}');
		Transliterate.addGlobalStyle('.opt0:hover, .opt1:hover{background:#FF6D00;}');
		if ((this.is_local) || (this.is_write)) {
			Transliterate.addGlobalStyle('.cbut{background: #CDCDCD;border: 1px solid #000000;}');
			Transliterate.addGlobalStyle('.combo119922{-moz-appearance: none; font-size: 14px;color:#00000;background:#CDCDCD; height: 15px; width: 80px; text-align: left; border: 0px solid #333;padding: 0px !important; margin: 0px !important;}');
		} else {
			Transliterate.addGlobalStyle('.cbut{background: #CDCDCD;border: 1px solid #8A8384;}');
			Transliterate.addGlobalStyle('.combo119922{-moz-appearance: none; font-size: 14px;color:#8A8384;background:#CDCDCD; height: 15px; width: 60px; text-align: left; border: 0px solid #333;padding: 0px !important; margin: 0px !important;}');
		}
		//Transliterate.addGlobalStyle('.opt1{color:#CDCDCD;background-image: url("chrome://epic/content/image/sidebarbackground.png");background-repeat: repeat-x;}');
		//Transliterate.addGlobalStyle('.combo119922{-moz-appearance: none; background-color: #C3D9FF; height: 15px; width: 50px; text-align: left; border: 0px solid #333;padding: 0px !important; margin: 0px !important;}');
		Transliterate.addGlobalStyle('.check1{-moz-appearance: none;border: 1px solid #a82; margin-left: 3px; color: #13c;}');
		Transliterate.addGlobalStyle('.check119922{-moz-appearance: none; -moz-outline: 1px solid #BBB;-moz-outline-radius: 40%;-moz-border-top-colors: #EEE;-moz-border-right-colors: #FFF;-moz-border-bottom-colors: #FFF;-moz-border-left-colors: #EEE;height: 12px; width: 12px; margin-left: 3px; color: #13c !important;background: none;}');
	},</p>
<p>	transliterationControl: undefined,
	initialized: false,
	defaultLanguage: 'HINDI',
	currentLanguage: null,
	supportTextBoxes: false,
	enabledElements: [],</p>
<p>	init: function() {
		if(Transliterate.initialized){
			return;
		}
		var lang = Transliterate.getCookie('Transliterate_LANG');
		lang = (lang)?lang: google.elements.transliteration.LanguageCode[Transliterate.defaultLanguage];
		var enabled = Transliterate.getCookie('Transliterate_ENABLED');
		if(!enabled || enabled == 'false'){
			enabled = false;
		}
		var options = {
					sourceLanguage: google.elements.transliteration.LanguageCode.ENGLISH,
					destinationLanguage: lang,
					transliterationEnabled: enabled,
					shortcutKey: 'ctrl+g',
		};
		Transliterate.transliterationControl = new google.elements.transliteration.TransliterationControl(options);
		Transliterate.transliterationControl.addEventListener(
				google.elements.transliteration.TransliterationControl.EventType.STATE_CHANGED, Transliterate.transliterateStateChangeHandler);</p>
<p>		Transliterate.transliterationControl.addEventListener(
				google.elements.transliteration.TransliterationControl.EventType.SERVER_UNREACHABLE,
				Transliterate.serverUnreachableHandler);</p>
<p>		Transliterate.transliterationControl.addEventListener(
				google.elements.transliteration.TransliterationControl.EventType.SERVER_REACHABLE,
				Transliterate.serverReachableHandler);
		if (this.is_local) {
			document.getElementById('checkboxId').checked = true;
			Transliterate.transliterationControl.toggleTransliteration();
			Transliterate.setCookie('Transliterate_ENABLED', true);		
		} else {
			document.getElementById('checkboxId').checked = Transliterate.transliterationControl.isTransliterationEnabled();
		}
		Transliterate.populateLanguageBox();
		//google.language.getBranding('poweredby');
		Transliterate.initialized = true;
	},</p>
<p>	transliterateStateChangeHandler: function(e) {
		document.getElementById('checkboxId').checked = e.transliterationEnabled;
	},
	serverUnreachableHandler: function(e) {
	},</p>
<p>	serverReachableHandler: function(e) {
	},
	checkboxClickHandler : function() {
		if (document.getElementById("checkboxId").checked) {
			document.getElementById("languageDropDown").style.background = "#92C166";
			document.getElementById("languageDropDown").style.color = "#000000";
			document.getElementById("languageDropDown").parentNode.style.background = "#92C166";
			document.getElementById("languageDropDown").style.fontWeight = "bold";
			if (!this.is_local) {
				var dropdown = document.getElementById('languageDropDown');
				var lang = dropdown.options[dropdown.selectedIndex].text;
				dropdown.options[0].text = "Turn " + lang + " OFF";
				dropdown.options[0].title = "Turn " + lang + " OFF";
				dropdown.options[0].value = "Turn " + lang + " OFF";
			}
		} else {
			document.getElementById("languageDropDown").style.background = "#CDCDCD";
			document.getElementById("languageDropDown").style.color = "#8A8384";
			document.getElementById("languageDropDown").parentNode.style.background = "#CDCDCD";
			document.getElementById("languageDropDown").style.fontWeight = "normal";
			if (!this.is_local) {
				var dropdown = document.getElementById('languageDropDown');
				var lang = dropdown.options[dropdown.selectedIndex].text;
				dropdown.options[0].text = "Turn " + lang + " ON";
				dropdown.options[0].title = "Turn " + lang + " ON";
				dropdown.options[0].value = "Turn " + lang + " ON";
			}
		}
		Transliterate.transliterationControl.toggleTransliteration();
		Transliterate.setCookie('Transliterate_ENABLED', Transliterate.transliterationControl.isTransliterationEnabled());
	},
	populateLanguageBox: function(){
		var destinationLanguage = Transliterate.transliterationControl.getLanguagePair().destinationLanguage;
		var languageSelect = document.getElementById('languageDropDown');
		var supportedDestinationLanguages = google.elements.transliteration.getDestinationLanguages(google.elements.transliteration.LanguageCode.ENGLISH);
		var oc = 0;
		if (!this.is_local) {
			var opt = document.createElement('option');
			opt.className = "opt0";
			languageSelect.add(opt, null);
		}</p>
<p>		for (var lang in supportedDestinationLanguages) {
			// HRef
			if (lang == "AMHARIC" || lang == "TIGRINYA" || lang == "SERBIAN") continue;</p>
<p>			var opt = document.createElement('option');
			var langStr = Transliterate.getCamelizedStr(lang);
			var locLang = langStr.substring(0, 1);
			var langCode = supportedDestinationLanguages[lang];
			opt.text = langStr;//Transliterate.getTransliterationStr(locLang, langCode, opt, function(res){opt.text=res;});
			opt.title = langStr;
			var f = function(ele, res){
						ele.title = res+' ('+ele.title+')';
					};
			Transliterate.getTransliterationStr(langStr, langCode, opt, f);
			opt.value = langCode;
			opt.className = "opt"+((oc++)%2);
			if (destinationLanguage == opt.value) {
				opt.selected = true;
				Transliterate._controlDiv.title = 'Type in '+opt.title;
			}
			try {
				languageSelect.add(opt, null);
			} catch (ex) {
				languageSelect.add(opt);
			}
		}
		if (!this.is_local) {
			var opt = languageSelect.options[0];
			var currLang = languageSelect.options[languageSelect.selectedIndex].text;
			if (document.getElementById("checkboxId").checked) {
				opt.text = "Turn " + currLang + " OFF";
				opt.title = "Turn " + currLang + " OFF";
			} else {
				opt.text = "Turn " + currLang + " ON";
				opt.title = "Turn " + currLang + " ON";
			}
		}		
		if (document.getElementById("checkboxId").checked) {
			document.getElementById("languageDropDown").style.background = "#92C166";
			document.getElementById("languageDropDown").style.color = "#000000";
			document.getElementById("languageDropDown").parentNode.style.background = "#92C166";
			document.getElementById("languageDropDown").style.fontWeight = "bold";
		} else {
			document.getElementById("languageDropDown").style.background = "#CDCDCD";
			document.getElementById("languageDropDown").style.color = "#8A8384";
			document.getElementById("languageDropDown").parentNode.style.background = "#CDCDCD";
			document.getElementById("languageDropDown").style.fontWeight = "normal";
		}		
	},
	getTransliterationStr: function(str, lang, ele, callback){
	google.language.transliterate([str], "en", lang, function(result) {
	 if (!result.error) {
		 if (result.transliterations &#038;&#038; result.transliterations.length > 0 &#038;&#038;
			result.transliterations[0].transliteratedWords.length > 0) {
			var res = result.transliterations[0].transliteratedWords[0];
			if(callback){
				return callback(ele, res);
			}
			ele.innerHTML = res;
		 }
	   }
	 });
	},
	getLang: function(code){
		for (l in google.language.Languages) {
			if(google.language.Languages[l] == code){
				return l;
			}
		}
	},
	getLanguageForCode: function(code){
		var lang = Transliterate.getLang(code);
		if(lang){
			lang = Transliterate.getCamelizedStr(lang);
		}
		return lang;
	},</p>
<p>	getCamelizedStr: function(str){
		str = str.toLowerCase();
		str = str.substring(0, 1).toUpperCase()+str.substring(1, str.length);
		return str;
	},</p>
<p>	languageChangeHandler: function(defaultev) {
		var dropdown = document.getElementById('languageDropDown');
		var selOpt = dropdown.options[dropdown.selectedIndex];
		var selectedLang = selOpt.value;
		if (!selectedLang.match("Turn")) {
			Transliterate.transliterationControl.setLanguagePair(google.elements.transliteration.LanguageCode.ENGLISH, selectedLang);
			Transliterate._controlDiv.title = 'Type in '+selOpt.title + '. Click on the checkbox to turn on/off the language setting.';
			if(!defaultev){
				Transliterate.setCookie('Transliterate_LANG', selectedLang);
			}
			Transliterate.currentLanguage = selectedLang;
		}
	},</p>
<p>	afterChange: function() {
		var dropdown = document.getElementById('languageDropDown');
		var selOpt = dropdown.options[dropdown.selectedIndex];
		var selectedLang = selOpt.value;
		if (selectedLang.match("Turn")) {
			for (var i = 0; i < dropdown.options.length; i++) {
				if (dropdown.options[i].value == Transliterate.currentLanguage) {
					dropdown.selectedIndex = i;
					var lang = dropdown.options[i].text;
				}
			}</p>
<p>			if (document.getElementById("checkboxId").checked) {
				document.getElementById("checkboxId").checked = false;
				document.getElementById("languageDropDown").style.background = "#CDCDCD";
				document.getElementById("languageDropDown").style.color = "#8A8384";
				document.getElementById("languageDropDown").parentNode.style.background = "#CDCDCD";
				document.getElementById("languageDropDown").style.fontWeight = "normal";
				dropdown.options[0].text = "Turn " + lang + " ON";
				dropdown.options[0].title = "Turn " + lang + " ON";
				dropdown.options[0].value = "Turn " + lang + " ON";
			} else {
				document.getElementById("checkboxId").checked = true;
				document.getElementById("languageDropDown").style.background = "#92C166";
				document.getElementById("languageDropDown").style.color = "#000000";
				document.getElementById("languageDropDown").parentNode.style.background = "#92C166";
				document.getElementById("languageDropDown").style.fontWeight = "bold";
				dropdown.options[0].text = "Turn " + lang + " OFF";
				dropdown.options[0].title = "Turn " + lang + " OFF";
				dropdown.options[0].value = "Turn " + lang + " OFF";
			}
			Transliterate.transliterationControl.toggleTransliteration();
			Transliterate.setCookie('Transliterate_ENABLED', Transliterate.transliterationControl.isTransliterationEnabled());</p>
<p>		} else {
			if (!document.getElementById("checkboxId").checked) {
				document.getElementById("checkboxId").click();
			} else {
				if (!this.is_local) {
					var currLang = dropdown.options[dropdown.selectedIndex].text;
					if (document.getElementById("checkboxId").checked) {
						dropdown.options[0].text = "Turn " + currLang + " OFF";
						dropdown.options[0].title = "Turn " + currLang + " OFF";
						dropdown.options[0].value = "Turn " + currLang + " OFF";
					} else {
						dropdown.options[0].text = "Turn " + currLang + " ON";
						dropdown.options[0].title = "Turn " + currLang + " ON";
						dropdown.options[0].value = "Turn " + currLang + " ON";
					}			
				}
			}			
		}		
	},</p>
<p>	toggleLanguage: function(event) {
		var dropdown = document.getElementById('languageDropDown');
		if (event.target.innerHTML == dropdown.options[dropdown.selectedIndex].text) {
			if (!document.getElementById("checkboxId").checked) {
				document.getElementById("checkboxId").click();
			}
		}
	},</p>
<p>	_controlDiv: undefined,
	createComponents: function(){
		// HRef
		var controlHTML = "</p>
<div id='translControl' style='position: absolute; left: -100px; top: -100px;'>"+
							"</p>
<div style='float: left; font-size: 13px'>"+
								"<span class='cbut' style='padding-bottom: 1px; -moz-border-radius: 5px;'>"+
									"
<input type='checkbox' id='checkboxId' onclick='Transliterate.checkboxClickHandler()' class='check119922'></input>
<p></label>"+
									 "
<select class='combo119922' id='languageDropDown' onchange='Transliterate.languageChangeHandler();Transliterate.afterChange();' onclick='Transliterate.toggleLanguage(event);'></select>
<p>"+
								"</span>"+
							"</div>
<p>"+
						  "</p>
<div class='poweredBy' id='poweredby' style='float: right;padding-top: 5px; display: none;'></div>
<p>"+
						 "</p></div>
<p>";
		var dDiv = document.createElement('div');
		dDiv.innerHTML = controlHTML;
		Transliterate._controlDiv = dDiv.firstChild;
		//document.importNode(Transliterate._controlDiv, true);
		document.body.appendChild(Transliterate._controlDiv);
		Transliterate._controlDiv.dimension = {'width': Transliterate._controlDiv.offsetWidth, 'height': Transliterate._controlDiv.offsetHeight};</p>
<p>		if (this.is_local) {
			Transliterate._controlDiv.style.display = 'block';
		} else {
			Transliterate._controlDiv.style.display = 'none';
		}
	},
	parentWin: undefined,
	performAction: function(){
		google.load('language', "1");
		google.load("elements", "1", {
			packages: ["transliteration"],
		});
		google.setOnLoadCallback(Transliterate.init);
	},
	setCookie: function(cookieName, cookieValue, nDays) {
		var today = new Date();
		var expire = new Date();
		if (nDays==null || nDays==0) nDays=30;
		expire.setTime(today.getTime() + 3600000*24*nDays);
		document.cookie = cookieName+"="+escape(cookieValue)
			+ ";expires="+expire.toGMTString();
	},</p>
<p>	getCookie: function(name) {
		var theCookies = document.cookie.split(/[; ]+/);
		for (var i = 0 ; i < theCookies.length; i++) {
			var aName = theCookies[i].substring(0,theCookies[i].indexOf('='));
			if (aName == name) {
				var c = theCookies[i];
				var index = c.lastIndexOf('=');
				c = c.substring(index+1, c.length);
				return c;
			}
		}
	},</p>
<p>	eventAdded: false,
	onLoad: function(loadCallback){
					if(Transliterate.loaded){
						return loadCallback();
					}
					document.write = function(scr){
						var d = document.createElement('div');
						d.innerHTML = scr;
						document.body.appendChild(d.firstChild);
					};
					var callBack = function(){
										Transliterate.addStyles();
										Transliterate.createComponents();
										Transliterate.performAction();
										loadCallback();
								   };
					Transliterate.addScript('http://www.google.com/jsapi', callBack);
					Transliterate.loaded = true;
	},
	addEvents: function(){
		if(Transliterate.eventAdded){
			return;
		}
		Transliterate.eventAdded = true;
		document.addEventListener('mousedown', Transliterate.handleEvent, true);
		document.addEventListener('focus', Transliterate.handleEvent, true);
		/*document.addEventListener('blur', function(ev){
										var tar = ev.target;
										tar.removeEventListener('click', Transliterate.handleEvent, false);
										tar.removeEventListener('focus', Transliterate.handleEvent, false);
										}, false);*/
	},
	autoIdCntr: 1,
	isEditableElement: function(el){
		var tag = el.tagName;
		if(!tag || el.disabled == true || el.readOnly == true){
			return false;
		}
		if(tag.toLowerCase() == 'textarea'){
			return true;
		}
		if(Transliterate.supportTextBoxes &#038;&#038; tag.toLowerCase() == 'input' &#038;&#038; el.type.toLowerCase() == 'text'){
			return true;
		}
		if(tag.toLowerCase() == 'div' &#038;&#038; el.contentEditable.toLowerCase() == 'true'){
			return true;
		}
		if(tag.toLowerCase() == 'iframe'){
			var iframedoc = el.contentWindow.document;
			if(iframedoc.designMode.toLowerCase() == "on" || iframedoc.body.contentEditable.toLowerCase() == "true") {
				return true;
			}		
		}
	},
	handleEvent: function(event){
		try{
			// HRef
			if (this.is_local) {
				var el = document.getElementById('myTextarea');
			} else {
				var el = event.target;
			}
			if(Transliterate.isEditableElement(el)){
				var lazyLoader = function(){
									Transliterate.lazyLoadObjects(el);
								 };
				var initer = function(){
								 Transliterate.checkAndWaitTillInit(lazyLoader);
							 };
				Transliterate.onLoad(initer);
				return;
			}
			if(!Transliterate.isCntrlsDiv(el)){
				Transliterate.showControl(el, true);
			}
		}catch(e){
		}
	},
	waitCounter: 0,
	checkAndWaitTillInit: function(callback){
		try{
			Transliterate.init();
		}catch(e){
			if(Transliterate.waitCounter == 15){	
				return;
			}
			Transliterate.waitCounter++;
			var f = function(){
						Transliterate.checkAndWaitTillInit(callback);
					};
			setTimeout(f, 200);
			return;
		}
		callback();
	},
	isInTheList: function(el){
		for(var i=0; i<Transliterate.enabledElements.length; i++){
			if(Transliterate.enabledElements[i] === el){
				return true;
			}
		}
		return false;
	},
	addToList: function(el){
		Transliterate.enabledElements[Transliterate.enabledElements.length] = el;
	},
	lazyLoadObjects: function(el){
		if(Transliterate.isEditableElement(el)){
				if(!Transliterate.isInTheList(el)){
					var eles = [el];
					Transliterate.addToList(el);
					var options = {
						adjustTextareaStyle: false,
						adjustTextareaDirection: true
					};
					Transliterate.transliterationControl.makeTransliteratable(eles, options);
				}
				Transliterate.languageChangeHandler(true);
				return Transliterate.showControl(el);
		}
	},</p>
<p>	isCntrlsDiv: function(el){
		var p = el;
		while((p = p.parentNode)){
			if(p == Transliterate._controlDiv){
				return true;
			}
		}
		return false;
	},
	findPos: function(obj){
		var curleft = curtop = 0;
		if (obj.offsetParent) {
			do {
				curleft += obj.offsetLeft;
				curtop += obj.offsetTop;
			}while (obj = obj.offsetParent);
			return {'left': curleft, 'top': curtop};
		}
	},
	showControl: function(ele, hide){
		if(hide){
			if (this.is_local) {
				Transliterate._controlDiv.style.display = 'block';
			} else {
				Transliterate._controlDiv.style.display = 'none';
			}
			return;
		}
		var pos = Transliterate.findPos(ele);
		var dim = Transliterate._controlDiv.dimension;
		var etop = pos.top-dim.height;
		var eleft = pos.left+ele.offsetWidth-dim.width;
		var cssTxt = 'position: absolute; opacity: 0.8; left: '+eleft+'px; top: '+etop+'px; display: block; z-index: 20000;';
		Transliterate._controlDiv.style.cssText = cssTxt;
	},
	setPref: function(defaultLang, textBoxSupport){
		Transliterate.defaultLanguage = defaultLang;
		Transliterate.supportTextBoxes =  textBoxSupport;
	},
	// HRef
	checkElement: function() {
		if (window.location.href == "chrome://epic/content/xml/hrefindic.html") {
			// Original logic by google indic for the sidebar. We return because we do not want to set the regular interval timer
			Transliterate.addEvents();
			return;
		} else {
			// For all other pages
			var activeElement = window.document.activeElement;
			if(Transliterate.isEditableElement(activeElement)){
				if ((activeElement.ownerDocument.defaultView.Transliterate) || (Transliterate.is_newtab)){
					Transliterate.eventAdded = true;
					var el = activeElement;
					var lazyLoader = function(){
										Transliterate.lazyLoadObjects(el);
									 };
					var initer = function(){
									 Transliterate.checkAndWaitTillInit(lazyLoader);
								 };
					Transliterate.onLoad(initer);
				} else {
					//alert('no');
				}
			} else {
				if ((Transliterate._controlDiv) &#038;&#038; (!Transliterate.isCntrlsDiv(activeElement))) {
					Transliterate.showControl(activeElement, true);
				}
			}
		}
		setTimeout(Transliterate.checkElement, 1000);
	}
};
Transliterate.checkElement();
document.addEventListener("click", Transliterate.checkElement, true);Transliterate.setPref('MALAYALAM', true);]]&gt;</script></p>
<img src="http://feeds.feedburner.com/~r/Cyb3r/~4/tr5Nr5FcAww" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://cyb3r.in/?feed=rss2&amp;p=12</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://cyb3r.in/?p=12</feedburner:origLink></item>
		<item>
		<title>Dear Friends</title>
		<link>http://feedproxy.google.com/~r/Cyb3r/~3/M9-OxuNU1sI/</link>
		<comments>http://cyb3r.in/?p=7#comments</comments>
		<pubDate>Fri, 04 Jun 2010 06:05:21 +0000</pubDate>
		<dc:creator>Cyb3r</dc:creator>
				<category><![CDATA[Info]]></category>

		<guid isPermaLink="false">http://cyb3r.in/?p=7</guid>
		<description><![CDATA[Dear friends this is your cyber. You can get awesome contents from here. wait and see&#8230;..]]></description>
			<content:encoded><![CDATA[<p><span style="font-family:lucida sans unicode,lucida grande,sans-serif;">Dear friends this is your cyber. You can get awesome contents from here. wait and see&#8230;..</span></p>
<img src="http://feeds.feedburner.com/~r/Cyb3r/~4/M9-OxuNU1sI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://cyb3r.in/?feed=rss2&amp;p=7</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://cyb3r.in/?p=7</feedburner:origLink></item>
	</channel>
</rss>
