
function clearstyle()
{
	$(this).attr("style", "");
}

function loadnewspage(articleid,listcolumn, targetcolumn, column3, refreshlist)
{
	if(refreshlist)
	{
		$("#" + listcolumn).removeClass();
		$("#" + listcolumn).html("");
	}
	$("#" + targetcolumn).removeClass();
	$("#" + targetcolumn).html("");
	$("#" + column3).removeClass();
	$("#" + column3).html("");

	if(refreshlist) { loadarticlelist(listcolumn, targetcolumn); }
	if(articleid > 0) loadarticle(articleid, targetcolumn);

}

function loadleaderboard(GPid, targetcolumn, column1, column2, column3, sortbyaverage)
{
	$("#" + column1).removeClass();
	$("#" + column1).html("");
	$("#" + column2).removeClass();
	$("#" + column2).html("");
	$("#" + column3).removeClass();
	$("#" + column3).html("");
	$("#" + targetcolumn).addClass("widecontentcolumn");

	$.getJSON("/include/getdata.php", { content: "leaderboard", GPid: GPid, sortbyaverage: sortbyaverage}, function(data) { $("#" + targetcolumn).html(data.table); $("#" + targetcolumn).show("blind", {}, 500, function () {$(this).attr("style", ""); }); });

}

function loadchampboards(GPid, drivercolumn, teamcolumn, column1, column2, column3)
{
	$("#" + column1).removeClass();
	$("#" + column1).html("");
	$("#" + column2).removeClass();
	$("#" + column2).html("");
	$("#" + column3).removeClass();
	$("#" + column3).html("");
	$("#" + drivercolumn).addClass("doublecontentcolumn");
	$("#" + teamcolumn).addClass("doublecontentcolumn");
	$.getJSON("/include/getdata.php", { content: "champdriverboard", GPid: GPid}, function(data) { $("#" + drivercolumn).html(data.table); $("#" + drivercolumn).show("blind", {}, 500, function () {$(this).attr("style", "");}); });
	$.getJSON("/include/getdata.php", { content: "champteamboard", GPid: GPid}, function(data) { $("#" + teamcolumn).html(data.table); $("#" + teamcolumn).show("blind", {}, 500, function () {$(this).attr("style", "");}); });
}

function loadmyff1page(column1, column2, column3, mode, refreshmenu, container)
{
	if(refreshmenu) $("#" + column1).hide("blind", {}, 500, clearstyle);
	$("#" + column2).hide("blind", {}, 500, clearstyle);
	$("#" + column3).hide("blind", {}, 500, clearstyle);
    if(refreshmenu)$("#" + column1).removeClass();
    $("#" + column2).removeClass();
    $("#" + column3).removeClass();
    if(refreshmenu) $("#" + column1).addClass("contentcolumn racemenubox");
    $("#" + column2).addClass("contentcolumn centrecolumn");
    $("#" + column3).addClass("contentcolumn");

    if(refreshmenu) { loadmyff1menu(mode, column1, column2, column3); }
    else
	{
    	$("#myff1_menu_details").attr("src", (mode == "profile") ? "/images/layout/menu/on/mydetails.png" : "/images/layout/menu/off/mydetails.png" );
    	$("#myff1_menu_autopredict").attr("src", (mode == "autopredict") ? "/images/layout/menu/on/autopredict.png" : "/images/layout/menu/off/autopredict.png" );
    	$("#myff1_menu_groups").attr("src", (mode == "groups") ? "/images/layout/menu/on/groups.png" : "/images/layout/menu/off/groups.png" );
    }


	switch(mode)
	{
		case 'profile':
			loaddetailsform(column2);
			loadstatstable(column3);
			break;
		case 'autopredict':
			loaddriverlist(0, container, column2, 'driverlist', 'driver_', true);
            loadpredictlist(0, 0, column3, 'predictlist', 'predict_', 'driver_', 1, 0, 1, true);
        	break;
        case'groups':
			loadgrouplist(column2);
        	break;
	}
}

function loadgrouplist(target)
{
	if($(target))
	{
		$.getJSON("/include/getdata.php", {content: "grouplist"}, function() {$(target).html(data.grouplist);})
	}
}

function loadracepage(raceid, trackid, container, column1, column2, column3, mode, refreshmenu)
{
	if(refreshmenu) { $("#" + column1).hide("blind", {}, 500, clearstyle); }
	$("#" + column2).hide("blind", {}, 500, clearstyle);
	$("#" + column3).hide("blind", {}, 500, clearstyle);
    if(refreshmenu)$("#" + column1).removeClass();
    $("#" + column2).removeClass();
    $("#" + column3).removeClass();
    if(refreshmenu) $("#" + column1).addClass("contentcolumn racemenubox");
    $("#" + column2).addClass("contentcolumn centrecolumn");
    $("#" + column3).addClass("contentcolumn");

	if(refreshmenu) loadracemenu(raceid, trackid, mode, column1, column2, column3, container);
    else
	{
    	$("#race_menu_predict").attr("src", (mode == "predict") ? "/images/layout/menu/on/predict.png" : "/images/layout/menu/off/predict.png" );
    	$("#race_menu_champ").attr("src", (mode == "champ") ? "/images/layout/menu/on/champ.png" : "/images/layout/menu/off/champ.png" );
    	$("#race_menu_comp").attr("src", (mode == "comp") ? "/images/layout/menu/on/comp.png" : "/images/layout/menu/off/comp.png" );
    }
	switch(mode)
	{
		case 'predict':
			loaddriverlist(raceid, container, column2, 'driverlist', 'driver_', true);
            loadpredictlist(raceid, 0, column3, 'predictlist', 'predict_', 'driver_', 1, 0, 1, true);
			break;
		case 'champ':
        	loadresultlist(raceid, 2, column2, 'qualiresultlist', 'qualiresult_');
            loadresultlist(raceid, 1, column3, 'raceresultslist', 'raceresult_');
        	break;
        case'comp':
        	loadpointlist(raceid, column2, column3, "pointslist", "points_");
        	break;
	}
}

function loadracemenu(raceid, trackid, mode, targetcolumn, centrecolumn, rightcolumn, container)
{
	$("#" + targetcolumn).html("");
	$.getJSON("/include/getdata.php", { content: "racemenu", raceid: raceid, centrecolumn: centrecolumn, rightcolumn: rightcolumn, mode: mode}, function(data) { loadracemenusuccess(data, targetcolumn, centrecolumn, rightcolumn, container, raceid, trackid); });
}

function loadmyff1menu(mode, targetcolumn, centrecolumn, rightcolumn)
{
	$("#" + targetcolumn).html("");
	$.getJSON("/include/getdata.php", { content: "myff1menu", centrecolumn: centrecolumn, rightcolumn: rightcolumn, mode: mode}, function(data) { loadmyff1menusuccess(data, targetcolumn, centrecolumn, rightcolumn); });
}

function loadarticlelist(targetcolumn, articlecolumn)
{
	$("#" + targetcolumn).html("");
	$.getJSON("/include/getdata.php", { content: "articlelist", centrecolumn: articlecolumn }, function(data) { $("#" + targetcolumn).html(data.table); $("#" + targetcolumn).addClass("contentcolumn newslistbox"); $("#" + targetcolumn).show("slide", {}, 500, clearstyle); });
}

function loaddriverlist(raceid, container, targetcolumn, listname, driverboxname, draggable)
{
	$("#" + targetcolumn).html("");
	$.getJSON("/include/getdata.php", { content: "driverlist", raceid: raceid, listname: listname, driverbox: driverboxname}, function(data) {
		$("#" + targetcolumn).html(data.table); if(draggable) setupdriverlist(data.data.drivers.length, data.data, driverboxname, container); $("#" + targetcolumn).addClass("driverlistbox"); $("#" + targetcolumn).show("blind",{},500,clearstyle);
         });
}

function loadpredictlist(raceid, playerid, targetcolumn, listname, predictboxname, driverboxname, submitflag, points, instructions, droppable)
{
	$("#" + targetcolumn).html("");
	$.getJSON("/include/getdata.php", { content: "predictlist", raceid: raceid, playerid: playerid, listname: listname, predictbox: predictboxname, submit: submitflag, points: points, instructions: instructions}, function(data) {
    	$("#" + targetcolumn).html(data.table); if(droppable) setuppredictlist(data.data.predictdata.length, data.data, listname, predictboxname, driverboxname, updatepredictionorder, dropped, raceid, 'errordialog'); $("#" + targetcolumn).addClass("predictionlistbox "); $("#" + targetcolumn).show("blind",{},500,clearstyle);
        });
}

function loadresultlist (raceid, session, targetcolumn, listname, resultboxname)
{
	$("#" + targetcolumn).html("");
    $.getJSON("/include/getdata.php", { content: "resultlist", raceid: raceid, session: session, listname: listname, resultbox: resultboxname}, function(data) { $("#" + targetcolumn).html(data.table); $("#" + targetcolumn).addClass("resultlistbox"); $("#" + targetcolumn).show("blind", {}, 500, clearstyle ); });
}

function loadpointlist (raceid, targetcolumn, column3, listname, pointsboxname)
{
	$("#" + targetcolumn).html("");
	$.getJSON("/include/getdata.php", { content: "pointslist", raceid: raceid, listname: listname, pointsbox: pointsboxname, instructions: 1}, function(data) {
    	$("#" + targetcolumn).html(data.table);
        $("#" + targetcolumn).addClass("pointslistbox");
        $("#" + column3).html(""); $("#" + column3).addClass("predictlistbox");
        $("#" + targetcolumn).show("blind", {}, 500, clearstyle);
        for(var i=0; i< data.data.length; i++)
        {
        	$("#" + pointsboxname + i).data("playerid", data.data[i]["playerid"]);
        	$("#" + pointsboxname + i).click(function() {
        		$(".selectedpointsbox").removeClass("selectedpointsbox");
        		$(this).addClass("selectedpointsbox");
        		loadpredictlist(raceid, $(this).data("playerid") , column3, 'predictlist_', 'predict_', '', 0,1,0,false);
            });
        }
//loadpredictlist(raceid, column3, 'predictlist', 'predict_', 'driver_', 1, 0, 1, true);

        });

}

function loadarticle (articleid, targetcolumn)
{
	$("#" + targetcolumn).html("");
	$.getJSON("/include/getdata.php", { content: "article", articleid: articleid}, function(data) { $("#" + targetcolumn).html(data.table);  $("#" + targetcolumn).show("blind", {}, 500, clearstyle ); $("#" + targetcolumn).addClass("contentcolumn newscolumn centrecolumn"); });
}

function loadracemenusuccess(data, targetcolumn, centrecolumn, rightcolumn, container, raceid, trackid)
{
	$("#" + targetcolumn).html(data.table);
	$("#" + targetcolumn).addClass("racemenubox");
    $("#" + targetcolumn).show("slide",{},500,function(){});
    $("#race_menu_predict").click(function() { loadracepage(raceid, trackid, container, targetcolumn, centrecolumn, rightcolumn, 'predict', false); });
    $("#race_menu_champ").click(function() { loadracepage(raceid, trackid, container, targetcolumn, centrecolumn, rightcolumn, 'champ', false); });
    $("#race_menu_comp").click(function() { loadracepage(raceid, trackid, container, targetcolumn, centrecolumn, rightcolumn, 'comp', false); });
}

function loadmyff1menusuccess(data, targetcolumn, centrecolumn, rightcolumn)
{
	$("#" + targetcolumn).html(data.table);
	$("#" + targetcolumn).addClass("myff1menubox");
    $("#" + targetcolumn).show("slide",{},500,function(){});
    $("#myff1_menu_details").click(function() { loadmyff1page(targetcolumn, centrecolumn, rightcolumn, 'profile', false); } );
    $("#myff1_menu_autopredict").click(function() { loadmyff1page(targetcolumn, centrecolumn, rightcolumn, 'autopredict', false); } );
    $("#myff1_menu_groups").click(function() { loadmyff1page(targetcolumn, centrecolumn, rightcolumn, 'groups', false);});
}

function loaddetailsform(targetcolumn)
{
	$("#" + targetcolumn).html("");
	$.getJSON("/include/getdata.php", { content: "profilesettings" }, function(data) { $("#" + targetcolumn).html(data.table); $("#" + targetcolumn).show("blind", {}, 500, clearstyle); });
}

function loadstatstable(targetcolumn)
{
	$("#" + targetcolumn).html("");
	$.getJSON("/include/getdata.php", { content: "profilestats" }, function(data) { $("#" + targetcolumn).html(data.table); $("#" + targetcolumn).show("blind", {}, 500, clearstyle); });
}

function setupdriverlist(count, driverdata, driverboxid, containername)
{
	for(var i=0; i<count; i++)
	{
		$("#" + driverboxid + (i+1)).draggable({ revert: "invalid", helper: "clone", containment: "#" + containername });
		$("#" + driverboxid + (i+1)).data("driverid", driverdata.drivers[i].driverid);
		$("#" + driverboxid + (i+1)).data("teamid", driverdata.drivers[i].teamid);
	}
}

function setuppredictlist(count, predictdata, listname, predictboxid, driverboxid, updatefunction, dropfunction, raceid, errordialog)
{
	$("#" + listname).sortable({ update: function() { updatefunction(this, predictboxid);} });
	$("#" + listname).disableSelection();
    $("#" + listname + "_submit").click( function() { submitpredictions(listname, raceid, predictboxid, driverboxid, updatefunction, dropfunction, raceid, errordialog); } );
    $("#" + errordialog).dialog({ modal: true, autoOpen: false });
	for(var i=0; i<count; i++)
	{
		$("#" + predictboxid + i).droppable({ drop: function(event, ui) { dropfunction(this, event, ui, predictboxid, driverboxid); }, accept: function(draggable) { return checkduplicates(draggable, listname, predictboxid);} });
		$("#" + predictboxid + i).data("position", i + 1);
		$("#" + predictboxid + i).data("driverid", predictdata.predictdata[i].driverid);
        $("#" + predictboxid + i).data("teamid", predictdata.predictdata[i].teamid);
        $("#" + predictboxid + i).removeClass("predictboxselected");
	}
}

function updatepredictionorder(dropbox, predictboxid)
{
	var prediction_array = ($(dropbox).sortable("toArray"));
	for(var i=0; i < prediction_array.length; i++)
	{
		if($("#" + prediction_array[i]).data("position") != i+1)
		{
			$("#" + prediction_array[i]).addClass("predictboxselected");
			$("#" + prediction_array[i]).data("position",i+1);
		}


	}
	updatepredictionlistimages(predictboxid);
}

function checkduplicates(draggable, predictlist, predictboxid)
{
	//alert(predictboxid);
	if(draggable.attr("id").match(predictboxid) != null) return true;
	var prediction_array = $("#" + predictlist).sortable("toArray");
	for(var i=0; i < prediction_array.length; i++)
		if(draggable.data("driverid") == $("#" + prediction_array[i]).data("driverid"))
		{
			//$("#" + prediction_array[i]).effect("highlight", {color : "#AA0000"}, 3000);
			return false;
		}
	return true;
}

function dropped(dropped, event, ui, predictboxid, driverboxid)
{
	if(ui.draggable.attr("id").match(driverboxid) != null)
	{
		$(dropped).data("driverid", ui.draggable.data("driverid"));
        $(dropped).data("teamid", ui.draggable.data("teamid"));
		$(dropped).addClass("predictboxselected");
		updatepredictionlistimages(predictboxid);
	}

}

function updatepredictionlistimages(predictboxid)
{
	for(var i=0; i< 10; i++)
	{
		$("#" + predictboxid + "index_" + i).attr("src", "/images/layout/numbers/" + $("#" + predictboxid + i).data("position") + ".png");
		$("#" + predictboxid + "driver_" + i).attr("src", "/images/drivers/nameplates/" + $("#" + predictboxid + i).data("driverid") + ".png");
        $("#" + predictboxid + "team_" + i).attr("src", "/images/teams/teamplates/" + $("#" + predictboxid + i).data("teamid") + ".png");
	}
}

function submitpredictions(listname, raceid, predictboxid, driverboxid, updatefunction, dropfunction, raceid, errordialog)
{
	$("#" + listname + "_error").html("");
    var predictiondata = "";
    var predictionboxarray = $("#" + listname).sortable("toArray");
	for(var i=0; i< predictionboxarray.length; i++)
    	predictiondata += "prediction" + $("#" + predictionboxarray[i]).data("position") + "=" + $("#" + predictionboxarray[i]).data("driverid") + "&";
	predictiondata += "raceid=" + raceid;
    $.ajax({ type: 'POST', url: "/include/postprediction.php", data: predictiondata, success: function(data) { update_predictions(data, listname, predictboxid, driverboxid, updatefunction, dropfunction, raceid, errordialog); }, dataType: "json" });
	$("#" + listname + "_loading_box").css("visibility", "visible");
}

function update_predictions(data, listname, predictboxid, driverboxid, updatefunction, dropfunction, raceid, errordialog)
{
	if(data.error.errorno == 1)
    {
    	$("#" + errordialog).html(data.error.errortext);
        $("#" + errordialog).dialog("open");
        $("#" + listname + "_error").html(data.error.errortext);
   	}
	setuppredictlist(data.data.predictdata.length, data.data, listname, predictboxid, driverboxid, updatefunction, dropfunction, raceid, errordialog);
	updatepredictionlistimages(predictboxid);
	$("#" + listname + "_loading_box").css("visibility", "hidden");
}

function changepassword(oldpasswordinput, newpasswordinput, confirmpasswordinput)
{
	if($("#" + oldpasswordinput).val() == "")
	{
		alert("Please enter your current password");
		return;
	}
	if($("#" + newpasswordinput).val() == "")
	{
		alert("Please enter your new password");
		return;
	}
	if($("#" + newpasswordinput).val() != $("#" + confirmpasswordinput).val())
	{
		alert("New passwords do not match");
		return;
	}
//	$.ajax({ type: 'POST', url: "/include/postprofilechange.php", data: {mode: "password", oldpassword: $("#" + //oldpasswordinput).val(), newpassword: $("#" + newpasswordinput).val(),}, success: function(data) {
//	if(data.error == 1) alert(data.errortext); 
//    else alert(data.successtext); 
//    $("#" + oldpasswordinput).val(""); 
//    $("#" + newpasswordinput).val(""); 
//    $("#" + confirmpasswordinput).val("");
//	}, dataType: "json" });

}
