/* FAST2 Google Analytics JS */

$(document).ready(function(){

	var pageAlias = GetUrlParam("page");
	var eventName = "";
	if(pageAlias.length > 0) {
		switch(pageAlias.toLowerCase()) {
			case "sok_ledigt":
			case "sok_ledigt_eng":
				eventName = htmlDecode("Visa ledig l&auml;genhet");
				$(".tdListRow a").click(function(){ TrackVacantApartmentClick($(this), eventName); });
				break;
				
			case "registrering":
			case "registrering_eng":
				eventName = htmlDecode("Ny registrering");
				TrackRegisterPage(pageAlias, eventName);
				break;
				
			case "mina_avier":
			case "mina_avier_eng":
				eventName = htmlDecode("Visa avi");
				$(".tdListRow a").click(function(){ TrackInvoiceClick($(this), pageAlias, eventName); });
				break;
				
				
			case "mina_avtal":
			case "mina_avtal_eng":
				eventName = htmlDecode("Visa kontrakt");
				if($(".tblList:visible").size() > 0) {
					//fler kontrakt - lista visas
					$(".tdListRow a").click(function(){ TrackContractClick($(this), pageAlias, eventName); });
				}
				else {
					//ett kontrakt - kontraktet visas direkt
					_gaq.push(['_trackPageview']);
					_gaq.push(['_trackEvent', eventName, getPageLang(pageAlias)]);
				}
				break;
			
			case "my_application2": //sökande
			case "my_application2_eng":
			case "my_settings":	//boende
			case "my_settings_eng":
				eventName = htmlDecode("Uppdatera kontaktuppgifter");
				TrackMySettingsPage(pageAlias, eventName);
				break;
				
			case "felanmalan":
			case "felanmalan_eng":
				eventName = htmlDecode("Felanm&auml;lan skickad");
				TrackFaultReportPage(pageAlias, eventName);
				break;
				
			default:
				//alert("other page");
				_gaq.push(['_trackPageview']);
				break;
		}
	}
	else {
		_gaq.push(['_trackPageview']);
		//alert("no page alias");
	}
	
});


function TrackVacantApartmentClick($objLink, eventName) {
	if($objLink.attr("id").indexOf(":detalj2") > -1) {
		$objRow = $objLink.parents("tr");
		if($objRow) {
			//get address
			//var address = $objLink.find("span").html();
			//address = (address != null ? htmlDecode(address) : "");
			
			//get area name
			var area = $objRow.find(".tdListRow:eq(2) a span").html();
			area = (area != null ? htmlDecode(area) : "");
			
			//get apartment type
			var type = $objRow.find(".tdListRow:eq(4) div:eq(1) span").html();
			type = (type != null ? htmlDecode(type): "");
			
			/*var msg = "['_trackPageview: ', '" + document.location.href + "']\n";
			msg += "['_trackEvent', " + htmlDecode("'Lediga l&auml;genheter'") + ", " + area + ", " + type + "]";
			alert(msg);
			*/
			
			_gaq.push(['_trackPageview']);
			_gaq.push(['_trackEvent', eventName, area, type]);
		}
	}
}


function TrackRegisterPage(pageAlias, eventName) {
	var bFound = false;
	var findStart = "e_step";
	var findEnd = "_orange.gif";
	var iStep = 0;
	$(".tblObjectDetails .tdDlgValue table td img").each(function(){
		if(!bFound) {
			var pos2 = $(this).attr("src").indexOf(findEnd);
			if(pos2 > -1) {
				
				var pos1 = $(this).attr("src").indexOf(findStart);
				if(pos1 > -1 && pos1 < pos2) {
					var step = $(this).attr("src").substring(pos1 + findStart.length, pos2);
					if(step.length > 0 && !isNaN(step)) {
						iStep = parseInt(step);
					}
				}
				bFound = true;
			}
		}
	});
	if(bFound && iStep > 0) {
		_gaq.push(['_trackPageview', pageAlias + '_step' + iStep]);
		
		if(iStep == 3) {
			$(".linkFunctionButton").click(function () { TrackRegistrationClick($(this), pageAlias, eventName); });
		}
	}
}
function TrackRegistrationClick($objBtn, pageAlias, eventName) {
	var btnText = $objBtn.html();
	if(btnText.toLowerCase().indexOf("registera") == 0 || btnText.toLowerCase().indexOf("register") == 0) {
		_gaq.push(['_trackEvent', eventName, getPageLang(pageAlias)]);
	}
}


function TrackInvoiceClick($objLink, pageAlias, eventName) {
	if($objLink.attr("id").indexOf(":detalj") > -1) {
		_gaq.push(['_trackPageview']);
		_gaq.push(['_trackEvent', eventName, getPageLang(pageAlias)]);
	}
}


function TrackContractClick($objLink, pageAlias, eventName) {
	if($objLink.attr("id").indexOf(":detalj") > -1) {
		_gaq.push(['_trackPageview']);
		_gaq.push(['_trackEvent', eventName, getPageLang(pageAlias)]);
	}
}


function TrackMySettingsPage(pageAlias, eventName) {
	var query = "?page=" + pageAlias
	if(window.location.search.length <= query.length) {
		_gaq.push(['_trackPageview', pageAlias]);
	}
	else if($(".sysInfoHeader td:visible").size() > 0) {
		var text = replaceSweLetter($(".sysInfoHeader td:first").html().toLowerCase());
		if(text.indexOf(replaceSweLetter("din andringar ar sparade")) == 0 || text.indexOf(replaceSweLetter("your changes have been updated")) == 0) {
			_gaq.push(['_trackEvent', eventName, getPageLang(pageAlias)]);
		}
	}
}


function TrackFaultReportPage(pageAlias, eventName) {
	var query = "?page=" + pageAlias
	if(window.location.search.length <= query.length) {
		_gaq.push(['_trackPageview', pageAlias]);
	}
	else if($(".sysInfoHeader td:visible").size() > 0) {
		var text = replaceSweLetter($(".sysInfoHeader td:first").html().toLowerCase());
		if(text.indexOf(replaceSweLetter("felanmalan mottagen")) == 0 || text.indexOf(replaceSweLetter("fault report received")) == 0) {
			_gaq.push(['_trackEvent', eventName, getPageLang(pageAlias)]);
		}
	}
}



function htmlDecode(txt) {
	return $('<div/>').html(txt).text();
}
function htmlEncode(txt) {
	return $('<div/>').text(txt).html();
}
function replaceSweLetter(txt) {
	txt = txt.replace(/&aring;/g, "a");
	txt = txt.replace(/&auml;/g, "a");
	txt = txt.replace(/&ouml;/g, "o");
	txt = txt.replace(/&Aring;/g, "A");
	txt = txt.replace(/&Auml;/g, "A");
	txt = txt.replace(/&Ouml;/g, "O");
	var str = "";
	for(var i=0; i < txt.length; i++){
		switch(txt.charCodeAt(i)) {
			case 228:
			case 229:
				str += "a";
				break;

			case 196:
			case 197:
				str += "A";
				break;
				
			case 246:
				str += "o";
				break;
				
			case 214:
				str += "O";
				break;
				
			default:
				str += txt.substring(i,i+1);
				break;
				break;
		}
	}
	return str;
}

function isEnglishPage(pageAlias) {
	var bEng = false;
	if(pageAlias.length > 0) {
		var find = "_eng";
		bEng = (pageAlias.toLowerCase().indexOf(find) == pageAlias.length-find.length) 
	}
	return bEng;
}
function getPageLang(pageAlias) {
	return (isEnglishPage(pageAlias) ? "Engelska" : "Svenska");
}

