/*
 * common.js	
 * author: Yang Yang
 * 2008-4-15	
*/

function displayProviderList(objSelect)
{
	var org = $(document.getElementsByName("organization")[0]).val();
	if( org === null || org === ""){
		return;
	}
	var index = objSelect.selectedIndex;
	if(index > -1){
		$.each([0,1,2],function(i,n){
			if ( index == n )
				{$("#p"+n).show();}
			else
				{$("#p"+n).hide();}
		});
	}
}

//change state ( active or locked ) display for provider/manager/...
function changeState(result)
{
	if(result != "false"){
		var results = result.split("=");
		var id = results[0];
		var target = document.getElementById(id);
		if( results[1] == 'active' )
		{
			target.innerHTML = "<span style='color:green'>Active</span>";
		}
		else{
			target.innerHTML = "<span style='color:red'>Locked</span>";
		}
	}
}

function displayProvidersAdmins(result, pType)
{
	var titles = ["Username","Email","Name","Phone","State","Operations"];
	var displayarea = $("#admins").children().remove().end().append($("<h2></h2>").text(pType.toUpperCase() + "'s Admins"));
	var form = $("<form method='post' action='/deleteManagerProvider.do'></form>").appendTo(displayarea);
	var table = $("<table></table>").css("font-size","95%").appendTo(form);
	var tablehead = $("<tr></tr>").appendTo(table);
	for(var i = 0 ; i < titles.length; i+=1 )
	{
		if(i === 0) 
			{tablehead.append($("<th colspan='2'></th>").text(titles[i]));}
		else 
			{tablehead.append($("<th></th>").text(titles[i]));}
	}
	$(result.childNodes[0]).children().each(function(){
		var id = $(this).find("mpid").text();
		var tr = $("<tr></tr>").appendTo(table);
		tr.append($("<td></td>").attr("width","30").append($("<input type='checkbox' name='item'></input>").val(id)))
		  .append($("<td></td>").attr("width","90").text($(this).find("Username").text()))
		  .append($("<td></td>").attr("width","120").text($(this).find("Email").text()))
		  .append($("<td></td>").attr("width","100").text($(this).find("FirstName").text()+" " +$(this).find("LastName").text()))
		  .append($("<td></td>").attr("width","120").text($(this).find("Phone").text()));
			if($(this).find("MState").text() == 'locked')
			{
				$("<td></td>").attr("width","90").attr("id","mi"+id).appendTo(tr).append(
					$("<span></span>").css("color","red").text("Waiting for Approval"));
			}
			else
			{
				$("<td></td>").attr("width","90").attr("id","mi"+id).appendTo(tr).append(
					$("<span></span>").css("color","green").text("Active"));
			}
		var activate = $("<button>Activate</button>").toggleClass("btn").click(function(){
			if(pType == "sp")
				activateManagerSP(id);
			else if(pType == "idp")
				activateManagerIdP(id);
			return false;
		});
		var lock = $("<button>Lock</button>").toggleClass("btn").click(function(){
			if(pType == "sp")
				lockManagerSP(id);
			else if(pType == "idp")
				lockManagerIdP(id);
			return false;
		});
		$("<td></td>").attr("width","180").append(activate).append(lock).appendTo(tr);
	});
	form.append($("<button>Select All</button>").click(function() {
         $("input[@name='item']").each(function() {
             $(this).attr("checked", true);
         });
          return false;
     }))
		.append($("<button>Deselect All</button>").click(function() {
	         $("input[@name='item']").each(function() {
	             $(this).attr("checked", false);
	            
	         });
	          return false;
         }))
		.append($("<input type='submit' name='submit'></input>").val("Delete "+pType.toUpperCase()+"'s Admin(s)").click(function(){
					if(window.confirm('Are you sure you want to do this?'))
						return true;
					else return false;
				}));
}

function displayRecords(xml,showdiv,username,filter,pType)
{
	var show = $("#"+showdiv).css("margin-left","10px").children().remove().end().append($("<h2></h2>").text(username+"'s "+showdiv));
	var form = $("<form></form>").appendTo(show);
	var th = $("<tr></tr>").css("text-align","center");
	var table = $("<table></table>").css("font-size","95%").appendTo(form).append(th);
	for(var i = 0 ; i < filter.length; i+=1){
		th.append($("<th></th>").text(filter[i]));
	}
	th.append($("<th colspan='2'></th>").text("OPs"));
	$(xml.childNodes[0]).children().each(function(){
		var id = $(this).find(filter[0]).text();
		var tr = $("<tr></tr>").appendTo(table).css("text-align","center");
		$(this).children().each(function(){
			if( $(this).text() == 'locked' ){
				$("<td></td>").attr("id","mi"+id).appendTo(tr).text($(this).text());
			}
			else if ($(this).text() == 'active'){
				$("<td></td>").attr("id","mi"+id).appendTo(tr).append(
					$("<span></span>").css("color","red").text($(this).text()));
			}
			else{
				$("<td></td>").appendTo(tr).text($(this).text());
			}
		});
		//add Activate button
		var activate = $("<input type='button'></input>").val("Activate").click(function(){
			if(pType == "sp")
				activateManagerSP(id);
			else if(pType == "idp")
				activateManagerIdP(id);
		});
		$("<td></td>").append(activate).appendTo(tr);
		//add Lock button
		var lock = $("<input type='button'></input>").val("Lock").click(function(){
			if(pType == "sp")
				lockManagerSP(id);
			else if(pType == "idp")
				lockManagerIdP(id);
			
		});
		$("<td></td>").append(lock).appendTo(tr);
	});
}

function errorFunc()
{
	//document.body.innerHTML = "Access Denied!";
	alert("Access Denied!");
}

function redirectTo(url)
{
	window.location = url;
}

function showDetails(result)
{
	$("#details").children().remove().end().css("margin-top","5px");
	$("#details").append($("<h2></h2>").text("Details"));
	var table = $("<table></table>").attr("border","1").css("font-size","95%").appendTo($("#details"));
	var details = result.childNodes[0];
	var basic = $(details.childNodes[0]);
	table.append($("<tr></tr>").append($("<th colspan='4'></th>").text("Basic Information")));
	basic.children().each(function(){
		table.append($("<tr></tr>").css("text-align","left").append($("<td></td>").text(this.tagName)).append($("<td colspan='3'></td>").text($(this).text())));
	});
	table.append(
			$("<tr></tr>").append($("<th colspan='4'></th>").text("Contact Persons")))
		.append(
			$("<tr></tr>").append($("<th></th>").text("Type")).append($("<th></th>").text("FirstName")).append($("<th></th>").text("LastName")).append($("<th></th>").text("Email"))
		);
	var contactPersons = $(details.childNodes[1]);
	contactPersons.children().each(function(){
		var tr = $("<tr></tr>").css("text-align","left");
		$(this).children().each(function(){
			tr.append($("<td></td>").text($(this).text()));
		});
		tr.appendTo(table);
	});
}

function initDeletion()
{
	$("#selectall").click(function() {
         $("input[@name='deletion']").each(function() {
             $(this).attr("checked", true);
         });
     });
     $("#deselectall").click(function() {
         $("input[@name='deletion']").each(function() {
             $(this).attr("checked", false);
         });
	});
}

function initAdminOption(role)
{
	$("#p"+role).show();	
	$(document.getElementsByName("role")[0]).children().each(function(){

		if( $(this).val() == role )
			{
				$(this).attr("selected","selected");
				
			}
	});
}