+@* w-full space-y-12 md:w-8/12 lg:w-9/12 *@
+
- لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است، و برای شرایط فعلی تکنولوژی مورد نیاز، و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد، کتابهای زیادی در شصت و سه درصد گذشته حال و آینده، شناخت فراوان جامعه و متخصصان را می طلبد، تا با نرم افزارها شناخت بیشتری را برای طراحان رایانه ای علی الخصوص طراحان خلاقی، و فرهنگ پیشرو در زبان فارسی ایجاد کرد، در این صورت می توان امید داشت که تمام و دشواری موجود در ارائه راهکارها، و شرایط سخت تایپ به پایان رسد و زمان مورد نیاز شامل حروفچینی دستاوردهای اصلی، و جوابگوی سوالات پیوسته اهل دنیای موجود طراحی اساسا مورد استفاده قرار گیرد.
+ این سند بهمنظور تبیین حقوق، تعهدات و مسئولیتهای متقابل میان کاربران و شرکت «دادهپردازان گزارشگیر منطقه آزاد انزلی» تدوین شده و استفاده از سامانه gozareshgir.ir به معنای پذیرش کامل مفاد آن است. هدف از نگارش این متن، شفافسازی نحوه استفاده از خدمات، محدودیتها و الزامات قانونی سامانه میباشد.
+
+ @*
+ لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است، و برای شرایط فعلی تکنولوژی مورد نیاز، و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد، کتابهای زیادی در شصت و سه درصد گذشته حال و آینده، شناخت فراوان جامعه و متخصصان را می طلبد، تا با نرم افزارها شناخت بیشتری را برای طراحان رایانه ای علی الخصوص طراحان خلاقی، و فرهنگ پیشرو در زبان فارسی ایجاد کرد، در این صورت می توان امید داشت که تمام و دشواری موجود در ارائه راهکارها، و شرایط سخت تایپ به پایان رسد و زمان مورد نیاز شامل حروفچینی دستاوردهای اصلی، و جوابگوی سوالات پیوسته اهل دنیای موجود طراحی اساسا مورد استفاده قرار گیرد.
+
+
+ لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است، و برای شرایط فعلی تکنولوژی مورد نیاز، و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد، کتابهای زیادی در شصت و سه درصد گذشته حال و آینده، شناخت فراوان جامعه و متخصصان را می طلبد، تا با نرم افزارها شناخت بیشتری را برای طراحان رایانه ای علی الخصوص طراحان خلاقی، و فرهنگ پیشرو در زبان فارسی ایجاد کرد، در این صورت می توان امید داشت که تمام و دشواری موجود در ارائه راهکارها، و شرایط سخت تایپ به پایان رسد و زمان مورد نیاز شامل حروفچینی دستاوردهای اصلی، و جوابگوی سوالات پیوسته اهل دنیای موجود طراحی اساسا مورد استفاده قرار گیرد.
+
*@
-
- قوانین
-
- لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است، و برای شرایط فعلی تکنولوژی مورد نیاز، و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد، کتابهای زیادی در شصت و سه درصد گذشته حال و آینده، شناخت فراوان جامعه و متخصصان را می طلبد، تا با نرم افزارها شناخت بیشتری را برای طراحان رایانه ای علی الخصوص طراحان خلاقی، و فرهنگ پیشرو در زبان فارسی ایجاد کرد، در این صورت می توان امید داشت که تمام و دشواری موجود در ارائه راهکارها، و شرایط سخت تایپ به پایان رسد و زمان مورد نیاز شامل حروفچینی دستاوردهای اصلی، و جوابگوی سوالات پیوسته اهل دنیای موجود طراحی اساسا مورد استفاده قرار گیرد.
-
-
- لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است، و برای شرایط فعلی تکنولوژی مورد نیاز، و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد، کتابهای زیادی در شصت و سه درصد گذشته حال و آینده، شناخت فراوان جامعه و متخصصان را می طلبد، تا با نرم افزارها شناخت بیشتری را برای طراحان رایانه ای علی الخصوص طراحان خلاقی، و فرهنگ پیشرو در زبان فارسی ایجاد کرد، در این صورت می توان امید داشت که تمام و دشواری موجود در ارائه راهکارها، و شرایط سخت تایپ به پایان رسد و زمان مورد نیاز شامل حروفچینی دستاوردهای اصلی، و جوابگوی سوالات پیوسته اهل دنیای موجود طراحی اساسا مورد استفاده قرار گیرد.
-
+
+ ۱. تعاریف و اصطلاحات
+
+
+
+ سامانه: پلتفرم نرمافزاری به نشانی اینترنتی gozareshgir.ir که جهت مدیریت امور مرتبط با منابع انسانی طراحی شده و خدماتی همچون ثبت تردد، صدور قرارداد، محاسبه حقوق و ارائه گزارشات را به سازمانها ارائه میدهد.
+
+
+ شرکت: شرکت «دادهپردازان گزارشگیر منطقه آزاد انزلی» به عنوان توسعه دهنده، صاحب امتیاز، پشتیبان و بهرهبردار رسمی این سامانه شناخته میشود.
+
+
+ کاربر: هر شخص حقیقی یا حقوقی که با هدف استفاده از خدمات سامانه در آن ثبتنام کرده یا از آن بهرهبرداری مینماید.
+
+
+ مشتری سازمانی: کارفرمایان، شرکتها یا مؤسساتی که دارای پرسنل بوده و برای مدیریت منابع انسانی از سامانه استفاده میکنند.
+
+
+ خدمات سامانه: مجموعهای از قابلیتهای الکترونیکی شامل ثبت ورود و خروج، صدور قرارداد، فیش حقوقی، محاسبه مزایا، ارسال لیست بیمه، گزارشگیری مدیریتی، ثبت مساعده و وام و سایر خدمات مرتبط با حوزه منابع انسانی.
+
+
-
- حریم خصوصی
-
- لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است، و برای شرایط فعلی تکنولوژی مورد نیاز، و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد، کتابهای زیادی در شصت و سه درصد گذشته حال و آینده، شناخت فراوان جامعه و متخصصان را می طلبد، تا با نرم افزارها شناخت بیشتری را برای طراحان رایانه ای علی الخصوص طراحان خلاقی، و فرهنگ پیشرو در زبان فارسی ایجاد کرد، در این صورت می توان امید داشت که تمام و دشواری موجود در ارائه راهکارها، و شرایط سخت تایپ به پایان رسد و زمان مورد نیاز شامل حروفچینی دستاوردهای اصلی، و جوابگوی سوالات پیوسته اهل دنیای موجود طراحی اساسا مورد استفاده قرار گیرد.
-
-
- لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است، و برای شرایط فعلی تکنولوژی مورد نیاز، و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد، کتابهای زیادی در شصت و سه درصد گذشته حال و آینده، شناخت فراوان جامعه و متخصصان را می طلبد، تا با نرم افزارها شناخت بیشتری را برای طراحان رایانه ای علی الخصوص طراحان خلاقی، و فرهنگ پیشرو در زبان فارسی ایجاد کرد، در این صورت می توان امید داشت که تمام و دشواری موجود در ارائه راهکارها، و شرایط سخت تایپ به پایان رسد و زمان مورد نیاز شامل حروفچینی دستاوردهای اصلی، و جوابگوی سوالات پیوسته اهل دنیای موجود طراحی اساسا مورد استفاده قرار گیرد.
-
+
+ ۲. شرایط عضویت و استفاده
+
+
+
+ عضویت در سامانه تنها برای افراد بالای ۱۸ سال و دارای اهلیت قانونی مجاز است.
+
+
+ ثبتنام فقط از طریق شماره تلفن همراهی که به نام کاربر (کارفرما) ثبت شده باشد امکانپذیر است و در غیر این صورت، ثبتنام مسدود میشود.
+
+
+ کلیه اطلاعات ثبتشده در سامانه باید دقیق، صحیح و بهروز باشد. مسئولیت هرگونه مغایرت، خطا یا عواقب ناشی از اطلاعات نادرست با کاربر است.
+
+
+ در صورت نقض قوانین سامانه، درج اطلاعات جعلی یا استفاده غیرمجاز، شرکت مجاز است حساب کاربری را مسدود کرده و هیچگونه وجهی مسترد نخواهد شد.
+
+
-
- عنوان دوم قوانین
+
+ ۳. شرح خدمات سامانه
- لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است، و برای شرایط فعلی تکنولوژی مورد نیاز، و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد، کتابهای زیادی در شصت و سه درصد گذشته حال و آینده، شناخت فراوان جامعه و متخصصان را می طلبد، تا با نرم افزارها شناخت بیشتری را برای طراحان رایانه ای علی الخصوص طراحان خلاقی، و فرهنگ پیشرو در زبان فارسی ایجاد کرد، در این صورت می توان امید داشت که تمام و دشواری موجود در ارائه راهکارها، و شرایط سخت تایپ به پایان رسد و زمان مورد نیاز شامل حروفچینی دستاوردهای اصلی، و جوابگوی سوالات پیوسته اهل دنیای موجود طراحی اساسا مورد استفاده قرار گیرد.
-
-
- لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است، و برای شرایط فعلی تکنولوژی مورد نیاز، و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد، کتابهای زیادی در شصت و سه درصد گذشته حال و آینده، شناخت فراوان جامعه و متخصصان را می طلبد، تا با نرم افزارها شناخت بیشتری را برای طراحان رایانه ای علی الخصوص طراحان خلاقی، و فرهنگ پیشرو در زبان فارسی ایجاد کرد، در این صورت می توان امید داشت که تمام و دشواری موجود در ارائه راهکارها، و شرایط سخت تایپ به پایان رسد و زمان مورد نیاز شامل حروفچینی دستاوردهای اصلی، و جوابگوی سوالات پیوسته اهل دنیای موجود طراحی اساسا مورد استفاده قرار گیرد.
+ سامانه گزارشگیر با هدف تسهیل امور اداری و منابع انسانی طراحی شده و خدمات زیر را به صورت یکپارچه در اختیار کاربران قرار میدهد:
+
+
+
+ دقیق ساعات ورود و خروج پرسنل از طریق اپلیکیشن موبایل با استفاده از فناوری تشخیص چهره؛
+
+
+ صدور قراردادهای کاری و فرمهای تسویه حساب بر اساس اطلاعات پایه واردشده توسط کاربر بهصورت کاملاً خودکار؛
+
+
+ محاسبه حقوق و دستمزد بر اساس قوانین جاری کار، با در نظر گرفتن همه اجزای پرداختی و کسور قانونی از جمله حقوق پایه، اضافهکار، مرخصی، وام، مساعده، سنوات و غیره؛
+
+
+ صدور فیش حقوقی به صورت PDF قابل چاپ به همراه گزارشهای تجمیعی و دورهای مدیریتی؛
+
+
+ تولید فایلهای استاندارد جهت ارسال به سامانههای تأمین اجتماعی برای پرداخت حق بیمه پرسنل؛
+
+
+ ثبت و مدیریت مساعدهها و وامهای کارکنان و انعکاس خودکار آنها در فیش حقوقی مربوطه.
+
+
+
+
+
+ ۴. حقوق و مسئولیتهای کاربران
+
+
+
+ کاربران مسئول صحت کلیه اطلاعات واردشده به سامانه میباشند و شرکت هیچ مسئولیتی در قبال اطلاعات اشتباه یا ناقص ندارد.
+
+
+ استفاده اشتراکی از حساب، دسترسی غیرمجاز، جعل هویت یا انتقال حساب به دیگران ممنوع است.
+
+
+ کاربران موظفاند اطلاعات محرمانه ورود مانند رمز عبور را بهصورت ایمن نگهداری کنند.
+
+
+ کاربران حق استفاده از ساختارها، محتوای حقوقی و الگوریتمهای سامانه در نرمافزارهای دیگر یا انتشار آنها را ندارند.
+
+
+
+
+
+ ۵. حقوق و مسئولیتهای سامانه
+
+
+
+ شرکت موظف است خدمات را با بالاترین کیفیت فنی ممکن و مطابق استانداردهای امنیتی ارائه دهد، اما مسئولیتی در خصوص نگهداری نسخه پشتیبان از اطلاعات کاربران ندارد.
+
+
+ در صورت عدم تمدید اشتراک توسط کاربر، دسترسی وی به سامانه بدون هشدار قبلی مسدود خواهد شد.
+
+
+ بروز اختلالات ناشی از قطع اینترنت، مشکلات سرور، یا حملات سایبری از شمول تعهدات شرکت خارج است.
+
+
+ کاربران میتوانند از طریق دکمه پشتیبانی آنلاین مشکلات خود را اعلام کنند و شرکت موظف است در اسرع وقت پاسخ دهد.
+
+
+ در صورت تغییر قوانین کار یا بیمه، سامانه در سریعترین زمان ممکن بهروزرسانیهای لازم را اعمال خواهد کرد.
+
+
+
+
+
+ ۶. محرمانگی و حفظ حریم خصوصی
+
+
+
+ کلیه اطلاعات کاربران بهصورت محرمانه نزد سامانه باقی خواهد ماند و بدون حکم قانونی یا دستور مقام قضایی، در اختیار هیچ نهاد یا فرد ثالثی قرار نخواهد گرفت.
+
+
+ برای بهبود تجربه کاربری، ممکن است از کوکی یا سایر فناوریهای ذخیرهسازی مرورگر استفاده شود.
+
+
+ در صورت حذف حساب، اطلاعات کاربر در پایگاه داده باقی میماند ولی دسترسی به آن مسدود خواهد شد.
+
+
+ استفاده از اطلاعات توسط سامانه صرفاً در همان حساب کاربری و برای ارائه خدمات مربوط به همان مشتری مجاز است.
+
+
+
+
+
+ ۷. امنیت و سوءاستفاده
+
+
+
+ هرگونه تلاش برای نفوذ، دستکاری اطلاعات، جعل هویت، یا انجام عملیات خرابکارانه از سوی کاربر منجر به مسدودسازی حساب و پیگیری قضایی خواهد شد.
+
+
+ کاربر متخلف موظف به جبران کامل خسارات واردشده به شرکت یا سایر کاربران است.
+
+
+ در صورت وقوع تهدید امنیتی یا نشت داده، به کاربر مربوطه اطلاع داده خواهد شد.
+
+
+ استفاده از نرمافزارهای جانبی، رباتها، اسکریپتهای خودکار یا دستکاری API ممنوع بوده و موجب انسداد فوری حساب میگردد.
+
+
+
+
+
+ ۸. مالکیت حقوقی و معنوی
+
+
+
+ کلیه حقوق نرمافزاری، طراحی گرافیکی، الگوریتمها، مستندات و دادههای سامانه متعلق به شرکت است.
+
+
+ کاربران صرفاً مجاز به استفاده از خروجیهای گزارش برای مصارف داخلی سازمان خود هستند.
+
+
+ تهیه و انتشار اسکرینشات، ویدئو یا اسناد از محیط سامانه فقط برای آموزش درونسازمانی مجاز است.
+
+
+ هرگونه کپیبرداری، بازتولید، انتقال یا توسعه نرمافزار مشابه بر اساس سامانه، نقض مالکیت فکری بوده و مشمول پیگیری قانونی خواهد بود.
+
+
+
+
+
+ ۹. تغییرات در قوانین و مقررات
+
+
+
+ شرکت این حق را دارد که هر زمان بدون اطلاع قبلی نسبت به اصلاح یا تکمیل این سند اقدام نماید.
+
+
+ اطلاعرسانی تغییرات از طریق اعلان داخل سامانه و پیامک به کاربر اصلی صورت خواهد گرفت.
+
+
+ ادامه استفاده از سامانه پس از اعمال تغییرات بهمنزله پذیرش شرایط جدید تلقی میگردد.
+
+
+ تغییر قوانین حقی برای درخواست بازگشت وجه یا فسخ قرارداد ایجاد نمیکند.
+
+
+
+
+
+ ۱۰. قانون حاکم و مرجع رسیدگی
+
+
+
+ کلیه مفاد این سند تحت شمول قوانین جمهوری اسلامی ایران خواهد بود.
+
+
+ در صورت بروز اختلاف، ابتدا موضوع از طریق پشتیبانی سامانه و مذاکره مستقیم پیگیری میشود.
+
+
+ در صورت عدم حصول توافق، رسیدگی از طریق مراجع صالح قضایی در ایران صورت خواهد گرفت.
+
+
@@ -219,22 +447,23 @@
links.forEach(link => {
link.addEventListener('click', (e) => {
- e.preventDefault();
- links.forEach(l => {
- l.classList.remove('text-gray-800');
- l.closest('div').classList.remove('link-before-active');
- });
+ e.preventDefault();
- link.classList.add('text-gray-800');
- link.closest('div').classList.add('link-before-active');
+ links.forEach(l => {
+ l.classList.remove('text-gray-800');
+ l.closest('div').classList.remove('link-before-active');
+ });
- const target = document.querySelector(link.getAttribute('href'));
- if (target) {
- const yOffset = -HEADER_OFFSET;
- const y = target.getBoundingClientRect().top + window.pageYOffset + yOffset;
+ link.classList.add('text-gray-800');
+ link.closest('div').classList.add('link-before-active');
- window.scrollTo({ top: y, behavior: 'smooth' });
- }
+ const target = document.querySelector(link.getAttribute('href'));
+ if (target) {
+ const yOffset = -HEADER_OFFSET;
+ const y = target.getBoundingClientRect().top + window.pageYOffset + yOffset;
+
+ window.scrollTo({ top: y, behavior: 'smooth' });
+ }
});
});
@@ -259,9 +488,6 @@
}
});
});
-
-
});
-
}
\ No newline at end of file
diff --git a/ServiceHost/ServiceHost.sln b/ServiceHost/ServiceHost.sln
new file mode 100644
index 00000000..ba08276e
--- /dev/null
+++ b/ServiceHost/ServiceHost.sln
@@ -0,0 +1,24 @@
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.5.2.0
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServiceHost", "ServiceHost.csproj", "{A7FC06EB-C37E-33D2-FBED-09D896C572BE}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {A7FC06EB-C37E-33D2-FBED-09D896C572BE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A7FC06EB-C37E-33D2-FBED-09D896C572BE}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A7FC06EB-C37E-33D2-FBED-09D896C572BE}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {A7FC06EB-C37E-33D2-FBED-09D896C572BE}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {C04A14A6-610A-4319-882E-9166DFF2F9C3}
+ EndGlobalSection
+EndGlobal
diff --git a/ServiceHost/wwwroot/AssetsMain/css/main.css b/ServiceHost/wwwroot/AssetsMain/css/main.css
index 2ab71199..4f48d8af 100644
--- a/ServiceHost/wwwroot/AssetsMain/css/main.css
+++ b/ServiceHost/wwwroot/AssetsMain/css/main.css
@@ -10,4 +10,10 @@ body {
-moz-font-feature-settings: "ss02";
-webkit-font-feature-settings: "ss02";
font-feature-settings: "ss02";
+}
+
+.ss03 {
+ -moz-font-feature-settings: "ss03";
+ -webkit-font-feature-settings: "ss03";
+ font-feature-settings: "ss03";
}
\ No newline at end of file
diff --git a/ServiceHost/wwwroot/AssetsMain/pages/complaints/js/Index.js b/ServiceHost/wwwroot/AssetsMain/pages/complaints/js/Index.js
new file mode 100644
index 00000000..c1402de8
--- /dev/null
+++ b/ServiceHost/wwwroot/AssetsMain/pages/complaints/js/Index.js
@@ -0,0 +1,133 @@
+$(document).ready(function () {
+ var maxChars = 500;
+ var textLength = 0;
+ var comment = "";
+ var outOfChars = '0';
+
+ /* initalize for when no data is in localStorage */
+ var count = maxChars;
+ $('#characterLeft').text(count);
+
+ /* fix val so it counts carriage returns */
+ $.valHooks.textarea = {
+ get: function (e) {
+ return e.value.replace(/\r?\n/g, "\r\n");
+ }
+ };
+
+ function checkCount() {
+ textLength = $('#description').val().length;
+ if (textLength >= maxChars) {
+ $('#characterLeft').text(outOfChars);
+ }
+ else {
+ count = maxChars - textLength;
+ $('#characterLeft').text(count);
+ }
+ }
+
+ /* on keyUp: update #characterLeft as well as count & comment in localStorage */
+ $('#description').keyup(function () {
+ checkCount();
+ comment = $(this).val();
+ // localStorage.setItem("comment", comment);
+ });
+
+ /* on pageload: get check for comment text in localStorage, if found update comment & count */
+ // if (localStorage.getItem("comment") != null) {
+ // $('#description').text(localStorage.getItem("comment"));
+ // checkCount();
+ // }
+});
+
+function saveContactUs() {
+ let isFormValid = true;
+
+ requiredFields.forEach(field => {
+ const isValid = validateField(field);
+ if (!isValid) isFormValid = false;
+ });
+
+ if (!isFormValid) return;
+
+ var data = $('#formContact').serialize();
+ ajax.post(createAjaxUrl, data, false).then(response => {
+ if (response.success) {
+ $('.alert-success-msg').show();
+ $('.alert-success-msg p').text(response.message);
+
+ $('#formContact')[0].reset();
+ //$('#formContact .text-[#F31260], #formContact .dark\\:text-[#F695B7]').hide();
+
+ setTimeout(function () {
+ $('.alert-success-msg').hide();
+ $('.alert-success-msg p').text('');
+ }, 3500);
+ return;
+ } else {
+ $('.alert-msg').show();
+ $('.alert-msg p').text(response.message);
+ setTimeout(function () {
+ $('.alert-msg').hide();
+ $('.alert-msg p').text('');
+ }, 3500);
+ return;
+ }
+ });
+}
+
+
+function validateField(field) {
+ const input = $(field.id);
+ const value = input.val().trim();
+ const errorDiv = input.nextAll("div").first();
+ let isValid = true;
+
+ if (value === "") {
+ errorDiv.text(field.message).show();
+ isValid = false;
+ } else if (field.type === "email" && !validateEmail(value)) {
+ errorDiv.text("فرمت ایمیل صحیح نیست.").show();
+ isValid = false;
+ } else if (field.type === "number" && !/^\d+$/.test(value)) {
+ errorDiv.text("شماره همراه باید فقط شامل عدد باشد.").show();
+ isValid = false;
+ } else {
+ errorDiv.hide();
+ }
+
+ return isValid;
+}
+
+
+function validateEmail(email) {
+ var re = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
+ return re.test(email);
+}
+
+const requiredFields = [
+ { id: "#fname", message: "نام را وارد کنید." },
+ { id: "#lname", message: "نام خانوادگی را وارد کنید." },
+ { id: "#email", message: "ایمیل را وارد کنید.", type: "email" },
+ { id: "#phone", message: "شماره همراه را وارد کنید.", type: "number" },
+ { id: "#subject", message: "موضوع را وارد کنید." },
+ { id: "#description", message: "توضیحات را وارد کنید." },
+];
+
+// فعالسازی اعتبارسنجی در لحظهی تایپ
+$(document).ready(function () {
+ requiredFields.forEach(field => {
+ $(field.id).on("input", function () {
+ validateField(field);
+ });
+ });
+});
+
+
+$(document).ready(function () {
+ requiredFields.forEach(field => {
+ $(field.id).on("input", function () {
+ validateField(field);
+ });
+ });
+});
\ No newline at end of file
diff --git a/ServiceHost/wwwroot/AssetsMain/pages/contact-us/js/Index.js b/ServiceHost/wwwroot/AssetsMain/pages/contact-us/js/Index.js
new file mode 100644
index 00000000..e761fc5f
--- /dev/null
+++ b/ServiceHost/wwwroot/AssetsMain/pages/contact-us/js/Index.js
@@ -0,0 +1,309 @@
+
+// $(document).ready(function() {
+// var maxChars = 500;
+// var textLength = 0;
+// var comment = "";
+// var outOfChars = '0';
+
+// /* initalize for when no data is in localStorage */
+// var count = maxChars;
+// $('#characterLeft').text(count);
+
+// /* fix val so it counts carriage returns */
+// $.valHooks.textarea = {
+// get: function(e) {
+// return e.value.replace(/\r?\n/g, "\r\n");
+// }
+// };
+
+// function checkCount() {
+// textLength = $('#description').val().length;
+// if (textLength >= maxChars) {
+// $('#characterLeft').text(outOfChars);
+// }
+// else {
+// count = maxChars - textLength;
+// $('#characterLeft').text(count);
+// }
+// }
+
+// /* on keyUp: update #characterLeft as well as count & comment in localStorage */
+// $('#description').keyup(function() {
+// checkCount();
+// comment = $(this).val();
+// // localStorage.setItem("comment", comment);
+// });
+
+// /* on pageload: get check for comment text in localStorage, if found update comment & count */
+// // if (localStorage.getItem("comment") != null) {
+// // $('#description').text(localStorage.getItem("comment"));
+// // checkCount();
+// // }
+// });
+
+// function saveContactUs() {
+// let isFormValid = true;
+
+// requiredFields.forEach(field => {
+// const isValid = validateField(field);
+// if (!isValid) isFormValid = false;
+// });
+
+// if (!isFormValid) return;
+
+// var data = $('#formContact').serialize();
+// ajax.post(createAjaxUrl, data, false).then(response => {
+// if (response.success) {
+// $('.alert-success-msg').show();
+// $('.alert-success-msg p').text(response.message);
+
+// $('#formContact')[0].reset();
+// //$('#formContact .text-[#F31260], #formContact .dark\\:text-[#F695B7]').hide();
+
+// setTimeout(function() {
+// $('.alert-success-msg').hide();
+// $('.alert-success-msg p').text('');
+// },3500);
+// return;
+// } else {
+// $('.alert-msg').show();
+// $('.alert-msg p').text(response.message);
+// setTimeout(function() {
+// $('.alert-msg').hide();
+// $('.alert-msg p').text('');
+// }, 3500);
+// return;
+// }
+// });
+// }
+
+
+// function validateField(field) {
+// const input = $(field.id);
+// const value = input.val().trim();
+// const errorDiv = input.nextAll("div").first();
+// let isValid = true;
+
+// if (value === "") {
+// errorDiv.text(field.message).show();
+// isValid = false;
+// } else if (field.type === "email" && !validateEmail(value)) {
+// errorDiv.text("فرمت ایمیل صحیح نیست.").show();
+// isValid = false;
+// } else if (field.type === "number" && !/^\d+$/.test(value)) {
+// errorDiv.text("شماره همراه باید فقط شامل عدد باشد.").show();
+// isValid = false;
+// } else {
+// errorDiv.hide();
+// }
+
+// return isValid;
+// }
+
+
+// function validateEmail(email) {
+// var re = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
+// return re.test(email);
+// }
+
+// const requiredFields = [
+// { id: "#fname", message: "نام را وارد کنید." },
+// { id: "#lname", message: "نام خانوادگی را وارد کنید." },
+// { id: "#email", message: "ایمیل را وارد کنید.", type: "email" },
+// { id: "#phone", message: "شماره همراه را وارد کنید.", type: "number" },
+// { id: "#subject", message: "موضوع را وارد کنید." },
+// { id: "#description", message: "توضیحات را وارد کنید." },
+// ];
+
+// // فعالسازی اعتبارسنجی در لحظهی تایپ
+// $(document).ready(function () {
+// requiredFields.forEach(field => {
+// $(field.id).on("input", function () {
+// validateField(field);
+// });
+// });
+// });
+
+
+// $(document).ready(function () {
+// requiredFields.forEach(field => {
+// $(field.id).on("input", function () {
+// validateField(field);
+// });
+// });
+// });
+$(document).ready(function () {
+ appendSvgMap();
+ appendSvgRight();
+ appendSvgLeft();
+});
+
+function appendSvgMap() {
+ var html = `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ `;
+ $('#mapSvg').html(html);
+}
+
+function appendSvgRight() {
+ var html = `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ `;
+ $('#rightSvg').html(html);
+}
+
+function appendSvgLeft() {
+ var html = `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ `;
+ $('#leftSvg').html(html);
+}
\ No newline at end of file