/* LOAD */
function ms_initProfile() {
    if(ms_isLoggedIn() == true) {
        if(typeof(msStorage.confirmProfileEmail) == 'undefined') { msStorage.confirmProfileEmail = []; }
        ms_getEmails('ms_uiGetEmailsProfile');
        ms_getProfile('ms_uiGetProfile');
		var cstate = gup('profile');
		//(cstate === 'subscribe') ? '' : createLoginIframe() ;
		newuser = false;
		//createLoginIframe();
    } else {
    }
}

/* FORM */

function ms_formAddEmail(formObj) {
    if(validateEmail(formObj.email)) {
        ms_addEmail(formObj.email, 'ms_uiAddEmail');
		$('cnnConnEmailErrorRes').hide();
    } else {
        $('cnnConnEmailErrorRes').show();
    }
}

function ms_formChangePrimary(emailId) {
    ms_changePrimaryEmail(emailId, 'ms_uiChangePrimaryEmail')
}

function ms_formUpdatePassword(formObj) {
}

function ms_formUpdateProfile(formObj) {
    updateProfileErrorMessages('hide');
    ms_updateProfile(formObj, 'ms_uiUpdateProfile');
}

function ms_formProfileLogin(formObj) {
    if(validateEmail(formObj.email)) {
        ms_doLogin(formObj.email, formObj.password, 'ms_uiDoLoginProfile');
    }
}

/* API */

function ms_getEmails(view){
	var queueItem = new ms_QueueItem(ms_baseStandard+'user.api', 'get');
	queueItem.addParam('action', 'getEmails');
	queueItem.addParam('callback', view);
	var queueItemObj = queueItem.getQueueItem();
    msQueueManager.addRequest(queueItemObj);
}

function ms_addEmail(email, view) {
	//console.log('addEmail api method');
    var queueItem = new ms_QueueItem(ms_baseStandard+'user.api', 'post');
    queueItem.addParam('action', 'addEmail');
    queueItem.addParam('email', email);
    queueItem.addParam('callback', view);
    var queueItemObj = queueItem.getQueueItem();
    msQueueManager.addRequest(queueItemObj);
}

function ms_deleteEmail(emailId, view) {
    var queueItem = new ms_QueueItem(ms_baseStandard+'user.api', 'post');
    queueItem.addParam('action', 'deleteEmail');
    queueItem.addParam('email', emailId);
    queueItem.addParam('callback', view);
    var queueItemObj = queueItem.getQueueItem();
    msQueueManager.addRequest(queueItemObj);
}

function ms_changePrimaryEmail(emailId, view) {
    var queueItem = new ms_QueueItem(ms_baseStandard+'user.api', 'post');
    queueItem.addParam('action', 'changePrimaryEmail');
    queueItem.addParam('email', emailId);
    queueItem.addParam('callback', view);
    var queueItemObj = queueItem.getQueueItem();
    msQueueManager.addRequest(queueItemObj);
}

function ms_getProfile(view) {
    var queueItem = new ms_QueueItem(ms_baseStandard+'user.api', 'get');
    queueItem.addParam('action', 'getProfile');
    queueItem.addParam('callback', view);
    var queueItemObj = queueItem.getQueueItem();
    msQueueManager.addRequest(queueItemObj);
}

function ms_updateProfile(paramsObj, view) {
    var queueItem = new ms_QueueItem(ms_baseStandard+'user.api', 'post');
    queueItem.addParam('action', 'updateProfile');
    for(key in paramsObj) {
        queueItem.addParam(key, paramsObj[key]);
    }
	//var hiddenFormscreenname = $('cnnConnHiddenProfileForm').screenName.value;
	//queueItem.addParam('displayname', hiddenFormscreenname);
    queueItem.addParam('callback', view);
    var queueItemObj = queueItem.getQueueItem();
    msQueueManager.addRequest(queueItemObj);
}

function ms_uiLoadEmails(jsonResponse){
	msQueueManager.requestReceived();
	var error = (typeof jsonResponse.errors == 'undefined') ? false : true;
	if(error == false) {
		for(i=0;i<jsonResponse.emails.length;i++){
			console.log('jsonResponse i is' + i);
			console.log(jsonResponse.emails.length);
			$('editmy_email' + i).value = jsonResponse.emails[i].email || '';
			var isPrimary = jsonResponse.emails[i].isPrimary;
			var emailStatus = jsonResponse.emails[i].status;
			$('editmy_email' + i + 'wrap').show();
			if(i>=1){
				$('editmy_addemail1').hide();
			};
			if(isPrimary == 'true'){
				$('editmy_emailprimary' + [i]).className = 'editmy_emailprimary';
				$('editmy_emailprimary' + [i]).addClassName = 'is_primary_email';
				$('editmy_emailprimary' + [i]).innerHTML = 'primary';
			};
			if(isPrimary != 'true'){
				$('editmy_emailprimary' + [i]).className = '';
				$('editmy_emailprimary' + [i]).innerHTML = 'change to primary';
			};
			if(emailStatus == 'confirmed'){
				$('editmy_emailconfirmed' + [i]).className = 'editmy_emailconfirmed';
			} else {
				$('editmy_emailconfirmed' + [i]).innerHTML = 'not confirmed';
			}
		}
	} else {
        // update ui for errors
		alert('We\'re sorry! This service is temporarily unavailable. Please try again soon.');
    }
}
//put these in a loop at some point
Event.observe(window, 'load', function(){
	$('editmy_emailprimary0').observe('click', function(){
		var emailAdd = $('editmy_email0').value;
		ms_changePrimaryEmail(emailAdd, 'ms_uiChangePrimaryEmail');
	});
	$('editmy_emailprimary1').observe('click', function(){
		var emailAdd = $('editmy_email1').value;
		ms_changePrimaryEmail(emailAdd, 'ms_uiChangePrimaryEmail');
	});
	$('editmy_emailprimary2').observe('click', function(){
		var emailAdd = $('editmy_email2').value;
		ms_changePrimaryEmail(emailAdd, 'ms_uiChangePrimaryEmail');
	});
});

function ms_uiAddEmailResponse(jsonResponse){
	msQueueManager.requestReceived();
	var error = (typeof jsonResponse.errors == 'undefined') ? false : true;
	if(error == false) {
		//alert('email added');
		//revalidate
		//ms_editMyProfile();
		//alert('not recalling');
	} else {
        // update ui for errors
		//alert('We\'re sorry! This service is temporarily unavailable. Please try again soon.');
		//console.log(jsonResponse.errors[0]);
		$('cnnConnectProfileErrors').innerHTML = '';
		$('cnnConnectProfileErrors').innerHTML = jsonResponse.errors[0];
		$('cnnConnectProfileErrors').show();
    }
}

function ms_uiLoadDetails(jsonResponse){
	msQueueManager.requestReceived();
	var error = (typeof jsonResponse.errors == 'undefined') ? false : true;
	if(error == false) {
		//console.log(jsonResponse);
		for(var i in jsonResponse.profile){
			//console.log(i);
			var inputId = 'editmy_' + i;
			var inputEl = $(inputId);
			if(inputEl){
				//console.log(inputEl);
				//console.log(jsonResponse.profile[i]);
				if(i == 'monthOfBirth'){
					var months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
					var month = months.indexOf(jsonResponse.profile['monthOfBirth']);
					month += 1;
					$(inputEl).value = month;
				} else {
				inputEl.value = jsonResponse.profile[i];
				}
			}
		};
		updateAvatarImg();
		showOverlay('profile_editmydetails_overlay');
	} else {
        // update ui for errors
		$('updateProfilePasswordMessages').innerHTML = '';
		var html =  "There was a problem grabbing your details";
		$('updateProfilePasswordMessages').innerHTML = html; 
    }
};
function ms_editMyProfile(){
	//firstName, lastName, address, address2, oldpassword, newpassword, confirmpass, monthOfBirth, yearOfBirth, zipCode
	var editValues = {	firstName: '', lastName: '', address: '', address2: '',
					password: '', newPassword: '', confirmPassword: '', passwordHint: 'none',
					monthOfBirth: '', yearOfBirth: '', gender: '', zip: ''};

	//remove any script tags in all fields
	for(var i in editValues){
		//console.log(i);
		var inputId = 'editmy_' + i;
		var inputEl = $(inputId);
		if(inputEl){
			//console.log(inputEl);
			var tv = inputEl.value;
			tv = tv.replace(/<[^>]*?>/g,'');
			editValues[i] = tv;
		}
	};
	var pass = true;
	//check passwords
	var passwordErrors = [];
	$('updateProfilePasswordMessages').innerHTML = '';
	$('editmy_password').removeClassName('redinput_error');
	$('editmy_newPassword').removeClassName('redinput_error');
	$('editmy_confirmPassword').removeClassName('redinput_error');
	var currentPassword = $('editmy_password').value;
	var newPassword = $('editmy_newPassword').value;
	var confirmPassword = $('editmy_confirmPassword').value;
	if(currentPassword != '' || newPassword != '' || confirmPassword != ''){
		if ((currentPassword == '' && newPassword != '') || (currentPassword == '' && confirmPassword != '')){
			pass = false;
			$('editmy_password').addClassName('redinput_error');
			$('updateProfilePasswordMessages').innerHTML = '';
			var html =  "Old Password cannot be empty.";
			$('updateProfilePasswordMessages').innerHTML = html; 
		} else {
			if (newPassword != '' && confirmPassword != '') {
				if(newPassword == confirmPassword) {
					if (!(newPassword.length < 6 || newPassword.indexOf(' ') != -1 || newPassword.length > 10)) {
						editValues.password = currentPassword;
						editValues.newPassword = newPassword;
						editValues.confirmPassword = confirmPassword;
						CNN_setCookie('firstName', editValues.firstName, 24 * 30 * 12, '/', document.domain);
						var newEmails = $$('.new_email_address');
						for(i=0;i<newEmails.length;i++){
							var email = $(newEmails[i]).value;
							if(email != ''){
								//var filter = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
								var filter = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
								if (filter.test(email)) {
									ms_addEmail(email, 'ms_uiAddEmailResponse');
								} else {
									pass = false;
									$('cnnConnectProfileErrors').innerHTML = '';
									$('cnnConnectProfileErrors').innerHTML = 'Please enter a valid e-mail address';
									$('cnnConnectProfileErrors').show();
								}
							}
						}
						ms_updateProfile(editValues, 'ms_editMyProfileResponse');
					} else {
						pass = false;
						$('editmy_newPassword').addClassName('redinput_error');
						$('updateProfilePasswordMessages').innerHTML = '';
						var html = "New Password must be 6 - 10 characters and may not contain spaces";
						$('updateProfilePasswordMessages').innerHTML = html;
					}
				} else {
					pass = false;
					$('editmy_newPassword').addClassName('redinput_error');
					$('editmy_confirmPassword').addClassName('redinput_error');
					$('updateProfilePasswordMessages').innerHTML = '';
					var html = "New password does not match Confirm password.";
					$('updateProfilePasswordMessages').innerHTML = html;
				}
			} else {
				pass = false;
				$('editmy_newPassword').addClassName('redinput_error');
				$('editmy_confirmPassword').addClassName('redinput_error');
				$('updateProfilePasswordMessages').innerHTML = '';
				var html =  "You must enter a new password and confirm that password.";
				$('updateProfilePasswordMessages').innerHTML = html; 
			}
		}
	// validating something other than a password change
	} else {
		//console.log('has new email?');
		//additional code to test if a new email needs to be added
		var newEmails = $$('.new_email_address');
		for(i=0;i<newEmails.length;i++){
			var email = $(newEmails[i]).value;
			if(email != ''){
				var filter = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
				if (filter.test(email)) {
					$('cnnConnectProfileErrors').innerHTML = '';
					ms_addEmail(email, 'ms_uiAddEmailResponse');
				} else {
					pass = false;
					$('cnnConnectProfileErrors').innerHTML = '';
					$('cnnConnectProfileErrors').innerHTML = 'Please enter a valid e-mail address';
					$('cnnConnectProfileErrors').show();
				}
			}
		}
	
	CNN_setCookie('firstName', editValues.firstName, 24 * 30 * 12, '/', document.domain);
	ms_updateProfile(editValues, 'ms_editMyProfileResponse');
		
	}
};

function ms_editMyProfileResponse(jsonResponse){
	msQueueManager.requestReceived(); // lets iJax know it can process the next request
    var error = (typeof jsonResponse.errors == 'undefined') ? false : true;
    if(error == false) {
		//its possible that there is actually an error in the error field
		if($('cnnConnectProfileErrors').innerHTML == ''){
			closeOverlay('profile_editmydetails_overlay');
		} else {
			//something else
		}
    } else {
        // update ui for errors
		$('editmy_password').addClassName('redinput_error');
		$('updateProfilePasswordMessages').innerHTML = '';
		var html =  "The old password you have provided does not match.";
		$('updateProfilePasswordMessages').innerHTML = html; 
    }
}




/* RESPONSE */

function ms_uiGetEmailsProfile(jsonResponse) {
    msQueueManager.requestReceived(); // lets iJax know it can process the next request
    var error = (typeof jsonResponse.errors == 'undefined') ? false : true;
    if(error == false) {
        // update ui for successful
        msStorage.emails = jsonResponse.emails;
        drawProfileEmails();
        
        //Check maximum email addresses
        if (isMaxEmails()) {
			$('editmy_addemail1').hide();
            $('editmy_addemail2').hide();
        } else {
            //turn on$('cnnConnEmailbox2').show();
        }
    } else {
        // update ui for errors
    }
}

function ms_uiAddEmail(jsonResponse) {
    msQueueManager.requestReceived(); // lets iJax know it can process the next request
    var error = (typeof jsonResponse.errors == 'undefined') ? false : true;
    if(error == false) {
        // update ui for successful
        ms_getEmails('ms_uiGetEmailsProfile');
    } else {
        // update ui for errors
        //alert(jsonResponse.errors);
        updateEmailErrorMessages('show', jsonResponse.errors);
    }
}

function ms_uiDeleteEmail(jsonResponse) {
    msQueueManager.requestReceived(); // lets iJax know it can process the next request
    var error = (typeof jsonResponse.errors == 'undefined') ? false : true;
    if(error == false) {
        // update ui for successful
        ms_getEmails('ms_uiGetEmailsProfile');
    } else {
        // update ui for errors
    }
}

function ms_uiChangePrimaryEmail(jsonResponse) {
    msQueueManager.requestReceived(); // lets iJax know it can process the next request
	//console.log(jsonResponse);
    var error = (typeof jsonResponse.errors == 'undefined') ? false : true;
    if(error == false) {	
        // update ui for successful
		//console.log('inside change primary true');
		//console.log(jsonResponse);
		ms_getEmails('ms_uiLoadEmails');
    } else {
        // update ui for errors
		$('updateProfilePasswordMessages').innerHTML = '';
		var html =  'There was an error changing your primary e-mail address';
		$('updateProfilePasswordMessages').innerHTML = html; 
    }
}

function ms_uiGetProfile(jsonResponse) {
    msQueueManager.requestReceived(); // lets iJax know it can process the next request
    var error = (typeof jsonResponse.errors == 'undefined') ? false : true;
    if(error == false) {
        // update ui for successful
        msStorage.profile = jsonResponse.profile;
        updateProfileErrorMessages('hide');
        updateProfileForm();
        updateProfileContent();
    } else {
        // update ui for errors
		
    }
}

function ms_uiUpdateProfile(jsonResponse) {
    msQueueManager.requestReceived(); // lets iJax know it can process the next request
    var error = (typeof jsonResponse.errors == 'undefined') ? false : true;
    if(error == false) {
        // update ui for successful
        ms_getProfile('ms_uiGetProfile');
		profileOverlayClose();
    } else {
        // update ui for errors
        updateProfileErrorMessages('show', jsonResponse.errors);
    }
}

function ms_uiDoLoginProfile(jsonResponse) {
    msQueueManager.requestReceived(); // lets iJax know it can process the next request
    var error = (typeof jsonResponse.errors == 'undefined') ? false : true;
    if(error == false) {
        // update ui for successful
        ms_initProfile()
    } else {
        // update ui for errors
        ms_initProfile();
    }
}

/* GUI */

function drawProfileEmails() {
    var emails = msStorage.emails;
    var html = '';
    var count = 0;
    for(var i=0; i<emails.length; i++) {
		if (i>=3) { break; } // stops after 3 email limit
        var primary = (emails[i].isPrimary == 'true') ? '<span class="cnngraytxt">Primary</span>&nbsp;&nbsp;|&nbsp;&nbsp;' : '<a href="javascript:void(0);" onclick="ms_formChangePrimary('+emails[i].id+');">Make Primary</a>&nbsp;&nbsp;|&nbsp;&nbsp;';
        var confirm = (emails[i].status == 'confirmed') ? '<span class="cnngreentxt">Confirmed</span>' : '<span class="cnnredtxt">Unconfirmed</span>&nbsp;&nbsp;(<span id="cnnProfileResendEmailLink'+count+'"><a href="javascript:void(0);" onclick="sendConfirmEmailProfile(\'cnnProfileResendEmailLink'+count+'\', \''+emails[i].email+'\')">resend e-mail</a></span>)';
        var options = (emails.length == 1 || emails[i].isPrimary == 'true') ? '' : '&nbsp;&nbsp;|&nbsp;&nbsp;<a href="javascript:void(0);" onclick="ms_deleteEmail(\''+emails[i].id+'\', \'ms_uiDeleteEmail\');">Delete</a></p>';
        if(emails[i].status == 'confirmed') {
            html += '<p class="cnnConnEmailbox"><strong>'+emails[i].email+'</strong><br />'+primary+confirm+options;
        } else {
            html += '<p class="cnnConnEmailbox"><strong>'+emails[i].email+'</strong><br />'+confirm+options;
            count++;        
        }
    }
	
   // $('email1_field').innerHTML = html;
}

function showToggleProfile() {
    var divId = 'cnnConnectMyDetailsContainer';
    if($(divId).style.display == 'none') {
        $(divId).style.display = 'block';
        centerDivOfPage('cnnConnectMyDetailsContainer');
    } else {
        $(divId).style.display = 'none';
    }
    updateProfileErrorMessages('hide');
}

function updateProfileForm() {
    var profile = msStorage.profile;
    var form = $('cnnConnHiddenProfileForm');
    var formItems = form.getElements();
    formItems.each(function(formItem, i) {
        if(typeof(profile[formItem.name]) != 'undefined') {
			formItem.value = profile[formItem.name];
			//console.log(formItem.name , formItem.value);
        }
    });
}

function updateProfileContent() {
    var emails = msStorage.emails;
    var hiddenForm = $('cnnConnHiddenProfileForm');
    var html = '';
    // name
//       $('editmy_firstname').value = hiddenForm.firstName.value;
  //     $('editmy_lastname').value = hiddenForm.lastName.value;
    // primary email
    /*for(var i=0; i<emails.length; i++) {
        if(emails[i].isPrimary == 'true') {
           // if($('cnnConnProfile-primaryEmail').innerHTML != emails[i].email) { $('cnnConnProfile-primaryEmail').innerHTML = emails[i].email; }
            if($('editmy_emailaddr').value != emails[i].email) { $('editmy_emailaddr').value = emails[i].email; }
        }
    }*/
	// zip code
	//$('editmy_postal').value = hiddenForm.zip.value;
	// birth and gender
	/*utilSelectOption($('cnnConnProfile-additional-form').dayOfBirth, hiddenForm.dayOfBirth.value);
	utilSelectOption($('cnnConnProfile-additional-form').yearOfBirth, hiddenForm.yearOfBirth.value);
	utilSelectOption($('cnnConnProfile-additional-form').gender, hiddenForm.gender.value);*/
	//updateAvatarImg(); // updated profile avatar img when complete
	
}

function changeDetails(option) { // and details
    var hiddenForm = $('cnnConnHiddenProfileForm');
    if(option == 'show') {
        if (hiddenForm.firstName.value != null && hiddenForm.firstName.value.trim() != "") {
            $('cnnConnProfile-name-form').firstName.value = hiddenForm.firstName.value;
			//$('cnnConnProfile-name-form').firstName.className = 'cnnblacktxt';
        }
        if (hiddenForm.lastName.value != null && hiddenForm.lastName.value.trim() != "") {
            $('cnnConnProfile-name-form').lastName.value = hiddenForm.lastName.value;
			//$('cnnConnProfile-name-form').lastName.className = 'cnnblacktxt';			
        }
    } else if(option == 'save') {
        if ($('cnnConnProfile-name-form').firstName.value == "First Name") {
            $('cnnConnProfile-name-form').firstName.value = "";
        }
        if ($('cnnConnProfile-name-form').lastName.value == "Last Name") {
            $('cnnConnProfile-name-form').lastName.value = "";
        }
        hiddenForm.firstName.value = $('cnnConnProfile-name-form').firstName.value;
        hiddenForm.lastName.value = $('cnnConnProfile-name-form').lastName.value;
		hiddenForm.zip.value = $('cnnConnProfile-address-form').zip.value;
        hiddenForm.dayOfBirth.value = utilGetSelectValue($('cnnConnProfile-additional-form').dayOfBirth);
        hiddenForm.yearOfBirth.value = utilGetSelectValue($('cnnConnProfile-additional-form').yearOfBirth);
        hiddenForm.gender.value = utilGetSelectValue($('cnnConnProfile-additional-form').gender);
		if (passwordSet >= 3) { // temporary
				change_Password('save')
		}
		if (passwordSet < 3) { 
			ms_formUpdateProfile($('cnnConnHiddenProfileForm').serialize(true));
		}
		//updateUser();
    }
}

function change_Email(option) {
    var hiddenForm = $('cnnConnHiddenProfileForm');
    if(option == 'show') {
        $('cnnConnProfile-primaryEmail-container').hide();
        $('cnnConnProfile-primaryEmail-edit').show();
    } else if(option == 'save') {
        $('cnnConnProfile-primaryEmail-edit').hide();
        $('cnnConnProfile-primaryEmail-container').show();
        ms_formUpdateProfile($('cnnConnHiddenProfileForm').serialize(true));
    }
}

function isMaxEmails() {
    //Check maximum email addresses
    var MAXIMUM_EMAIL_ADDRESS = 3;
    var emails = msStorage.emails;
    if (MAXIMUM_EMAIL_ADDRESS <= emails.length) {
        return true;
    }

    return false;
}
function change_Password(option) {
    var hiddenForm = $('cnnConnHiddenProfileForm');
	//console.log($('cnnConnProfile-password-form').password.value);
    if(option == 'show') {
       // $('cnnConnProfile-password-container').hide();
       // $('cnnConnProfile-password-edit').show();
    } else if(option == 'save') {
        var passwordErrors = [];
        var currentPassword = $('cnnConnProfile-password-form').password.value;
        var newPassword = $('cnnConnProfile-password-form').newPassword.value;
        var confirmPassword = $('cnnConnProfile-password-form').confirmPassword.value;
        if (currentPassword != '') {
            if (newPassword != '' && confirmPassword != '') {
                if(newPassword == confirmPassword) {
                    if (!(newPassword.length < 6 || newPassword.indexOf(' ') != -1 || newPassword.length > 10)) {
                        hiddenForm.password.value = $('cnnConnProfile-password-form').password.value;
                        hiddenForm.newPassword.value = $('cnnConnProfile-password-form').newPassword.value;
                        hiddenForm.confirmPassword.value = $('cnnConnProfile-password-form').confirmPassword.value;
                        //$('cnnConnProfile-password-edit').hide();
                        //$('cnnConnProfile-password-container').show();
                        ms_formUpdateProfile($('cnnConnHiddenProfileForm').serialize(true));
						hiddenForm.password.value = ''; // next 3 lines to clear fields, so other changes dont generate error when submitting
                        hiddenForm.newPassword.value = '';
                        hiddenForm.confirmPassword.value = '';
						//profileOverlayClose();

                    } else {
                        passwordErrors[0] = "New Password must be 6 - 10 characters and may not contain spaces";
                        updateProfilePasswordMessages("show", passwordErrors);
                    }
                } else {
                    passwordErrors[0] = "New password does not match Confirm password.";
                    updateProfilePasswordMessages("show", passwordErrors);
                }
            } else {
                passwordErrors[0] = "New password and Confirm password cannont be empty.";
                updateProfilePasswordMessages("show", passwordErrors);

            }
        } else {
          passwordErrors[0] =  "Old Password cannot be empty.";
          updateProfilePasswordMessages("show", passwordErrors); 
        }
    }
}

function change_Address(option) {
    var hiddenForm = $('cnnConnHiddenProfileForm');
    if(option == 'show') {
        $('cnnConnProfile-address-form').address.value = hiddenForm.address.value;
		$('cnnConnProfile-address-form').address.className = 'cnnblacktxt';
		if ($('cnnConnProfile-address-form').address.value == '') {
			$('cnnConnProfile-address-form').address.value = 'Address';
		}		
        $('cnnConnProfile-address-form').address2.value = hiddenForm.address2.value;
        $('cnnConnProfile-address-form').city.value = hiddenForm.city.value
		$('cnnConnProfile-address-form').city.className = 'cnnblacktxt';				
		if ($('cnnConnProfile-address-form').city.value == '') {
			$('cnnConnProfile-address-form').city.value = 'City';
		}		
        utilSelectOption($('cnnConnProfile-address-form').state, hiddenForm.state.value);        
        $('cnnConnProfile-address-form').zip.value = hiddenForm.zip.value;
		$('cnnConnProfile-address-form').zip.className = 'cnnblacktxt';		
        utilSelectOption($('cnnConnProfile-address-form').country, hiddenForm.country.value);
        $('cnnConnProfile-address-container').hide();
        $('cnnConnProfile-address-edit').show();
    } else if(option == 'save') {
        hiddenForm.address.value = $('cnnConnProfile-address-form').address.value;
        hiddenForm.address2.value = $('cnnConnProfile-address-form').address2.value;
        hiddenForm.city.value = $('cnnConnProfile-address-form').city.value;
        hiddenForm.state.value = utilGetSelectValue($('cnnConnProfile-address-form').state);
        hiddenForm.zip.value = $('cnnConnProfile-address-form').zip.value;
        hiddenForm.country.value = utilGetSelectValue($('cnnConnProfile-address-form').country);
        $('cnnConnProfile-address-edit').hide();
        $('cnnConnProfile-address-container').show();
        ms_formUpdateProfile($('cnnConnHiddenProfileForm').serialize(true));
    }
}

function change_Phone(option) {
    var hiddenForm = $('cnnConnHiddenProfileForm');
    if(option == 'show') {
        $('cnnConnProfile-phone-form').phone.value = hiddenForm.phone.value;
		if ($('cnnConnProfile-phone-form').phone.value == '') {
			$('cnnConnProfile-phone-form').phone.value = 'Phone Number';
		}		
        $('cnnConnProfile-phone-container').hide();
        $('cnnConnProfile-phone-edit').show();
    } else if(option == 'save') {
        hiddenForm.phone.value = $('cnnConnProfile-phone-form').phone.value;
        $('cnnConnProfile-phone-edit').hide();
        $('cnnConnProfile-phone-container').show();
        ms_formUpdateProfile($('cnnConnHiddenProfileForm').serialize(true));
    }
}
function createScreenname(option) {
    var hiddenForm = $('cnnConnHiddenProfileForm');
    if(option == 'show') {
		// nothing atm
    } else if(option == 'save') {
        if ($('cnnConnProfile-screenname-form').screennameinput.value.length > 12) { 
			jQuery("#screennameinstr").removeClass('cnngraytxt'); 
			jQuery("#screennameinstr").addClass('cnnredtxt');
		} else {	
        hiddenForm.screenName.value = $('cnnConnProfile-screenname-form').screennameinput.value;
        $('cnnConnCreateScreenName').hide();
		$('cnnConnProfile-screenName').update(hiddenForm.screenName.value);
		$('cnnConnProfile-firstName').update('Welcome, '+hiddenForm.screenName.value);
		$('changeavatarbtn_off').hide();
		$('changeavatarbtn_on').show();
        ms_formUpdateProfile($('cnnConnHiddenProfileForm').serialize(true));
		}
    }
}
almosttherescreename = false;
function createScreenname_bia(option) {
    var hiddenForm = $('cnnConnHiddenProfileForm');
    if(option == 'show') {
		// nothing atm
    } else if(option == 'save') {
		almosttherescreename = true;
		var screennameadd = jQuery('input#screenName_bia').val();
        if ( screennameadd.length > 12) { 
			jQuery("#screennamedetails").css({ "color" : "#ca0002"}); 
		} else{
		hiddenForm.screenName.value = screennameadd;		
        ms_formUpdateProfile($('cnnConnHiddenProfileForm').serialize(true));
	}
    }
}
function change_AdditionalFields(option) {
    var hiddenForm = $('cnnConnHiddenProfileForm');
    if(option == 'show') {
        utilSelectOption($('cnnConnProfile-additional-form').dayOfBirth, hiddenForm.dayOfBirth.value);
        utilSelectOption($('cnnConnProfile-additional-form').yearOfBirth, hiddenForm.yearOfBirth.value);
        utilSelectOption($('cnnConnProfile-additional-form').gender, hiddenForm.gender.value);
        utilSelectOption($('cnnConnProfile-additional-form').income, hiddenForm.income.value);
        utilSelectOption($('cnnConnProfile-additional-form').education, hiddenForm.education.value);
        utilSelectOption($('cnnConnProfile-additional-form').occupation, hiddenForm.occupation.value);
        $('cnnConnProfile-additional-form').jobResponsibility.value = hiddenForm.jobResponsibility.value;
        $('cnnConnProfile-additional-container').hide();
        $('cnnConnProfile-additional-edit').show();
    } else if(option == 'save') {
        hiddenForm.dayOfBirth.value = utilGetSelectValue($('cnnConnProfile-additional-form').dayOfBirth);
        hiddenForm.yearOfBirth.value = utilGetSelectValue($('cnnConnProfile-additional-form').yearOfBirth);
        hiddenForm.gender.value = utilGetSelectValue($('cnnConnProfile-additional-form').gender);
        hiddenForm.income.value = utilGetSelectValue($('cnnConnProfile-additional-form').income);
        hiddenForm.education.value = utilGetSelectValue($('cnnConnProfile-additional-form').education);
        hiddenForm.occupation.value = utilGetSelectValue($('cnnConnProfile-additional-form').occupation);
        hiddenForm.jobResponsibility.value = $('cnnConnProfile-additional-form').jobResponsibility.value;
        $('cnnConnProfile-additional-edit').hide();
        $('cnnConnProfile-additional-container').show();
        ms_formUpdateProfile($('cnnConnHiddenProfileForm').serialize(true));
    }
}

function sendConfirmEmailProfile(id, email) {
    msStorage.confirmProfileEmail[msStorage.confirmProfileEmail.length] = {"id": id, "email": email};
    $(id).innerHTML = 'sending...';
    ms_sendConfirmEmailAgain(email, 'updateConfirmEmailProfile');
}

function updateConfirmEmailProfile(jsonResponse) {
    msQueueManager.requestReceived(); // lets iJax know it can process the next request
    var confirmProfileLocal = msStorage.confirmProfileEmail;
    var error = (typeof jsonResponse.errors == 'undefined') ? false : true;
    if(error == false) {
        // update ui for successful
        $(confirmProfileLocal[0].id).innerHTML = 'e-mail sent, <a href="javascript:void(0);" onclick="sendConfirmEmailProfile(\''+confirmProfileLocal[0].id+'\', \''+confirmProfileLocal[0].email+'\')">resend</a>';
    } else {
        $(confirmProfileLocal[0].id).innerHTML = '<a href="javascript:void(0);" onclick="sendConfirmEmailProfile(\''+confirmProfileLocal[0].id+'\', \''+confirmProfileLocal[0].email+'\')">error, try again</a>';
    }
    // update the local storage object
    if(confirmProfileLocal[0].length > 1) {
        var newConfirmProfile = confirmProfileLocal.slice(1);
        msStorage.confirmProfileEmail = newConfirmProfile;
    } else {
        msStorage.confirmProfileEmail = [];
    }
}

function updateProfileErrorMessages(option, errors) {
    if(option == 'show') {
        var html = '';
        for(var i=0; i<errors.length; i++) {
            html += errors[i] + '<br/>';
        }
		//console.log(html);
        jQuery('#cnnConnectProfileErrors').html(html);
        jQuery('#cnnConnectProfileErrors').show();  
    } else if (option == 'hide') {
        $('cnnConnectProfileErrors').innerHTML = '';
        $('cnnConnectProfileErrors').hide();   
    }
}

function updateProfilePasswordMessages(option, errors) {
    if(option == 'show') {
        var html = '';
        for(var i=0; i<errors.length; i++) {
            html += errors[i] + '<br/>';
        }
		//console.log(html);
        jQuery('#updateProfilePasswordMessages').html(html);
        jQuery('#updateProfilePasswordMessages').show();  
    } else if (option == 'hide') {
        $('updateProfilePasswordMessages').innerHTML = '';
        $('updateProfilePasswordMessages').hide();   
    }
}

function updateEmailErrorMessages(option, errors) {
    if(option == 'show') {
        var html = '';
        for(var i=0; i<errors.length; i++) {
            html += errors[i] + '<br/>';
        }
        $('cnnConnEmailErrorRes').innerHTML = html;
        $('cnnConnEmailErrorRes').show();
    } else if (option == 'hide') {
        $('cnnConnEmailErrorRes').innerHTML = '';
        $('cnnConnEmailErrorRes').hide();
    }
}
function gup(name) {
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return results[1];
}
/* new responses for edit my details */
Event.observe(window, 'load', function(){
	$('editmydetails').observe('click', function(){
		ms_getProfile('ms_uiLoadDetails');
		ms_getEmails('ms_uiLoadEmails');
	});
	$('editmy_save').observe('click', function(){
		ms_editMyProfile();
	});
	$('editmy_addemail1').observe('click', function(){
		$('editmy_email1wrap').show();
		$('editmy_addemail1').hide();
		$('editmy_email1').addClassName('new_email_address');
	});
	$('editmy_addemail2').observe('click', function(){
		$('editmy_email2wrap').show();
		$('editmy_addemail2').hide();
		$('editmy_email2').addClassName('new_email_address');
	});
	
	//LIMIT iReports to 4 -- Bstephens ------------------/
	    $$('div.ireport_box').each(function(s,index) {
            if(index > 3 ){
                s.setStyle({display: 'none'});
            }
        });
        
    //LIMIT HOT TOPICS to 8
            $$('div#popular_topics > a.cnn_sbhttopicl').each(function(s, index){
                var newSpan= null;
                //Limit to 8
                if(index > 7){
                    s.setStyle({display: 'none'});
                }
                else {
                    //
                }
        });

        //dividing lines links
        $$('div#popular_topics > div.cnn_divline').each(function(s, index){
                //limit to 7
                if(index > 6){
                    s.setStyle({display: 'none'});
                }                
        }); 
    
    // -- END  ----/////
    
	
});