﻿String.prototype.stripHTML = function()
{
    // What a tag looks like
    var matchTag = /<(?:.|\s)*?>/g;
    // Replace the tag
    return this.replace(matchTag, "");
};

String.prototype.trim = function () {
    return this.replace(/^\s*/, "").replace(/\s*$/, "");
}

String.prototype.ReplaceAll = function(stringToFind,stringToReplace){
    var temp = this;
    var index = temp.indexOf(stringToFind);
    while(index != -1){
            temp = temp.replace(stringToFind,stringToReplace);
            index = temp.indexOf(stringToFind);
        }
        return temp;
    }


//var strCurrLang = "en-hi";
google.load("language", "1");

function fnTranslate(strTransText, strTransField, strTransFLang, strTransTLang, bFlag, isInputControl)
{
    if(strTransText.length > 0)
    {
        if(isInputControl)
        {
            google.language.translate(strTransText, strTransFLang, strTransTLang, function(result) 
            {
                if(document.getElementById(strTransField))
                    document.getElementById(strTransField).value = result.translation ;
            });
        }
        else
        {
            if(bFlag)
            {
                google.language.translate(strTransText, strTransFLang, strTransTLang, function(result) 
                {   
                    if(document.getElementById(strTransField))
                        document.getElementById(strTransField).innerHTML = result.translation ;
                });
            }
            else
            {
                google.language.translate(strTransText, strTransFLang, strTransTLang, function(result) 
                {
                    strTransField.innerHTML = result.translation;
                });
            }
        }
    }
}

function ConvertLanguage(objControls, strFLang, strTLang, isInputControl)
{
    for(var i = 0; i < objControls.length; i++) 
    {
        try
        {
            if(objControls[i].id !=null && objControls[i].id != '')
            {
                if(isInputControl && objControls[i].type == 'hidden')
                    continue;
                
                var strText = "";
                if(isInputControl)
                    strText = document.getElementById(objControls[i].id).value;
                else
                    strText = document.getElementById(objControls[i].id).innerHTML;
                
                if(strText.length > 0)
                    fnTranslate(strText,objControls[i].id, strFLang, strTLang, true, isInputControl)
            }
            else
            {
                var strText = objControls[i].innerHTML;
                if(strText.length > 0)
                    fnTranslate(strText,objControls[i], strFLang, strTLang, false, isInputControl)
            }
        }
        catch(err)
        {
            continue;
        }
    }
}

function ChangeLanguage(strCurrLang)
{
   
    if(strCurrLang == null || strCurrLang == '')
        return;

    strFLang = strCurrLang.substring(0,2)
    strTLang = strCurrLang.substring(strCurrLang.indexOf("-") + 1);
    
    if(strFLang == strTLang)
        return;
    
    var labels = document.getElementsByTagName("label");
    ConvertLanguage(labels, strFLang, strTLang, false);
   
    var spans = document.getElementsByTagName("span");
    ConvertLanguage(spans, strFLang, strTLang, false);
   
    //var selects = document.getElementsByTagName("select");
    //ConvertLanguage(selects, strFLang, strTLang, false);
   
    var anchors = document.getElementsByTagName("a");
    ConvertLanguage(anchors, strFLang, strTLang, false);
   
    var ths = document.getElementsByTagName("th"); 
    ConvertLanguage(ths, strFLang, strTLang, false);
   
    //var tds = document.getElementsByTagName("td"); 
    //ConvertLanguage(tds, strFLang, strTLang, false);
    
    var h1s = document.getElementsByTagName("h1"); 
    ConvertLanguage(h1s, strFLang, strTLang, false);
    
    var h2s = document.getElementsByTagName("h2"); 
    ConvertLanguage(h2s, strFLang, strTLang, false);
    
    var h3s = document.getElementsByTagName("h3"); 
    ConvertLanguage(h3s, strFLang, strTLang, false);
    
    var h4s = document.getElementsByTagName("h4"); 
    ConvertLanguage(h4s, strFLang, strTLang, false);
    
    var h5s = document.getElementsByTagName("h5"); 
    ConvertLanguage(h5s, strFLang, strTLang, false);
    
    var h6s = document.getElementsByTagName("h6"); 
    ConvertLanguage(h6s, strFLang, strTLang, false);
    
    var paragraphs = document.getElementsByTagName("p"); 
    ConvertLanguage(paragraphs, strFLang, strTLang, false);
    
   // For Div Tag.--------------
    var divs = document.getElementsByTagName("div");
    for(var i = 0; i < divs.length - 1; i++) 
    {
        if(divs[i].innerHTML.indexOf("<") == -1)
        {
          if(divs[i].innerHTML.length > 0)
          {
            fnTranslate(divs[i].innerHTML,divs[i], strFLang, strTLang, false, false)
          }
        }
    }
   //------------------------- 
    
    //var inputs = document.getElementsByTagName("input"); 
    //ConvertLanguage(inputs, strFLang, strTLang, true);
    
    //var textareas = document.getElementsByTagName("textarea"); 
    //ConvertLanguage(textareas, strFLang, strTLang, true);
}


function ChangeLanguageForPanel(panelId, strCurrLang)
{
   
    if(strCurrLang == null || strCurrLang == '')
        return;
        
    if(panelId == null || panelId == '')
        return;
    
    var objPanel = document.getElementById(panelId);
    if(!objPanel)
        return;

    strFLang = strCurrLang.substring(0,2)
    strTLang = strCurrLang.substring(strCurrLang.indexOf("-") + 1);
    
    if(strFLang == strTLang)
        return;
    
    var labels = objPanel.getElementsByTagName("label");
    ConvertLanguage(labels, strFLang, strTLang, false);
   
    var spans = objPanel.getElementsByTagName("span");
    ConvertLanguage(spans, strFLang, strTLang, false);
   
    //var selects = document.getElementsByTagName("select");
    //ConvertLanguage(selects, strFLang, strTLang, false);
   
    var anchors = objPanel.getElementsByTagName("a");
    ConvertLanguage(anchors, strFLang, strTLang, false);
   
    var ths = objPanel.getElementsByTagName("th"); 
    ConvertLanguage(ths, strFLang, strTLang, false);
   
    //var tds = document.getElementsByTagName("td"); 
    //ConvertLanguage(tds, strFLang, strTLang, false);
    
    var h1s = objPanel.getElementsByTagName("h1"); 
    ConvertLanguage(h1s, strFLang, strTLang, false);
    
    var h2s = objPanel.getElementsByTagName("h2"); 
    ConvertLanguage(h2s, strFLang, strTLang, false);
    
    var h3s = objPanel.getElementsByTagName("h3"); 
    ConvertLanguage(h3s, strFLang, strTLang, false);
    
    var h4s = objPanel.getElementsByTagName("h4"); 
    ConvertLanguage(h4s, strFLang, strTLang, false);
    
    var h5s = objPanel.getElementsByTagName("h5"); 
    ConvertLanguage(h5s, strFLang, strTLang, false);
    
    var h6s = objPanel.getElementsByTagName("h6"); 
    ConvertLanguage(h6s, strFLang, strTLang, false);
    
    var paragraphs = objPanel.getElementsByTagName("p"); 
    ConvertLanguage(paragraphs, strFLang, strTLang, false);
    
   // For Div Tag.--------------
    var divs = objPanel.getElementsByTagName("div");
    for(var i = 0; i < divs.length - 1; i++) 
    {
        if(divs[i].innerHTML.indexOf("<") == -1)
        {
          if(divs[i].innerHTML.length > 0)
          {
            fnTranslate(divs[i].innerHTML,divs[i], strFLang, strTLang, false, false)
          }
        }
    }
   //------------------------- 
    
    //var inputs = document.getElementsByTagName("input"); 
    //ConvertLanguage(inputs, strFLang, strTLang, true);
    
    //var textareas = document.getElementsByTagName("textarea"); 
    //ConvertLanguage(textareas, strFLang, strTLang, true);
}