چون کد کاملش یه مقدار زیاده و احتمالاً اگر بخوام در موردش توضیح بدم یه مقاله چهار پنج صفحه ای میشه!
شما هر قسمتش رو که مشکل دارید مشخص کنید تا توضیح بدم. اینجوری اون جاهایی رو که مکل ندارید از جواب من حذف میشه و به یک جواب مختصر و مفید میرسید