﻿EMOTIFY.namespace('util');
EMOTIFY.util = function() {

	var o = {
		is_int: function(value) {
			return parseFloat(value) == parseInt(value) && !isNaN(parseInt(value))
		},

		KeyDownHandler: function(e, buttonid) {
			EMOTIFY.log('e:');
			EMOTIFY.log(e);
			e = e || window.event;
			e = jQuery.Event(e);
			EMOTIFY.log('handling keydown');
			EMOTIFY.log(e.keycode + '|' + e.keyCode);
			EMOTIFY.log(e);

			var btnid = false;
			if (e.data && e.data.buttonid) {
				btnid = e.data.buttonid;
			} else if (typeof buttonid !== 'undefined' && buttonid !== null) {
				btnid = buttonid;
			}

			if (btnid) {

				EMOTIFY.log('button id: ' + btnid);
				EMOTIFY.log(e.target + ' | ' + e.srcElement);
				var target = e.originalEvent.target ? e.originalEvent.target : e.originalEvent.srcElement;

				if (typeof target.type != 'undefined' && target.type !== null && target.type.toLowerCase() !== 'textarea') {

					if (e.originalEvent.keyCode == 13 || e.originalEvent.keycode == 13) {
						EMOTIFY.log('going to click');
						var bt = document.getElementById(btnid);
						if (bt) {
							EMOTIFY.log('clicking');
							bt.click();
							if (e.preventDefault) {
								EMOTIFY.log('can prevent default');
								e.preventDefault();
							} else {
								EMOTIFY.log('cannot prevent default');
							}
							return false;
						}
					}
				}
			}


		},

		viewport: function() {
			var w, h;
			if (typeof window.innerWidth != 'undefined') {
				w = window.innerWidth;
				h = window.innerHeight;
			} else if (typeof document.documentElement != 'undefined'
     && typeof document.documentElement.clientWidth !=
     'undefined' && document.documentElement.clientWidth != 0) {
				w = document.documentElement.clientWidth;
				h = document.documentElement.clientHeight;

			} else {
				w = document.getElementsByTagName('body')[0].clientWidth;
				h = document.getElementsByTagName('body')[0].clientHeight;
			}
			/*
			if ($('#bar').length) {
			if ($('#bar').outerWidth() > 0) {
			w = $('#bar').outerWidth();
			}
			}
			*/
			return [w, h];
		},


		cookie: {

			create: function(name, value, days) {
				if (days) {
					var date = new Date();
					date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
					var expires = "; expires=" + date.toGMTString();
				}
				else { var expires = ""; }

				document.cookie = name + "=" + value + expires + "; path=/";
			},

			read: function(name) {
				var nameEQ = name + "=";
				var ca = document.cookie.split(';');
				for (var i = 0; i < ca.length; i++) {
					var c = ca[i];
					while (c.charAt(0) == ' ') c = c.substring(1, c.length);
					if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
				}
				return null;

			},

			erase: function(name) {

				o.cookie.create(name, "", -1);
			}


		}

	}
	return o;




} ();