// Init
BDAddPlane('bdv','BDView');

function PreloadMenuItem(container)
{
	var cEl = document.getElementById(container);
	var imgs = cEl.getElementsByTagName('img');
	var cache = [];
	var cacheH = [];
	for ( var i = 0; i < imgs.length; i++ ) {
		cache[i] = new Image();
		cache[i].src = httpRoot + 'images/menu/' + imgs[i].id + '.' + ext;
		cacheH[i] = new Image();
		cacheH[i].src = httpRoot + 'images/menu/' + imgs[i].id + '_h.' + ext;
	}
}

function ToggleMenuItem(element,s)
{
	( s == 0 ) ? element.src = httpRoot + 'images/menu/' + element.id + '.' + ext : element.src = httpRoot + 'images/menu/' + element.id + '_h.' + ext;
	
}

function ChangeCurrentMenuItem(newMenuItemId)
{
	
	var newMenuItem = document.getElementById(newMenuItemId + '_c');
	if ( newMenuItem == null ) {
		return true;
	}
	
	if ( currentContents != 'home' ) {
		var oldMenuItem = document.getElementById(currentContents + '_c');
		oldMenuItem.innerHTML = '<img id="' + currentContents + '" onmouseover="ToggleMenuItem(this,1);" '
							+ 'onmouseout="ToggleMenuItem(this,0);" src="' + httpRoot + 'images/menu/' + currentContents + '.' + ext + '" />';
	}
	
	newMenuItem.innerHTML = '<img id="' + newMenuItemId + '" src="' + httpRoot + 'images/menu/' + newMenuItemId + '_h.' + ext + '" />';
	
}

function HomeAnimation()
{
	
	if ( !damnIE ) {
	
		$('bgLogo').appear({ duration: 1.0, from: 0.0, to: 1.0 });
		$('moisOff').grow({ duration: 1.0 });
		$('disc').appear({ duration: 1.5 });
		// $('vern').appear({ duration: 0.5 });
		// $('programme').blindDown({ duration: 0.3, queue: 'end' });
		
	} else {
	
		$('bgLogo').style.display = 'inline';
		$('moisOff').grow({ duration: 0.5 });
		$('disc').appear({ duration: 1.0, queue: 'end' });
		// $('vern').appear({ duration: 0.5, queue: 'end', afterFinish: function callback(obj) { $('programme').style.display = 'inline'; } });
		
	}
	
	$('menu').slideDown();
	
}

function ChangeContents(contentID)
{
	
	if ( oldHorse ) {
		return true;
	}
	
	var url = httpRoot + 'ldp_contents.php?c=' + contentID;
	
	if ( currentContents != 'home' ) {
		FadeContents();
		url += '&nc=true';
	}
	
	// var menuItemImg = document.getElementById(currentContents);
	// ToggleMenuItem(menuItemImg,0);
	
	ChangeCurrentMenuItem(contentID);
	
	xmlreqGET(url);
	
	return false;
	
}

function ShowContents()
{
	
	if ( !damnIE ) {
		$('disc').fade();
		$('moisOff').fade();
		// $('vern').fade();
		// $('programme').fade();
	} else {
		// $('programme').style.display = 'none';
	}
	
	$('real').appear({ afterUpdate: function bs(obj) { CorrectContentsBackground(); }, afterFinish: function callback(obj) { CorrectContentsBackground(); initGmaps(); } });
	
}

function FadeContents()
{
	
	if ( !damnIE ) {
		$('disc').appear();
		$('moisOff').appear();
		// $('vern').appear();
	}
	
	$('real').fade({ afterFinish: function callback(obj) { CorrectContentsBackground(); } });
	
}

var moveTo = 0;
var currentPosition = 0;
function CorrectContentsBackground()
{
	
	if ( !oldHorse ) {
		var contents = document.getElementById('contents');
		contents.style.backgroundPosition = '0px ' + (contents.offsetHeight - 646)  + 'px';
	}
	
	// moveTo = contents.offsetHeight - 646;
	// CorrectContentsBackgroundAnimation();
	
}

function CorrectContentsBackgroundAnimation()
{
	
	var goOn = false;
	
	if ( currentPosition > moveTo ) {
		currentPosition--;
		goOn = true;
	} else if ( currentPosition < moveTo ) {
		currentPosition++;
		goOn = true;
	}
	
	if ( goOn == true ) {
		$('contents').style.backgroundPosition = '0px ' + currentPosition + 'px';
		setTimeout('CorrectContentsBackgroundAnimation()',50);
	}
	
}

function initGmaps()
{
	
	if ( currentContents != 'infos_pratiques' ) {
		return true;
	}
	
	if (GBrowserIsCompatible()) {
		var map = new GMap2(document.getElementById("map"));
		map.setCenter(new GLatLng(48.779485, 2.409675), 15);
		map.addControl(new GSmallMapControl());
		map.addControl(new GMapTypeControl());
		var point = new GLatLng(48.77705, 2.409075);
		var marker = new GMarker(point);
		map.addOverlay(marker);
	}
	
}

function SendMessage()
{
	
	var url = httpRoot + 'rdv.php?'
		+ 'nom=' + URLencode($('nom').value)
		+ '&prenom=' + URLencode($('prenom').value)
		+ '&email=' + URLencode($('email').value)
		+ '&msg=' + URLencode($('msg').value);
	
	xmlreqGET(url);
	
}

function print_r( array, return_val, append ) {
    // http://kevin.vanzonneveld.net
    // +   original by: Michael White (http://crestidg.com)
    // +   improved by: Ben Bryan
    // *     example 1: print_r(1, true);
    // *     returns 1: 1
	
	if ( append == null ) { append = false };
	
    var output = "", pad_char = " ", pad_val = 4;

    var formatArray = function (obj, cur_depth, pad_val, pad_char) {
        if (cur_depth > 0) {
            cur_depth++;
        }

        var base_pad = repeat_char(pad_val*cur_depth, pad_char);
        var thick_pad = repeat_char(pad_val*(cur_depth+1), pad_char);
        var str = "";

        if (obj instanceof Array || obj instanceof Object) {
            str += "Array\n" + base_pad + "(\n";
            for (var key in obj) {
                if (obj[key] instanceof Array) {
                    str += thick_pad + "["+key+"] => "+formatArray(obj[key], cur_depth+1, pad_val, pad_char);
                } else {
                    str += thick_pad + "["+key+"] => " + obj[key] + "\n";
                }
            }
            str += base_pad + ")\n";
        } else {
            str = obj.toString();
        }

        return str;
    };

    var repeat_char = function (len, pad_char) {
        var str = "";
        for(var i=0; i < len; i++) { 
            str += pad_char; 
        };
        return str;
    };
    output = formatArray(array, 0, pad_val, pad_char);

    if (return_val !== true) {
        // document.write("<pre>" + output + "</pre>");
		Out(output,append);
        return true;
    } else {
        return output;
    }
}

function Out(stringToShow,append,objectID)
{
	
	if ( objectID == null ) { objectID = 'foot' };
	if ( append == null ) { append = false };
	
	receiverObject = document.getElementById(objectID)
	
	stringToShow = '<pre>' + stringToShow + '</pre>';
	
	if ( append ) {
		stringToShow = receiverObject.innerHTML + stringToShow;
	}
	
	receiverObject.innerHTML = stringToShow;
	
}
