function tabDisplay(id, tag){

	div = document.getElementById('tabContent');
	lists = div.getElementsByTagName(tag);
	tabSet = document.getElementById('tabs');
	tab = tabSet.getElementsByTagName('li');
	
	for (var i = 0; i < lists.length; i++) { 
		lists[i].style.display = 'none';
		tab[i].setAttribute('className', '');
		tab[i].setAttribute('class', '');
	}

	activeTab = 'tab-'+id;
	document.getElementById(id).style.display = 'block';
	document.getElementById(activeTab).className = 'on';

}

function scroll(target){
	$.scrollTo($(target), {duration:500}); return false; 
}

/* FAQ Expand/collapse a question */
var answers = new Array(50);
function flip(nr)
{
	var queCtr = document.getElementById("Q"+nr);
	var ansCtr = document.getElementById("A"+nr);
	if( queCtr==null || ansCtr==null){ alert("Cotrols null");return;}
	if( answers[nr]==null ) {
	  answers[nr] = queCtr.innerHTML;
	  queCtr.innerHTML = answers[nr]+"<br/>"+ansCtr.innerHTML;
	}
	else {
	  queCtr.innerHTML = answers[nr];
	  answers[nr]=null;
	}
}

function confirmSubmit(){ 

	var agree=confirm("Are you sure?");

	if (agree){
		return true;
	}else{
		exit();
	}
}

function urlConstruct(){

	var emailTxt = document.getElementById('emailTxt');
	var emailSubject = document.getElementById('emailSubject');
	var fromEmail = document.getElementById('fromEmail');
	var to = document.getElementById('to');

	document.getElementById('linkSend').href = 'spip.php?page=send-article&formAction=sendToAFriend&emailSubject='+
												emailSubject.value + '&emailTxt=' +
												emailTxt.value + '&fromEmail=' +
												fromEmail.value + '&to=' +
												to.value;

	return false;
}

function gototype(action) {

	if (document.all) {
		var formRailEngine = document.all.formRailEurope;
	} else {
		var formRailEngine = document.getElementById('formRailEurope');		
	}

	if (action.substring(0,3) == 'del'){
		confirmSubmit();
	}

	document.getElementById('formAction').value = action;

	if (doValidateForm(action)) {
		formRailEngine.submit();
	}

}

function displayLangForm(){
	document.getElementById('lang_lib').style.display = 'none';
	document.getElementById('lang_form').style.display = 'block';
	document.getElementById('lang_form2').style.display = 'block';
}

function doValidateForm(action){

	/*FIN PARAMETRAGE EXCEPTIONS*/

	//create arrays with optional parameters for each managed form
	var optional = new Array();
	
	if(action == 'sendToAFriend'){

		if(document.getElementById('fromEmail').value != document.getElementById('fromVerify').value){
			alert("The email fields do not match.");
			return false;
		}
		else if(document.getElementById('to').value != document.getElementById('toVerify').value){
			alert("The email fields do not match.");
			return false;
		}
	
		var validate = true;
	
	}

	if(action == 'sendMessage'){
	
		optional['departureDate'] = true;
		optional['orderNumber'] = true;

		if(document.getElementById('from').value != document.getElementById('fromVerify').value){
			alert("The email fields do not match.");
			return false;
		}
	
		var validate = true;
	
	}

	if (action == 'groupQuotation'){

		optional['comment'] = true;
		//a accorder avec le nombre de travels possibles
		for (i=0;i<10 ;i++)	{
			optional['travelDate['+i+']'] = true;
			optional['departureTime['+i+']'] = true;
			optional['departureCity['+i+']'] = true;
			optional['arrivalCity['+i+']'] = true;
			optional['class1['+i+']'] = true;
			optional['class2['+i+']'] = true;
			optional['accomodation['+i+']'] = true;
			optional['correspondingRailPass['+i+']'] = true;
		}

		optional['orderNumber'] = true;

		var validate = true;
	}
	
	if (action == 'swissPackageQuotation'){
		optional['reservationNeeds'] = true;
		optional['comment'] = true;
		var validate = true;
	}

	if (action == 'sendToAFriend'){
		var validate = false;
	}

	/*FIN PARAMETRAGE EXCEPTIONS*/

	if (document.all) {
		var f = document.all.formRailEurope;
	} else {
		var f = document.getElementById('formRailEurope');		
	}

	if(f && validate) {
	
		var types = new Array("input", "textarea", "select");
		var error = false;
		var prevValue = false;

		for (key in types) {

			var fields = f.getElementsByTagName(types[key]);

			var prevInput = "";
			var idx = 1;

			for(var i=0, n=fields.length; i<n; i++) {
				
				var id = fields[i].getAttribute("id");
				//var type = fields[i].getAttribute("type");
				var name = fields[i].getAttribute("name");
				var input = document.getElementById(id);
				var inputName = document.getElementsByName(name);

				//alert(input.name + inputName);
				if (!optional[id]) {

					//recuperation des valeurs 
					if(input.type=="select-one" || input.type=="text" || input.type=="textarea"){
						value = input.value;

						if (!value)	{//application des CSS d'alerte -> faire quelque chose pour checkbox et radio
							input.className = "warning";
							error = true;
						}else{
							input.className = "ok";
						}

					}else if(!prevValue && input.type=="radio" || input.type=="checkbox"){
					
						if (prevInput != input.name){//on change de liste
							prevValue = false;
							idx=inputName.length;
						}
										
						if (idx != 0) {//on est pas encore Ó la fin
							if (input.checked) {
								prevValue = true;
								value = input.value;
							}else{
								prevValue = false;
							}
						}

						if (!prevValue && idx==1){
							error = true;
						}

						idx = idx-1;
						prevInput = input.name;			
					}

				}

			}	
		}
	}

	if (error) {
		alert("Please verify the required fields");
		return false;
	}else{
		return true;
	}

}

//A besoin de l'API google pour Ûtre lance
function init_map(id_article, lat, lng, level){
 if (GBrowserIsCompatible()) {
	var map = new GMap2(document.getElementById(id_article),{ size: new GSize(160,150) } );
	map.setMapType(G_PHYSICAL_MAP);
	map.setCenter(new GLatLng(lat, lng), level);
  }
}

function hasOrderNumber(gsaid){
  if (gsaid == '1003'){
    if (document.getElementById('orderNumber').value == '') {
      alert('ご注文番号');
      document.getElementById('orderNumber').className = "warning";
      exit();
    }
    else return true;
  }
  else return true;  
}
