function showLogin() {

	var formHtml = "<form action='#' onsubmit='doLogin();return false' id='login_form'>"
			+ "  <div class='section'>"
			+ "    <div class='field'>"
			+ "      <label>Login Name:</label>"
			+ "      <input id='fld_user' class='v' type='text'/>"
			+ "    </div>"
			+ "    <div class='field'>"
			+ "      <label>Password:</label>"
			+ "      <input id='fld_pwd' class='v' type='password'/>"
			+ "    </div>				"
			+ "  </div>"
			+ "  <div style='float: left' id='login_error' class='error'></div>"
			+ "  <input class='submit' type='submit' value='Login'/>"
			+ "</form><br/>";

	var closer = ''; // '<a href="#"
			 // onclick="YAHOO.cm.login.destroy();">Close</a>';
	
	
	var msgHtml = 
                   "<ul id='login_faq_list'> " +  
                       "<li><a href='#'>School accounts</a>" +
                       "<p>" +
                       "For Login Name, put your school code (e.g., KJHS100).  For Password, put your own password." +
                       "</p>" +
                       "</li>" +
                       "<li><a href='#'>Personal accounts</a>" +
                       "<p>" +
                       "If you or your parents purchased Catchup Math, use your email address along with your password." +
                       "</p>" +
                       "</li>" +
        	   "</ul>";

	var html = closer + formHtml + msgHtml;

	YAHOO.cm = new Object();
	YAHOO.cm.login = new YAHOO.widget.Panel("login", {
		width : "275px",
		height : "auto",
		draggable : true,
		fixedcenter : true,
		close : true
	});
	YAHOO.cm.login.setHeader("Login To Catchup Math");
	YAHOO.cm.login.setBody(html);
	YAHOO.cm.login.setFooter("");
	YAHOO.cm.login.render("bd");
	
	var fu = document.getElementById("fld_user");
	var fp = document.getElementById("fld_pwd");
	var showErrorA = function(){showError(null)};
        fu.onkeydown = showErrorA;
	fp.onkeydown = showErrorA;
	fu.focus();

	YAHOO.cm.login.show();


     // Setup the login FAQ items
     var fl = document.getElementById("login_faq_list");
     var items = fl.getElementsByTagName("li");
     var itemps = fl.getElementsByTagName("p");
     for(var i=0;i<items.length;i++) {
         var item = items[i];
         items[i].onclick = function(x) {
	     // find the p, and show it
   	     var thep = this.getElementsByTagName("p")[0];
	      showFaqElement(thep);
	       return false;
	 };
     }
}


function loginFaq() {
}

function showFaqElement(thep) {
    var fl = document.getElementById("login_faq_list");
    var itemps = fl.getElementsByTagName("p");
    for(var i=0;i<itemps.length;i++) {
        itemps[i].style.display = (itemps[i] == thep)?'block':'none';
    }
}





var ADMIN_URL = '/cm_admin/CatchupMathAdmin.html';
var STUDENT_URL = '/cm_student/CatchupMath.html';

function doLogin() {
	// Catchup Math login manager and create login for user
	var user = document.getElementById("fld_user").value;
	var pwd =  document.getElementById("fld_pwd").value;
	
	handleLogin(user, pwd);
}


function handleLogin(user,pwd) {

    var callback = {
      success:function(r) {
          try {
                  var userObject = eval( "(" + r.responseText + ")" );
                  // alert('userObject.key: ' + userObject.aid);
                  // example result: {status:'OK',key:'cm_1242080456282', type:'STUDENT', userId:376}
                  var url='';
                  var type='';
                  var msg='';
                  if(userObject.type == 'ADMIN') {
                          url = ADMIN_URL;
                          if (userObject.status == 'Expired') {
            	    		  if (userObject.expireDate != 'n/a')
            	    		      msg = '&nbsp;&nbsp;&nbsp;The entered account expired ' + userObject.expireDate + '.<br/> Please contact schools@hotmath.com to renew.';
            	    		  else
            	    			  msg = '&nbsp;&nbsp;&nbsp;The entered account is not valid.<br/> Please contact schools@hotmath.com to renew.';
                        	  showLoginErrorWindow('Login Error', msg);
                        	  return;
                          }
                  }
                  else {
                	      if(userObject.type == 'AUTO_CREATE') {
                	          type='&type=ac';
                	      }

                	      //alert('accountType: ' + userObject.accountType);
                	      
                	      if (userObject.status == 'Expired') {

            	    		  if (userObject.expireDate != 'n/a')
            	    		      msg = '&nbsp;&nbsp;&nbsp;The entered account expired ' + userObject.expireDate + '.<br/>';
            	    		  else
            	    			  msg = '&nbsp;&nbsp;&nbsp;The entered account is not valid.<br/>';

                	    	  if (userObject.accountType == 'ST') {
                                  msg += 'Please tell the appropriate faculty or administrator.';
                	    	  }
                	    	  if (userObject.accountType == 'PS') {
                                  msg += 'We hope you decide to renew!';
                	    	  }

                	    	  showLoginErrorWindow('Login Error', msg);
                	    	  return;
                	      }

                          if( location.hostname == 'localhost')
                              url = "http://" + location.hostname + ':8081';
                          else if(location.hostname == 'hotmath.kattare.com')
                               url = "http://hotmath.kattare.com";
                          else 
                               url = "http://hotmath.com";

                          url += STUDENT_URL;

                          // mark as a demo setup
                          if(user == 'catchup_demo')
                             type = "&type=1";  

                  }
                  //var args = '?key=' + userObject.key + '&uid=' + userObject.userId;
                  var args = '?key=' + userObject.key + '&uid=' + userObject.userId + type;
                  url += args;
                  document.location.href = url;
          }
          catch(e) {
        	  showLoginErrorWindow('Login Error', '    Invalid Login Name and/or Password');
          }
      },
      failure:function(e) {
          alert('Error talking with CM server: ' + e.statusText);
      }
    };
    var url = '/cm/loginService?user=' + user + '&pwd=' + pwd;
    YAHOO.util.Connect.asyncRequest('POST',url, callback, null);
}




/** Log user in as demo user it CM student, which takes user as an anonymous user
 *  into a predetermined test, reset on each invocation.
 *  
 * @return
 */
function startSampleSession() {
	 handleLogin("catchup_demo","demo");
}


/** Display standard error message
 * 
 * @param ms
 * @return
 */
function showError(ms) {
	var e = document.getElementById("login_error");
	if(e)
	    e.innerHTML = (ms)?ms:"";
}



String.prototype.trim = function() {
	  a = this.replace(/^\s+/, '');
	  return a.replace(/\s+$/, '');
	};


function $get(x) {
	return document.getElementById(x);
}



/** Show DHTML window using the innerHTML
    from predefined blocks of HTML in educators.html
*/
function showStandardInfoWindow(title, infoMessage) {
       var closer = '<a id="closer" href="#" onclick="YAHOO.infoWin.destroy();return false">Close</a>';
       infoMessage = closer + infoMessage;

       YAHOO.infoWin = new Object();
       YAHOO.infoWin = new YAHOO.widget.Panel("info-window", {
           width : "500px",
           height : "auto",
           draggable : true,
           fixedcenter : true,
           close : true
       });

       YAHOO.infoWin.setHeader(title);
       YAHOO.infoWin.setBody(infoMessage);
       YAHOO.infoWin.setFooter("");
       YAHOO.infoWin.render("bd");

       YAHOO.infoWin.show();
}

/** Show DHTML window using the innerHTML
from predefined blocks of HTML in educators.html
*/
function showStandardErrorWindow(title, infoMessage) {
	var browserMsg = 'If the problem persists, please clear your browser\'s cache and try again.';
	showErrorWindow(title, infoMessage, browserMsg);
}

function showLoginErrorWindow(title, infoMessage) {
	var browserMsg = 'If you are sure the account should be active, please clear your browser\'s cache and try again.';
	showErrorWindow(title, infoMessage, browserMsg);
}

function showErrorWindow(title, infoMessage, browserMsg) {
   var closer = '[ <a id="closer" href="#" onclick="YAHOO.errorWin.destroy();return false">Close</a> ]';
   var body = '<div style="text-align: center;">' + infoMessage + '<div style="margin: 10px 25px;">' + browserMsg + '</div></div> <div style="padding-top: 10px; text-align: center;">' + closer + '</div>';
   
   YAHOO.errorWin = new Object();
   YAHOO.errorWin = new YAHOO.widget.Panel("error-window", {
       width : "400px",
       height : "auto",
       draggable : true,
       fixedcenter : true,
       close : true
   });

   YAHOO.errorWin.setHeader(title);
   YAHOO.errorWin.setBody(body);
   YAHOO.errorWin.setFooter("");
   YAHOO.errorWin.render("bd");

   YAHOO.errorWin.show();
}


function showGettingStartedGuide() {

    var html = "<iframe width='100%' height='400px' frameborder='no' src='/gwt-resources/cm-admin-getting-started-guide.html'></iframe>";
    var title = "Catchup Math Administrator's Getting Started Guide";

    var closer = '<a id="closer" href="#" onclick="YAHOO.adminManual.destroy();return false">Close</a>';
    html = closer + html;

    YAHOO.adminManual = new Object();
    YAHOO.adminManual = new YAHOO.widget.Panel("adminManual-window", {
        width : "500px",
        height : "auto",
        draggable : true,
        fixedcenter : true,
        close : true
    });

    YAHOO.adminManual.setHeader(title);
    YAHOO.adminManual.setBody(html);
    YAHOO.adminManual.setFooter("");
    YAHOO.adminManual.render("bd");

    YAHOO.adminManual.show();
}


function showHowItWorksVideo() {

    var closer = '<a href="#" onclick="YAHOO.cm.howvideo.destroy();">Close</a>';
    var html= closer + '<iframe src="/how-it-works/" width="100%" height="520px" scrolling="no" frameborder="no"></iframe>' + closer;
    YAHOO.cm = new Object();
    YAHOO.cm.howvideo = new YAHOO.widget.Panel("howvideo", { width:"680px",visible:false, draggable:true, close:true ,fixedcenter:true} );
	 YAHOO.cm.howvideo.setHeader("How Does Catchup Math Work?");
	 YAHOO.cm.howvideo.setBody(html);
	 YAHOO.cm.howvideo.setFooter("");
	 YAHOO.cm.howvideo.render("bd");
	 
    YAHOO.cm.howvideo.show();

    YAHOO.cm.howvideo.hideEvent.subscribe(function(e, a, o){
      // .destroy() throws error in IE, main thing is to stop the video
      YAHOO.cm.howvideo.setBody("");
    });
}

function showMonaMotivationalVideo() {

    var closer = '<a href="#" onclick="YAHOO.cm.motivate.destroy();">Close</a>';
    var html= closer + '<iframe src="/motivational_video/" width="100%" height="250px" scrolling="no" frameborder="no"></iframe>' + closer;
    YAHOO.cm = new Object();
    YAHOO.cm.motivate = new YAHOO.widget.Panel("motivate", { width:"340px",visible:false, draggable:true, close:true ,fixedcenter:true} );
	 YAHOO.cm.motivate.setHeader("Catchup Math Motivational Video");
	 YAHOO.cm.motivate.setBody(html);
	 YAHOO.cm.motivate.setFooter("");
	 YAHOO.cm.motivate.render("bd");
	 
    YAHOO.cm.motivate.show();

    YAHOO.cm.motivate.hideEvent.subscribe(function(e, a, o){
      // .destroy() throws error in IE, main thing is to stop the video
      YAHOO.cm.motivate.setBody("");
    });
}

