var selectedYear = "";
var selectedTheme = "";
var campaignData = "";
var campaignStartAt = 0;
var campaignNrShown = 4;

dojo.require("dojo.io.script");
dojo.addOnLoad(resultHover);
function resultHover()
{
	var queryList = dojo.query(".campaignFilter .resultRow");
 
	dojo.forEach(queryList, function(resultItem){
		dojo.connect(resultItem, "mouseenter", function(domEvent) {
			dojo.addClass(resultItem, "mouse_over");
		});
		dojo.connect(resultItem, "mouseleave", function(domEvent) {
			dojo.removeClass(resultItem, "mouse_over");
		});
	});
}


dojo.addOnLoad(function() {
    dojo.query("select").connect("change", dojo.hitch(this, function(e){
        getOptionFromSelect(e.currentTarget);
   
       }));
    filter_campaigns(); /* Populate our campaign filter with the initial data */
});

function getOptionFromSelect(ourSelect){
    var currentOption = ourSelect.options[ourSelect.selectedIndex].value;

    if(ourSelect.id == "themeSelector"){
        selectedTheme = currentOption;
    }
    else{
        selectedYear = currentOption;
    }
}

function update_campaigns() {
	populate_campaigns(campaignData, campaignStartAt);
	TitleScroller();
}

function next_campaign_page() {		
	if (campaignData.length <= (campaignStartAt + campaignNrShown)) {
		/* Don't update StartAt, at end of campaign list */
	}
	else {
		campaignStartAt += campaignNrShown;
		update_campaigns();
	}
}

function prev_campaign_page() {	
	if (campaignStartAt == 0) {
		return;
	}
	if (campaignStartAt <= campaignNrShown) {
		campaignArrowUp.style.display = "none";
		campaignStartAt = 0;
	}
	else {
		campaignStartAt -= campaignNrShown;
	}
	update_campaigns();
}
    
function populate_campaigns(campaign_data, starting_at) {
	nr_campaigns_shown = campaignNrShown;

	campaign_div = dojo.byId("campaign_results");
	html_data = "";
	for (var i = starting_at; i < starting_at + nr_campaigns_shown; i++) {
		if (i >= campaign_data.length) {
			break;
		}
		//alert(" html_data : " + item);
		var dataItem = campaign_data[i]

		thumbnail = dataItem.fields.thumbnail;
		if (thumbnail == "") { thumbnail = "images/logo_small.gif"; }

		row_data = '<div class="resultRow" onclick="activate_campaign(\'' + dataItem.pk + '\');"><div class="resultImage"> <img src="/media/' + thumbnail + '" width="72" height="40" alt="" /></div><div class="resultText"><h4><span>' + dataItem.fields.title + '</span></h4><span class="year">(' + dataItem.fields.year.substr(0, 4) + ')</span></div><div class="clearer"></div></div>';

		html_data += row_data;
	}

	campaign_div.innerHTML = html_data;
	resultHover(); /* Re-activate the mouseenter mouseleave events for the result rows. This is defined in scripts campaignFilter.js */
}

function dataHandler(){
	
}

function filter_campaigns() {
    getOptionFromSelect(dojo.byId("themeSelector"));
    getOptionFromSelect(dojo.byId("yearSelector"));

    if (selectedYear == '') { selectedYear = 0; }
    if (selectedTheme == '') { selectedTheme = 0; }
    
	/*
var deferred = dojo.io.script.get({
		url: "/campaign/search_for_campaign/"+selectedYear+"/"+selectedTheme+"/" ,
content: {},
timeout: 1000,
handle: function(data){
	alert("handle... do you like classical music?" + data);
	return true;
}});
deferred.addErrback(function(error){
	alert("error");
});*/
	/*var getter = dojo.io.iframe.send({
	// URL for Yahoo Search
		url: "/campaign/search_for_campaign/"+selectedYear+"/"+selectedTheme+"/" ,
		// Send search term parameters:
		// If the response takes longer than 10000ms (= 10 seconds), error out
		timeout: 10000,
		handle: dataHandler,
		error: function(text){
			alert("text" + text);	
		},
		handleAs: "json"
		// Yahoo API requires you to send the callback function name in the
		// parameter "callback"
		// The full call will have load and error parameters too
		// ...
	});*/
	/**/
    dojo.xhrGet({
        url: "/campaign/search_for_campaign/"+selectedYear+"/"+selectedTheme+"/",
        handleAs: "json",
        load: function(responseObject, ioArgs) {
			campaignData = responseObject;
			campaignStartAt = 0;
			update_campaigns();
        }
    });
}