// JavaScript Document
function VerifTextField(IdElement)
{
	if(IdElement != ""){	
		if($(IdElement)){
			$(IdElement).removeClassName('erreurSaisie');			
			if(parseInt($(IdElement).value.length) == 0){
				$(IdElement).addClassName('erreurSaisie');
				return 1;
			}
			else
			{
				return 0;
			}
		}
		else{
			alert('Error : element \''+IdElement+'\' not found.');
			return 1;
		}
	}
	else{
		alert('Error : no elemend id specified.');
		return 1;
	}
}


function VerifRadio(groupName){
	if(groupName){
		var elChecked = false;
		var allElements = $$('input[name='+groupName+']');
		allElements.each(function(el,index){
			$(el.id).removeClassName('erreurSaisie');
			if(el.checked == true)
				elChecked = true;
		});
		if(elChecked == true){
			return 0;
		}
		else{
			allElements.each(function(el,index){
				$(el.id).addClassName('erreurSaisie');
			});
			return 1;
		}
	}
	else{
		alert('Error : no groupe specified.');		
		return 1
	}
}

function VerifSelectList(IdElement){
	if(IdElement != ""){
		if($(IdElement)){
			$(IdElement).removeClassName('erreurSaisie');
			if($(IdElement).options[$(IdElement).selectedIndex].value == "null" || $(IdElement).options[$(IdElement).selectedIndex].value == " "){
				$(IdElement).addClassName('erreurSaisie');
				return 1;
			}
			else{
				return 0;
			}
		}
		else{
			alert('Error : element \''+IdElement+'\' not found.');
			return 1;
		}
	}
	else{
		alert('Error : no elemend id specified.');
		return 1;
	}
}

function VerifCheckBox(IdElement){
	if(IdElement != ""){
		if($(IdElement)){
			$(IdElement).removeClassName('erreurSaisie');			
			if($(IdElement).checked == false){
				$(IdElement).addClassName('erreurSaisie');
				return 1;
			}
			else{
				return 0;
			}
		}
		else{
			alert('Error : element \''+IdElement+'\' not found.');
			return 1;
		}
	}
	else{
		alert('Error : no elemend id specified.');
		return 1;
	}
}

function VerifTypeFile(IdElement,ExtentionAuthoriz)
{
	if(IdElement != ""){
		if($(IdElement)){
			$(IdElement).removeClassName('erreurSaisie');
			var FileAuthoriz = false;
			var FileName = $(IdElement).value;
			var FileExtention = FileName.substring(FileName.lastIndexOf(".")+1,FileName.length);

			if(FileName != ""){
				//-> Parcour le tableau des extentions authorisées
				for(i=0;i<ExtentionAuthoriz.length;i++){
					if(FileExtention.toUpperCase() == ExtentionAuthoriz[i].toUpperCase())
						FileAuthoriz = true;
				}
					if(FileAuthoriz == true){
					return 0;
				}
				else{
					$(IdElement).addClassName('erreurSaisie');
					return 1;									
				}
			}
			else{
				$(IdElement).addClassName('erreurSaisie');
				return 1;				
			}
		}
		else{
			alert('Error : element \''+IdElement+'\' not found.');
			return 1;
		}
	}
	else{
		alert('Error : no elemend id specified.');
		return 1;
	}
}

function VerifIsEmail(IdElement) {	
	if(IdElement != ""){	
		if($(IdElement)){
			$(IdElement).removeClassName('erreurSaisie');			
			var email = $(IdElement).value;
			var arobase = email.indexOf("@")
			var point = email.lastIndexOf(".")
			if((arobase < 3)||(point + 2 > email.length) ||(point < arobase+3)){
				$(IdElement).addClassName('erreurSaisie');
				return 1;
			}
			else{
				return 0;
			}
		}
		else{
			alert('Error : element \''+IdElement+'\' not found.');
			return 1;
		}
	}
	else{
		alert('Error : no elemend id specified.');
		return 1;
	}		
}

function isDateValid(IdElement) {
	var errorEmail = 0;	
	if(IdElement != ""){	
		if($(IdElement)){
			$(IdElement).removeClassName('erreurSaisie');			
			var chaineDate = $(IdElement).value;
			
			//J'attends bien sûr une date formatée en JJ/MM/AAAA
			if (chaineDate != ""){			
				var ladate = (chaineDate).split("/");
				//Si je n'ai pas récupéré trois éléments ou bien s'il ne s'agit pas d'entiers, pas la peine non plus d'aller plus loin
				if ((ladate.length == 3) && !isNaN(parseInt(ladate[0])) && !isNaN(parseInt(ladate[1])) && !isNaN(parseInt(ladate[2]))){
					//Sinon, c'est maintenant que je crée la date correspondante. Attention, les mois sont étalonnés de 0 à 11
					var unedate = new Date(eval(ladate[2]),eval(ladate[1])-1,eval(ladate[0]));
					
					//Bug de l'an 2000 oblige, lorsque je récupère l'année, je n'ai pas toujours 4 chiffres selon les navigateurs, je rectifie donc ici le tir.
					var annee = unedate.getYear()
					if ((Math.abs(annee)+"").length < 4) annee = annee + 1900
					
					//Il ne reste plus qu'à vérifier si le jour, le mois et l'année obtenus sont les mêmes que ceux saisis par l'utilisateur.
					if ((unedate.getDate() != eval(ladate[0])) || (unedate.getMonth() != eval(ladate[1])-1) || (annee != eval(ladate[2]))){
						errorEmail++;				
					}
				}
				else{
					errorEmail++;
				}
			}
			else{
				errorEmail++;
			}

			if(errorEmail > 0){
				$(IdElement).addClassName('erreurSaisie');
				return 1;
			}
			else{
				return 0;
			}
		}
		else{
			alert('Error : element \''+IdElement+'\' not found.');
			return 1;
		}
	}
	else{
		alert('Error : no elemend id specified.');
		return 1;
	}		
}


function addFavoris() {
	if (navigator.appName != 'Microsoft Internet Explorer'){
		window.sidebar.addPanel("MeteoCity","http://www.meteocity.com","");
	}
	else{
		window.external.AddFavorite("http://www.meteocity.com","MeteoCity");
	}
}

function preLoadImage(image){
	heavyImage = new Image(); 
	heavyImage.src = image;
}

//> recheche un champ input
function searchInput(name,type){
	var allDiv = document.getElementsByTagName("input");
	for(cpt=0;cpt<allDiv.length;cpt++){
		idDiv = allDiv[cpt].getAttribute("id");
		typeDiv = allDiv[cpt].getAttribute("type");			
		if(idDiv && typeDiv){
			if(idDiv.indexOf(name) >= 0 && typeDiv == type){
				return allDiv[cpt];
				break;
			}				
		}		
	}
}
function searchElement(name,type){
	var allElement;
	switch(type){
		case 'img':
			allElement = document.getElementsByTagName("img");
		break;
		case 'select':
			allElement = document.getElementsByTagName("select");		
		break;
		default:
			allElement = document.getElementsByTagName(type);		
		break;
	}
	if(allElement != null){
		for(cpt=0;cpt<allElement.length;cpt++){
			idEl = allElement[cpt].getAttribute("id");
			if(idEl != null && idEl.indexOf(name) >= 0){
				return allElement[cpt];
				break;
			}				
		}		
	}
}

function ecrireCookie(nom,valeur){
	var argv=ecrireCookie.arguments;
	var argc=ecrireCookie.arguments.length;
	var expires=(argc > 2) ? argv[2] : null;
	var path=(argc > 3) ? argv[3] : null;
	var domain=(argc > 4) ? argv[4] : null;
	var secure=(argc > 5) ? argv[5] : false;
	document.cookie=nom+"="+escape(valeur)+
	((expires==null) ? "" : ("; expires="+expires.toGMTString()))+
	((path==null) ? "" : ("; path="+path))+
	((domain==null) ? "" : ("; domain="+domain))+
	((secure==true) ? "; secure" : "");
}

//function getCookieVal(offset){
//	var endstr=document.cookie.indexOf (";", offset);
//	if (endstr==-1) endstr=document.cookie.length;
//	return unescape(document.cookie.substring(offset, endstr));
//}

function getCookieVal (name) {
         if ( document.cookie) { // Le cookie est-il valide ?
                  index = document.cookie.indexOf( name);
                  if ( index != -1) {
                           nDeb = (document.cookie.indexOf( "=", index) + 1);
                           nFin = document.cookie.indexOf( ";", index);
                           if (nFin == -1) {nFin = document.cookie.length;}
                           return unescape(document.cookie.substring(nDeb, nFin));
                  }
         }
         return null;
}


function lireCookie(nom){
	var arg=nom+"=";
	var alen=arg.length;
	var clen=document.cookie.length;
	var i=0;
	while (i<clen){
		var j=i+alen;
		if (document.cookie.substring(i, j)==arg) return getCookieVal(j);
			i=document.cookie.indexOf(" ",i)+1;
		if (i==0) break;
	}
	return null;
}

// Fait défiler un élément horizontalement
function hScroll(idEl,orignalPos,pas,direction){
	if($(idEl)){
		var offsetWidth = $(idEl).getWidth();
		var posActuel = parseInt($(idEl).getStyle('left'));
		if(posActuel < -offsetWidth){
			posActuel = orignalPos;
		}
		else{
			posActuel+= -pas;
		}
		$(idEl).setStyle({'left':posActuel+'px'});
	}
	else{
		alert("'"+idEl+"' was not found !");
	}
}

/* [START] Calendrier en JavaScript */

////this is a global variable to have only one instance of the calendar
//var calendar = null;
//
////@element   => is the <div> where the calender will be rendered by Scal.
////@input     => is the <input> where the date will be updated.
////@container => is the <div> for dragging.
////@source    => is the img/button which raises up the calender, the script will locate the calenar over this control.
//function showCalendar(element, input, container, source)            
//{
//    if (!calendar)
//    {
//        container = $(container);
//        //the Draggable handle is hard coded to "rtop" to avoid other parameter.
//        new Draggable(container, {handle: "rtop", starteffect: Prototype.emptyFunction, endeffect: Prototype.emptyFunction});
//        
//        //The singleton calendar is created.
//        calendar = new scal(element, $(input), 
//        {
//            updateformat: 'mm/dd/yyyy', 
//            closebutton: '&nbsp;', 
//            wrapper: container
//        }); 
//    }
//    else
//    {
//        calendar.updateelement = $(input);
//    }
//
//    var date = new Date($F(input));
//    calendar.setCurrentDate(isNaN(date) ? new Date() : date);
//    
//    //Locates the calendar over the calling control  (in this example the "img").
//    if (source = $(source))
//    {
//        Position.clone($(source), container, {setWidth: false, setHeight: false, offsetLeft: source.getWidth() + 2});
//    }
//    
//    //finally show the calendar =)
//    calendar.openCalendar();
//}

/* [END] Calendrier en JavaScript */