var cookieDomain = /(bakugan.*)/.exec(window.location.hostname)[1];

function getParameterByName(name) {
	name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
	var regexS = "[\\?&]" + name + "=([^&#]*)";
	var regex = new RegExp(regexS);
	var results = regex.exec(window.location.href);
	if (results == null) {
		return "";
	} else {
		return results[1];
	}
}

function getBrowserLocale() {
	if (navigator) {
		if (navigator.language) {
			return navigator.language;
		}
		else
		if (navigator.browserLanguage) {
			return navigator.browserLanguage;
		}
		else
		if (navigator.systemLanguage) {
			return navigator.systemLanguage;
		}
		else
		if (navigator.userLanguage) {
			return navigator.userLanguage;
		}
	}
}

function redirectUser(whichPage) {
	
	var locale;
	
	var page = getParameterByName("page") || whichPage; 
	page = (page == "home" || page == "" || page == null) ? "home/home.html" : page;
	
	// if cookies are enabled
	
	if(navigator.cookieEnabled == true) {
		
		// see if there's an existing cookie or if there's a lang variable being passed in query string
		
		if($.cookie("lang") != null || (getParameterByName("lang") != null && getParameterByName("lang") != "")){
			
			// if there is, forward to correct page
			
			locale = $.cookie("lang") || getParameterByName("lang");			
			
			switch (locale) {		
				case 'en-us':
				case 'fr-ca':
				case 'en-gb':
				case 'fr-fr':
					setSeason('4');
					setLanguage(locale, 's4/' + page);
					break;				
				case 'de':
				case 'nl':
				case 'es':
				case 'pl':
				case 'it':
				case 'pt':
				case 'pt-br':
					setSeason('3');
					setLanguage(locale, 's3/' + page);
					break;					
				default:
					window.open('language.html', '_self');
					break;
			}
			
		} else {
			
			// if there's no language cookie or language variable set, detect language based on browser locale
			
			locale = getBrowserLocale().toLowerCase();
						
			if(locale == "en-us" || locale == "en-ca" || locale == "en-au" ||locale == "fr-ca" || locale == "en-gb" || locale == "fr-fr"){
				
				// if they're s4, redirect to proper page
				
				locale = (locale == "en-ca" || locale == "en-au") ? "en-us" : locale;
				
				setSeason('4');
				setLanguage(locale, 's4/' + page);
				
			} else {
				
				// otherwise, redirect to the flag page				
				window.open('language.html', '_self');				
				
			}		
			
		}		
	
	} else {
		
		// if cookies are turned off, show error message
		$("#error").show();
		$("#error").replaceWith("<div id='error'><table cellpadding='5' cellspacing='0' width='520' align='center'><tr><tr><td valign='top'><img src='/images/uk_small.png' /></td><td align='left'>You must have Cookies enabled to view the Bakugan website</td></tr><tr><td valign='top'><img src='/images/fr_small.png' /></td><td align='left'>Pour voir le site web Bakugan, les Cookies doivent &ecirc;tre activ&eacute;s</td></tr><tr><td valign='top'><img src='/images/es_small.png' /></td><td align='left'>Para ver el sitio web Bakugan, los Cookies deben estar activados</td></tr><tr><td valign='top'><img src='/images/de_small.png' /></td><td align='left'>Damit Sie die Bakugan- Web-site aufrufen k&ouml;nnen, muss Ihr Browser Cookies zulassen</td></tr><tr><td valign='top'><img src='/images/nl_small.png' /></td><td align='left'>U dient cookies te activeren om de Bakugan-website te kunnen zien</td></tr><tr><td valign='top'><img src='/images/pl_small.png' /></td><td align='left'>Strona internetowa Bakugan dla prawid&#322;owego dzia&#322;ania wymaga w&#322;&#261;czenia obs&#322;ugi plik&oacute;w cookie</td></tr><tr><td valign='top'><img src='/images/it_small.png' /></td><td align='left'>Per visualizzare il sito dei Bakugan occorre abilitare i cookies</td></tr><tr><td valign='top'><img src='/images/pt_small.png' /></td><td align='left'>Para visualizar o s&iacute;tio Web Bakugan, os Cookies dever&atilde;o estar ativados</td></tr><tr><td valign='top'><img src='/images/pt-br_small.png' /></td><td align='left'>Para visualizar o website Bakugan, os Cookies dever&atilde;o estar ativados</td></tr></table></div>");
		
	}
	
}

function setSeason(season) {
	$.cookie("season", season, {path: "/", domain:cookieDomain, expires: 7});
}

function setLanguage(locale) {
	$.cookie("lang", locale, {path: "/", domain:cookieDomain, expires: 7});
	var page = getParameterByName("page") || "home/home.html"; 
	window.open("/s"+$.cookie("season")+"/"+page, '_self');
}
function areCookiesEnabled() {	
	var r = false;
	$.cookie("test", "hello", {path: "/", domain:cookieDomain});
	if ($.cookie("test") != null) {
		r = true;
		$.cookie("test", null, {path: "/", domain:cookieDomain, expires: -1});
	}	
	return r;
}
function redirectDimensions() {
	var locale = getParameterByName("lang") || $.cookie("lang") || getBrowserLocale().toLowerCase();
	var address;

	switch (locale) {
		case 'es':
		case 'nl':
		case 'de':
		case 'en-gb':
		case 'fr-fr':
		case 'it':
		case 'pl':
		case 'pt':
		case 'pt-pt':
		case 'pt-br':
			address = "http://bakugandimensions.co.uk";
			break;
		case 'fr':
		case 'fr-ca':			
		case 'en':
		case 'en-us':
		default:
			address = "http://bakugandimensions.com";
			break;
	}

	if (window.location.hostname == 'dev.bakugan.com') {
		address = "http://sm-dev-01.bakugandimensions.com";
	}

	window.open(address, "_self");
}

