var req;
var email = "";
function FormObj(){
	this.email;
	this.email_news;
	this.password;
	this.memMessage;
	
	this.setEmail = setEmail;
	this.getEmail = getEmail;
	
	this.getEmailNews = getEmailNews;
	this.setEmailNews = setEmailNews;
	
	this.setPassword = setPassword;
	this.getPassword = getPassword;
	
	this.setMemMessage = setMemMessage;
	this.getMemMessage = getMemMessage;
	
}

function setEmail( email ){
	this.email = email;
}

function getEmail(){
	return this.email;
}

function setEmailNews( email ){
	this.email_news = email;
}

function getEmailNews(){
	return this.email_news;
}

function setPassword( password ){
	this.password = password;
}

function getPassword(){
	return this.password;
}

function setMemMessage( message ){
	this.memMessage = message;
}

function getMemMessage(){
	return this.memMessage;
}

var formObj = null;


function loadXMLDoc( url, paramString, reqChange ) 
{
    // branch for native XMLHttpRequest object
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
        req.onreadystatechange = eval( reqChange );
        req.open("POST", url, true);
        req.setRequestHeader("Content-Type",  
            	"application/x-www-form-urlencoded; charset=UTF-8");
        req.send(paramString);
    // branch for IE/Windows ActiveX version
    } else if (window.ActiveXObject) {
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if (req) {
            req.onreadystatechange = eval ( reqChange );
            req.open("POST", url, true);
            req.setRequestHeader("Content-Type",  
            	"application/x-www-form-urlencoded; charset=UTF-8");
            req.send( paramString );
        }
    }
}


function loadXMLGetDoc( url, reqChange ) 
{
    // branch for native XMLHttpRequest object
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
        req.onreadystatechange = eval( reqChange );
        req.open("GET", url, true);
        req.send(null);
    // branch for IE/Windows ActiveX version
    } else if (window.ActiveXObject) {
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if (req) {
            req.onreadystatechange = eval( reqChange );
            req.open("GET", url, true);
            req.send();
        }
    }
}


function processReqChange() 
{
    // only if req shows "complete"
    if (req.readyState == 4) {
        // only if "OK"
        if (req.status == 200) {
        	response  = req.responseXML.documentElement;
        	status    = response.getElementsByTagName('code')[0].firstChild.data;
        	message   = response.getElementsByTagName('message')[0].firstChild.data;
        	
			if( status == "0" ){
				formObj = new FormObj();
				formObj.setMemMessage( message );
				loadMemTile( "success" );

				//hack for comm blog
				auth = true;
				showAuth( '' );
				
				top.leftFrame.sendStore( email, document.cookie );	

			}else if( status == "6" ){
				formObj = new FormObj();
				formObj.setMemMessage( "password sent.  please check your inbox." );
				loadMemTile( "success" );
				
			}else if( status == "7" ){
				formObj = new FormObj();
				formObj.setMemMessage( "confirmation email sent.  please check your inbox." );
				loadMemTile( "success" );
			}else if (status == "8"){
				formObj = new FormObj();
				formObj.setMemMessage( "auto login success." );
				loadMemTile( "success" );

			}
			
			writeInnerHTML( "memMessage", message );	
        } else {
            writeInnerHTML( "errorMessage", "ERROR:  " + req.statusText );
        }
    }
}

//change to div
function writeInnerHTML( divId, message ){ 
	if( document.getElementById( divId ) ){
		document.getElementById( divId ).innerHTML =  message;
	}
}


/*********  FORM FUNCTIONS *********/

function submitCancel(){
 writeInnerHTML( "memMessage", "Loading.." );
	if (isLoggedIn() == 1){
			formObj.setMemMessage (" <span id=\"memMessage\" class=\"linkbig\">"+
			 member["Code Name"] + " is logged in.  <br/><br/>" +
			"<a href=\"javascript:loadMemTile('user-prefs');\">user prefs</a><br/>"+ 
			"<a onClick=\"top.leftFrame.sendStore( \'LOGOUT\', document.cookie )\" href=\"/register?reset=member&forward=/home.html\">logout</a>" +
			"</span>");
			writeInnerHTML( "memTile", formObj.getMemMessage() );	
			formObj.setMemMessage( '' );
	}
	else {
				loadMemTile( 'new' );
	}
}

function submitPrefs()
{
	writeInnerHTML( "memMessage", "Submitting.." );
		var regUrl = "/ajaxUserPrefs";
		var regForm = document.getElementById( "memForm" );
		alert( 'loaded');
		if( regForm.passwordconfirm.value == regForm.password.value ){
			var paramString = "email=" + 	URLEncode( regForm.email.value )+ 
								"&password=" + 	URLEncode( regForm.password.value ) + 
								"&passwordconfirm=" + 	URLEncode( regForm.passwordconfirm.value );
			alert( 'loaded');
			loadXMLDoc( regUrl, paramString, "processReqChange" );
			alert( 'loaded');
		}else{
			writeInnerHTML( "memMessage", "ERROR:  Your password does not match." );
		}
}

function submitLogin(){

		writeInnerHTML( "memMessage", "Submitting.." );
		var loginUrl = "/ajaxLogin";
		var loginForm = document.getElementById( "memForm" );
		email = loginForm.email.value;	
		var paramString = 	"email=" + 	URLEncode( loginForm.email.value )+ 
							"&password=" + 	URLEncode( loginForm.password.value );
			
		loadXMLDoc( loginUrl,paramString, "processReqChange" );
}

function submitRegistration(){

		writeInnerHTML( "memMessage", "Submitting.." );
		var regUrl = "/ajaxRegister";
		var regForm = document.getElementById( "memForm" );
		email = regForm.email.value;	
		if( regForm.passwordconfirm.value == regForm.password.value ){
			var paramString = 	"email=" + 	URLEncode( regForm.email.value )+ 
								"&password=" + 	URLEncode( regForm.password.value ) + 
								"&passwordconfirm=" + 	URLEncode( regForm.passwordconfirm.value ) + 
								"&username=" + 	URLEncode( regForm.username.value ) + 
								"&country=" + URLEncode( regForm.country.value ) + 
								"&zip=" + URLEncode( regForm.zip.value );
				
			loadXMLDoc( regUrl, paramString, "processReqChange" );
		}else{
			writeInnerHTML( "memMessage", "ERROR:  Your password does not match." );
		}
}

function submitNewsletter(){

		writeInnerHTML( "memMessage", "Submitting.." );
		var regUrl = "/ajaxNewsletter";
		
		var regForm = document.getElementById( "newsForm" );
 		var paramString = 	"email=" + 	URLEncode( regForm.email_news.value )+ 
							"&country=" + URLEncode( regForm.country_news.value ) + 
							"&zip=" + URLEncode( regForm.zip_news.value ) + 
							"&newsletter=yes";
		//alert( paramString );	
			
		loadXMLDoc( regUrl, paramString, "processReqChange" );
}

function submitForgot(){

		writeInnerHTML( "memMessage", "Submitting.." );
		var regUrl = "/ajaxForgot";
		
		var regForm = document.getElementById( "memForm" );
 		var paramString = "email=" + URLEncode( regForm.email.value );

		loadXMLDoc( regUrl, paramString, "processReqChange" );
}

function submitChangePass(){

		writeInnerHTML( "memMessage", "Submitting.." );
		var regUrl = "/ajaxForgot";
		
 		var paramString = "email=" + member["Email Address"];
		loadXMLDoc( regUrl, paramString, "processReqChange" );
}



function submitItem( albumId, SKU ){
		var albumUrl = "/echoPrice"
		var paramString = "album_id=" + albumId + "&es_id=" + SKU;

		//alert( paramString );
		loadXMLDoc( albumUrl, paramString, "loadItem" );
}


function submitConfirm( ){
		writeInnerHTML( "memMessage", "Submitting.." );
		var member_id = getCookie( "member_id" );
		var confirmUrl = "/ajaxConfirm";
		var paramString = "member_id=" + member_id;

		loadXMLDoc( confirmUrl, paramString, "processReqChange" );
}

var auth = false;
function submitAuth(){
		var regUrl = "/ajaxAuth";
		loadXMLGetDoc( regUrl, "loadAuth" );
}



function loadItem(){
    // only if req shows "complete"
    if (req.readyState == 4) {
        // only if "OK"
        if (req.status == 200) {
                response  = req.responseXML.documentElement;
                albumId   = response.getElementsByTagName('albumId')[0].firstChild.data;
                price   = response.getElementsByTagName('price')[0].firstChild.data;
                resumeItem( albumId, price );
        }
    }
}

function loadEBTile(){
		writeInnerHTML( "eblogTile", "<span class=\"newstitle\">Loading...</span>" );
		var blogUrl = "/blog/iframe_blog.jsp?board=1414947";
		
		loadXMLGetDoc( blogUrl, "loadEBInner" );
		
}

function loadEBInner(){
    // only if req shows "complete"
    if (req.readyState == 4) {
        // only if "OK"
        if (req.status == 200) {
        	response  = req.responseXML.documentElement;
        	html    = response.getElementsByTagName('html')[0].firstChild.data;
        	
        	writeInnerHTML( "eblogTile", html );
        	
        	loadMemTile('');
        } else {
            writeInnerHTML( "eblogTile", "<span class=\"newstitle\">ERROR:  Could not load blog text." );
            loadMemTile('');
        }
    }
}

function loadMemTile( action ){
		var memUrl = "/app/reg_incl/";
		
		//store form values
		formObj = ( formObj ) ? formObj: new FormObj();
		
		var memForm = document.getElementById( "memForm" );
		var newsForm = document.getElementById( "newsForm" );
		
		if( memForm ){
			if( memForm.email )
				formObj.setEmail( memForm.email.value );
			if( memForm.password )
				formObj.setPassword( memForm.password.value );
		}
		
		if( newsForm ){
			if( newsForm.email_news )
				formObj.setEmailNews( newsForm.email_news.value );
		}
			
		writeInnerHTML( "memTile", "<span class=\"newstitle\">Loading...</span>" );

		if( action ){
			memUrl += action + ".xml";
		}else if( isLoggedIn() == 1 ){
			memUrl += "success.xml";
		}else{
			memUrl += "new.xml";
		}

		loadXMLGetDoc( memUrl, "loadMemInner" );
		
}

function loadMemInner(){
    // only if req shows "complete"
    if (req.readyState == 4) {
    	
        // only if "OK"
        if (req.status == 200) {
        	response  = req.responseXML.documentElement;
        	html    = response.getElementsByTagName('html')[0].firstChild.data;
        	writeInnerHTML( "memTile", html );
       	
        	//load forms values
        	var memForm = document.getElementById( "memForm" );
        	if( memForm ){
      		if( formObj.getEmail() && formObj.getEmail()!='email' ){
      			memForm.email.value = formObj.getEmail();
      		}
				}
        	
        	if( formObj.getMemMessage() ){
        		writeInnerHTML( "memMessage", formObj.getMemMessage() );
        		formObj.setMemMessage( '' );
        	}
        	
        } else {
            writeInnerHTML( "memTile", "<span class=\"newstitle\">ERROR:  Could not load.</span>" );
        }
    }
}

function loadAuth(){
	 // only if req shows "complete"
    if (req.readyState == 4) {
        // only if "OK"
        if (req.status == 200) {
        	response  = req.responseXML.documentElement;
        	status    = response.getElementsByTagName('code')[0].firstChild.data;
        	message   = response.getElementsByTagName('message')[0].firstChild.data;
        	

			if( status == "0" ){
				auth = true;
				message = "";
			}else {
				auth = false;
				message = "PLEASE LOGIN/REGISTER BEFORE POSTING.<br/><br/>";
			}
			showAuth( message );
	        		
			loadMemTile('');
        } else {
            loadMemTile('');
        }
    }
	
}

function showAuth( message ){
	var postDisabled = !auth;
	
	//MESSAGES FOR COMM. BLOG
		if( document.getElementById( "reply-register" ) )
			document.getElementById( "reply-register" ).innerHTML = message; 
		if( document.getElementById( "reply-subject" ) )
			document.getElementById( "reply-subject" ).disabled = postDisabled; 
		if( document.getElementById( "reply-post" ) )
			document.getElementById( "reply-post" ).disabled = postDisabled;
			
		if( document.getElementById( "post-register" ) )
    		document.getElementById( "post-register" ).innerHTML = message;
    	if( document.getElementById( "post-subject" ) )
			document.getElementById( "post-subject" ).disabled = postDisabled; 
		if( document.getElementById( "post-post" ) )
			document.getElementById( "post-post" ).disabled = postDisabled;
		//if (auth)
		//{ submitAutoLogin(); }
}

function isLoggedIn(){
	if( member["Code Name"] && 
		( !member["Hash Code"] || member["Hash Code"] == "confirmed" ) )
	{
		formObj.setMemMessage( member["Code Name"] + " is logged in.  <br/><br/>" +
			"<a href=\"javascript:loadMemTile('user-prefs');\">user prefs</a><br/>"+ 
			"<a onClick=\"top.leftFrame.sendStore( \'LOGOUT\', document.cookie )\" href=\"/register?reset=member&forward=/home.html\">logout</a>" );
			formObj.setEmail( member["Email Address"]);			
		return 1;
	}else if( member["Code Name"] && member["Hash Code"] ){
		formObj.setMemMessage( "<a href=\"javascript:submitConfirm()\">click here re-send your confirmation email.</a><br/><br/>confirming your account allows full access.<br/><br/><a onClick=\"top.leftFrame.sendStore( \'LOGOUT\', document.cookie )\" href=\"/register?reset=member&forward=/home.html\">logout</a>" );
		return 1;
	}else{
		return 0;
	}
}

/** auto login function **/
/*
function submitAutoLogin( ){
		var autoUrl = "/ajaxLogin";
		var paramString = "email=" + 	URLEncode( member["Email Address"] )+ 
							"&auto=true&password=temp";			
		loadXMLDoc( autoUrl,paramString, "processReqChange" );
}
*/

//  password field switch, no longer needed
/*
function changeMemPass(){
  changeMemPassword(document.getElementById('password'), 'password'); 
}
function changeMemNewPass(){
  changeMemPassword(document.getElementById('password'), 'new password'); 
}
function changeMemPassConf(){
  changeMemPassword(document.getElementById('passwdconfirm'), 'passwdconfirm'); 
}
function changeMemPassword(oldEl,text,first){
  // change the field type to text
		var memForm = document.getElementById( "memForm" );
  try{
 		var newEl = document.createElement('input');
		  if (first==1){
			 newEl.setAttribute('type', 'text');
     newEl.onfocus = oldEl.onfocus;
			}
			else { newEl.setAttribute('type', 'password'); }
			newEl.maxLength=(oldEl.maxLength>0)?oldEl.maxLength:16;newEl.size=oldEl.size;
    newEl.className=oldEl.className;newEl.name=oldEl.name;newEl.id=oldEl.id; 		
			newEl.value = (oldEl.value=='password'||oldEl.value=='new password')?text:'';
  	memForm.replaceChild(newEl, oldEl); 
    if (first!=1){ 
  		 newEl.value='';
				 newEl.focus();newEl.select();
  	}
		}catch(err){}
}
*/
