
$(document).ready(function(){
    //
    var theMultilingualItem= '';
    var url= document.location.toString();
    var rege1= /\.ch:8000\/1sfdemo/;
    if (url.match(rege1)) {
	//alert("ha ha");
	theMultilingualItem= $('#isdc_header_text') ;
	//installLangagesFlags1(theMultilingualItem);
	// Move the flags near the menu item 
      }	
    else if ($('a[href^="outreach"]') && $('a[href^="outreach"]').parent().parent().attr('id') ==  'isdc_menu_tree') {
	//alert($('a[href^="outreach"]').attr('class'));
	theMultilingualItem= $('a[href^="outreach"]') ;
	installLangagesFlags(theMultilingualItem);
	// Move the flags near the menu item 
      }
    
    $(".lang_flag:not(.lang_on)").live('click', function() {
	//alert('not active flag');
	
	theMultilingualItem = $(this).parent().next();
	var selectedLang= $(this).attr('id').replace(/lang_/, '');
	if (!theMultilingualItem.hasClass('current')) {
	    $('.current').removeClass('current');
	    //alert(theMultilingualItem.attr("href"));
	    theMultilingualItem.addClass('current');
	    var param='';
	    if (selectedLang != 'en') param='?'+ selectedLang;
	    document.location= theMultilingualItem.attr('href') + param;
	}
	else {
	    //alert('lang:'+selectedLang);
	    $(".lang_on").removeClass("lang_on");
	    $(this).addClass('lang_on');
	    
	    
	    $(".lang_flag").each(function() {
		var lge= $(this).attr('id').replace(/lang/, '');
		$(".langcl" + lge).hide();
	    });

	    var url= document.location.toString().replace(/\?\w{2}$/, '');
	    document.location= url + '?'+ selectedLang;
	    
	    // Show selected language items
	    selectedLang= '_'+ selectedLang;
	    $(".langcl" + selectedLang).show(); 
	    if (selectedLang == '_en') selectedLang='';
	    // Load tabs contents
	    loadTabsLang(selectedLang);		
	}
    });
    
    $('#imtabs').tabs(  {
        select: function(e, ui) {
	    var url1= document.location.toString();
	    var rege1= /^([^#\?]+)[#|\?]?/;
	    var url2=url1;
	    if (url1.match(rege1)) {
		url2= RegExp.$1;
		var param= getLanguage();
		if (param.length > 0) param = '?' + param;
		document.location =  url2 + "#"+ ui.panel.id + param;
	    }
 	    //$('html, body').animate({scrollTop:0}, 'slow');
	    //alert('imtabs: scrollTop');
	    //$('html, body').scrollTop(0);
	    //return(false);
	}
    }).show();
    
    $('.goToSection').live('click', function(){ // bind click event to link
	//alert('hello:' + $(this).attr('href'));
	var url1= document.location.toString();
	var rege1= /^([^#\?]+)[#|\?]?/;
	var url2=url1;
	if (url1.match(rege1)) {
	    url2= RegExp.$1;
	    document.location =  url2 + $(this).attr('href');
	    $('#imtabs').tabs('select', $(this).attr('href')); // switch to third tab
	}
	return false;
    });

    $('.goToTab').live('click', function(){ // bind click event to link
	//alert('hello:' + $(this).attr('href'));
	var url1= document.location.toString();
	var rege1= /^([^#\?]+)[#|\?]?/;
	var url2=url1;
	if (url1.match(rege1)) {
	    url2= RegExp.$1;
	    var param= getLanguage();
	    if (param.length > 0) param = '?' + param;
	    document.location =  url2 + $(this).attr('href') + param;
	    $('#imtabs').tabs('select', $(this).attr('href')); // switch to third tab
	}
	return false;
    });

    $("#imtabs").find("a.loadInTab").live('click', function(){
	$(this).parents(".ui-tabs-panel:first").load(this.href);
	return false;
    });
    
    // Activate the other langages if the item outreach of the menu is active (loaded)
    var url1= document.location.toString();
    rege1= /outreach/;
    
    if (url1.match(rege1)) {
	$(".lang_flag").removeClass('lang_on');
	$("#lang_en").addClass('lang_on');
    }
    
    
    var lge= getLanguage();
    if (lge.length > 0) lge= '_' + lge;
    // Hide itmes in all langages
    $('*[className^="langcl_"]').hide();
    // Show items of the current langage
    $(".langcl" + lge).show();
    
    if (lge == '_en') lge='';
    loadTabsFirstTime(lge);
    //$('html, body').scrollTop(0);
    //scroll(0,0);
    autoWidth();
    autoHeight();
        
});

function getLanguage() {
    regeLang= /\?(\w{2})$/;
    var language= '';
    if (document.location.toString().match(regeLang)) {
	language = RegExp.$1;
	$(".lang_on").removeClass("lang_on");
	$("#lang_"+language).addClass('lang_on');
    }
    else {
	$(".lang_on").each(function(){
	    language = $(".lang_on").attr('id').replace(/lang_/, '');
	});
    }
    return(language);
}

function loadTabsFirstTime (lg) {
    $(".loadFromClient").each(function(){
	var url= $(this).text();
	$(this).html('<div>'+url+'</div><div></div>');
	$(this).children(":first").css({'display':'none'});
	$(this).children(":nth-child(2)").load(url + lg + '?isdclayout=b');
	//alert(url+ lg + '?isdclayout=b');
	$(this).css({'padding-left':'0', 'padding-right':'0'});
    });
    regeTab= /#([^\?]+)\??(\w*)$/;
    var selectTab='';
    if (document.location.toString().match(regeTab)) {
	selectTab= RegExp.$1;
	$("#imtabs").tabs('select',  selectTab);
    }
    else {
	//alert('found it');
	$(".selectedTab:first").each(function (){
	    selectTab= $(".selectedTab").attr('href').replace(/^#/, '');
	    $("#imtabs").tabs('select',  selectTab);
	});
    }
}

function loadTabsLang (lg) {
    $(".loadFromClient").each(function(){
        var url= $(this).children(":first").text();
	$(this).children(":nth-child(2)").load(url + lg + '?isdclayout=b');
	$(this).css({'padding-left':'0', 'padding-right':'0'});

    });
}

function autoWidth () {
    $(".autoWidth").load(function(){
        this.style.width =
	    this.contentWindow.document.body.offsetWidth + 'px';
    });
}

function autoHeight() {
    $(".autoHeight").load(function(){
        if (this.contentWindow.document.body.offsetHeight > 0 ) {
	    this.style.height =
		this.contentWindow.document.body.offsetHeight + 60 + 'px';
	}
	else { this.style.height = 1200 + 'px'; }
    });
}

function loadInDiv (url, elt, flag) {
    var params='isdclayout=b';
    var urlParts= url.split('#');
    $.ajax({
	type:       "GET",
	url:        urlParts[0],
	cache:      false,
	data:       params,
	success:    function(html) {
	    $(elt).html(html);	
	    $('#imtabs').tabs(  {
		select: function(e, ui) {
		    var url1= document.location.toString();
		    var rege1= /^([^#]+)#?/;
		    var url2=url1;
		    if (url1.match(rege1))
			url2= RegExp.$1;
		    window.location.replace(urlParts[0] + "#"+ ui.panel.id); 
		    //document.location =;
		    //$('html, body').scrollTop(0);
 		    //alert('loadInDiv scrollTop');
		    //$('html, body').animate({scrollTop:0}, 'fast');
		}
	    });
	    //document.location =  url;
	    $('#imtabs').tabs('select', '#'+  urlParts[1]);
	    $(".lang_on").removeClass("lang_on");
	    flag.addClass('lang_on');
	    var selectedLang= flag.attr('id').replace(/lang/, '');
	    $(".lang_flag").each(function() {
		var lge= flag.attr('id').replace(/lang/, '');
		$(".langcl" + lge).hide();
	    });
	    //alert('url:'+url+ ' lang:'+selectedLang);
	    
	    $(".langcl" + selectedLang).show(); 
	    if (selectedLang == '_en') selectedLang='';
	    loadTabsFirstTime(selectedLang);
	    return(true);

	},
	error: function(XMLHttpRequest, textStatus, errorThrown) {
	    alert('Error, ' + elt.attr('id')
		  + "\nStatus:"    + textStatus
		  +"\nError nb:" + XMLHttpRequest.status
		  +"\nError text:" + XMLHttpRequest.statusText );
	}
    });
}


function installLangagesFlags(flagsLocation) {
    // Move the flags near the menu item 
    $("#lang_flags").css({'float':'right', 'border':'0px', 'padding-left': '2px'})
	.insertAfter(flagsLocation.prev()).show();
    $(".lang_flag").css({'border':'0px', 'margin-right': '2px', 'margin-bottom': '2px'});
    $(".lang_flag").each(function(){
	$(this).parent().height($(this).outerHeight() * 2 +2)
	    .width(($(this).outerWidth()+2) * (Math.min($(this).parent().children().size(),4)));
    });
}

function installLangagesFlags1(flagsLocation) {
    // Move the flags near the menu item 
    flagsLocation.append($("#lang_flags").html());
    $("#lang_flags").css({'border':'0px', 'padding-left': '2px'});
    $("#lang_flags").show();
    $(".lang_flag").css({'border':'0px', 'margin-right': '2px', 'margin-bottom': '2px'});
    $(".lang_flag").each(function(){
	$(this).parent().height($(this).outerHeight() * 2 +2)
	    .width(($(this).outerWidth()+2) * (Math.min($(this).parent().children().size(),4)));
    });
}

function sleep(milliseconds) {
  var start = new Date().getTime();
  for (var i = 0; i < 1e7; i++) {
    if ((new Date().getTime() - start) > milliseconds){
      break;
    }
  }
}


