var LOG_SEPARATOR1 ="|";
var LOG_SEPARATOR2 ="__";
var LOG_SEPARATOR3 ="_";
      
var mTimeBIAS = "-330";
var mInstanceID ="0";
var mID = "0";
var mEventType = "4";        
var skey = "";

function setSessionCookieExpiry()
{
  currentSession = getCookieValue ("SessionExists");
  writePersistentCookie ("SessionExists", currentSession, "seconds", 30);
}
function getSessionRow()
{
    var sAnalystGuid = "";
    var sMacId = "";
    var sUserName = "";
    var sStartTimeHex = getCookieValue("SessionStartTime");
    sSessionEndTime = new Date().valueOf() ;
    sSessionEndTime = ConvertIntoHex(sSessionEndTime);   
    var sEndTimeHex = sSessionEndTime;
    
    var sLCIDDec = "";
    var sCountry = "";
    var sMode = "";
    var sRefID = "";
    var sSessionStatus = "";    
    var sPackageGuid = "pccheckuponline2";
    var sAction = "SYSTUNE_SESSION";
    var SSTK_REPORTING_LOGMARKER_custom   = "__";  
    
    var sUniqueSessionID = sswc_lg_getUniqueId();
    var arCustomSYSTUNE_SESSION = [
        sAction, // SYSTUNE_SESSION
        sAnalystGuid,              // analyst_guid
        sMacId,                    // macid
        sUserName,                 // username
        sStartTimeHex,             // start  (date as hex)
        sEndTimeHex,               // end    (date as hex)
        //sstk_rpt_CleanLoggingField(sRaGuid),                   // ra_guid
        sUniqueSessionID, //ra guid taken from the asp server pages
        sPackageGuid,              // MSI Package guid
        sLCIDDec,                  // Locale ID in Decimal
        sCountry,                  // Country name
        sMode,                     // Mode: one of {"scan", "tune"}
        sRefID,                    // Reference ID (Ticket, Install, Order, Etc)
        sSessionStatus             // Session Status (Aborted, Completed)
      ];

      var sCustomSYSTUNE_SESSION = arCustomSYSTUNE_SESSION.join(SSTK_REPORTING_LOGMARKER_custom);

      var logTime = new Date();                     
      var mTimeDate = logTime;   
      logTime = logTime.valueOf() ;
      logTime = ConvertIntoHex(logTime);  
      var sUniqueID = sUniqueSessionID;
      sKey ="";
    
      SessionID = "";
      var sSessionDataNew  = mID + LOG_SEPARATOR1 + mEventType + LOG_SEPARATOR1 + logTime + LOG_SEPARATOR1 + skey + LOG_SEPARATOR1 + sUniqueID + LOG_SEPARATOR2 + ipAddr + LOG_SEPARATOR2 + logTime + LOG_SEPARATOR2 + sCustomSYSTUNE_SESSION + mTimeBIAS + LOG_SEPARATOR1 + mTimeDate + LOG_SEPARATOR1 + mInstanceID;
    //  alert("sSessionDataNew:" + sSessionDataNew);
      return sSessionDataNew;
}
function ConvertIntoHex(cTime)
{

  var cTimeInEpoch = (cTime + 11644473600000)*10000; //in 100nanoseconds
  var cTime1601nsHex = "0" + cTimeInEpoch.toString(16);
  return cTime1601nsHex;
}


function sswc_lg_createUniqueID()
{
  deleteCookie('UsageLogs');
  deleteCookie("sUniqueSessionID");    
  deleteCookie("SessionStartTime");
  
  var HTTP_COOKIE_LOG = get_cookie("ASPSESSIONID");
  var logTime = new Date();
  logTime = logTime.valueOf();
  var sID = logTime + HTTP_COOKIE_LOG;
  writePersistentCookie("sUniqueSessionID", sID, "days", 30);
  
  var sSessionStartTime = new Date().valueOf() ;
  sSessionStartTime = ConvertIntoHex(sSessionStartTime);    
    writePersistentCookie("SessionStartTime", sSessionStartTime, "days", 30);  
  
}

function sswc_lg_getUniqueId(){
  var lsUniqueSessionID = getCookieValue("sUniqueSessionID");  
  if(lsUniqueSessionID  == false){
     lsUniqueSessionID   = "";    
    }
  return lsUniqueSessionID;
}
function SetLogCommonInfo()
{   
    
}
function LogUsageInfo(sAction, sFileName, sActionBtnClick, sPageStartTime)
{
    var sPageEndTime = new Date().valueOf() ;
    sPageEndTime = ConvertIntoHex(sPageEndTime);   
    
    var logTime = new Date();        
   
    var mTimeDate = logTime;               
    logTime = ConvertIntoHex(logTime.valueOf());   
    
    sUniqueID = sswc_lg_getUniqueId();

    sKey ="";
    
    var SessionID = "";
    
    if(sActionBtnClick == "")
        sDataNew  = mID + LOG_SEPARATOR1 + mEventType + LOG_SEPARATOR1 + logTime + LOG_SEPARATOR1 + skey + LOG_SEPARATOR1 + sUniqueID + LOG_SEPARATOR2 + ipAddr + LOG_SEPARATOR2 + logTime + LOG_SEPARATOR2 + sAction + LOG_SEPARATOR2 + sFileName + LOG_SEPARATOR2 + sPageStartTime + LOG_SEPARATOR2 + sPageEndTime + LOG_SEPARATOR1 +mTimeBIAS + LOG_SEPARATOR1 + mTimeDate + LOG_SEPARATOR1 + mInstanceID;
    else
        sDataNew  = mID + LOG_SEPARATOR1 + mEventType + LOG_SEPARATOR1 + logTime + LOG_SEPARATOR1 + skey + LOG_SEPARATOR1 + sUniqueID + LOG_SEPARATOR2 + ipAddr + LOG_SEPARATOR2 + logTime + LOG_SEPARATOR2 + sAction + LOG_SEPARATOR2 + sFileName + LOG_SEPARATOR3 + sActionBtnClick + LOG_SEPARATOR2 + sPageStartTime + LOG_SEPARATOR2 + sPageEndTime + LOG_SEPARATOR1 +mTimeBIAS + LOG_SEPARATOR1 + mTimeDate + LOG_SEPARATOR1 + mInstanceID;
    
    var sDataOld = getCookieValue("UsageLogs"); 
    if(!sDataOld)    
    sDataOld ="";    
    writePersistentCookie("UsageLogs", sDataOld + "\n" + sDataNew, "days", 30);     
  
}
//Get cookie routine by Shelley Powers 
function get_cookie(Name) {

  var search = Name + ""
  var returnvalue = "";
  if (document.cookie.length > 0) {
    offset = document.cookie.indexOf(search)
        
    // if cookie exists
    if (offset != -1) { 
      offset += search.length
      // set index of beginning of value
      end = document.cookie.indexOf(";", offset);
      // set index of end of cookie value
      if (end == -1) end = document.cookie.length;
      returnvalue=unescape(document.cookie.substring(offset, end))
      lenSearch = returnvalue.length;
      offSet = returnvalue.indexOf("=");
      returnvalue = returnvalue.substring(offSet+1,lenSearch);  
      
      }
   }
  return returnvalue;
}
function getRandomNo()
{
 return (((1+Math.random())*0x10000)|0).toString(16).substring(1) ;
}
 function SubmitToUri(sUri, sTransmitData) 
    { 
        var bReturn = false;
        if (sUri) {
            var iResponseCode = 0;
            var sResponseText = "";
            try {
              var oXMLHttp = new ActiveXObject("Microsoft.XMLHTTP");
              if (oXMLHttp) {
                oXMLHttp.open("POST", sUri, false);
                
                oXMLHttp.setRequestHeader("lastCached", new Date()); // Please don't cache me!
                oXMLHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

                oXMLHttp.send(sTransmitData);

                iResponseCode = oXMLHttp.status;                
                sResponseText = oXMLHttp.responseText; 
     
            }
        }
        catch (oExceptionXmlHttp) {   
     
    }
    finally {
      oXMLHttp = null;
      if (iResponseCode.toString().indexOf("2") == 0) { // OK Range
        bReturn = true;
      } else {
        //throw(new Error(-1, "Bad Response: " + iResponseCode));
      }
    }
  }
  
  return bReturn;
}

function writePersistentCookie (CookieName, CookieValue, periodType, offset) {

  var expireDate = new Date ();
  offset = offset / 1;
  
  var myPeriodType = periodType;
  switch (myPeriodType.toLowerCase()) {
    case "years": 
     var year = expireDate.getYear();     
     // Note some browsers give only the years since 1900, and some since 0.
     if (year < 1000) year = year + 1900;     
     expireDate.setYear(year + offset);
     break;
    case "months":
      expireDate.setMonth(expireDate.getMonth() + offset);
      break;
    case "days":
      expireDate.setDate(expireDate.getDate() + offset);
      break;
    case "hours":
      expireDate.setHours(expireDate.getHours() + offset);
      break;
    case "minutes":
      expireDate.setMinutes(expireDate.getMinutes() + offset);
      break;
    case "seconds":
      expireDate.setSeconds(expireDate.getSeconds() + offset);
      break;
    default:
      //alert ("Invalid periodType parameter for writePersistentCookie()");
      break;
  }
   document.cookie = escape(CookieName ) + "=" + escape(CookieValue) + "; expires=" + expireDate.toGMTString() + "; path=/";
} 
function getCookieValue (cookieName) {
  var exp = new RegExp (escape(cookieName) + "=([^;]+)");  
  if (exp.test (document.cookie + ";")) {
    exp.exec (document.cookie + ";");
    return unescape(RegExp.$1);
  }
  else return false;
}
function deleteCookie (cookieName) {

  if (getCookieValue (cookieName)) writePersistentCookie (cookieName,"Pending delete","years", -1);  
  return true;     
}

var oInst=null;
function ss_pvt_MinReqCheck()
{ 
    var bMinReq = ss_pvt_BrowserCheck(true);
    bMinReq  = ss_pvt_OSCheck() && bMinReq;
    bMinReq  = ss_pvt_resolutioncheck() && bMinReq;
    bMinReq  = ss_pvt_colordepth() && bMinReq;
	if(bMinReq)
		return true;
	else
		return false;
}
/* Checks the Browser version and name*/
function ss_pvt_BrowserCheck(bPCWeb)
{
	var sBrowserName = navigator.appName;
	var sBrowserVersion = 0;
	if (navigator.appVersion.indexOf("MSIE")!=-1)
	{
		temp=navigator.appVersion.split("MSIE");
		sBrowserVersion=parseFloat(temp[1]);
	}
	if(bPCWeb)
		MinVersion = "6";
	else
		MinVersion ="5.5";
	
	if(sBrowserName == "Microsoft Internet Explorer" && sBrowserVersion >=MinVersion)
		return true;
	else
	{
        document.getElementById('MinCheckItems').style.display = "block";
	    document.getElementById('Browser_Err').style.display = "block";
		return false;
	}
	
}

/* Checks the operating system info*/
function ss_pvt_OSCheck()
{
  if(!ss_pvt_BrowserCheck())
  {
    if(navigator.userAgent.indexOf("Windows NT 5.1") != -1 || navigator.userAgent.indexOf("Windows NT 6.0") != -1)
      return true;
    else
    {
      document.getElementById('MinCheckItems').style.display = "block";
	    document.getElementById('OS_Err').style.display = "block";
		  return false;
		}
  }
  else
  {   
	if(navigator.appVersion.indexOf("Windows NT 5.1") != -1 || navigator.appVersion.indexOf("Windows NT 6.0") != -1)
		return true;
	else
	{    
        document.getElementById('MinCheckItems').style.display = "block";
	    document.getElementById('OS_Err').style.display = "block";
		return false;
	}
}
}
/* Checks the screen resolution info*/
function ss_pvt_resolutioncheck()
{
	if(screen.height >= 768 && screen.width >= 1024)
		return true;
	else
	{    
        document.getElementById('MinCheckItems').style.display = "block";
	    document.getElementById('Resolution_Err').style.display = "block";
		return false;
	}
}
/* Checks the colour depth info*/
function ss_pvt_colordepth()
{   
	if(screen.colorDepth >= 8)
		return true;
	else
	{       
        document.getElementById('MinCheckItems').style.display = "block";
	    document.getElementById('ColorDepth_Err').style.display = "block";
		return false;
	}
}
function IsOTBInstalled()
{
	var oInst = new ActiveXObject("SPRT.External")
	if(oInst!=null)
	{
		OTBInstalled = oInst.QueryRegValue("HKLM", "Software\\Dell\\PCcheckup2", "Installed");
		PCInstallPath = oInst.QueryRegValue("HKLM", "Software\\Dell\\PCcheckup2", "InstallPath");   
    
		if(PCInstallPath!=null && PCInstallPath!="")
		{	
			OTBbcontFilePath = PCInstallPath + "\\bcont.exe";	
			fso = oInst.CreateInternalObject("filesystem");					

			OTBbcontExist = fso.FileExists(OTBbcontFilePath);
		}
		oInst = null;		
		if(OTBInstalled.toLowerCase() =="true" && OTBbcontExist)
			return true;
		else
			return false; //Change this later - Shanti
	}
}
function checkBeforeLaunchOTB()
{
  var oCnfctl = new ActiveXObject("SdcUser.TgConfCtl")
  if(oCnfctl!=null)
  {
    var oInst = new ActiveXObject("SPRT.External");		
    var DSCInstallPath = getDSCPath();
    var sUserName = oInst.ExpandSysMacro("%USER%");  		
    var sRegKey = "Software\\SupportSoft\\ProviderList\\DellSupportCenter\\gs_agent\\users\\" + sUserName +"\\ss_config\\firstrun";
  	
    var sFirstRunComplete = oInst.QueryRegValue("HKCU", sRegKey, "FirstRunCompleted");
    oInst = null;
    if(DSCInstallPath != null && DSCInstallPath != "")
    {
      if(sFirstRunComplete.toLowerCase() == "true")
      {
         bDSCOnly = false;
         var PCInstallPath = getPCCPath();         
         if(PCInstallPath!=null && PCInstallPath!="")
          return true;
         else
          return false;
      }
      else
      {        
        bDSCOnly = true;
        return true;
      }
    }
    else
      return false;
   }
   return false;
}
function getDSCPath()
{
  var oCnfctl = new ActiveXObject("SdcUser.TgConfCtl")
	if(oCnfctl!=null)
	{
    var oInst = new ActiveXObject("SPRT.External");		
		var DSCInstallPath = oInst.QueryRegValue("HKLM","Software\\SupportSoft\\ProviderList\\DellSupportCenter\\InstallPaths", "ProgramRoot");
    oInst = null;
		oCnfctl = null;
    return DSCInstallPath;
  }
  return "";
}
function getPCCPath()
{
  var oCnfctl = new ActiveXObject("SdcUser.TgConfCtl")
	if(oCnfctl!=null)
	{
    var oInst = new ActiveXObject("SPRT.External");		
		var PCInstallPath = oInst.QueryRegValue("HKLM", "Software\\Dell\\PCcheckup2", "InstallPath");			       
		oInst = null;
		oCnfctl = null;		       
    return PCInstallPath;
  }
  return "";
}
function RunInstalledScan(bDSCMainWindow)
{
  try
  {
    sAction = "SYSTUNE_PAGEVISITS";
    sPageStartTime = new Date().valueOf() ;
    sPageStartTime = ConvertIntoHex(sPageStartTime); 
    sActionBtnClick = "btn_RunInstalledScan";
    LogUsageInfo(sAction, sFileName,sActionBtnClick,sPageStartTime); 
    bUnloadEvt = true;
      
    if(!bDSCOnly)  
    {
        document.getElementById('sstk_btt_intro_scan_pcco').disabled = "true";
        document.getElementById('sstk_btt_intro_scan_pcco').style.color = "Gray";   
    }   
		
    var oCnfctl = new ActiveXObject("SdcUser.TgConfCtl");
    if(oCnfctl!=null)
    {
      var oInst = new ActiveXObject("SPRT.External");		
      var DSCPath = getDSCPath();
		
      if(DSCPath != "")
      {
        var PCCPath = getPCCPath();        
        if(PCCPath != "")
        {	
          if(!bDSCOnly) //Check if first run complete for the installed dsc
          {
            OTBDSCFilePath = DSCPath + "gs_agent\\dsc.exe";
            OTBDSCFileParams = '/p \"dellsupportcenter\" /entry=\"Tray Icon\" /snapins:starting_snapin snapin_content_template /content_guid 34553cac-81c7-4e48-adcc-519f8c87fe16';	
		
  	    oCnfctl.RunCmd(OTBDSCFilePath, OTBDSCFileParams, false, false);			    
            setTimeout("launchPCCheckup();", 5000); //open pc check up after 5 seconds             
          }
          else //Launch only DSC window
          {
            OTBDSCFilePath = DSCPath + "gs_agent\\dsc.exe";
            OTBDSCFileParams = '/p \"dellsupportcenter\" /entry=\"Tray Icon\" /snapins:starting_snapin snapin_content_template /content_guid 34553cac-81c7-4e48-adcc-519f8c87fe16';	
            if(bDSCMainWindow)
            {
              OTBDSCFilePath = DSCPath + "gs_agent\\dsc.exe";
              OTBDSCFileParams = '/p \"dellsupportcenter\"';	            
            }
	    oCnfctl.RunCmd(OTBDSCFilePath, OTBDSCFileParams, false, false);		
          }       
	}
      }
    }
  }
  catch(err)
  {
    document.getElementById('sstk_btt_intro_scan_pcco').style.display = "inline";	
  }
}
function launchPCCheckup()
{
  var oCnfctl = new ActiveXObject("SdcUser.TgConfCtl");	
  var PCCPath = getPCCPath();
  OTBbcontFilePath = PCCPath + "\\bcont.exe";
  oCnfctl.RunCmd(OTBbcontFilePath, "", false, false);
}
function DownloadDSCClient()
{
	try
	{
        sAction = "SYSTUNE_PAGEVISITS";
        sPageStartTime = new Date().valueOf() ;
        sPageStartTime = ConvertIntoHex(sPageStartTime);      
        sActionBtnClick = "btn_RunInstalledScan";
        LogUsageInfo(sAction, sFileName,sActionBtnClick,sPageStartTime); 
        bUnloadEvt = true;
        
        document.getElementById('sstk_btt_welcome_pccheckup').disabled = "true";
        document.getElementById('sstk_btt_welcome_pccheckup').style.color = "Gray";        
        window.location.href = "http://downloads.dellsupportcenter.com.edgesuite.net/dell_support_center.exe";
	}
	catch(err)
	{
        document.getElementById('sstk_btt_welcome_pccheckup').style.disabled = "false"
	}
}
function IsEligibleForInstall()
{
    try
    {
        oInst = new ActiveXObject("SPRT.External")
    }
    catch(err)
    {
        oInst = null;
    }    
	if(ss_pvt_OSCheck() && ss_pvt_resolutioncheck() && ss_pvt_BrowserCheck(false) && ss_pvt_colordepth() && ss_pvt_DiskSpaceCheck() && ss_pvt_ProcessorCheck() && ss_pvt_RAMCheck() && ss_pvt_DellModelCheck())
	{
	  oInst = null;
		return true; 
	}
	else
	{
	  oInst = null;
		return false;
}
}
function ss_pvt_DiskSpaceCheck()
{
	if(oInst!=null)
	{
        var diskSpace = oInst.QueryRegValue("HKLM", "Software\\Dell\\PCCheckupOnline", "DiskSpace");
		    	
		diskSpace = diskSpace/(1024*1024); //Convert bytes into MB
		
        if(diskSpace >= 150)
        return true;
    }
    return false;
}
function ss_pvt_ProcessorCheck()
{
	if(oInst!=null)
	{
    	var ProcessorClockSpeed  = oInst.QueryRegValue("HKLM", "Software\\Dell\\PCCheckupOnline", "ProcessorClockSpeed");
        if(ProcessorClockSpeed  >= 300)
        return true;
    }
    return false;
}
function ss_pvt_RAMCheck()
{
	if(oInst!=null)
	{
        var availableRAM = oInst.QueryRegValue("HKLM", "Software\\Dell\\PCCheckupOnline", "RAM");
    	availableRAM = availableRAM/1024; //Convert KB into MB
        if(availableRAM >= 64)
        return true;
    }
    return false;
}
// ss_pvt_DellModelCheck() ******************************************************
// return true if the current Machine is a model that is permitted to run PCC OTB.
// ******************************************************************************
function ss_pvt_DellModelCheck()
{ 
  var modelList = supportedModels || "*"; // supportedModels is a global variable set in the ctss_welcome.asp
  if(oInst!=null) 
    {
    isdellModel = oInst.QueryRegValue("HKLM", "Software\\Dell\\PCCheckupOnline", "Dell");

    if(isdellModel.toLowerCase() == "true") //Manufacturer is Dell
      { 
      userModel = oInst.QueryRegValue("HKLM", "Software\\Dell\\PCCheckupOnline", "DellModel");            	
      userModel = userModel.toLowerCase();
      modelList = modelList.toLowerCase();
      if(modelList == "*")
        return true;
      modelList = modelList.split(",");

      for (var i=0;i<modelList.length;i++) {
        if( userModel.indexOf(modelList[i]) !=-1 ) {//Current Machine matches an item from Model List
          return false; //Model is NOT permitted to run PCC OTB
          }
        }
      }
    } 
  return true;
}

var newwindow = "";
function openTellMeMore(filename)
{
    if(filename == "" || filename ==undefined)
      sFileName = "ctss_welcome.asp"
    else
      sFileName = "ss_shell.asp"
    sAction = "SYSTUNE_PAGEVISITS";
    sPageStartTime = new Date().valueOf() ;
    sPageStartTime = ConvertIntoHex(sPageStartTime); 
    sActionBtnClick = "tell_me_more.asp";
    LogUsageInfo(sAction, sFileName,sActionBtnClick,sPageStartTime);     
    
   /* url = "/sswebcheck/gs_ctss/custom/snapins/TellMeMore/tell_me_more.asp";
    
    if (!newwindow.closed && newwindow.location) {
		newwindow.location.href = url;
	}
	else {
	
        newwindow=window.open(url);
		if (!newwindow.opener) newwindow.opener = self;
	}
	if (window.focus) {newwindow.focus()}*/
	//return false;
	//window.open("/sswebcheck/gs_ctss/custom/snapins/TellMeMore/tell_me_more.asp");
}
function openDSCSite()
{
    sAction = "SYSTUNE_PAGEVISITS";
    sPageStartTime = new Date().valueOf() ;
    sPageStartTime = ConvertIntoHex(sPageStartTime); 
    sActionBtnClick = "ClickDELLDSCSite";
    LogUsageInfo(sAction, sFileName,sActionBtnClick,sPageStartTime);     
    
    url = "http://www.dell.com/dellsupportcenter";
    if (!newwindow.closed && newwindow.location) {
		newwindow.location.href = url;
	}
	else {
        newwindow=window.open(url);
		if (!newwindow.opener) newwindow.opener = self;
	}
	if (window.focus) {newwindow.focus()}
	return false;
}
function ConfCtlLoaded()
{  
  try
  {  // Not IE4.0 compliant
    var cnfctl = new ActiveXObject("SdcUser.TgConfCtl")
    return (cnfctl == null) ? false : true;
  }
  catch(e)
  {
    // Do nothing, return false after exiting catch
  }
  return false;
}
function isFirstRunComplete()
{ 
    var oInst=null;
    if(ConfCtlLoaded()){
    try{
      oInst = new ActiveXObject("SPRT.External");
      }
    catch(e){
      oInst=null;
      }
  }
	if(oInst!=null)
	{
	  try
	  {
	    firstrun = oInst.QueryRegValue("HKLM", "Software\\Dell\\pccheckuponline", "installcomplete");
	  }
	  catch(err)
	  {return false;}	  
	}
	else
		return false;
	oInst = null;
	if (firstrun.toLowerCase() == "true")
		return true;
    else
		return false;
}
/* Code to read the language code and country code from the XML*/
/*This will automatically populate the lang drop down by getting the lang list from the xml*/
function ReadFromXML()
{
  try{
    var xObj = LoadLangXML("locale_identifier.xml");
    var nLength = xObj.childNodes.length;
    var i, j, k;
    var optText = "";
    var langError = "";
    if(nLength > 0)
    {
      var xObj1 = LoadLangXML("/sswebcheck/gs_ctss/common/skins/dellsystemcheck_skin/lang/"+ previousLangSelect + "/ctss_welcome.xml");  
      for(i=0;i<=nLength-1;i++)
      {
       var lcode = xObj.childNodes(i).getAttribute("lcode");      
       document.getElementById('ddlSupportedLangs').options[i] = new Option('',lcode);
       document.getElementById('ddlSupportedLangs').options[i].id = 'ddlSupportedLangs_' + lcode ;
       document.getElementById('ddlSupportedLangs').options[i].name = 'ddlSupportedLangs_' + lcode ;       
     
       var nLength1 = xObj1.childNodes.length;
       if(nLength1 > 0)
       {
        for(j=0;j<=nLength1-1;j++)
        {
          var sId = xObj1.childNodes(j).getAttribute("id");
          var optname = 'ddlSupportedLangs_' + lcode;
          if (sId == optname)
          {
            optText = xObj1.childNodes(j).text; //Get the lang drop down text from ctss_welcome.xml
            break;
         }
        } 
        for(k=0;k<=nLength1-1;k++)
        {
          var sId = xObj1.childNodes(k).getAttribute("id");          
          if (sId == "sstk_lang_error")
          {
            langError = xObj1.childNodes(k).text; //Get the lang drop down text from ctss_welcome.xml
            break;
          }
         }
        } 
        document.getElementById('ddlSupportedLangs').options[i].innerHTML = optText;
        document.getElementById('sstk_lang_error').innerHTML = langError;
      }
    }    
  }
  catch(e)
  {
  }
  finally
  {
   xmlDoc = null;
   xObj = null;
   xObj1 = null;
  }
}

var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");  
function LoadLangXML(oXmlFile)
{  
  xmlDoc.async="false"; 
  xmlDoc.onreadystatechange=verify; 
  xmlDoc.load(oXmlFile); 
  var xmlObj=xmlDoc.documentElement; 
  return xmlObj;
}
function verify() 
{ 
 if (xmlDoc.readyState != 4) 
 { 
   return false; 
 } 
}

function sswc_getRegionalLanguage() {
  var regLang = sswc_getRegionalInfo("language");
  // if it is required to return the languageode as below.
  /* if("zh-cn" == regLang)
	    return "zhcn";
	if("zh-tw" == regLang)
	    return "zhtw"; */
      
   if("zh-cn" == regLang || "zh-tw" == regLang)
	    return "zh";
	      
  return regLang;    
}

function sswc_getRegionalCounrty() {
  var regCon = sswc_getRegionalInfo("country");
  
  if("zh-cn" == regCon)
	  return "cn";
	if("zh-tw" == regCon)
	  return "tw";
    
  return regCon;   
}

function sswc_getRegionalInfo(langOrCon){
 
  var userlanguagefullstr = navigator.userLanguage;

  if(userlanguagefullstr == "zh-cn" || userlanguagefullstr =="zh-tw")
    return userlanguagefullstr;
  
  var userlanguagearr = userlanguagefullstr.split("-");
  
  if("language" == langOrCon)
   return userlanguagearr[0];		
  else if("country" == langOrCon)	
   return userlanguagearr[1];
  
}

function sswc_ParseURLMacros(sswc_EulaString) {
  try {
   var sswc_TempURL = sswc_EulaString;
   var resultURL;
   if(sswc_EulaString.indexOf("%OS_LANGUAGE%") != -1) {
     var sswc_TempURL = sswc_EulaString.replace(/\%OS_LANGUAGE\%/gi , sswc_getRegionalLanguage());
   }
   resultURL = sswc_TempURL;
   if(sswc_EulaString.indexOf("%OS_COUNTRY%") != -1) {
     resultURL = sswc_TempURL.replace(/\%OS_COUNTRY\%/gi , sswc_getRegionalCounrty());
   }
   return resultURL;
  } catch (e) {
   return sswc_EulaString;
  }  
}