// --------------------------------------------------------------------------------------------  
// Language selection and All Websites menu actions
  $().ready(function() {

    //$('#pageheader').append('<div style="color:#ff7777;font-weight:bold;font-size:30pt;position:absolute;top:70px;left:380px;">DEV SITE</div>');

    $('#language_select_menu').mouseover(ShowLanguageMenu);
    $('#language_select_menu').mouseout(HideLanguageMenu);
    $('#language_select_menu li ul li').click(SelectLanguage);

    $('#top_navigation_allwebsites_ddl').mouseover(ShowAllWebsitesMenu);
    $('#top_navigation_allwebsites_ddl').mouseout(HideAllWebsitesMenu);
  });
  
// -- Language handling  
  function HideLanguageMenu() {
    $(this).children('li').children('ul').css('visibility','hidden');
  }
  function ShowLanguageMenu() {
    $(this).children('li').children('ul').css('visibility','visible');
  }
  function SelectLanguage() {
    var currentPageUrl = location.href;
    var currentLanguageTitle = '';
    //var selectedLanguage = $(this).text().replace(/ /g, '');
    var selectedLanguage = $.trim($(this).text());
    for(var i = 0;i < languageOptions.length;i++) {      
      var regex = new RegExp('/' + languageOptions[i].Title + '/', "i");
      if (regex.test(currentPageUrl)) {
        currentLanguageTitle = languageOptions[i].Title;
        break
      }
    }
    if (currentLanguageTitle != '') {
      for(var i = 0;i < languageOptions.length;i++) {
        if (languageOptions[i].DisplayName == selectedLanguage) {
          var regex = new RegExp('/' + currentLanguageTitle + '/', "i");
          if (regex.test(currentPageUrl)) {
            var newUrl = currentPageUrl.replace(regex, '/' + languageOptions[i].Title + '/');
            location.href = newUrl;
            return;
          }          
        }
      }
    }
  }

// -- All Web Sites menu
  function HideAllWebsitesMenu() {
    $(this).children('li').children('ul').css('visibility','hidden');
  }
  function ShowAllWebsitesMenu() {
    $(this).children('li').children('ul').css('visibility','visible');
  }
// --------------------------------------------------------------------------------------------  


	function showPassword()
	{
		document.getElementById('header_mockpass').style.display='none'; 
	    document.getElementById('header_mockpass').name='password_mock'; 

		document.getElementById('header_realpass').style.display=''; 
		document.getElementById('header_realpass').focus();
	}
	
	function hidePassword()
	{
		if(document.getElementById('header_realpass').value=='') 
		{
			document.getElementById('header_mockpass').style.display=''; 
			document.getElementById('header_realpass').style.display='none';
			document.getElementById('header_mockpass').name='password'; 
		}
	}
	
	var timeout    = 100;
	var closetimer = 0;
	var ddmenuitem = 0;

	function jsddm_open()
	{  	 
	   jsddm_canceltimer();
	   jsddm_close();
	  
	ddmenuitem = $(this).find('ul').css('visibility', 'visible');
	
	   	if ($.browser.msie && $.browser.version.substr(0,1)<7){
		
		$(this).find("span.bottom_border").css('display', 'block')
		}
	}
	
	function jsddm_close()
	{   
		if(ddmenuitem) 
		{
			ddmenuitem.css('visibility', 'hidden');
			if ($.browser.msie && $.browser.version.substr(0,1)<7){
				$('span.bottom_border').hide();
			}
		}
	
	}
	
	function jsddm_timer()
	{  closetimer = window.setTimeout(jsddm_close, timeout);}
	
	function jsddm_canceltimer()
	{  if(closetimer)
	   {  window.clearTimeout(closetimer);
		  closetimer = null;}}

	document.onclick = jsddm_close;
var dlm = function()
{

	this.init = function (id)
	{
	 $("#"+id+ " > li").bind('mouseover', jsddm_open)
	 $('#'+id+' > li').bind('mouseout',  jsddm_timer)
	}
	
	

}

//This function is very important, it fixes the main menu blue shadow
function fixMainMenu()
{
	var mainLinkElements = $("#main_menu li a.root_item")
	//alert(mainLinkElements.length)
	var mainLinkBottomBorderElements = $("#main_menu li a span.bottom_border")
	for(var i =0; i < mainLinkElements.length; i ++ )
	{
		mainLinkBottomBorderElements[i].style.width  = mainLinkElements[i].offsetWidth + "px"
	}
	
	
}

//Get the root URL for the current variation
function GetVariationRoot() {
    var variationRootUrl = '';
    var $langMenuSelection = $('#language_select_menu>li>a');
    if ($langMenuSelection.length == 0) {
        variationRootUrl = "en";
    }
    else {
        var selectedLanguage = $.trim($langMenuSelection.text());      
        for(var i = 0;i < languageOptions.length;i++) {      
            if (languageOptions[i].DisplayName == selectedLanguage) {
                variationRootUrl = languageOptions[i].Title;
                break;
            }
        }
    }
    return variationRootUrl;
}

//Extract the value of a querystring element
function GetQueryStringValue(name){
    name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
    var regexS = "[\\?&]"+name+"=([^&#]*)";
    var regex = new RegExp( regexS );
    var results = regex.exec( window.location.href );
    if( results == null )
        return "";
    else
        return results[1];
}

//Unencode escaped characters 
function URLDecode(encoded) 
{ 
  // Replace + with ' ' 
  // Replace %xx with equivalent character 
  // Put [ERROR] in output if %xx is invalid. 
  var HEXCHARS = "0123456789ABCDEFabcdef"; 
  var plaintext = ""; 
  var i = 0; 
  while (i < encoded.length) { 
    var ch = encoded.charAt(i); 
    if (ch == "+") { 
      plaintext += " "; 
  i++; 
    } else if (ch == "%") { 
      if (i < (encoded.length-2) && HEXCHARS.indexOf(encoded.charAt(i+1)) != -1 && HEXCHARS.indexOf(encoded.charAt(i+2)) != -1 ) { 
	plaintext += unescape( encoded.substr(i,3) ); 
	i += 3; 
      } else { 
        //alert( 'Bad escape combination near ...' + encoded.substr(i) ); 
        //plaintext += "%[ERROR]"; 
        i++; 
      } 
    } else { 
      plaintext += ch; 
      i++; 
    } 
  } // while 

  return plaintext; 
}; 

