Newer
Older
Import / web / puzzlrz.com / sudoku / utils.js

document.ontouchmove = function(event)
{
  event.preventDefault();
}


function getViewportSize()
{
  w = window;
  if (w.innerWidth != null)
    return { w: w.innerWidth, h: w.innerHeight };
  var d = w.document;
  if (document.compatMode == "CSS1Compat")
    return { w: d.documentElement.clientWidth, h: d.documentElement.clientHeight };
  return { w: d.body.clientWidth, h: d.body.clientHeight };
}


function forEach(root, queryStr, func)
{
    var elemList = root.querySelectorAll(queryStr);
    if (elemList && elemList.length > 0)
        for (var i = 0; i < elemList.length; i += 1)
            func(elemList[i]);
}


function makeAsyncRequest(url, callback)
{
  initRequest = null;
  if (window.XMLHttpRequest)
    initRequest = new XMLHttpRequest();
  else if (window.ActiveXObject)
    initRequest = new ActiveXObject("Microsoft.XMLHTTP");
  if (initRequest != null) {
    initRequest.onreadystatechange = function() {
      if (initRequest.readyState == 4) // Loaded
        callback(initRequest.status, initRequest.responseText);
    };
    initRequest.open("GET", url, true);
    initRequest.send(null);
  } else
    alert("Your browser doesn't support AJAX.")
}


function loadJsonAsync(url, callback)
{
  makeAsyncRequest(url, function(result, data) {
    if (result == 200) // Okay
      callback(true, JSON.parse(data));
    else
      callback(false, 'Failed getting json from ' + url);
  });
}


function scaleElement(element, scale, off)
{
  element.style.transform = scale;
  element.style['-o-transform'] = scale;
  element.style['-webkit-transform'] = scale;
  element.style['-moz-transform'] = scale;
  element.style['-o-transform-origin'] = off + '% 0%';
  element.style['-webkit-transform-origin'] = off + '% 0%';
  element.style['-moz-transform-origin'] = off + '% 0%';
}


function currentMilliSecond()
{
    var d = new Date();
    return d.getTime();
}


function hasClass(element, cls)
{
    return (' ' + element.className + ' ').indexOf(' ' + cls + ' ') > -1;
}


function getUrlArgs()
{
    var vars = {};
    var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi,    
    function(m,key,value) {
      vars[key] = value;
    });
    return vars;
}