
	function DoDownload() {
		if(!$('DownloadFrame'))
			document.body.innerHTML += "<iframe name=\"DownloadTarget\" src=\"\" style=\"width:1px; height:1px; border:0;\" frameborder=\"0\"></iframe>";
		setTimeout("window.location.href='download.php';",2000);
		return true;
		
	}

	function Enter(event) {
		var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
		if(keyCode == 13)
			return true;
		else
			return false;		
	}
	
	String.prototype.parseJSON = function () {
		try {
			if (/^("(\\.|[^"\\\n\r])*?"|[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t])+?$/.test(this))
				return eval('(' + this + ')');
		} 
		catch (e) {
		}
		if(this != "")
			alert("parseJSON Error:\n\n" + this);
		throw new SyntaxError("parseJSON");
	}
	
	function GetObjectPos(obj) {
		var pos = new Array(0,0);
		if(obj.offsetParent) {
			while (obj.offsetParent) {
		  		pos[0] += obj.offsetLeft;
		  		pos[1] += obj.offsetTop;
		  		obj = obj.offsetParent;
			}
		}
	  	else if(obj.x) {
			pos[0] += obj.x;  
			pos[1] += obj.y;
		}		
		return pos;
	}	

	
	function SetCookie(name, value, expires, path, domain, secure) 
	{
		var curCookie = name + "=" + escape(value) +
			((expires) ? "; expires=" + expires.toGMTString() : "") +
			((path) ? "; path=" + path : "") +
			((domain) ? "; domain=" + domain : "") +
			((secure) ? "; secure" : "");
		document.cookie = curCookie;
	}	
	
	function GetCookie(name) 
	{
		var dc = document.cookie;
		var prefix = name + "=";
		var begin = dc.indexOf("; " + prefix);
		if (begin == -1) 
		{
			begin = dc.indexOf(prefix);
			if (begin != 0) return "";
		} 
		else
			begin += 2;
		var end = document.cookie.indexOf(";", begin);
		if (end == -1)
			end = dc.length;
		var value = unescape(dc.substring(begin + prefix.length, end));
		return value;
	}
	
	function DeleteCookie(name, path, domain) 
	{
		if(GetCookie(name)) {
			document.cookie = name + "=" +
				((path) ? "; path=" + path : "") +
				((domain) ? "; domain=" + domain : "") +
				"; expires=Thu, 01-Jan-70 00:00:01 GMT";
		}
	}	

	function urlencode(plaintext) {
		var SAFECHARS = "0123456789" +					// Numeric
						"ABCDEFGHIJKLMNOPQRSTUVWXYZ" +	// Alphabetic
						"abcdefghijklmnopqrstuvwxyz" +
						"-_.!~*'()";					// RFC2396 Mark characters
		var HEX = "0123456789ABCDEF";
		var encoded = "";
		for (var i = 0; i < plaintext.length; i++ ) {
			var ch = plaintext.charAt(i);
			if (ch == " ") {
				encoded += "+";				// x-www-urlencoded, rather than %20
			} else if (SAFECHARS.indexOf(ch) != -1) {
				encoded += ch;
			} else {
				var charCode = ch.charCodeAt(0);
				if (charCode > 255) {
					alert( "Unicode Character '" 
							+ ch 
							+ "' cannot be encoded using standard URL encoding.\n" +
							  "(URL encoding only supports 8-bit characters.)\n" +
							  "A space (+) will be substituted." );
					encoded += "+";
				} else {
					encoded += "%";
					encoded += HEX.charAt((charCode >> 4) & 0xF);
					encoded += HEX.charAt(charCode & 0xF);
				}
			}
		} 
		return encoded;
	}
	
	function urldecode(encoded) {
	   var HEXCHARS = "0123456789ABCDEFabcdef"; 
	   var plaintext = "";
	   var i = 0;
	   while (i < encoded.length) {
		   var ch = encoded.charAt(i);
		   if (ch == "+") {
			   plaintext += " ";
			   i++;
		   } else if (ch == "%") {
				if (i < (encoded.length-2) 
						&& HEXCHARS.indexOf(encoded.charAt(i+1)) != -1 
						&& HEXCHARS.indexOf(encoded.charAt(i+2)) != -1 ) {
					plaintext += unescape( encoded.substr(i,3) );
					i += 3;
				} else {
					alert( 'Bad escape combination near ...' + encoded.substr(i) );
					plaintext += "%[ERROR]";
					i++;
				}
			} else {
			   plaintext += ch;
			   i++;
			}
		} 
		return plaintext;
	}
	
		