﻿// JScript File
var reminder = function(){
    return{
		utility : {
			setToWrite : function(selector){
				$(selector).html(settings.htmlOnWrite).addClass("write").removeClass("del")
			},
			setToDelete : function(selector){
				$(selector).html(settings.htmlOnDelete).addClass("del").removeClass("write")
			},
			setLoader : function(selector){
				$(selector).html(settings.htmlOnLoad)
			},
			setError : function(selector){
				$(selector).html(settings.htmlOnError)
			},
			types : function(type){
				switch(type){
					case "post":
						return 1
						break;
					case "blog":
						break;
					case "group":
						return 5
						break;
				}
			},
			getTypeCode : function(el){
				if(el.hasClass("post")){
					return reminder.utility.types("post")
				} else if(el.hasClass("blog")){
					return reminder.utility.types("blog")
				} else if(el.hasClass("group")){
					return reminder.utility.types("group")
				}
			},
			getQS : function(key, default_){
				if (default_==null) default_="";
				key = key.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
				var regex = new RegExp("[\\?&]"+key+"=([^&#]*)");
				var qs = regex.exec(window.location.href);
				if(qs == null)
				    return default_;
				else
				    return qs[1];
			}
			
		},
			
		
		write : function(el){
			//visualizzo il loader
			reminder.utility.setLoader(".reminder")
			//specifico l'azione
			params.a = "w"
			params.url = window.location.href
			$.post(
				"/handler/reminder.ashx",
				params,
				function(data){
				    if(data > 0){
					    reminder.utility.setToDelete(".reminder")	
				    }else if(data == 0){
						reminder.utility.setToWrite(".reminder")
				    }else{
						reminder.utility.setError(".reminder")
				    }
				}
			);
		},
		
		read : function(){
			//visualizzo il loader
			reminder.utility.setLoader(".reminder")
			//specifico l'azione
			params.a = "r"
			$.post(
				"/handler/reminder.ashx",
				params,
				function(data){
				    if(data > 0){
					    reminder.utility.setToDelete(".reminder")						
						//$(".reminder").html("[cancellalo]").addClass("del").removeClass("write")
				    }else if(data == 0){
						reminder.utility.setToWrite(".reminder")
				       // $(".reminder").html("[segnatelo]").addClass("write").removeClass("del")
				    }else{
						reminder.utility.setError(".reminder")
				    }
				}
			);
		},
		
		del : function(el){
			if(confirm("Vuoi veramente togliere il post dal promemoria?")){
				//visualizzo il loader
				reminder.utility.setLoader(".reminder")
				//specifico l'azione
				params.a = "d"
				$.post(
					"/handler/reminder.ashx",
					params,
					function(data){
					    if(data > 0){
							if(el.hasClass("manager")){
								$("#post_" + params.id_obj).remove()
								if($("tr.element").length == 0){
									var current = reminder.utility.getQS("page",1)
									if((current == settings.npages) && (current > 1)){
										var regex = /(page=){1}[0-9]+/i
										window.location.href = window.location.href.replace(regex, "page=" + (current - 1) );
									} else {
										window.location.href = window.location.href
									}
									return
								}
								reminder.utility.setToDelete(".reminder")
							}else{
								reminder.utility.setToWrite(".reminder")
					        } //$(".reminder").html("[segnatelo]").addClass("write").removeClass("del")
					    }else{
							reminder.utility.setError(".reminder")
					    }
					}
				);			
			}
		},
		
		setAlerting : function(el){
			//status attuale
			var current_status = !el.attr("checked") //== "checked"
			var msg = ""
			if(current_status){
				msg = "Sei sicuro di non voler più ricevere notifiche circa questo argomento?"
			} else {
				msg = "Sei sicuro di voler ricevere notifiche circa questo argomento?"
			}
			if(confirm(msg)){
				//specifico l'azione
				params.a = "alert"
				//status corrente del checkbox
				$.get(
					"/handler/reminder.ashx",
					params,
					function(data){
					    if(data !=1){
							reminder.utility.setError(".reminder")
					    }
					}
				);
			} else {
				el.attr("checked", (current_status ? "checked" : ""))
			}
		},
		
		bindevents : function(){
			$(".reminder").click(function(){
				el = $(this)
				if((el.data("busy") == undefined) || (el.data("busy") == null)){
				    el.data("busy", 1)
					
					
					//se non ho specificato il tipo di referenza nei parametri, lo ricavo dalle classi
					if((params.id_objreftype == undefined) || (params.id_objreftype == null)){
						params.id_objreftype = reminder.utility.getTypeCode(el)
					}
					
					//funzioni speciali in modalità manager
					if(el.hasClass("manager")){
						params.id_obj = el.attr("id").split("__")[1]
					}
				
					if(el.hasClass("write")){
					    reminder.write(el)
					    //reminder.utility.setToDelete(".reminder")
				    } else if(el.hasClass("del")){
						reminder.del(el)
						//reminder.utility.setToWrite(".reminder")
					}
					
					
					el.removeData("busy")
				}
			});
			
			$("input[type='checkbox'].sendalert").change(function(){
				var el = $(this)				
				if((el.data("busy") == undefined) || (el.data("busy") == null)){
				    el.data("busy", 1)
					
					//se non ho specificato il tipo di referenza nei parametri, lo ricavo dalle classi
					if((params.id_objreftype == undefined) || (params.id_objreftype == null)){
						params.id_objreftype = reminder.utility.getTypeCode(el)
					}
					//funzioni speciali in modalità manager
					params.id_obj = el.attr("id").split("__")[1]

					
					reminder.setAlerting(el)
					
					el.removeData("busy")
				}
			});
			
			
		}
    }
}();

$(function(){
	if(params.id_userreg != 0){
		/*//controllo i settaggi
		if((settings == undefined) && (settings == undefined)){
			var settings = {}
		}
		if((settings.htmlOnWrite == undefined) && (settings.htmlOnWrite == undefined)){
			settings.htmlOnWrite = "[segnatelo]"
		}
		if((settings.htmlOnDelete == undefined) && (settings.htmlOnWrite == undefined)){
			settings.htmlOnDelete = "[cancellalo]"
		}
		if((settings.htmlOnLoad == undefined) && (settings.htmlOnLoad == undefined)){
			settings.htmlOnLoad = "...sto caricando..."
		}
		if((settings.htmlOnError == undefined) && (settings.htmlOnError == undefined)){
			settings.htmlOnError = "***errore***"
		}*/
		
		if(!$(".reminder").hasClass("manager")){
			reminder.read()
		} else {
			reminder.utility.setToDelete(".reminder")
		}
		reminder.bindevents()	
	}
});




