var current_avatar;
var current_type;

YAHOO.namespace("dollspace.container");

function init_email_panel() {
	
	// Define various event handlers for Dialog
	var handleSubmit = function() {
        document.emailavatar.avatarid.value = current_avatar;
        document.emailavatar.type.value = current_type;
		var x = this.submit();
		if (x != false) {
		    YAHOO.dollspace.container.wait.setHeader("Sending email, please wait...");
		    YAHOO.dollspace.container.wait.show();
		}
	};
	var handleCancel = function() {
		this.cancel();
	};
	var handleSuccess = function(o) {
        YAHOO.dollspace.container.wait.hide();
		var response = o.responseText;
		if (response == -1) {
        	getEl("error_msg").innerHTML = "Email could not be sent";
        	YAHOO.dollspace.container.emailDialog.show();
		} else {
		    //do nothing
		}
	};
	var handleFailure = function(o) {
        YAHOO.dollspace.container.wait.hide();
		alert("Submission failed: " + o.status);
	};
	
	// Instantiate the Dialog
	YAHOO.dollspace.container.emailDialog = new YAHOO.widget.Dialog("email-dialog", 
							{ width : "30em",
							  fixedcenter : true,
							  visible : false, 
							  constraintoviewport : true,
							  buttons : [ { text:"Submit", handler:handleSubmit, isDefault:true },
								      { text:"Cancel", handler:handleCancel } ]
							});

    


    function trim(stringToTrim) {
	    return stringToTrim.replace(/^\s+|\s+$/g,"");
    }
    
    function checkEmail(email) {
        var regExp = /(^[a-z]([a-z_\.]*)@([a-z_\.]*)([.][a-z]{3})$)|(^[a-z]([a-z_\.]*)@([a-z_\.]*)(\.[a-z]{3})(\.[a-z]{2})*$)/i;
        return regExp.test(email);
    }

    function checkEmails(emails){
    	var emailArray = emails.split(",");
    	var invEmails = "";
    	for(i = 0; i <= (emailArray.length - 1); i++){
    	    var testEmail = trim(emailArray[i]);
    		if(checkEmail(testEmail)){
	    		//Do what ever with the email.
		    }else{
    			invEmails += testEmail + "\n";
    		}
    	}
	    if(invEmails != ""){
    		alert("Invalid address:\n" + invEmails);
    		return false;
    	}
    	return true;
    }
    
    
	// Validate the entries in the form to require that both email and message are entered
	YAHOO.dollspace.container.emailDialog.validate = function() {
		var data = this.getData();
        var filter = /^[A-Z0-9\._%-]+@[A-Z0-9\.-]+\.[A-Z]{2,4}(?:(?:[,;][A-Z0-9\._%-]+@[A-Z0-9\.-]+))?$/i;

        var email = trim(data.email);		
		if (email == "" || data.message == "") {
			alert("Please enter an email address and message");
			return false;
		} else {
		    //if (!(filter.test(email))) {
		    if (!checkEmails(email)) {
		        //alert("Please enter a valid email address");
		        return false;
		    }
            return true;
		    //return checkEmails(data.email);
		}
	};

	// Wire up the success and failure handlers
	YAHOO.dollspace.container.emailDialog.callback = { success: handleSuccess,
						     failure: handleFailure };
	
	// Render the Dialog
	YAHOO.dollspace.container.emailDialog.render();
	
	var emailDialog = document.getElementById('email-dialog');
	emailDialog.style.display = "block";
}




function init_panels() {
	YAHOO.dollspace.container.saved_panel = new YAHOO.widget.Panel("saved-panel", { width:"400px", visible:false, fixedcenter: true, constraintoviewport:true } );
	YAHOO.dollspace.container.saved_panel.render();

	var savedPanel = document.getElementById('saved-panel');
	savedPanel.style.display = "block";
    init_email_panel();
}

    var handleSaveAvatarSuccess = function(o){
        //YAHOO.dollspace.container.saved_panel.setBody(o.responseText);
        if (o.responseText == 0) {
            if (current_type == "avatar") {
                getEl("saved-panel-output").innerHTML = "This avatar has been saved to 'My Favorite Avatars' in your profile";
            } else {
                getEl("saved-panel-output").innerHTML = "This icon has been saved to 'My Favorite Buddy Icons' in your profile";
            }
            YAHOO.dollspace.container.saved_panel.show();
        } else {
            alert(o.responseText);
        }   
    };

    var handleSaveAvatarFailure = function(o){
    	alert("Avatar could not be saved");
    };

    var saveAvatarCallback =
    {
      success:handleSaveAvatarSuccess,
      failure:handleSaveAvatarFailure,
      argument:['foo','bar']
    };

    var sUrl = "/favlist/addavatar";

    var makeSaveAvatarRequest = function(avatar_id, image_type){
        var postData;
        if (image_type == "avatar") {
            postData = "avatarid="+avatar_id;
        } else {
            postData = "iconid="+avatar_id;
            sUrl = "/favlist/addicon";
        }
    	var request = YAHOO.util.Connect.asyncRequest('POST', sUrl, saveAvatarCallback, postData);
    }

    var sUrl1 = "/avatar/makemyavatar";

    var handleMakeMyAvatarSuccess = function(o){
        //YAHOO.dollspace.container.saved_panel.setBody(o.responseText);
        if (o.responseText == 0) {
            getEl("saved-panel-output").innerHTML = "This avatar has been made as your profile avatar";
            YAHOO.dollspace.container.saved_panel.show();
        } else {
            alert(o.responseText);
        }   
    };

    var handleMakeMyAvatarFailure = function(o){
    	alert("Make my avatar request failed");
    };

    var makeMyAvatarCallback =
    {
      success:handleMakeMyAvatarSuccess,
      failure:handleMakeMyAvatarFailure,
      argument:['foo','bar']
    };

    var makeMyAvatarRequest = function(avatar_id, image_type){
        var postData = "avatarid="+avatar_id;
    	var request = YAHOO.util.Connect.asyncRequest('POST', sUrl1, makeMyAvatarCallback, postData);
    }

YAHOO.util.Event.onDOMReady(init_panels);

    function show_login_error()
    {
        getEl("login_error_msg").innerHTML = "You need to be logged in before you can use this feature";
	    YAHOO.dollspace.container.dialog1.show();
    }

    function make_favorite(avatar_id, image_type)
    {
       current_avatar = avatar_id;
       current_type = image_type;
	   if (current_user != '') { 
	     makeSaveAvatarRequest(avatar_id, image_type);
       } else { 
         show_login_error();
       } 
    }
    function send_email(avatar_id, image_type)
    {
       current_avatar = avatar_id;
       current_type = image_type;
	  if (current_user != '') { 
	    YAHOO.dollspace.container.emailDialog.show();
      } else { 
        show_login_error();
      } 
    }
    function make_my_avatar(avatar_id, image_type)
    {
       current_avatar = avatar_id;
       current_type = image_type;
	   if (current_user != '') { 
	     makeMyAvatarRequest(avatar_id, image_type);
       } else { 
         show_login_error();
       } 
    }
    
