// The current cookie code should be called first to ensure
// that it takes precedence over any other logic
var geocheck = true;

// assumes that the language is based on the Language Tags specification standard RFC2616 from W3C
// language-tag  = primary-tag '-' sub-tag (e.g. en-US)
// primary-tag is an ISO-639 language abbreviation, sub-tag is an ISO-3166 country code
function redirectPage(language)
{
	var msg = 'Debug Message: The site determined your preferred language as ';
	direct=window.location.href+'#/';
	var site = '';
	// alert(direct);

	switch(language) {
		// North America
		case("en"):
		case("en-us"):
		case("en-US"):
		site = "en_US_01";
		msg += "English"
		break;

		case("en-ca"):
		site = '';
		direct = 'http://www.intel.com/en_CA/index.htm';
		msg += "English";
		break;

		// EMEA
		case("de-at"):
		site = "de_DE_01";
		msg += "German";
		break;
		
		case("de"):
		case("de-DE"):
		site = "de_DE_03";
		msg += "German";
		break;

		case("de-li"):
		site = "de_DE_04";
		msg += "German";
		break;

		case("de-ch"):
		site = "de_DE_05";
		msg += "German";
		break;		

		case("fr"):
		case("fr-FR"):
		site = "fr_FR_01";
		msg += "French";
		break;

		case("sv"):
		case("sv-SE"):
		site = "sv_SE_01";
		msg += "Swedish";
		break;

		case("fr-be"):
		case("fr-BE"):
		site = "fr_BE_01";
		msg += "French";
		break;

		case("fr-ca"):
		case("fr-CA"):
		site = '';
		direct = 'http://www.intel.com/fr_CA/index.htm';
		msg += "French";
		break;

		case("it"):
		case("it-IT"):
		site = "it_IT_01";
		msg += "Italiano";
		break;

		case("ru"):
		case("ru-RU"):
		site = "ru_RU_05";
		msg += "Russian";
		break;
		
		case("uk"):
		site = '';
		direct = 'http://www3.intel.com/cd/corporate/europe/emea/ukr/364106.htm';
		msg += "Ukrainian";
		break;

		case("pl"):
		case("pl-PL"):
		site = "pl_PL_01";
		msg += "Polish";
		break;

		case("en-gb"):
		case("en-GB"):
		site = "en_UK_15";
		msg += "English";
		break;

		case("nl"):
		case("nl-NL"):
		site = "nl_NL_01";
		msg += "Dutch";
		break;

		case("nl-be"):
		case("nl-BE"):
		site = "nl_BE_01";
		msg += "Dutch";
		break;

		case("et"):
		site = "en_UK_15";
		msg += "Greek";
		break;
		

		case("tr"):
		case("tr-TR"):
		site = "tr_TR_01";
		msg += "Turkish";
		break;
	
		case("cs"):
		site = "cz_CZ_01";
		msg += "Czech";
		break;

		case("hu"):
		site = "hu_HU_01";
		msg += "Hungarian";
		break;

		case("he"):
		site = '';
		direct = 'http://www3.intel.com/cd/corporate/europe/emea/heb/287256.htm';
		msg += "Hebrew";
		break;

		case("ar-eg"):
		site = '';
		direct='http://www.intel.com/ar_EG/Consumer/Learn/Processors/index.htm';
		break

		case("ar-ae"):
		site = '';
		direct='http://www.intel.com/ar_AE/Consumer/Learn/Processors/index.htm';
		break;

		case("ar"):
		case("ar-dz"):
		case("ar-bh"):
		case("ar-iq"):
		case("ar-jo"):
		case("ar-kw"):
		case("ar-lb"):
		case("ar-lr"):
		case("ar-ma"):
		case("ar-om"):
		case("ar-qa"):
		case("ar-sa"):
		case("ar-sy"):
		case("ar-tn"):
		case("ar-ye"):
		site = '';
		msg += "Arabic";
		direct='http://www.intel.com/ar_SA/Consumer/Learn/Processors/index.htm';
		break;

		case("en-zw"):
		site = "en_UK_15";
		msg += "English";
		break;
		
		case("en-za"):
		direct='http://www3.intel.com/cd/corporate/africa/emea/eng/za/369032.htm';
		site = '';
		msg += "English";
		break;

		case("af"):
		site = "en_UK_15";
		msg += "English";
		break;

		case("en-ie"):
		site = "en_UK_16";
		msg += "English";
		break;

		
		// Latin America
		case("pt-BR"):
		case("pt-br"):
		site = "pt_BR_01";
		msg += "Portuguese";
		break;

		case("es-ar"):
		case("es-AR"):
		site = "es_LA_06";
		msg += "Spanish";
		break;

		case("es-cl"):
		case("es-CL"):
		site = "es_LA_02";
		msg += "Spanish";
		break;

		case("es-co"):
		case("es-CO"):
		site = "es_LA_03";
		msg += "Spanish";
		break;

		case("es-cr"):
		case("es-CR"):
		site = '';
		direct='http://www.intel.com/costarica';
		msg += "Spanish";
		break;

		case("es"):
		case("es-es"):
		case("es-ES"):
		site = "es_ES_01";
		msg += "Spanish";
		break;

		case("es-mx"):
		case("es-MX"):
		site = "es_LA_04";
		msg += "Spanish";
		break;

		case("es-ve"):
		case("es-VE"):
		site = "es_LA_05";
		msg += "Spanish";
		break;
		
		case("es-bo"):
		site = "es_LA_07";
		msg += "Spanish";
		break;
		
		case("es-uy"):
		site = "es_LA_09";
		msg += "Spanish";
		break;
		
		case("es-pe"):
		site = "es_LA_08";
		msg += "Spanish";
		break;

		// APAC
		// PRC - Simplified Chinese
		case("zh-cn"):
		case("zh-CN"):
		site = "zh_CN_01";
		msg += "Chinese";
		break;

		// Taiwan - Traditional Chinese
		case("zh-tw"):
		case("zh-TW"):
		site = "zh_TW_01";
		msg += "Chinese";
		break;

		case("en-au"):
		case("en-AU"):
		site = "en_AU_01";
		msg += "English";
		break;

		case("th"):
		site = "th_TH_01";
		msg += "Thai";
		break;

		case("ko"):
		site = "ko_KR_01";
		msg += "Korean";
		break;

		case("vi"):
		site = "vi_WN_01";
		msg += "Vietnamese";
		break;

		case("ms"):
		site = "en_AP_03";
		msg += "English";
		break;		

		case("hi"):
		case("hi-IN"):
		case("gu"):
		case("gu-IN"):
		case("pa"):
		case("pa-IN"):
		case("ta"):
		case("ta-IN"):
		case("ml"):
		case("ml-IN"):
		case("te"):
		case("te-IN"):
		case("mr"):
		case("mr-IN"):
		case("bn"):
		case("bn-IN"):
		case("kn"):
		case("kn-IN"):
		site = "en_IN_01";
		msg += "English";
		break;

		case("id"):
		site = "id_ID_01";
		msg += "Bahasa";
		break;

		case("en-nz"):
		site = "en_AP_04";
		msg += "English";
		break;
		
		case("en-ph"):
		site = "en_AP_06";
		msg += "English";
		break;
		

		// IJKK
		case("ja"):
		case("ja-jp"):
		case("ja-JP"):
		site = "ja_JP_01";
		msg += "Japanese";
		break;

		default:
		break;
	}

//alert(site);

	if(site=="Unknown")
	{
		if(language.length > 0) {
			language = language.substring(0,2);
			//alert(language);	
			switch(language) {
				case("es"):
				site = "es_LA_01";
				msg += "Spanish";
				break;

				case("de"):
				site = "de_DE_01";
				break;

				case("fr"):
				site = "fr_FR_01";
				break;

				case("cn"):
				site = "zh_CN_01";
				msg += "Chinese";
				break;

				case("en"):
				site = "en_UK_15";
				msg += "English";
				break;

				default:
				site = "en_US_01";
				msg += "English";
				break;				
			}
		}	
	}

	//alert(msg);

	direct=direct+site;
	window.location.href=direct;
	if(site) {
		//window.location.reload();
		return site;		
	}
	else {
		return direct;
	}
}

function test(a,b,c) {
	d = (a+b) * c;
	return d;
}

// language detection for Microsoft Internet Explorer
function redirectPageIE()
{
	//set initial value to Unknown
	var language="Unknown";
	// browser language 
	if(navigator.userLanguage){language=navigator.userLanguage;} 
	// preferred language set by the user in locale preferences
	else if(navigator.browserLanguage) {language = navigator.browserLanguage;}
	// system language
	else {language=navigator.systemLanguage;} 
	
	//alert(language);

	return redirectPage(language);	
}

// language detection for Mozilla based browsers such as Firefox, Safari, Opera etc.
function redirectPageMozilla()
{
	//set initial value to Unknown
	language="Unknown";

	// browser language 
	if (navigator.language){language=navigator.language;} 

	//alert(language);

	return redirectPage(language);	
}

function checkGeo()
{
	//alert(document.cookie);
	browserType = navigator.appName.toUpperCase();
	var deepLinkURL = "unknown";
	//alert(browserType);
	switch(browserType)
	{
		case("MICROSOFT INTERNET EXPLORER"):
		deepLinkURL = redirectPageIE();
		break;

		default:
		deepLinkURL = redirectPageMozilla();
		break;
	}
	return deepLinkURL;
}