YAHOO.util.Event.onContentReady("content",init_list);

function init_list(A){
	new EmailAlerts("create_alert_form","l_create_alert");
}





function EmailAlerts(A,B){
	this.toggler=YAHOO.util.Dom.get(B);
	this.forms=[];
	this.validator=new ValidatorClass();
	this.init_toggler();
	this.init_forms(A)
}

EmailAlerts.prototype.init_toggler=function(){
	YAHOO.util.Event.on(this.toggler,"click",this.show_form,this,true)
};

EmailAlerts.prototype.init_forms=function(A){
	var B=YAHOO.util.Dom.getElementsByClassName(A,"FORM","content");
	for(var C=0,E=B.length;C<E;C++){
		var D=new EmailAlertForm(B[C]);
		this.forms.push(D);
		YAHOO.util.Event.on(D.node,"submit",this.create_alert,this,true)
	}
};

EmailAlerts.prototype.show_form=function(D,C){
	var B=this.toggler;
	var A=B.parentNode.parentNode;
	toggle(A,"save_search_open");
	YAHOO.util.Event.preventDefault(D);
	return false
};

EmailAlerts.prototype.create_alert=function(F,E){
	var D=YAHOO.util.Event.getTarget(F);
	var C=(D.tagName=="INPUT")?D.form:D;
	var B=C.e.value.replace(/(^\s*|\s*$)/g,"");
	try{
		var A=this.validator.validate_email(B);
	}
	catch(F){
		var A=B==""
	}
	if(A){
		this.alert_error(C,A)
	}
	else{
		this.create_alert_request(C,B)
	}
	YAHOO.util.Event.preventDefault(F);
	return false
};

EmailAlerts.prototype.create_alert_request=function(form,email){
	var uri=form.action; 
	var params="email="+email; 
	var callback={success:function(o){
		var cb_ok=o.argument.cb_ok;
		var cb_err=o.argument.cb_err;
		var f=o.argument.f;		

		try{eval("var r = "+o.responseText);
			if(r.ret_id){cb_ok(f)}
			else{cb_err(f)}
			}
		catch(e){}
		},failure:function(o){},argument:{cb_ok:this.alert_created,cb_err:this.alert_error,f:form}
	};

	var request=YAHOO.util.Connect.asyncRequest("POST",uri,callback,params); 
	
	return request
};


EmailAlerts.prototype.alert_created=function(B){
	var A=B.parentNode;
	var C=document.createElement("SPAN");
	C.innerHTML="Alert created!";A.replaceChild(C,B)
};


EmailAlerts.prototype.alert_error=function(A){
	if(A.lastChild.className=="error"){
		return 
	}
	var B=document.createElement("P");
	B.className="error";
	B.innerHTML="Please enter a valid email address!";
	A.appendChild(B)
};

function EmailAlertForm(A){
	this.node=A;
	this.email=A.e;
	this.init=false;
	this.init_form()
}

EmailAlertForm.prototype.init_form=function(){
	var A="test@test.com";
	if(this.email.value!=""&&this.email.value!=A){return }
	this.init=true;this.email.value=A;
	YAHOO.util.Event.on(this.email,"focus",this.clear_email,this,true)
};

EmailAlertForm.prototype.clear_email=function(){
	if(!this.init){
		return 
	}
	this.init=false;
	this.email.value=""
};




function toggle(B,A){
	var C=YAHOO.util.Dom.hasClass(B,A);
	if(C){
		YAHOO.util.Dom.removeClass(B,A)
	}
	else{
		YAHOO.util.Dom.addClass(B,A)
	}
	return !C
}


function ValidatorClass(){
	this.email_max=256;
	this.email_regex=/^[a-z0-9\-\_\+]+(\.[a-z0-9\-\_\+]+)*\@(([a-z0-9\-\_\+]+(\.[a-z0-9\-\_\+]+)*){2,}\.[a-z]{2,}|([0-9]+\.){3}[0-9]+)$/i;
	this.trim=function(A){
		return A.replace?A.replace(/^\s+/g,"").replace(/\s+$/g,""):A
	}
}

ValidatorClass.prototype.validate_email=function(A){
	if(A==""){
		return"blank-email"
	}
	else{
		if(A.length>this.email_max){
			return"long-email"
		}
		else{
			if(A.search(this.email_regex)==-1){
				return"invalid-email"
			}
		}
	}
	return false
};

