
var			caURLProtocol='';
var			caURLHost='';
var			caURL='';

var			caLanguage='de';		// Global language
var			caNaviArray=new Array('', '', '', '', '', '', '');	// level1, level2, level3, level4, basket, checkout, completed
var			caProductId='';			// Selected ppid
var			caProductColor='';	// Selected colorId
var			caOverPageNum=0;		// Selected page on product over
var			caFilters='';				// Active filters on product over

var			caLastProduct='';		// Last viewed product detail (ppId_colorId)

var			caCamp='HDE';					// Campaign
var			caUserAufenthalt='HDE';

// Metapeople vars.
var			caMP_agnUID='';
var			caMP_mailID='';
var			caMP_mlid='';
var			caMP_partnerid='';
var			caMP_mpsearch=false;
var			caShowShoppin24Frame=false;

var			caParamWhiteList=new Array(
	'cid_n', 'cid_br', 'cid_ba', 'cid_af', 'cid_se', 'cid_ps'
);
var			caPersistantParams=new Array();


function caOnLoad()
{
	var			url=caGetFrameMain();
	var			params=caGetDeeplink(caNaviArray[0], caNaviArray[1], caNaviArray[2], caNaviArray[3], caProductId, caProductColor, caOverPageNum, caLastProduct, caFilters, location.hash);


	if (params != '' && caGetNaviLevel1() != 'Warenkorb')
		url += params;

	if (caPersistantParams.length > 0)
	{
		if (params == '')
			url += '?';
		else
			url += '&';

		url += caPersistantParams.join('&');
	}

	// A/B Tests initialisieren.
	if (typeof caABTest != 'undefined')
  	caABTest();

	location.replace(url);
}

function caGetFrameMain()
{
	switch (caGetNaviLevel1())
	{
		case 'Women':
		case 'Men':
		case 'Babies':
		case 'Minis':
		case 'Kids':
			return caGetFrameMainProduct();

		case 'Newsletter':
			return caGetFrameMainNewsletter();

		case 'Artikelsuche':
			return caGetFrameMainSearch();

		case 'Service':
			return caGetFrameMainService();

		case 'Lob & Kritik':
			return caGetFrameMainLobKritik();

		case 'Meta':
			return caGetFrameMainMeta();

		case 'Warenkorb':
			return caGetFrameMainBasket();

		case 'Outlet':
			return caGetFrameMainOutlet();

		case 'Merken und Vergleichen':
			return caGetFrameMainMerkzettel();

		default:
			return caGetFrameMainStart();
	}
}

function caGetFrameMainSearch()
{
	return 'Shop/HtmlSearch/search.html';
}

function caGetFrameMainLobKritik()
{
	return 'Shop/HtmlHelp/lobkritik.html';
}

function caGetFrameMainNewsletter()
{
	if (caGetNaviLevel2() == 'registered')
	{
		// Über Bestätigungsmail in den Shop gekommen.
		caSetNaviLevel2('Bestätigung');

		// 10% Aktion.
		if (caGetNaviLevel3() == 'aktion')
		{
			caSetNaviLevel3('');
			return 'Shop/HtmlNewsletter/registered_aktion.html';
		}

		return 'Shop/HtmlNewsletter/registered.html';
	}

	if (caMP_agnUID != '')
	{
		// Newsletter abmeldung.
		caSetNaviLevel3(caMP_agnUID);
		caSetNaviLevel4(caMP_mailID);

		if (caGetNaviLevel2() == 'Gewinnspiel')
		{
			caSetNaviLevel2('');
			return 'Shop/HtmlNewsletter/unregister_win.html';
		}

		return 'Shop/HtmlNewsletter/unregister.html';
	}

	// Newsletter anmeldung.
	if (caGetNaviLevel3() == 'Aktion')
	{
		// 10% Aktion.
		caSetNaviLevel3('');
		return 'Shop/HtmlNewsletter/register_aktion.html';
	}
	else if (caGetNaviLevel3() == 'Hannah')
	{
		// Hannah Montana Gewinnspiel.
		caSetNaviLevel3('');
		return 'Shop/HtmlNewsletter/register_hannah.html';
	}

	return 'Shop/HtmlNewsletter/register.html';
}

function caGetFrameMainStart()
{
	return 'Shop/HtmlStart/start.html';
}

function caGetFrameMainBasket()
{
	var		basketURL=caURL;


	basketURL = basketURL.replace('index.html', 'basket.html');
	basketURL = basketURL.replace('index.htm', 'basket.html');
	basketURL = basketURL.replace('http://', 'https://');

	return basketURL;
}

function caCheckForTeaser()
{
	var			i;


	if (typeof caNoTeaserDivision == 'undefined')
		return true;

	for (i=0;i<caNoTeaserDivision.length;++i)
	{
		if (caNoTeaserDivision[i][0] == caGetNaviLevel1() && 
				caNoTeaserDivision[i][1] == caGetNaviLevel2() && 
				caNoTeaserDivision[i][2] == caGetNaviLevel3())
		{
			// Keinen Teaser anzeigen.
			return false;
		}
	}

	return true;
}

function caGetFrameMainProduct()
{
	if (caGetProductId() != '' && caGetProductColor() != '')
	{
		// Load product detail view.
		return 'Shop/HtmlProduct/product.html';
	}

	if (caGetNaviLevel4() != '' || caCheckForTeaser() == false)
	{
		// Load product overview.
		if (caGetNaviLevel3().indexOf('Sale') >= 0 || 
				caGetNaviLevel3().indexOf('Reduzierte Einzelteile') >= 0 || 
				caGetNaviLevel3().indexOf('Euro Shop') >= 0)
			return 'Shop/HtmlOver/over_sale.html';
		else
		{
			if (caGetNaviLevel2().indexOf('Girls') >= 0)
				return 'Shop/HtmlOver/over_' + caGetNaviLevel1().toLowerCase() + '_girls.html';
			else if (caGetNaviLevel2().indexOf('Boys') >= 0)
				return 'Shop/HtmlOver/over_' + caGetNaviLevel1().toLowerCase() + '_boys.html';
			return 'Shop/HtmlOver/over_' + caGetNaviLevel1().toLowerCase() + '.html';
		}
	}

	if (caGetNaviLevel3() != '')
	{
		// Load division teaser.
		return 'Shop/HtmlLevel3/' + caGetTeaserFileName();
	}

	if (caGetNaviLevel1() == 'Minis' || caGetNaviLevel1() == 'Kids')
	{
		// Load kids/minis teaaser.
		return 'Shop/HtmlLevel1/' + caGetTeaserFileName();
	}

	return 'error.html';
}

function caGetFrameMainMeta()
{
	switch (caGetNaviLevel2())
	{
		case 'AGB':
			return 'Shop/HtmlMeta/agb.html';

		case 'Impressum':
			return 'Shop/HtmlMeta/impressum.html';

		case 'Datenschutz':
			return 'Shop/HtmlMeta/datenschutz.html';

		case 'Kontakt':
			return 'Shop/HtmlMeta/kontakt.html';
	}

	return 'error.html';
}

function caGetFrameMainService()
{
	switch (caGetNaviLevel2())
	{
		case 'Lieferung':
			return 'Shop/HtmlService/service_lieferung.html';

		case 'Rücksendung':
			return 'Shop/HtmlService/service_ruecksendung.html';

		case 'Reklamation':
			return 'Shop/HtmlService/service_rekla.html';

		case 'Zahlungsarten':
			return 'Shop/HtmlService/service_zahlung.html';

		case 'Verfügbarkeit':
			return 'Shop/HtmlService/service_verfuegbarkeit.html';

		case 'Größentabelle':
			return 'Shop/HtmlService/service_sizes.html';

		case 'FAQ':
			return 'Shop/HtmlService/service_faq.html';

		default:
			return 'Shop/HtmlService/service.html';
	}
}

function caGetFrameMainOutlet()
{
	if (caGetProductId() != '' && caGetProductColor() != '')
	{
		// Load product detail view.
		return 'Shop/HtmlProduct/product.html';
	}

	return 'Shop/HtmlOver/over_outlet.html';
}

function caGetFrameMainMerkzettel()
{
	return 'Shop/HtmlMerkzettel/main.html';
}

function caGetTeaserFileName()
{
	var			urlStr='';


	// Build file name from current navi.
	urlStr += caGetNaviLevel1();
	if (caGetNaviLevel2() != '')
		urlStr += '_' + caGetNaviLevel2();
	if (caGetNaviLevel3() != '')
		urlStr += '_' + caGetNaviLevel3();

	urlStr = caFormatFileName(urlStr);

	urlStr += '.html';

	return urlStr;
}

function caFormatFileName(strFileName)
{
	if (typeof strFileName == 'undefined')
		return strFileName;

	strFileName = String(strFileName);
//<!--
	// Return a valid file name by replacing invalid chars.
	strFileName = strFileName.toLowerCase();
	strFileName = strFileName.replace(/ß/gi, 'ss');
	strFileName = strFileName.replace(/ä/gi, 'ae');
	strFileName = strFileName.replace(/ö/gi, 'oe');
	strFileName = strFileName.replace(/ü/gi, 'ue');
	strFileName = strFileName.replace(/\//gi, '_');
	strFileName = strFileName.replace(/\-/gi, '_');
	strFileName = strFileName.replace(/\s/gi, '_');
	strFileName = strFileName.replace(/&/gi, '_');
//-->
	return strFileName;
	//return strFileName.replace('ß', 'ss');//.replace(/ä/gi, 'ae').replace(/ö/gi, 'oe').replace(/ü/gi, 'ue').replace(/\//gi, '_').replace(/\-/gi, '_').replace(/\s/gi, '_').replace(/&/gi, '_').toLowerCase();
}

function caClearParameterString(paramString)
{	
	return paramString.replace(/[^a-zA-Z0-9äÄöÖüÜß\'=//\-_%*&|,+. ]/gi, '');
}

function caParseParameterString(paramString)
{
	var			param='';
	var			paramArray=new Array();
	var			stringChar=0;
	var			currChar;
	var			i;


	paramString = unescape(caClearParameterString(paramString));

	// Read every char of the string separately.
	for (i=0;i<paramString.length;i++)
	{
		currChar = paramString.charAt(i);

		// Begin or end of string.
		if (currChar == '\'')
		{
			stringChar = 1 - stringChar;
			continue;
		}

		// Check for next param.
		if (currChar == '&' && stringChar != 1)
		{
			// Add last param to the array.
			paramArray[paramArray.length] = param;
			param = '';
			continue;
		}

		param += currChar;
	}

	// Save last param.
	if (param != '')
		paramArray[paramArray.length] = param;

	return paramArray;
}

function caSetShopParameters(parameterString)
{
	var			paramArray=caParseParameterString(parameterString);
	var			keyValue;
	var			i;
	var			j;


	// Parse all parameters.
	for (i=0;i<paramArray.length;i++)
	{
		// A parameter consists of a key and it's value.
		keyValue = (paramArray[i].indexOf('=') >= 0) ? paramArray[i].split('=') : new Array(paramArray[i], '');

		switch (keyValue[0].toLowerCase())
		{
			case 'camp':
				caCamp = keyValue[1].toUpperCase();
				break;

			case 'l1':
			case 'level1':
				caNaviArray[0] = keyValue[1];
				break;

			case 'l2':
			case 'level2':
				caNaviArray[1] = (keyValue[1] == 'empty') ? '' : keyValue[1];
				break;

			case 'l3':
			case 'level3':
				caNaviArray[2] = keyValue[1];
				break;

			case 'l4':
			case 'level4':
				caNaviArray[3] = keyValue[1];
				break;

			case 'pid':
			case 'productid':
				caProductId = keyValue[1];
				break;

			case 'pclr':
			case 'productcolor':
				caProductColor = keyValue[1];
				break;

			case 'cp':
				caOverPageNum = parseInt(keyValue[1]);
				break;

			case 'lp':
				caLastProduct = keyValue[1];
				break;

			case 'flt':
				caFilters = keyValue[1];
				break;

			case 'filterwelt':
			case 'filterworld':
				caNaviArray[2] = keyValue[1];
				break;

			case 'filterdivision':
				caNaviArray[3] = keyValue[1];
				break;

			case 'filterkategorie':
			case 'filtercategory':
				caNaviArray[4] = keyValue[1];
				break;

			case 'query':
				caNaviArray[0] = 'Artikelsuche';
				caNaviArray[1] = keyValue[1];
				break;

			// Metapeople.
			case 'mlid':
				caMP_mlid = keyValue[1].match(/[A-Z0-9a-z\.]*/);
				break;
			case 'partnerid':
				caMP_partnerid = keyValue[1].match(/[A-Z0-9a-z\._]*/);
				break;
			case 'mpquery':
				if (keyValue[1].toLowerCase() == 'true')
					caMP_mpsearch = true;
				break;
			case 'frame':
				if (keyValue[1].toLowerCase() == 'shopping24')
					caShowShoppin24Frame = true;
				break;

			// Agnitas.
			case 'agnuid':
				caMP_agnUID = keyValue[1].match(/[A-Z0-9a-z\.]*/);
				break;
			case 'mail_id':
				caMP_mailID = keyValue[1];
				break;

			default:
				caEvaluateParameter(keyValue[0], keyValue[1]);
				break;
		}

		for (j=0;j<caParamWhiteList.length;++j)
		{
			if (keyValue[0] == caParamWhiteList[j])
				caPersistantParams[caPersistantParams.length] = keyValue[0] + '=' + keyValue[1];
		}
	}
}

function caEvaluateParameter(paramName, paramValue)
{
	switch (paramName)
	{
//		case 'promo':
//			caPromo = paramValue;
//			break;

		default:
			break;
	}
}

function caEvaluateHerkunft()
{
	var		userAufenthalt=caCamp.toUpperCase();
	var		userHerkunft=caGetCookie('UserHerkunft');
	var		expireDate=new Date();


	if (userHerkunft.length < 1)
		userHerkunft = userAufenthalt;

	if (caCamp.toUpperCase() != 'HDE')
		userHerkunft = userAufenthalt;

	// Cookie ist Zeit + 30 Tage haltbar.
	expireDate.setTime(expireDate.getTime() + 1000*60*60*24*30);
	// Cookie schreiben.
	caSetCookie('UserHerkunft', userHerkunft, expireDate);

	caUserAufenthalt = userAufenthalt;
/*
	try
	{
		console.log("UserHerkunft = " + caGetCookie('UserHerkunft') + "\nUserAufenthalt = " + caUserAufenthalt);
	}
	catch (e) {}
*/
/*	var		userHerkunft=caGetCookie('UserHerkunft');
	var		expireDate=new Date();


	caUserAufenthalt = caCamp;

	if (userHerkunft == '' || userHerkunft.length < 1)
		userHerkunft = caUserAufenthalt;

	// Cookie ist Zeit + 30 Tage haltbar.
	expireDate.setTime(expireDate.getTime() + 1000*60*60*24*30);
	// Cookie schreiben.
	caSetCookie('UserHerkunft', caCamp, expireDate);
	caSetCookie('UserAufenthalt', caUserAufenthalt);*/
}

function caMetapeople()
{
	// Cookie für Metapeaple schreiben, wenn mlid und partnerid übergeben werden
	if (caMP_mlid != '')
	{
		var Zeit=new Date();
		var Jetzt=Zeit.getTime();


		Zeit.setTime(Jetzt + 30*24*60*60*1000);// 30 Tage gültig.
		caSetCookie('metapeople', 'mlid=' + caMP_mlid + ((caMP_partnerid != '') ? '&partnerid=' + caMP_partnerid : ''), Zeit);
	}
}

function caWriteLinkBegin(toHttps, level1, level2, level3, level4, productId, productColor, overPage, lastProduct, filters, anchor)
{
	document.write(caGetLinkBegin(toHttps, '', level1, level2, level3, level4, productId, productColor, overPage, lastProduct, filters, anchor));
}


function caShowTeaserElements(elementId, show)
{
	var		elem=document.getElementById(elementId);


	if (!elem)
		return;

	elem.style.display = (show == false) ? 'none' : 'block';
}

function caShowTeaser(teaserId, show)
{
	caShowTeaserElements(teaserId, show);

	if (show == false)
		return;

	// Hide all other layers.
	if (teaserId == 'Teaser_Zahlungsarten')
	{
		caShowTeaserElements('Teaser_Lieferung', false);
		caShowTeaserElements('Teaser_Ruecksendung', false);
		caShowTeaserElements('Teaser_Sicherheit', false);
	}
	else if (teaserId == 'Teaser_Lieferung')
	{
		caShowTeaserElements('Teaser_Zahlungsarten', false);
		caShowTeaserElements('Teaser_Ruecksendung', false);
		caShowTeaserElements('Teaser_Sicherheit', false);
	}
	else if (teaserId == 'Teaser_Ruecksendung')
	{
		caShowTeaserElements('Teaser_Zahlungsarten', false);
		caShowTeaserElements('Teaser_Lieferung', false);
		caShowTeaserElements('Teaser_Sicherheit', false);
	}
	else if (teaserId == 'Teaser_Sicherheit')
	{
		caShowTeaserElements('Teaser_Zahlungsarten', false);
		caShowTeaserElements('Teaser_Lieferung', false);
		caShowTeaserElements('Teaser_Ruecksendung', false);
	}
}

function caWriteTeaser()
{
	var		strOut='';
	var		strPath=(caURL.indexOf('https://')>=0)?'../../Shop/':'../';
	

	strOut += '<div style="position:absolute;left:223px;top:39px;z-index:4;">';
	strOut += '<div style="position:absolute;top:0px;left:21px;"><a href="javascript:caShowTeaser(\'Teaser_Zahlungsarten\', true);"><img src="'+strPath+'Data/Img/trans.gif" width="115" height="19"></a></div>';
	strOut += '<div style="position:absolute;top:0px;left:158px;"><a href="javascript:caShowTeaser(\'Teaser_Lieferung\', true);"><img src="'+strPath+'Data/Img/trans.gif" width="100" height="19"></a></div>';
	strOut += '<div style="position:absolute;top:0px;left:274px;"><a href="javascript:caShowTeaser(\'Teaser_Ruecksendung\', true);"><img src="'+strPath+'Data/Img/trans.gif" width="115" height="19"></a></div>';
	strOut += '<div style="position:absolute;top:0px;left:395px;"><a href="javascript:caShowTeaser(\'Teaser_Sicherheit\', true);"><img src="'+strPath+'Data/Img/trans.gif" width="110" height="19"></a></div>';
	strOut += '<div id="Teaser_Zahlungsarten">';
	strOut += '<div style="position:absolute;top:0px;left:21px;">';
	strOut += '<script type="text/javascript">caWriteLinkBegin(false, \'Service\', \'Zahlungsarten\');</script><img src="'+strPath+'Data/Img/Header/teaser_zahlung_link.gif"></a>';
	strOut += '</div>';
	strOut += '<div style="position:absolute;top:24px;left:21px;">';
	strOut += '<script type="text/javascript">caWriteLinkBegin(false, \'Service\', \'Zahlungsarten\');</script><img src="'+strPath+'Data/Img/Header/teaser_zahlung_box.gif"></a>';
	strOut += '<div style="position:absolute;top:3px;left:320px;">';
	strOut += '<a href="javascript:caShowTeaser(\'Teaser_Zahlungsarten\', false);"><img src="'+strPath+'Data/Img/trans.gif" width="100" height="24"></a>';
	strOut += '</div>';
	strOut += '</div>';
	strOut += '</div>';
	strOut += '<div id="Teaser_Lieferung">';
	strOut += '<div style="position:absolute;top:0px;left:158px;">';
	strOut += '<script type="text/javascript">caWriteLinkBegin(false, \'Service\', \'Lieferung\');</script><img src="'+strPath+'Data/Img/Header/teaser_lieferung_link.gif"></a>';
	strOut += '</div>';
	strOut += '<div style="position:absolute;top:24px;left:48px;">';
	strOut += '<script type="text/javascript">caWriteLinkBegin(false, \'Service\', \'Lieferung\');</script><img src="'+strPath+'Data/Img/Header/teaser_lieferung_box.gif"></a>';
	strOut += '<div style="position:absolute;top:3px;left:320px;">';
	strOut += '<a href="javascript:caShowTeaser(\'Teaser_Lieferung\', false);"><img src="'+strPath+'Data/Img/trans.gif" width="100" height="24"></a>';
	strOut += '</div>';
	strOut += '</div>';
	strOut += '</div>';
	strOut += '<div id="Teaser_Ruecksendung">';
	strOut += '<div style="position:absolute;top:0px;left:274px;">';
	strOut += '<script type="text/javascript">caWriteLinkBegin(false, \'Service\', \'Rücksendung\');</script><img src="'+strPath+'Data/Img/Header/teaser_ruecksenden_link.gif"></a>';
	strOut += '</div>';
	strOut += '<div style="position:absolute;top:24px;left:55px;">';
	strOut += '<script type="text/javascript">caWriteLinkBegin(false, \'Service\', \'Rücksendung\');</script><img src="'+strPath+'Data/Img/Header/teaser_ruecksenden_box.gif"></a>';
	strOut += '<div style="position:absolute;top:3px;left:320px;">';
	strOut += '<a href="javascript:caShowTeaser(\'Teaser_Ruecksendung\', false);"><img src="'+strPath+'Data/Img/trans.gif" width="100" height="24"></a>';
	strOut += '</div>';
	strOut += '</div>';
	strOut += '</div>';
	strOut += '<div id="Teaser_Sicherheit">';
	strOut += '<div style="position:absolute;top:0px;left:395px;">';
	strOut += '<script type="text/javascript">caWriteLinkBegin(false, \'Meta\', \'Datenschutz\');</script><img src="'+strPath+'Data/Img/Header/teaser_sicherheit_link.gif"></a>';
	strOut += '</div>';
	strOut += '<div style="position:absolute;top:24px;left:72px;">';
	strOut += '<script type="text/javascript">caWriteLinkBegin(false, \'Meta\', \'Datenschutz\');</script><img src="'+strPath+'Data/Img/Header/teaser_sicherheit_box.gif"></a>';
	strOut += '<div style="position:absolute;top:3px;left:330px;">';
	strOut += '<a href="javascript:caShowTeaser(\'Teaser_Sicherheit\', false);"><img src="'+strPath+'Data/Img/trans.gif" width="100" height="24"></a>';
	strOut += '</div>';
	strOut += '</div>';
	strOut += '</div>';
	strOut += '</div>';

	document.write(strOut);
}

function caWriteCookiesLayer()
{
	if (caTestCookies())
		return;

	var		strOut="";
	strOut += "<div style=\"position:absolute;left:300px;top:250px;width:402px;height:120px;background-color:#9E0923;\" id=\"layer_cookies\">";
	strOut += "<div style=\"position:relative;left:3px;top:3px;width:376px;height:94px;background-color:#FFFFFF;padding:10px;font-family:Arial;font-size:12px;color:#000000;\">";
	strOut += "<div style=\"position:absolute;right:3px;top:3px;\"><a href=\"\" onClick=\"document.getElementById('layer_cookies').style.display='none';return false;\"><img src=\"../Data/Img/Product/button_close.gif\"></a></div>";
	strOut += "<br><br>Ihr Browser akzeptiert leider keine Cookies. Bitte passen Sie die Einstellungen Ihres Browsers an. Ansonsten können Sie leider keine Bestellung im C&A Onlineshop t&auml;tigen.";
	strOut += "</div>";
	strOut += "</div>";
	document.write(strOut);
}

function caOnClickButtonSearch()
{
	location.href = caURL.replace('https://', 'http://') + '?query=' + escape('\'' + document.getElementsByName('query')[0].value + '\'');
}

function caWriteSearch()
{
	var		strOut='';
	var		strPath=(caURL.indexOf('https://')>=0)?'../../Shop/':'../';
	var		strUrl=caURL.replace('https://', 'http://');


	strOut += '<div style="position:absolute;top:92px;left:26px;width:168px;">';
	strOut += '<div style="position:absolute;top:0px;left:0px;"><form action="'+strUrl+'" target="_self"><input type="text" name="query" value="        Suchbegriff" onFocus="this.value=\'\';" maxlength="40" style="width:105px;height:13px;font-size:8pt;color:#666666;border:1px solid #002F5C;"></form></div>';
	strOut += '<div style="position:absolute;top:1px;left:113px;" id="Search"><a href="" onClick="caOnClickButtonSearch();return false;"><span style="font-family:Arial;color:#002F5C;font-weight:bold;font-size:12px;">Suche&nbsp;</span><img src="'+strPath+'Data/Img/Header/button_pfeil_rechts_suche.jpg" style="margin-bottom:-2px;"></a></div>';
	strOut += '</div>';

	document.write(strOut);

	caWriteCookiesLayer();
}

function caTestCookies()
{
	caSetCookie("ttt", "1");
	var 	res=caGetCookie("ttt");
	caSetCookie("ttt", "", new Date());
	return (res == "1");
}

function caInitBase()
{
	var		searchStart;
	var		indexPos;


	// Save current path.
	caURLProtocol = location.protocol;
	caURLHost = location.host;

	caURL = location.href;
	indexPos = caURL.indexOf('/Shop/');
	if (indexPos < 0)
		indexPos = caURL.indexOf('/cgi-bin/');
	if (indexPos > 0)
		caURL = caURL.substr(0, indexPos) + '/index.html';
	searchStart = caURL.indexOf('?');
	if (searchStart > 0)
		caURL = caURL.substr(0, searchStart);

	// Parse search parameters.
	caSetShopParameters(location.search);

	// Write tracking cookies.
	caEvaluateHerkunft();
	caMetapeople();
}

function caSetReferrer()
{
	if (caGetCookie('ref') == '')
	{
		var		time=new Date();


		// 5 minutes ttl.
		time.setTime(time.getTime() + 1000*60*5);

		if (document.referrer == '')
			caSetCookie('ref', 'none', time);
		else
			caSetCookie('ref', document.referrer, time);
	}
}
caSetReferrer();

function caGetReferrer()
{
	var			ref=caGetCookie('ref');


	if (ref == 'none')
		return '';

	caSetCookie('ref', '');

	return ref;
}

// Init global vars.
caInitBase();
