var langCode = 'en';
switch(lang) {
	case "arabic":
		langCode = "ar";
		break;
	case "bangla":
		langCode = "bn";
		break;
	case "french":
		langCode = "fr";
		break;
	case "germany":
		langCode = "de";
		break;
	case "hindi":
		langCode = "hi";
		break;
	case "spanish":
		langCode = "es";
		break;
	default:
      langCode = 'en';
      break;
}
var storeApp = (function ($) {
	"use strict";
	return {
		codeEditor: function() {
			if ($("#template-content-editor").length) {
				window.editAreaLoader.init({
					id: "template-content-editor"	// id of the textarea to transform		
					,font_size: "10"	
					,allow_resize: "no"
					,allow_toggle: true
					,language: "en"
					,syntax: "html"
					,toolbar: "save, |, search, go_to_line, |, undo, redo, |, select_font, |, change_smooth_selection, highlight, reset_highlight, |, help"
					,save_callback: "save_template_content_data"
					,replace_tab_by_spaces: 4
					,min_height: 550
				});

				window.editAreaLoader.init({
					id: "template-css-editor"	// id of the textarea to transform		
					,font_size: "10"	
					,allow_resize: "no"
					,allow_toggle: true
					,language: "en"
					,syntax: "css"
					,toolbar: "save, |, search, go_to_line, |, undo, redo, |, select_font, |, change_smooth_selection, highlight, reset_highlight, |, help"
					,save_callback: "save_template_css_data"
					,replace_tab_by_spaces: 4
					,min_height: 550
				});
			}
			
		}
		,intiTinymce: function(myselector) {
			if (window.tinymce) {
				var selector = myselector ? myselector : '.description';
				window.tinymce.init({
					selector: selector,
					height : "300",
					plugins: "fullscreen, code",
					block_formats: 'Paragraph=p; Header 1=h1; Header 2=h2; Header 3=h3',
					toolbar: 'formatselect | bold italic strikethrough forecolor backcolor permanentpen formatpainter | link image media pageembed | alignleft aligncenter alignright alignjustify  | numlist bullist outdent indent | removeformat | addcomment | code | fullscreen',
				});
			}
		}
	 	,datePicker: function() {
      		$("input[type=\"date\"]").each(function() {
      			$(this).attr("type", "text");
      			$(this).datepicker({
      				language: langCode,
      				format: "yyyy-mm-dd",
      				autoclose:true,
      				todayHighlight: true
      			});
      		});
		}
		,timePicker: function() {
			if ($(".showtimepicker").length) {
				$(".showtimepicker").timepicker();
			}
		}
		,select2: function() {
			$("select:not(.noselect2)").select2({
			  tags: false,
			  width: "100%",
			  height: "50px",
			});
		}
		,customCheckbox: function() {
			var checkboxs = $('input[type=checkbox]');
			checkboxs.each(function(){
			    $(this).wrap('<div class="customCheckbox"></div>');
			    $(this).before('<span>&#10004;</span>');
			});
			checkboxs.change(function(){
			    if($(this).is(':checked')){
			     $(this).parent().addClass('customCheckboxChecked');
			    } else {
			     $(this).parent().removeClass('customCheckboxChecked');
			    }
			});
		}
		,modalAnimation: function() {
			$(".modal").on("show.bs.modal", function (e) {
			      $(".modal .modal-dialog").attr("class", "modal-dialog  flipInX  animated"); //bounceIn, pulse, lightSpeedIn,bounceInRight
			});
			$(".modal").on("hide.bs.modal", function (e) {
			      $(".modal .modal-dialog").attr("class", "modal-dialog  flipOutX  animated");
			});
		}
		,generateCardNo: function(x) {
		    if(!x) { x = 16; }
		    var chars = "1234567890";
		    var no = "";
		    for (var i=0; i<x; i++) {
		       var rnum = Math.floor(Math.random() * chars.length);
		       no += chars.substring(rnum,rnum+1);
		   }
		   return no;
		}
		,playSound: function(name, path) {
			path = path ? path : window.baseUrl+'assets/itsolution24/mp3/' + name;
		  	var audioElement = document.createElement('audio');
		  	audioElement.setAttribute('src', path);
	  		if(typeof audioElement.play === 'function') {
		  		audioElement.play();
		  	}
		}
		,getBase64FromImageUrl: function(url, callback) {
		    var img = new Image();
				img.crossOrigin = "anonymous";
		    img.onload = function () {
		        var canvas = document.createElement("canvas");
		        canvas.width =this.width;
		        canvas.height =this.height;
		        var ctx = canvas.getContext("2d");
		        ctx.drawImage(this, 0, 0);
		        var dataURL = canvas.toDataURL("image/png");
		        var o = dataURL.replace(/^data:image\/(png|jpg);base64,/, "");
		        callback(o);
		    };
		    img.src = url;
		}
		,bootBooxHeightAdjustment: function() {
			if (deviceType != 'phone') {
				$(document).find(".bootboox-container").css({"height":$(window).height()-115});
				$(".bootboox-container").perfectScrollbar();
			}
		}
		,printModalPage: function(selector){
		    var $print = $(selector)
		        .clone()
		        .addClass('print-modal-content')
		        .removeClass('modal-dialog')
		        .prependTo('body');
		    window.print();
		    $print.remove();
		}
		,windowWidth: function() {
			return $(window).width(); 
	
		}
		,windowHeight: function() {
			return $(window).height();
		}
      	,init: function () { 

      		// Initiate live clock
      		if ($("#live_datetime").length) {
      			window.liveDateTime('live_datetime');
      		}

      		// Initiate code editor
      		this.codeEditor();
			
			// Initiate date picker
      		this.datePicker();

      		// Initiate time picker
      		this.timePicker();

      		// inititate select2
      		this.select2();

      		// Initiate beautiful bootstrap modal animation
      		this.modalAnimation();

			// Scrollbar
			$("#side-panel, .dashboard-widget, .scrolling-list, .dropdown-menu").perfectScrollbar();
			var t = setInterval(function() {
		        if ($(".scrolling-list").length) {
		            $(".scrolling-list").perfectScrollbar();
		            clearInterval(t);
		        }
		    }, 500);

			//Notification options
			window.toastr.options = {
			  "closeButton": true,
			  "debug": false,
			  "newestOnTop": false,
			  "progressBar": false,
			  "positionClass": "toast-bottom-left",
			  "preventDuplicates": true,
			  "onclick": null,
			  "showDuration": "300",
			  "hideDuration": "1000",
			  "timeOut": "5000",
			  "extendedTimeOut": "1000",
			  "showEasing": "swing",
			  "hideEasing": "linear",
			  "showMethod": "fadeIn",
			  "hideMethod": "fadeOut"
			};

			// Expand collapse supplier stock products
			$(".supplier_title").on("click", function () {
				$(this).hasClass("active") ? $(this).removeClass("active") : $(this).addClass("active");
			    var panel = $(this).data("panel");
			    $("#"+panel).toggle("fast");
			});

			// Generate random number
		  	$(".random_num").click(function(){
		    	$(this).parent(".input-group").children("input").val(storeApp.generateCardNo(8));
		  	});

		  	// Generate random card no
		  	$(".random_card_no").click(function(){
		    	$(this).parent(".input-group").children("input").val(storeApp.generateCardNo(16));
		  	});
		  	if ($(".random_card_no").length > 0) {
			  	setTimeout(function() {
				    $(".random_card_no").trigger("click");
				}, 1000);
		  	}

		  	// Filter box
		  	$("#show-filter-box").on("click", function(e) {
		        e.preventDefault();
		        $("#filter-box").slideDown("fast");
		        $("body").toggleClass("overlay");
		    });

		    $("#close-filter-box").on("click", function(e) {
		        e.preventDefault();
		        $("#filter-box").slideUp('fast');
		        $("body").toggleClass("overlay");
		    });

		    // Generate gift card no.
		    $('#genNo').click(function(){
		        var no = generateCardNo();
		        $(this).parent().parent('.input-group').children('input').val(no);
		        return false;
		    });
		}
   };
}(window.jQuery));

window.jQuery(window).on("load", function () {
 "use strict";
	window.jQuery.fn.extend({
	  	flash: function (color, time) {
	       var ele = this;
		    window.jQuery("html, body").animate({
		        scrollTop: ele.offset().top - 100
		    }, 500);
		    var originalColor = ele.css("background");
		    ele.css("background", color);
		    setTimeout(function () {
		      ele.css("background", originalColor);
		    }, time);
	   	},
	});

	$("#logout").on("click", function(e) {
		e.preventDefault();
		window.swal({
          title: "Logout!",
          text: "Do you want to logout?",
          icon: "warning",
          buttons: true,
          dangerMode: false,
        })
        .then(function(willDelete) {
            if (willDelete) {
                window.location = baseUrl+'admin/logout.php';
            }
        });
	});

	var reqUrl;
	var status = '';
	var id = 0;
	$(document).delegate(".onoffswitch-small-checkbox", "click", function(e) 
	{
		reqUrl = $(this).data("url");
		console.log(reqUrl); 
        if($(this).prop('checked')) {
            status = 'chacked';
            id = $(this).parent().attr("id");
        } else {
            status = 'unchacked';
            id = $(this).parent().attr("id");
        }

        if((status != '' || status != null) && (id !='')) {
        	$.ajax({
				type: 'POST',
                url: reqUrl,
                data: "action_type=UPDATESTATUS&id=" + id + "&status=" + status,
                dataType: "JSON",
				beforeSend: function() {
					//$(element).button('loading');
				},
				complete: function() {
					//$(element).button('reset');
				},
				success: function(response) {
					toastr.success(response.msg);
				},
				error: function(xhr, ajaxOptions, thrownError) {
					toastr.error(JSON.parse(xhr.responseText).errorMsg, "Error!");
				}
			});
        }
    });


	var preHref, href;
	$('[data-toggle="scrolling-sidebar"]').on("click", function(e) {
	    e.preventDefault();
	    href = $(this).attr('href');
	    if ($('body').hasClass('scrolling-sidebar-open-body')) {
	      $('.scrolling-sidebar-bg, .scrolling-sidebar').width(0);
	      $('.scrolling-sidebar').removeClass('scrolling-sidebar-open');
	      $('.scrolling-sidebar-mask').removeClass('mask');
	      $('body').removeClass('scrolling-sidebar-open-body');
	    } else {
	      var width = $(this).data('width');
	      $('.scrolling-sidebar-bg, .scrolling-sidebar').width(width);
	      $('.scrolling-sidebar').addClass('scrolling-sidebar-open');
	      $('.scrolling-sidebar-mask').addClass('mask');
	      $('body').addClass('scrolling-sidebar-open-body');
	      if (preHref != href && href != '#') {
	        $.ajax({
	            type: 'GET',
	            url: href,
	            data: '',
	            dataType: 'html',
	            success: function (res) {
	              if (res != 'error') {
	                preHref = href;
	                $('.scrolling-sidebar').html(res);
	              }
	            }
	        });
	      }
	    }
	});
	$('.scrolling-sidebar-mask').on('click', function(e) {
	    if ($('body').hasClass('scrolling-sidebar-open-body')) {
	      $('.scrolling-sidebar-bg, .scrolling-sidebar').width(0);
	      $('.scrolling-sidebar').removeClass('scrolling-sidebar-open');
	      $('.scrolling-sidebar-mask').removeClass('mask');
	      $('body').removeClass('scrolling-sidebar-open-body');
	    }
	});


	// Initiate storeApp
	storeApp.init();
});

// Toggling browser full screen
function toggleFullScreenMode () {
    if ((document.fullScreenElement && document.fullScreenElement !== null) ||
            (!document.mozFullScreen && !document.webkitIsFullScreen)) {
        if (document.documentElement.requestFullScreen) {
            document.documentElement.requestFullScreen();
        } else if (document.documentElement.mozRequestFullScreen) {
            document.documentElement.mozRequestFullScreen();
        } else if (document.documentElement.webkitRequestFullScreen) {
            document.documentElement.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT);
        }
    } else {
        if (document.cancelFullScreen) {
            document.cancelFullScreen();
        } else if (document.mozCancelFullScreen) {
            document.mozCancelFullScreen();
        } else if (document.webkitCancelFullScreen) {
            document.webkitCancelFullScreen();
        }
    }
}

// Callback functions
function save_template_content_data(id, content) 
{
	var template_id = $("#"+id).data("id");
	var passData = {
	'template_id': template_id,
	'content': content,
	};
	$.ajax({
		url: window.baseUrl+"_inc/ajax.php?type=UPDATEPOSTEMPALTECONTENT",
		dataType: "JSON",
		type: "POST",
		data: passData,
		beforeSend: function() {
		  // $(element).button('loading');
		},
		complete: function() {
		  // $(element).button('reset');
		},
		success: function(res) {
		  // alert(res.msg);
		  window.toastr.success(res.msg, "Success!");
		},
		error: function(xhr, ajaxOptions, thrownError) {
		  window.toastr.error(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText,"Error!");
		}
	});
	return true;
}

// Callback functions
function save_template_css_data(id, content) 
{
	var template_id = $("#"+id).data("id");
	var passData = {
	'template_id': template_id,
	'content': content,
	};
	$.ajax({
		url: window.baseUrl+"_inc/ajax.php?type=UPDATEPOSTEMPALTECSS",
		dataType: "JSON",
		type: "POST",
		data: passData,
		beforeSend: function() {
		  // $(element).button('loading');
		},
		complete: function() {
		  // $(element).button('reset');
		},
		success: function(res) {
		  // alert(res.msg);
		  window.toastr.success(res.msg, "Success!");
		},
		error: function(xhr, ajaxOptions, thrownError) {
		  window.toastr.error(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText,"Error!");
		}
	});
	return true;
}

function printContent(eleID, settings)
{
	var title = settings.title ? settings.title : store.name;
	var cssLink = settings.cssLink ? settings.cssLink : '';
	var headline = settings.headline ? '<h2 style="padding:5px;margin:0;background:#ddd;color:#000;font-size:2.5rem;">'+settings.headline+'</h2>' : '';
	var width = 750;
	var height = 650;
	if (settings.screenSize == "fullScreen") {
		width = storeApp.windowWidth();
		height = storeApp.windowHeight();
	}
	if (settings.screenSize == "halfScreen") {
		width = parseFloat(storeApp.windowWidth())/2;
		height = storeApp.windowHeight();
	}
	var settings = "width="+width+",height="+height+",top=50,left=50,toolbars=no,scrollbars=yes,status=no,resizable=yes";
	var DocumentContainer = document.getElementById(eleID);
	var html = '<html><head>'+
	'<title>'+title+'</title>'+
	'<link type="text/css" href="../assets/itsolution24/cssmin/main.css" type="text/css" rel="stylesheet">'+
	cssLink+
	'<style type="text/css">a,.no-print,.modal-open.wrapper,.main-footer,.view-link,.dataTables_length,.dataTables_filter{display:none!important;}.box{border-top: none!important;}.box-header.with-border {border-bottom: none;}}.close,.btn{display:none!important}.print-btn{position:fixed;bottom:0;width:100%;height:30px;z-index:1251;background:#81ECFF;line-height:30px;text-align:center;cursor:pointer;</style>'+

	'</head>'+
	'<body style="background:#ffffff;">'+
	headline+
	DocumentContainer.innerHTML+
	'</body></html>';
 
    var WindowObject = window.open("", "PrintWindow", settings);
    WindowObject.document.writeln(html);
    WindowObject.document.close();
    WindowObject.focus();
    
    myDelay = setInterval(checkReadyState, 10);
    function checkReadyState() {
        if (WindowObject.document.readyState == "complete") {
            clearInterval(myDelay);
            WindowObject.focus(); // necessary for IE >= 10

            WindowObject.print();
        }
    }
    return true;
}

function printInvoice(eleID, settings)
{
	var title = settings.title ? settings.title : store.name;
	var cssLink = settings.cssLink ? settings.cssLink : '';
	var headline = settings.headline ? '<h2 style="padding:5px;margin:0;background:#ddd;color:#000;font-size:2.5rem;">'+settings.headline+'</h2>' : '';
	var width = 750;
	var height = 650;
	if (settings.screenSize == "fullScreen") {
		width = storeApp.windowWidth();
		height = storeApp.windowHeight();
	}
	if (settings.screenSize == "halfScreen") {
		width = parseFloat(storeApp.windowWidth())/2;
		height = storeApp.windowHeight();
	}
	var settings = "width="+width+",height="+height+",top=50,left=50,toolbars=no,scrollbars=yes,status=no,resizable=yes";
	var DocumentContainer = document.getElementById(eleID);
	var html = '<html><head>'+
	'<title>'+title+'</title>'+
	'<link type="text/css" href="../assets/itsolution24/cssmin/main.css" type="text/css" rel="stylesheet">'+
	cssLink+
	'<style type="text/css">a,.no-print,.modal-open.wrapper,.main-footer,.view-link,.dataTables_length,.dataTables_filter{display:none!important;}.box{border-top: none!important;}.box-header.with-border {border-bottom: none;}}.close,.btn{display:none!important}.print-btn{position:fixed;bottom:0;width:100%;height:30px;z-index:1251;background:#81ECFF;line-height:30px;text-align:center;cursor:pointer;</style>'+
	'</head>'+
	'<body style="background:#ffffff;">'+
	headline+
	DocumentContainer.innerHTML+
	'</body></html>';
 
    var WindowObject = window.open("", "PrintWindow", settings);
    WindowObject.document.writeln(html);
    WindowObject.document.close();
    WindowObject.focus();
    
    myDelay = setInterval(checkReadyState, 10);
    function checkReadyState() {
        if (WindowObject.document.readyState == "complete") {
            clearInterval(myDelay);
            WindowObject.focus(); // necessary for IE >= 10

            WindowObject.print();
        }
    }
    return true;
}