var check = false; var targetHeight = 650; var HOST; var PATH = '/';
var DATE = new Date(); DATE.setTime(DATE.getTime() + 3600000 * 24 * 365);

if (!console) { var console = {}; console.log = function() { /*alert(console.log) */ }; }

var JQ = jQuery.noConflict();

JQ(document).ready(function() {
	JQ('#check_cookies')
		.css({
			display: 'block',
			visibility: 'visible'
		})
	checkCookies(); // fires init()
});

function init() {
	var pageHeight = JQ('.content').height(); //#page-content
	var langHeight = JQ('#languages').height();
	var langPosLeft = JQ('#languages').css('left').split('px');
	var bgPos   = JQ('#bg_selection').css('left').split('px');
	var slideTo = langPosLeft[0];
	JQ('#languages')
		.css({
			display: 'none',
			position: 'absolute',
			top: ((targetHeight - langHeight)/2) + 'px'
		});

	JQ('.content #main_bg')
		.animate({ 'height': targetHeight + 'px' },'easeOutQuad');

	JQ('.content')
		.css({ height: 0 })
		.animate({ 'height': targetHeight + 'px' },'easeOutQuad',languages);//moveBgSelection

	function moveBgSelection() {
		JQ('#bg_selection')
			.css({'visibility': 'visible'})
			.animate({'left': slideTo + 'px'},'easeOutQuad',languages);
	}
	
	function languages() {
		JQ('#languages ul')
			.css({
				visibility: 'visible'
			})
		JQ('#languages')
			.fadeIn('fast',regions);	
	}
}

function regions() {
	var parPos = JQ('#languages').position();
	var parWid = JQ('#languages').width();
	var bgPos  = JQ('#bg_selection').position();
	var pageHeight = JQ('.content').height();
	var clicked = '';

	//JQ('#languages ul li a').hover(slideLinksRight,slideLinksLeft);

	JQ('#languages ul li a').click(function() {
		var track = 'lang_selector>' + JQ(this).attr('id').toLowerCase();
		var regionsPos = parPos.left + parWid;
		var href = JQ(this).attr('href');
		if (href && !href.indexOf('#')) {
			sibs = JQ(this).parent().siblings();
			if (clicked == JQ(this).parent().attr('id')) {
				clicked = '';
	    		linkTracking(track + '>back')
				JQ('#divider_orange').css({
					display: 'none'
				})
				JQ('.regions').css({
					display: 'none',
					left: '-10000em'
				});
				JQ('.regions li a').css({
					display: 'none',
					left: '-10000em',
					width: 'auto'
				});
		    	JQ('#bg_selection').animate({'left': parPos.left + 'px'}, 'easeInOutQuad');
				JQ(clicked + ' a img').remove();
				JQ(this).parent() //li
					.css({
						backgroundImage: 'none'//,
//						visibility: 'visible'
					})
					.toggleClass('language_selected');
				JQ(this).parent().parent() // ul
					.css({
						position: 'absolute',
						top: 0
					})
				sibs.each(function() {
					var id = '#' + JQ(this).attr('id');
					JQ(this)
						.css({
							position: 'relative',
							left: 0,
							visibility: 'visible'
						})
						.fadeIn('fast');
				});
				return false;
	    	} else {
	    		linkTracking(track)
				clicked = JQ(this).parent().attr('id'); //li
	    		JQ('#bg_selection').animate({ 'left': regionsPos + 'px' }, 'easeInOutQuad');
				//fade out non-selected countrys, highlight selected
				sibs.each(function(index) {
					var tmpId  = '#' + JQ(this).attr('id');
					JQ(this)
						.css({
							display: 'none',
							visibility: 'hidden',
							position: 'absolute',
							left: '-10000px'
						})
						.fadeOut('fast');
					JQ(tmpId + ' a img').remove()
					if (index == (sibs.length-1)) {
						languageSelected(clicked,href);
					}
				})
				//positoin and add functionality to regions
				var regions = href;
				var regionsSize = JQ(regions).height();
				var regionsTop = (pageHeight - regionsSize)/2 + 'px';
				//console.log('regionsTop: ', regionsTop)
				JQ('.regions').css({
					display: 'block'
				});
				JQ(regions)
					.css({
						display: 'block',
						top: regionsTop
					})
					.fadeIn('normal');
				JQ(regions + ' ul li a')
					.css({
						display: 'block',
						left: 0,
						position: 'absolute',
						width: '160px' 
					})
					//.hover(slideLinksRight,slideLinksLeft);

				JQ(regions + ' ul li a').click(function() {
					var id = JQ(this).parent().attr('id');
					var track = JQ(this).attr('id');
					setCookies(id,track);
				})
				return false;

	    	}
		} else {
			var id = JQ(this).attr('id');
			setCookies(id,null);
		};
	});


	function setCookies(id,track) {
		var regArr = id.split('_');
		var track_country = (track != null) ? track.replace(/-/,'>') : regArr[0];
		var region = regArr[1].toUpperCase();
		var country = regArr[2].toUpperCase();
		var language = regArr[3];
		var locale = region  + '_' + country + '_' + language.toUpperCase();
		var regionurl = JQ(this).attr('href');
		var track = 'lang_selector>' + track_country;
		//var host = location.hostname;
		linkTracking(track);
			console.log('locale : ', locale);
			console.log('region: ', region);
			console.log('lang: ', language);
			console.log('coun: ', country);
			console.log('track: ', track);
		JQ.cookie('locale', locale, { expires: DATE, path: PATH, domain: HOST });
		JQ.cookie('language', language, { expires: DATE, path: PATH, domain: HOST});
		JQ.cookie('country', country, { expires: DATE, path: PATH, domain: HOST });
	}


	function languageSelected(clicked,region) {
		var clickedId = '#' + clicked;
		var clickOldPos = targetHeight;
		var clickHeight = JQ(clickedId).height();
		JQ(clickedId)
			.css({
				backgroundRepeat: 'no-repeat',
				backgroundPosition: '0 5px',
				position: 'relative',
				top: 0
			})
			.toggleClass('language_selected');
		//targNum = (JQ.browser.msie && JQ.browser.version < 7) ? 15 : (JQ.browser.msie && JQ.browser.version >= 7) ? 15 : 15; //143 = arbitrary number that works in FF, 105 for ie7
		JQ(clickedId + ' a img').remove();

		JQ(clickedId + ' a')
			.append('<img src="/' + site_folder + '/language_tunnel/images/arrow.gif" />')
		JQ(clickedId + ' a img').addClass('arrow_img')
/*
		css({
			left: '3px',
			position: 'relative',
			top: '-1px'

		})
*/		
		var orangeLeft = JQ(clickedId).parent().parent().position().left + JQ(clickedId + ' a img').position().left + JQ(clickedId + ' a img').width() + 60;
		JQ('#divider_orange').css({
			display: 'block',
			left: orangeLeft + 'px'
		});
		JQ(region).css({
			left: orangeLeft + 40 + 'px'
		})
		targNum = 15;
		JQ(clickedId).parent()
			.css({
				position: 'absolute'
			})
			.animate({ 'top': (((targetHeight/2) - parPos.top) - targNum) + 'px' }, 'easeInOutQuad') //28 = height of selected image
	}

	function slideLinksRight(event) {
		JQ(this).animate({ 'left': '10px' }, { queue: false },'easeOutQuad');
	}
	function slideLinksLeft(event) {
		JQ(this).animate({ 'left': 0 }, { queue: false }, 'easeOutQuad');
	}

};

function linkTracking(obj) {
	track = prefix + '>' + obj;
	console.log('track: ', track);
	tracking.click(track);
}

function checkCookies() {
	var tmpLang; var tmpReg; var tmpUrl; var params;
	var ref = document.referrer;
	//ref's include any querystring ?val=value, but no hashes
	var qIndex = ref.indexOf('?');
	var hIndex = ref.indexOf('#');
	var hashy = location.hash;
	var tmpQs = location.search
	//.split('?').pop();
	var qs = (hashy.indexOf('&')) ? hashy.split('&') : tmpQs.split('&');
		
	cooks = ['locale', 'language', 'country'];

	if (tmpQs.indexOf('change') >= 0) {
		jQuery.each(cooks, function(index, a) {
			JQ.cookie(a,null,{ path: PATH, domain: HOST });
		});
		JQ('#check_cookies').remove();
		check = true;
	} else if (JQ.cookie('locale')) {
		var tmpCook = JQ.cookie('locale')
		if (locales[tmpCook]) {
			console.log('href: ', locales[tmpCook].href)
			JQ('#check_cookies').html('Redirecting...');
			var cookieRedirect = (tmpQs.indexOf('courage') >= 0) ? locales[tmpCook].courage : locales[tmpCook].href;
			window.location = cookieRedirect;
		} else {
			console.log('doesn\'t match anything');
			var error = "Your cookies don't match any of ours!";
			JQ('#check_cookies')
				.css({ color: '#f00'})
				.html(error);
			JQ.cookie('locale',null,{ path: PATH, domain: HOST });
			check = true;
			//want to break out of this one and go to the else statement
		}
	} else {
		jQuery.each(cooks, function(index, a) {
			if (JQ.cookie(a)) {
				if (a == 'locale') {
					var tmpVals = JQ.cookie(a).split('_');
					jQuery.each(tmpVals, function(index, a) {
					//	console.log('index #%a is ', index, a);
						tmpLang = tmpVals[2]; //EN
						tmpReg  = tmpVals[1]; //US
						tmpCountry = tmpVals[0] //US
					})
					console.log('%a exists. its value is ', a, JQ.cookie(a));
				} else if (a == 'regionurl') {
					tmpUrl = JQ.cookie(a); //if no /nikeos/ url					
				} else {
					console.log('%a exists @ %b. its value is %c', a, index, JQ.cookie(a));
				}
			} else {
				console.log('%a COOKIE MISSING.', a);
			}
			console.log('---------- end search for ', a);
		});
	
		if (tmpLang && tmpReg) { // && tmpUrl
			check = false;
			JQ('#check_cookies').html('Redirecting...');
			console.log('!!!!!!!!!!!tmpLand and tmpReg exist')
			console.log('urL: ', tmpUrl);
			//var redirect = 'http://' + HOST + '/nikeos/p/nike/' + tmpLang.toLowerCase() + '_' + tmpReg;
			var param = (tmpUrl.indexOf('?') > 0) ? '&' : '?';
			var redirect = tmpUrl + param + 'ref=' + ref;
			window.location = redirect
		} else {
			if (!tmpLang) console.log('tmpLang does not exist');
			if (!tmpReg) console.log('tmpReg does not exist');
			if (!tmpUrl) console.log('tmpUrl does not exist');
			check = true;
		}
	}
	console.log('check: ', check)
	if (check) {
		JQ('#check_cookies').remove();
		init();
	}
}

// need to add mynikehomepage cookie

/*

<!--
	var referrer = new String(parent.document.referrer);
	
	//alert("referrer="+parent.document.referrer);
	

	// see if there is a ref= param on the querystring.  only use it in the instance where the referrer in the header is coming from nike.com
	if ((referrer.length == 0 || referrer.indexOf("nike.com") > -1) && ref != "undefined") {
		referrer = unescape(ref);
	}
	
	if( referrer.length == 0 || referrer == "undefined")
	{
		referrer = "";
	}
	
	//alert("referrer="+referrer);
	
-->       

*/


