$(document).ready(function() {
  
  
  function hasOwnProperty(o, prop) {
    if (Object.prototype.hasOwnProperty) {
      return o.hasOwnProperty(prop);
    }
    return typeof o[prop] !== "undefined" && o.constructor.prototype[prop] !== o[prop];
  }

  function parseQueryString(s) {
    var r, a, p;
    
      r = {};
      a = s.split('&');
      for (i = 0; i < a.length; i++) {
        p = a[i].split('=');
        if (p.length === 2 && p[0].length > 0) {
          r[p[0]] = unescape(p[1]);
        }
      }
    return r;
  }
      
  // http://www.quirksmode.org/js/cookies.html
  function createCookie(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=/";
  }

  function readCookie(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;
  }

  function sendCoordinates(proxy_url) {
    
    w = document.body.offsetWidth;
    h = document.body.offsetHeight + 100;
    
    // setup the iframe
    el = document.createElement("iframe");
    el.style.position = "absolute";
    el.style.visibility = "hidden";
    el.style.top = el.style.left = "0";
    el.style.width = el.style.height = "0";
    
    // Compose the message...
    message = w + "x" + h;
    query_message =  "&message=" + escape(message);

    document.body.appendChild(el);
    el.src = proxy_url + "#" + query_message;
  }

  var query = parseQueryString(location.search.substr(1));

  if (hasOwnProperty(query, "proxy_url")) {
    createCookie('proxy_url', query['proxy_url'], 14);
  }
  proxy_cookie = readCookie('proxy_url');
  if (proxy_cookie) {
    sendCoordinates(proxy_cookie);
  }
  
});