/*
	parseUri 1.2.1
	(c) 2007 Steven Levithan <stevenlevithan.com>
	MIT License
*/

function parseUri (str) {
	var	o   = parseUri.options,
		m   = o.parser[o.strictMode ? "strict" : "loose"].exec(str),
		uri = {},
		i   = 14;

	while (i--) uri[o.key[i]] = m[i] || "";

	uri[o.q.name] = {};
	uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) {
		if ($1) uri[o.q.name][$1] = $2;
	});

	return uri;
};

parseUri.options = {
	strictMode: true,
	key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],
	q:   {
		name:   "queryKey",
		parser: /(?:^|&)([^&=]*)=?([^&]*)/g
	},
	parser: {
		strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,
		loose:  /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/
	}
};

function querySt(ji) {
	hu = window.location.search.substring(1);
	gy = hu.split("&");
	for (i=0; i<gy.length; i++) {
		ft = gy[i].split("=");
		if (ft[0] == ji) {
			return ft[1];
		}
	}
	return false;
}

//funny that we have to do this :D
var rs = {};
rs.hosts = ["www.rosettastone.de", "secure.rosettastone.de"];
rs._read_cookies = function() {
	this.cookies = []
	var cookies = document.cookie.split(';');
	for(var iter=0; iter < cookies.length; iter++) {
		cookie = cookies[iter].split('=');
                cookie[0] = cookie[0].replace(/^\s+/,"");
                cookie[0] = cookie[0].replace(/\s+$/,"");
		this.cookies.push(cookie);
	}
}

rs.find_cookie = function(name) {
	this._read_cookies();
	var found;
	for(var iter=0; iter<this.cookies.length; iter++){
		if (this.cookies[iter][0] == name) {
			found = this.cookies[iter];
                        break;
		}
	}
        return found;
}

rs.write_cookie =function(name, value) {
	// Cookie is set for 30 days
	// this is in milliseconds
	exp_milli_secs = 30 * 24 * 60 * 60 * 1000;
	exp_date = new Date();
	exp_date.setTime(exp_date.getTime() + exp_milli_secs);
	document.cookie = name + "=" + escape(value) + ";expires=" + exp_date.toGMTString() + ";path=/" + ";domain=.rosettastone.de";
}

// Referring_host
var referring_host;
var found;
if(document.referrer){
referring_host = parseUri(document.referrer).host;
}

if(referring_host){
	for(iter =0; iter < rs.hosts.length; iter++){
		if(rs.hosts[iter] == referring_host){
			found = 1;
			break;
		}
	}
}

if(!found){
	rs.write_cookie("referring_host", referring_host);
}

// Affiliate Code
var affiliate = querySt("affiliate");
if(window.location.pathname.match(/\/offer\/(.*)\/?$/) || affiliate) {
  rs.write_cookie("affiliate", (affiliate ? affiliate : RegExp.$1));
}

// Promo Code
var promo_val = querySt("promo");
if(promo_val) {
  rs.write_cookie("promo", promo_val);
  rs.write_cookie("promo_eVar2", promo_val);
}


