/*
*	############### general Webtrends Helpers ###################################
*/

/*
*	(array) individuel sent param-keys 
*/
var wt_Ids = new Array();
var debug = true;
var trackOnUnload = new Object();

/*
trackWebtrends({ 
				'WT.cusGesundNavPageTo' : 'Hautprobleme', 
				'WT.cusGgesundNavTime': '4' 
				});			
*/				
/*
*	sent up to 5 params with  dcsMultiTrack
*/
function trackWebtrends(params) {	
	var debug = true;
	var aParam = new Array();
	var aValue = new Array();
	
	clearWtIds(); //clear saved keys / delete them from _tag object
	
	//build arrays ----------------------------------------
	var i = 0;
	var debugTxt = "";
	for (var key in params) {
		aParam[i] = key;
		aValue[i] = encodeURIComponent(params[key]);
		debugTxt += aParam[i] + ": " + aValue[i] + "\n";
		i++;
	}
	
	switch (i) {
	  case 1:
		addWtId (aParam);
		if (_tag) dcsMultiTrack(aParam[0], aValue[0]);
		break;
	  case 2:
		addWtId (aParam);
		if (_tag) dcsMultiTrack(aParam[0], aValue[0], aParam[1], aValue[1]);
		break;
	  case 3:
		addWtId (aParam);
		if (_tag) dcsMultiTrack(aParam[0], aValue[0], aParam[1], aValue[1], aParam[2], aValue[2]);
		break;
	  case 4:
		addWtId (aParam);
		if (_tag) dcsMultiTrack(aParam[0], aValue[0], aParam[1], aValue[1], aParam[2], aValue[2], aParam[3], aValue[3]);
		break;
	  case 5:
		addWtId (aParam);
		if (_tag) dcsMultiTrack(aParam[0], aValue[0], aParam[1], aValue[1], aParam[2], aValue[2], aParam[3], aValue[3], aParam[4], aValue[4]);
		break;	
	  default:
		alert("Webtrends not sent, more than 5 params");
		break;
	}

	if (debug && i<6) debugTracking(debugTxt);
		
}


/*
*	Webtrends: track values
*/
function debugTracking(msg) {
//	alert (msg);
	/*
	$("#tracking").css("diplay","block");
	var c = $("#tracking").html() + "<br />" + msg;
	$("#tracking").html(c);
	*/
}

/*
*	Webtrends: save the individual used keys
*/
function addWtId (key) {
	if (typeof key != 'object') key = new Array(key);
	
	for (i=0;i<key.length;i++) {
		keyTmp = key[i];
		
		var pos = keyTmp.indexOf("WT.");
		if (pos == 0) keyTmp = keyTmp.substr(3, (keyTmp.length-3)); 
		
		wt_Ids[wt_Ids.length] = keyTmp;
	}
}

/*
*	Webtrends: clear the individual used keys
*/
function clearWtIds() {
	if (wt_Ids) {
		if (_tag) {
			for (i=0;i<wt_Ids.length;i++) {
				delete _tag['WT'][wt_Ids[i]];
			}
		}
		wt_Ids = new Array();
	}
}

function consoleLog (txt) {
	if (debug) {
		 try {
			console.log(txt);
		} catch(e) { }
	}
}



function trackRating(rating, page) {
	//consoleLog ('rating = ' + rating+','+page);
	
	if (_tag) {
		trackWebtrends({ 
			'WT.cusRatingStars' : rating,
			'WT.cusRatingPage' : page
		});
	}
}

function replaceDelimiter(txt) {
	txt = txt.replace(/\//g, "|");
	txt = txt.replace(/;/g, ",");
	return txt;
}

function trackSurveySubmit(surveyForm) {
	
	var questions = new Array();
	var answers = new Array();
	
	//iterate questions ---
	surveyForm.find('div.field').each(function() {
		var $this = $(this);
		questions.push($this.find('label:first').html());
		
		//check Answer for Radiobuttons ---
		var radio_btns = $this.find("input[type='radio']");
		if (radio_btns.length > 0) {
			radio_btns.each(function() {
				var rad = $(this);
				if (rad.attr('checked') == true) {
					answers[questions.length-1] = rad.parent().text();
				}
			});
		}
		
	});
	
	//wenn mind. eine answer ---
	if (answers.length > 0) {
		var trackValue = "";	
		
		//questions.each(function(i, question) {
		$.each(questions, function(i, question) {
			
			if (i > 0) trackValue += ";";
			trackValue += "Q"+(i+1)+": "+replaceDelimiter(question.substring(0, 15))+"... ?/";
			if (answers[i]) trackValue += replaceDelimiter(answers[i]);
		});
		
		if (_tag) {
			trackOnUnload = { 
				'WT.cusSurveySubmit' : 'submitted',
				'WT.cusSurveyAnswers' : trackValue
			};
			
			//trackWebtrends(trackOnUnload);
		}	
	}
	
}
