////////////////////////////////////
// Detect Bowser name and version //
////////////////////////////////////
var browser=navigator.appName;
var browser_version=parseFloat(navigator.appVersion);
var contact_name;

msie = (browser == "Microsoft Internet Explorer") ? true : false;
ns = (browser == "Netscape") ? true : false;

//alert ("Browser name: "+ browser + "\r\n" + "Browser version: "+ browser_version);

//////////////////////////////////////
//The contactwebmaster popup window //
//////////////////////////////////////
/*
function popup(mylink, windowname) {
	if (! window.focus)return true;
	var href;
	if (typeof(mylink) == 'string')
		href=mylink;
	else
		href=mylink.href;
	window.open(href, windowname, 'width=500,height=550,scrollbars=yes');
	return false;
}
*/

/////////////////////////////////////////
// Menu links / page display functions //
/////////////////////////////////////////

function showDiv(_TARGET,_show) {
	findDOM(_TARGET).style.display = _show;
}

function TitleLanguage(_lang) {
	var _title = "<span xml:lang='"+_lang+"'>";
	switch (_lang) {
		case "de":
			_comp += "- Komponist -</span>";
			break;
		case "en":
			_title += "- Composer -";
			break;
		case "fr":
			_title += "- Compositrice -";
			break;
		case "jp":
			_comp += "- &#20316;&#26354;&#23478; -";
			break;
		default:
			_title += "- Composer -";
			break;
		}
	_title += "</span>";
	findDOM("TITLE").innerHTML = _title;
}

function SetFlags(_TARGET,_docname,_lang, _de, _en, _fr, _jp) {
	var _flags = "";
	var _menu = (_TARGET == "MENU");
	if (_de) _flags += " <a href=\"javascript:GetDoc('" + _TARGET+"','"+_docname+"', 'de');\" " + (_menu ? "onclick=\"TitleLanguage('de');\"":"") + "><img src='images/de.png' border='" + ((_lang == "de") ? "2" : "1") + "'></a> ";
	if (_en) _flags += " <a href=\"javascript:GetDoc('" + _TARGET+"','"+_docname+"', 'en');\" " + (_menu ? "onclick=\"TitleLanguage('en');\"":"") + "><img src='images/en.png' border='" + ((_lang == "en") ? "2" : "1") + "'></a> ";
	if (_fr) _flags += " <a href=\"javascript:GetDoc('" + _TARGET+"','"+_docname+"', 'fr');\" " + (_menu ? "onclick=\"TitleLanguage('fr');\"":"") + "><img src='images/fr.png' border='" + ((_lang == "fr") ? "2" : "1") + "'></a> ";
	if (_jp) _flags += " <a href=\"javascript:GetDoc('" + _TARGET+"','"+_docname+"', 'jp');\" " + (_menu ? "onclick=\"TitleLanguage('jp');\"":"") + "><img src='images/jp.png' border='" + ((_lang == "jp") ? "2" : "1") + "'></a> ";
	if (_TARGET != "VIEWDOC") {
		if (findDOM(_TARGET+"_LANG")) findDOM(_TARGET+"_LANG").innerHTML = _flags;
	}
}

function SetActive(_menu) {
	for (var i=1; i<11; i++) {
		findDOM("menu" + i).style.color = "#001199";
		findDOM("menu" + i).style.textDecoration = "none";
	}
	_menu.style.color = "#3300FF";
	_menu.style.textDecoration = "underline overline";
}

function GetPhotos() {
	parent.framecontent.location = "photos.php?spgmGal=Misato Mochizuki";
	findDOM("ARTICLE_LANG").innerHTML="&nbsp;";
}

//////////////////////////////
// AJAX Calls and Callbacks //
//////////////////////////////

XHRTarget = "";
XHR = getXHRObject();

// Get singleton XML HTTP Request object
function getXHRObject() {
	//var XHR = false;
	var XHR;
	// Conditional compilation of IE
	/*@cc_on
	@if (@_jscript_version >= 5)
		try {
				XHR = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
				try {
					XHR = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (E) {
					XHR = false;
				}
		}
	@else
		XHR = false;
	@end @*/

	// We try to create the object if it does not exist
	if (!XHR && typeof XMLHttpRequest != 'undefined') {
		try {
				XHR = new XMLHttpRequest();
		} catch (e) {
				XHR = false;
		}
	}
	return XHR;
}

// Call for Doc in its language
function GetDoc(_TARGET,_docname,_lang, _dir) {
	XHR=getXHRObject();
	if (!_dir) {_dir = "./";}
	if (XHRTarget == "") {
		// Make sure the TARGET_AREA is visible
		if (findDOM(_TARGET+"_AREA")) {findDOM(_TARGET+"_AREA").style.display = '';}
		XHR.onreadystatechange = Display;
		XHR.open('GET', _dir + "get_doc.php?DocNameLang="+_docname+"_"+_lang, true);
		XHRTarget=_TARGET;
		XHR.send(null);
	}
}

// Callback for display in XHRTarget
function Display() {
	if (XHR.readyState == 4) {
		if (XHR.status == 200) {
			//alert(XHR.responseText);
			var oNodeList;
			var _item;
			var _html;
			var _lang = "";
			var _de = false;
			var _en = false;
			var _fr = false;
			var _jp = false;
			var _docname = "";
			
			if (XHRTarget != "PHOTOS") {
				oNodeList = XHR.responseXML.documentElement.childNodes;
				for (var i=0; i<oNodeList.length; i++) {
					_item = oNodeList.item(i);
					switch (_item.nodeName) {
						case "#cdata-section":
							_html = _item.data;
							if (XHRTarget == "CONTACT_FORM") {
								// Replace the webmaster with the name of the contact
								// Do it twice, for bug reasons...
								_html = _html.replace(/the webmaster/,contact_name);
								_html = _html.replace(/the webmaster/,contact_name);
							}
							findDOM(XHRTarget).innerHTML = _html;
							break;
						case "lang":
							_lang = _item.firstChild.data;
							break;
						case "de":
							_de = true;
							break;
						case "en":
							_en = true;
							break;
						case "fr":
							_fr = true;
							break;
						case "jp":
							_jp = true;
							break;
						case "docname":
							_docname = _item.firstChild.data;
							break;
						case "message":
							//alert(_item.firstChild.data);
							break;
						case "action":
							// Execute next action 100 milliseconds after this function returns
							setTimeout(_item.firstChild.data, 100);
							break;
						default:
							break;
					}
				}
				
				// Set flags corresponding to the available languages
				SetFlags(XHRTarget,_docname,_lang, _de, _en, _fr, _jp);
			} else {
				findDOM("ARTICLE").innerHTML = XHR.responseText;
			}
		} else {
			alert('Display error: Could not find file to display in this language for area ' + XHRTarget + ".");
		}
		XHRTarget="";
	}
}

function PublishDoc() {
	var docname = findDOM("DOC_NAME").value;
	var doclang = findDOM("DOC_LANG").value;
	var docstatus = findDOM("DOC_STATUS").value;
	var docpublished = findDOM("DOC_PUBLISHED").innerHTML;
	if (docname == "") {
		alert("Attention : Il faut donner un nom à ce document avant de pour pouvoir le publier !");
		return;
	}
	if (docstatus != "Validated") {
		alert("Attention : il faut qu'un document soit en état 'Validated' pour pouvoir être publié !");
		return;
	}
	if (docpublished == "Nouveau") {
		alert("Attention : ce n'est pas possible de publier un document nouveau. Les documents sont reliés entre eux sur le site, et il ne faut pas ajouter des fichiers orphelins.\r\nC'est Fred qui placera les nouveaux fichiers sur le site !");
		return;
	}
	if (!confirm("ATTENTION: La publication remplace le fichier actuellement sur le site par celui-ci !\r\n\r\nDocument : '"+docname+"'\r\nLangue : '"+doclang+"'\r\nStatut : '"+docstatus+"'\r\n\r\nConfirmes-tu ce choix ?")) return;
	findDOM("ACTION").value = "Publish";
	tinyMCE.triggerSave();
	findDOM("DOC_FORM").submit();
}

function SaveDoc() {
	var docname = findDOM("DOC_NAME").value;
	var doclang = findDOM("DOC_LANG").value;
	var docstatus = findDOM("DOC_STATUS").value;
	if (docname == "") {
		alert("Attention : Il faut donner un nom à ce document avant de pour pouvoir l'enregistrer !");
		return;
	}
	if (!confirm("Création / modification d'un document.\r\n\r\nDocument : '"+docname+"'\r\nLangue : '"+doclang+"'\r\nStatut : '"+docstatus+"'\r\n\r\nConfirmes-tu ce choix ?")) return;
	findDOM("ACTION").value = "Save";
	tinyMCE.triggerSave();
	findDOM("DOC_FORM").submit();
}

function ViewDoc() {
	findDOM("VIEWDOC_CONTENT_AREA").style.display = '';
	var docname = findDOM("DOC_NAME").value;
	findDOM("VIEWDOC_NAME").innerHTML = (docname != "") ? docname : "<font style='color:red'>Ce document est temporaire et n'a pas de nom</font>";
	findDOM("VIEWDOC_LANG").innerHTML = findDOM("DOC_LANG").value;
	findDOM("VIEWDOC_STATUS").innerHTML = findDOM("DOC_STATUS").value;
	findDOM("VIEWDOC_MODIFIED").innerHTML = "<font style='color:red'>Modifié</font>";
	findDOM("VIEWDOC_CONTENT").innerHTML = tinyMCE.getContent();
}

function EditDoc() {
	tinyMCE.setContent(findDOM("VIEWDOC_CONTENT").innerHTML);
	var _lang = findDOM("VIEWDOC_LANG").innerHTML;
	if (_lang == "de") findDOM("DOC_LANG").selectedIndex = 0;
	if (_lang == "en") findDOM("DOC_LANG").selectedIndex = 1;
	if (_lang == "fr") findDOM("DOC_LANG").selectedIndex = 2;
	if (_lang == "jp") findDOM("DOC_LANG").selectedIndex = 3;
	findDOM("DOC_NAME").value = findDOM("VIEWDOC_NAME").innerHTML;
	findDOM("DOC_STATUS").value = findDOM("VIEWDOC_STATUS").innerHTML;
	findDOM("DOC_PUBLISHED").innerHTML = findDOM("VIEWDOC_PUBLISHED").innerHTML;
	findDOM("DOC_PUBLISHED_HIDDEN").value = findDOM("VIEWDOC_PUBLISHED").innerHTML;
}

function DisplayAudio(_audiofile, _workname) {
	if (_audiofile == "") {
		findDOM("WORK_AUDIO").innerHTML = "";
		return;
	}
	var _player = "";
	_player += '<table bgcolor="#FFFFFF"><tr valign="center"><td align="right" id="WORK_NAME"><u>' + _workname +'</u>&nbsp;</td><td>';
	// Appearence depends on browser...
	if (navigator.appName == "Netscape") {
		_player += '<object type="application/x-shockwave-flash" data="audio/player.swf" id="audioplayer" height="24" width="240">';
		_player += '<param name="movie" value="' + _audiofile + '">';
		_player += '<param name="FlashVars" value="playerID=1&amp;bg=0xf8f8f8&amp;leftbg=0xeeeeee&amp;lefticon=0x666666&amp;rightbg=0xcccccc&amp;rightbghover=0x999999&amp;righticon=0x666666&amp;righticonhover=0xffffff&amp;text=0x666666&amp;slider=0x666666&amp;track=0xFFFFFF&amp;border=0x666666&amp;loader=0x9FFFB8&amp;';
		_player += 'soundFile=' + _audiofile + '">';
		_player += '<param name="quality" value="high"><param name="menu" value="false"><param name="bgcolor" value="#FFFFFF">';
		_player += '</object>';
	} else {
		_player += '<a href="' + _audiofile + '" target="_blank">';
		_player += '<img src="./audio/speaker.gif" border="0" alt="Misato Mochizuki" width="14" height="14" />';
		_player += ' MP3</a>';
	}
	_player += '</td></tr></table>';
	if (!findDOM("WORK_NAME")) {
		findDOM("WORK_AUDIO").innerHTML = _player;
	}
	else if (findDOM("WORK_NAME").innerHTML != '<u>'+ _workname + '</u>&nbsp;') {
		findDOM("WORK_AUDIO").innerHTML = _player;
	}
}

function findDOM(objectID) {
	// Look for the object in all the frames if not found in the current frame !
	if (ns) {
		if (document.getElementById(objectID)) {return (document.getElementById(objectID));}
		else if (parent.frametop.document.getElementById(objectID)) {return (parent.frametop.document.getElementById(objectID));}
		else if (parent.framecontent.document.getElementById(objectID)) {return (parent.framecontent.document.getElementById(objectID));}
	} else {
		if (document.all[objectID]) {return (document.all[objectID]);}
		else if (parent.frametop.document.all[objectID]) { return (parent.frametop.document.all[objectID]);}
		else if (parent.framecontent.document.all[objectID]) { return (parent.framecontent.document.all[objectID]);}
	}
}


////////////////////////////
// Mail sending functions //
////////////////////////////
/*
function urlencode(str) {
	return escape(str).replace(/[+]/g, '%2B');
}
*/

function CheckContactForm() {
	var email = document.forms.ContactForm.elements['EMAIL'].value;
	if (email.length == 0) {
		alert('Please specify an email address or you will get no answer !');
		return false;
	}
	
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (!filter.test(email)) {
		alert('The email address you provided appears to have an incorrect format. Please check its validity.');
		return false;
	}
	if (document.forms.ContactForm.elements['REQUEST'].value.length == 0) {
		alert('Your request is empy. Please specify the reason why you want to send an email.');
		return false;
	}
	return true;
}

function SendEmail() {
	var _to = document.forms.ContactForm.elements['TO'].value;
	var _name = document.forms.ContactForm.elements['NAME'].value;
	var _email = document.forms.ContactForm.elements['EMAIL'].value;
	var _phone = document.forms.ContactForm.elements['PHONE'].value;
	var _request = document.forms.ContactForm.elements['REQUEST'].value;
	var _url = "TO="+_to+"&NAME="+_name+"&EMAIL="+_email+"&PHONE="+_phone+"&REQUEST="+_request;
	_url = escape(_url);
	_url = _url.replace(/'/g, "\\'");
	_url = _url.replace(/"/g, '\\"');
	_url = _url.replace(/[+]/g, '%2B');
	_url = "./send_email.php?" + _url;
	
	XHR=getXHRObject();
	if (XHRTarget == "") {
		XHR.onreadystatechange = DisplayContactConfirm;
		XHR.open('GET', _url, true);
		XHRTarget="CONTACT_CONFIRM";
		XHR.send(null);
	}
}

// Callback for SendEmail in XHRTarget
function DisplayContactConfirm() {
	if (XHR.readyState == 4) {
		if (XHR.status == 200) {
			//alert(XHR.responseText);
			var oNodeList;
			var _item;
			oNodeList = XHR.responseXML.documentElement.childNodes;
			for (var i=0; i<oNodeList.length; i++) {
				_item = oNodeList.item(i);
				switch (_item.nodeName) {
					case "#cdata-section":
						//alert("Found cdata section. Content = " + _item.data);
						findDOM(XHRTarget).innerHTML = _item.data;
						break;
				}
			}
			// findDOM(XHRTarget).innerHTML = XHR.responseXML.documentElement.childNodes.item(0).data;
		} else {
			alert('ConfirmEmailSent error.');
		}
		XHRTarget="";
	}
}

//////////////////////////////
// Layer expanding function //
//////////////////////////////
/*
function show(_layer, _show){
	if (document.getElementById(_layer) != null){
		if (_show == 'SHOW'){
			document.getElementById(_layer).style.display = '';
		} else if (_show == 'HIDE'){
			document.getElementById(_layer).style.display = 'none';
		}
	} else { return;}
}
*/