docs: function CORSreq(owner, opt, hash, key) {
  		var xhr = new window.XMLHttpRequest(),
  			method = opt.method || 'GET',
  			url = opt.url,
  			params,
  			name;
  
  		xhr.onreadystatechange = this.readystatechange;
  		xhr.autoParse = this.autoParse;
  		xhr.hash  = hash;
  		xhr.key   = key;
  		xhr.url   = url;
  		xhr.owner = owner;
  
  		if (opt.data) {
  			params = param.parse(opt.data);
  			// append params to url
  			if (method === 'GET' && opt.data) {
  				url += (url.indexOf('?') === -1)? '?' : '&';
  				url += param.parse(opt.data);
  			}
  		}
  		if ('withCredentials' in xhr) {
  			// allways async request
  			xhr.open(method, url, true);
  		}
  		if (opt.headers) {
  			for (name in opt.headers) {
  				xhr.setRequestHeader(name, opt.headers[name]);
  			}
  		} else {
  			xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
  		}
  		xhr.send(params);
  	}