// it might be a good idea to re-write these to one function call instead of two
//  =- -   something like:  SetLanguante(page, language); 
// that way the AJAX call can be one instead of two.

function getlanguage(){
  //alert('getting language');
  lang = "EN";
  if (retrieveCookie("prefered_lang")!=null) {
    lang = retrieveCookie("prefered_lang");
  }
	//alert("language set to " + lang);
}

function switchToEnglish(page){
  setCookie('prefered_lang','EN');
  Element.hide('englishTab');
  Element.show('frenchTab');

  XLATE('global_EN',tags);
  loadText('xml/text.xml',page+'EN',tags)
	//alert(inventoryDisplay);
  //$('logo').src = "images/mooresLogoEN.gif";
  switchGraphicLocale( "FR", "EN" ); 
	if (inventoryDisplay) xlateInventory();
}

function switchToFrench(page){
  setCookie('prefered_lang','FR');
  Element.show('englishTab');
  Element.hide('frenchTab');
	
	XLATE('global_FR', tags);
	loadText('xml/text.xml',page+'FR',tags)
	//alert(inventoryDisplay);
  //$('logo').src = "images/mooresLogoFR.gif";
  switchGraphicLocale( "EN", "FR" ); 
	if (inventoryDisplay) xlateInventory();
}

function switchGraphicLocale( strOld, strNew )
{
		var rex = new RegExp(strOld, "g" );
		var lg = $$(".localized_graphic");
		var ilen = lg.length;
		for ( var i = 0; i < ilen; i++ )
		{
			var strSrc = lg[i].src;
			strSrc = strSrc.replace(rex, strNew );
			lg[i].src = strSrc;
		//	  alert("strSrc=" + strSrc );
		}
		
		lg = $$(".localized_graphic_bg");
		ilen = lg.length;
		for ( i = 0; i < ilen; i++ )
		{
			var strBG = lg[i].getStyle('background-image');
			strBG = strBG.replace(rex, strNew );
			lg[i].setStyle({backgroundImage: strBG});
		}
}

function xlateInventory(){
	 getlanguage();
	 //if($('printShare')) $('printShare').innerHTML = $('printShareTemplate').innerHTML ;
   inventoryData = preLoadXML("xml/inventory.xml", "onXMLPreloadComplete");
	 XlatedInventory = true;
	 if($('pagination')) $('pagination').innerHTML = "";
}

function setPageLanguage(page, thislang){
    //alert("setting to " + lang);
	  //alert(page + " :" + thislang);
    if(thislang=="EN") {
       switchToEnglish(page)
    }else{
       switchToFrench(page)
    }				
		// if (inventoryDisplay) fillInListPage(inventoryData.responseXML,'<%= request.getParameter("category") %>', 1,8);		
}

function translatePage(){
// now all the tags are there, translate the page
  tags = new Array();
	//alert(page);
  for (i=0; i<$$('span.XLATE').length; i++){  
	   tags.push($$('span.XLATE')[i].id);
  }
  // 'lang' comes from getlanguage function in std_head.jsp 
  //  alert(tags); //alert(lang);  
  setPageLanguage(page, lang);
}

function XLATE(page_lang, tags){
	 var tlabel0 = new Array();
	 var tlabel1 = new Array();
			 
	 //page_lang = page+"_"+lang ;
	 //alert(page_lang);
	 //alert(tags);
	 
	  //xmlobject = (new DOMParser()).parseFromString(GlobalXMLData, "text/xml");
	 
try //Internet Explorer
  {
  xmlobject=new ActiveXObject("Microsoft.XMLDOM");
  }
catch(e)
  {
  try //Firefox, Mozilla, Opera, etc.
    {
    xmlobject=document.implementation.createDocument("","",null);
		xmlobject = (new DOMParser()).parseFromString(GlobalXMLData, "text/xml");
    }
  catch(e) {alert(e.message)}
  }
try 
  {
  xmlobject.async=false;
  xmlobject.loadXML(GlobalXMLData);
  //document.write("xmlDoc is loaded, ready for use");
  }
catch(e) {/* alert(e.message)  */}	 
	  
	 
	 var xmlTagSet = xmlobject.getElementsByTagName(page_lang);
   //alert(xmlTagSet.length);
	 for(i=0; i<xmlTagSet.length; i++) {
			for(j=0; j<tags.length; j++){		
				  //alert(xmlTagSet[i].attributes.getNamedItem("phr").value);   
					//alert(xmlTagSet[i].firstChild.data);   
					//alert(tags[j]);   
					if(xmlTagSet[i].attributes.getNamedItem("phr").value==tags[j]){
				     tlabel0.push(xmlTagSet[i].attributes.getNamedItem("phr").value);
					   tlabel1.push(xmlTagSet[i].firstChild.data);							 
							 // we are done  then write the text into the page.
						 if(tlabel0.length==tags.length) {
						   //alert(tlabel1);
							  //writeInText(tlabel0,tlabel1);	
							}						 
				  }		 		 
			}		 
			//writeInText(tlabel0,tlabel1);	  
	 }
	 writeInText(tlabel0,tlabel1);	 
}
//  call necessary init functions 

// test function to get the system Languange
function getSysLang() {
    var testlang;
    if (typeof navigator.userLanguage != "undefined") {
        testlang = navigator.userLanguage.toUpperCase();
    } else if (typeof navigator.language != "undefined") {
        testlang = navigator.language.toUpperCase();
    }
		alert(testlang)
    //return (lang && lang.indexOf(type.toUpperCase()) == 0)
}

//  in closing
getlanguage();
