(function() {
	var hexDigits = '0123456789abcdef';

	function toHex(d) {
		var h = hexDigits.substr(d&15, 1);
		while(d>15) {
			d >>= 4;
			h = hexDigits.substr(d&15, 1) + h;
		}
		return h;
	}
	
	function pad4(d) {
		d = '0000' + d;
		return d.substr(-4, 4);
	}

	var d = document;
	var n = adxcvt;

	function uuidGen() {
		var a = Math.round;
		var b = Math.random;
		var c = toHex;
		var d = pad4;
		return(
			d(c(a(b()*0xFFFF))) +
			d(c(a(b()*0xFFFF))) + '-' +
			d(c(a(b()*0xFFFF))) + '-' +
			d(c(a((b()*0x0FFF)|0x4000))) + '-' +
			d(c(a((b()*0x3FFF)|0x8000))) + '-' +
			d(c(a(b()*0xFFFF))) +
			d(c(a(b()*0xFFFF))) +
			d(c(a(b()*0xFFFF)))
		);
	}
	
	function htmlEscape(s) {
		return s.replace(/&/g, '&amp;')
			.replace(/>/g, '&gt;')
			.replace(/</g, '&lt;')
			.replace(/"/g, '&quot;')
			.replace(/'/g, '&apos;');
	}
	
	function jsEscape(s) {
		return s.replace(/\\/g, '\\\\')
			.replace(/"/, '\\\"')
			.replace(/'/, '\\\'');
	}
	
	function craftURL(s) {
		var url = 'http://ads.priyadi.net/serve/js_iframe_src.php' + '?' +
			'u=' + escape(n.publisher) + '&' +
			'p=' + escape(n.presentation) + '&' +
			's=' + escape(s) + '&' +
			'r=' + escape(uuidGen()) + '&' +
			'x=' + escape(n.x);
		for(var i in n.e) {
			url += '&' + 'ex[]=' + escape(n.e[i]);
		}

		for(var i in n.i) {
			url += '&' + 'in[]=' + escape(n.i[i]);
		}

		for(var i in n.pub) {
			url += '&' + 'pub[' + escape(i) + ']=' + escape(n.pub[i]);
		}
		return url;
	}

	function genIframe(src) {
		d.write(
			'<iframe style="display: none" width="0" height="0" ' + 
			'frameborder="0" scrolling="no" '+
			'hspace="0" vspace="0" marginwidth="0" marginheight="0"></iframe>' +
			'<iframe '+
			'src="' + htmlEscape(src) + '" ' +
			'name="iframe" ' +
			'frameborder="0" '+
			'width="' + n.width + '" '+
			'height="' + n.height + '" '+
			'scrolling="no" '+
			'hspace="0" ' +
			'vspace="0" ' +
			'marginwidth="0" '+
			'marginheight="0" '+ '>' +
			'</iframe>'
		);
	}

	function main() {
		var uuid;
		if (n.uuid) {
			uuid = n.uuid;
		} else {
			uuid = uuidGen();
			n.uuid = uuid;
		}
		genIframe(craftURL(uuid));
		n.e = [];
		n.i = [];
	}

	main();
})()