﻿function $(id){return document.getElementById(id);}

function isNumberKey(evt){  
	var charCode=(evt.which)?evt.which:event.keyCode;  
	if(charCode>31 && (charCode<48 || charCode>57)){return false;}
	return true;
}  

function createCalendar(a,b,c){
	if(a!=''){currentD=a;}
	if(b!=''){currentM=(b>0)?b-1:11-(b-1);}
	if(c!=''){currentY=c;}
	for(var i1=1; i1<=6; i1++){
		tbody+='<tr>';
		for(var i2=1; i2<=7; i2++){
			var num=7*(i1-1)-(-i2);
			tbody+='<td id="c'+num+'">&nbsp;</td>';
		}
		tbody+='</tr>';
	}
	tbody+='</tbody><tfoot><tr><td abbr="prev" colspan="3" id="prev"></td><td class="calendar_empty">&nbsp;</td><td abbr="next" colspan="3" id="next"></td></tr></tfoot></table>';
	if($('calendar')){
		$('calendar').innerHTML=$('calendar').innerHTML+tbody;
	}
	setCalendar(currentD, currentM, currentY);
}

function next(){
	var ind=((currentY%4)==0)?3:2;
	currentM++;
	if(currentM>=12){
		currentM=0;
		currentY++;
	}
	setCalendar(currentD,currentM,currentY);
}

function prev(){
	var ind=((currentY%4)==0)?3:2;
	currentM--;
	if(currentM<0){
		currentM=11;
		currentY--;
	}
	setCalendar(currentD,currentM,currentY);
}

function jourSemaine(v){
	return (v==0)?7:v; // car getDay retourne 0 pour dimanche
}

function setCalendar(day,m,y){
	for(var d=1; d<=42; d++){
		$('c'+parseInt(d)).style.background='#EFEFEF';
	}
	var changedDate=new Date();
	changedDate.setDate(1);
	changedDate.setMonth(m);
	changedDate.setFullYear(y);
	//alert(m+' '+changedDate.getMonth()+' '+changedDate.getDay());
	if(m==0){
		var prevM=11;
		var prevY=changedDate.getFullYear()-1;
	}else{
		var prevM=currentM-1;
		var prevY=changedDate.getFullYear();
	}
	if(m==11){
		var nextM=0;
		var nextY=changedDate.getFullYear()+1;
	}else{
		var nextM=currentM+1;
		var nextY=changedDate.getFullYear();
	}
	if($('prev')){
		$('prev').abbr=month[prevM][1];
		$('prev').innerHTML='<a href="javascript:void(0);" onclick="prev();" title="'+changeDate+' '+month[prevM][1]+' '+prevY+'">&laquo; '+month[prevM][0]+'</a>';
	}
	var suivant=false;
	if(nextY<now.getFullYear()){
		suivant=true;
	}else if(nextY==now.getFullYear()){
		suivant=(nextM<=now.getMonth())?true:false;
	}
	if(suivant){
		if($('next')){
			$('next').abbr=month[nextM][1];
			$('next').innerHTML='<a href="javascript:void(0);" onclick="next();" title="'+changeDate+' '+month[nextM][1]+' '+nextY+'">'+month[nextM][0]+' &raquo;</a>';
		}
	}else{
		if($('next')){
			$('next').innerHTML='';
		}
	}
	if($('caption')){$('caption').innerHTML=month[m][1]+' '+changedDate.getFullYear();}
	var ind=((changedDate.getFullYear()%4)==0)?3:2;
	for(var d=1; d<=42; d++){
		//if(changedDate.getDay()==0){alert(d+'>='+(jourSemaine(changedDate.getDay()))+' && '+d+'<='+(jourSemaine(changedDate.getDay())-(-month[m][ind])));}
		if((d>=(jourSemaine(changedDate.getDay())) && (d<jourSemaine(changedDate.getDay())-(-month[m][ind])))){
			if($('c'+parseInt(d))){
				var DateFormatee=(d-jourSemaine(changedDate.getDay())+1)+' '+month[m][1]+' '+changedDate.getFullYear();
				if(lng=='uk'){
					DateFormatee=month[m][1]+', '+(d-jourSemaine(changedDate.getDay())+1);
					switch(d-jourSemaine(changedDate.getDay())+1){
						case 1: DateFormatee+='st'; break;
						case 2: DateFormatee+='nd'; break;
						case 3: DateFormatee+='rd'; break;
						default: DateFormatee+='th'; break;
					}
					DateFormatee+=' '+changedDate.getFullYear();
				}else if(lng=='de'){
					DateFormatee=(d-jourSemaine(changedDate.getDay())+1)+'. '+month[m][1]+' '+changedDate.getFullYear();
				}
				if((d-jourSemaine(changedDate.getDay())+1)==day){$('c'+parseInt(d)).style.background='#FFD000';}
				if((d-jourSemaine(changedDate.getDay())+1)!=day){
					$('c'+parseInt(d)).onmouseover=function(){this.style.background='#FFD000';}
					$('c'+parseInt(d)).onmouseout=function(){this.style.background='#EFEFEF';}
				}
				$('c'+parseInt(d)).varD=d-jourSemaine(changedDate.getDay())+1;
				$('c'+parseInt(d)).varM=m;
				$('c'+parseInt(d)).varY=changedDate.getFullYear();
				$('c'+parseInt(d)).onclick=function(){setSearchDate(this.varD, this.varM, this.varY);}
				$('c'+parseInt(d)).innerHTML='<a href="javascript:void(0);" onclick="setSearchDate('+(d-jourSemaine(changedDate.getDay())+1)+', '+m+', '+changedDate.getFullYear()+');" title="'+article_Le+DateFormatee+'">'+(d-jourSemaine(changedDate.getDay())+1)+'</a>';
			}
		}else{
			if($('c'+parseInt(d))){
				$('c'+d).innerHTML='&nbsp;';
				$('c'+d).className='calendar_empty';
			}
		}
	}
	var doc=document.search;
	doc.day.value=currentD;
	doc.month.value=(currentM+1);
	doc.year.value=currentY;
}

function setSearchDate(d, m, y){
	var e=document.search;
	e.bridge_tournament.value='';
	e.player.value='';
	e.day.value=d;
	e.month.value=(m+1);
	e.year.value=y;
	e.submit();
}

function scroll_Top(acceleration, time){
    acceleration=acceleration || 0.1;
    time=time || 16;
    var dx=0;
    var dy=0;
    var bx=0;
    var by=0;
    var wx=0;
    var wy=0;
    if(document.documentElement){
        dx=document.documentElement.scrollLeft || 0;
        dy=document.documentElement.scrollTop || 0;
    }
    if(document.body){
        bx=document.body.scrollLeft || 0;
        by=document.body.scrollTop || 0;
    }
    var wx=window.scrollX || 0;
    var wy=window.scrollY || 0;
    var x=Math.max(wx, Math.max(bx, dx));
    var y=Math.max(wy, Math.max(by, dy));
    var speed=1+acceleration;
    window.scrollTo(Math.floor(x/speed), Math.floor(y/speed));
    if(x>0 || y>0){
        var invokeFunction="scroll_Top("+acceleration+", "+time+")";
        window.setTimeout(invokeFunction, time);
    }
}