var resourceImageDirectory = "/system/modules/au.org.streamwatch/resources/images/";
var baseContext = "/streamwatch";

function addMenuLink(ul, id, href, text) {
	var li = new Element("li", {});
  	li.injectInside(ul);
  	var a = new Element('a', {
  	 	'id': id,
  	 	'href': baseContext + href
  	});
  	a.setText(text);
  	a.injectInside(li);
}

function createLineItem(ul, text) {
	var li = new Element("li", {});
  	li.injectInside(ul);
    var span = new Element('span', {});
    span.setText(text);
    span.injectInside(li);
    return li;
}
	

function toggleLogin() {
  var userrole = Cookie.get("USERROLE");
  var div = document.getElementById('divLogin');
  div = $(div); 
  var navDiv = document.getElementById('mainNav');
  $navDiv = $(navDiv);
  if (userrole == false || userrole == "ROLE_ANONYMOUS") { 
     var newDiv = new Element('div', {
     	'class': 'loginFields'
     });     
  	 var h2 = new Element('h2',{});
  	 h2.injectInside(newDiv);
  	 var span = new Element('span',{});
  	 span.setText("User Login:");
  	 span.injectInside(h2);
  	 var form = new Element('form', {
  	 	'action': baseContext + '/j_acegi_security_check',
  	 	'method': 'Post'
  	 });
  	 form.injectAfter(h2);
  	 var usernameLabel = new Element('p', {});
  	 usernameLabel.setText("Username:");
  	 usernameLabel.injectInside(form);
  	 var usernameInput = new Element('input', {
  	 	'type': 'text',
  	 	'name': 'j_username'
  	 });
  	 usernameInput.injectAfter(usernameLabel);
  	 var passwordLabel = new Element('p', { 
  	 	'class': 'pwd'
  	 });
  	 passwordLabel.setText('Password:');
  	 passwordLabel.injectAfter(usernameInput);
  	 var passwordInput = new Element('input', {
  	 	'type': 'password',
  	 	'name': 'j_password'
  	 });
  	 passwordInput.injectAfter(passwordLabel);
  	 var submitInput = new Element('input', {
  	 	'name': 'submit',
  	 	'type': 'image', 
  	 	'src':  resourceImageDirectory + 'userLogin_goBtn.gif',
  	 	'alt': 'Go (Login)',
  	 	'border': '0',
  	 	'class': 'goBtn'
  	 });
  	 submitInput.injectAfter(passwordInput);
  	 var forgotPassword = new Element('a', {
  	 	'class': 'forgotPwd',
  	 	'href': '/streamwatch/flow/anon/forgottenPasswordFlow' 
  	 });
  	 forgotPassword.setText('Forgot your password?');
  	 forgotPassword.injectAfter(form);
  	 var clearDiv = new Element('div', {
  	 	'class': 'clearBoth'
  	 });
  	 clearDiv.injectAfter(forgotPassword);
  	 div.replaceWith(newDiv);
	 navDiv.addClass("condensed");
  } else {
	  
	  var newDiv = new Element('div', {
	  	 	'class': "mystreamwatch"
	  	 });
	  
	  var innerUL = new Element ('ul', {});
      createLineItem(innerUL, "My Streamwatch");
   	  innerUL.injectInside(newDiv);
   	  var innerDiv = new Element('div', {
		        'class': "userDetails"
	         });
   	  var text = "You are logged in as:<br/><strong>User: " +  Cookie.get("USERNAME");
   	  if (userrole == "ROLE_GROUP") {
   	  	ext = text + "</strong><br/><strong>Group:</strong> " + Cookie.get("GROUPNAME");
   	  } else if (userrole == "ROLE_ADMINISTRATOR") {
   		text = text + "</strong><br/><strong>Role:</strong> Administrator";
  	  } else if (userrole == "ROLE_REGIONAL_COORDINATOR") {      
  		text = text + "</strong><br/><strong>Role:</strong> Regional coordinator";
  	  }
  	  text = text + "<br/><strong><a href='" + baseContext  +"/j_acegi_logout'>Logout</a></strong>";
  	  innerDiv.setHTML(text);
	  innerDiv.injectInside(newDiv);
	  
	  var menuUL = new Element ('ul', {});
	  
	  if (userrole == "ROLE_GROUP") {
	  	  var myProfilesLi = createLineItem(menuUL, "My profile")
	  	  var myProfilesUl = new Element ('ul', {});
	  	  myProfilesUl.injectInside(myProfilesLi);
	  	  addMenuLink(myProfilesUl, '', '/flow/auth/rcProfileFlow', 'User');
	  	  addMenuLink(myProfilesUl, '', '/flow/auth/groupProfileFlow', 'Group');
		  addMenuLink(menuUL, '', '/flow/auth/myStreamWatchFlow', 'Enter / review site data');	
		  addMenuLink(menuUL, '', '/flow/auth/sendRequestFlow', 'Send request');	 
   	  
	  } else if (userrole == "ROLE_ADMINISTRATOR") {		 
	  	  var userManagerLi = createLineItem(menuUL, "User manager")
	  	  var userManagerUl = new Element ('ul', {});
	  	  userManagerUl.injectInside(userManagerLi);
	  	  addMenuLink(userManagerUl, '', '/flow/auth/administratorProfileFlow', 'My profile');
	  	  addMenuLink(userManagerUl, '', '/flow/auth/regionalCoordinatorManagerFlow', 'Regional coordinators');
	  	  addMenuLink(userManagerUl, '', '/flow/auth/participantManagerFlow', 'Participants');
	
	   	  var referenceTableManagerLi = createLineItem(menuUL, "Reference table manager")
	  	  var referenceTableManagerUl = new Element ('ul', {});
	      	  referenceTableManagerUl.injectInside(referenceTableManagerLi);
	   	  addMenuLink(referenceTableManagerUl, '', '/flow/auth/equipmentManagerFlow', 'Equipment');
	   	  addMenuLink(referenceTableManagerUl, '', '/flow/auth/parameterManagerFlow', 'Parameter');
	   	  addMenuLink(referenceTableManagerUl, '', '/flow/auth/groupRefDataManagerFlow', 'Group');
	   	  addMenuLink(referenceTableManagerUl, '', '/flow/auth/siteRefDataManagerFlow', 'Site');
	  	  
	   	  addMenuLink(menuUL, '', '/flow/auth/equipmentManagerFlow', 'Equipment manager');
	   	  addMenuLink(menuUL, '', '/flow/auth/groupManagerFlow', 'Group manager');
	   	  addMenuLink(menuUL, '', '/flow/auth/siteManagerFlow', 'Site manager');
	   	  
	   	  var siteVisitManagerLi = createLineItem(menuUL, "Site visit manager")
	  	  var siteVisitManagerUl = new Element ('ul', {});
	   	  siteVisitManagerUl.injectInside(siteVisitManagerLi);
	   	  addMenuLink(siteVisitManagerUl, '', '/flow/auth/verifyDataFlow?siteVisitStatusString=EDITED', 'Edited');
	   	  addMenuLink(siteVisitManagerUl, '', '/flow/auth/verifyDataFlow?siteVisitStatusString=AWAITING_APPROVAL', 'Awaiting approval');

	   	  addMenuLink(menuUL, '', '/flow/auth/reportsFlow', 'Reports');
	   	  
	} else if (userrole == "ROLE_REGIONAL_COORDINATOR") {      
		  var userManagerLi = createLineItem(menuUL, "User manager")
	  	  var userManagerUl = new Element ('ul', {});
		  userManagerUl.injectInside(userManagerLi);
  		  addMenuLink(userManagerUl, '', '/flow/auth/rcProfileFlow', 'My profile');
  		  addMenuLink(userManagerUl, '', '/flow/auth/participantManagerFlow', 'Participants');
  		  
	   	  addMenuLink(menuUL, '', '/flow/auth/equipmentManagerFlow', 'Equipment manager');  	
	   	  addMenuLink(menuUL, '', '/flow/auth/groupManagerFlow', 'Group manager');
	      addMenuLink(menuUL, '', '/flow/auth/siteManagerFlow', 'Site manager');

	      var siteVisitManagerLi = createLineItem(menuUL, "Site visit manager")
	  	  var siteVisitManagerUl = new Element ('ul', {});
	   	  siteVisitManagerUl.injectInside(siteVisitManagerLi);
	   	  addMenuLink(siteVisitManagerUl, '', '/flow/auth/verifyDataFlow?siteVisitStatusString=SAVED', 'Saved');
	   	  addMenuLink(siteVisitManagerUl, '', '/flow/auth/verifyDataFlow?siteVisitStatusString=SUBMITTED', 'Submitted');
	   	  addMenuLink(siteVisitManagerUl, '', '/flow/auth/verifyDataFlow?siteVisitStatusString=EDITED', 'Edited');
	   	  addMenuLink(siteVisitManagerUl, '', '/flow/auth/verifyDataFlow?siteVisitStatusString=AWAITING_APPROVAL', 'Awaiting approval');

	      addMenuLink(menuUL, '', '/flow/auth/reportsFlow', 'Reports');
		}
	
		menuUL.injectInside(newDiv);
		  
		div.replaceWith(newDiv);
		navDiv.addClass("condensed");	 
	  }
  }

