Sunday, January 2, 2011

Development of Ajax Web Widget


Development of Ajax Web Widget

by Roshan Bhattarai | February 2009 | AJAX
This is a 5 part mini series by Roshan Bhattarai, covering basics of Widget, development of Wiki seek Widget, Pop-up Image Widget, RSS Web Widget, and Delicious Tagometer Widget.
The web is becoming more flexible and dynamic from day to day. The service and functionality provided by a particular website is not limited to itself. We can extend it to other websites by placing a few lines of code in their web pages called Widget.
In this article we will explore the technologies that go behind making a Widget and understand its working.
We’ve seen this kind of thing done by the popular bookmark sharing website, digg.com. We don’t need to visit digg.com to digg the URL. We can do it using a small object called Widget, provided by digg.com. This is just one simple example of providing remote functionality; you can find lots of widgets providing different functionality across various websites.

What is a web widget?

A web widget is a small piece of code provided by a third party website, which can be installed and executed in any kind of web page which is created using HTML (or XHTML). The common technologies used in web widgets are JavaScript, Ajax and Adobe flash but in some places other technologies such as HTML combined with CSS, and Java Applets are also used. A web widget can be used for:
  • Serving useful information from a website.
  • Providing some functionality (like: voting, polling).
  • Endorsing the products and services of a website.
Web widgets are also known as badges, modules, and snippets. And, these are commonly used by bloggers, social network users and advertisers.

Popular Web Widgets

You can find many examples of the web widgets on the World Wide Web. These include:
  • Google Adsense – It is probably the most popular web widget you can see on the World Wide Web. All you’ve to do, is get a few lines of code from Google and place it in your website. Different kinds of contextual advertisements get displayed on your website according to the content displayed on your website.
  • Digg this widget – If You want to display news or articles then you’re most probably going to do so with this widget. Provided by the social book marking website digg.com, it is one of the popular bookmark sharing websites. Your website will lots of visitors if your article gets more and more digs, and gets featured on the first page.
  • Del.icio.us widget – You might have seen the widget previously, or text showing “Save to del.icio.us”, “Add to del.icio.us” and “saved by XXX users”. This is another popular social bookmarking website.
  • Snap preview –Provided by snap.com, this widget shows the thumbnail preview of a web page.
  • Survey widget from Polldaddy.com – If you need to run some kind of poll then you can use this widget to create and manage the poll on your website.
  • Google Maps – A rather well known widget, which adds different map functionality in Google maps. you must get an api key from Google to use this widget.

Benefits of Providing Web Widgets

I came to know about dzone.com, a social bookmarking website for web and software developers, from a widget I found in a blog. Let’s look at the benefits of web widgets:
  • A widget can be an excellent publicity tool. Most of the people who come to know about digg.com,del.icio.us or reddit.com do so from their web widgets in various news portal and blogs.
  • Providing web services- This is useful since the user doesn’t have to visit that particular website to get its services. For example, a visitor to a website which has a Polldaddy web widgets can participate on a survey without visiting to polldaddy.com.
  • Web widgets can be one of the ways of bringing income for your website, by utilizing advertising widgets such as Google adsense (discussed above).
  • Widgets can generate more traffic to your website. For example, you can make a widget that evaluates the price of a product on a website. Widgets across multiple websites means visitors from multiple sources, hence more traffic to you website.

How do Web Widgets work

Development of Ajax Web Widget
As can be seen in the above figure, the web widget is used by a widget client, which is a web page. The web pages just use a chunk of code provided by the functionality providing website. Furthermore, all the services and functionality are provided by the code residing on the remote server which the widget client doesn’t have to care about. In a web widget system, there is optional system called Widget Management System which can manage the output of the widget.

Widget Management System

A Widget Management System is used for controlling the various operations of the widget, including things like height or width or color. Most widget providing websites allows you to customize the way widget looks in blogs or website. For example, you can customize the size and color of Google adsense by logging into the Google adsense account system.
Some widget Management Systems also allow you to manage the content of the widget as well. In the survey widget from vizu.com, you can manage parameters like the topic of poll and number of answers of the poll.

Concept of Technologies Used

To make the most out of Ajax web widgets, let’s get familiar with some technologies.

HTML and XHTML

Hypertext Markup language(HTML) is one of the most known markup language for constructing web pages. As the name implies, we use it to markup the text document so that web browsers know how to display them.
XHTML on the other hand, is the way to standardize the HTML by making HTML a dialect of XML. XHTML comes in different flavors like transitional, strict or frameset, with each flavor offering either different capabilities or different degrees of conformance to the XML standard.

Difference between HTML and XHTML

The single biggest difference between HTML and XHTML is that XHML must be well-formed according to XML conventions. Because an XHTML document is essentially XML in nature, simply following the traditional HTML practices is not enough. An XHML document must be well formed. For example, let’s take the examples of “img” and “input” elements of HTML.
<img src="logo.gif" alt="My Site" border="0" >
<input type="text" name="only_html" id="user_name" value="Not XHTML" >
Both of the above statements are perfect HTML statements but they are not well graded constructions in XHTML as they are not well formed according to compliance of XML (those tags are not enclosed properly). To figure out the difference, first look at the above tags in the XHML valid syntax.
<img src="logo.gif" alt="My Site" border="0" />
<input type="text" name="only_html" id="user_name" value="Not XHTML" />
Did you find the difference? The latter tags are well formed and the previous one is not. If you look closely, you can find that the HTML tags in the second example are closed like XML. The point is you should have well formed document in order to allow JavaScript to access the DOM.
You can also add comments in the HTML document. Any information beginning with the character string <!-- and ending with the string --> will be ignored:
<!-- This is a comment within HTML-->
You can add the comment in the same fashion in an XML document as well.

Concept of IFRAME

IFrame (Inline Frame ) is a useful HTML element for creating web widgets. Using IFrame, we can embed the HTML document from the remote server into our document. This feature is most commonly used in the web widgets.
We can define the width and height of IFrame using the height and width property of the IFrame element. IFrame can be defined in any part of the web pages. IFrame behaves like an inline object and the user can scroll through the Iframe to view the content which is out of view. We can also remove the scroll bar from the IFrame by setting scrolling property to no.
The embedded document can be reloaded asynchronously using IFrame and can be an alternative option to an XMLHttpRequest object. For this reason, IFrames are widely used by Ajax applications.
You can use the IFrame in the HTML document in the following way:
<html>
<body>
<iframe src="http://wwww.example.com" width="200">
If your browser doesn’t support IFrame, this text will be 
displayed in the browser
</iframe>
</body>
</html>

CSS(Cascading Style Sheet)

A Cascading Style Sheet is a style sheet language which is used to define the presentation of document written in HTML or XHTML pages. CSS is mainly used for defining the layout, colors and fonts of the elements of a web page along with other perspectives of the document. While the mark up language can be used to define the content of the web page, the primary goal of providing a CSS is to separate the document’s content from the document’s presentation. The Internet Media type “text/css” is reserved for CSS.

Using Cascading Style Sheet

CSS can be used in different ways in a web page. It can be written with the <style></style> tag of the web-page. It can be defined in the style attribute of the element. Also, CSS can be defined in a different page with extension .css that links with the web page to define the presentation.
What is the benefit of using CSS then? You can define the values for a set of attributes for all HTML elements (of a similar type), then change the presentation with one change in the CSS property
<style type="text/css">
all the css declaration goes here
</style>
But what about defining the CSS property for different web pages? The above method can be cumbersome and you would need to replicate the same code to different web pages. To overcome such a situation, you can define all the property in a single page let’s say call it style.css and link that CSS to the web pages.
<link href="style.css" type="text/css" rel="stylesheet" />
Furthermore, you can define the styles within the elements using the style property of the HTML elements, which is commonly known as inline styles.
<p style="text-align:justify">This is content inside paragraph</p>
As you’ve seen, we’ve quickly defined the text-align attribute to justify

Defining Style Sheet rules

A style sheet allows you to change the different attributes of the HTML elements by defining a styling rule for them. A rule has two components: selectors, which defines which HTML elements to apply the styling rule and declaration, which contains the styling rule for the selectors.
p { background-color:#999999 }
In the above css rule, p is the selector and background-color:#999999, is the declaration of the rule. The above style defines the rule for the paragraph element <p></p>.
.box { width:300px }
In the above rule, selectors is defined as a class and it can be used in any element with the class property of the element.
<p class="box">..content..</p> <div class="box">content</div>
Class can be used with any HTML element.
#container { width:1000px }
“#” is known as an id selector in CSS. The above rule applies to an element which has the id “container” such as below:
<div id="container">..content..</div>
We can also define a set of rules for multiple elements using comma (,) among the selectors:
h1, h2, h3 {font-size:12px; color:#FF0000 }
There are many more styles of defining selectors and CSS properties.

Object-Oriented JavaScript

Object-Oriented JavaScript
Create scalable, reusable high-quality JavaScript applications and libraries
  • Learn to think in JavaScript, the language of the web browser
  • Object-oriented programming made accessible and understandable to web developers
  • Do it yourself: experiment with examples that can be used in your own scripts
  • Write better, more maintainable JavaScript code

JavaScript

JavaScript is a prominent client side scripting language. It evolved from a language called LiveScript, which was developed by Netscape for use in the browsers of early days. JavaScript source code can be embedded in the HTML pages or you can write the JavaScript in separate file and call it from HTML pages. Since it is a client side scripting language, it gets interpreted and executed by the web browsers.
With the help of JavaScript, you can manipulate DOM and add functionality to your web page.  Here are the few examples:
  • Open pop-up window and dialog boxes
  • Add animation and effects to the web page elements
  • Hide and display the object of web pages
  • Change the way page elements are displayed
  • Validation of user entered data
DOM is an acronym for “Document Object Model”. DOM is the hierarchical representation of the elements of XML and HTML data.
JavaScript can be disabled in web browsers. If JavaScript is not working in your browser then you check your browser settings.

Basics of JavaScript

JavaScript code can be embedded directly in the HTML pages within  <script> </script> tags.  As mentioned above, another way of using JavaScript code could be placing the code in the separate file with.js extension and linking them to the HTML pages where required.
<script language="javascript" type="text/javascript" 
scr="js_functions.js"></script>
Placing the JavaScript in the separate file allows you to use them in multiple web pages by just linking them. Furthermore, it also makes code easier to maintain and use. Now, let’s look in detail the attributes defined in the above JavaScript tag.
language=”javascript” : this is self explanatory and tells the browser that statement within the script tags should be interpreted as the JavaScript language.
type=”text/javascript” : this Internet media type declares that the script enclosed within the script tag is JavaScript.
There is an element called noscript which gets executed if the browser doesn’t support JavaScript. You can use the noscript to warn or inform the user that JavaScript is disabled in the browser, <noscript>JavaScript must be enabled.</noscript>.

Writing on HTML pages with JavaScript

As I’ve mentioned earlier, you can access the HTML pages with the help of DOM. To write something in HTML pages, you can use two functions: write() and writeln() functions of the document object. Now, let’s look at the HTML and JavaScript Code to use them.
<p>
<script language="JavaScript" type="text/javascript"> 
document.write ("First line using JavaScript!");
document.write ("Second line using JavaScript!");
<script> 
</p>
Using the document.write() statement in JavaScript, we’ve written two lines in a web page using JavaScript. Here is the output of the above statements:
First line using JavaScript!Second line using JavaScript!
As you can see clearly, both lines are displayed on the same line which we don’t want. To add the line break between two statements you can use the document.writeln() function of JavaScript. Here is the output you’ll get by replacing the document.write() function with document.writeln() function:
First line using JavaScript!
Second line using JavaScript!

Changing the content of elements using JavaScript

How do you change the content of the HTML element by using JavaScript when the web page is already loaded? In this case, innterHTML property comes handy so let’s look at an example of an innerHTMLproperty that changes the content of the paragraph when the button or link is clicked by the user within the web page.
<script type="text/javascript" language=" javascript">
function changeContent()
{
document.getElementById('paragraph').innerHTML = "Hello! Roshan";
}
</script>

<p id="paragraph">Hello Friend </p> 
<input type='button' onclick='changeContent()' value='Change Content'/>
Let’s look at the above code clearly. When the button is clicked it calls the changeContent() function of JavaScript. In that function, the content of the paragraph with id “paragraph” is replaced by “Hello! Roshan”. Before clicking the button, the paragraph had “Hello Friend” as its content.
You can even insert HTML elements using the innerHTML property.
document.getElementById('paragraph').innerHTML = "<span
style=’color:#FF0000’>"Hello! Roshan"</span>";
If you use this statement in the changeContent() function, you’ll output the content in red.

Changing the style of the element using JavaScript

We already know about defining the style element using CSS. We can also do so using JavaScript, through the style property.
document.getElementById("elementId").style.color="#FF0000";
document.getElementById("elementId ").style.backgroundColor="#CCCCCC";
As you can see, we’ve changed the color and background color of the element with id “block” using thestyle property.
You should note that you’ve to write the CSS attribute in camel case when you’re accessing it through the style property in JavaScript. For example, you have to use backgroundColorinstead of background-color and marginLeft instead of margin-left.
Now, the question arises how to change the class of the element using JavaScript. You can change the CSS class name using the className property.
document.getElementById("elementId").className="box_class";

Manipulating DOM element using JavaScript

Another thing we must learn in JavaScript when creating web widgets is DOM manipulation. Sometimes, we may have to create the script object and sometimes we may have to create division div or paragraph pdynamically using JavaScript.
Let’s create the script object and attach it to the document using JavaScript. To, create the element you have to make use of the function createElement() of document object.
Var extScript=document.createElement("script");
We’ve just created a script element. Now, we can assign some values to this script element as well.
extScript.type =’test/javascript’;
extScript.language =’javascript’;
extScript.src =’http://www.example.com//javascript/javascript_file.js’;
We’ve just assigned three properties to this newly created JavaScript element. Now, there is one task remaining, we need to add it to the document. To do so, use the appendChild() function of the documentobject
document.body.appendChild(extScript);
Now, the newly created script element is added to the document as a child of the body element. We can use each and every function available in javascript_file.js in the document where this script is being used.
In the similar fashion, we can attach the css style sheet to the document. Here is the code to create thelink element of the document and attach it with the current document to use the style defined in a remote place:
Var extCSS=document.createElement("link");
extCSS.setAttribute(‘type’,’test/css’);
extCSS.setAttribute(‘rel’’stylesheet’);
extCSS.setAttribute(’http://www.example.com/css/style.css’,’’);
document.body.appendChild(extCSS); 
Previously, we have assigned the values to the attribute of the element using JavaScript but here we’ve used the setAttribute() function to set the value of the property of the link element. Here is the syntax of using setAttribute() function:
element.setAttribute('attributeName','attributeValue')
Note that setting values to few attribute doesn’t work in some browsers. I can’t mention all of them but element.setAttribute(‘style’’width:200px;’); doesn’t work, for example, in Internet Explorer.

Cross-browser Support

As the term suggests, Cross-browser refers to the way of developing web applications and websites in such a way that it is supported in all web browsers. Different browsers have their own way of interpreting HTML and scripting. This can lead developers to write the same code two or more times to provide support for different browsers.
For example, to set the style of a element using JavaScript you can use the setAttribute() function as:
element.setAttribute(‘style’,"width:200px;");
The above statement works fine with Safari and Firefox but doesn’t work in Internet Explorer. To provide the same functionality in IE, we’ve to write the following statement in JavaScript:
element.style.cssText="width:200px;";
As you’ve seen, you’ve to write the two different statements for providing the same functionality across different browsers.
The applications written in this article supports the current major web browsers: Microsoft Internet Explorer, Mozilla Firefox, Safari and Opera.

XML

XML stands for eXtensible Markup Language. Since, it is (also) a markup langugage, it has many similarities to the markup style of HTML. Whereas HTML is used for defining the presentation of the web page, XML documents are used for various purposes like data storage and data exchange. In fact, in the web based application XML is used for structured data interchanges between clients and servers.
Unlike HTML which has a fixed set of elements, XML can define it’s own set of elements to represent the particular data.  XML documents are structured in the tree structure. A XML document must have rootelement know as parent element. All the other related elements are connected with this parent element.
The markup elements of XML are enclosed within  < and > and these elements are used to annotate the content of the file describing the information it contains. The XML element is commonly referred to as atag. Furthermore, XML tags can also contain attributes similar to HTML elements. An attribute in the XML document can be defined within the starting tag of the XML elements and value of an attribute is enclosed within either quotes or apostrophes.
Let’s look at the sample of an XML document for describing the details of books in a library:
<?xml version="1.0" encoding="UTF-8" ?>
<library>
<book isbn="1234"> 
<title>The Fellowship of the Ring</title>
<author>J.R.R. Tolkien</author>
</book> 
<book isbn="4547"> 
<title> Pro JavaScript Technique </title> 
<author>John Resig</author>
</book>
</library>
Notice the tags and attributes. The XML document consists of a root element named “library”. All the other tags of the XML are self descriptors where the name (such as title) refers to the title of a book and author tag contains the name of the author of the book. They are well organized in the tree order. Furthermore, you’ve also noticed that we’ve defined the “isbn” as the attribute of the element in the XML document.
In contrast to HTML, XML tag names are case-sensitive. Be careful, <book> and <Book> elements are treated differently in XML.

PHP

PHP, the reverse acronym of Hypertext Preprocessor, is a popular general purpose open-source server side scripting language, used by large number of websites. PHP is composed of commands that can be embedded within the HTML code of your pages. Unlike a client side scripting language which is interpreted by the web browsers, the server side scripting language is parsed by the web server before the page is sent to the web browser.
PHP statements are enclosed within the  <?php and ?> tags. Anything between such tags is evaluated by the web server, prior to the page being served to the browser. You can have as many as <?php and ?> sets of tags in the PHP page as you like. They commonly have the .php extension.
You can change different extension pages like .html or .asp to act like a PHP page which can be done by adding the following line in the .htaccess file of the web server.
AddType application/x-httpd-php .asp .html
You can write the HTML code to output in the browser using PHP. Here is the simple example using theecho statement.
<html>
<head>
<title>Example of Using PHP</title>
</head>
<body>
<?php echo "<strong>Hello World!</strong>"; ?>
</body>
</html>
The above code outputs “Hello World!” in the bold text in the browser.

Basics of PHP

Variables in PHP are used to store the data. PHP variables always start with “$” sign followed by letters, digits and underscores. Variables in PHP are case sensitive.
Since PHP is a dynamic type language, it is not necessary to define the type of variable while using it. PHP takes care of these things automatically as shown below:
$quantity = 5;
$product_name = ‘Apple Ipod’;
If you look at the above example, $quantity is of Integer type and $product_name is string type. PHP takes care of it all internally.
To concatenate the string, PHP has the dot(.) operator, as shown below:
$product_name = ‘Apple Ipod’.’ 2 GB’;
Thus, we’ve added “2 GB” to the string $product_name using the dot.

Parsing XML using PHP

XML is the backbone for calling APIs (Application programming Interface) in web applications. The simplest method to parse XML using PHP is by using SimpleXML functions. You can usesimplexml_load_string() and simplexml_load_file().
Note that for using these two functions, PHP must be compiled with the SimpleXML module, which is available in PHP from version 5.0.

simplexml_load_string() is used for parsing the XML string to a SimpleXML object whereassimplexml_load_file(), as the name denotes, is used for converting the XML document into simpleXML object.
Let’s parse the XML string defined in the Library data example. We can use the following statement.
$parsedXML=simplexml_load_string($xmlString);
If the XML data is in the library.xml file then we can use simplexml_load_file() to achieve the same:
$parsedXML=simplexml_load_file(‘library.xml’);
As we have the $parsedXML variable in the form of simpleXML object, we can output the “author” node by using the following statement in PHP:
echo $parsedXML->book[1]->author;
To access the “isbn” attribute of the first “book” node, we can do it by:
echo $parsedXML->book[0]['isbn'];
To print the “title” element of each node we can use the foreach() loop of PHP:
foreach($parsedXML->book as $books)
{
echo $books->title."<br />";
} 
The above statement outputs the following line in the web browser. Remember that we’ve used the “<br />” element to display each title in the new line.
The Fellowship of the Ring
Pro JavaScript Technique

AJAX and PHP: Building Responsive Web Applications

AJAX and PHP: Building Responsive Web Applications
Enhance the user experience of your PHP website using AJAX with this practical tutorial featuring detailed case studies
  • Build a solid foundation for your next generation of web applications
  • Use better JavaScript code to enable powerful web features
  • Leverage the power of PHP and MySQL to create powerful back-end functionality and make it work in harmony with the smart AJAX client
  • Go through numerous case studies that demonstrate how to implement AJAX-enabled features in your site such as: real-time form validation, online chat, suggest & autocomplete, whiteboard, SVG realtime charting, whiteboard, web data grid, RSS reader, drag & drop

AJAX

Ajax stands for Asynchronous JavaScript and XML. Ajax itself is not a technology; it is a mixture of well-known programming techniques that enable web developers to build Rich Internet Applications with more appealing user interfaces by providing the data transfer from the web server in asynchronous manner.
While working in the Desktop application, we get the result of the work immediately. For example, if you click the ok button of a message box then you’ll get the output of that action immediately. But, this sort of interaction is hardly available for the user of the web-based application. The common scenario is to click on a link, and then sit back until the server processes the request and sends the response to the browser. The whole page will reload – sometimes slowly.
Ajax is the solution to this kind of problem by acting as a middle layer between the web browser and server. In an Ajax application, the server request doesn’t need to be synchronized with the user action (such as clicking on a link, or clicking on a button). An Ajax application requests the data from background and the server sends the response to the web page without reloading the whole page. This is why we call Ajax “Asynchronous”.
Although XML is in the acronym of Ajax, It’s not always necessary to use XML in your Ajax application. You can use and manipulate the server request and response in ASCII and HTML formats as well.

XMLHTTPRequest Object

XMLHTTPRequest Object is the core component for AJAX, originally created by Microsoft to use in its Office Suite. Later, outside developers found the importance of the XMLHTTPRequest object. For security reasons, the XMLHTTPRequest object can generally only make calls to the server side file within the same domain as the calling page, and cannot directly call a remote server. Ajax allows server response to be transferred in different formats like ASCII text or XML data.
Regarding the request to server side scripting, the communication from server side scripting with XMLHTTPRequest is just another HTTP Request. So, you are not restricted to use a particular server side scripting language for making server calls.
XMLHTTPRequests can be used to get responses from server in both synchronous and asynchronous ways. Since, XMLHttpRequest is most commonly used for asynchronous requests and responses, we’ll not be looking towards the synchronous part in this article.
The following statement is used to create the instance of an XMLHTTPRequest named xmlHttp:
var xmlHttp = new XMLHTTPRequest();
The above statement creates an XMLHTTPRequest object in non-IE browsers (e.g. Firefox, etc). In IE, theXMLHTTPRequest object is implemented as a ActiveX Object. An ActiveX Object is a proprietary part of Microsoft technology for enabling ActiveX objects in web pages. It is only supported by Internet Explorer.
To create an object of XMLHTTPRequest in Internet Explorer we’ve to write the following statement in JavaScript:
var xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
But there is still a complication in IE. Some versions of Internet Explorer use different versions of MSXML parsers. In that case you’ve to use the following statement to create the same object:
var xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
Now you know that how to create object of XMLHTTPRequest object in different browsers. But there is one issue, we have to create the application in such a way that it must be applicable to all the browsers which support XMLHTTPRequest.  Here is a cross-browser function which returns the object of XMLHTTPRequest from all the supported browsers:
function getXMLHttpObject()
{ 
var xmlhttp=false;
try
{
xmlHttp=new XMLHttpRequest();
}
catch(e)
{
try
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e)
{
try
{
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e1)
{
xmlHttp=false;
}
}
}
return xmlHttp;
}
The above function uses JavaScript’s try and catch statement to handle the exception. If the statement inside the try block throws an error then the control is transferred to the catch block next to it.

Function to handle Ajax request and response

Now let’s look at an example of a function in an AJAX application which handles the server’s request and response asynchronously using XMLHTTPRequest.
function ajaxCall(somevalue) {
//create the instance of the XMLHTTPReqest Object
var requstObj= getXMLHttpObject();
// build the URL of the server script we wish to call
var url = "server_script.php?value=" + somevalue;
// XMLHTTPRequest object opening server connection
requstObj.open("GET", url, true);
//function to handle the response when readystate
// of XMLHTTPRequest is changed. 
requstObj.onreadystatechange = function() {
if (requstObj.readyState == 4) //when the response is completed
{
// only if http status is "OK"
if (requstObj.status == 200) 
{
//output the response text in alert box
alert(‘The response from server is: ’+ requstObj.responseText);
}
else
{
alert(‘Error occurred :’+ requstObj.status);
} 
}
// and finally send the request to server
requstObj.send(null);
} 
Now, let’s examine the ajaxCall() function:
var requstObj= getXMLHttpObject();
In the first line of this function, the cross-browser XMLHTTPRequest object is assigned in requstObj variable.
var url = "server_script.php?value=" + somevalue;
The above line contains the name of the server script which is going to be called from the XMLHTTPRequest object. In this case, we’re going to call PHP script with “value” as a GET parameter.
requstObj.open("GET", url, true);
In the above statement, we’re going to call the PHP script with the HTTP GET Method. The third parameter of open() method specifies whether the server script is going to be called synchronously or asynchronously. The ‘true’ value specifies that the request is going to asynchronous.
requstObj.onreadystatechange = function() {
if (requstObj.readyState == 4) //when the response is completed
{
// only if http status is "OK"
if (requstObj.status == 200) 
{
//output the response text in alert box
alert(‘The response from server is: ’+ requstObj.responseText);
}
else
{
alert(‘Error occurred :’+ requstObj.status);
} 
} 
}
As you can see, an inline function is called which we generally call a response handler in the AJAX application. The above statement just defines that this response handler function is going to be called when the object’s readyState property is changed. The readyState 4 represents that the request status is completed and ready to get the response. The plaintext response from the server can be found inresponseText property of the object. The status property of object represents the HTTP status of the response. We can use the response requstObj.responseText of the above function in our application according to our need. The statement requstObj.status == 200 represents that we’re only going to process the response if we get an OK response (HTTP status code 200) from the server.
XMLHTTPRequest contains another property named responseXML to handle the response returned in the XML format by the server. We can use the getElementByTagName() DOM manipulation function to handle the XML response in JavaScript.
requstObj.send(null);
And finally, the above send function of the XMLHTTPRequest object sends the request to the server. Since, we’re using the GET method to send the request, we’ve entered null as the parameter in the send()function because we’re using the GET request and parameters are sent via the URL in the open()function. If we had used the POST request method then, we would have used the following statement to send the request to server.
requstObj.send(‘value=’ + somevalue);
When sending a request to the server using the POST method, we have to specify those variables in thesend() method of XMLHTTPRequest Object.

Web Services

In a typical web based application, a web client (usually a browser) sends an HTTP request to a web server, and the web server sends the response via an HTTP protocol to the client. For example, let’s suppose you want to get the weather report of a particular city. In this scenario, you visit a news portal and search your city’s weather report via HTML in that news portal.
But, Web Services act in a different manner. Web Services cause a server to expose application logic, which the client can use programmatically. In simple terms, it means that the server exposes a set of APIs (i.e. functions) which the client can call.
Since the API exposed using web services should be platform independent, XML is used for the communication between the client and server. The server which exposes the set of functions are usually described using a language called Web Services Description Language (WSDL).
Web services are a set of tools that can be used in a number of ways. The three most common styles of using them are REST, XML-RPC and SOAP.
While creating web widgets, we may have to use various standards of web services and let’s take a short glance at these technologies.

SOAP

SOAP stands for Simple Object Access Protocol and is by far the most popular method of remote access on the Internet. It is a protocol for exchanging XML based messages from client to server, normally using HTTP and HTTPS protocols.  SOAP procedures which are exposed in the XML format can be used by a client using SOAP protocol.
SOAP is an XML based messaging-protocol. A SOAP request in XML format contains the following main parts:
  1. An Envelope – It defines the document as a SOAP request
  2. A Body Element – It contains the information about the procedure called with parameters and expected response.
  3. Optional headers and fault element – It contains the supplementary information about the SOAP request.
A typical example of how SOAP procedures can be used, is when a website exposes a function called addTwoNumbers() to add two numbers and send the response to the SOAP client. Since, SOAP’s request and response are sent using the XML format they are platform independent and can be called from the remote server.
SOAP is criticized for it substantial complexity, with the necessity of serializing the remote call and then constructing a SOAP envelope to contain it. Due to the complexity of SOAP – REST (which doesn’t need a complex structure) is becoming a more popular way of providing and consuming web services.

REST

REST stands for Representational State Transfer, an emerging method to create and utilize web services. It is a simple yet powerful method of creating and consuming web services. REST is sometimes known as RESTful Web Services.  RESTful web services uses HTTP or similar protocols by constraining the interface to the standard operation like GET, POST and PUT methods. REST focuses on interacting with stateful resources rather than messages or operations.
Two main principles of RESTful web services are:
  • Resources are represented by URL. Resources can be thought of as an entity which the user can access as an API of a web service. Each resource in a REST application has a unique URL.
  • Operations in RESTful Web Services are carried out by standard HTTP operations such as GET, POST and PUT.
Let’s look at an example to understand the REST principle. Suppose we’ve got a marketplace website where the merchant can upload, view and delete any product.
  • Each Product detail can be accessed from a unique URL. Let’s suppose it is http://marketplace-website/product/123 and the HTTP GET method can be used to get the detail of the product from the above URL.
  • HTTP POST method can be used to post a new product to the website with the detail specified by the server in a particular URL (specified by server and the server responses) with information regarding the product upload.
  • HTTP DELETE method can be used to delete the particular product from the website using a unique URL for this operation.

XML-RPC

An XML-Remote Procedure call is another way of providing and consuming web services. XML-RPC uses XML to encode the request and response of the services and HTTP as a transport medium.
XML-RPC is a very simple protocol for using and consuming web services. It has a definite set of XML formats for defining the procedure, the data type and the commands. XML-RPC is designed to be as simple as possible, while allowing complex data structures to be transmitted, processed and returned. Let’s look at an XML format for calling a remote procedure.
<?xml version="1.0"?>
<methodCall>
<methodName>examples.getProductName</methodName>
<params>
<param>
<value><int>10</int></value>
</param>
</params>
</methodCall>
Now, let’s look at the response of the above call in XML format:
<?xml version="1.0"?>
<methodResponse>
<params>
<param>
<value><string>Apple IPhone 3G</string></value>
</param>
</params>
</methodResponse>

JSON

XML is the dominant data representation and interchange format on the web, but nowadays, another data type interchange format is picking up the hype - and it is JSON (JavaScript Object Notation). A main benefit of JSON over XML is that JSON is lightweight data interchange format.  JSON defines the data structures in the form of associative arrays commonly called Objects in its representation.
The file extension of JSON data representation is .json and Internet media type text/json is reserved for representing JSON data. JSON data is primarily used in the Ajax applications where it serves as the alternative for XML data.
As the name specifies, JSON is a subset of JavaScript and whilst commonly used with JavaScript, it is a language independent data format and can therefore be used with other languages as well.
The following example shows the JSON representation of the person object.
{
"firstName": "Michael",
"lastName": "Johnson",
"address": {
"postalCode": 12345, 
"city": "New York",
"state": "NY",
"country": "USA"
},
"phoneNumbers": [
"217 390-4455",
"644 224-599"
]
}
As you can see above JSON representation, “address” element contains another four elements named “postalCode”, “city”, “state” and “country”. Furthermore, the “phoneNumbers” element contains two phones numbers stored in array. You can see the detail of JSON representation from http://json.org.
Now, let’s look at quickly how can we parse JSON data using JavaScript. Let’s suppose that above JSON data representing a person object is contained in json_data string variables in JavaScript:
Var json_data=’{
"firstName": "Michael",
"lastName": "Johnson",
"address": {
"postalCode": 12345, 
"city": "New York",
"state": "NY",
"country": "USA"
},
"phoneNumbers": [
"217 390-4455",
"644 224-5994"
]
}’;
Note that there should not be any line break in the above string otherwise the JSON representation can’t be parsed by JavaScript. To have a clear vision about the object, it is displayed above in a well formatted manner.
Now, we can use the eval() function of JavaScript to parse the JSON data in the following way:
var person=eval("("+json_data+")");
Now, you can access all the fields of JSON data using the person variable. The variable person.firstNamereturns “John”, person.address.city returns “New York” and person..phoneNumbers[0] returns “217 390-4455”.
Until now, we’ve looked at various technologies for creating and using web widget. Now, let’s create a really simple web widget to display Packt’s logo.

Web Widget to Display Logo

Now, we’re going to create a web widget which displays the small logo of Packt Publishing (http://www.packtpub.com). You’ll have to place a line of JavaScript code in the remote website where you want to display this small logo.
You could simply place html code <img src=”http://images.packtpub.com/images/PacktLogoSmall.png&rdquo; /> to display the small logo of PACKT Publishing. But, I’m using this example to show how to use JavaScript to achieve the same thing so that it will be easier for you to understand the more complex JavaScript application

What does it look like?

Development of Ajax Web Widget
As you can see from the above image, this widget will just display the Packt logo.

JavaScript Code

For creating the web widget that displays the logo, use the following JavaScript Code.
document.write("<img style='margin:5px' src=
'http://images.packtpub.com/images/PacktLogoSmall.png' />");
You’ll need to write the code in a file (e.g. image-widget.js). The above code displays the logo with the added margin of 5 pixels in the document.
The above margin attribute adds margin of 5 pixels in all four side of image element. You can specify different margin for different sides by:
margin: 2px 3px 4px 5px;
This adds the margin of  2 pixel, 3pixel, 4 pixel and 5 pixel in top, right, bottom and the left hand sides of the element respectively.

Using Logo web widget

To use the web widget we’ve to follow these steps:
  1. First of all, we need to upload the above image-widget.js to a web server so that it can be used by the client websites. Let’s suppose that is uploaded and placed in the URL :http://www.widget-server.com/image-widget.js
  2. Now, we can widget in any web pages by placing the following JavaScript Code in the website.
<script type="text/javascript" language="javascript" 
src="http://www.widget-server.com/image-widget.js"></script>
We’ve provided the source of the script element to the JavaScript file which contains the JavaScript code to write the “img” tag to the document which uses that code.

Summary

Web Widgets are basically used for providing and serving the functionality of a remote website. The client’s website places a small chunk of code to serve the functionality provided by the widget providers.
We have covered the various technologies that go behind making a Widget work, such as, CSS, JavaScript, XML, PHP, AJAX, and web services. In the next article we will develop a wiki seek widget using Javascript.
If you have read this article you may be interested to view :

No comments:

Post a Comment

Labels

$100 1 GHz processor 1.2 GHz quad-core Processor 1.6 GHz Quad-core CPU 10 inches 10000 to 20000 1080p 11 inches 12 inches 16GB Transcend MicroSDHC Card 2 GB RAM 20 Inch Led Monitor 2013 idea valentineday 2013 Promise Day Poems 2013 Top 10 Valentines Day Ideas 2013 VALENTINES DAY 308 32 MP camera phablet 32GB MicroSD Card 3809 3D Games 3G 3g tablet 4.5-inch qHD display 4.65-inch Super AMOLED Plus display 400Gbps 4G 4G LTE 5-inch 5-inch phablet 5.7-inch phablet 5000 To 10000 596 7 inch android tab 7 inches 7-inch capacitive touchscreen 8 inches 9 inches A1000 A116 Canvas HD a58 A6X processor AC/ Coolers Accessories Accessories for her Accessories for him according Ace Acer Acer Aspire S3-951 Acer Aspire S3-951 India Acer Aspire S3-951 price in india Acer Ferrari Motion Wireless Laser Mouse Acer Laptops Acer Laser Mouse Acer Liquid C1 Acer Liquid C1 India Acer Liquid C1 price in india Acer Liquid E1 Acer Liquid E1 India Acer Liquid E1 price in india Acer Mobiles Actilife Malt Flavour Daily Nutrition Ad Addons AdexMart Adidas Floters Adidas l39472 Floters Advantages of flexible batteries Advik 2.0 Desktop Speaker AD-SP1510 afp Ainol Ainol Novo 10 Hero II 10 inch tablet Ainol Novo 10 Hero II Price Ainol Novo 10 Hero II price In India Ainol Novo 10 Hero II Review Ainol Novo 7 Venus Features Ainol Novo 7 Venus Price Ainol Novo 7 Venus price in india Ainol Novo 7 Venus Review Ainol Novo 8 Dream 8 Inch Tab Ainol Novo 8 Dream Features Ainol Novo 8 Dream Price In India Ainol Novo 8 Dream Review Ainol Novo 9 Spark 9 Inch Tablet Ainol Novo 9 Spark Price Ainol Novo 9 Spark price In India Ainol Novo 9 Spark Review Ainol Novo 9 Spark Tablet Airtel DTH Recharge Airtel Offers Airtyme Diego 3G Calling Tablet Airtyme Diego 3G Calling Tablet Price Airtyme Diego 3G Calling Tablet Price In India Airtyme Diego 3G Calling Tablet Review Ajax alcatel alcatel lucent Alcatel Mobiles Alcatel One Touch Fire Alcatel OT 4005D Alcatel OT 4005D India Alcatel OT 4005D price in india Alcatel OT 4010E Alcatel OT 4010E India Alcatel OT 4010E price in india Alcatel OT 5020E Alcatel OT 5020E India Alcatel OT 5020E price in india Alcatel specifications All Allschoolstuff AllSchoolStuff Coupons alpha Alpha A58 Amazon Amazon 10 percent discount on phones Amazon 15 percent discount on cameras Ambrane Ambrane Power Bank Amtrak Andorid 4.0 Ice Cream Sandwich Android Android 2.3 android 4.0 Android 4.0 (ICS) smartphone Android 4.0 ICS android 4.1 android 4.1 jelly bean Android 4.2 Android 4.2.2 Android 4.3 Android 4.3 for Google's edition of Samsung Galaxy S4 Android 4.3 leaked screenshots Android Apps Android Basics Android Emulator Android Examples Android ICS Android ICS budget smartphone Android jelly bean Android Native Apps Android SDK Android Security Android Smartphones Android Tips Android Tutorials Anklets Announcement Antivirus anytimeretail AOC LE19A1221/61 AOC LE19A1221/61 LED Monitor AOC LE19A1221/61 Price AOC LE19A1221/61 Price In India app App News Apparels Apparels for her Apparels for him Apple apple competitor Apple iPhone Apple iPhone 5 Apple Mac OS X Apple Mobile Phones appliances Applications APPS Appstore Archos Archos 35 Archos 35 India Archos 35 price in india Archos 48 Platinum Archos 48 Platinum India Archos 48 Platinum price in india Archos 52 Titanium Archos 52 Titanium India Archos 52 Titanium price in india Archos Mobiles Aryan Organic White Chick Peas Ascend Mate ASP.NET ASP.NET Grid View Aspen Asus Asus MeMO Pad Asus MeMo Pad 10 Asus MeMo Pad 10 India Asus MeMo Pad 10 price in india Asus MeMo Pad 10 Tablets Asus MeMO Pad full specifications Asus MeMo Pad ME172V Asus MeMo Pad ME172V India Asus MeMo Pad ME172V price in india Asus MeMo Pad ME172V Tablets Asus MeMO Pad price ATamp;T ativ samsung smart pc Audi A7 AutoCompleteTextView Avast Antivirus Azafran Extra Virgin Sunflower Oil Baby Carrier Baby Clothing Baby Diapers Baby stuffs Baby Toys Babyoye Coupons Backpacks Bags for her Bagskart balaji-motion Basicslife Basicslife Coupons Bata Footin Sandals Battery Life Batting Gloves beats audio Beauty Beetel Beginner Developers Belkin Compact Keyboard K100 Below 5000 below 5000 tablet BenQ BL2201PT 22 Inch LED Monitor BenQ BL2201PT Features BenQ BL2201PT Price BenQ BL2201PT Price In India BenQ BL2201PT Review BenQ BL2411PT 24 INch Led Monitor BenQ BL2411PT Features BenQ BL2411PT Price BenQ BL2411PT Price In India BenQ BL2411PT Review best Best Android Apps Best Mobile Phones Best of the web best online price Best Poem for Promise Day 2013 Best Websites bestonlinedeals Bestylish Bestylish Coupons Beverages Big Bazaar April Utsav Bikes BlackBerry BlackBerry Mobile Phones BlackBerry Z10 block Blogger Bloging blogspot BLU Mobiles BLU Quattro 4.5 HD BLU Quattro 4.5 HD India BLU Quattro 4.5 HD price in india BLU Quattro 5.7 HD BLU Quattro 5.7 HD India BLU Quattro 5.7 HD price in india Bluetooth headsets board Bollywood Bombay Dyeing Bath Towels Book/ Papers books Books amp; CDs Books amp; Music Bracelets brand Brazil breaking Broad Band browser BSNL Data Card BSNL TTA Practice Workbook budget phone budget phones in India budget smartphone budget smartphones budget tablet budget tablets Bus Tickets Business business phone buy buy online Buy Samsung Galaxy Core online Buying Guides Byond B51 Byond B54 Byond B63 Byond B65 Byond B65 specification byond mobiles Byond Tech Phablet PIII Cabana Bath Towels Cabana Hand Towels Cabarelli Premium Wallets CakePHP Calendar Plugins Camcoders Camera Camera Accessories camera app camera quality cameras Canon Canon A2300 Digital Camera Canon Digital Cameras Canon EOS 70D 20 Megapixel DSLR Canon EOS 70D Price Canon EOS 70D Price in India Canon EOS 70D Review Canon IXUS 135 India Canon IXUS 135 Price Canon IXUS 135 Price in INDIA Canon PowerShot A2500 India Canon PowerShot A2500 Price Canon PowerShot A2500 Price in INDIA canonical canvas Canvas 3 Canvas 3 Features Canvas 3 Micromax Canvas 3 price Canvas 3 Specifications Car Parking Reverse Sensors Carrier amp; Education cars Casual Cross Pockets Woven Cargo Shorts Cavallini Deodorants CCIT CDN Celkon Celkon A119Q Signature HD price in India Celkon A79 Celkon A79 India Celkon A79 price in india Celkon A8+ Celkon A8+ Price Celkon A8+ Price In India Celkon A8+ Review Celkon A87 Celkon A87 India Celkon A87 price in india Celkon A9+ price in India Celkon CT910 Tab Celkon CT910 Tab India Celkon CT910 Tab price in india Celkon CT910 Tab Tablets Celkon Mobiles Celkon Signature A107 One price in India Celkon Signature HD A118 Celkon Signature HD A118 price Celkon Signature HD A118 price in India Celkon Signature HD A118 specifications Cenizas Hand Towels censor Chaining Champion cheating Chicco Aftersun Milk Lotion china chinese leak chrome + chrome os Chromebook chromebook pixel Classmate Octane Gel Pens Client Side Validation Clothing CMS CodeIgniter CodeProject CoffeeScript college Colorfly CT132 13.3quot; Tablet Colorfly CT132 Price Colorfly CT132 Price In India Colorfly CT132 Review common compact companion handset company Comparision Comparisions compass Computer Accessories Computer Parts computers Concept Confectionery Contacts Contacts API 2.0 Content Provider ContentResolver CONTESTS Context Menu control Cool Tips and Tricks Coolpix Coolpix A Coolpix P330 Corning Cosmetics Cosmetics amp;Accessories Costa Coffee Cotton Designer Bed Sheets Cotton Double Bedsheets Cotton Stretch Briefs could country coverage.ec cPanel Craftsvilla crazeal Cre Loaded Create Collage Cricket Bails Cricket Bats Cricket Soft Balls Cricket Stumps cromaretail Crystal Nonstick Cookwares Crystal Premium Nonstick Cookware css CSS Selectors Cubic Zircon Mangalsutra curl Curved Glass customer Cute Valentine’s Day Ideas Cute Walk Clogs Daily Deal Sites Daily Meals Daily Use Products dailydeals Dalvik error format Data Card Data storage Database Datacard Datacards Date Picker Dating sites Davidoff Cool Water EDT De Deal of Day deals delhi Dell Dell Inspiron Ultra N5423 core i3 Laptop Dell Inspiron Ultra N5423 Price Dell Inspiron Ultra N5423 Price In India Dell Inspiron Ultra N5423 Review Dell XPS Denim EDT 100ml Deodrants amp; Perfume design designer Designer Analog Watch Designer Wine Glass Devante Developer Tutorial Developers Development device Digisol DG-BA3370 Digisol DG-BA3370 3G datacard Price In India Digisol DG-BA3370 3g Datacard Review Digisol DG-BA3370 Price Digital Camera Pouch Digital Camers and Camcorders Digital Clock Digital Photography Digital SLR Camera director Discount Coupons Dish Network DishaPublication Coupons Disney School Bags Disney Shoes Disney Toddler School Bags display displays Diva Designer Kurtis DMCA DNA DNA Base Sequence DNA Fingerprinting DNA structure DogSpot Domain Domestic Flights Dominos Pizza Coupons Downloads Dr. Gene Digital Thermometer DropDown DropDownList Drupal DSLRs dual core dual sim phone Dual SIM tablet dual-core processor dual-core processor phablet dual-core processor smartphone dual-sim Dynamic UI e choice E-Commerce Plugins Earn Money Earrings ebay eBay Coupons Ebooks Eclipse Eclipse Configuration Edu-Slide i1017 educational egypt egypt protest Electronics Electronics amp; Appliances Email Marketing engineering jobs english Envy Half Sleeves Blue Shirt Equipments Error Etab Connect etab connect price Etab Connect specifications Eureka Forbes Aquasure Xtra Tuff Water Purifier Eureka Forbes Water Purifier Event namespacing Events ExerPedal Mini Bike Exmor RS External Hard Disks exynos 5410 exynos octa eye tracking ezoneonline eZoneOnline Coupons Fabiano Appliances Induction Cooker Fablet F2 Fablet F2 specs Fablet F3 Fablet F3 specs FabLooms Carpets FabLooms Reversible Bath Mat facebook Facebook Phone facebook tool bar faculty FAEA F1 Features FAEA F1 Price FAEA F1 Price In India FAEA F1 Review fashion Fashion Accessories Fashion Garments fashionandyou Fashionara Fashionara Coupons Fast Foods featimg feature phone featured Featured Pots featurephone features february Feed button forms Fermai Men 80265 Fermai Men 80625 Fermani Men 1524 Fermani Men 6046 Fermani Men 7731 Fermani Men 7847 Fermani Men 882 Fermani Men 991 Fermani Men SURVIVOR Fevikwik Instant Adhesive Fiat Linea film Fire Fox Firefos OS Firefox Firefox OS Firefox OS based smartphone Firefox OS features Firstcry FirstCry Coupons Flexible batteries Flexible Glass flipkart Flipkart Coupons Floating Touch Floyd Opulent Sunglasses Fly fonepad Food amp; Drinks Food Deals Footwear Footwears for her Footwears for him Frameworks france telecom FREE Free Antivirus Free Driver Download Freebie Freebies Freecharge Coupons Freecultr Freeware friday fuel charger FujiFilm FujiFilm Digital Cameras Fujifilm FinePix S6800 India Fujifilm FinePix S6800 Price Fujifilm FinePix S6800 Price in INDIA Fujifilm X-M1 Fujifilm X-M1 Price Fujifilm X-M1 Price In India Fujifilm X-M1 Revealed Fujifilm X-M1 Review Full HD display smartphone full specifications Furniture and Accesories futurebazar Gadget Reviews gadgets galaxy Galaxy Ace Galaxy core Galaxy Note 8.0 galaxy s 4 galaxy s flagship Galaxy S IV Galaxy S4 Gallery game errors gamestick console kickstarter Gamestick features gamestick kickstarter gamestick price Gaming Garnier Deodorants Gas Saver Nets General Geo Location Gesture Control gesture recognition Gifts and Choclates Gingerbread Gionee Gionee CTRL V4 Gionee CTRL V4 price Gionee CTRL V4 Price In India Gionee CTRL V4 Review Gionee CTRL V4 specifications Gionee CTRL V4 Specs Gionee Dream D1 Gionee Dream D1 full specifications Gionee Dream D1 India Gionee Dream D1 price in india Gionee Elife E6 Gionee Elife E6 price Gionee Elife E6 specifications Gionee launch in India Gionee Mobiles Gmail good graphic design Goodlife Coupons goodslife Google Google Ads Google Adsense Google Analytics Google Chrome Google Chrome Extensions Google Docs google drive Google Glass Google Play Google Play Books google play store Google Plus Google Services Google Site Clinic Google Stores Google Traffic Gorilla Glass gradiente eletronica Grand Memo Graphic Design graphics Green PHOLED Green Tech Greendust Coupons GridView Hackintosh halo value Handloomwala Sofa Covers hands-on Hang Designer Door Curtain happy Happy Promise Day 2013 Poem Happy Promise Day 2013 Poems Happy Promise Day Poems in English Hardware harvard harvard-university HCL HD HD A119Q HD display Head Headphones Health Accesories Health amp; Beauty Health amp; Fitness Here Maps Home Home amp; Accessories Home amp; Kitchen Home Appliances Home Decor Home Furnitures Home Supplies HomeShop18 Homeshop18 Coupons hotdeals How flexible batteries work How to How to use jQuery HP HP Laptops HP Optical Mouses HP Pavilion 14 Chromebook HP Pavilion 14 Chromebook India HP Pavilion 14 Chromebook price in india htaccess HTC HTC Butterfly HTC desire 200 HTC desire 200 price HTC desire 200 specifications HTC Desire 600 dual SIM HTC Desire 600 features HTC Desire 600 launched in India HTC desire 600 online availability HTC Desire 600 price in India 2013 4th July HTC Desire 600 specifications HTC Desire XC HTC Desire XC Price HTC Desire XC Price IN India HTC Desire XC Review HTC Mobiles HTC Myst HTC One htc one x HTC Sense HTC Tiara HTC Tiara India HTC Tiara price in india Html Huawei Huawei Ascend G330 Huawei Ascend G600 Huawei Ascend Mate Huawei Ascend Mate online Huawei Ascend Mate price Huawei Ascend Mate specifications Huawei Ascend P2 Huawei Ascend P2 India Huawei Ascend P2 price in india Huawei Ascend P6 Huawei Ascend P6 release date Huawei Ascend P6 specifications Huawei Ascend P6 videos Huawei Ascend Y300 Huawei Ascend Y300 India Huawei Ascend Y300 price in india Huawei Mobiles Hushbabies HushBabies Coupons Hyperlink Hyundai T7 Hyundai T7 India Hyundai T7 price in india Hyundai T7 Tablets iBall iBall Slide 7334i iBall Slide 7334i Price iBall Slide 7334i Price In India iBall Slide 7334i Review iBall Slide i6012 iBall Slide i6012 India iBall Slide i6012 price in india iBall Slide i6012 Tablets ice Idea Mobiles Idea Zeal 3G Idea Zeal 3G India Idea Zeal 3G price in india Image Effects Image Gallery Image Map Plugins Image Plugins Images ImageSwitcher ImageView imei Improved Camera App Inco Mirror Inco Mirror India Inco Mirror price in india Inco Mobiles india india-wide IndiaTimes Indiatimes Midnight Sale Indiatimes Shopping Coupons infibeam Infibeam Coupons Infibeam Magic Box Deals INFO information informative Infrared Forehead Thermometer Inkfruit Inspiration Instagram Plugins Instal Stock Android on HTC One Instal Stock Android on Samsung Galaxy S4 INTEL intel atom Intel Atom Z2420 Intel Atom Z2580 Intel Inside Intel Xolo X910 Mobile Phone Interchangeable Lens internet internet marketing Internet Updates interview Interview Questions Intex Intex Aqua i5 Intex Aqua i5 lowest price Intex Aqua i5 price Intex Aqua i5 price in India Intex Aqua i5 specifications Intex Aqua Style Intex Aqua Style full specifications Intex Aqua Style India Intex Aqua Style price in india Intex iTab Intex Mobiles Intex phablet Investors iOS iOS 6.1 IP Address IP address information using jQuery iPad iPad 4 iPad 4 price and availability in India iPad 4 with 128GB iPad 4 with Retina Display iPads Iphone iPhone 5 iphone apps ipods Iris 430 budget smartphone Iris 430 price in india Iris 430 specifications Iris 502 Italian Optical Frames iWatch Jabong Jaipan Mango Shaker Jaipur Kurtis Jaipuri Printed Summer Blanket Japan Java Based OS Javascript jdk1.6.0_21 jeetendra Jeggings Jelly Bean jelly bean tablet JellyBean JellyBean 4.2 Jewellery Jewellery and Gold coins Jiayu Jiayu G4 Jiayu G4 online availability Jiayu G4 price in Inda Jiayu G4 specifications job Jockey Briefs Jockey Innerwears Jockey Physical Man EDT 100ml John Carry Trousers Joomla Joomla Customization Josh Fortune HD Josh Fortune HD Price Josh Fortune HD Price In India Josh Fortune HD Review jquery jQuery 1.7 jQuery 1.9 jQuery 2.0 jQuery Ajax jQuery and Ajax jQuery Array jQuery Calendar Plugins jQuery CDN jQuery Chaining jQuery Clock Plugin jQuery Code Examples Jquery Code Snippets jQuery Codes jQuery DatePicker jQuery Debugging jQuery Digital Clock jQuery Error jQuery Events jQuery For Beginners jQuery Instagram Plugins jQuery is not defined jQuery Mistakes jQuery Modal Plugins jQuery News jQuery News ticker plugin jQuery Plugin 2013 jQuery Plugins jQuery Popup Plugins jQuery Selectors jQuery Source Map jQuery Tips jQuery Training jQuery UI jQuery UI DatePicker jQuery Validation jQuery webticker plugin jQuery With Ajax jQuery With ASP.NET jQuery YouTube jUnit Just For Men Shampoo Karbonn Karbonn A1 Plus Karbonn A12 Karbonn A12 full specifications Karbonn A12 online Karbonn A30 Karbonn K75 Karbonn K75 India Karbonn K75 price in india Karbonn Mobile Phones karbonn Mobiles Karbonn Smart Tab 8 Velox Karbonn Titanium Karbonn Titanium S6 Karbonn Titanium S6 india Karbonn Titanium S6 Price Karbonn Titanium S6 Price In india Karbonn Titanium S6 Review Karbonn Titanium S6 specifications Karbonn Titanium S9 Karbonn Titanium S9 Features Karbonn Titanium S9 launch in India Karbonn Titanium S9 Price Karbonn Titanium S9 price in India Karbonn Titanium S9 Review Karbonn Titanium S9 specifications Karbonn Titanium S9 vs Karbonn Titanium S5 Katrina Kaif Kids Kids amp; Baby Kids amp; Teens Kids/Teens king kitchen Kitchenware kobian Kobian Mercury mTAB Lite Kobian Mercury mTAB Lite price Kobian Mercury mTAB Lite specifications Kobo Arc Kobo Arc India Kobo Arc price in india Kobo Arc Tablets Konex Chess Board Konka Expose Konka Tango Konka Tuxedo Konka Viva Korean Kurtas Landmark Gift Vouchers Language Translate Plugins laptop Laptop / Tablet Hybrid Laptop Accessories Laptop Bags Laptop Sleeves laptops Laser Printer launch launch in India lava Lava E-Tab Connect Lava E-Tab Connect India Lava E-Tab Connect price in india Lava E-Tab Connect Tablets Lava E-tab Z7S EDGE Lava E-tab Z7S EDGE India Lava E-tab Z7S EDGE price in india Lava E-tab Z7S EDGE Tablets lava Etab Connect lava Iris 430 Lava Iris 430 India Lava Iris 430 price in india Lava Iris 502 Lava Iris 502 India Lava Iris 502 price in india Lava Iris 504Q Lava Iris 504Q availability Lava Iris 504Q online Lava Iris 504Q price Lava Iris 504Q Price in India Lava Iris 504Q review Lava Iris 504Q specifications LAVA Mobiles LCD Televisions leak Learn jQuery Leather Wallets Lemon Lemon Mobiles Lemon P100 Note Lemon P100 Note India Lemon P100 Note price in india Lenovo Lenovo A1000 Lenovo A1000 India Lenovo A1000 price in india Lenovo A1000 Tablets Lenovo A3000 Lenovo A3000 India Lenovo A3000 price in india Lenovo A3000 Tablets Lenovo IdeaPhone S890 Lenovo IdeaPhone S890 India Lenovo IdeaPhone S890 price in india Lenovo Mobiles Lenovo S6000 Lenovo S6000 India Lenovo S6000 price in india Lenovo S6000 Tablets Lenovo S820 Lenovo S920 Lens and Sunglasses Lenskart Leonardo Mango Premium Pickle LG LG 20EN33TS 19.5 INch LED Monitor LG 20EN33TS Price LG 20EN33TS Price In India LG 20EN33TS Review LG 22EN33T LG 22EN33T 21.5 Inch LED Monitor LG 22EN33T Price LG 22EN33T price In India LG Google Nexus 4 Mobile Phone LG MH2042DW 20 Litre Stylish Grill Microwave Oven LG MH2042DW Price LG MH2042DW Price In India LG MH2042DW Review LG Mobile Phones LG Mobiles LG Nexus 4 Mobile Phone LG Optimus LG Optimus F5 LG Optimus F5 India LG Optimus F5 price in india LG Optimus G Pro LG Optimus G Pro india LG Optimus G Pro launch in India LG Optimus G Pro price in India LG Optimus G Pro review LG Optimus G Pro specifications LG Optimus L3 II LG Optimus L3 II India LG Optimus L3 II price in india LG Optimus L4 II Dual LG Optimus L4 II Dual launch in India LG Optimus L4 II Dual price in India LG Optimus L4 II Dual specifications LG Optimus L5 II LG Optimus L5 II India LG Optimus L5 II price in india LG Optimus L7 II Dual LG Optimus L7 II Dual India LG Optimus L7 II Dual price in india LG Optimus L9 P765 lightest link error linux ListView LiveSight Localhost Logitech Universal Remote Harmony 200 low cost phablet lowest price in indai LTE Lumia Lumia 520 Lumia 520 price Lumia 520 specifications Luxury mac Mac on Windows madhya pradesh Magazine magento maharashtra Makemytrip Coupons MakeMyTrip Travel Vouchers Mango Premium Pickle Map Marker Plugins March 14 Galaxy S4 launch March 14 XOLO launch Market Cap Market leader Masticart Masticart Coupons Matrix Maxtouuch Maybelline Baby Lips Maybelline BB Cream Maybelline Colossal Kajal medical MeMO Pad full specifications MeMO Pad ME172V MeMO Pad price in India MemoryCards Men Mens Apparel Mice and Keyboards Micromax Micromax A35 Bolt Micromax A35 Bolt full specifications Micromax A35 Bolt price in india Micromax A89 Ninja full specifications Micromax A89 Ninja launch date Micromax A89 Ninja price in indai Micromax Bolt series Micromax Canvas Micromax Canvas 3 Micromax Canvas 3 Features Micromax Canvas 3 Price Micromax Canvas 3 Price In India Micromax Canvas 4 Micromax Canvas 4 expected price Micromax canvas 4 images Micromax Canvas 4 leaked pictures Micromax Canvas 4 leaked specifications Micromax Canvas 4 preorder Micromax Canvas 4 price Micromax canvas 4 release date Micromax Canvas 4 specifications Micromax Canvas A92 Lite Micromax Canvas A92 Lite online Micromax Canvas A92 Lite pre-order Micromax Canvas A92 Lite price Micromax Canvas A92 Lite specifications Micromax Canvas HD A116 Micromax Canvas HD A116 Mobile Phone Micromax Funbook P600 Micromax Mobile Phones Micromax Mobiles micromax ninja Micromax Ninja A89 Micromax tablet microsoft Microsoft Bluetooth Keyboards Microsoft Bluetooth Mobile 5000 Keyboard Microsoft Office 2013 Microsoft Stores in India Microsoft Surface Microsoft Windows Microsoft windows stores in India Microwave Oven midc Middaysale Coupons Middaysales Milleramp;Schweizer Shirts minister Mirchimart Coupons Miscellaneous Mobile Mobile Accesories Mobile Accessories mobile charge Mobile Phones Mobile Prices in india Mobile Recharge mobile roaming charges Mobile World Congress Mobilephones Mobiles mobilestore Modal Window Modal Window Plugin Money Making Monitors Morphy Richards Hand Blender HB-05 Morphy Richards Hand Blenders Mortein Power Gard Power Booster motion Motorola MP3 Players MSI mtk Multiple Categories Music Players muslim mwc MWC 2013 mwc2013 Myntra Myntra Coupons Myntra Mid Season Sale Mysore Rose Soap Mysql Myst naaptol Nabi Nakshatra Style Nose Rings NameCheap ncert Necklace Sets Necklaces netherlands network New Project new technologies in gaming News nex-3n nexus Nikon Nikon Coolpix Nikon Coolpix L27 India Nikon Coolpix L27 Price Nikon Coolpix L27 Price in INDIA Nikon D3100 14MP Digital SLR Camera Nikon D7100 India Nikon D7100 Price Nikon D7100 Price in INDIA Nikon Digital Cameras Nilkamal Computer Table Nilkamal Leo Computer Table Nissan Nissan Micra Active Ex Showroom Nissan Micra Active Hatchback Nissan Micra Active INdia Nissan Micra Active Price Nissan Micra Active price In India Nissan Micra Active Review Nokia Nokia 105 Nokia 105 India Nokia 105 price in india Nokia 301 Nokia 301 India Nokia 301 price in india Nokia Asha Nokia Asha 210 Nokia Asha 210 features Nokia Asha 210 pre-order Nokia Asha 210 price in India Nokia Asha 210 specifications Nokia Asha 210 video Nokia Asha 311 Mobile Phone nokia asha 501 Nokia Asha 501 critic review Nokia Asha 501 full specifications Nokia Asha 501 launch in India Nokia Asha 501 online Nokia Asha 501 online availabily Samsung Galaxy Star Duos Nokia Asha 501 pre-order Nokia Asha 501 preorder Nokia Asha 501 price Nokia Asha 501 price in India Nokia Asha 501 specifications Nokia Lumia 520 Nokia Lumia 520 price Nokia Lumia 520 specifications Nokia Lumia 720 Mobile Phone Nokia Lumia 920 Mobile Phone Nokia Maps Nokia Mobile Phones Nokia Mobiles Nonstick Cookwares Nostra Casual Polo T-Shirt Note 510 note II Notebook Novels Nugen AND 5 Nugen AND 5 Price Nugen AND 5 Price In India Nugen AND 5 Review nVidia Nvidia GeForce 302.82 nvidia tegra 4 nvidia tegra 4 chimera computational photography nvidia tegra 4i NXI Offers on Amazon India official Olympus Olympus Digital Cameras Olympus Stylus XZ-10 India Olympus Stylus XZ-10 Price Olympus Stylus XZ-10 Price in INDIA One Touch Snap One Touch Snap LTE Onida ONIDA KYT005 Dual Sim ONIDA KYT005 Price ONIDA KYT005 Price In India ONIDA KYT005 Review Online Online Air Ticket Sites Online Business online collaboration tool Online Tips open source operating system Oppo Find 5 Oppo Find 5 mini Oppo Find 5 price in India Oppo Find 6 Oppo FInd 7 Oppo Find 7 launch Oppo FInd 7 specifications optical link' OptiContrast Optimus Optimus F Optimus F5 Optimus F7 Optimus L7 II Dual features Optimus L7 II Dual launch date Optimus L7 II Dual price Optimus L7 II Dual specifications Options Menu orange Orkia MP3 Player Orpat Steam Iron OEI-607 Orpat Steam Irons OS Osia Italia Shirts Other Others Outdoor outlook Palm Panasonic Panasonic Digital Cameras Panasonic Hair Dryer EH-ND13 Panasonic Ivory Split AC Panasonic Lumix DMC-F5 14 Megapixel Camera Panasonic Lumix DMC-F5 price Panasonic Lumix DMC-F5 Price In India Panasonic Lumix DMC-F5 Review Panasonic Lumix DMC-LZ20 Digital Camera Pantech Discover Pantech Discover India Pantech Discover price in india Pantech Mobiles Park Avenue Grooming Kit Parse HTML Parse JSON Parse XML Payment Module Paypal PC/CONSOLE PCBC Duffle Bags Pebble Smartwatch Pebble Smartwatch Price Pebble Smartwatch Price In India Pebble Smartwatch Review Pendants PenDrives Pens/Pencils pepperfry Pepperfry Coupons Pepsodent Whitening Toothpaste Performance Perfumes personal care Personalized Products phablet phablets Philips Bluetooth Mono Headset SHB1400 Philips Computer Speakers Philips Hair Dryer HP4940 Philips Hair Dryers Philips Home Theater HTS2400 Philips Micro Hi-Fi System DCD132 phone strap phone strap 2 phone strap 2 wx06a Photo Gallery Photo Gallery Plugins Photo Slideshow photos Photoshop PHP PHP Developers PHP Interview Questions physical Picker Views Pilot run Pinterest Layout Plugin Pinterest Plugins Pizza Hut Coupon Codes Pizza Hut Coupons PL/SQL plastic Play Store Poem for Valentine Promise Day poems Poems on Promise Day Point-and-Shoot Polaroid Police Men Deodorants Polo Club Travel Bags pop portable charger portable mobile charger portable usb charger Power Bank AP4000A PowerTrekk portable charger ppi pradesh Precious Metals Premium Nonstick Cookwares Premium Tab Maya-81 Price Premium Tab Maya-81 Price In India Premium Tab Maya-81 Review Presentation Tools president PressReader price price in India price Micromax Canvas 3 Prices in india Princeware Jumbo Storage Set Priya Envy Tiffin Box Problem Fixes Processor Product Guides Profits promise day 2013 promise day 2013 poems Promise day 2013 Poems in Hindi promise day 2013 quotes promise day best quotes pros n cons published Qr codes quad core quad core phablets quad-core phablet quad-core processor quad-core Tegra 3 Nvidia phablet Qualcomm qualcomm snapdragon 800 qualcomm snapdragon 800 clock speed quote Promise day 2013 quotes quotes for Promise day 2013 quotes Promise day 2013 ram Ramos Rating Plugins Ratings amp; Reviews RealEstate Sites recent Recharge Recharge Deals Recron Pillows Red Rose rediff Rediff Coupons Reebok Mobile Runner Shoes release Releases Reliance Reliance Industries Reliance Industries Limited Renater Research resolution resources Resturants Retail review reviews REX REX 60 REX 70 REX 80 REX 90 REX Series Reynolds Trigger Pens right RIL Rings ringtones Ritz Canisters Roadster Jeans Roadster Men Blue Indigo Dyed Jeans Roadster Women Electric Blue Slim Fit Jeans Roundups rs-i-clinician-medical Rss Feed Ruby rumor rumors Rumour s4 S820 S920 saholic Saint Gobain Sale Salora Salora Mobiles Salora POWER Maxx Z1 Salora POWER Maxx Z1 India Salora POWER Maxx Z1 price in india Sample Code Download Samsung Samsung ATIV Book 9 Lite Samsung ATIV Book 9 Lite Price Samsung ATIV Book 9 Lite price In INdia Samsung ATIV Book 9 Lite Review Samsung ATIV One 5 Style Features Samsung ATIV One 5 Style Price Samsung ATIV One 5 Style Price In India Samsung ATIV One 5 Style Review Samsung ATIV Q Samsung ATIV Q specs Samsung Ativ Smart PC buy online in India Samsung Ativ Smart PC lowest price in india Samsung Ativ Smart PC reviews Samsung Bluetooth Headset HM1200 Samsung Bluetooth Headsets Samsung Galaxy Samsung Galaxy Core Duos Features Samsung Galaxy Core Duos Price Samsung Galaxy Core Duos Price In India Samsung Galaxy Core Duos Review Samsung Galaxy core price Samsung Galaxy Core specifications Samsung Galaxy Grand Samsung Galaxy Nexus Samsung Galaxy Note Samsung Galaxy Note 2 Samsung Galaxy Note 8.0 full specifications Samsung Galaxy Note Mobile Phone Samsung Galaxy NX Camera Features Samsung Galaxy NX Camera Price Samsung Galaxy NX Camera Price In India Samsung Galaxy NX Camera Review Samsung Galaxy S IV Mini Samsung Galaxy S IV Mini India Samsung Galaxy S IV Mini price in india Samsung Galaxy S3 samsung galaxy s4 Samsung Galaxy Star Samsung Galaxy Star Duos online availability Samsung Galaxy Star Duos price in India Samsung Galaxy Star Duos specifications Samsung Galaxy Star India Samsung Galaxy Star price in india Samsung Galaxy Tab 2 311 Samsung Galaxy Tab 2 311 Features Samsung Galaxy Tab 2 311 Price Samsung Galaxy Tab 2 311 Price In India Samsung Galaxy Tab 2 P3110 Samsung Galaxy Tab 3 Samsung Galaxy Tab 3 India Samsung Galaxy Tab 3 price in india Samsung Galaxy Tab 3 Tablets Samsung Mobile Phones Samsung Mobiles Samsung S20C300BL Led Monitor Samsung S20C300BL Price Samsung S20C300BL Price In India Samsung S4 Samsung Tab 2 311 tablet samsung vs apple Samsung WB110 20 megapixel Samsung WB110 Price Samsung WB110 Price In India Samsung WB110 Review saturday satvikshop Satvikshop Coupons scandal School Stationery Scomp Techno Tab Plus Scratch Guards Screen size scrolling seagate central seagate central availability in India seagate central price in India seagate wireless plus seagate wireless plus availability in India seagate wireless plus price in India Search engine optimization Selectors SEM Tips SEO SEO tips Server Virtualization Sesa Hair Care Seventymm Coupon shares Sheets amp; Bedding Sets Shoes/ Socks shopclues ShopClues Coupons Shopping Cart Plugins Signature HD A118 Silver Coins Sim Card Slot Simmtronics Skott Ahn Sleeveless Frocks SLT-A58 Small Business smallest Smart PC Pro buy online in India Smart PC Pro lowest price in india Smart PC Pro reviews smart tv smartphone Smartphones SmartWatch Smarty Smatphone SMO Snap View function snapdeal Snapdeal Coupons SnapDragon snapdragon 200 snapdragon 400 snapdragon 600 Snapdragon 800 Snapdragon Battery Guru Social Media Optimization Social Networking Softrax Battery Operated Hummer Software softwares Softwear T-Shirts Sonata Ecstatic Watch Sony Sony Cybershot DSC - W610 Digital Camera Sony Cybershot DSC-S5000 India Sony Cybershot DSC-S5000 Price Sony Cybershot DSC-S5000 Price in INDIA Sony Digital Cameras Sony DSC-S5000 Digital Camera Sony Ericsson Sony Mobile Phones Sony Mobiles SONY VAIO VPCF223FX Sony Xperia Sony Xperia C670X Sony Xperia C670X India Sony Xperia C670X price in india Sony Xperia Honami Sony Xperia i1 Honami Sony Xperia i1 Honami leak Sony Xperia i1 Honami specifications Sony Xperia T Sony Xperia T Jelly Bean update Sony Xperia Tablet Z Sony Xperia Tipo Sony Xperia Z Sony Xperia Z Ultra Sony Xperia Z Ultra launch date Sony Xperia Z Ultra launch in India Sony Xperia Z Ultra leaked pictures Sony Xperia Z Ultra price Sony Xperia Z Ultra specifications Sony Xperia Z Ultra specs Sony Xperia ZL Source Map SPC Speakers specifications specs spend valentines day Spice Spice Coolpad Mi-515 Features Spice Coolpad Mi-515 Price Spice Coolpad Mi-515 Price In India Spice Coolpad Mi-515 Review Spice Coolpad Mi-515 specifications Spice Coolpad Mi515 online Spice Coolpad Mi515 price in India Spice Coolpad Mi515 specifications Spice Mi-435 Stellar Nhance Spice Mi-530 Spice Mi-530 India Spice Mi-530 price in india Spice Mobiles Spice Stellar Nhance Mi-435 Spice Stellar Nhance Mi-435 India Spice Stellar Nhance Mi-435 price in india Spice Stellar Virtuoso Pro Spice Stellar Virtuoso Pro launched Spice Stellar Virtuoso Pro price in India Spice Stellar Virtuoso Pro specfications Spinner SQL SQLIte DB starcj Start Menu state state government jobs Stationery Stellar Prime Mi-510 specifications Stock Android Stocks store Stores stylus sulekha Sunglasses Sunpad Super Max Ultimate Shave Foam Supplements Surface Surface smartphone Suzuki Intruder M800 SWIPE Swipe Halo Value Swipe Halo Value India Swipe Halo Value price in india Swipe Halo Value Tablets Symfony Syntax Highlighters sysprobs System Updates TabActivity TabHost TabLayout Table of Contents Tablet Tablet Kiosk Tablet PC Tablets Tablets In tablets in india Tabs TabWidget TastyKhana Coupons Tata DOCOMO Tata Tea Gold TCL Idol X Features TCL Idol X Price In India TCL Idol X Review TCL Idol X Specs Team Collaboration Teaser tech amp; sci Tech News tech specs Tech Updates Technopedia Television Test Coverage Tickets tips Tips and Tricks Tips To Get Traffic Titan Men Watches Titan Women Watches tool toolkit Top Top 10 Top 10 Valentines Day Top 10 Valentines Day Ideas Top 10 Valentines Day Ideas 2013 Top 5 3D TVs Top 5 Games Top 5 Netbooks top 5 tablets Toshiba Toshiba 32quot; LED Television touchscreen Tourist Destinations Towels and Bedsheets Toys Toys amp; Games trademark tradus Tradus Coupons Training Travel Travel Accessories Travel amp; Tour TravelDeals Tresorit Tricks Triluminous Try jQuery Tutorials TV TV and Monitors TV/LCD TVC Mobiles TVC Nuclear SX 5.3i TVC Nuclear SX 5.3i India TVC Nuclear SX 5.3i price in india Twitter Ubislate UBUNDU Ubuntu UI Programmatically UI through Code Umi Mobiles Umi X1 Umi X1 India Umi X1 price in india UMI X2 UMI X2 delivery UMI X2 delivery date UMI X2 full specifications UMI X2 Status India united states Upcoming update Upgrade Upgrade ICS to Jely Bean upgrade Xperia T to Jelly Bean US USB Mobile Phone Charger usefull User Interface Vacuum Cleaners valentine valentine day Valentine Day 2013 Valentine Day 2013 idea Valentine Day 2013 ideas Valentine Day 2013 ideas for London Valentine’s Day Valentine’s Day 2013 idea valentines Valentines Day 2013 Valentines Day 2013 ideas valentines day dinner Valentines Day idea 2013 valentines day ideas Valentines Day Ideas 2013 Valentines Day Ideas unique.Valentines Day 2013 Valentines Promise Day 2013 Poems Validation Varun Stainless Steel CB Tope Veede Vega Rechargeable Vacuum Cleaner Vega Vacuum Cleaners Vertu Vertu Mobiles Vertu Ti Vertu Ti India Vertu Ti price in india Video Slideshow Videocon Videocon A26 Videocon A26 Dual Sim Videocon A26 Price Videocon A26 Price In India Videocon A26 Review Videocon A27 Videocon A27 India Videocon A27 price in india Videocon A55HD Videocon A55HD features Videocon A55HD launched Videocon A55HD price Videocon A55HD specifications Videocon Mobiles videocon tablet videos Views ViewSonic violence VIP Elite Vests VIP Frenchie Briefs VirtualBox Vizio Vizio MT11X-A1 Features Vizio MT11X-A1 Price Vizio MT11X-A1 Price In India Vizio MT11X-A1 Review vlc player VMware Vodafone voice calling tablet W3C Wall papers Wallets for him Wammy Mobiles Wammy Passion Y HD Wammy Passion Y HD India Wammy Passion Y HD price in india Watch Watches Watches for her Watches for him Waterproof Web app web bugs Web Design Web Development web development tools Web Hosting Web Server web SSL Certificate Web Tools web-design web-development Webcams webmaster tools webOS Website Advice from Google Website Design Mistakes websites WebView What is jQuery WickedLeak WickedLeak Wammy Passion Y HD WiFi tablet WikiPad willcom Willow Glass Window 8 style notification windows Windows 7 windows 7 Genuine Advantage Notification Windows 7 Tricks Windows 8 windows 8 based hybrids windows 8.1 Windows and Android hybrid windows phone windows phone 8 Windows Stores in India Windows Tricks Wireless Charger DT-900 wireless phone wishes Women Women Body Shapers Women's Apparel Women's Nightwears Womens Capris Wood-O-Plast Dart Board Wordpress wordpress Calendar plugins Wordpress Fix Wordpress Plugins Wordpress queries words words-quotes world wx06a Wynncom G51 Wynncom G51 India Wynncom G51 price in india Wynncom Mobiles X-Reality Xbox Music Redesigned Xiam Technologies Limited XML XML Inflate xolo XOLO 1000 XOLO Clover Trail+ smartphone XOLO Intel dual-core smartphone XOLO Intel smartphone Xolo Mobiles XOLO new smartphone XOLO new smartphone launch XOLO new smartphone launch March 14 Xolo Q600 Xolo Q600 price in India Xolo q600 released in India Xolo Q600 specification review Xolo Q600 specifications Xolo Q800 Xolo Q800 full specifications Xolo Q800 India Xolo Q800 price in india XOLO smartphones XOLO X500 XOLO X900 XPERIA Xperia E/E dual xperia tablet z Xperia Z xperia zl years-published yebhi Yebhi Coupons Yepme youtube Yumdeals YumeDeals Coupons Zebronics Zebronics H-Vivo Wireless Headphone Zebronics Node MP3 Player Zen Zend Zend Framework Zero Gravity Deodorants Zivame Coupons zoomin Zoomin Coupons Zoop Boys Cars P3H Watch Zopo Zopo 810 Zopo 810 India Zopo 810 price in india Zopo 910 Zopo 910 IndiA Zopo 910 price in india ZOPO 950+ ZOPO 950+ India ZOPO 950+ price in india Zopo C2 Zopo C2 Price Zopo C2 Price In india Zopo C2 Review Zopo Mobiles zopo phablet zopo quad-core Tegra 3 Nvidia Zopo ZP600 Libero 3D Zopo ZP600 Libero 3D India Zopo ZP600 Libero 3D price in india ZOPO ZP810 ZOPO ZP910 Zopo ZP950+ Zopo ZP960 Zopo ZP960 India Zopo ZP960 price in india zte ZTE Blade C ZTE Blade C India ZTE Blade C price in india ZTE Grand Memo ZTE Grand Memo India ZTE Grand Memo price in india ZTE MF190 3g Datacard price ZTE MF190 Datacard Review ZTE MF190 India ZTE MF190 Price In India ZTE Mobiles ZTE Open ZTE Open goes on sale ZTE Open India ZTE Open price ZTE Open price in india Zync Dual 7.0 Zync Dual 7.0 India Zync Dual 7.0 price in india Zync Dual 7.0 Tablets Zync Quad 8.0 Zync Quad 8.0 India Zync Quad 8.0 price in india Zync Quad 8.0 Tablets Zync Quad 9.7 Zync Quad 9.7 India Zync Quad 9.7 price in india Zync Quad 9.7 Tablets