# How to do Everything in Javascript (Pure JS)

### Mobile user-agent detection

```
var isMobile = {<br></br>  Android: function() {<br></br>    return navigator.userAgent.match(/Android/i);<br></br>  },<br></br>  BlackBerry: function() {<br></br>    return navigator.userAgent.match(/BlackBerry/i);<br></br>  },<br></br>  iOS: function() {<br></br>    return navigator.userAgent.match(/iPhone|iPad|iPod/i);<br></br>  },<br></br>  Opera: function() {<br></br>    return navigator.userAgent.match(/Opera Mini/i);<br></br>  },<br></br>  Windows: function() {<br></br>    return navigator.userAgent.match(/IEMobile/i);<br></br>  },<br></br>  any: function() {<br></br>  return (isMobile.Android() <br></br>    || isMobile.BlackBerry() <br></br>    || isMobile.iOS() <br></br>    || isMobile.Opera() <br></br>    || isMobile.Windows());<br></br>  }<br></br>};<br></br><br></br>if (isMobile.Android()) {<br></br>  document.location.href = "y";<br></br>} else if(isMobile.iOS()) {<br></br>  document.location.href = "x";<br></br>} 
```

---

### jQuery UI Datepicker Reset Date

```
$(document).ready(<br></br>  function () {<br></br>    $(.datepicker).datepicker({<br></br>    showOn: 'focus', showButtonPanel: true,<br></br>    closeText: 'Clear', // Text to show for close button<br></br>    onClose: function () {<br></br>      var event = arguments.callee.caller.caller.arguments[0]; // If Clear gets clicked, then really clear it<br></br>      if ($(event.delegateTarget).hasClass('ui-datepicker-close')) {<br></br>        $(this).val('');<br></br>      }<br></br>    }<br></br>  });<br></br>});
```

---

### Convert object to string

Use JSON.stringify() function:

```
var obj = new Date();<br></br>console.log(JSON.stringify(obj)); 
```

---

### DataTables Editor jQuery UI Datepicker Issue

- When 2 datepickers are used, it will jump to first datepicker when the second datepicker's date is selected. Make sure that datepickers aren't used as the first field.

---

### Problem: DataTable - Cannot read property 'style' of undefined jquery.dataTables.js

Make sure that HTML number table columns matches the number of 'mData' definition during data table initialization