// Calendrier
// Eric Quillévéré 2008
// v.1.0

/*jsl:import ../../charte/js/js_rewrite.js */
/*jsl:import ../../charte/js/js_rewrite_1-02.js */
/*-jsl:import ../1-objets.js */
/*-jsl:import ../3-objetsStandards.js */
var blocCalendrier=null;
var jourVide='.';//String.fromCharCode(160);
var sepDate='/';//String.fromCharCode(160);
var calTimeout=null;
var CalendriersListe=Array();

// [string] opt_idObjDesti : objet destination de la date
// [bool] opt_exergueSamediDimanche : style différent pour le samedi/dimanche
function calendrier(nomParent, nomObjDateACreer, 
	opt_nomObjetLien, opt_dateDefaut, 
	opt_MinYear, opt_MaxYear, 
	opt_DateMini, opt_JoursSelectionnables,
	opt_FonctionApresChoix, opt_exergueSamediDimanche,
	opt_Classe_Input)
	{
	if (nonDef(opt_MinYear)) opt_MinYear=null;
	if (nonDef(opt_MaxYear)) opt_MaxYear=null;
	if (nonDef(opt_FonctionApresChoix)) opt_FonctionApresChoix=null;
	if (nonDef(opt_JoursSelectionnables)) opt_JoursSelectionnables=Array(true,true,true,true,true,true,true);
	if (nonDef(opt_DateMini)) opt_DateMini=null;
	if (nonDef(opt_exergueSamediDimanche)) opt_exergueSamediDimanche=true;
	
	
	var objParent=obj(nomParent);
	if (!objParent) return;


	var objDIV=obj_Cree('div', objParent, null, null, null, opt_Classe_Input);
	
	var objINPUTAffiche=obj_Cree('input', objDIV);
	var objINPUTStocke=obj_Cree('input', objDIV, nomObjDateACreer);
	obj_Cache(objINPUTStocke, true);
	objINPUTAffiche.setAttribute('readonly','true');

	if (!nonDef(opt_dateDefaut))
		{
		if (typeof opt_dateDefaut =='string')
			{ //YYYYMMDD, YYYY.MM.DD, YYYY-MM-DD -> DD.MM.YYYY
			var M=opt_dateDefaut.match(/(\d{4})[.-]?(\d{2})[.-]?(\d{2})/);
			if (M!==false)
				{
				opt_dateDefaut=new Date(M[1], M[2]-1, M[0]);
				}
			else opt_dateDefaut=date_Aujourdui();
			}

		objINPUTAffiche.value=date_Formate_FR(opt_dateDefaut.getDate(), opt_dateDefaut.getMonth()+1,  opt_dateDefaut.getFullYear());
		objINPUTStocke.value=date_Formate_Separ(opt_dateDefaut.getDate(), opt_dateDefaut.getMonth()+1,  opt_dateDefaut.getFullYear());
		}
	else
		{
		objINPUTAffiche.value='';
		objINPUTStocke.value='';
		}
		
	objINPUTStocke.joursSelectionnables=opt_JoursSelectionnables;
	objINPUTStocke.dateMini=opt_DateMini;
	objINPUTStocke.exergueSamediDimanche=opt_exergueSamediDimanche;

	// Supprime date
	var objSUPP=obj_Cree('div', objDIV, null, null, null, 'calendrierSupprime');
	
	objINPUTAffiche.style.position='absolute';
	var largeurInput=objDIV.offsetWidth-objSUPP.offsetWidth-6;
	
	objINPUTAffiche.style.width=largeurInput + 'px';
	objSUPP.style.position='relative';
	
	objSUPP.style.left= largeurInput + 'px';
	objSUPP.style.top= ((objDIV.offsetHeight-objSUPP.offsetHeight)/2) + 'px';
	
	objSUPP.onclick=function()
		{
		if (objINPUTAffiche!=blocCalendrier.objINPUTAffiche)
			calendrierAttribue(objINPUTAffiche, objINPUTStocke);

		if (blocCalendrier.objINPUTStocke.value!=='')
			{
			blocCalendrier.Annee=1;
			calendrierFerme(true);
			}
		else
			calendrierFerme(false);

		};
	
	if (!blocCalendrier) 
		{
		blocCalendrier=calendrierStructure(objParent);
		blocCalendrier.FonctionApresChoix=opt_FonctionApresChoix;
		}	
	
	var objAfficheCal=null;
	if (!nonDef(opt_nomObjetLien))	
		objAfficheCal=obj(opt_nomObjetLien);
	if (nonDef(objAfficheCal))	
		objAfficheCal=objINPUTAffiche;

	
	objAfficheCal.onclick=function()
		{
		calendrierTimeoutEfface();
		if (!blocCalendrier.estVisible || objINPUTAffiche!=blocCalendrier.objINPUTAffiche)
			calendrierAttribue(objINPUTAffiche, objINPUTStocke);
		else
			calendrierFerme(false);
		};
	objAfficheCal.onmouseout=calendrierTimeoutFixe;
	
	blocCalendrier.onmouseover=calendrierTimeoutEfface;
	blocCalendrier.onmouseout=calendrierTimeoutFixe;		

	blocCalendrier.anneeMin=opt_MinYear; 
	blocCalendrier.anneeMax=opt_MaxYear;

	}

// Ferme le calendrier
function calendrierFerme(sauver)
	{
	if (sauver)
		{
		//if (!blocCalendrier.DayExists) return;
		calendrierStockeDate(blocCalendrier.Jour, blocCalendrier.Mois, blocCalendrier.Annee);
		
		if (blocCalendrier.FonctionApresChoix)
			blocCalendrier.FonctionApresChoix();
		}
	obj_Cache(blocCalendrier);
	blocCalendrier.estVisible=false; 

	}


// Affiche la date
function calendrierStockeDate(d, m, y) 
	{
	if (blocCalendrier)
		{
		if (y==1 || !blocCalendrier.datePrecisee)
			// Date vide
			{
			blocCalendrier.objINPUTAffiche.value='';
			blocCalendrier.objINPUTStocke.value='';
			}
		else
			{
			blocCalendrier.objINPUTAffiche.value=date_Formate_FR(d, m, y);
			blocCalendrier.objINPUTStocke.value=date_Formate_Separ(d,m,y);
			}
		
		}
	}



function calendrierStructure(objParent)
	{
	var objCal=obj_Cree('div', objParent);
	obj_Cache(objCal);
	var objTable=obj_Cree('table', objCal, 'Calendar');
	objTable.setAttribute('cellspacing','2');
	objTable.setAttribute('cellpadding','0');
	
	var objTBody=obj_Cree('tbody', objTable);

	var objTR=obj_Cree('tr', objTBody);
	var objTD=obj_Cree('td', objTR);
	objTD.setAttribute('height','100%');
	objTD.colSpan=3; 
	objTD.setAttribute('valign','top');
		
	var objTableJours=calendrierStructureJours (objTD);
		

	objTR=obj_Cree('tr', objTBody);
	
	// Mois
	var objTD1=obj_Cree('td', objTR);
	var objINPUTMois=calendrierStructureMois(objTD1);		
	
	// Année
	var objTD2=obj_Cree('td', objTR);	
	objTD2.setAttribute('height','1%');
	var objINPUTAnnee=calendrierStructureAnnee(objTD2);
	

	// Bouton OK
	var objTD3=obj_Cree('td', objTR);	
	var objBouton=obj_CreeDiv(objTD3, null, 'calBoutonOK'); 
	objBouton.innerHTML='ok';
	objBouton.onclick=function()
		{
		calendrierFerme(true);
		};		
	
	
	objCal.InputMois=objINPUTMois;
	objCal.InputAnnee=objINPUTAnnee;
	objCal.Cal=objTable; 
	objCal.objTableJours=objTableJours; 
	objCal.estVisible=false;

	return objCal;
	}



	
// Ajoute/enlève un mois
function calendrierMoisIncrement(YDelta)
	{
	
	var Annee=parseInt(blocCalendrier.Annee);
	var Mois=parseInt(blocCalendrier.Mois);

	if (YDelta!==0)
		{
		if ((Mois+YDelta===0 && (blocCalendrier.anneeMin!==null && Annee-1>=blocCalendrier.anneeMin) || blocCalendrier.anneeMin===null) ||
			(Mois+YDelta==13 && (blocCalendrier.anneeMax!==null && Annee+YDelta<=blocCalendrier.anneeMax) || blocCalendrier.anneeMax===null) ||
			(Mois+YDelta>=1 && Mois+YDelta<=12) )
			{
			Mois+=YDelta;
			
			if (Mois===0) 
				{
				Mois=12;	calendrierAnneeIncrement(-1);
				}
			else if (Mois==13) 
				{
				Mois=1;	calendrierAnneeIncrement(+1);
				}
				
			blocCalendrier.Mois=Mois;
			blocCalendrier.Jour=1;

			}
		}
	calendrierAfficheJour(blocCalendrier.Jour, blocCalendrier.Mois, Annee);
	}	
	
// Ajoute/enlève une année
function calendrierAnneeIncrement(YDelta)
	{
	var Annee=parseInt(blocCalendrier.Annee);

	if (YDelta!==0)
		{
		
		if ( ( (blocCalendrier.anneeMin!==null && Annee+YDelta>=blocCalendrier.anneeMin) || blocCalendrier.anneeMin===null) &&
			 ( (blocCalendrier.anneeMax!==null && Annee+YDelta<=blocCalendrier.anneeMax) || blocCalendrier.anneeMax===null))
			{
			Annee+=YDelta;
			blocCalendrier.Annee=Annee;
			blocCalendrier.Jour=1;
			blocCalendrier.InputAnnee.value=Annee;
			}
		}
	calendrierAfficheJour(blocCalendrier.Jour, blocCalendrier.Mois, Annee);
	}

	
// Ajoute les mois
function calendrierStructureMois(objParent)
	{
	var objTable=obj_Cree('table', objParent);
	//objTable.setAttribute('width','100%');
	objTable.setAttribute('border','0');
	
	var objTBody=obj_Cree('tbody', objTable);
	var objTR=obj_Cree('tr', objTBody);
	
	var objTD=obj_Cree('td', objTR);
	objTD.setAttribute('width','11');
	objTD.setAttribute('valign','middle');
	var objBouton;
	objBouton=obj_CreeDiv(objTD, null, 'calendrierAnneePreced'); 
	objBouton.onclick=function()
		{ 
		calendrierMoisIncrement(-1);
		};

	objTD=obj_Cree('td', objTR);
	var objInputMois=obj_Cree('input', objTD, null, null, null, 'calMois');
	objInputMois.setAttribute('readonly','readonly');
	//objInputMois.style.width='100%';
	
	objTD=obj_Cree('td', objTR);
	objTD.setAttribute('width','11');
	objTD.setAttribute('valign','middle');
	objBouton=obj_CreeDiv(objTD, null, 'calendrierAnneeSuiv');
	objBouton.onclick=function()
		{ 
		calendrierMoisIncrement(1);
		};	
	
	
	
	//var objSELECT=obj_Cree('select', objTD, 'MonSel', null, null, 'calMois');	
	/*
	var Months=listeMois.split(',');
	for(var i=0; i<12; i++)
		{
		var objOPTION=obj_Cree('OPTION', objSELECT);	
		objOPTION.value=i;
		objOPTION.innerHTML=Months[i];
		objOPTION.onmouseover=calendrierTimeoutEfface; // pour IE
		}
		*/
	//objSELECT.style.overflow='hidden';
	//objSELECT.onchange=function(){calendrierAnneeIncrement(0);};
	//objSELECT.ondblclick=function(){calendrierFerme(true);};
	//objSELECT.setAttribute('size',1);
	//objSELECT.style.width='100%';
	//objSELECT.onmouseover=calendrierTimeoutEfface; // pour IE
	return objInputMois;
	}	
	

function calendrierStructureAnnee(objParent)
	{
	var objTable=obj_Cree('table', objParent);
	objTable.setAttribute('width','100%');
	objTable.setAttribute('border','0');
	
	var objTBody=obj_Cree('tbody', objTable);
	var objTR=obj_Cree('tr', objTBody);
	
	var objTD=obj_Cree('td', objTR);
	objTD.setAttribute('width','11');
	objTD.setAttribute('valign','middle');
	var objBouton;
	objBouton=obj_CreeDiv(objTD, null, 'calendrierAnneePreced'); 
	objBouton.onclick=function()
		{ 
		calendrierAnneeIncrement(-1);
		};

	objTD=obj_Cree('td', objTR);
	var objINPUTAnnee=obj_Cree('input', objTD, null, null, null, 'calAnnee');
	objINPUTAnnee.setAttribute('readonly','readonly');
	//objINPUTAnnee.style.width='100%';
	
	objTD=obj_Cree('td', objTR);
	objTD.setAttribute('width','11');
	objTD.setAttribute('valign','middle');
	objBouton=obj_CreeDiv(objTD, null, 'calendrierAnneeSuiv');
	objBouton.onclick=function()
		{ 
		calendrierAnneeIncrement(1);
		};

	return objINPUTAnnee;
	}	

	
function calendrierStructureJours(objTD)
	{
	var objTable2=obj_Cree('table',  objTD);
	objTable2.setAttribute('height','100%');
	objTable2.setAttribute('cellspacing','1');
	objTable2.setAttribute('cellpadding','0');

	var objTBody2=obj_Cree('tbody', objTable2);
	var objTR2=obj_Cree('tr', objTBody2);

	var objTD2=obj_Cree('td',objTR2, null, null, null, 'calJours');	
	objTD2.setAttribute('valign','top');
	
	// Ajoute les jours
	var objTableJours=obj_Cree('table',  objTD2);
	objTableJours.setAttribute('cellspacing','0');
	var objTBody3=obj_Cree('tbody', objTableJours);
	var objTR3=obj_Cree('tr', objTBody3, null, null, null, 'Semaine');
		
	
	var listeJours='Lun,Mar,Mer,Jeu,Ven,Sam,Dim'.split(',');
		
	for(var i=0; i<7; i++) 
		{
		var objTD3=obj_Cree('td',  objTR3, null, null, null, 'jourNom');		
		objTD3.innerHTML=listeJours[i];
		}

	// Jours
	for(var numLigne=0; numLigne<6; numLigne++)
		{
		var objTR4=obj_Cree('tr', objTBody3);
		for(i=0; i<7; i++)
			{
			var objTD4=obj_Cree('td', objTR4,null,null,null,'jourTD');	
			}
		}
		
	return objTableJours;
	
	}




function calendrierAfficheJour(jourSel, moisSel, anneeSel)
	{
	blocCalendrier.jourSelectionne=null;
	var Rows=blocCalendrier.objTableJours.getElementsByTagName('TR');
	
	var dtJourSel;
	dtJourSel=new Date(blocCalendrier.Annee, blocCalendrier.Mois-1, blocCalendrier.Jour);
	
	// 1er jour du mois
	var DT=new Date();
	DT.setDate(1); DT.setHours(12, 0, 0, 0);
	//alert(jourSel +'/'+ moisSel +'/'+anneeSel);
	if (anneeSel) DT.setFullYear(anneeSel); else anneeSel=DT.getFullYear();
	if (moisSel!==null) DT.setMonth(moisSel-1); else moisSel=DT.getMonth()+1;

	var nbJours=calendrierNbJoursMois(DT);
	
	var jour=date_JourJSVersNumJour(DT); 
	var numLigne=1;
	var Row=Rows[numLigne].childNodes;
	
	// Mois précédent
	var i=0;
	var fin=false;
	for (i=1;i<jour;i++)
		calendrierCaseTD(Row[i-1], jourVide, 'jourVide');

	//Mois actuel
	for(i=1; i<=nbJours; i++)
		{
		var estJourActuel=false;
		var classeJour;
		var dateAjout=new Date(anneeSel, moisSel-1, i);
		
		
		var estSelectionnable=false;
		if (blocCalendrier.objINPUTStocke.joursSelectionnables[jour-1] && 
		( (!blocCalendrier.objINPUTStocke.dateMini) || 
			(blocCalendrier.objINPUTStocke.dateMini && dateEstSuperieureOuEgale(dateAjout, blocCalendrier.objINPUTStocke.dateMini))))
			{
			estSelectionnable=true;
			classeJour='jourNormalSelect';
			if (dateEgales(dateAjout, dtJourSel) && blocCalendrier.datePrecisee)
				{
				//alert (dateAjout  +'\r\n'+ dtJourSel);
				estJourActuel=true;
				}
			else
				{
				if (blocCalendrier.objINPUTStocke.exergueSamediDimanche && (jour==6 || jour==7))
					classeJour='jourNormalSelectSamDim';
				}
			}
		else
			{
			classeJour='jourNormalNonSelect';
			}

		
		var objElem=calendrierCaseTD(Row[jour-1], i, classeJour, estSelectionnable, estJourActuel); 
		jour++;
		
		if (jour==8) 
			{
			numLigne++; 
			Row=Rows[numLigne].childNodes;
			jour=1;
			}
		
		}

	//Mois suivant
	while(true)
		{
		if (jour==8)
			{
			numLigne++; 
			if (numLigne==7) break;
			jour=1; 
			Row=Rows[numLigne].childNodes;
			}
		calendrierCaseTD(Row[jour-1], jourVide);
		
		jour++;
		}
		
	var listeMois="Janvier,Février,Mars,Avril,Mai,Juin,Juillet,Août,Septembre,Octobre,Novembre,Décembre";
	var tabMois=listeMois.split(',');	
	blocCalendrier.InputMois.value=tabMois[moisSel-1];
	}

	
function calendrierCaseTD(TD, valeur, classeJour, estSelectionnable, estJourActuel)
	{
	TD.innerHTML='';
	var objJour=null;
	if (valeur!==jourVide)
		{
		objJour=obj_Cree('div', TD, null, null, null, classeJour);		
		objJour.innerHTML=valeur;
		
		if (estSelectionnable)
			{
			objJour.onclick=calendrierCaseTD_click;
			}
			
		if (estJourActuel)
			{
			blocCalendrier.jourSelectionne=objJour;
			objJour.className='jourActuelSelect';
			objJour.onclick;
			}				
		}
	
	return objJour;
	}
	
function calendrierCaseTD_click()
	{
	if (blocCalendrier.jourSelectionne!=this)
		{
		// Remet l'ancienne classe
		if (blocCalendrier.jourSelectionne)
			blocCalendrier.jourSelectionne.className=blocCalendrier.ancienneClasse;
			
		// Mémorise la classe et le bloc sélectionné
		if (this.className=='jourActuelSelect')
			blocCalendrier.ancienneClasse='jourNormalSelect';
		else
			blocCalendrier.ancienneClasse=this.className;
		blocCalendrier.jourSelectionne=this;
		
		// Change la classe
		this.className='jourActuelSelect';
		
		blocCalendrier.Jour=this.innerHTML;
		blocCalendrier.datePrecisee=true;
		}	
	}

	
// Attribue un calendrier à un objet Input
function calendrierAttribue(objINPUTAffiche, objINPUTStocke)
	{
	if (!blocCalendrier.estVisible && objINPUTStocke!==null)
		{
		var valDate=objINPUTStocke.value;
		if (valDate==='')
			{
			valDate=date_Aujourdui(null,true);
			blocCalendrier.datePrecisee=false;
			}
		else
			blocCalendrier.datePrecisee=true;
		var DT=valDate.split(sepDate);	
		
		var y=DT[2]; var m=DT[1]; var d=DT[0];
		blocCalendrier.objINPUTAffiche=objINPUTAffiche; 	
		blocCalendrier.objINPUTStocke=objINPUTStocke; 	
		
		blocCalendrier.InputMois.value=m;
		blocCalendrier.InputAnnee.value=y;
		
		blocCalendrier.Jour=d;
		blocCalendrier.Annee=y;
		blocCalendrier.Mois=m;
		calendrierAfficheJour(d, m, y); 
		
		// Positionnement
		var pos=obj_PosAbs_Renvoie(objINPUTAffiche.parentNode);
		if (navig_IE_6) pos.haut-=400;
		//var taille=objet_TailleRenvoie(objINPUTAffiche.parentNode);
		obj_Pos_Fixe(blocCalendrier, pos.gauche, pos.haut);
		blocCalendrier.style.zIndex=1000;
		obj_Affiche(blocCalendrier);
		
		blocCalendrier.estVisible=true;
		
		}
	}


// Nombre de jours dans le mois
function calendrierNbJoursMois(pDT)
	{
	var DT=new Date(pDT), Mon;

	DT.setDate(1); DT.setHours(0, 0, 0, 0);
	//Suivant
	Mon=DT.getMonth()+1;
	if (Mon>=12){
		Mon=0; DT.setFullYear(DT.getFullYear()+1);
		}
	DT.setMonth(Mon);
	
	DT.setHours(-12); 
	return DT.getDate();
	}




function lpad_2(valeur)
	{
	if (typeof valeur=='number') valeur=valeur.toString();
	return (valeur.length>1 ? valeur : '0'+valeur);
	}

function date_Formate_Separ(d, m, y)
	{
	return lpad_2(d)+sepDate+lpad_2(m)+sepDate+y ;
	}
	
function date_Formate_FR(d, m, y)
	{
	var DT= new Date ( y, m-1, d );
	return date_JourJSVersNomJour(DT, true) + ' ' + d + ' ' + date_JourJSVersNomMois(DT, true).toLowerCase() + ' ' +y ;
	}	

	
// Renvoie un jour à partir d'aujourd'hui
// [int] opt_prochainJour : renvoie le prochain samedi si =6	
function date_Aujourdui(opt_nbJoursSupp, opt_renvoyerChaine, opt_prochainJour)
	{
	if (nonDef(opt_nbJoursSupp)) opt_nbJoursSupp=0;
	if (nonDef(opt_renvoyerChaine)) opt_renvoyerChaine=false;
	if (nonDef(opt_prochainJour)) opt_prochainJour=0;
	var DT=new Date; 
	DT.setDate(DT.getDate()+opt_nbJoursSupp);
		
	// Recherche le prochain numéro jour
	if (opt_prochainJour>=1 && opt_prochainJour<=7)
		{
		while (date_JourJSVersNumJour(DT)!=opt_prochainJour)
			DT.setDate(DT.getDate()+1);
		}
		
	if (opt_renvoyerChaine)
		return date_Formate_Separ(DT.getDate(), DT.getMonth()+1,  DT.getFullYear());
	else
		{
		return new Date ( DT.getFullYear(), DT.getMonth(), DT.getDate() );
		}
	}
	
function date_AnneeActuelle()
	{
	var DT=new Date; 
	return DT.getFullYear();
	}	
	
	
 
function calendrierTimeoutFixe()
	{
	calTimeout=setTimeout('calendrierFerme(false)',1500);
	}

function calendrierTimeoutEfface()
	{
	if (calTimeout!==null) 
		{
		clearTimeout(calTimeout);
		calTimeout=null;
		}
	}

	
	
// Renvoie le nom du mois
function date_JourJSVersNomMois(dateParam, opt_tronquer)	
	{
	var listeMois="Janvier,Février,Mars,Avril,Mai,Juin,Juillet,Août,Septembre,Octobre,Novembre,Décembre";
	var tabMois=listeMois.split(',');	
	var numMois=dateParam.getMonth();
	var nomMois=tabMois[numMois];
	
	if 	(!nonDef(opt_tronquer) && opt_tronquer)
		nomMois=nomMois.substring(0,3) + '.';
	
	return nomMois;
	}	
	
// Renvoie le nom du jour
function date_JourJSVersNomJour(dateParam, opt_tronquer)	
	{
	var listeJours="Dimanche,Lundi,Mardi,Mercredi,Jeudi,Vendredi,Samedi";
	var tabJours=listeJours.split(',');	
	var numJour=dateParam.getDay();
	var nomJour=tabJours[numJour];
	if 	(!nonDef(opt_tronquer) && opt_tronquer)
		nomJour=nomJour.substring(0,3) + '.';
	
	return nomJour;
	}

	
// Renvoie un jour entre 1 et 7 (1=lundi)
function date_JourJSVersNumJour(dateParam)	
	{
	var jour=dateParam.getDay();
	if (jour===0) jour=7;
	return jour;
	}
	
function dateEgales(date1, date2)	
	{
	//alert(date1.getDate() + '/'+(date1.getMonth()+1) + '/'+date1.getFullYear() + ' >> ' + date2.getDate() + '/'+(date2.getMonth()+1) + '/'+date2.getFullYear());
	return (date1.getDate() + '/'+(date1.getMonth()+1) + '/'+date1.getFullYear()) == (date2.getDate() + '/'+(date2.getMonth()+1) + '/'+date2.getFullYear());
	}
	
// Compare 2 dates, renvoie vrai si date1>date2
function dateEstSuperieureOuEgale(date1, date2)
	{
	// Transforme en objet date
	var extr;
	if (typeof date1=='string') 
		{
		extr=date1.split('/');
		date1=new Date (extr[1]+'/'+extr[0]+'/'+extr[2]);
		}
		
	if (typeof date2=='string') 
		{
		extr=date2.split('/');
		date2=new Date (extr[1]+'/'+extr[0]+'/'+extr[2]);
		
		}
	
	if(date1.getFullYear() > date2.getFullYear())
		return true;
	else if(date1.getFullYear() == date2.getFullYear() && date1.getMonth() > date2.getMonth())
		return true;
	else if(date1.getFullYear() == date2.getFullYear() && date1.getMonth() == date2.getMonth() && date1.getDate() >= date2.getDate())
		return true;
	else 
		return false;
	}	
