// Javascript AJAX Login Bar, Frank Cefalu MLGPro.com
// 2008
// Revisions Add Delimited 
// June 30th,2008 Added the CreateDialogue, ModifyChild Functions, and expanded the Login Functionality

function drawLogin(){
	createChild('isLoggedIn','input');
	invoke_loginStartup();
}

// Begin Startup Process
function invoke_loginStartup(){
	

	var pathtoProcess = '/includes/custom/loginBarProcess.php?process=isLoggedIn'; // Where is the file handling all backend processes below. Relative, or absolute please.
	var isLoggedIn = 'isLoggedIn'; // What are we using for this element name
	var hiddenfield = $(isLoggedIn);
	var loginBar = 'loginBar'; // What are we using for this element name
	if(hiddenfield != 'null'){
	
		new Ajax.Updater(isLoggedIn,pathtoProcess,{
							method : 'post',
							onComplete: function(){			
											
							var isLoggedIn_value = $('isLoggedIn').innerHTML;
							isLoggedIn_value_or = isLoggedIn_value;
							isLoggedIn_value = isLoggedIn_value.split(',');

							var userName = isLoggedIn_value[1];	
							var userId = isLoggedIn_value[2];	
							createChild(loginBar,isLoggedIn_value[0],isLoggedIn_value_or);
							}})
		
	}
	
}


// This function removes and Childs from the Parent, by just targeting it, based on its elemental ID
// tC = this Child, just shortened for easier coding, it is the elemental ID
function removeChild(tC) { var i, n; if (!tC) { return false; }
  if (!tC.nodeName) { if (tC.length) for (n=tC.length; n--;) removeChild(tC[n]); }
  else tC.parentNode.removeChild(tC);
}

// tC = this Child, just shortened for easier coding, it is the elemental ID
// type, are we creating a hidden field to store values, or a visual element?
function createChild(tC,type,raw){

	switch(type){
	
	case 'input':

		var newChild = document.createElement('div');
		var childIdName = tC;
			newChild.setAttribute('id',childIdName);
			newChild.style.display ="none";
		    $('login_javascript').appendChild(newChild);

	break;
	
	case '0':
	case '1':    
	 	$('login_javascript').innerHTML = drawLoginBox(type,raw);
	break;

	case 'box_login':		
	  	 $('login_javascript').innerHTML = drawDialogue(type) + $('login_javascript').innerHTML;
	break;
	
	}

}


function drawLoginBox(type,raw){

	switch(type){
	
	// No
	case '0':
		var drawing = '<div class="user-link-tab-image">';
			drawing = drawing + '<img src="/sites/default/themes/mlg2/_images/icon_login.gif" width="17" height="17" alt="" border="0"/></div>';
			drawing = drawing + '<div class="login" style="float:left;padding-top:3px;">';
			drawing = drawing + '<a href="#" onclick="openLoginDialogue()">Login</a> <span id="loginDialogue"></span> / ';
			drawing = drawing + '<a href="/forum/register.php" >Register</a> <span id="registerDialogue"></span>';
	
	
	break;
	
	// Yes
	case '1':
	
		var values = raw.split(',');
	
		var drawing = '<div class="user-link-tab-image">';
			drawing = drawing + '<img src="/sites/default/themes/mlg2/_images/icon_login.gif" width="17" height="17" alt="" border="0"/></div>';
			drawing = drawing + '<div class="login" style="float:left;padding-top:3px;">';
			drawing = drawing + '<a href="/?q=user">'+values[1]+'</a>  &nbsp;| &nbsp;';
			drawing = drawing + '<a href="/forum/private.php"><img src="/sites/default/themes/mlg2/_images/icon_pm.gif" width="12" height="8"> '+values[3]+' </a>  &nbsp;| &nbsp;';
			drawing = drawing + '<a href="/?q=logout">Logout</a>';
	
			
	break;
	
	}
	
		
	return drawing;

}

// Basis of each dialogue are the same, except the contents differ slightly, this function will handle this process.
function drawDialogue(type){

	switch(type){
		
		case 'box_login':

			drawing = "<table cellspacing='3' cellpadding='5' class='loginBar' align='center'><tr><td style='color:#FFF;'>";
			drawing = drawing + "Username </td><td> <input type='text' name=\"edit[name]\"></td></tr><tr><td style='color:#FFF;'>";
			drawing = drawing + "Password? </td><td> <input type='password' name=\"edit[pass]\" ></td></tr><tr>";	
			drawing = drawing + "<td></td><td style='color:#FFF;'><input type='checkbox' name=\"edit[remember]\" > Remember Me</td></tr><tr>";
			drawing = drawing + "</table>";
			drawing = drawing + '<input type="hidden" name="edit[pass_md5]" id="edit-pass_md5" value=""  />';
			drawing = drawing + '<input type="hidden" name="edit[pass_md5_utf]" id="edit-pass_md5_utf" value=""  />';
			drawing = drawing + '<input type="hidden" name="edit[_r]" id="edit-_r" value=""  />';
			drawing = drawing + '<input type="hidden" name="edit[_m]" id="edit-_m" value=""  />';
			drawing = drawing + '<input type="hidden" name="edit[form_id]" id="edit-user-login" value="user_login"  />';

		
			var Button_Titles = "Forgot Password, Submit";
			var Button_Types = "location, submit";
			var Button_Locations = "http://www.mlgpro.com/forum/login.php?do=lostpw";
				
			
		break;
	
	}
	
		return giftWrap(drawing,type,Button_Titles,Button_Types,Button_Locations);

}


function openLoginDialogue(){
	$('loginAJAXBOX').style.display = 'block';
	$('main_header_top').style.zIndex = '4';
}


function openLostPasswordDialogue(){}



function openNewMessageDialogue(){}



function openRegisterDialogue(){}
                   

// Draw the buttons
function drawButtons(items,type,location){

	items = items.split(',');
	type = type.split(',');
	location = location.split(',');
	
	drawButton = "<table cellspacing='0' cellpadding='0' border='0' style='position:relative;top:4px;float:right; right:-5px;'><tr>";
	
	
	for(i=0;i<items.length;i++){
		
		drawButton = drawButton + "<td style='padding-right:10px;'>";
		drawButton = drawButton + "<table cellspacing='0' cellpadding='0' border='0'><tr>";
		drawButton = drawButton + "<td><img src='/sites/default/themes/mlg2/_images/loginBar/button_01.png'></td>";
		drawButton = drawButton + "<td style='background-image:url(\"/sites/default/themes/mlg2/_images/loginBar/button_02.png\");background-repeat:repeat-x;'>";
		
		switch(type[i]){
		
			case 'location':
			
			drawButton =  drawButton + "<a href='"+location[i]+"' style='color:#FFFFFF;'>"+items[i]+"</a>";
			
			break;
			
			default:
			
			drawButton =  drawButton + "<input type='submit' value ='Submit' style='border:0px; background-color:transparent;color:#FFFFFF;cursor:pointer;background-image:none;'>";

			break;
			
		
		
		}
		
		drawButton = drawButton + "</td>";
		drawButton = drawButton + "<td><img src='/sites/default/themes/mlg2/_images/loginBar/button_03.png'></td>";
		drawButton = drawButton + "</tr></table>";
		drawButton = drawButton + "</td>";
		
	}	
	
	drawButton = drawButton + "</tr></table>";
	
	return drawButton;

}

// The Contents doesn't get its shazam without the giftwrap. =)
function giftWrap(content,type,buttons,types,locations){

	switch(type){
	
	case 'box_login':
	var formWrapper = ["<form action='http://www.mlgpro.com/?q=user/login' method='POST'>","</form>"];
	break;
	
	}

	var giftWrapped = "<div style='position:absolute;z-index:100;height:200px;overflow:visible;'><span style='position:relative;left:-100px;z-index:100; top:14px;'>";
		giftWrapped = giftWrapped + formWrapper[0];
		giftWrapped = giftWrapped + "<table cellspacing='0' cellpadding='0' border='0'><tr><td><img src='/sites/default/themes/mlg2/_images/loginBar/loginBar_01.png'></td></tr>";
		giftWrapped = giftWrapped + "<tr><td style='background-repeat:repeat-y;background-image:url(\"/sites/default/themes/mlg2/_images/loginBar/loginBar_02.png\")'>";
		giftWrapped = giftWrapped + content;
		giftWrapped = giftWrapped + "</td></tr><tr><td><img src='/sites/default/themes/mlg2/_images/loginBar/loginBar_03.png'></td></tr>";
		giftWrapped = giftWrapped + "<tr><td style='background-repeat:repeat-y;background-image:url(\"/sites/default/themes/mlg2/_images/loginBar/loginBar_04.png\")'><span style='position:relative'>";
		giftWrapped = giftWrapped + drawButtons(buttons,types,locations) + "</span></td></tr>";
		giftWrapped = giftWrapped + "</td></tr><tr><td><img src='/sites/default/themes/mlg2/_images/loginBar/loginBar_05.png'></td></tr></table>";
		giftWrapped = giftWrapped + formWrapper[1];
		giftWrapped = giftWrapped + "</span></div>";
	
	return giftWrapped;
	

}