var VulcanSweetAlertObject = function() {
	this.options  = { initClass : "vulcan_init_ok" };
};
$.extend(VulcanSweetAlertObject.prototype, {
	test : function(){				
		alert("VulcanSweetAlertObject is ok ");
	
	}
	,clickAction : function(selector){
		let el = $(selector);
		if(el.length>0){
			let myurl = el.attr("href");
			let tagName = VulcanUtil.getTagName(el);			
			if(tagName=="form"){
				el.submit();
			}else if(tagName=="button" && el.attr("type")=="submit"){
				el.closest("form").submit();
			}else if((myurl === 'undefined' || myurl == null || myurl.length <= 0)){
				// empty			
			}else{
				if(myurl.startsWith("modal:")){
					VulcanModal.showModalFromOptions({ iframeUrl:myurl.substr(6),modalSize:"xl" });					
				}else{
					window.location = myurl; 
				}
			}		
		}		
	}	
	,initSmart : function(selector,opt){
		let options  = $.extend({ initClass:"vulcan_init_ok" }, opt);
		$(selector).each(function(i,el){
			if(!$(el).hasClass(options.initClass)){
				$(el).addClass(options.initClass);
				let tagName = VulcanUtil.getTagName(el);				
				if(tagName=="form"){
					let submitBtn = $(el).find("button[type='submit']");  
					if(submitBtn && submitBtn.length>0){
						$(submitBtn).click(function(e2){
							e2.preventDefault();
							let defIcon = "question";
							let defColor = "#009900";
							if($(submitBtn).hasClass("btn-outline-danger") || $(submitBtn).hasClass("btn-danger") || $(submitBtn).hasClass("danger")){
								defIcon = "error";
								defColor = "#990000";
							}else if($(submitBtn).hasClass("btn-outline-success") || $(submitBtn).hasClass("btn-success") || $(submitBtn).hasClass("success")){
								defIcon = "success";
							}else if($(submitBtn).hasClass("btn-outline-info") || $(submitBtn).hasClass("btn-info") || $(submitBtn).hasClass("info")){
								defIcon = "info";
								defColor = "#0dcaf0";
							}else if($(submitBtn).hasClass("btn-outline-secondary") || $(submitBtn).hasClass("btn-secondary") || $(submitBtn).hasClass("secondary")){
								defIcon = "info";
								defColor = "";
							}
							Swal.fire({ 
								title : VulcanUtil.nonEmptyString(options.title,$(submitBtn).text())
								,text : VulcanUtil.nonEmptyString(options.desc,"İşleme devam edilsin mi?")
								,icon : VulcanUtil.nonEmptyString(options.icon,defIcon)
								,showDenyButton: false
								,showCancelButton: true
								,confirmButtonColor : VulcanUtil.nonEmptyString(options.confirmButtonColor,defColor) 
								,confirmButtonText: VulcanUtil.nonEmptyString(options.confirmButtonText,"Devam")
								,cancelButtonText: VulcanUtil.nonEmptyString(options.cancelButtonText,"İptal")
							}).then((result) => { if (result.isConfirmed) {  $(el).submit(); } });	
						});
					}					
				}else{
					$(el).click(function(e){
						let currElement = $(this);		
						VulcanUtil.setNewId(currElement);
						e.preventDefault();
						let alert_title =  VulcanUtil.nonEmptyString(currElement.data("title"),currElement.text());
						let alert_desc  =  VulcanUtil.nonEmptyString(currElement.data("desc"),"-");
						let alert_icon  =  VulcanUtil.nonEmptyString(currElement.data("icon"),"warning");
						let btnConfirm  = VulcanUtil.nonEmptyString(currElement.data("btnok"),"Devam Et");
						let btnCancel   = VulcanUtil.nonEmptyString(currElement.data("btncancel"),"İptal Et");
						let alertType   = VulcanUtil.nonEmptyString(currElement.data("alert_type"),currElement.data("alert-type"),"yesno");
						if(alertType=="yesno"){
							Swal.fire({ title : alert_title,text : alert_desc,icon : alert_icon,showDenyButton: false,showCancelButton: true,confirmButtonText:  btnConfirm,cancelButtonText: btnCancel}).then((result) => { if (result.isConfirmed) { VulcanUtil.redirectTo(currElement.attr("href"));} });	
						}
					});	
				}
			}
		});
	}
	,initLinkApproval : function(selector){
		this.initSmart(selector,{});
		
	}
	,initYesNoForUrl : function(selector,opt){
		$(selector).on('click',function(e){
			e.preventDefault();
			var defOptions = {url:"",title:"İşleme devam edilsin mi?",desc:"Lütfen seçim yapınız.",icon:"question",confirmButtonText:"İşlemi Tamamla",denyButtonText: "İşlemi İptal Et"};
			var options = $.extend(defOptions, options);	
			var urlToGo = VulcanUtil.coalesce(options.url,$(this).attr("href"));			
			Swal.fire({
				title: VulcanUtil.coalesce($(this).data("title"),options.title),
				text : VulcanUtil.coalesce($(this).data("desc"),options.desc),
				icon : options.icon,
				showDenyButton: true,			
				confirmButtonText: options.confirmButtonText,
				denyButtonText: options.denyButtonText,
				reverseButtons: true
			  }).then((result) => {
				if (result.isConfirmed) {
					window.location = urlToGo; 
				} else if (result.isDenied) {
					//cancel
				}
			  });	
		});
	}
});
var VulcanSweetAlert = new VulcanSweetAlertObject();