function file(fichier)
{
     if(window.XMLHttpRequest) // FIREFOX
          xhr_object = new XMLHttpRequest();
     else if(window.ActiveXObject) // IE
          xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
     else
          return(false);
     xhr_object.open("GET", fichier, false);
     xhr_object.send(null);
     if(xhr_object.readyState == 4) return(xhr_object.responseText);
     else return(false);
}

function getElementsByClassName(cl) 
{
    var retnode = [];
    var myclass = new RegExp('\\b'+cl+'\\b');
    var elem = document.getElementsByTagName('*');
    for (var i = 0; i < elem.length; i++) 
    {
        var classes = elem[i].className;
        if (myclass.test(classes)) retnode.push(elem[i]);
    }
    return retnode;
}

function register(cid,techno)
{
    var cgu = document.getElementById('cgu');
    if(cgu.checked == false)
    {
        window.scrollTo(0,0);
        document.getElementById('cgu_text').style.color = 'red';
        document.getElementById('cgu_text').style.fontWeight = 'bolder';
        return false;
    }
    var check = getElementsByClassName('check');
    var nbgames = 0;
    var gamerequest = '';
    for(i in check)
    {
        var tab = check[i].name.split('game');
        if (check[i].checked == true)
        {
            gamerequest += 'game[]='+tab[1]+'|1&';
            nbgames++;
        }
        else if(check[i].checked == false)
        {
            gamerequest += 'game[]='+tab[1]+'|0&';
        }
    }
    //if (nbgames == 0)
    //{
    //    document.getElementById('errormsg').style.display = '';
    //    document.getElementById('errormsg').innerHTML = 'You must select at least 1 game';
    //    return false;
    //}
    resp = file('contest-register-action.php?register=1&'+gamerequest+'contest='+cid+'&nbgames='+nbgames);
    if(resp == 'nok')
    {
        document.getElementById('errormsg').style.display = '';
        document.getElementById('errormsg').className = 'error';
        document.getElementById('errormsg').innerHTML = 'Error: this is a <span id="nbmaxgames">&nbsp;</span> games contest. You cannot submit games running on other technologies.';
        document.getElementById('nbmaxgames').innerHTML = techno;
    }
    else if(resp == 'ok')
    {
        document.getElementById('errormsg').style.display = 'none';
        document.location.href='newgame-valid.php?contest='+cid;
    }
	else if(resp == 'testok')
    {
        document.getElementById('errormsg').style.display = 'none';
        document.location.href='test ok';
		return false;
    }
    else
    {
        document.getElementById('errormsg').style.display = '';
        document.getElementById('errormsg').className = 'error';
        document.getElementById('errormsg').innerHTML = 'Error: you cannot submit more than <span id="nbmaxgames">&nbsp;</span> game(s) for this contest.';
        document.getElementById('nbmaxgames').innerHTML = resp;
    }
}


function verifDate()
{
    var startDay = parseInt(document.newcontest.begin_dateday.value); 
    var startMonth = parseInt(document.newcontest.begin_datemonth.value);
    var startYear = parseInt(document.newcontest.begin_dateyear.value);
    var endDay = parseInt(document.newcontest.end_dateday.value);
    var endMonth = parseInt(document.newcontest.end_datemonth.value);
    var endYear = parseInt(document.newcontest.end_dateyear.value);
    if (endYear > startYear)
    {
        return true;
    }
    else if(endYear == startYear && endMonth > startMonth)
    {
        return true;
    }
    else if (endYear == startYear && endMonth == startMonth && endDay > startDay)
    {
        return true;
    }
    else
    {
        return false;
    }    
}

function submitContest()
{
    if (document.newcontest.title.value == '')
    {
        document.getElementById('messages').style.display = '';
        document.getElementById('messages').innerHTML = 'Please enter a title for the contest';
        return false;
    }
    else if (document.newcontest.pres.value == '')
    {
        document.getElementById('messages').style.display = '';
        document.getElementById('messages').innerHTML = 'Please enter a presentation for the contest';
        return false;
    }
    else if (document.newcontest.rules.value == '')
    {
        document.getElementById('messages').style.display = '';
        document.getElementById('messages').innerHTML = 'Please enter rules for the contest';
        return false;
    }
    else if (verifDate() == false)
    {
        document.getElementById('messages').style.display = '';
        document.getElementById('messages').innerHTML = 'End date must be posterior to start date';
        return false;
    }
    else
        return true;
}

function afficheTabContest(limit)
{
    resp2 = file('contest-action.php?filter=open'+(limit ? '&limit='+limit : ''));
    resp3 = file('contest-action.php?filter=closed'+(limit ? '&limit='+limit : ''));
    resp4 = file('contest-action.php?filter=evaluated'+(limit ? '&limit='+limit : ''));
    
    with (atsm = new tabStripMenu("contests",600,80))
    {
        addTab('Accepting submission', resp2);
        addTab('in evaluation', resp3);
        addTab('finished', resp4);
        build(1);
    }
}

function headSwitch(i,id)
{
    document.getElementById('tab'+id+'selected').innerHTML = document.getElementById('mytab'+i+""+id).innerHTML;
}

function popup(link,title,width,height)
{
    var left = (window.screenX || window.screenLeft) + Math.round(((window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth)- width ) / 2.0);
    var top = (window.screenY || window.screenTop) + Math.round(((window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight) - height) / 2.0);
    var options = 'left='+left+',top='+top+',height='+height+',width='+width+',scrollbars,resizable';
    pop = window.open(link, 'law', options);    
    pop.focus();
}
function contestTrophy (selectedGameId, listStringGameId,catid) 
{
	var imgGagnant = 'images/contest/cup.png';
	var imgPerdant = 'images/contest/no_cup.png';
	var nameIdImage = 'imgtrophycat';

	var arrayGameId = listStringGameId.split(',');
	
	for (a in  arrayGameId) {
		
		if (selectedGameId == arrayGameId[a]) {
			try {
				document.getElementById(nameIdImage+arrayGameId[a]).src=imgGagnant;
			}
			catch(err) {				
			}
			
		}
		else {
			try {				
				document.getElementById(nameIdImage+arrayGameId[a]).src=imgPerdant;
			}
			catch(err) {				
			}

		}
	}
		


	try {
		document.getElementById('selectedcat'+catid).value=selectedGameId;
	}
	catch(err) {
	}


}

function loadImageTop3 (min,catid, listStringGameId, nb)
{
	var strInnerHTML="";
	var max2GameDisplay=3;
	var max;	


	if (min==0) 
		document.getElementById('arrowUp'+catid).style.visibility = "hidden";
	else
		document.getElementById('arrowUp'+catid).style.visibility = "visible";

	if (max2GameDisplay>nb) 
	{
		max2GameDisplay=nb;
	}	
	max=min+max2GameDisplay;

	
	if (max==nb)
		document.getElementById('arrowDown'+catid).style.visibility = "hidden";
	else
		document.getElementById('arrowDown'+catid).style.visibility = "visible";


	for  (i=min ; i < max ; i++)
		strInnerHTML += gameDisplay[catid][i];
	
	

	document.getElementById('divCat'+catid).innerHTML = "<table>"+strInnerHTML+'</table>';
	
	contestTrophy (document.getElementById('selectedcat'+catid).value, listStringGameId,catid);
		
}

function validContest (strError) 
{
	
	if (document.getElementById('selectedcat1').value == 0 ||
		document.getElementById('selectedcat2').value == 0 ||
		document.getElementById('selectedcat3').value == 0
	)
	{
		alert (strError);
		return false;
	}
	else
	{
		document.form.submit(); 
		return true;
	}
}	
