
var localeCurrentSelectedIndex = 0;
var localeCurrentSelectedIndexMax = 0;

var fullLocalesForTracking = new Array();

/*******************/
/* Locale selection methods */
/*******************/

function selectLocaleZone(value)
{
	var url = "index?page=localeCountrySelect&zone="+URLEncode(value);
	var targetDiv = document.getElementById("localeCountrySelect");
	$.get(url, function(data){
		targetDiv.innerHTML = data;});
	selectLocaleCountry("");
	
}

function selectLocaleCountry(value)
{
	var url = "index?page=localeLanguageSelect&country="+URLEncode(value);
	var targetDiv = document.getElementById("localeLanguageSelect");
	$.get(url, function(data){
		targetDiv.innerHTML = data;
		
		var autoselectLocale = $("#autoselectLanguage").html();
		if(autoselectLocale != null)
		{
			selectLocale(autoselectLocale);
		}
	});
	
}

function selectLocale(value)
{
	if(value != "")
	{
		var lang = value;
		if(value.indexOf("_") > 0)
		{
			lang = value.substring(0, value.indexOf("_")).toLowerCase();
			for(var i = 0; i <  fullLocalesForTracking.length; i++ )
			{
				if( fullLocalesForTracking[i] == value )
				{
					lang +=  value.substring(value.indexOf("_"));
				}
			}
		}
		document.cntry_submit.elements['locale'].value = lang;
		document.cntry_submit.elements['userlocale'].value = value;
		document.cntry_submit.submit();
	}
}


/*************************/
/* pulldown functions for locale page*/
/*************************/

var localePulldownOptions = new Array();

function hideLocaleSelectorPulldown()
{
	localeCurrentSelectedIndex = 0;
	var targetDiv = document.getElementById("localeSelectPulldown");
	targetDiv.style.display = "none";
	if(isIE()){
		var blockingIframe = document.getElementById("localeSelectPulldownblocker");
		blockingIframe.style.display = "none";
	}
}

function updateLocalePulldownOptionsList(item, keyEvent)
{
	var keynumber;
	var keyPressed = "";
	var startingHTML = "<tr><td onMouseOver=\"localeCurrentSelectedIndex=";
	var secondHTML = ";setPulldownSelectedIndex(";
	var thirdHTML = ", 'localeSelectorPulldownItem', 'localeSelectorPulldownItemOver', 'localeSelectorPulldownItemOff', document.cntry_search.elements['language'], document.getElementById('localeSelectPulldown'));\" class=\"localeSelectorPulldownItemOff\" id=\"localeSelectorPulldownItem";
	
	var selectorClick = "\" onClick=\"localeSelectorClick(this.getElementsByTagName('div')[0].innerHTML);\">";
	var endingHTML = "</div></td></tr>";
	
	
	if(window.event) // IE
	{
		keynumber = keyEvent.keyCode;
	}
	else if(keyEvent.which) // Netscape/Firefox/Opera
	{
		keynumber = keyEvent.which;
	}
	if((keynumber > 31) && (keynumber < 128))
	{
		if(keynumber == 38){
			if(localeCurrentSelectedIndex > 0){
				setPulldownSelectedIndex( localeCurrentSelectedIndex-1, localeCurrentSelectedIndexMax, "localeSelectorPulldownItem", "localeSelectorPulldownItemOver", "localeSelectorPulldownItemOff", document.cntry_search.elements['language'], document.getElementById('localeSelectPulldown'));
				localeCurrentSelectedIndex--;
			}
			return;
		}else if(keynumber == 40){
			if(localeCurrentSelectedIndex < localeCurrentSelectedIndexMax){
				setPulldownSelectedIndex( localeCurrentSelectedIndex+1,localeCurrentSelectedIndexMax, "localeSelectorPulldownItem", "localeSelectorPulldownItemOver", "localeSelectorPulldownItemOff", document.cntry_search.elements['language'], document.getElementById('localeSelectPulldown'));
				localeCurrentSelectedIndex++;
			}
			return;
		}else{
			keyPressed = String.fromCharCode(keynumber);
			localeCurrentSelectedIndex = 0;
		}
	}else if(keynumber == 13)
	{
		hideLocaleSelectorPulldown();
		return;
	}
	
	var baseDiv = document.getElementById("localeSelectorPulldownAnchor");
	var value = item.value;
	if(value.length > 1)
	{
		

		var url = "index?page=localePulldownSelector&keyin="+URLEncode(value);
		var targetDiv = document.getElementById("localeSelectPulldown");
		var blockingIframe = document.getElementById("localeSelectPulldownblocker");

		var myTop = baseDiv.offsetTop + baseDiv.offsetHeight -4;
		var myLeft = baseDiv.offsetLeft;

		if( isIE())
		{
			myTop += 0;
			myLeft += 0;
		}

		
		myTop += getAbsoluteTop(baseDiv, false);
		myLeft += getAbsoluteLeft(baseDiv, false);
		
	
		targetDiv.style.top = myTop+"px";
		targetDiv.style.left = myLeft+"px";
		
		/*
		 
		 $.get(url, function(data){
			
			if(data.indexOf("NOSUGGESTIONS") > -1)
			{
				targetDiv.style.display = "none";
			}else
			{
				targetDiv.style.display = "block";
				targetDiv.innerHTML = data;
			}
		});
		*/

		var divData = "<table border=\"0\" style=\"margin-left: 1px;vertical-align: bottom;\" cellpadding=\"0\" cellspacing=\"0\"  width=\"99%\" >";
		var foundValue = false;
		value = value.toUpperCase();
		var count = 1;
		for (i in localePulldownOptions) { 
			if(localePulldownOptions[i].toUpperCase().indexOf(value) >= 0)
			{
				foundValue = true;
				divData += startingHTML;
				divData += count;
				divData += secondHTML;
				divData += count;
				divData += ",";
				divData += (count+1);
				divData += thirdHTML;
				divData += count;
				divData += selectorClick;
				divData += localePulldownOptions[i];
				divData += "<div style=\"display: none;\">";
				divData += localePulldownOptions[i];
				divData += endingHTML;	
				count++;
			}

		}
		targetDiv.innerHTML = divData + "</table>";
	 
		localeCurrentSelectedIndexMax = count;
		if(!foundValue)
		{
			hideLocaleSelectorPulldown();			
		}
		else
		{
			if(isIE()){	
				blockingIframe.style.display = "block"; 
				blockingIframe.style.width = targetDiv.offsetWidth;
				blockingIframe.style.height = targetDiv.offsetHeight;
				blockingIframe.style.top = targetDiv.style.top;
				blockingIframe.style.left = targetDiv.style.left;
				blockingIframe.style.zIndex = targetDiv.style.zIndex +1; 
				targetDiv.style.display = "block"; 
				blockingIframe.style.display = "block"; 
				blockingIframe.style.width = targetDiv.offsetWidth;
				blockingIframe.style.height = targetDiv.offsetHeight;
				blockingIframe.style.top = targetDiv.style.top;
				blockingIframe.style.left = targetDiv.style.left;
				blockingIframe.style.zIndex = targetDiv.style.zIndex +1; 
			}else{
				targetDiv.style.width = "200px";
				targetDiv.style.display = "block";
			}
		}
	}
	else
	{
		hideLocaleSelectorPulldown();
	}
}

function localeSelectorClick(label)
{
	document.cntry_search.elements['language'].value = label;
	hideLocaleSelectorPulldown();
}

function blurLocaleSelectPulldown()
{
	setTimeout("hideLocaleSelectorPulldown();",500);

}


function validateLocaleSelect()
{
	var keyin = document.cntry_search.elements['language'].value;

	var code = "";
	var url = "index?page=localePulldownSelectorValidate&keyin="+URLEncode(keyin);

	$.get(url, function(data){
		if(data.indexOf('VALID') > -1)
		{
			code = data.substring( data.indexOf('VALID')+5 );
			var lcode = stringTrim(code);
			var lang = lcode;
			if(lang.indexOf("_") > 0)
			{
				lang = lang.substring(0, lang.indexOf("_")).toLowerCase();

				for(var i = 0; i <  fullLocalesForTracking.length; i++ )
				{
					if( fullLocalesForTracking[i] == lcode )
					{
						lang +=  lcode.substring(lcode.indexOf("_"));
					}
				}
			}

			document.cntry_submit.elements['userlocale'].value = lcode;
			document.cntry_submit.elements['locale'].value = lang;
			document.cntry_submit.submit();
		}else
		{
			var targetDiv = document.getElementById("localeSelectPulldownWarning");
			targetDiv.style.display = "block";
			targetDiv = document.getElementById("localeSelectPulldownCodeWarning");
			targetDiv.style.display = "block";
			targetDiv.innerHTML = product;
		}
	});
	
}
