// globals
var searchSubjects = new Object()

// getArticles
getArticlesByQuery = function() {
	
	$.ajax({
		url: "/handlers/search.ashx",
		type: "GET",
		dataType: 'json',
		data: "action=GetArticlesByQuery&" + getQuery(),
		success: function (data, textStatus) {
			renderSearchData(data)
		},
		error: function (XMLHttpRequest, textStatus, errorThrown) {
			renderSearchArticlesError()
		} 
	}) 
}

//getSearchSubjects
getSearchSubjects = function() {
	// call first call, it's cascading
	getSearchSubjects_BO_Zorg()
}

getSearchSubjects_BO_Zorg = function() {
	
	$.ajax({
		url: "/handlers/List.ashx",
		type: "GET",
		data: "action=GetSubjectsBOZorg",
		dataType: 'json',
		success: function(data) {
			// set data to global var
			searchSubjects.zorg = data
			// call next service
			getSearchSubjects_BO_Didactiek()
		},
		error: function (XMLHttpRequest, textStatus, errorThrown) {
			renderSearchArticlesError()
		} 
	})
}

getSearchSubjects_BO_Didactiek = function() {
	
	$.ajax({
		url: "/handlers/List.ashx",
		type: "GET",
		data: "action=GetSubjectsBODidactiek",
		dataType: 'json',
		success: function(data) {
			// set data to global var
			searchSubjects.didactiek = data
			// now add formHandler
			setBODropdownValue()
		},
		error: function (XMLHttpRequest, textStatus, errorThrown) {
			renderSearchArticlesError()
		} 
	})
}

// getSearchAuthors
getSearchAuthors = function() {
	
	$.ajax({
		url: "/handlers/List.ashx",
		type: "GET",
		dataType: 'json',
		data: "action=GetAuthors",
		success: function(data) {
			// set data to global var
			setSearchAuthors(data)
		},
		error: function (XMLHttpRequest, textStatus, errorThrown) {
			//renderSearchArticlesError()
			renderSearchArticlesError()
		} 
	})
}



// serialize form input
getQuery = function () {
 	
	// get input and selectors
	var queryString = ""
	
	var selectors = 
	    $("input[name=Keywords]").
	    add("select[name=Level]").
	    add("select[name=Author]").
	    add("input[type=hidden]")

	$.each(selectors, function (i,item) {
		var value = $(item).val()
		if (value == "-") value = ""
		queryString += $(item).attr("name") + "=" + value + "&"
	})
	
	// get array with checked checkboxes
	var querySubjects = new Array()
	
	var selectors = $("input:checkbox:checked")
	
	$.each(selectors, function (i,item) {
		querySubjects.push($(item).val())
	})
	
	// add dummy subject if no module
	if ($("input[name=Module]").val() != "") {
		querySubjects.push("dummy")
	}
	
	// add subjects to queryString
	$.each(querySubjects, function (i,item) {
		queryString += "subject=" + item + "&"
	})

	return encodeURI(queryString)
	//return $("form").serialize();
}

getQueryPreview = function() {
	return $("#overlay form").serialize()
}

//getfreearticles
getFreeArticles = function(responseHandler) {
	
	$.ajax({
		url: "/handlers/search.ashx",
		type: "GET",
		dataType: 'json',
		data: { action: "GetFreeArticles", noOfItems: 3 },
		success: function(data) {
			renderFreeArticles(data)
		},
		error: function (XMLHttpRequest, textStatus, errorThrown) {
			renderFreeArticlesError()
		} 
	}) 
}	
	
// getLatestArticles
getLatestArticles = function(responseHandler) {

	$.ajax({
		url: "/handlers/search.ashx",
		type: "GET",
		dataType: 'json',
		data: { action: "GetLatestArticles", noOfItems: 3 },
		success: function(data) {
			renderLatestArticles(data)
		},
		error: function (XMLHttpRequest, textStatus, errorThrown) {
			renderLatestArticlesError()
		} 
	})
}	
	