dojo.require("dojo.rpc.*");
dojo.hostenv.writeIncludes();
dojo.require();
var collectionService = new dojo.rpc.JsonService("CollectionInfo");

// used by allcollections.jsp and my collections.jsp
function searchCollection(collectionId) {
	var term = $('searchCollectionTerm').value.trim();
	
	if (term != "") {
		var termArray = term.split(" ");
		var query = "";
		
		for (var i = 0; i < termArray.length; i++) {
			if (i == 0)
				query = termArray[i];
			else
				query = query + " AND " + termArray[i];
		}
		
		query = '(' + query + ')';
	
		window.location = "showResults.action?query=" + query + "&collectionId='" + collectionId + "'&refine=&history=false&referer=showResults";
	}
}

// used by my collections.jsp
function updateCollection() {
	
	var name = document.getElementById('collectionName').value;
	var description = document.getElementById('collectionDescription').value;
	var subject = document.getElementById('collectionSubject').value;
	var iconUrl = document.getElementById('collectionIconUrl').value;
	var frozen = true;
	var private = (document.getElementById('collectionPrivateTrue').checked == true);

	var callback = function(bean) {
		if (bean.name != null) {
			document.getElementById('collectionLastUpdateDate').innerHTML = dateFormat(Date(bean.lastUpdateDate), "mmmm dd, yyyy");
			document.getElementById('collectionTitle').value = bean.name;
			document.getElementById('col_title').value = bean.name;

			if (bean.iconUrl != "")
				document.getElementById('collectionImage').src = bean.iconUrl;
			else
				document.getElementById('collectionImage').src = "pages/images/logo_driver.png";

			var node = tree.getNodeByProperty("id", bean.resourceId);

			if (bean.visible) {
				node.label = bean.name;
			} else
				node.label = "<i>" + bean.name + "</i>";

			tree.render();
			roarQueue.alert('<p>Collection has been updated successfully.</p><p></p>');
		} else
			alert("A problem occured while updating collection");
	};

	var collectionBean = {
		"resourceId" :editedCollectionResourceId,
		"name" :name,
		"description" : [ description ],
		"visible" :true,
		"private" :private,
		"frozen" :frozen,
		"subject" :subject,
		"iconUrl" :iconUrl
	};

	var defered = collectionService.updateCollection(collectionBean);
	defered.addCallback(callback);
}

// used by collection.jsp 
function addFather(collectionId, collectionName) {
	if (collectionId == 'InfoSpace') {
		document.getElementById('collectionFather').innerHTML = "My collections";
		document.getElementById('collectionFatherId').value = "InfoSpace";
	} else {
		document.getElementById('collectionFather').innerHTML = collectionName;
		document.getElementById('collectionFatherId').value = collectionId;
	}
}

function saveCollection() {
	var name = document.getElementById('collectionName').value;
	var description = document.getElementById('collectionDescription').value;
	var subject = document.getElementById('collectionSubject').value;
	var iconUrl = document.getElementById('collectionIconUrl').value;
	var visible = true;
	var frozen = true;
	var private = ( document.getElementById('collectionPrivate').checked == true);
	var father = "InfoSpace";
	var query;
	
	if (document.getElementById('collectionQueryCriteria'))
		query = document.getElementById('collectionQueryCriteria').innerHTML;
	
	if (document.getElementById('collectionFather')) {
		if (document.getElementById('collectionFatherId').value != "") {
			father = document.getElementById('collectionFatherId').value;
		}
	}

	var callback = function(bean) {
		if (bean.name != null) {
			roarQueue.alert('<p>Your collection has been saved.</p><p></p>');
			
			window.location = 'AllDRIVERCollections.action?collectionID=' + bean.resourceId;
		} else
			alert("A problem occured while saving collection");
	};

	var collectionBean;

	if (query) {
		collectionBean = {
			"name" :name,
			"description" : [ description ],
			"visible" :visible,
			"private" :private,
			"frozen" :frozen,
			"subject" :subject,
			"iconUrl" :iconUrl,
			"query" :query,
			"father" :father };
	} else {
		collectionBean = {
			"name" :name,
			"description" : [ description ],
			"visible" :visible,
			"private" :private,
			"frozen" :frozen,
			"subject" :subject,
			"iconUrl" :iconUrl,
			"father" :father };
	}
	
	var defered = service.saveCollection(collectionBean);
	defered.addCallback(callback);
}