﻿// JScript File

var tab;
var BrowserDetect = {
      init: function () {
            this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
            this.version = this.searchVersion(navigator.userAgent)
                  || this.searchVersion(navigator.appVersion)
                  || "an unknown version";
            this.OS = this.searchString(this.dataOS) || "an unknown OS";
      },
      searchString: function (data) {
            for (var i=0;i<data.length;i++)     {
                  var dataString = data[i].string;
                  var dataProp = data[i].prop;
                  this.versionSearchString = data[i].versionSearch || data[i].identity;
                  if (dataString) {
                        if (dataString.indexOf(data[i].subString) != -1)
                              return data[i].identity;
                  }
                  else if (dataProp)
                        return data[i].identity;
            }
      },
      searchVersion: function (dataString) {
            var index = dataString.indexOf(this.versionSearchString);
            if (index == -1) return;
            return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
      },
      dataBrowser: [
            {
                  string: navigator.userAgent,
                  subString: "Chrome",
                  identity: "Chrome"
            },
            {     string: navigator.userAgent,
                  subString: "OmniWeb",
                  versionSearch: "OmniWeb/",
                  identity: "OmniWeb"
            },
            {
                  string: navigator.vendor,
                  subString: "Apple",
                  identity: "Safari",
                  versionSearch: "Version"
            },
            {
                  prop: window.opera,
                  identity: "Opera"
            },
            {
                  string: navigator.vendor,
                  subString: "iCab",
                  identity: "iCab"
            },
            {
                  string: navigator.vendor,
                  subString: "KDE",
                  identity: "Konqueror"
            },
            {
                  string: navigator.userAgent,
                  subString: "Firefox",
                  identity: "Firefox"
            },
            {
                  string: navigator.vendor,
                  subString: "Camino",
                  identity: "Camino"
            },
            {           // for newer Netscapes (6+)
                  string: navigator.userAgent,
                  subString: "Netscape",
                  identity: "Netscape"
            },
            {
                  string: navigator.userAgent,
                  subString: "MSIE",
                  identity: "Explorer",
                  versionSearch: "MSIE"
            },
            {
                  string: navigator.userAgent,
                  subString: "Gecko",
                  identity: "Mozilla",
                  versionSearch: "rv"
            },
            {           // for older Netscapes (4-)
                  string: navigator.userAgent,
                  subString: "Mozilla",
                  identity: "Netscape",
                  versionSearch: "Mozilla"
            }
      ],
      dataOS : [
            {
                  string: navigator.platform,
                  subString: "Win",
                  identity: "Windows"
            },
            {
                  string: navigator.platform,
                  subString: "Mac",
                  identity: "Mac"
            },
            {
                  string: navigator.platform,
                  subString: "Linux",
                  identity: "Linux"
            }
      ]
};

BrowserDetect.init();

    function translateToGoogle(element, iteration, total) {
       // return false;
       if ((element.innerHTML != null) && (element.innerHTML != ''))
        {   
            var language = 'en'; 
            google.language.detect(element.innerHTML, 
                function(result) {  
                    if (!result.error) 
                        {                               
                        for (l in google.language.Languages) {      
                            if (google.language.Languages[l] == result.language) {        
                                language = l;        
                                break;      
                            }    
                        }        
                   }                   
                }
            )
            google.language.translate(element.innerHTML, language, document.getElementById('dnn_dnnLANGUAGE_selectCulture').options[document.getElementById('dnn_dnnLANGUAGE_selectCulture').selectedIndex].value, 
               function(result) 
                {
                    if (BrowserDetect.browser == "Firefox")
                    {
                        if (element.id.toString() == 'tempDiv'){
                           jQuery('#tempDiv').fadeOut('slow');    
                           jQuery('#loadingDiv2').fadeOut('slow');  
                        }
                    }                
                    if (!result.error) 
                    { 
                        try {
                               if (element.innerHTML.toLowerCase().indexOf("<textarea")  == -1 && element.innerHTML.toLowerCase().indexOf("<input")  == -1 && element.innerHTML.toLowerCase().indexOf("txtContactEMAIL1")  == -1 && element.innerHTML.toLowerCase().indexOf("dnn_ctr379_advanceddatagrid_lblspanpersonal")  == -1 && element.innerHTML.toLowerCase().indexOf("dnn_ctr379_advanceddatagrid_lblspanattuni")  == -1 && element.innerHTML.toLowerCase().indexOf("lnkreply")  == -1) {
                                    element.innerHTML = result.translation; 
                                    if (element.innerHTML.toLowerCase().replace(/^\s+/,"") !== result.translation.toLowerCase().replace(/^\s+/,"")) {
                                        element.outerHTML = element.outerHTML.substring(0,element.outerHTML.indexOf(">")+1) + result.translation + "<" + element.outerHTML.substring(element.outerHTML.lastIndexOf("<")+1);
                                    }
                                    //document.getElementById('loadingDiv').innerHTML = iteration + ' of ' + total + ' Percent: ' + Math.round((iteration / total) * 100) + '%';
                                    document.getElementById('tempDiv').innerHTML =  'Translating: ' + Math.round((iteration / total) * 100) + '% complete.';
                                } else {
                                    document.getElementById('tempDiv').innerHTML =  'Translating: ' + Math.round((iteration / total) * 100) + '% complete.';
                                }

                                if (element.outerHTML.toLowerCase().indexOf("tempdiv") !== -1){                                   
                                   jQuery('#tempDiv').fadeOut('slow');    
                                   jQuery('#loadingDiv2').fadeOut('slow');                            
                                }
                        } catch ( error ) {
                        
                        }
                    } 
                }
            );     
       }
    }
       
    function transInit()
    {
            
       if (document.getElementById('dnn_dnnLANGUAGE_selectCulture').options[document.getElementById('dnn_dnnLANGUAGE_selectCulture').selectedIndex].value !== 'en'){        
            jQuery('#tempDiv').fadeIn('slow');
                var total; 
                var Query;
                Query = "*:[nodeName!='TEXTAREA'][nodeName!='INPUT'][nodeName!='TITLE'][nodeName!='TABLE'][nodeName!='TR'][nodeName!='HEAD'][nodeName!='TBODY'][innerText!=''][innerText!=' ']";           
                total = jQuery(Query).size();     
                jQuery(Query).each(
                    function(index, domEle){
                                if (jQuery.trim(jQuery(this).text()) !== ''){
                                    //queue.add(translateToGoogle2(this, index2, total, total2, i, refillIndex), this);       
                                    var self = domEle, translate = function() {
                                        translateToGoogle(self, index, total);                                
                                    };   
                                    queue.add(translate, domEle, 2);      
                                }          
                            }               
                   );       
        }
    }
function AjaxEndJS() {          
       if (document.getElementById('dnn_dnnLANGUAGE_selectCulture').options[document.getElementById('dnn_dnnLANGUAGE_selectCulture').selectedIndex].value !== 'en'){        
            if (jQuery('#dnn_dnnSEARCH_cmdSearch').text() !== "Search"){                
                setIEZ();
                var z = 0;
                if (BrowserDetect.browser == "Firefox"){
                    
                    z = docjslib_findHighestZFF();
                } else {
                    z = docjslib_findHighestZ();
                }
                document.getElementById('modal').style.zIndex = z++;              
             }
        }    
}
function setIEZ(){
    jQuery(function() {
	    var zIndexNumber = 1000;
	    jQuery('div').each(function() {
		    jQuery(this).css('zIndex', zIndexNumber);
		    zIndexNumber -= 10;
	    });
    });
}
function docjslib_findHighestZ() {
     var documentDivs = new Array();
     documentDivs =  document.all.tags("DIV");
     var highestZ = 0;
     for (var i = 0; i < documentDivs.length; i++) {
          var Zindex = documentDivs[i].style.zIndex;
          if (Zindex > highestZ) {
               highestZ = Zindex;
          }
     }
     return highestZ;
}
function docjslib_findHighestZFF() {
     var documentDivs = new Array();
     documentDivs = document.getElementsByName("DIV");
     var highestZ = 0;
     for (var i = 0; i < documentDivs.length; i++) {
          var Zindex = documentDivs[i].style.zIndex;
          if (Zindex > highestZ) {
               highestZ = Zindex;
          }
     }
     return highestZ;
}
    
var queue = {    
    _timer: null,    
    _queue: [],    
    add: function(fn, context, time) {        
        var setTimer = function(time) {            
            queue._timer = setTimeout(function() {                
                time = queue.add();                
                if (queue._queue.length) {                    
                    setTimer(time);                                    
                }            
            }, time || 5);        
        }         
        if (fn) {            
            queue._queue.push([fn, context, time]);            
            if (queue._queue.length == 1) {                
                setTimer(time);            
            }            
            return;        
        }         
        var next = queue._queue.shift();        
        if (!next) {            
            return 0;        
        }        
        next[0].call(next[1] || window);        
        return next[2];    
    },    
    clear: function() {        
        clearTimeout(queue._timer);        
        queue._queue = [];    
    }
}; 

function partialTrans(){
   
    if (jQuery('#dnn_dnnSEARCH_cmdSearch').text() !== "Search"){
        //jQuery('#loadingDiv2').fadeIn('slow');
        //jQuery.blockUI({ message: $('#loadingDiv2') }); 
        document.getElementById('modal').style.display = 'block';
        document.getElementById('loadingDiv2').style.display = 'block';
   
        var i;
        i = 1;
        var total2;
        total2=0;
        var refillIndex;
        refillIndex = 0;
        while ($get('refill' + i))
        {
            i ++;             
        }
        document.getElementById('refill0').id = 'refill' + i;
        refillIndex = i;
        i = 1;
        while ($get('refill' + i))
        {
            var total; 
            
            var Query;
            Query = "#refill" + i ;           
            
            jQuery(Query).each(
                function(index, domEle){
                    var $table = jQuery(domEle)
                    total = $table.find("*:[nodeName!='TEXTAREA'][nodeName!='INPUT'][nodeName!='TITLE'][nodeName!='TABLE'][nodeName!='TR'][nodeName!='HEAD'][nodeName!='TBODY'][innerText!=''][innerText!=' ']").size();   
                    $table.find("*:[nodeName!='TEXTAREA'][nodeName!='INPUT'][nodeName!='TITLE'][nodeName!='TABLE'][nodeName!='TR'][nodeName!='HEAD'][nodeName!='TBODY'][innerText!=''][innerText!=' ']").each(
                        function(index2){
                            if (jQuery.trim(jQuery(this).text()) !== ''){
                                queue.add(translateToGoogle2(this, index2, total, total2, i, refillIndex), this);                                    
                                index ++;
                            }
                            
                            }    
                    )    
                    i ++;                                
                }    
            );  
        }            
    }   
}




  function translateToGoogle2(element, iteration, total, total2, index, refillIndex)
    {     
        if ((element.innerHTML != null) && (element.innerHTML != ''))
        {  
            var language = 'en'; 
            google.language.detect(element.innerHTML, 
                function(result) {  
                    if (!result.error) 
                        {                               
                        for (l in google.language.Languages) {      
                            if (google.language.Languages[l] == result.language) {        
                                language = l;        
                                break;      
                            }    
                        }        
                   }             
                }
            )
            google.language.translate(element.innerHTML, language, document.getElementById('dnn_dnnLANGUAGE_selectCulture').options[document.getElementById('dnn_dnnLANGUAGE_selectCulture').selectedIndex].value, 
                function(result) 
                {
                    
                    if (BrowserDetect.browser == "Firefox")
                    {
                        if (element.id.toString() == 'loadingDiv2'){
                            //jQuery('#loadingDiv2').fadeOut('slow');
                            document.getElementById('refill' + refillIndex).id = 'refill0';
                            document.getElementById('modal').style.display = 'none';
                            document.getElementById('loadingDiv2').style.display = 'none';
                            //jQuery.unblockUI();
                        }
                    }

                    if (!result.error) 
                    { 
                        try {
                                
                               if (element.innerHTML.toLowerCase().indexOf("<textarea")  == -1 && element.innerHTML.toLowerCase().indexOf("<input")  == -1 && element.innerHTML.toLowerCase().indexOf("txtContactEMAIL1")  == -1) {
                                    element.innerHTML = result.translation; 
                                    if (element.innerHTML.toLowerCase().replace(/^\s+/,"") !== result.translation.toLowerCase().replace(/^\s+/,"")) {
                                        element.outerHTML = element.outerHTML.substring(0,element.outerHTML.indexOf(">")+1) + result.translation + "<" + element.outerHTML.substring(element.outerHTML.lastIndexOf("<")+1);
                                    }
                                    //document.getElementById('loadingDiv').innerHTML = iteration + ' of ' + total + ' Percent: ' + Math.round((iteration / total) * 100) + '%';
                                    document.getElementById('loadingDiv2').innerHTML =  'Translating, Please Wait.';
                                } else {
                                    document.getElementById('loadingDiv2').innerHTML =  'Translating, Please Wait.';
                                }  
                                if (element.outerHTML.toLowerCase().indexOf("loadingdiv2") !== -1){
                                   //jQuery('#loadingDiv2').fadeOut('slow');
                                   document.getElementById('refill' + refillIndex).id = 'refill0';
                                   document.getElementById('modal').style.display = 'none';
                                   document.getElementById('loadingDiv2').style.display = 'none';
                                   //jQuery.unblockUI();
                                }
                        } catch ( error ) {
                            
                        }
                    } 
                }
            );  
        }
    }