(function($){
	var rangineMessageBox;
	$('head').append( $('<link rel="stylesheet" type="text/css" />').attr('href', ranginedata.cssUrl+'styles.css') );
	var defaultMessage = '<p class="p-1">برای استفاده از این درگاه نیاز به یک پنل پیامکی با قابلیت ارسال وب سرویس در سامانه پیام کوتاه رنگینه دارید.</p><p class="p-2">جهت مشاهده عملکرد این درگاه می توانید در کادر نام کاربری و رمز و شماره فرستنده این درگاه عبارت "demo" را درج کنید یا <a class="demotest">اینجا کلیک کنید</a>.</p><p class="p-3">برای تهیه پنل پیام کوتاه رنگینه به آدرس <a href="http://sms.rangine.ir" target="_blank">sms.rangine.ir</a> مراجعه نمایید. و پنل از نوع <b>«وب سرویس - مختص افزونه ها»</b> را انتخاب نمایید.</p><p>برای ارسال سریع پیامک گزینه ارسال بر اساس الگو را فعال نمایید.</p>';
	$('#rangine_garantee').parent().append('<p>با خرید سرویس ضمانت ارسال پیامک، در صورتی که به هر علت سامانه پیامک رنگینه پاسخ نداد و ارسال نکرد، بلافاصله پیامک شما با شیوه دیگری ارسال خواهد شد. برای فعال سازی این سرویس با پشتیبان سامانه پیامک رنگینه تماس بگیرید. لازم به ذکر است امکانات سامانه پیامک رنگینه و دیگر سامانه ها پیامکی ارتباطی با فروشنده دیجیتس از جهت کارایی و مالی ندارد</p>');
	function demotest(){
		$('.demotest').click(function(){
			$('#rangine_username, #rangine_password, #rangine_sender').val('demo').change();
			enableSave();
		});
	}
	function rangineCheckUser(user,pass,sender,rangineMessageBox) {
		jQuery.ajax({
			type: 'post',
			async: true,
			url: digsetobj.ajax_url,
			data: {
				action: 'digits_rangine_auth',
				uname: user,
				pass: pass,
				sender: sender,
			},
			beforeSend: function(){
				rangineMessageBox.find('td .loading').remove();
				rangineMessageBox.find('td').prepend('<div class="loading"><img src="' + ranginedata.cssUrl + 'loader.gif"/> در حال بررسی وضعیت درگاه<span style="">...</span></div>');
			},
			success: function (res) {
				
				var obj = JSON.parse(res);
				var message = '';				
				if(obj['auth'] == true) {	
					if(obj['credit'] < 20000 && obj['credit'] > 10000){
						var creditbgColor = '#ffcf7b';
					} else if (obj['credit'] < 8000){
						var creditbgColor = '#ff7b7b';
					} else {
						var creditbgColor = '#baddba';
					}
					message = '<div><span class="credit" style="background:'+creditbgColor+'">اعتبار پنل پیامک : '+obj['credit']+' ریال</span>';
					if(obj['ownSenderLine'] == false) {
					message += '<p style="color:red">شما مجوز استفاده از خط ارسال کننده '+sender+' را ندارید.( با پشتیبان سامانه پیامک رنگینه تماس بگیرید)</p>';
					}
					rangineMessageBox.find('td').html(message);
				}else{
					message += '<p style="color:red">نام کاربری و یا رمز عبور وارد شده درست نمی باشد.</p>';
					rangineMessageBox.find('td').html(defaultMessage + message);
					demotest();
				}
			},
			complete: function(){
				rangineMessageBox.find('td .loader').hide();
			},
		});

		return false;
	}
	function rangineShowMessage(title,message,footer){
		$('body').append('<div id="rmWrapper"><div class="rmTitle">'+title+'<span class="close">X</span></div><div class="rmBody">'+message+'</div><div class="rmFooter">'+footer+'<button class="close button-secondary">بستن</button></div></div>');
		$('#rmWrapper .close').click(function(){
			$('#rmWrapper').remove();
		})
	}
	function usercheck(elm,rangineMessageBox){
		var gatewaytable = elm.parents('table.form-table').parent();
		if(gatewaytable.find('#rangine_username').length){
			var rangineusername = gatewaytable.find('#rangine_username').val();
			var ranginepassword = gatewaytable.find('#rangine_password').val();
			var ranginesender = gatewaytable.find('#rangine_sender').val();
			if((rangineusername.toLowerCase() == 'demo' && ranginepassword.toLowerCase() == 'demo' ) || (rangineusername == 'دمو' && ranginepassword == 'دمو' )) {
				var panelMessage = "شما در حال استفاده از دموی سامانه رنگینه هستید. استفاده از دمو محدودیت هایی در تعداد کل ارسال و تعداد ارسال در دقیقه دارد.";
				rangineMessageBox.find('td').html(defaultMessage);
				rangineMessageBox.find('.p-2').html(panelMessage).css('color','red');
			} else if(rangineusername != '' && ranginepassword != '') {
				rangineCheckUser(rangineusername,ranginepassword,ranginesender,rangineMessageBox);
			} else {
				rangineMessageBox.find('td').html(defaultMessage);
				demotest();
			}
		}
	}

	$(document).ready(function(){
		$('.ippanel_patterncode_wrapper label,.farazsms_patterncode_wrapper label,.modirpayam_patterncode_wrapper label,.jahanbartar_patterncode_wrapper label,.modirpayamak_com_patterncode_wrapper label,.onlinsms_patterncode_wrapper label,.novinweb_patterncode_wrapper label,.shahvarpayam_patterncode_wrapper label,.smsmofid_patterncode_wrapper label,.popupsms_patterncode_wrapper label,.payamnam_patterncode_wrapper label').after('<a class="ippanel-patternlearn">آموزش ثبت پترن(الگو)</a>');
		$('.ippanel-patternlearn').on('click',function(){
			var patternLearnText = '<p>	برای ارسال سریع پیامک با خطوط خدماتی از این سامانه، نیاز به ثبت الگو یا پترن دارید. جهت ایجاد الگو و ثبت آن در این افزونه از دستورالعمل زیر استفاده نمایید.</p><p>	وارد پنل پیامک خود شوید و در منوی پنل گزینه ارسال بر اساس پترن را کلیک کنید.</p><p>	در صفحه ظاهر شده روی دکمه + جدید کلیک کنید.</p><p>	مانند متن زیر یک الگو را تایپ کرده و دکمه ثبت را کلیک نمایید:</p><p>	<strong>کد تأیید شما: %code%<br />	فروشگاه ابزار خودرو</strong></p><p>	(حتما نام فروشگاه خود را ثبت کنید)</p><p>	بعد از ثبت موفق الگو منتظر بمانید تا حداکثر 12 ساعت بعد الگوی شما تایید شود. وضعیت تایید یا رد الگوی خود را در همان صفحه پنل پیامکی خود می توانید مشاهده نمایید.&nbsp;</p><p>	پس از اینکه الگو تایید و فعال شد، تنظیمات درگاه افزونه دیجیتس (یعنی همین صفحه) را به شکل زیر انجام دهید:</p><p>	گزینه &laquo;ارسال بر اساس الگو&raquo; را روی بله تنظیم نمایید.</p><p>	در کادر &laquo;کد الگو&raquo; کد پترن ایجاد شده خود که در صفحه ارسال بر اساس پترن سامانه پیامک نمایش داده می شود را وارد کنید</p><p>	در کادر &laquo;متغیرهای الگو&raquo; متغیر موجود در پترن خود را نوشته و بعد از : %OTP% را وارد کنید. در مثال متن الگوی بالا به این شکل وارد می کنیم:&nbsp;</p><p dir="ltr" style="text-align: center;">	<strong>code:%OTP%</strong></p><p>	سپس دکمه ذخیره تغییرات را کلیک کنید.</p>';
			rangineShowMessage('آموزش ثبت پترن(الگو)',patternLearnText,'در صورت نیاز به راهنمایی بیشتر با پشتیبانی سامانه پیامک خود تماس بگیرید.')
		});
		$('.rangine_patternvars_wrapper label').after('<a class="rangine-patternlearn">آموزش ثبت پترن(الگو)</a><br><a class="rangine-patterntool">ابزار تنظیم پترن در دیجیتس</a>');
		$('.rangine-patternlearn').on('click',function(){
			var patternLearnText = '<p>	سامانه رنگینه برای فراهم نمودن ارسال سریع کد تایید با خطوط خدماتی، سیستم ارسال بر اساس الگو(پترن) را پیشنهاد می کند. شما در درگاه رنگینه افزونه دیجیتس 3 انتخاب برای ارسال پیامک احراز هویت دارید:</p><p>	1- ارسال بر اساس الگوی از پیش تعیین شده: برای استفاده از این شیوه گزینه &laquo;ارسال بر اساس الگوی پیش فرض&raquo; را روی <strong>بله </strong>تنظیم و نام فروشگاه خود را در کادر مربوطه وارد نمایید</p><p>	2- ارسال بر اساس الگوی اختصاصی خودتان: برای استفاده از این شیوه گزینه &laquo;ارسال بر اساس الگوی پیش فرض&raquo; را روی <strong>خیر </strong>تنظیم کرده و بر اساس دستورالعملی که در ادامه می آید الگوی خود را ثبت نمایید.</p><p>	3- ارسال پیامک به صورت معمولی بدون الگو: برای استفاده از این شیوه گزینه &laquo;ارسال بر اساس الگوی پیش فرض&raquo; را روی&nbsp;<strong>خیر&nbsp;</strong>تنظیم کرده و فیلد &laquo;کد الگو&raquo; را خالی بگذارید. متنی که در کادر &laquo;نمونه متن&raquo; تایپ می کنید پیامک خواهد شد. این نوع ارسال از خط اختصاصی سریع انجام می شود اما از خطوط خدماتی اشتراکی سامانه با تاخیر انجام می گیرد و پیشنهاد نمی شود.</p><p>	<strong>ثبت الگوی اختصاصی:</strong></p><p>	در صورتی که بخواهید متن پیامک احراز هویت طبق الگوی دلخواه خودتان باشد، نیاز به ثبت الگو یا پترن دارید. جهت ایجاد الگو و ثبت آن در این افزونه از دستورالعمل زیر استفاده نمایید.</p><p>	وارد پنل پیامک رنگینه شوید و در منوی پنل گزینه &laquo;ارسال بر اساس پترن&raquo; را کلیک کنید.</p><p>	در صفحه ظاهر شده روی دکمه &laquo;+ جدید&raquo; کلیک کنید.</p><p>	مانند متن زیر یک الگو را تایپ کرده و دکمه ثبت را کلیک نمایید:</p><p>	<strong>کد تأیید شما: %code%<br />	فروشگاه ابزار خودرو</strong></p><p>	(متن الگو را طبق صلاح خود وارد کنید اما حتما نام فروشگاه خود را ثبت کنید)</p><p>	بعد از ثبت موفق الگو منتظر بمانید تا حداکثر طی 12 ساعت الگوی شما تایید شود. وضعیت تایید یا رد الگوی خود را در همان صفحه &laquo;ارسال بر اساس پترن&raquo; پنل پیامک می توانید مشاهده نمایید.&nbsp;</p><p>	پس از اینکه الگو تایید و فعال شد، تنظیمات درگاه افزونه دیجیتس (یعنی همین صفحه) را به شکل زیر انجام دهید:</p><p>	گزینه &laquo;<label for="rangine_sample">&nbsp;ارسال بر اساس الگوی پیش فرض</label>&raquo; را روی <strong>خیر </strong>تنظیم نمایید.</p><p>روی لینک ابزار تنظیم پترن کلیک کنید و طبق راهنمای آن کد پترن و متغیرهایش را در کادرهای مربوطه وارد نمایید.</p><p>	سپس دکمه ذخیره تغییرات را کلیک کنید.</p>';
			rangineShowMessage('آموزش ثبت پترن(الگو)',patternLearnText,'در صورت نیاز به راهنمایی بیشتر با پشتیبانی سامانه پیامک خود تماس بگیرید.')
		});
		$('.rangine-patterntool').on('click',function(){
			var patternToolText = 'پس از ثبت پترن در سامانه پیامک رنگینه و تأیید آن، کد پترن را در کادر زیر وارد نمایید:<div id="onlinepattern"><label>کد پترن:</label> <input class="patterncodeinput" placeholder="کد الگوی شما" type="text"><div class="pattern-message"></div><div><button class="onlinepcodechecker" type="button">بررسی الگو</button></div><div class="pcodecheckresult"></div><div class="variableshelp hidden">متغیر کد تأیید: %OTP%</div><div><button class="patterninsert hidden" type="button">ثبت الگو در کادر پیامک</button></div></div><br><div><b>راهنمایی:</b><p class="ranginepatternstephelp"> متنی مانند زیر را در سامانه پیامک رنگینه > صفحه ارسال بر اساس پترن ایجاد کنید:<br><br>کد تأیید شما: %code%<br>نام فروشگاه شما<br><br>پس از مدتی که پترن شما تأیید شد، کد پترن را از همان صفحه ارسال بر اساس پترن کپی و در کادر فوق درج نمایید.</p></div>';
			rangineShowMessage('ابزار تنظیم پترن',patternToolText,'درگاه سامانه پیامک رنگینه');
			
			$('.onlinepcodechecker').on('click',function(){
				pcode = $('#onlinepattern .patterncodeinput').val();
				jQuery.ajax({
					type: 'post',
					async: true,
					url: digsetobj.ajax_url,
					data: {
						action: 'digits_rangine_CheckPattern',
						uname: $("#rangine_username").val(),
						pass: $("#rangine_password").val(),
						patternCode: pcode,
					},
					beforeSend: function(){
						$('#onlinepattern .pattern-message').html('<span class="process-icon-loading">در حال بررسی...</span>');
					},
					success: function (json) {
						var obj = JSON.parse(json);
						var message = '';				
							  if(obj.status.code == 0){
								$('#onlinepattern .pattern-message').html(obj.data.patternMessage.replace("\n","<br>"));
								var pvars = obj.data.patternParams;
								var output = '<p>لطفاً پارامترهای پترن را با متغیرهای سایت تکمیل نمایید.</p>';
								pvars.forEach(function(value, index, array){
									output += '<div><label>'+value+'</label><input type="text"/></div>';
								});
								$('.pcodecheckresult').html(output);
								$('.variableshelp,.patterninsert').removeClass('hidden');
								$('.onlinepcodechecker').addClass('hidden');
								$('.ranginepatternstephelp').html('حالا پارامترهای پترن خود را در کادرهای ظاهر شده تکمیل نمایید. از متغیر %OTP% برای جایگزینی با کد تأیید موبایل استفاده کنید.');
								var patternoutput = '';
								$('.patterninsert').click(function(){
									$('#rangine_sample').val(1);
									$('.pcodecheckresult div').each(function(){
										if(patternoutput !== '') patternoutput += "\n";
										patternoutput += $(this).find('label').text()+':'+$(this).find('input').val();
									})
									$('#rangine_patterncode').val(pcode);
									$('#rangine_patternvars').html(patternoutput);
									$('#rangine_patternvars').val(patternoutput);
									$('#rmWrapper').remove();
								});
							  }else if(obj.status.code == 404){
								  $('#onlinepattern .pattern-message').html('پترن در دسترس نیست. مطمئن شوید که کد پترن را درست و بدون فاصله در چپ و راستش درج کرده اید. اگر به تازگی ثبت کرده اید منتظر باشید تا توسط سامانه تایید شود.');
							  }else if(obj.status.code == 962){
								  $('#onlinepattern .pattern-message').html('نام کاربری یا رمز عبور اشتباه است. اطلاعات ورود پنل پیامکتان را درست وارد کنید.');
							  }else{
								  $('#onlinepattern .pattern-message').html('این الگو در دسترس شما نیست. اگر به تازگی ثبت کرده اید منتظر باشید تا توسط سامانه تایید شود.');
							  }
					},
					complete: function(){
						rangineMessageBox.find('td .loader').hide();
					},
				});

				return false;
			});
		});
		$('#rangine_sample').on('change', function() {
			if($(this).val()== 1) {
				$('.rangine_shopname_wrapper').removeClass('hidden');
				$('.rangine_patterncode_wrapper,.rangine_patternvars_wrapper').addClass('hidden');
			}else{
				$('.rangine_shopname_wrapper').addClass('hidden');
				$('.rangine_patterncode_wrapper,.rangine_patternvars_wrapper').removeClass('hidden');
			}
		});
		$('#rangine_sample').change();
		$('.rangine_username_wrapper').before('<tr class="ranginecred rangineMessageBox" style="display:none;"><td colspan="2"></td></tr>');
		rangineMessageBox = $('.rangineMessageBox');
		if($("#digit_tapp").val() == 313){
			rangineMessageBox.show();
			$('.dig_current_gateway').hide();
		}

		$("select.digit_gateway").on('change', function() {
			if($(this).val() == 313){
				$('.dig_current_gateway').hide();
				
				rangineMessageBox.show();
			} else {
				$('.dig_current_gateway').show();
				rangineMessageBox.hide();
			}
		});
	});
	$(window).on('load', function(){
	    if (typeof rangineMessageBox !== typeof undefined){
    		$("select.digit_gateway").each(function(){
    			if($(this).val() == 313) usercheck($(this),rangineMessageBox);
    		});
    		jQuery("#digits_setting_update button[type='submit']").click(function(){
    			$("select.digit_gateway").each(function(){
    				if($(this).val() == 313) usercheck($(this),rangineMessageBox);
    			});
    		});
	    }
	});
})(jQuery);