// Browser Detection Javascript
// copyright 1 February 2003, by Stephen Chapman, Felgall Pty Ltd

// You have permission to copy and use this javascript provided that
// the content of the script is not changed in any way.

function whichBrs() {
	var agt=navigator.userAgent.toLowerCase();
	if (agt.indexOf("opera") != -1) return 'Opera';
	if (agt.indexOf("staroffice") != -1) return 'Star Office';
	if (agt.indexOf("beonex") != -1) return 'Beonex';
	if (agt.indexOf("chimera") != -1) return 'Chimera';
	if (agt.indexOf("netpositive") != -1) return 'NetPositive';
	if (agt.indexOf("phoenix") != -1) return 'Phoenix';
	if (agt.indexOf("firefox") != -1) return 'Firefox';
	if (agt.indexOf("safari") != -1) return 'Safari';
	if (agt.indexOf("skipstone") != -1) return 'SkipStone';
	if (agt.indexOf("msie") != -1) return 'Internet Explorer';
	if (agt.indexOf("netscape") != -1) return 'Netscape';
	if (agt.indexOf("mozilla/5.0") != -1) return 'Mozilla';
	if (agt.indexOf('\/') != -1) {
	if (agt.substr(0,agt.indexOf('\/')) != 'mozilla') {
	return navigator.userAgent.substr(0,agt.indexOf('\/'));}
	else return 'Netscape';} else if (agt.indexOf(' ') != -1)
	return navigator.userAgent.substr(0,agt.indexOf(' '));
	else return navigator.userAgent;
}

// Parses the query string
/* Example of use:
<SCRIPT>
var args = parseQueryString ();
for (var arg in args) {
  document.write(arg + ': ' + args[arg] + '<BR>');
}
</SCRIPT>
*/

function parseQueryString (str) {

	str = str ? str : location.search;
	var query = str.charAt(0) == '?' ? str.substring(1) : str;
	var args = new Object();
	if (query) {
		var fields = query.split('&');
		for (var f = 0; f < fields.length; f++) {
			var field = fields[f].split('=');

			args[unescape(field[0].replace(/\+/g, ' '))] = unescape(field[1].replace(/\+/g, ' '));
		}
	}
	return args;

}

// Change the right-hand theme menu
function ChangeThemeMenu(args) {

	for (var arg in args) {
		if (arg=="menu") {
			switch (args[arg]) {
				case "corporate":
					parent.document.all['fMenuTheme'].src="ThemeMenuComm.html";
					break;
				case "galerie":
					parent.document.all['fMenuTheme'].src="ThemeMenuTravaux.html";
					break;
			}
		}
	}
}

// Change the picture menu in the fMenuPics frame
function changePictureMenu(src, picture) {

	if (whichBrs() != 'Safari' && whichBrs() != 'Firefox') {
		parent.document.all["fMenuPics"].src=src;
	} else {
		
		// Special DOM processing for Safari
		try {
			parent.frames['fMenuPics'].location.href=src;
		}
		catch(e) {
			parent.document.getElementById('fMenuPics').src=src;
		}
	}
}

// Change the big picture in the fBody frame
function changePicture(picture, caption, imgObject) {

	window.parent.document.getElementById('fBody').src='./picture.html?picture=' + picture + '&caption=' + caption;

	// Change the opacity of the clicked image by changing this style:
    setOpacity(imgObject, 50);
    
    // Change all other images to opacity 100
    var imgs,i;
	imgs=document.getElementsByTagName('img');
	for(i in imgs) {
		if (imgs[i].id != imgObject.id) {
			setOpacity(imgObject, 100);
		}
	}
}

function setOpacity(obj, opacity) {

  opacity = (opacity == 100)?99.999:opacity;
  
  // IE/Win
  obj.style.filter = "alpha(opacity:"+opacity+")";
  
  // Safari<1.2, Konqueror
  obj.style.KHTMLOpacity = opacity/100;
  
  // Older Mozilla and Firefox
  obj.style.MozOpacity = opacity/100;
  
  // Safari 1.2, newer Firefox and Mozilla, CSS3
  obj.style.opacity = opacity/100;

}

function fadeIn(objId,opacity) {
	if (document.getElementById) {
		obj = document.getElementById(objId);
		if (opacity >= 50) {
			setOpacity(obj, opacity);
			opacity -= 10;
			window.setTimeout("fadeIn('"+objId+"',"+opacity+")", 60);
		}
	}
}

// Change the caption above the photos in the picture menu
function ChangeCaption(caption) {
	document.all.divCaption.innerHTML=caption;
}

function changeMenuColor(obj) {
	obj.style.color='black';
	
    var links,i;
	links=document.getElementsByTagName('a');
	for(i in links) {
		if (links[i].id != obj.id && links[i].id != undefined) {
			links[i].style.color='gray';
		}
	}
}

// replace callback support for safari.
(function(){

  var default_replace = String.prototype.replace;
  String.prototype.replace = function(search,replace){
	// replace is not function
	if(typeof replace != "function"){
		return default_replace.apply(this,arguments)
	}
	var str = "" + this;
	var callback = replace;
	// search string is not RegExp
	if(!(search instanceof RegExp)){
		var idx = str.indexOf(search);
		return (
			idx == -1 ? str :
			default_replace.apply(str,[search,callback(search, idx, str)])
		)
	}
	var reg = search;
	var result = [];
	var lastidx = reg.lastIndex;
	var re;
	while((re = reg.exec(str)) != null){
		var idx  = re.index;
		var args = re.concat(idx, str);
		result.push(
			str.slice(lastidx,idx),
			callback.apply(null,args).toString()
		);
		if(!reg.global){
			lastidx += RegExp.lastMatch.length;
			break
		}else{
			lastidx = reg.lastIndex;
		}
	}
	result.push(str.slice(lastidx));
	return result.join("")
  }
})();
