var favouriteSubjectHelpText;

function favouriteSubjectOnload() {
	favouriteSubjectHelpText = document.getElementById('subjectsLoggedIn').innerHTML;
	retrieveInitialIssnList();
}

function toggleSubjectStar(imageId){
	var SELECTED_STAR_IMAGE_PATH = "/ec/images/star_selected.gif";
	var EMPTY_STAR_IMAGE_PATH = "/ec/images/star_empty.gif";
	var imageSource = new String(document.getElementById(imageId).src); 
	if( imageSource.indexOf(SELECTED_STAR_IMAGE_PATH) != -1 ) {
        document.getElementById(imageId).src = EMPTY_STAR_IMAGE_PATH;		
	}
	else{
        document.getElementById(imageId).src = SELECTED_STAR_IMAGE_PATH;		
	}
	
}

function toggleAndSave(imageId){
	toggleSubjectStar(imageId);
	saveSelectedSubjects(imageId);
}

function saveSelectedSubjects(imageId){
  FavouriteSubjectPersistor.handleSubjectList(createSubjectList(), imageId, callBackSubjectFavourite);
}

function retrieveInitialIssnList(){
  FavouriteSubjectPersistor.retrieveInitialIssnList(callBackRetrieveInitialIssnList);
}

function createSubjectList(){
	var SELECTED_STAR_IMAGE_PATH = "/ec/images/star_selected.gif"; 
    var imgList = document.getElementById("secondary").getElementsByTagName("img")
    var selectImagesNumber =0;
    for (image=0; image<imgList.length; image++) {
        if(findElementAttribute(imgList[image], 'src').indexOf(SELECTED_STAR_IMAGE_PATH) != -1){
            selectImagesNumber++;
        }
    }
    var subjectList = new Array(selectImagesNumber);

    for (image=0; image<imgList.length; image++) {
        if(findElementAttribute(imgList[image], 'src').indexOf(SELECTED_STAR_IMAGE_PATH) != -1){
        var subjectName = imgList[image].getAttribute('alt');
        if(!typeof subjectName != 'undefined' && subjectName != null)
          subjectList[image] = new Array(2);
          subjectList[image][0]= imgList[image].getAttribute('id');
          subjectList[image][1]= subjectName;
        }
    }
	return subjectList;
}

function callBackSubjectFavourite(subjectList){
    createFavouriteSubjectsList(subjectList)  
}

function createFavouriteSubjectsList(subjectList) {
    if(subjectList) 
		if (subjectList.length != 0){
		    var output = "";
		    for(i=0; i<subjectList.length; i++) {
		        if(subjectList[i] != null){
		            output = output + "<li><a href=\"/eclips/subject/" + subjectList[i][1] + "?issn=" + subjectList[i][0] + "\">";
		            output = output + subjectList[i][1] + "</a></li>";
		        }
		    }   
	        document.getElementById("subjectsLoggedIn").innerHTML = output;
	    }else{
	         document.getElementById("subjectsLoggedIn").innerHTML = favouriteSubjectHelpText;
	    }    
		
}

function callBackRetrieveInitialIssnList(issnList) {
	for (var i=0; i<issnList.length; i++) {
		toggleSubjectStar(issnList[i]);
	}
	createFavouriteSubjectsList(createSubjectList());
}

function findElementAttribute(element, attribute) {
    for( var x = 0; x < element.attributes.length; x++ ) {
        if( element.attributes[x].nodeName.toLowerCase() == attribute ) {
            return element.attributes[x].nodeValue; 
        }
    }       
}