

var lgn = function(){  // header log in dialog function
	
	/* shorten YUI namespace */
	var
	Y = YAHOO.util,
	D = YAHOO.util.Dom,
	E = YAHOO.util.Event;

	/* Declare private variables */
	var
	insertDialogAfter = 'header',
	triggerName = 'signInLink',
	hiddenPageInfo = 'signInParam',
	dialogName = 'signInDialog',
	dialogContentName = 'signInDialogContent',
	formName = 'signInForm',
	submitImage = '/osp/js/img/pillButton_signIn_TanOnBlue.gif',
	submitName = 'loginSubmit',
	cancelImage = '/osp/js/img/pillButton_cancel_bOnb.gif',
	cancelName = 'loginCancel',
	dialogTitleContent = '<p>Member Sign In</p>',
	dialogFormContent = '<input type="hidden" name="actn" value="60100"><label for="username">E-Mail: </label><input type="text" name="username" id="username" class="signInField" maxlength="128"> <label for="password">Password: </label><input type="password" name="password" id="password" class="signInField" maxlength="50">',
	header,nextSib,dialog,inner,hd,bd,title,form,formAction,formContent,params,pageInfo,cancel,img,submit,links,i,t,hideAnim,showAnim,visible;
	
	/* create dialog structure */
	dialog = document.createElement('div');
	dialog.setAttribute('id',dialogName);
	D.addClass(dialog,'closed')
	inner = document.createElement('div');
	D.addClass(inner,dialogContentName);
	hd = document.createElement('div');
	D.addClass(hd,'hd');
	bd = document.createElement('div');
	D.addClass(bd,'bd');
	form = document.createElement('form');
	form.setAttribute('method','post');
	form.setAttribute('name',formName);
	params = document.createElement('span');
	
	
	/*create buttons*/ 
	submit = document.createElement('input');
	submit.setAttribute('type','image');
	submit.setAttribute('src',submitImage);
	submit.setAttribute('name',submitName);
	D.addClass(submit,submitName);
	submit.setAttribute('value','Sign In');
	submit.setAttribute('alt','Sign In');
	E.addListener(submit,'click', function() { this.form.submit(); })
	cancel = document.createElement('button');
	cancel.setAttribute('type','button');
	cancel.setAttribute('name',cancelName);
	D.addClass(cancel,cancelName);
	//cancel.setAttribute('value','Cancel');
	img = document.createElement('img');
	img.setAttribute('src',cancelImage);
	img.setAttribute('alt','Cancel');
	E.addListener(cancel,'click', function() { lgn.hideDialog();  })
	
	/* create content */

	hd.innerHTML=dialogTitleContent;
	form.innerHTML=dialogFormContent;
	form.appendChild(params);
	form.appendChild(submit);
	cancel.appendChild(img);
	form.appendChild(cancel);
	bd.appendChild(form)
	inner.appendChild(hd);
	inner.appendChild(bd);
	dialog.appendChild(inner);
	dialog.style.height = "0";
	dialog.style.overflow = "hidden";


	/* test variable for show hide toggle */
	visible = false;
							  
	/* set up dialog */
	return{
		init:function(){
			if(!document.getElementById || !document.createTextNode){return;}
			formAction = location.protocol+"//"+location.host+location.pathname;
			form.setAttribute('action',formAction);
			pageInfo = document.getElementById(hiddenPageInfo);
			if(pageInfo){
				params.innerHTML = pageInfo.innerHTML;
			}
			nextSib = document.getElementById(insertDialogAfter).nextSibling;
			nextSib.parentNode.insertBefore(dialog,nextSib);

			/* get sign in links; apply event handler */
			links = D.getElementsByClassName(triggerName,'a');
			if(!links){return};
			for(i=0;i<links.length;i++){
			E.addListener(links[i],'click',lgn.showDialog)
			}
			var DialogHeight = D.getElementsByClassName(dialogContentName,'div')[0].offsetHeight;
				/* set up hid and show animation */
				showAnim = new Y.Anim(dialog,{
											height:{to:DialogHeight, unit:'px'}
											},0.5,Y.Easing.backOut);

				hideAnim = new Y.Anim(dialog,{
											height:{to:0, unit:'px'}
											},0.25,Y.Easing.EaseIn);					

		},
		showDialog:function(e){
			E.stopEvent(e);
			t = E.getTarget(e,1);
			if(!visible){
			showAnim.onStart.subscribe( lgn.setToOpening );
			showAnim.onComplete.subscribe( lgn.setToOpen );
			showAnim.animate();
			visible = true;
			}else{
				lgn.hideDialog();
			}
		},
		hideDialog:function(){
			form.reset();
			hideAnim.onStart.subscribe( lgn.setToClosing );
			hideAnim.onComplete.subscribe( lgn.setToClosed );
			hideAnim.animate();
		},
		setToClosing:function(){
			D.replaceClass(dialog,'open','closing')
		},	
		setToClosed:function(){
			D.replaceClass(dialog,'closing','closed')
			visible = false;
		},
		setToOpening:function(){
			D.replaceClass(dialog,'closed','opening')
		},
			setToOpen:function(){
			D.replaceClass(dialog,'opening','open')
			visible = true;		
		}
	};
}();

YAHOO.util.Event.onAvailable('footer',lgn.init,this)
