dojo.require("te.widget.TEDialog");

var cn_overlayDialog;
var cn_overlayDisplayLink;
var cn_overlayClickLink;
var CN_REDIRECT_COOKIE_NAME = "cnRedirect";
	
dojo.addOnLoad(function() {
	var hostname = window.location.hostname;
	var region = dojo.cookie("region");
	
	// if already on the china website, then don't do any further checking and exit...
	if (hostname.indexOf(".te.com.cn") != -1) {
		return;
	}
	
	if (region != null && region == "china") {
		return;
	}
	
	cn_getCountryFromBrowserLanguage();
});

function cn_determineToShowOverlay(originCountry) {
	var cnRedirectCookie;
	var updateCookieValue = false;
	var showOverlayFlag = false;
	var langId = dojo.cookie("language_id");
	
	if (dojo.cookie(CN_REDIRECT_COOKIE_NAME)) {
		cnRedirectCookie = dojo.fromJson(dojo.cookie(CN_REDIRECT_COOKIE_NAME));
	} else {
		cnRedirectCookie = {'country':'', 'langChecked':false};
		updateCookieValue = true;
	}
	
	// language has not previously been checked
	if (cnRedirectCookie != null &&  ! cnRedirectCookie.langChecked) {
		// if home page url
		var re = new RegExp("\.te\.com\/[a-z][a-z]\/home\.html", "ig");
		if ( re.test(window.location.href) ) {
			// if language = chinese
			if (langId != null && langId == "9") {
				cnRedirectCookie.langChecked = true;
				updateCookieValue = true;
				showOverlayFlag = true;
			}
		}
	}
	
	// country check
	if (originCountry.length > 0) {
		if (! showOverlayFlag) {
			// if origin country = china
			if (originCountry == "cn") {
				showOverlayFlag = true;
			}
		} 
		
		cnRedirectCookie.country = originCountry;
		updateCookieValue = true;		
	}
		
	if (updateCookieValue) {
		dojo.cookie(CN_REDIRECT_COOKIE_NAME, dojo.toJson(cnRedirectCookie), {expires: 180, path: "/"});
	}
	
	if (showOverlayFlag) {
		cn_loadOverlay();
	}
}

function cn_loadOverlay(callbackFunc) {
	cn_updateRedirectCookie();
	
	var overlayContainer = document.createElement("div");
	dojo.body().appendChild(overlayContainer);	

	cn_overlayDialog = new te.widget.TEDialog({
			href: "/_TEincludes/ver/650/china_overlay_content.inc",
			parseOnLoad: true,
			preload: true
		},
		overlayContainer
	);
	
	if (callbackFunc != null) {
		dojo.connect(cn_overlayDialog, "onCancel", null, callbackFunc);
	}
	
	cn_overlayDialog.onLoad = function() {
		cn_showOverlay();
	}
	
	cn_overlayDialog.startup();	
	cn_recordOverlayDisplay();
}

function cn_showOverlay() {
	cn_overlayDialog.show();
}

function cn_getCountryFromBrowserLanguage() {
	var cnRedirectCookie;
	
	if (dojo.cookie(CN_REDIRECT_COOKIE_NAME)) {
		cnRedirectCookie = dojo.fromJson(dojo.cookie(CN_REDIRECT_COOKIE_NAME));
	} 

	if (cnRedirectCookie == null || cnRedirectCookie.country.length < 1) {
		dojo.io.script.get(
		{
			url: "/aboutus/news/language/getBrowserLanguage.aspx",
			timeout: 10000,		// 10 seconds
			preventCache: true,
			callbackParamName: "callback",
			handle: function(response, ioArgs) {
					cn_handleResponse(response, ioArgs);
				}
		});
	} else {
		cn_determineToShowOverlay('');
	}
}

function cn_handleResponse(response, ioArgs) {
	var originCountry = '';

	if (typeof(response.browserLanguage) != "undefined") {
	
		if ( response.browserLanguage.toLowerCase().indexOf("zh") != -1 ) {
			originCountry = "cn";
		} else {
			originCountry = "xx";
		}
	}
	
	cn_determineToShowOverlay(originCountry);
}

// set langChecked in redirect cookie to true
function cn_updateRedirectCookie() {
	var cnRedirectCookie;
	
	if (dojo.cookie(CN_REDIRECT_COOKIE_NAME)) {
		cnRedirectCookie = dojo.fromJson(dojo.cookie(CN_REDIRECT_COOKIE_NAME));
	} else {
		cnRedirectCookie = {'country':'', 'langChecked':false};
	}
	
	if ( ! cnRedirectCookie.langChecked ) {
		cnRedirectCookie.langChecked = true;
		dojo.cookie(CN_REDIRECT_COOKIE_NAME, dojo.toJson(cnRedirectCookie), {expires: 180, path: "/"});
	}
}

function cn_recordOverlayDisplay() {
	if (cn_overlayDisplayLink == null) {
		cn_overlayDisplayLink = document.createElement('a');
		cn_overlayDisplayLink.href="";
		document.body.appendChild(cn_overlayDisplayLink);
	}
		
	var s = s_gi('tycoeglobal');
	s.tl(cn_overlayDisplayLink, 'o', 'TE_ChinaOverlayDisplay');
}

function cn_recordOverlayClick() {
	if (cn_overlayClickLink == null) {
		cn_overlayClickLink = document.createElement('a');
		cn_overlayClickLink.href="";
		document.body.appendChild(cn_overlayClickLink);
	}
		
	var s = s_gi('tycoeglobal');
	s.tl(cn_overlayClickLink, 'o', 'TE_ChinaOverlayClick');
}

