// selected language array
// the user should call set_language to ensure appropriate language array is set
var kLanguage = null;
var strTextServiceURL = "http://localhost/LocalizationService/";

function GetServiceURL()
{
    var url = "";
    if (location.host.indexOf("localhost:") >= 0)
    {
        url = strTextServiceURL + "Default.aspx";
    }
    else
    {
        url = location.protocol + "//" + location.host + "/LocalizationService/Default.aspx";
    }
    return url;
}

function GetKeyValue(key)
{
	var valueStr = "";
	
	if (kLanguage != null)
	{
	    for (i = 0; i < kLanguage.length; i++)
	    {
		    if (kLanguage[i][0] == key)
		    {
			    valueStr = kLanguage[i][1];	
			    break;
		    }
	    }
	}
	return valueStr;
}

// generate text entries from JS array	
//function GenerateText(key)
//{
//	var valueStr = GetKeyValue(key);
//   	if (valueStr.length > 0) document.write(valueStr);
//}

//function GenerateKeyText(key)
//{
//	var valueStr = GetKeyValue(key);
//	if (valueStr.length == 0)
//	    valueStr = key;
//   	document.write(valueStr);
//}

//----------------------------------------------------------------------
// loadLibrary()
//
// Date: 2005-10-10
// Author: Deirdra Hendricks
//
// Functionality:
//			Grabs the installer language from global VAR langID and inserts
//			it into the file name of the JS file to use for text strings.
//			Appends a child SCRIPT element to the HEAD element.
//
//-----------------------------------------------------------------------
function loadLibrary(siteKey, setKey, langKey) 
{
    try
    {
        if (kLanguage == null)
        {
            var strUrl = GetServiceURL() + "?site=" + escape(siteKey) + "\&set=" + setKey + "\&lang=" + langKey  + "&" + (new Date()).getTime();
            loadXMLDocSync(strUrl);
        
            if (req && req.status == 200)
            {
	            var xmlDoc=req.responseXML;
                var xmlRoot = xmlDoc.documentElement;
                var xmlNodes = xmlRoot.childNodes;
                var keyCount = xmlNodes.length;
                var iRecords = 0;
            
                kLanguage = new Array();
            
                for (i = 0; i < keyCount; i++)
                {
		            var xmlNode = xmlNodes[i];
		            if (IsElement(xmlNode) &&  xmlNode.nodeName == "RECORD")
		            {
		                var keyname = getNodeText(xmlNode.childNodes[0]);
		                var keyvalue = getNodeText(xmlNode.childNodes[1]);
		                kLanguage[iRecords] = new Array(keyname, keyvalue);
		                iRecords++;
		            }
                }
            }   
            else
            {
                var error = "no data received. url = " + strUrl;
                throw error;
            }
        }
        populatePage();	
        
    }
    catch (e)
    {
    }
}

function populatePage()
{
   if (kLanguage != null)
    {
	    for (i = 0; i < kLanguage.length; i++)
	    {
	        var strKey = kLanguage[i][0];
	        var obj = document.getElementById(strKey);
	        if (obj != null) 
	        {
	            var strValue = kLanguage[i][1];
	            try
	            {
    	            if (obj.tagName != "INPUT")
		                    obj.innerHTML = strValue;
		            else if (obj.parentElement.tagName == "TD")
		            {
		                    var childrenList = obj.parentElement.children;
		                    for (j = 0; j < childrenList.length; j++)
		                    {
		                        if (childrenList[j].tagName == "LABEL")
		                            childrenList[j].innerHTML = strValue;
	                        }
		            }
		            else		            
		                obj.innerText = strValue;
	            }
	            catch(e)
	            {
	                
	            }
	            
	        }
	    }        
    }
}

function getMarketing(siteKey, tlaKey, langKey)
{
    var strOutput = "";

    try
    {
        var strUrl = GetServiceURL() + "?site=" + escape(siteKey) + "\&set=" + tlaKey + "\&lang=" + langKey + "&" + (new Date()).getTime();
        loadXMLDocSync(strUrl);
        
        if (req && req.status == 200)
        {
	        var xmlDoc=req.responseXML;
            var xmlRoot = xmlDoc.documentElement;
            var xmlNodes = xmlRoot.childNodes;
            var keyCount = xmlNodes.length;
            var iRecords = 0;
                        
            for (i = 0; i < keyCount; i++)
            {
		        var xmlNode = xmlNodes[i];
		        if (IsElement(xmlNode) && xmlNode.nodeName == "RECORD")
		        {
    		        var nodeText = getNodeText(xmlNode.childNodes[1]);
		            if (nodeText != null)
		                strOutput += getNodeText(nodeText) + "<br>";
		        }
            }
        }
        else
        {
            var error = "no data received. url = " + strUrl;
            throw error;
        
        }
        
    }
    catch (e)
    {
    }

    return strOutput;

}

function new_window(URL) 
{
	var new_window = "scrollbars,resizable";
	OpenWindow = window.open(URL, "remote", new_window);
}
//----------------------------------------------------------------------
//
// Date: 2007-12-06
// Author: Lingfei Shi 
// Email: lingfei_shi@sonic.com
//
// Functionality:
//			For implementing new styling requirements on Registration solution, adding the following six methods to validate the parameter
//
// Parameters to Pass:
//		   	Control: the id of the specific control
//          Validator: the id of the specific validator control
//          validCSS: the CSS for the control,when it is valid
//          errorCSS: the CSS for the control, when it is invalid      
//          requireField: the id of RequireFieldValidator validating control
//          regularExpre: the id of RegularExpressionValidator validating control
//          compare: the id of CompareValidator validating control
//
//-----------------------------------------------------------------------
function isObject(obj)
{
    var isValid = true;
    if ((obj == null) || (obj == "undefined"))
    {
        isValid = false;
    }            
    return isValid;
}	
function DoRequireFieldValidator(Control, Validator, validCSS, errorCSS)
{    
    if(isObject(Control) && isObject(Validator))
    {
        Control.className = validCSS;
        if(!RequiredFieldValidatorEvaluateIsValid(Validator))
        {
            Control.className = errorCSS; 
        } 
    }         
}
function DoCompareValidator(Control, Validator, validCSS, errorCSS)
{    
    if(isObject(Control) && isObject(Validator))
    {
        Control.className = validCSS;
        if(!CompareValidatorEvaluateIsValid(Validator))
        {
            Control.className = errorCSS; 
        } 
    }           
}
function DoRegularExpressionValidator(Control, Validator, validCSS, errorCSS)
{
    if(isObject(Control) && isObject(Validator))
    {
        Control.className = validCSS;
        if(!RegularExpressionValidatorEvaluateIsValid(Validator))
        {
            Control.className = errorCSS; 
        } 
    }      
}
function DoRequireFieldAndRegularExpressionValidator(Control,requireField,regularExpre, validCSS, errorCSS)
{
    if (isObject(Control) && isObject(requireField) && isObject(regularExpre))
    {
        Control.className = validCSS;
        if (!RequiredFieldValidatorEvaluateIsValid(requireField) || !RegularExpressionValidatorEvaluateIsValid(regularExpre))
        {
            Control.className = errorCSS; 
        }
    }    
}
function DoRequireFieldAndCompareValidator(Control,requireField,compare, validCSS, errorCSS)
{
    if(isObject(Control) && isObject(requireField) && isObject(compare))
    {
        Control.className = validCSS;
        if(!RequiredFieldValidatorEvaluateIsValid(requireField) || !CompareValidatorEvaluateIsValid(compare))
        {
            Control.className = errorCSS; 
        } 
    }    
}
