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 = URLEncode(name) + "=" + URLEncode(value) + expires + "; path=/";
}

function createCookies(assoc_array) {
	for (var key in assoc_array) {
		createCookie(key, assoc_array[key], 10);
		alert(key + ":" + assoc_array[key]);
	}
}

function createAuctionCookie(name, phone_pre, phone_main, email) {
	createCookie('name', name, 10);
	createCookie('phone_pre', phone_pre, 10);
	createCookie('phone_main', phone_main, 10);
	createCookie('email', email, 10);
}

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 URLDecode(c.substring(nameEQ.length,c.length));
	}
	return null;
}

function readCookies() {
	var data = new Array();
	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);
		var key_and_val = c.split('=');
		data[URLDecode(key_and_val[0])] = URLDecode(key_and_val[1]);
	}
	return data;
}

function readAuctionCookie() {
	var cookies = readCookies();
	return cookies['name'] + ',' + cookies['phone_pre'] + ',' + cookies['phone_main'] + ',' + cookies['email'];
}

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) {
				switch (charCode) {
					case 337: encoded += "%F5"; break;
					case 369: encoded += "%FB"; break;
					case 336: encoded += "%D5"; break;
					case 368: encoded += "%DB"; break;
					default: encoded += "+"; break;
				}
				
			} 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 ) {
				var temp = unescape( encoded.substr(i,3) );
				switch (temp) {
					case String.fromCharCode(245): plaintext += String.fromCharCode(337); break;
					case String.fromCharCode(251): plaintext += String.fromCharCode(369); break;
					case String.fromCharCode(213): plaintext += String.fromCharCode(336); break;
					case String.fromCharCode(219): plaintext += String.fromCharCode(368); break;
					default: plaintext += temp; break;
				}
				i += 3;
			} else {
				plaintext += "%[ERROR]";
				i++;
			}
		} else {
		   plaintext += ch;
		   i++;
		}
	}
	return plaintext;
};