Author: Adam Pioterek <adam.pioterek@protonmail.ch>
gtfs
%!v(PANIC=String method: strings: negative Repeat count)
diff --git a/app/build.gradle b/app/build.gradle index 629485cf263b63aded4055ca0b69b2cd11c74f28..b31ded32053c4536f08e2e0259442fc88e4787f9 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -36,13 +36,18 @@ implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" implementation 'com.github.arimorty:floatingsearchview:2.1.1' implementation 'com.google.code.gson:gson:2.8.1' implementation 'com.squareup.okhttp3:okhttp:3.8.1' - implementation 'org.onebusaway:onebusaway-gtfs:1.3.4' } repositories { - maven { - url "https://maven.google.com" - } + maven { url "https://maven.google.com" } + maven { url 'http://nexus.onebusaway.org/content/groups/public/' } mavenCentral() } + +/*configurations { + all { + exclude module: 'httpclient' + exclude module: 'commons-logging' + } +}*/ apply plugin: 'kotlin-android-extensions' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 46b53e178ee7dce4c6529aedba2a8b240dd2a452..b3639351f1ea60324f203ffaaec81101f6200ddb 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -32,15 +32,16 @@ </activity> <activity android:name=".activities.NoDbActivity" /> - <service - android:name=".VmClient" - android:exported="false" /> - <activity android:name=".activities.EditFavouriteActivity" /> <activity android:name=".activities.HelpActivity" android:label="@string/title_activity_help" android:theme="@style/AppTheme" /> + + <service + android:name=".VmClient" + android:enabled="true" + android:exported="false" /> </application> </manifest> \ No newline at end of file diff --git a/app/src/main/java/ml/adamsprogs/bimba/CacheManager.kt b/app/src/main/java/ml/adamsprogs/bimba/CacheManager.kt index 8626c0c09ed242176281072d9918e86ea60c11a3..1936daec3ff08b80d158a4e6b53b1e1a1e3a9611 100644 --- a/app/src/main/java/ml/adamsprogs/bimba/CacheManager.kt +++ b/app/src/main/java/ml/adamsprogs/bimba/CacheManager.kt @@ -3,7 +3,7 @@ import android.content.Context import android.content.SharedPreferences import ml.adamsprogs.bimba.models.Plate -import org.onebusaway.gtfs.model.AgencyAndId +import ml.adamsprogs.bimba.gtfs.AgencyAndId class CacheManager private constructor(context: Context) { companion object { @@ -27,10 +27,10 @@ private var cacheHits: HashMap= HashMap() fun keys(): List<Plate> { return cache.map { - Plate( + Plate(Plate.ID( AgencyAndId.convertFromString(it.key.split("@")[0]), AgencyAndId.convertFromString(it.key.split("@")[1].split(">")[0]), - it.key.split(">")[1], + it.key.split(">")[1]), null) } } @@ -132,5 +132,5 @@ } return result } - private fun key(plate: Plate) = "${plate.line}@${plate.stop}>${plate.headsign}" + private fun key(plate: Plate) = "${plate.id.line}@${plate.id.stop}>${plate.id.headsign}" } \ No newline at end of file diff --git a/app/src/main/java/ml/adamsprogs/bimba/MessageReceiver.kt b/app/src/main/java/ml/adamsprogs/bimba/MessageReceiver.kt index 64287c3ea35f579dbc249cbc22a7892b446c922d..ea1e9f63efe4dea31f38f708b443eeb7e0da2870 100644 --- a/app/src/main/java/ml/adamsprogs/bimba/MessageReceiver.kt +++ b/app/src/main/java/ml/adamsprogs/bimba/MessageReceiver.kt @@ -3,8 +3,8 @@ import android.content.BroadcastReceiver import android.content.Context import android.content.Intent -import android.util.Log import ml.adamsprogs.bimba.models.Departure +import ml.adamsprogs.bimba.models.Plate class MessageReceiver private constructor() : BroadcastReceiver() { companion object { @@ -26,22 +26,11 @@ for (listener in onTimetableDownloadListeners) { listener.onTimetableDownload(result) } } - if (intent?.action == VmClient.ACTION_DEPARTURES_CREATED) { - val departures = intent.getStringArrayListExtra(VmClient.EXTRA_DEPARTURES).map { Departure.fromString(it) } as ArrayList<Departure> - val requester = intent.getStringExtra(VmClient.EXTRA_REQUESTER) - val id = intent.getStringExtra(VmClient.EXTRA_ID) - val size = intent.getIntExtra(VmClient.EXTRA_SIZE, -1) + if (intent?.action == VmClient.ACTION_READY) { + val departures = intent.getStringArrayListExtra(VmClient.EXTRA_DEPARTURES)?.map { Departure.fromString(it) }?.toSet() as HashSet<Departure>? + val plateId = intent.getSerializableExtra(VmClient.EXTRA_PLATE_ID) as Plate.ID for (listener in onVmListeners) { - listener.onVm(departures, requester, id, size) - } - } - if (intent?.action == VmClient.ACTION_NO_DEPARTURES) { - Log.i("VM", "Response received") - val requester = intent.getStringExtra(VmClient.EXTRA_REQUESTER) - val id = intent.getStringExtra(VmClient.EXTRA_ID) - val size = intent.getIntExtra(VmClient.EXTRA_SIZE, -1) - for (listener in onVmListeners) { - listener.onVm(null, requester, id, size) + listener.onVm(departures, plateId) } } } @@ -67,6 +56,6 @@ fun onTimetableDownload(result: String?) } interface OnVmListener { - fun onVm(vmDepartures: ArrayList<Departure>?, requester: String, id: String, size: Int) + fun onVm(vmDepartures: Set<Departure>?, plateId: Plate.ID) } } \ No newline at end of file diff --git a/app/src/main/java/ml/adamsprogs/bimba/TimetableDownloader.kt b/app/src/main/java/ml/adamsprogs/bimba/TimetableDownloader.kt index c560ea3e932514ad7de28b93dd8e2956b54a2e99..9617f942c166b9734d043a195c187c4dea1e6ac8 100644 --- a/app/src/main/java/ml/adamsprogs/bimba/TimetableDownloader.kt +++ b/app/src/main/java/ml/adamsprogs/bimba/TimetableDownloader.kt @@ -12,7 +12,6 @@ import java.io.* import java.security.MessageDigest import android.app.NotificationManager import android.os.Build -import android.util.Log import java.util.* class TimetableDownloader : IntentService("TimetableDownloader") { @@ -28,7 +27,7 @@ private lateinit var notificationManager: NotificationManager private var size: Int = 0 - override fun onHandleIntent(intent: Intent?) { + override fun onHandleIntent(intent: Intent?) { //fixme throws something if (intent != null) { notificationManager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager diff --git a/app/src/main/java/ml/adamsprogs/bimba/VmClient.kt b/app/src/main/java/ml/adamsprogs/bimba/VmClient.kt index d5fcc985e20d26cea9e0b85f8c508045a2c6efa1..bddc008c2b2216490345092ba41be93e297bbf3d 100644 --- a/app/src/main/java/ml/adamsprogs/bimba/VmClient.kt +++ b/app/src/main/java/ml/adamsprogs/bimba/VmClient.kt @@ -1,123 +1,240 @@ package ml.adamsprogs.bimba -import android.app.IntentService +import android.app.Service import android.content.Intent +import android.os.Handler +import android.os.HandlerThread +import android.os.IBinder +import android.os.Process.THREAD_PRIORITY_BACKGROUND import android.util.Log +import com.google.gson.Gson import ml.adamsprogs.bimba.models.* -import okhttp3.* -import com.google.gson.Gson -import org.onebusaway.gtfs.model.AgencyAndId +import okhttp3.FormBody +import okhttp3.OkHttpClient +import ml.adamsprogs.bimba.gtfs.AgencyAndId import java.io.IOException import java.util.* - +import kotlin.collections.HashMap +import kotlin.collections.HashSet +import kotlin.concurrent.thread -class VmClient : IntentService("VmClient") { +class VmClient : Service() { companion object { - const val ACTION_DEPARTURES_CREATED = "ml.adamsprogs.bimba.departuresCreated" - const val ACTION_NO_DEPARTURES = "ml.adamsprogs.bimba.noVM" - const val EXTRA_STOP_SYMBOL = "stopSymbol" - const val EXTRA_LINE_NUMBER = "lineNumber" - const val EXTRA_REQUESTER = "requester" - const val EXTRA_DEPARTURES = "departures" - const val EXTRA_SIZE = "size" - const val EXTRA_ID = "id" + const val ACTION_READY = "ml.adamsprogs.bimba.action.vm.ready" + const val EXTRA_DEPARTURES = "ml.adamsprogs.bimba.extra.vm.departures" + const val EXTRA_PLATE_ID = "ml.adamsprogs.bimba.extra.vm.plate" } + private var handler: Handler? = null + private val tick6ZinaTim: Runnable = object : Runnable { + override fun run() { + handler!!.postDelayed(this, (12.5 * 1000).toLong()) + for (plateId in requests.keys) + downloadVM() + } + } + private val requests = HashMap<AgencyAndId, Set<Request>>() + private val vms = HashMap<AgencyAndId, HashSet<Plate>>() //HashSet<Departure>? + private val timetable = Timetable.getTimetable() - override fun onHandleIntent(intent: Intent?) { - if (intent != null) { - val requester = intent.getStringExtra(EXTRA_REQUESTER) - Log.i("VM", "Request for $requester received") - val id = intent.getStringExtra(EXTRA_ID) - val size = intent.getIntExtra(EXTRA_SIZE, -1) + + override fun onCreate() { + val thread = HandlerThread("ServiceStartArguments", THREAD_PRIORITY_BACKGROUND) + thread.start() + handler = Handler(thread.looper) + handler!!.postDelayed(tick6ZinaTim, (12.5 * 1000).toLong()) + } - if (!NetworkStateReceiver.isNetworkAvailable(this)) { - sendNullResult(requester, id, size) - return + override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int { + val stopSegment = intent?.getParcelableExtra<StopSegment>("stop")!! + if (stopSegment.plates == null) + throw EmptyStopSegmentException() + val action = intent.action + val once = intent.getBooleanExtra("once", false) + if (action == "request") { + if (isAlreadyRequested(stopSegment)) { + incrementRequest(stopSegment) + sendResult(stopSegment) + } else { + if (!once) + addRequest(stopSegment) + thread { + downloadVM(stopSegment) + } } + } else if (action == "remove") { + decrementRequest(stopSegment) + cleanRequests() + } + return START_STICKY + } - val stopSymbol = intent.getStringExtra(EXTRA_STOP_SYMBOL) - if (stopSymbol == null) { - sendNullResult(requester, id, size) - return + private fun cleanRequests() { + val newMap = HashMap<AgencyAndId, Set<Request>>() + requests.forEach { + newMap[it.key] = it.value.minus(it.value.filter { it.times == 0 }) + } + newMap.forEach { requests[it.key] = it.value } + } + + private fun addRequest(stopSegment: StopSegment) { + if (requests[stopSegment.stop] == null) { + requests[stopSegment.stop] = stopSegment.plates!! + .map { Request(it, 1) } + .toSet() + } else { + var req = requests[stopSegment.stop]!! + stopSegment.plates!!.forEach { + val plate = it + if (req.any { it.plate == plate }) { + req.filter { it.plate == plate }[0].times++ + } else { + req = req.plus(Request(it, 1)) + } + requests[stopSegment.stop] = req + } + } + } + + private fun sendResult(stop: StopSegment) { + vms[stop.stop]?.filter { + val plate = it + stop.plates!!.any { it == plate.id } + }?.forEach { sendResult(it.id, it.departures?.get(today())) } + } + + private fun today(): AgencyAndId { + return timetable.getServiceForToday() + } + + private fun incrementRequest(stopSegment: StopSegment) { + stopSegment.plates!!.forEach { + val plateId = it + requests[it.stop]!!.filter { it.plate == plateId }.forEach { it.times++ } + } + } + + private fun decrementRequest(stopSegment: StopSegment) { + stopSegment.plates!!.forEach { + val plateId = it + requests[it.stop]!!.filter { it.plate == plateId }.forEach { it.times-- } + } + } + + private fun isAlreadyRequested(stopSegment: StopSegment): Boolean { + val platesIn = requests[stopSegment.stop]?.map { it.plate }?.toSet() + val platesOut = stopSegment.plates + return (platesOut == platesIn || platesIn!!.containsAll(platesOut!!)) + } + + + override fun onBind(intent: Intent): IBinder? { + return null + } + + override fun onDestroy() { + } + + private fun downloadVM() { + vms.forEach { + downloadVM(StopSegment(it.key, it.value.map { it.id }.toSet())) + } + } + + private fun downloadVM(stopSegment: StopSegment) { + if (!NetworkStateReceiver.isNetworkAvailable(this)) { + stopSegment.plates!!.forEach { + sendResult(it, null) } - val lineId = intent.getSerializableExtra(EXTRA_LINE_NUMBER) as AgencyAndId? + return + } - val client = OkHttpClient() - val url = "http://www.peka.poznan.pl/vm/method.vm?ts=${Calendar.getInstance().timeInMillis}" - val formBody = FormBody.Builder() - .add("method", "getTimes") - .add("p0", "{\"symbol\": \"$stopSymbol\"}") - .build() - val request = Request.Builder() - .url(url) - .post(formBody) - .build() + val stopSymbol = timetable.getStopCode(stopSegment.stop) + val client = OkHttpClient() + val url = "http://www.peka.poznan.pl/vm/method.vm?ts=${Calendar.getInstance().timeInMillis}" + val formBody = FormBody.Builder() + .add("method", "getTimes") + .add("p0", "{\"symbol\": \"$stopSymbol\"}") + .build() + val request = okhttp3.Request.Builder() + .url(url) + .post(formBody) + .build() - Log.i("VM", "created http request") + Log.i("VM", "created http request") - val responseBody: String? - try { - responseBody = client.newCall(request).execute().body()?.string() - } catch (e: IOException) { - sendNullResult(requester, id, size) - return + val responseBody: String? + try { + responseBody = client.newCall(request).execute().body()?.string() + } catch (e: IOException) { + stopSegment.plates!!.forEach { + sendResult(it, null) } + return + } - Log.i("VM", "received http response") + Log.i("VM", "received http response") - if (responseBody?.get(0) == '<') { - sendNullResult(requester, id, size) - return + if (responseBody?.get(0) == '<') { + stopSegment.plates!!.forEach { + sendResult(it, null) } + return + } + + val javaRootMapObject = Gson().fromJson(responseBody, HashMap::class.java) + val times = (javaRootMapObject["success"] as Map<*, *>)["times"] as List<*> + stopSegment.plates!!.forEach { downloadVM(it, times) } + + } + + private fun downloadVM(plateId: Plate.ID, times: List<*>) { + val date = Calendar.getInstance() + val todayDay = "${date.get(Calendar.DATE)}".padStart(2, '0') + val todayMode = timetable.calendarToMode(AgencyAndId(timetable.getServiceForToday().id)) + + val departures = HashSet<Departure>() - val javaRootMapObject = Gson().fromJson(responseBody, HashMap::class.java) - val times = (javaRootMapObject["success"] as Map<*, *>)["times"] as List<*> - val date = Calendar.getInstance() - val todayDay = "${date.get(Calendar.DATE)}".padStart(2, '0') - val timetable = Timetable.getTimetable() - val todayMode = timetable.calendarToMode(timetable.getServiceForToday().id.toInt()) - val departuresToday = ArrayList<Departure>() - val lineNumber = if (lineId != null) timetable.getLineNumber(lineId) else null - for (time in times) { - val t = time as Map<*, *> - if (lineId == null || t["line"] == lineNumber) { - val departureDay = (t["departure"] as String).split("T")[0].split("-")[2] - val departureTime = calendarFromIso(t["departure"] as String).secondsAfterMidnight() - val departure = Departure(lineId?: timetable.getLineForNumber(t["line"] as String)!! - , todayMode, departureTime, false, - ArrayList(), t["direction"] as String, t["realTime"] as Boolean, - departureDay != todayDay, t["onStopPoint"] as Boolean) - departuresToday.add(departure) - } + times.forEach { + val thisLine = timetable.getLineForNumber((it as Map<*, *>)["line"] as String) + val thisHeadsign = it["direction"] as String + val thisPlateId = Plate.ID(thisLine, plateId.stop, thisHeadsign) + if (plateId == thisPlateId) { + val departureDay = (it["departure"] as String).split("T")[0].split("-")[2] + val departureTime = calendarFromIso(it["departure"] as String).secondsAfterMidnight() + val departure = Departure(plateId.line, todayMode, departureTime, false, + ArrayList(), it["direction"] as String, it["realTime"] as Boolean, + departureDay != todayDay, it["onStopPoint"] as Boolean) + departures.add(departure) } - Log.i("VM", "parsed http response") - if (departuresToday.isEmpty()) - sendNullResult(requester, id, size) - else - sendResult(departuresToday, requester, id, size) } + + + val departuresForPlate = HashMap<AgencyAndId, HashSet<Departure>>() + departuresForPlate[timetable.getServiceForToday()] = departures + val vm = vms[plateId.stop]!! + vm.remove(vm.filter { it.id == plateId }[0]) + vm.add(Plate(plateId, departuresForPlate)) + vms[plateId.stop] = vm + if (departures.isEmpty()) + sendResult(plateId, null) + else + sendResult(plateId, departures) } - private fun sendNullResult(requester: String, id: String, size: Int) { + private fun sendResult(plateId: Plate.ID, departures: HashSet<Departure>?) { val broadcastIntent = Intent() - broadcastIntent.action = ACTION_NO_DEPARTURES + broadcastIntent.action = ACTION_READY broadcastIntent.addCategory(Intent.CATEGORY_DEFAULT) - broadcastIntent.putExtra(EXTRA_REQUESTER, requester) - broadcastIntent.putExtra(EXTRA_ID, id) - broadcastIntent.putExtra(EXTRA_SIZE, size) + broadcastIntent.putStringArrayListExtra(EXTRA_DEPARTURES, departures?.map { it.toString() } as java.util.ArrayList<String>) + broadcastIntent.putExtra(EXTRA_PLATE_ID, plateId) sendBroadcast(broadcastIntent) } - private fun sendResult(departures: ArrayList<Departure>, requester: String, id: String, size: Int) { - val broadcastIntent = Intent() - broadcastIntent.action = ACTION_DEPARTURES_CREATED - broadcastIntent.addCategory(Intent.CATEGORY_DEFAULT) - broadcastIntent.putStringArrayListExtra(EXTRA_DEPARTURES, departures.map { it.toString() } as java.util.ArrayList<String>) - broadcastIntent.putExtra(EXTRA_REQUESTER, requester) - broadcastIntent.putExtra(EXTRA_ID, id) - broadcastIntent.putExtra(EXTRA_SIZE, size) - sendBroadcast(broadcastIntent) - Log.i("VM", "sent response") - } + data class Request(val plate: Plate.ID, var times: Int) + + class EmptyStopSegmentException : Exception() } + +//note application stops the service on exit + diff --git a/app/src/main/java/ml/adamsprogs/bimba/activities/DashActivity.kt b/app/src/main/java/ml/adamsprogs/bimba/activities/DashActivity.kt index 8476cc8e26c86316784480433f0758e1a69faa40..4387b91e2389753d388311ef9d68ab7a4776c794 100644 --- a/app/src/main/java/ml/adamsprogs/bimba/activities/DashActivity.kt +++ b/app/src/main/java/ml/adamsprogs/bimba/activities/DashActivity.kt @@ -22,20 +22,18 @@ import android.os.Bundle import android.util.Log import kotlinx.android.synthetic.main.activity_dash.* +//todo cards class DashActivity : AppCompatActivity(), MessageReceiver.OnTimetableDownloadListener, FavouritesAdapter.OnMenuItemClickListener, Favourite.OnVmPreparedListener { val context: Context = this - val receiver = MessageReceiver.getMessageReceiver() + private val receiver = MessageReceiver.getMessageReceiver() lateinit var timetable: Timetable var stops: ArrayList<StopSuggestion>? = null private lateinit var drawerLayout: DrawerLayout private lateinit var drawerView: NavigationView lateinit var favouritesList: RecyclerView lateinit var searchView: FloatingSearchView - lateinit var favourites: FavouriteStorage - private var timer = Timer() - private lateinit var timerTask: TimerTask - private var vmRequestId = 0 + private lateinit var favourites: FavouriteStorage override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -44,16 +42,12 @@ AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_AUTO) setSupportActionBar(toolbar) supportActionBar?.title = getString(R.string.merge_favourites) - createTimerTask() - - prepareOnDownloadListener() - startDownloaderService() - getStops() prepareFavourites() - scheduleRefresh() + prepareListeners() + startDownloaderService() drawerLayout = drawer_layout drawerView = drawer @@ -115,7 +109,6 @@ intent = Intent(context, StopActivity::class.java) searchSuggestion as StopSuggestion intent.putExtra(StopActivity.SOURCE_TYPE, StopActivity.SOURCE_TYPE_STOP) intent.putExtra(StopActivity.EXTRA_STOP_ID, searchSuggestion.id) - intent.putExtra(StopActivity.EXTRA_STOP_SYMBOL, searchSuggestion.symbol) startActivity(intent) } @@ -146,38 +139,6 @@ favouritesList.adapter = FavouritesAdapter(context, favourites.favouritesList, this) favouritesList.layoutManager = layoutManager } - private fun scheduleRefresh() { - timer.cancel() - timer = Timer() - createTimerTask() - timer.scheduleAtFixedRate(timerTask, 0, 15000) - } - - private fun createTimerTask() { - timerTask = object : TimerTask() { - override fun run() { - for (fav in favourites) { - fav.registerOnVm(receiver) - fav.addOnVmPreparedListener(this@DashActivity) - for (t in fav.timetables) { - val symbol = timetable.getStopSymbol(t.stop) - val line = timetable.getLineNumber(t.line) - val intent = Intent(context, VmClient::class.java) - intent.putExtra(VmClient.EXTRA_STOP_SYMBOL, symbol) - intent.putExtra(VmClient.EXTRA_LINE_NUMBER, line) - intent.putExtra(VmClient.EXTRA_ID, "fav-$vmRequestId") - intent.putExtra(VmClient.EXTRA_SIZE, fav.timetables.size) - intent.putExtra(VmClient.EXTRA_REQUESTER, - "${fav.name};${t.stop}${t.line}") - context.startService(intent) - } - vmRequestId++ - Log.i("VM", "Sent request for ${fav.name}") - } - } - } - } - override fun onVmPrepared() { Log.i("VM", "DataSetChange") favouritesList.adapter.notifyDataSetChanged() @@ -188,13 +149,15 @@ timetable = Timetable.getTimetable(this) stops = timetable.getStops() as ArrayList<StopSuggestion> } - private fun prepareOnDownloadListener() { + private fun prepareListeners() { val filter = IntentFilter(TimetableDownloader.ACTION_DOWNLOADED) - filter.addAction(VmClient.ACTION_DEPARTURES_CREATED) - filter.addAction(VmClient.ACTION_NO_DEPARTURES) + filter.addAction(VmClient.ACTION_READY) filter.addCategory(Intent.CATEGORY_DEFAULT) registerReceiver(receiver, filter) receiver.addOnTimetableDownloadListener(context as MessageReceiver.OnTimetableDownloadListener) + favourites.favouritesList.forEach { + it.registerOnVm(receiver, context) + } } private fun startDownloaderService() { @@ -220,6 +183,9 @@ override fun onDestroy() { super.onDestroy() receiver.removeOnTimetableDownloadListener(context as MessageReceiver.OnTimetableDownloadListener) + favourites.favouritesList.forEach { + it.deregisterOnVm(receiver, context) + } unregisterReceiver(receiver) } @@ -248,9 +214,9 @@ result = result.replace('ó', 'o') result = result.replace('ą', 'a') result = result.replace('ś', 's') result = result.replace('ł', 'l') - result = result.replace('ż', 'ż') - result = result.replace('ź', 'ź') - result = result.replace('ć', 'ć') + result = result.replace('ż', 'z') + result = result.replace('ź', 'z') + result = result.replace('ć', 'c') result = result.replace('ń', 'n') return result } @@ -267,6 +233,9 @@ if (result == TimetableDownloader.RESULT_DOWNLOADED) { Snackbar.make(findViewById(R.id.drawer_layout), getString(R.string.refreshing_cache), Snackbar.LENGTH_LONG).show() timetable.refresh(context) stops = timetable.getStops() as ArrayList<StopSuggestion> + + drawerView.menu.findItem(R.id.drawer_validity_since).title = getString(R.string.valid_since, timetable.getValidSince()) + drawerView.menu.findItem(R.id.drawer_validity_till).title = getString(R.string.valid_since, timetable.getValidTill()) } } diff --git a/app/src/main/java/ml/adamsprogs/bimba/activities/EditFavouriteActivity.kt b/app/src/main/java/ml/adamsprogs/bimba/activities/EditFavouriteActivity.kt index 26f0d5872cbb12303e7c8f75f164b97d5294aa1b..5a7c10bbf2e68fd18f4f29a9081d1e15bbc87a67 100644 --- a/app/src/main/java/ml/adamsprogs/bimba/activities/EditFavouriteActivity.kt +++ b/app/src/main/java/ml/adamsprogs/bimba/activities/EditFavouriteActivity.kt @@ -13,7 +13,7 @@ import kotlinx.android.synthetic.main.activity_edit_favourite.* class EditFavouriteActivity : AppCompatActivity() { companion object { - val EXTRA_FAVOURITE = "favourite" + const val EXTRA_FAVOURITE = "favourite" } private lateinit var favourites: FavouriteStorage diff --git a/app/src/main/java/ml/adamsprogs/bimba/activities/SplashActivity.kt b/app/src/main/java/ml/adamsprogs/bimba/activities/SplashActivity.kt index 7e7b3aa73343cc6766039f3e6aea66f64985d915..7e1461e083061f66984121d839e3641294f31de2 100644 --- a/app/src/main/java/ml/adamsprogs/bimba/activities/SplashActivity.kt +++ b/app/src/main/java/ml/adamsprogs/bimba/activities/SplashActivity.kt @@ -3,8 +3,8 @@ import android.support.v7.app.AppCompatActivity import android.os.Bundle import android.content.Intent -import android.database.sqlite.SQLiteCantOpenDatabaseException import ml.adamsprogs.bimba.models.Timetable +import java.io.FileNotFoundException class SplashActivity : AppCompatActivity() { @@ -17,7 +17,7 @@ if (timetable.isEmpty()) startActivity(Intent(this, NoDbActivity::class.java)) else startActivity(Intent(this, DashActivity::class.java)) - } catch(e: SQLiteCantOpenDatabaseException) { + } catch(e: FileNotFoundException) { startActivity(Intent(this, NoDbActivity::class.java)) } finish() diff --git a/app/src/main/java/ml/adamsprogs/bimba/activities/StopActivity.kt b/app/src/main/java/ml/adamsprogs/bimba/activities/StopActivity.kt index eca00f605d8c8d27681f58d2a5cfe964aa79fe7e..4dcb586f4923dfa75c56a0946667561d1ce07fa5 100644 --- a/app/src/main/java/ml/adamsprogs/bimba/activities/StopActivity.kt +++ b/app/src/main/java/ml/adamsprogs/bimba/activities/StopActivity.kt @@ -17,33 +17,28 @@ import ml.adamsprogs.bimba.models.* import ml.adamsprogs.bimba.* import kotlin.concurrent.thread import kotlinx.android.synthetic.main.activity_stop.* -import org.onebusaway.gtfs.model.AgencyAndId +import ml.adamsprogs.bimba.gtfs.AgencyAndId -class StopActivity : AppCompatActivity(), MessageReceiver.OnVmListener, Favourite.OnVmPreparedListener { +class StopActivity : AppCompatActivity(), MessageReceiver.OnTimetableDownloadListener, MessageReceiver.OnVmListener, Favourite.OnVmPreparedListener { companion object { - val EXTRA_STOP_ID = "stopId" - val EXTRA_STOP_SYMBOL = "stopSymbol" - val EXTRA_FAVOURITE = "favourite" - val REQUESTER_ID = "stopActivity" - val SOURCE_TYPE = "sourceType" - val SOURCE_TYPE_STOP = "stop" - val SOURCE_TYPE_FAV = "favourite" + const val EXTRA_STOP_ID = "stopId" + const val EXTRA_FAVOURITE = "favourite" + const val SOURCE_TYPE = "sourceType" + const val SOURCE_TYPE_STOP = "stop" + const val SOURCE_TYPE_FAV = "favourite" } - private var stopId: AgencyAndId? = null - private var stopSymbol: String? = null + + private var stopSegment: StopSegment? = null private var favourite: Favourite? = null private var timetableType = "departure" private var sectionsPagerAdapter: SectionsPagerAdapter? = null private var viewPager: ViewPager? = null private lateinit var timetable: Timetable - private val today = Calendar.getInstance() private lateinit var tabLayout: TabLayout - private var timer = Timer() - private lateinit var timerTask: TimerTask private val context = this private val receiver = MessageReceiver.getMessageReceiver() - private var vmRequestId = 0 + private val vmDepartures = HashMap<Plate.ID, Set<Departure>>() private lateinit var sourceType: String @@ -60,9 +55,9 @@ setSupportActionBar(toolbar) when (sourceType) { SOURCE_TYPE_STOP -> { - stopId = intent.getSerializableExtra(EXTRA_STOP_ID) as AgencyAndId - stopSymbol = intent.getStringExtra(EXTRA_STOP_SYMBOL) - supportActionBar?.title = timetable.getStopName(stopId!!) + stopSegment = StopSegment(intent.getSerializableExtra(EXTRA_STOP_ID) as AgencyAndId, null) + stopSegment!!.fillPlates() + supportActionBar?.title = timetable.getStopName(stopSegment!!.stop) } SOURCE_TYPE_FAV -> { favourite = intent.getParcelableExtra(EXTRA_FAVOURITE) @@ -71,47 +66,35 @@ favourite!!.addOnVmPreparedListener(this) } } - createTimerTask() - prepareOnDownloadListener() viewPager = container tabLayout = tabs - sectionsPagerAdapter = SectionsPagerAdapter(supportFragmentManager, null) + sectionsPagerAdapter = SectionsPagerAdapter(supportFragmentManager, HashMap<AgencyAndId, ArrayList<Departure>>()) - - if (sourceType == SOURCE_TYPE_FAV) { - favourite!!.registerOnVm(receiver) - } - - thread { + /*thread { if (sourceType == SOURCE_TYPE_STOP) { - @Suppress("UNCHECKED_CAST") - sectionsPagerAdapter!!.departures = Departure.createDepartures(stopId!!) as HashMap<String, ArrayList<Departure>> + sectionsPagerAdapter!!.departures = Departure.createDepartures(stopSegment!!.stop) } else { - @Suppress("UNCHECKED_CAST") - sectionsPagerAdapter!!.departures = favourite!!.allDepartures() as HashMap<String, ArrayList<Departure>> + sectionsPagerAdapter!!.departures = favourite!!.allDepartures() } runOnUiThread { sectionsPagerAdapter?.notifyDataSetChanged() } - } + }*/ viewPager!!.adapter = sectionsPagerAdapter viewPager!!.addOnPageChangeListener(TabLayout.TabLayoutOnPageChangeListener(tabLayout)) tabLayout.addOnTabSelectedListener(TabLayout.ViewPagerOnTabSelectedListener(viewPager)) selectTodayPage() - - scheduleRefresh() showFab() } private fun getFavouriteDepartures() { thread { - @Suppress("UNCHECKED_CAST") - sectionsPagerAdapter!!.departures = favourite!!.allDepartures() as HashMap<String, ArrayList<Departure>> + sectionsPagerAdapter!!.departures = favourite!!.allDepartures() } runOnUiThread { sectionsPagerAdapter?.notifyDataSetChanged() @@ -126,19 +109,21 @@ private fun showFab() { if (sourceType == SOURCE_TYPE_FAV) return + val stopSymbol = timetable.getStopCode(stopSegment!!.stop) + val favourites = FavouriteStorage.getFavouriteStorage(context) - if (!favourites.has(stopSymbol!!)) { + if (!favourites.has(stopSymbol)) { fab.setImageDrawable(ResourcesCompat.getDrawable(context.resources, R.drawable.ic_favourite_empty, this.theme)) } fab.setOnClickListener { - if (!favourites.has(stopSymbol!!)) { + if (!favourites.has(stopSymbol)) { val items = HashSet<Plate>() - timetable.getLinesForStop(stopId!!).forEach { - val o = Plate(it, stopId!!, null) + timetable.getTripsForStop(stopSegment!!.stop).forEach { + val o = Plate(Plate.ID(it.routeId, stopSegment!!.stop, it.headsign), null) items.add(o) } - favourites.add(stopSymbol as String, items) + favourites.add(stopSymbol, items) fab.setImageDrawable(ResourcesCompat.getDrawable(context.resources, R.drawable.ic_favourite, this.theme)) } else { Snackbar.make(it, getString(R.string.stop_already_fav), Snackbar.LENGTH_LONG) @@ -147,45 +132,44 @@ } } } - private fun createTimerTask() { - timerTask = object : TimerTask() { - override fun run() { - val vmIntent = Intent(context, VmClient::class.java) - vmIntent.putExtra(VmClient.EXTRA_STOP_SYMBOL, stopSymbol) - vmIntent.putExtra(VmClient.EXTRA_REQUESTER, REQUESTER_ID) - vmIntent.putExtra(VmClient.EXTRA_ID, "stop-${vmRequestId++}") - startService(vmIntent) - runOnUiThread { - sectionsPagerAdapter?.notifyDataSetChanged() - } - } - } - } - private fun prepareOnDownloadListener() { - val filter = IntentFilter(VmClient.ACTION_DEPARTURES_CREATED) - filter.addAction(VmClient.ACTION_NO_DEPARTURES) + val filter = IntentFilter(TimetableDownloader.ACTION_DOWNLOADED) + filter.addAction(VmClient.ACTION_READY) filter.addCategory(Intent.CATEGORY_DEFAULT) registerReceiver(receiver, filter) - receiver.addOnVmListener(context as MessageReceiver.OnVmListener) + receiver.addOnTimetableDownloadListener(context) + if (sourceType == SOURCE_TYPE_STOP) { + receiver.addOnVmListener(context) + val intent = Intent(this, VmClient::class.java) + intent.putExtra("stop", stopSegment) + intent.action = "request" + startService(intent) + } else + favourite!!.registerOnVm(receiver, context) } - override fun onVm(vmDepartures: ArrayList<Departure>?, requester: String, id: String, size: Int) { - if (timetableType == "departure" && requester == REQUESTER_ID && sourceType == SOURCE_TYPE_STOP) { - @Suppress("UNCHECKED_CAST") - val fullDepartures = Departure.createDepartures(stopId!!) as HashMap<String, ArrayList<Departure>> - if (vmDepartures != null) { - fullDepartures[today.getMode()] = vmDepartures - } - sectionsPagerAdapter?.departures = fullDepartures + override fun onVm(vmDepartures: Set<Departure>?, plateId: Plate.ID) { + if (timetableType == "departure" && stopSegment!!.contains(plateId)) { + if (vmDepartures != null) + this.vmDepartures[plateId] = vmDepartures + else + this.vmDepartures.remove(plateId) + val departures = HashMap<AgencyAndId, List<Departure>>() + if (this.vmDepartures.isNotEmpty()) { + departures[timetable.getServiceForToday()] = this.vmDepartures.flatMap { it.value }.sortedBy { it.timeTill() } + sectionsPagerAdapter?.departures = departures + } else + sectionsPagerAdapter?.departures = Departure.createDepartures(stopSegment!!.stop) sectionsPagerAdapter?.notifyDataSetChanged() } - if (timetableType == "departure" && requester == REQUESTER_ID && sourceType == SOURCE_TYPE_FAV) { - getFavouriteDepartures() - } } - private fun selectTodayPage() { + override fun onTimetableDownload(result: String?) { + TODO("not implemented") //To change body of created functions use File | Settings | File Templates. + } + + private fun selectTodayPage() { //todo Services + val today = Calendar.getInstance() when (today.get(Calendar.DAY_OF_WEEK)) { Calendar.SATURDAY -> tabLayout.getTabAt(1)?.select() Calendar.SUNDAY -> tabLayout.getTabAt(2)?.select() @@ -193,13 +177,6 @@ else -> tabLayout.getTabAt(0)?.select() } } - private fun scheduleRefresh() { - timer.cancel() - timer = Timer() - createTimerTask() - timer.scheduleAtFixedRate(timerTask, 0, 15000) - } - override fun onCreateOptionsMenu(menu: Menu): Boolean { menuInflater.inflate(R.menu.menu_stop, menu) return true @@ -212,25 +189,21 @@ if (id == R.id.action_change_type) { if (timetableType == "departure") { timetableType = "full" item.icon = (ResourcesCompat.getDrawable(resources, R.drawable.ic_timetable_departure, this.theme)) - @Suppress("UNCHECKED_CAST") if (sourceType == SOURCE_TYPE_STOP) - sectionsPagerAdapter?.departures = timetable.getStopDepartures(stopId!!) as HashMap<String, ArrayList<Departure>> + sectionsPagerAdapter?.departures = timetable.getStopDepartures(stopSegment!!.stop) else - sectionsPagerAdapter?.departures = favourite!!.fullTimetable() as HashMap<String, ArrayList<Departure>> + sectionsPagerAdapter?.departures = favourite!!.fullTimetable() sectionsPagerAdapter?.relativeTime = false sectionsPagerAdapter?.notifyDataSetChanged() - timer.cancel() } else { timetableType = "departure" item.icon = (ResourcesCompat.getDrawable(resources, R.drawable.ic_timetable_full, this.theme)) - @Suppress("UNCHECKED_CAST") if (sourceType == SOURCE_TYPE_STOP) - sectionsPagerAdapter?.departures = Departure.createDepartures(stopId!!) as HashMap<String, ArrayList<Departure>> + sectionsPagerAdapter?.departures = Departure.createDepartures(stopSegment!!.stop) else - sectionsPagerAdapter?.departures = favourite!!.allDepartures() as HashMap<String, ArrayList<Departure>> + sectionsPagerAdapter?.departures = favourite!!.allDepartures() sectionsPagerAdapter?.relativeTime = true sectionsPagerAdapter?.notifyDataSetChanged() - scheduleRefresh() } return true } @@ -240,9 +213,16 @@ } override fun onDestroy() { super.onDestroy() - receiver.removeOnVmListener(context as MessageReceiver.OnVmListener) + receiver.removeOnTimetableDownloadListener(context) + if (sourceType == SOURCE_TYPE_STOP) { + receiver.removeOnVmListener(context) + val intent = Intent(this, VmClient::class.java) + intent.putExtra("stop", stopSegment) + intent.action = "remove" + startService(intent) + } else + favourite!!.deregisterOnVm(receiver, context) unregisterReceiver(receiver) - timer.cancel() } class PlaceholderFragment : Fragment() { @@ -254,7 +234,7 @@ val layoutManager = LinearLayoutManager(activity) val departuresList: RecyclerView = rootView.findViewById(R.id.departuresList) departuresList.addItemDecoration(DividerItemDecoration(departuresList.context, layoutManager.orientation)) - val departures = arguments?.getStringArrayList("departures")?.map { Departure.fromString(it) } + val departures = arguments?.getStringArrayList("departures")!!.map { Departure.fromString(it) } departuresList.adapter = DeparturesAdapter(activity as Context, departures, arguments?.get("relativeTime") as Boolean) departuresList.layoutManager = layoutManager @@ -264,17 +244,17 @@ companion object { private const val ARG_SECTION_NUMBER = "section_number" - fun newInstance(sectionNumber: Int, departures: ArrayList<Departure>?, relativeTime: Boolean): + fun newInstance(sectionNumber: Int, departures: List<Departure>, relativeTime: Boolean): PlaceholderFragment { val fragment = PlaceholderFragment() val args = Bundle() args.putInt(ARG_SECTION_NUMBER, sectionNumber) - if (departures != null) { + if (departures.isEmpty()) { val d = ArrayList<String>() departures.mapTo(d) { it.toString() } args.putStringArrayList("departures", d) } else - args.putStringArrayList("departures", null) + args.putStringArrayList("departures", ArrayList<String>()) args.putBoolean("relativeTime", relativeTime) fragment.arguments = args return fragment @@ -282,7 +262,11 @@ } } } - inner class SectionsPagerAdapter(fm: FragmentManager, var departures: HashMap<String, ArrayList<Departure>>?) : FragmentStatePagerAdapter(fm) { + inner class SectionsPagerAdapter(fm: FragmentManager, var departures: Map<AgencyAndId, List<Departure>>) : FragmentStatePagerAdapter(fm) { + + private val modes = departures.keys.sortedBy { + timetable.calendarToMode(AgencyAndId(it.id)).sorted()[0] + } var relativeTime = true @@ -291,15 +275,13 @@ return PagerAdapter.POSITION_NONE } override fun getItem(position: Int): Fragment { - var mode: String? = null - when (position) { - 0 -> mode = Timetable.MODE_WORKDAYS - 1 -> mode = Timetable.MODE_SATURDAYS - 2 -> mode = Timetable.MODE_SUNDAYS - } - return PlaceholderFragment.newInstance(position + 1, departures?.get(mode), relativeTime) + val list = if (departures.isEmpty()) + ArrayList() + else + departures[modes[position]]!! + return PlaceholderFragment.newInstance(position + 1, list, relativeTime) } - override fun getCount() = 3 + override fun getCount() = if (departures.isEmpty()) 1 else modes.size } } diff --git a/app/src/main/java/ml/adamsprogs/bimba/extensions.kt b/app/src/main/java/ml/adamsprogs/bimba/extensions.kt index f3498e7ae51d5074c62ffb8373c67bbc49847d12..678772f07cfc39e9a715cc272674929ecf5cff0e 100644 --- a/app/src/main/java/ml/adamsprogs/bimba/extensions.kt +++ b/app/src/main/java/ml/adamsprogs/bimba/extensions.kt @@ -1,16 +1,7 @@ package ml.adamsprogs.bimba -import ml.adamsprogs.bimba.models.Timetable import java.text.SimpleDateFormat import java.util.* - -internal fun Calendar.getMode(): String { - return when (this.get(Calendar.DAY_OF_WEEK)) { - Calendar.SUNDAY -> Timetable.MODE_SUNDAYS - Calendar.SATURDAY -> Timetable.MODE_SATURDAYS - else -> Timetable.MODE_WORKDAYS - } -} internal fun String.toPascalCase(): String { //check val builder = StringBuilder(this) diff --git a/app/src/main/java/ml/adamsprogs/bimba/gtfs/AgencyAndId.kt b/app/src/main/java/ml/adamsprogs/bimba/gtfs/AgencyAndId.kt new file mode 100644 index 0000000000000000000000000000000000000000..88fba9e0999f624b6522e9f8d306e5c8aa556b86 --- /dev/null +++ b/app/src/main/java/ml/adamsprogs/bimba/gtfs/AgencyAndId.kt @@ -0,0 +1,15 @@ +package ml.adamsprogs.bimba.gtfs + +import java.io.Serializable + +data class AgencyAndId(val id: String):Serializable { + companion object { + fun convertFromString(str: String): AgencyAndId { + return AgencyAndId(str) + } + } + + override fun toString(): String { + return id + } +} \ No newline at end of file diff --git a/app/src/main/java/ml/adamsprogs/bimba/gtfs/Calendar.kt b/app/src/main/java/ml/adamsprogs/bimba/gtfs/Calendar.kt new file mode 100644 index 0000000000000000000000000000000000000000..4f9db75a45aefaf1944c5a6c4c1c00af3a543431 --- /dev/null +++ b/app/src/main/java/ml/adamsprogs/bimba/gtfs/Calendar.kt @@ -0,0 +1,4 @@ +package ml.adamsprogs.bimba.gtfs + +data class Calendar(val monday: Int, val tuesday: Int, val wednesday: Int, val thursday: Int, + val friday: Int, val saturday: Int, val sunday: Int) \ No newline at end of file diff --git a/app/src/main/java/ml/adamsprogs/bimba/gtfs/Route.kt b/app/src/main/java/ml/adamsprogs/bimba/gtfs/Route.kt new file mode 100644 index 0000000000000000000000000000000000000000..ceda3870de13383663d0007bb352599094f1b465 --- /dev/null +++ b/app/src/main/java/ml/adamsprogs/bimba/gtfs/Route.kt @@ -0,0 +1,6 @@ +package ml.adamsprogs.bimba.gtfs + + +data class Route(val id:AgencyAndId, val agency: AgencyAndId, val shortName: String, + val longName: String, val description: String, val type: Int, val colour: Int, + val textColour: Int, val modifications: HashMap<String, String>) \ No newline at end of file diff --git a/app/src/main/java/ml/adamsprogs/bimba/gtfs/Trip.kt b/app/src/main/java/ml/adamsprogs/bimba/gtfs/Trip.kt new file mode 100644 index 0000000000000000000000000000000000000000..6b37b64bbd71f5ce34029d20e1dcefa244495171 --- /dev/null +++ b/app/src/main/java/ml/adamsprogs/bimba/gtfs/Trip.kt @@ -0,0 +1,24 @@ +package ml.adamsprogs.bimba.gtfs + +data class Trip(val routeId: AgencyAndId, val serviceId: AgencyAndId, val id: ID, val headsign: String, val direction: Int, val shapeId: AgencyAndId) { + data class ID(val id: AgencyAndId, val modification: Set<Modification>, val isMain: Boolean) { + data class Modification(val id: AgencyAndId, val stopRange: IntRange?) + } + + val rawId: String + get() { + val builder = StringBuilder(id.id.toString()) + id.modification.forEach { + builder.append("^") + builder.append(it.id) + if (it.stopRange != null) { + builder.append(":") + builder.append(it.stopRange.start) + builder.append(it.stopRange.endInclusive) + } + } + if (id.isMain) + builder.append("+") + return builder.toString() + } +} \ No newline at end of file diff --git a/app/src/main/java/ml/adamsprogs/bimba/models/Departure.kt b/app/src/main/java/ml/adamsprogs/bimba/models/Departure.kt index fe15418697ab681c70a7a5958c0277768286d6c4..425df8f15ccc7fccf78d8e30a5100067a7462fe1 100644 --- a/app/src/main/java/ml/adamsprogs/bimba/models/Departure.kt +++ b/app/src/main/java/ml/adamsprogs/bimba/models/Departure.kt @@ -1,7 +1,7 @@ package ml.adamsprogs.bimba.models import ml.adamsprogs.bimba.rollTime -import org.onebusaway.gtfs.model.AgencyAndId +import ml.adamsprogs.bimba.gtfs.AgencyAndId import java.util.* import kotlin.collections.ArrayList import kotlin.collections.HashMap diff --git a/app/src/main/java/ml/adamsprogs/bimba/models/DeparturesAdapter.kt b/app/src/main/java/ml/adamsprogs/bimba/models/DeparturesAdapter.kt index a105bdc9c8d135042e98fa9011b37be48ac7ab0e..e76c76a5dc1b270d7cbea8e7cb86cc2da2851f05 100644 --- a/app/src/main/java/ml/adamsprogs/bimba/models/DeparturesAdapter.kt +++ b/app/src/main/java/ml/adamsprogs/bimba/models/DeparturesAdapter.kt @@ -15,7 +15,7 @@ import ml.adamsprogs.bimba.Declinator import ml.adamsprogs.bimba.rollTime import java.util.* -class DeparturesAdapter(val context: Context, private val departures: List<Departure>?, private val relativeTime: Boolean) : +class DeparturesAdapter(val context: Context, private val departures: List<Departure>, private val relativeTime: Boolean) : RecyclerView.Adapter<DeparturesAdapter.ViewHolder>() { companion object { @@ -24,21 +24,20 @@ const val VIEW_TYPE_CONTENT: Int = 1 } override fun getItemCount(): Int { - - if (departures == null) + if (departures.isEmpty()) return 1 return departures.size } override fun getItemViewType(position: Int): Int { - return if (departures == null) + return if (departures.isEmpty()) VIEW_TYPE_LOADING else VIEW_TYPE_CONTENT } override fun onBindViewHolder(holder: ViewHolder?, position: Int) { - if (departures == null) { + if (departures.isEmpty()) { return } val departure = departures[position] diff --git a/app/src/main/java/ml/adamsprogs/bimba/models/Favourite.kt b/app/src/main/java/ml/adamsprogs/bimba/models/Favourite.kt index b341c64d7097628561e3d62935bfbd7fd32f8626..db0bd1d7d0464a39473ff0257a1f4f220e781bf2 100644 --- a/app/src/main/java/ml/adamsprogs/bimba/models/Favourite.kt +++ b/app/src/main/java/ml/adamsprogs/bimba/models/Favourite.kt @@ -1,10 +1,12 @@ package ml.adamsprogs.bimba.models +import android.content.Context +import android.content.Intent import android.os.Parcel import android.os.Parcelable -import android.util.Log import ml.adamsprogs.bimba.MessageReceiver -import org.onebusaway.gtfs.model.AgencyAndId +import ml.adamsprogs.bimba.VmClient +import ml.adamsprogs.bimba.gtfs.AgencyAndId import java.util.* import kotlin.collections.ArrayList import kotlin.collections.HashMap @@ -16,14 +18,11 @@ var name: String private set var timetables: HashSet<Plate> private set - private val vmDeparturesMap = HashMap<String, ArrayList<Departure>>() - private var vmDepartures = ArrayList<Departure>() + private var vmDepartures = HashMap<Plate.ID, Set<Departure>>() val timetable = Timetable.getTimetable() - val size: Int - get() = timetables.size - private val requestValidityNumber = HashMap<String, Int>() - private val requestValidity = HashMap<String, Boolean>() + val size + get() = this.timetables.size private val onVmPreparedListeners = HashSet<OnVmPreparedListener>() @@ -61,19 +60,56 @@ dest?.writeString(name) } private fun filterVmDepartures() { - this.vmDepartures - .filter { it.timeTill() < 0 } - .forEach { this.vmDepartures.remove(it) } + this.vmDepartures.forEach { + val newSet = it.value + .filter { it.timeTill() >= 0 }.toSet() + this.vmDepartures[it.key] = newSet + } } fun delete(plate: Plate) { - timetables.remove(timetables.find { it.stop == plate.stop && it.line == plate.line }) + timetables.remove(timetables.find { it.id == plate.id }) } - fun registerOnVm(receiver: MessageReceiver) { + fun registerOnVm(receiver: MessageReceiver, context: Context) { if (!isRegisteredOnVmListener) { receiver.addOnVmListener(this) isRegisteredOnVmListener = true + + val segments = HashMap<AgencyAndId, StopSegment>() + timetables.forEach { + if (segments[it.id.stop] == null) + segments[it.id.stop] = StopSegment(it.id.stop, HashSet()) + segments[it.id.stop]!!.plates = segments[it.id.stop]!!.plates!!.plus(it.id) + } + + segments.forEach { + val intent = Intent(context, VmClient::class.java) + intent.putExtra("stop", it.value) + intent.action = "request" + context.startService(intent) + } + } + } + + fun deregisterOnVm(receiver: MessageReceiver, context: Context) { + if (isRegisteredOnVmListener) { + receiver.removeOnVmListener(this) + isRegisteredOnVmListener = false + + val segments = HashMap<AgencyAndId, StopSegment>() + timetables.forEach { + if (segments[it.id.stop] == null) + segments[it.id.stop] = StopSegment(it.id.stop, HashSet()) + segments[it.id.stop]!!.plates = segments[it.id.stop]!!.plates!!.plus(it.id) + } + + segments.forEach { + val intent = Intent(context, VmClient::class.java) + intent.putExtra("stop", it.value) + intent.action = "remove" + context.startService(intent) + } } } @@ -97,7 +133,10 @@ if (timetables.isEmpty() && vmDepartures.isEmpty()) return null if (vmDepartures.isNotEmpty()) { - return vmDepartures.minBy { it.timeTill() } + return vmDepartures.flatMap { it.value } + .minBy { + it.timeTill() + } } val twoDayDepartures = nowDepartures() @@ -133,47 +172,22 @@ val departures = timetable.getStopDepartures(timetables) as HashMap > if (vmDepartures.isNotEmpty()) { val today = timetable.getServiceForToday() - departures[today] = vmDepartures + departures[today] = vmDepartures.flatMap { it.value } as ArrayList<Departure> } return Departure.createDepartures(departures) } - fun fullTimetable(): Map<AgencyAndId, List<Departure>>? { + fun fullTimetable(): Map<AgencyAndId, List<Departure>> { return timetable.getStopDepartures(timetables) } - override fun onVm(vmDepartures: ArrayList<Departure>?, requester: String, id: String, size: Int) { - Log.i("VM", "onVM fired") - val requesterName = requester.split(";")[0] - val requesterTimetable: String = try { - requester.split(";")[1] - } catch (e: IndexOutOfBoundsException) { - "" - } - - if (!requestValidity.containsKey(id)) { - requestValidity[id] = false - requestValidityNumber[id] = 0 - } - if (vmDepartures != null && requesterName == name) { - vmDeparturesMap[requesterTimetable] = vmDepartures - this.vmDepartures = vmDeparturesMap.flatMap { it.value } as ArrayList<Departure> - requestValidity[id] = true - requestValidityNumber[id] = requestValidityNumber[id]!! + 1 - } else if (requesterName == name) { - requestValidityNumber[id] = requestValidityNumber[id]!! + 1 - } - if (requestValidityNumber[id] == size) { - Log.i("VM", "All onVm’s collected") - for (listener in onVmPreparedListeners) { - listener.onVmPrepared() - } - if (!requestValidity[id]!!) { - this.vmDepartures = ArrayList() - } - requestValidity.remove(id) - requestValidityNumber.remove(id) + override fun onVm(vmDepartures: Set<Departure>?, plateId: Plate.ID) { + if (timetables.any { it.id == plateId }) { + if (vmDepartures == null) + this.vmDepartures.remove(plateId) + else + this.vmDepartures[plateId] = vmDepartures } filterVmDepartures() } diff --git a/app/src/main/java/ml/adamsprogs/bimba/models/FavouriteEditRowAdapter.kt b/app/src/main/java/ml/adamsprogs/bimba/models/FavouriteEditRowAdapter.kt index 8aeaa6ccbd3fa18f982d2b58d851195af8d48ba7..0bdfe6fac3c60ab416514ab4e8c3482cf3cbddd0 100644 --- a/app/src/main/java/ml/adamsprogs/bimba/models/FavouriteEditRowAdapter.kt +++ b/app/src/main/java/ml/adamsprogs/bimba/models/FavouriteEditRowAdapter.kt @@ -17,9 +17,9 @@ override fun onBindViewHolder(holder: ViewHolder?, position: Int) { val timetable = Timetable.getTimetable() val favourites = FavouriteStorage.getFavouriteStorage() - val plate = Plate(favourite.timetables.sortedBy { "${it.line}${it.stop}" }[position].line, - favourite.timetables.sortedBy { "${it.line}${it.stop}" }[position].stop, "",null) - val favouriteElement = "${timetable.getStopName(plate.stop)} ( ${timetable.getStopSymbol(plate.stop)}):\n${timetable.getLineNumber(plate.line)} → ${plate.headsign}" + val id = favourite.timetables.sortedBy { "${it.id.line}${it.id.stop}" }[position].id + val plate = Plate(id,null) + val favouriteElement = "${timetable.getStopName(plate.id.stop)} ( ${timetable.getStopCode(plate.id.stop)}):\n${timetable.getLineNumber(plate.id.line)} → ${plate.id.headsign}" holder?.rowTextView?.text = favouriteElement holder?.splitButton?.setOnClickListener { favourites.detach(favourite.name, plate, favouriteElement) diff --git a/app/src/main/java/ml/adamsprogs/bimba/models/FavouriteStorage.kt b/app/src/main/java/ml/adamsprogs/bimba/models/FavouriteStorage.kt index b79f0eb8a15d27ddf173e8c091c4944b04b67191..a1aa99bf98a5d35ea57fe985c9d62645885644aa 100644 --- a/app/src/main/java/ml/adamsprogs/bimba/models/FavouriteStorage.kt +++ b/app/src/main/java/ml/adamsprogs/bimba/models/FavouriteStorage.kt @@ -5,7 +5,7 @@ import android.content.SharedPreferences import com.google.gson.Gson import com.google.gson.JsonArray import com.google.gson.JsonObject -import org.onebusaway.gtfs.model.AgencyAndId +import ml.adamsprogs.bimba.gtfs.AgencyAndId class FavouriteStorage private constructor(context: Context) : Iterable<Favourite> { @@ -28,7 +28,7 @@ val favourites = HashMap () private val preferences: SharedPreferences = context.getSharedPreferences("ml.adamsprogs.bimba.prefs", Context.MODE_PRIVATE) val favouritesList: List<Favourite> get() { - return favourites.values.toList() + return favourites.values.toList().sortedBy { it.name } } init { @@ -37,9 +37,9 @@ val favouritesMap = Gson().fromJson(favouritesString, JsonObject::class.java) for ((name, jsonTimetables) in favouritesMap.entrySet()) { val timetables = HashSet<Plate>() jsonTimetables.asJsonArray.mapTo(timetables) { - Plate(AgencyAndId.convertFromString(it.asJsonObject["line"].asString), + Plate(Plate.ID(AgencyAndId.convertFromString(it.asJsonObject["line"].asString), AgencyAndId.convertFromString(it.asJsonObject["stop"].asString), - it.asJsonObject["headsign"].asString, null) + it.asJsonObject["headsign"].asString), null) } favourites[name] = Favourite(name, timetables) } @@ -79,9 +79,9 @@ for ((name, favourite) in favourites) { val timetables = JsonArray() for (timetable in favourite.timetables) { val element = JsonObject() - element.addProperty("stop", timetable.stop.toString()) - element.addProperty("line", timetable.line.toString()) - element.addProperty("headsign", timetable.headsign) + element.addProperty("stop", timetable.id.stop.toString()) + element.addProperty("line", timetable.id.line.toString()) + element.addProperty("headsign", timetable.id.headsign) timetables.add(element) } rootObject.add(name, timetables) diff --git a/app/src/main/java/ml/adamsprogs/bimba/models/Plate.kt b/app/src/main/java/ml/adamsprogs/bimba/models/Plate.kt index ff23a07df5c8c03399fc13e61ee3b682497db18d..8eaeca2bed5e0f54c6e8eaac1d7d70e2ea692020 100644 --- a/app/src/main/java/ml/adamsprogs/bimba/models/Plate.kt +++ b/app/src/main/java/ml/adamsprogs/bimba/models/Plate.kt @@ -1,10 +1,11 @@ package ml.adamsprogs.bimba.models -import org.onebusaway.gtfs.model.AgencyAndId +import ml.adamsprogs.bimba.gtfs.AgencyAndId +import java.io.Serializable -data class Plate(val line: AgencyAndId, val stop: AgencyAndId, val headsign: String, val departures: HashMap<AgencyAndId, HashSet<Departure>>?) { +data class Plate(val id: ID, val departures: HashMap<AgencyAndId, HashSet<Departure>>?) { override fun toString(): String { - var result = "$line=$stop=$headsign={" + var result = "${id.line}=${id.stop}=${id.headsign}={" if (departures != null) { for ((service, column) in departures) { result += service.toString() + ":" @@ -36,7 +37,7 @@ departures[service]!!.add(dep) } catch (e: IllegalArgumentException) { } } - return Plate(line, stop, headsign, departures) + return Plate(ID(line, stop, headsign), departures) } fun join(set: Set<Plate>): HashMap<AgencyAndId, ArrayList<Departure>> { @@ -53,5 +54,34 @@ departures[mode]?.sortBy { it.time } } return departures } + } + + data class ID(val line: AgencyAndId, val stop: AgencyAndId, val headsign: String) : Serializable { + companion object { + fun fromString(string: String): ID { + val (line, stop, headsign) = string.split("|") + return ID(AgencyAndId.convertFromString(line), + AgencyAndId.convertFromString(stop), headsign) + } + } + + override fun equals(other: Any?): Boolean { + if (other !is ID) + return false + return line == other.line && stop == other.stop && headsign.toLowerCase() == other.headsign.toLowerCase() + } + + override fun toString(): String { + return "$line|$stop$headsign" + } + + override fun hashCode(): Int { + var result = line.hashCode() + result = 31 * result + stop.hashCode() + result = 31 * result + headsign.hashCode() + return result + } + + constructor(other: Plate.ID) : this(other.line, other.stop, other.headsign) } } \ No newline at end of file diff --git a/app/src/main/java/ml/adamsprogs/bimba/models/StopSegment.kt b/app/src/main/java/ml/adamsprogs/bimba/models/StopSegment.kt new file mode 100644 index 0000000000000000000000000000000000000000..dfd3cbf72ad518ab0eedc9b4d241bec7400026fe --- /dev/null +++ b/app/src/main/java/ml/adamsprogs/bimba/models/StopSegment.kt @@ -0,0 +1,64 @@ +package ml.adamsprogs.bimba.models + +import android.os.Parcel +import android.os.Parcelable +import ml.adamsprogs.bimba.gtfs.AgencyAndId + +data class StopSegment(val stop: AgencyAndId, var plates: Set<Plate.ID>?) : Parcelable { + constructor(parcel: Parcel) : this( + parcel.readSerializable() as AgencyAndId, + parcel.readString().split("|").map { Plate.ID.fromString(it) }.toSet() + ) + + companion object CREATOR : Parcelable.Creator<StopSegment> { + override fun createFromParcel(parcel: Parcel): StopSegment { + return StopSegment(parcel) + } + + override fun newArray(size: Int): Array<StopSegment?> { + return arrayOfNulls(size) + } + } + + fun fillPlates() { + plates = Timetable.getTimetable().getPlatesForStop(stop) + } + + override fun writeToParcel(dest: Parcel?, flags: Int) { + dest?.writeSerializable(stop) + if (plates != null) + dest?.writeString(plates!!.joinToString("|") { it.toString() }) + } + + override fun describeContents(): Int { + return Parcelable.CONTENTS_FILE_DESCRIPTOR + } + + override fun equals(other: Any?): Boolean { + if (other !is StopSegment) + return false + if (this.stop != other.stop) + return false + if (this.plates != null && other.plates == null) + return false + if (this.plates == null && other.plates != null) + return false + if (this.plates == null && other.plates == null) + return true + if (this.plates!!.size != other.plates!!.size) + return false + if (this.plates!!.containsAll(other.plates!!)) + return true + return false + } + + override fun hashCode(): Int { + return super.hashCode() + } + + fun contains(plateId: Plate.ID): Boolean { + if (plates == null) + return false + return plates!!.contains(plateId) + } +} \ No newline at end of file diff --git a/app/src/main/java/ml/adamsprogs/bimba/models/StopSuggestion.kt b/app/src/main/java/ml/adamsprogs/bimba/models/StopSuggestion.kt index b31866db0372b70a2cc463c23da7e0bddfc8717b..1d2a383aa7b762814fe0db07a1f63373aee78389 100644 --- a/app/src/main/java/ml/adamsprogs/bimba/models/StopSuggestion.kt +++ b/app/src/main/java/ml/adamsprogs/bimba/models/StopSuggestion.kt @@ -3,7 +3,7 @@ import android.os.Parcel import android.os.Parcelable import com.arlib.floatingsearchview.suggestions.model.SearchSuggestion -import org.onebusaway.gtfs.model.AgencyAndId +import ml.adamsprogs.bimba.gtfs.AgencyAndId class StopSuggestion(private val directions: HashSet<String>, val id: AgencyAndId) : SearchSuggestion { diff --git a/app/src/main/java/ml/adamsprogs/bimba/models/Timetable.kt b/app/src/main/java/ml/adamsprogs/bimba/models/Timetable.kt index 1333e60a1231feb2fc795974727b8a8e89a01520..fe7d7ed87d72398444b185c28a429d48bf32aa70 100644 --- a/app/src/main/java/ml/adamsprogs/bimba/models/Timetable.kt +++ b/app/src/main/java/ml/adamsprogs/bimba/models/Timetable.kt @@ -1,14 +1,19 @@ package ml.adamsprogs.bimba.models import android.content.Context +import android.database.sqlite.SQLiteDatabase import ml.adamsprogs.bimba.CacheManager +import ml.adamsprogs.bimba.gtfs.AgencyAndId +import ml.adamsprogs.bimba.gtfs.Route +import ml.adamsprogs.bimba.gtfs.Trip +import ml.adamsprogs.bimba.gtfs.Calendar +import ml.adamsprogs.bimba.secondsAfterMidnight import ml.adamsprogs.bimba.toPascalCase import java.io.File -import org.onebusaway.gtfs.impl.GtfsDaoImpl -import org.onebusaway.gtfs.model.* -import org.onebusaway.gtfs.serialization.GtfsReader -import org.onebusaway.gtfs.services.GtfsDao -import java.util.* +import kotlin.collections.ArrayList +import kotlin.collections.HashMap +import kotlin.collections.HashSet +import java.util.Calendar as JCalendar class Timetable private constructor() { companion object { @@ -21,7 +26,7 @@ fun getTimetable(context: Context? = null, force: Boolean = false): Timetable { return if (timetable == null || force) if (context != null) { timetable = Timetable() - timetable!!.store = read(context) as GtfsDaoImpl + timetable!!.store = read(context) timetable!!.cacheManager = CacheManager.getCacheManager(context) timetable as Timetable } else @@ -30,22 +35,18 @@ else timetable as Timetable } - private fun read(context: Context): GtfsDao { - val reader = GtfsReader() - reader.setInputLocation(File(context.filesDir, "timetable.zip")) - val store = GtfsDaoImpl() - reader.entityStore = store - reader.run() - return store + private fun read(context: Context): SQLiteDatabase { + return SQLiteDatabase.openDatabase(File(context.filesDir, "timetable.db").path, + null, SQLiteDatabase.OPEN_READONLY) } } - lateinit var store: GtfsDaoImpl + lateinit var store: SQLiteDatabase private lateinit var cacheManager: CacheManager - private var _stops: ArrayList<StopSuggestion>? = null //todo stops to cache + private var _stops: ArrayList<StopSuggestion>? = null fun refresh(context: Context) { - this.store = read(context) as GtfsDaoImpl + this.store = read(context) cacheManager.recreate(getStopDeparturesByPlates(cacheManager.keys().toSet())) @@ -79,28 +80,50 @@ //stop_id, stop_code from stops val map = HashMap<AgencyAndId, HashSet<String>>() - store.allStopTimes.filter { it.dropOffType == 0 || it.dropOffType == 3 }.forEach { - val trip = it.trip - val line = trip.route.shortName - val headsign = (trip.tripHeadsign).toPascalCase() - val stopId = it.stop.id + val cursor = store.rawQuery("select route_short_name, trip_headsign, stop_id " + + "from stop_times join trips using trip_id join routes using route_id " + + "where drop_off_type = 0 or drop_off_type = 3", null) + + while(cursor.moveToNext()) { + val line = cursor.getString(0) + val headsign = cursor.getString(1).toPascalCase() + val stopId = AgencyAndId(cursor.getString(2)) if (map[stopId] == null) map[stopId] = HashSet() map[stopId]!!.add("$line → $headsign") } + + cursor.close() val stops = map.entries.map { StopSuggestion(it.value, it.key) }.toSet() - - _stops = stops.sortedBy { this.getStopSymbol(it.id) } as ArrayList<StopSuggestion> + _stops = stops.sortedBy { this.getStopCode(it.id) } as ArrayList<StopSuggestion> return _stops!! } - fun getStopName(stopId: AgencyAndId) = store.getStopForId(stopId).name!! + fun getStopName(stopId: AgencyAndId): String { + val cursor = store.rawQuery("select stop_name from stops where stop_id = ?", arrayOf(stopId.id)) + cursor.moveToNext() + val name = cursor.getString(0) + cursor.close() + return name + } - fun getStopSymbol(stopId: AgencyAndId) = store.getStopForId(stopId).code!! + fun getStopCode(stopId: AgencyAndId): String { + val cursor = store.rawQuery("select stop_code from stops where stop_id = ?", arrayOf(stopId.id)) + cursor.moveToNext() + val name = cursor.getString(0) + cursor.close() + return name + } - fun getLineNumber(lineId: AgencyAndId) = store.getRouteForId(lineId).shortName!! + fun getLineNumber(lineId: AgencyAndId): String { + val cursor = store.rawQuery("select route_short_name from routes where route_id = ?", arrayOf(lineId.id)) + cursor.moveToNext() + val name = cursor.getString(0) + cursor.close() + return name + } fun getStopDepartures(stopId: AgencyAndId): Map<AgencyAndId, List<Departure>> { val plates = HashSet<Plate>() @@ -108,8 +131,7 @@ val toGet = HashSet () getTripsForStop(stopId) .map { - it.tripHeadsign - Plate(it.route.id, stopId, it.tripHeadsign, null) + Plate(Plate.ID(it.routeId, stopId, it.headsign), null) } .forEach { if (cacheManager.has(it)) @@ -148,28 +170,42 @@ return plates.map { getStopDeparturesByPlate(it) }.toSet() } private fun getStopDeparturesByPlate(plate: Plate): Plate { - val p = Plate(plate.line, plate.stop, plate.headsign, HashMap()) - store.allStopTimes - .filter { it.stop.id == plate.stop } - .filter { it.trip.route.id == plate.line } - .filter { it.trip.tripHeadsign.toLowerCase() == plate.headsign.toLowerCase() } - .forEach { - val time = it.departureTime - val serviceId = it.trip.serviceId - val mode = calendarToMode(serviceId.id.toInt()) - val lowFloor = it.trip.wheelchairAccessible == 1 - val mod = explainModification(it.trip, it.trip.id.id.split("^")[1], it.stopSequence) + val resultPlate = Plate(Plate.ID(plate.id), HashMap()) + val cursor = store.rawQuery("select departure_time, trip_headsign, route_id, " + + "service_id, wheelchair_accessible, stop_sequence, trip_id, direction_id, shape_id from stop_times join trips using trip_id " + + "where stop_id = ? and route_id = ? and trip_headsign = ?", + arrayOf(plate.id.stop.toString(), plate.id.line.toString(), plate.id.headsign)) // fixme headsign toLower // test if needed + while (cursor.moveToNext()) { + val cal = JCalendar.getInstance() + val (h, m, s) = cursor.getString(0).split(":") + cal.set(JCalendar.HOUR_OF_DAY, h.toInt()) + cal.set(JCalendar.MINUTE, m.toInt()) + cal.set(JCalendar.SECOND, s.toInt()) + val time = cal.secondsAfterMidnight() + val serviceId = AgencyAndId(cursor.getString(3)) + val mode = calendarToMode(serviceId) + val lowFloor = cursor.getInt(4) == 1 + val mod = explainModification(Trip(AgencyAndId(cursor.getString(2)), + serviceId, createTripId(cursor.getString(6)), + cursor.getString(1), cursor.getInt(7), + AgencyAndId(cursor.getString(8))), cursor.getInt(5)) - val dep = Departure(plate.line, mode, time, lowFloor, mod, plate.headsign) - if (p.departures!![serviceId] == null) - p.departures[serviceId] = HashSet() - p.departures[serviceId]!!.add(dep) - } - return p + val dep = Departure(plate.id.line, mode, time, lowFloor, mod, plate.id.headsign) + if (resultPlate.departures!![serviceId] == null) + resultPlate.departures[serviceId] = HashSet() + resultPlate.departures[serviceId]!!.add(dep) + } + cursor.close() + return resultPlate } - fun calendarToMode(serviceId: Int): List<Int> { - val calendar = store.getCalendarForId(serviceId) + fun calendarToMode(serviceId: AgencyAndId): List<Int> { + val cursor = store.rawQuery("select monday, tuesday, wednesday, thursday, friday, " + + "saturday, sunday from calendar where service_id = ?", arrayOf(serviceId.id)) + cursor.moveToNext() + val calendar = Calendar(cursor.getInt(0), cursor.getInt(1), + cursor.getInt(2), cursor.getInt(3), cursor.getInt(4), + cursor.getInt(5), cursor.getInt(6)) val days = ArrayList<Int>() if (calendar.monday == 1) days.add(0) if (calendar.tuesday == 1) days.add(1) @@ -178,81 +214,160 @@ if (calendar.thursday == 1) days.add(3) if (calendar.friday == 1) days.add(4) if (calendar.saturday == 1) days.add(5) if (calendar.sunday == 1) days.add(6) + cursor.close() return days } - private fun explainModification(trip: Trip, modifications: String, stopSequence: Int): List<String> { - val mods = modifications.replace("+", "").split(",") - var definitions = trip.route.desc.split("^") - definitions = definitions.slice(2..definitions.size) - - val definitionsMap = HashMap<String, String>() - - definitions.forEach { - val (key, definition) = it.split(" - ") - definitionsMap[key] = definition - } - + private fun explainModification(trip: Trip, stopSequence: Int): List<String> { + val definitions = getRouteForTrip(trip).modifications val explanations = ArrayList<String>() - mods.forEach { - if (it.contains(":")) { - val (key, start, stop) = it.split(":") - if (stopSequence in start.toInt()..stop.toInt()) - explanations.add(definitionsMap[key]!!) + trip.id.modification.forEach { + if (it.stopRange != null) { + if (stopSequence in it.stopRange) + explanations.add(definitions[it.id.id]!!) } else { - explanations.add(definitionsMap[it]!!) + explanations.add(definitions[it.id.id]!!) } } return explanations } - fun getLinesForStop(stopId: AgencyAndId): Set<AgencyAndId> { - val lines = HashSet<AgencyAndId>() - store.allStopTimes.filter { it.stop.id == stopId }.forEach { lines.add(it.trip.route.id) } - return lines + private fun getRouteForTrip(trip: Trip): Route { + val cursor = store.rawQuery("select route_id, agency_id, route_short_name, " + + "route_long_name route_desc, route_type, route_color, route_text_color " + + "from routes join trips using route_id where trip_id = ?", arrayOf(trip.rawId)) + cursor.moveToNext() + val id = cursor.getString(0) + val agency = cursor.getString(1) + val shortName = cursor.getString(2) + val longName = cursor.getString(3) + val desc = cursor.getString(4) + val type = cursor.getInt(5) + val colour = cursor.getInt(6) + val textColour = cursor.getInt(7) + val (to, from) = desc.split("|") + val toSplit = to.split("^") + val fromSplit = from.split("^") + val description = "${toSplit[0]}|${fromSplit[0]}" + val modifications = HashMap<String, String>() + toSplit.slice(1 until toSplit.size).forEach { + val (k, v) = it.split(" - ") + modifications[k] = v + } + val route = Route(AgencyAndId(id), AgencyAndId(agency), shortName, longName, description, + type, colour, textColour, modifications) + cursor.close() + return route + } + +// fun getLinesForStop(stopId: AgencyAndId): Set<AgencyAndId> { +// val lines = HashSet<AgencyAndId>() +// store.allStopTimes.filter { it.stop.id == stopId }.forEach { lines.add(it.trip.route.id) } +// return lines +// } + + fun getTripsForStop(stopId: AgencyAndId): Set<Trip> { + val trips = HashSet<Trip>() + val cursor = store.rawQuery("select route_id, service_id, trip_id, trip_headsign, " + + "direction_id, shape_id from stop_times join trips using trip_id " + + "where stop_id = ?", arrayOf(stopId.id)) + while (cursor.moveToNext()) { + val routeId = AgencyAndId(cursor.getString(0)) + val serviceId = AgencyAndId(cursor.getString(1)) + val tripId = cursor.getString(2) + val headsign = cursor.getString(3) + val direction = cursor.getInt(4) + val shape = AgencyAndId(cursor.getString(5)) + val trip = Trip(routeId, serviceId, createTripId(tripId), headsign, direction, shape) + trips.add(trip) + } + cursor.close() + return trips } - private fun getTripsForStop(stopId: AgencyAndId): Set<Trip> { - val lines = HashSet<Trip>() - store.allStopTimes.filter { it.stop.id == stopId }.forEach { lines.add(it.trip) } - return lines + private fun createTripId(rawId: String): Trip.ID { + var modification = rawId.split("^")[1] + modification = modification.subSequence(0, modification.length - 1) as String + val isMain = modification[modification.length - 1] == '+' + val modifications = HashSet<Trip.ID.Modification>() + modification.split(",").forEach { + try { + val (id, start, end) = it.split(":") + modifications.add(Trip.ID.Modification(AgencyAndId(id), IntRange(start.toInt(), end.toInt()))) + } catch (e: Exception) { + modifications.add(Trip.ID.Modification(AgencyAndId(it), null)) + } + } + return Trip.ID(AgencyAndId(rawId.split("^")[0]), modifications, isMain) } - fun isEmpty() = store.allFeedInfos.isEmpty() + fun isEmpty(): Boolean { + val cursor = store.rawQuery("select * from feed_info", null) + return try { + cursor.moveToNext() + cursor.close() + true + } catch (e: Exception) { + cursor.close() + false + } + } - fun getValidSince() = store.allFeedInfos.toTypedArray()[0].startDate.asString!! + fun getValidSince(): String { + val cursor = store.rawQuery("select feed_start_date from feed_info", null) + cursor.moveToNext() + val validSince = cursor.getString(0) + cursor.close() + return validSince + } - fun getValidTill() = store.allFeedInfos.toTypedArray()[0].endDate.asString!! + fun getValidTill(): String { + val cursor = store.rawQuery("select feed_end_date from feed_info", null) + cursor.moveToNext() + val validTill = cursor.getString(0) + cursor.close() + return validTill + } fun getServiceForToday(): AgencyAndId { - val today = Calendar.getInstance().get(Calendar.DAY_OF_WEEK) + val today = JCalendar.getInstance().get(JCalendar.DAY_OF_WEEK) return getServiceFor(today) } fun getServiceForTomorrow(): AgencyAndId { - val tomorrow = Calendar.getInstance() - tomorrow.add(Calendar.DAY_OF_MONTH, 1) - val tomorrowDoW = tomorrow.get(Calendar.DAY_OF_WEEK) + val tomorrow = JCalendar.getInstance() + tomorrow.add(JCalendar.DAY_OF_MONTH, 1) + val tomorrowDoW = tomorrow.get(JCalendar.DAY_OF_WEEK) return getServiceFor(tomorrowDoW) } private fun getServiceFor(day: Int): AgencyAndId { - store.allCalendars.forEach { - if (it.monday == 1 && day == Calendar.MONDAY) return it.serviceId - if (it.tuesday == 1 && day == Calendar.TUESDAY) return it.serviceId - if (it.wednesday == 1 && day == Calendar.WEDNESDAY) return it.serviceId - if (it.thursday == 1 && day == Calendar.THURSDAY) return it.serviceId - if (it.friday == 1 && day == Calendar.FRIDAY) return it.serviceId - if (it.saturday == 1 && day == Calendar.SATURDAY) return it.serviceId - if (it.sunday == 1 && day == Calendar.SUNDAY) return it.serviceId - } - throw IllegalArgumentException() + val dow = arrayOf("sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday") + val cursor = store.rawQuery("select service_id from calendar where ? = 1", arrayOf(dow[day - 1])) + cursor.moveToNext() + val service = AgencyAndId(cursor.getString(0)) + cursor.close() + return service + } + + fun getLineForNumber(number: String): AgencyAndId { + val cursor = store.rawQuery("select route_id from routes where route_short_name = ?", arrayOf(number)) + cursor.moveToNext() + val id = AgencyAndId(cursor.getString(0)) + cursor.close() + return id } - fun getLineForNumber(number: String): AgencyAndId? { - return store.allRoutes.find { it.shortName == number }?.id + fun getPlatesForStop(stop: AgencyAndId): Set<Plate.ID> { + val plates = HashSet<Plate.ID>() + val cursor = store.rawQuery("select trip_headsign, route_id from stop_times join trips using trip_id where stop_id = ?", arrayOf(stop.id)) + while (cursor.moveToNext()) { + plates.add(Plate.ID(AgencyAndId(cursor.getString(1)), stop, cursor.getString(0))) + } + cursor.close() + return plates } } diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 71678974fad1cc955d9f7fe97b6050b8bac97e69..f9748c83eefb1dea8903e81d9cb1bba230c976e5 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -59,4 +59,13 @@ "heute zeigen (wenn es Dienstag ist, es wird auf „Arbeitstage“ Karte sein).\n" "Sei sicher, die Nachrichten auf\nhttps://www.ztm.poznan.pl/en\nkonsultieren.\n\n" </string> <string name="refreshing_cache">Cache wird aktualisiert. Es kann einige Zeit dauern…</string> + <string-array name="daysOfWeek"> + <item>Montag</item> + <item>Dienstag</item> + <item>Mittwoch</item> + <item>Donerstag</item> + <item>Freitag</item> + <item>Samstag</item> + <item>Sontag</item> + </string-array> </resources> diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index fbed0de352a859707c197c72559c73bd4e8e0b8c..1a62255e55c9c2b8f0c4f8de2d16e14eec16406f 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -31,7 +31,7 @@ Cancella <string name="done">Pronto</string> <string name="favourite_edit">Modifica il favorito</string> <string name="favourite_name">Il nome del favorito</string> - <string name="edit_favourite_title">Modifica «$1$s»</string> + <string name="edit_favourite_title">Modifica «%1$s»</string> <string name="no_next_departure">Nessuna partenza successiva</string> <string name="action_merge">Unisci</string> <string name="merge_favourites">Unisci le favorite</string> @@ -57,4 +57,13 @@ "(se è martedì, sarà nella scheda «giorni di lavoro»).\n" "Assicurati di consultare le notifiche su\nhttps://www.ztm.poznan.pl/en.\n\n" </string> <string name="refreshing_cache">Cache sta essendo aggiornato. Può richiedere un certo tempo…</string> + <string-array name="daysOfWeek"> + <item>Lunedi</item> + <item>Martedi</item> + <item>Mercoledi</item> + <item>Giovedi</item> + <item>Venerdi</item> + <item>Sabato</item> + <item>Domenica</item> + </string-array> </resources> diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index d846964b159c1c23bbe4786abd035c1c83e49642..5bb49d14d0a9b36e88a4dc7a93ccf23084c070b7 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -59,4 +59,13 @@Zbieranie odjazdów… <string name="valid_since">Ważny od %1$s</string> <string name="valid_till">Ważny do %1$s</string> <string name="refreshing_cache">Odświeżanie pamięci podręcznej. Może chwilę potrwać…</string> + <string-array name="daysOfWeek"> + <item>Poniedziałek</item> + <item>Wtorek</item> + <item>Środa</item> + <item>Czwartek</item> + <item>Piątek</item> + <item>Sobota</item> + <item>Niedziela</item> + </string-array> </resources> \ No newline at end of file diff --git a/research/PDP.js b/research/PDP.js new file mode 100644 index 0000000000000000000000000000000000000000..de93300d8928bfdde2c16db8977576cacea529ab --- /dev/null +++ b/research/PDP.js @@ -0,0 +1 @@ +function draw_clock(){var n,r,t;for(canvas=Raphael("analog",100,100),n=canvas.circle(25,25,23),n.attr({fill:"#F9F9F9",stroke:"#003A7D","stroke-width":"2"}),i=0;i<12;i++){var u=25+Math.round(18*Math.cos(30*i*Math.PI/180)),f=25+Math.round(18*Math.sin(30*i*Math.PI/180)),e=25+Math.round(22*Math.cos(30*i*Math.PI/180)),o=25+Math.round(22*Math.sin(30*i*Math.PI/180));r=canvas.path("M"+u+" "+f+"L"+e+" "+o)}hour_hand=canvas.path("M 25 25 L 25 15");hour_hand.attr({stroke:"#003A7D","stroke-width":2});minute_hand=canvas.path("M 25 25 L 25 10");minute_hand.attr({stroke:"#444444","stroke-width":1});second_hand=canvas.path("M 25 30 L 25 8");second_hand.attr({stroke:"#003A7D","stroke-width":.5});t=canvas.circle(25,25,1);t.attr("fill","#003A7D");update_clock();setInterval("update_clock()",1e3)}function update_clock(){var r=dateTimeFromServer-dateTimeFromClient,u=(new Date).getTime(),t=new Date;t.setTime(u+r);var n=t,f=n.getHours(),i=n.getMinutes(),e=n.getSeconds();hour_hand.rotate(30*f+i/2.5,25,25);minute_hand.rotate(6*i,25,25);second_hand.rotate(6*e,25,25)}function indirectStation(){var i=$(".route ").find(".subRow").length,n=$("#indirect"),r=$("#newIndirect"),u='<div class="row btnRow"><button id="newIndirect" class="k-button k-button-get">'+C_DodajStacjePosrednia+"<\/button><\/div>",t=$("#switchParamsMode").parent();i>0?(n.attr("enable","false").addClass("k-state-disabled"),n.text(C_PrzezStacjePosrednia),t.show(),r||$(".route .container").append(u)):(n.removeAttr("enable").removeClass("k-state-disabled"),n.text(C_DodajStacjePosrednia),$("#newIndirect").parent(".btnRow").remove(),t.hide())}function countChecks(n){var r=n.closest(".layer").find("ul input:checkbox").length,i=n.closest(".layer").find("ul input:checkbox:checked").length,t=n.closest(".multiMenu").find(".num");t.html("");r===i?(t.html(""),t.append("wszyscy")):t.append("<span>wybrano "+i+"<\/span>")}function null2empty(n,t,i){if(!t||t=="")return"";var r=i?i:"";return n+" "+t+" "+r}function minuty2MinGodz(n){n=Math.ceil(n);var t=Math.floor(n/60);return t<10&&(t="0"+t),t+=":",n%60<10&&(t+="0"),t+Math.round(n%60)}function minuty2HHmm(n){var t=Math.floor(n/60),i=n-t*60;return t<10&&(t="0"+t),i<10&&(i="0"+i),t+":"+i}function timeStamp2Tekst(n){return minuty2MinGodz(n.TotalMinutes)}function jsonTime2Time(n,t){return n==""?"":(t=typeof t!="undefined"?t:"yyyy-MM-dd HH:mm",kendo.toString(new Date(parseInt(n.substr(6))),t))}function jsonTime2JsTime(n,t){return n==""?"":(t=typeof t!="undefined"?t:"yyyy-MM-dd HH:mm",new Date(parseInt(n.substr(6))))}function usunPolskieZnaki(n){return n=n.replace(/Ę/g,"E").replace(/ę/g,"e"),n=n.replace(/Ó/g,"O").replace(/o/g,"o"),n=n.replace(/Ą/g,"A").replace(/ą/g,"a"),n=n.replace(/Ś/g,"S").replace(/ś/g,"s"),n=n.replace(/Ł/g,"L").replace(/ł/g,"l"),n=n.replace(/Ż/g,"Z").replace(/ż/g,"z"),n=n.replace(/Ź/g,"Z").replace(/ź/g,"z"),n=n.replace(/Ć/g,"C").replace(/ć/g,"c"),n.replace(/Ń/g,"N").replace(/ń/g,"n")}function generujHashDanych(n){var t="";return t+=n.StacjaPoczatkowaID.toString(),t+=n.LiczbaPrzesiadek.toString(),t+=Date.parse(n.Odjazd),t+=Date.parse(n.Przyjazd),t+n.Pociagi[0].ZamowienieSKRJID.toString()}var dateTimeFromServer,dateTimeFromClient,mouse_is_inside;(function(n,t){function dt(n){var t=n.length,r=i.type(n);return i.isWindow(n)?!1:1===n.nodeType&&t?!0:"array"===r||"function"!==r&&(0===t||"number"==typeof t&&t>0&&t-1 in n)}function kf(n){var t=gt[n]={};return i.each(n.match(s)||[],function(n,i){t[i]=!0}),t}function ir(n,r,u,f){if(i.acceptData(n)){var s,h,c=i.expando,a="string"==typeof r,l=n.nodeType,o=l?i.cache:n,e=l?n[c]:n[c]&&c;if(e&&o[e]&&(f||o[e].data)||!a||u!==t)return e||(l?n[c]=e=b.pop()||i.guid++:e=c),o[e]||(o[e]={},l||(o[e].toJSON=i.noop)),("object"==typeof r||"function"==typeof r)&&(f?o[e]=i.extend(o[e],r):o[e].data=i.extend(o[e].data,r)),s=o[e],f||(s.data||(s.data={}),s=s.data),u!==t&&(s[i.camelCase(r)]=u),a?(h=s[r],null==h&&(h=s[i.camelCase(r)])):h=s,h}}function rr(n,t,r){if(i.acceptData(n)){var o,h,e,s=n.nodeType,u=s?i.cache:n,f=s?n[i.expando]:i.expando;if(u[f]){if(t&&(e=r?u[f]:u[f].data)){for(i.isArray(t)?t=t.concat(i.map(t,i.camelCase)):(t in e)?t=[t]:(t=i.camelCase(t),t=(t in e)?[t]:t.split(" ")),o=0,h=t.length;h>o;o++)delete e[t[o]];if(!(r?ni:i.isEmptyObject)(e))return}(r||(delete u[f].data,ni(u[f])))&&(s?i.cleanData([n],!0):i.support.deleteExpando||u!=u.window?delete u[f]:u[f]=null)}}}function ur(n,r,u){if(u===t&&1===n.nodeType){var f="data-"+r.replace(tr,"-$1").toLowerCase();if(u=n.getAttribute(f),"string"==typeof u){try{u="true"===u?!0:"false"===u?!1:"null"===u?null:+u+""===u?+u:nr.test(u)?i.parseJSON(u):u}catch(e){}i.data(n,r,u)}else u=t}return u}function ni(n){for(var t in n)if(("data"!==t||!i.isEmptyObject(n[t]))&&"toJSON"!==t)return!1;return!0}function ht(){return!0}function d(){return!1}function cr(n,t){do n=n[t];while(n&&1!==n.nodeType);return n}function lr(n,t,r){if(t=t||0,i.isFunction(t))return i.grep(n,function(n,i){var u=!!t.call(n,i,n);return u===r});if(t.nodeType)return i.grep(n,function(n){return n===t===r});if("string"==typeof t){var u=i.grep(n,function(n){return 1===n.nodeType});if(fe.test(t))return i.filter(t,u,!r);t=i.filter(t,u)}return i.grep(n,function(n){return i.inArray(n,t)>=0===r})}function ar(n){var i=vr.split("|"),t=n.createDocumentFragment();if(t.createElement)while(i.length)t.createElement(i.pop());return t}function ye(n,t){return n.getElementsByTagName(t)[0]||n.appendChild(n.ownerDocument.createElement(t))}function dr(n){var t=n.getAttributeNode("type");return n.type=(t&&t.specified)+"/"+n.type,n}function gr(n){var t=le.exec(n.type);return t?n.type=t[1]:n.removeAttribute("type"),n}function si(n,t){for(var u,r=0;null!=(u=n[r]);r++)i._data(u,"globalEval",!t||i._data(t[r],"globalEval"))}function nu(n,t){if(1===t.nodeType&&i.hasData(n)){var u,f,o,s=i._data(n),r=i._data(t,s),e=s.events;if(e){delete r.handle;r.events={};for(u in e)for(f=0,o=e[u].length;o>f;f++)i.event.add(t,u,e[u][f])}r.data&&(r.data=i.extend({},r.data))}}function pe(n,t){var r,f,u;if(1===t.nodeType){if(r=t.nodeName.toLowerCase(),!i.support.noCloneEvent&&t[i.expando]){u=i._data(t);for(f in u.events)i.removeEvent(t,f,u.handle);t.removeAttribute(i.expando)}"script"===r&&t.text!==n.text?(dr(t).text=n.text,gr(t)):"object"===r?(t.parentNode&&(t.outerHTML=n.outerHTML),i.support.html5Clone&&n.innerHTML&&!i.trim(t.innerHTML)&&(t.innerHTML=n.innerHTML)):"input"===r&&ei.test(n.type)?(t.defaultChecked=t.checked=n.checked,t.value!==n.value&&(t.value=n.value)):"option"===r?t.defaultSelected=t.selected=n.defaultSelected:("input"===r||"textarea"===r)&&(t.defaultValue=n.defaultValue)}}function u(n,r){var s,e,h=0,f=typeof n.getElementsByTagName!==o?n.getElementsByTagName(r||"*"):typeof n.querySelectorAll!==o?n.querySelectorAll(r||"*"):t;if(!f)for(f=[],s=n.childNodes||n;null!=(e=s[h]);h++)!r||i.nodeName(e,r)?f.push(e):i.merge(f,u(e,r));return r===t||r&&i.nodeName(n,r)?i.merge([n],f):f}function we(n){ei.test(n.type)&&(n.defaultChecked=n.checked)}function fu(n,t){if(t in n)return t;for(var r=t.charAt(0).toUpperCase()+t.slice(1),u=t,i=uu.length;i--;)if(t=uu[i]+r,t in n)return t;return u}function ut(n,t){return n=t||n,"none"===i.css(n,"display")||!i.contains(n.ownerDocument,n)}function eu(n,t){for(var f,r,o,e=[],u=0,s=n.length;s>u;u++)r=n[u],r.style&&(e[u]=i._data(r,"olddisplay"),f=r.style.display,t?(e[u]||"none"!==f||(r.style.display=""),""===r.style.display&&ut(r)&&(e[u]=i._data(r,"olddisplay",cu(r.nodeName)))):e[u]||(o=ut(r),(f&&"none"!==f||!o)&&i._data(r,"olddisplay",o?f:i.css(r,"display"))));for(u=0;s>u;u++)r=n[u],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?e[u]||"":"none"));return n}function ou(n,t,i){var r=ge.exec(t);return r?Math.max(0,r[1]-(i||0))+(r[2]||"px"):t}function su(n,t,r,u,f){for(var e=r===(u?"border":"content")?4:"width"===t?1:0,o=0;4>e;e+=2)"margin"===r&&(o+=i.css(n,r+p[e],!0,f)),u?("content"===r&&(o-=i.css(n,"padding"+p[e],!0,f)),"margin"!==r&&(o-=i.css(n,"border"+p[e]+"Width",!0,f))):(o+=i.css(n,"padding"+p[e],!0,f),"padding"!==r&&(o+=i.css(n,"border"+p[e]+"Width",!0,f)));return o}function hu(n,t,r){var e=!0,u="width"===t?n.offsetWidth:n.offsetHeight,f=v(n),o=i.support.boxSizing&&"border-box"===i.css(n,"boxSizing",!1,f);if(0>=u||null==u){if(u=y(n,t,f),(0>u||null==u)&&(u=n.style[t]),ct.test(u))return u;e=o&&(i.support.boxSizingReliable||u===n.style[t]);u=parseFloat(u)||0}return u+su(n,t,r||(o?"border":"content"),e,f)+"px"}function cu(n){var u=r,t=iu[n];return t||(t=lu(n,u),"none"!==t&&t||(rt=(rt||i("<iframe frameborder='0' width='0' height='0'/>").css("cssText","display:block !important")).appendTo(u.documentElement),u=(rt[0].contentWindow||rt[0].contentDocument).document,u.write("<!doctype html><html><body>"),u.close(),t=lu(n,u),rt.detach()),iu[n]=t),t}function lu(n,t){var r=i(t.createElement(n)).appendTo(t.body),u=i.css(r[0],"display");return r.remove(),u}function ci(n,t,r,u){var f;if(i.isArray(t))i.each(t,function(t,i){r||ro.test(n)?u(n,i):ci(n+"["+("object"==typeof i?t:"")+"]",i,r,u)});else if(r||"object"!==i.type(t))u(n,t);else for(f in t)ci(n+"["+f+"]",t[f],r,u)}function ku(n){return function(t,r){"string"!=typeof t&&(r=t,t="*");var u,f=0,e=t.toLowerCase().match(s)||[];if(i.isFunction(r))while(u=e[f++])"+"===u[0]?(u=u.slice(1)||"*",(n[u]=n[u]||[]).unshift(r)):(n[u]=n[u]||[]).push(r)}}function du(n,r,u,f){function o(h){var c;return e[h]=!0,i.each(n[h]||[],function(n,i){var h=i(r,u,f);return"string"!=typeof h||s||e[h]?s?!(c=h):t:(r.dataTypes.unshift(h),o(h),!1)}),c}var e={},s=n===vi;return o(r.dataTypes[0])||!e["*"]&&o("*")}function yi(n,r){var f,u,e=i.ajaxSettings.flatOptions||{};for(u in r)r[u]!==t&&((e[u]?n:f||(f={}))[u]=r[u]);return f&&i.extend(!0,n,f),n}function co(n,i,r){var s,o,e,u,h=n.contents,f=n.dataTypes,c=n.responseFields;for(u in c)u in r&&(i[c[u]]=r[u]);while("*"===f[0])f.shift(),o===t&&(o=n.mimeType||i.getResponseHeader("Content-Type"));if(o)for(u in h)if(h[u]&&h[u].test(o)){f.unshift(u);break}if(f[0]in r)e=f[0];else{for(u in r){if(!f[0]||n.converters[u+" "+f[0]]){e=u;break}s||(s=u)}e=e||s}return e?(e!==f[0]&&f.unshift(e),r[e]):t}function lo(n,t){var o,r,i,e,u={},h=0,s=n.dataTypes.slice(),f=s[0];if(n.dataFilter&&(t=n.dataFilter(t,n.dataType)),s[1])for(i in n.converters)u[i.toLowerCase()]=n.converters[i];for(;r=s[++h];)if("*"!==r){if("*"!==f&&f!==r){if(i=u[f+" "+r]||u["* "+r],!i)for(o in u)if(e=o.split(" "),e[1]===r&&(i=u[f+" "+e[0]]||u["* "+e[0]])){i===!0?i=u[o]:u[o]!==!0&&(r=e[0],s.splice(h--,0,r));break}if(i!==!0)if(i&&n.throws)t=i(t);else try{t=i(t)}catch(c){return{state:"parsererror",error:i?c:"No conversion from "+f+" to "+r}}}f=r}return{state:"success",data:t}}function nf(){try{return new n.XMLHttpRequest}catch(t){}}function ao(){try{return new n.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}function tf(){return setTimeout(function(){tt=t}),tt=i.now()}function wo(n,t){i.each(t,function(t,i){for(var u=(ft[t]||[]).concat(ft["*"]),r=0,f=u.length;f>r;r++)if(u[r].call(n,t,i))return})}function rf(n,t,r){var h,e,o=0,l=yt.length,f=i.Deferred().always(function(){delete c.elem}),c=function(){if(e)return!1;for(var s=tt||tf(),t=Math.max(0,u.startTime+u.duration-s),h=t/u.duration||0,i=1-h,r=0,o=u.tweens.length;o>r;r++)u.tweens[r].run(i);return f.notifyWith(n,[u,i,t]),1>i&&o?t:(f.resolveWith(n,[u]),!1)},u=f.promise({elem:n,props:i.extend({},t),opts:i.extend(!0,{specialEasing:{}},r),originalProperties:t,originalOptions:r,startTime:tt||tf(),duration:r.duration,tweens:[],createTween:function(t,r){var f=i.Tween(n,u.opts,t,r,u.opts.specialEasing[t]||u.opts.easing);return u.tweens.push(f),f},stop:function(t){var i=0,r=t?u.tweens.length:0;if(e)return this;for(e=!0;r>i;i++)u.tweens[i].run(1);return t?f.resolveWith(n,[u,t]):f.rejectWith(n,[u,t]),this}}),s=u.props;for(bo(s,u.opts.specialEasing);l>o;o++)if(h=yt[o].call(u,n,s,u.opts))return h;return wo(u,s),i.isFunction(u.opts.start)&&u.opts.start.call(n,u),i.fx.timer(i.extend(c,{elem:n,anim:u,queue:u.opts.queue})),u.progress(u.opts.progress).done(u.opts.done,u.opts.complete).fail(u.opts.fail).always(u.opts.always)}function bo(n,t){var u,f,r,e,o;for(r in n)if(f=i.camelCase(r),e=t[f],u=n[r],i.isArray(u)&&(e=u[1],u=n[r]=u[0]),r!==f&&(n[f]=u,delete n[r]),o=i.cssHooks[f],o&&"expand"in o){u=o.expand(u);delete n[f];for(r in u)r in n||(n[r]=u[r],t[r]=e)}else t[f]=e}function ko(n,t,r){var u,o,w,a,s,v,l,f,b,h=this,e=n.style,y={},p=[],c=n.nodeType&&ut(n);r.queue||(f=i._queueHooks(n,"fx"),null==f.unqueued&&(f.unqueued=0,b=f.empty.fire,f.empty.fire=function(){f.unqueued||b()}),f.unqueued++,h.always(function(){h.always(function(){f.unqueued--;i.queue(n,"fx").length||f.empty.fire()})}));1===n.nodeType&&("height"in t||"width"in t)&&(r.overflow=[e.overflow,e.overflowX,e.overflowY],"inline"===i.css(n,"display")&&"none"===i.css(n,"float")&&(i.support.inlineBlockNeedsLayout&&"inline"!==cu(n.nodeName)?e.zoom=1:e.display="inline-block"));r.overflow&&(e.overflow="hidden",i.support.shrinkWrapBlocks||h.always(function(){e.overflow=r.overflow[0];e.overflowX=r.overflow[1];e.overflowY=r.overflow[2]}));for(o in t)if(a=t[o],vo.exec(a)){if(delete t[o],v=v||"toggle"===a,a===(c?"hide":"show"))continue;p.push(o)}if(w=p.length)for(s=i._data(n,"fxshow")||i._data(n,"fxshow",{}),("hidden"in s)&&(c=s.hidden),v&&(s.hidden=!c),c?i(n).show():h.done(function(){i(n).hide()}),h.done(function(){var t;i._removeData(n,"fxshow");for(t in y)i.style(n,t,y[t])}),o=0;w>o;o++)u=p[o],l=h.createTween(u,c?s[u]:0),y[u]=s[u]||i.style(n,u),u in s||(s[u]=l.start,c&&(l.end=l.start,l.start="width"===u||"height"===u?1:0))}function f(n,t,i,r,u){return new f.prototype.init(n,t,i,r,u)}function pt(n,t){var r,i={height:n},u=0;for(t=t?1:0;4>u;u+=2-t)r=p[u],i["margin"+r]=i["padding"+r]=n;return t&&(i.opacity=i.width=n),i}function uf(n){return i.isWindow(n)?n:9===n.nodeType?n.defaultView||n.parentWindow:!1}var et,wi,o=typeof t,r=n.document,ff=n.location,ef=n.jQuery,of=n.$,ot={},b=[],wt="1.9.1",bi=b.concat,bt=b.push,l=b.slice,ki=b.indexOf,sf=ot.toString,it=ot.hasOwnProperty,kt=wt.trim,i=function(n,t){return new i.fn.init(n,t,wi)},st=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,s=/\S+/g,hf=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,cf=/^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/,di=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,lf=/^[\],:{}\s]*$/,af=/(?:^|:|,)(?:\s*\[)+/g,vf=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,yf=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,pf=/^-ms-/,wf=/-([\da-z])/gi,bf=function(n,t){return t.toUpperCase()},h=function(n){(r.addEventListener||"load"===n.type||"complete"===r.readyState)&&(gi(),i.ready())},gi=function(){r.addEventListener?(r.removeEventListener("DOMContentLoaded",h,!1),n.removeEventListener("load",h,!1)):(r.detachEvent("onreadystatechange",h),n.detachEvent("onload",h))},gt,nr,tr,pi,lt,g,nt,gu,at;i.fn=i.prototype={jquery:wt,constructor:i,init:function(n,u,f){var e,o;if(!n)return this;if("string"==typeof n){if(e="<"===n.charAt(0)&&">"===n.charAt(n.length-1)&&n.length>=3?[null,n,null]:cf.exec(n),!e||!e[1]&&u)return!u||u.jquery?(u||f).find(n):this.constructor(u).find(n);if(e[1]){if(u=u instanceof i?u[0]:u,i.merge(this,i.parseHTML(e[1],u&&u.nodeType?u.ownerDocument||u:r,!0)),di.test(e[1])&&i.isPlainObject(u))for(e in u)i.isFunction(this[e])?this[e](u[e]):this.attr(e,u[e]);return this}if(o=r.getElementById(e[2]),o&&o.parentNode){if(o.id!==e[2])return f.find(n);this.length=1;this[0]=o}return this.context=r,this.selector=n,this}return n.nodeType?(this.context=this[0]=n,this.length=1,this):i.isFunction(n)?f.ready(n):(n.selector!==t&&(this.selector=n.selector,this.context=n.context),i.makeArray(n,this))},selector:"",length:0,size:function(){return this.length},toArray:function(){return l.call(this)},get:function(n){return null==n?this.toArray():0>n?this[this.length+n]:this[n]},pushStack:function(n){var t=i.merge(this.constructor(),n);return t.prevObject=this,t.context=this.context,t},each:function(n,t){return i.each(this,n,t)},ready:function(n){return i.ready.promise().done(n),this},slice:function(){return this.pushStack(l.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(n){var i=this.length,t=+n+(0>n?i:0);return this.pushStack(t>=0&&i>t?[this[t]]:[])},map:function(n){return this.pushStack(i.map(this,function(t,i){return n.call(t,i,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:bt,sort:[].sort,splice:[].splice};i.fn.init.prototype=i.fn;i.extend=i.fn.extend=function(){var u,o,r,e,s,h,n=arguments[0]||{},f=1,l=arguments.length,c=!1;for("boolean"==typeof n&&(c=n,n=arguments[1]||{},f=2),"object"==typeof n||i.isFunction(n)||(n={}),l===f&&(n=this,--f);l>f;f++)if(null!=(s=arguments[f]))for(e in s)u=n[e],r=s[e],n!==r&&(c&&r&&(i.isPlainObject(r)||(o=i.isArray(r)))?(o?(o=!1,h=u&&i.isArray(u)?u:[]):h=u&&i.isPlainObject(u)?u:{},n[e]=i.extend(c,h,r)):r!==t&&(n[e]=r));return n};i.extend({noConflict:function(t){return n.$===i&&(n.$=of),t&&n.jQuery===i&&(n.jQuery=ef),i},isReady:!1,readyWait:1,holdReady:function(n){n?i.readyWait++:i.ready(!0)},ready:function(n){if(n===!0?!--i.readyWait:!i.isReady){if(!r.body)return setTimeout(i.ready);i.isReady=!0;n!==!0&&--i.readyWait>0||(et.resolveWith(r,[i]),i.fn.trigger&&i(r).trigger("ready").off("ready"))}},isFunction:function(n){return"function"===i.type(n)},isArray:Array.isArray||function(n){return"array"===i.type(n)},isWindow:function(n){return null!=n&&n==n.window},isNumeric:function(n){return!isNaN(parseFloat(n))&&isFinite(n)},type:function(n){return null==n?n+"":"object"==typeof n||"function"==typeof n?ot[sf.call(n)]||"object":typeof n},isPlainObject:function(n){if(!n||"object"!==i.type(n)||n.nodeType||i.isWindow(n))return!1;try{if(n.constructor&&!it.call(n,"constructor")&&!it.call(n.constructor.prototype,"isPrototypeOf"))return!1}catch(u){return!1}for(var r in n);return r===t||it.call(n,r)},isEmptyObject:function(n){for(var t in n)return!1;return!0},error:function(n){throw Error(n);},parseHTML:function(n,t,u){if(!n||"string"!=typeof n)return null;"boolean"==typeof t&&(u=t,t=!1);t=t||r;var f=di.exec(n),e=!u&&[];return f?[t.createElement(f[1])]:(f=i.buildFragment([n],t,e),e&&i(e).remove(),i.merge([],f.childNodes))},parseJSON:function(r){return n.JSON&&n.JSON.parse?n.JSON.parse(r):null===r?r:"string"==typeof r&&(r=i.trim(r),r&&lf.test(r.replace(vf,"@").replace(yf,"]").replace(af,"")))?Function("return "+r)():(i.error("Invalid JSON: "+r),t)},parseXML:function(r){var u,f;if(!r||"string"!=typeof r)return null;try{n.DOMParser?(f=new DOMParser,u=f.parseFromString(r,"text/xml")):(u=new ActiveXObject("Microsoft.XMLDOM"),u.async="false",u.loadXML(r))}catch(e){u=t}return u&&u.documentElement&&!u.getElementsByTagName("parsererror").length||i.error("Invalid XML: "+r),u},noop:function(){},globalEval:function(t){t&&i.trim(t)&&(n.execScript||function(t){n.eval.call(n,t)})(t)},camelCase:function(n){return n.replace(pf,"ms-").replace(wf,bf)},nodeName:function(n,t){return n.nodeName&&n.nodeName.toLowerCase()===t.toLowerCase()},each:function(n,t,i){var u,r=0,f=n.length,e=dt(n);if(i){if(e){for(;f>r;r++)if(u=t.apply(n[r],i),u===!1)break}else for(r in n)if(u=t.apply(n[r],i),u===!1)break}else if(e){for(;f>r;r++)if(u=t.call(n[r],r,n[r]),u===!1)break}else for(r in n)if(u=t.call(n[r],r,n[r]),u===!1)break;return n},trim:kt&&!kt.call(" ")?function(n){return null==n?"":kt.call(n)}:function(n){return null==n?"":(n+"").replace(hf,"")},makeArray:function(n,t){var r=t||[];return null!=n&&(dt(Object(n))?i.merge(r,"string"==typeof n?[n]:n):bt.call(r,n)),r},inArray:function(n,t,i){var r;if(t){if(ki)return ki.call(t,n,i);for(r=t.length,i=i?0>i?Math.max(0,r+i):i:0;r>i;i++)if(i in t&&t[i]===n)return i}return-1},merge:function(n,i){var f=i.length,u=n.length,r=0;if("number"==typeof f)for(;f>r;r++)n[u++]=i[r];else while(i[r]!==t)n[u++]=i[r++];return n.length=u,n},grep:function(n,t,i){var u,f=[],r=0,e=n.length;for(i=!!i;e>r;r++)u=!!t(n[r],r),i!==u&&f.push(n[r]);return f},map:function(n,t,i){var u,r=0,e=n.length,o=dt(n),f=[];if(o)for(;e>r;r++)u=t(n[r],r,i),null!=u&&(f[f.length]=u);else for(r in n)u=t(n[r],r,i),null!=u&&(f[f.length]=u);return bi.apply([],f)},guid:1,proxy:function(n,r){var f,u,e;return"string"==typeof r&&(e=n[r],r=n,n=e),i.isFunction(n)?(f=l.call(arguments,2),u=function(){return n.apply(r||this,f.concat(l.call(arguments)))},u.guid=n.guid=n.guid||i.guid++,u):t},access:function(n,r,u,f,e,o,s){var h=0,l=n.length,c=null==u;if("object"===i.type(u)){e=!0;for(h in u)i.access(n,r,h,u[h],!0,o,s)}else if(f!==t&&(e=!0,i.isFunction(f)||(s=!0),c&&(s?(r.call(n,f),r=null):(c=r,r=function(n,t,r){return c.call(i(n),r)})),r))for(;l>h;h++)r(n[h],u,s?f:f.call(n[h],h,r(n[h],u)));return e?n:c?r.call(n):l?r(n[0],u):o},now:function(){return(new Date).getTime()}});i.ready.promise=function(t){if(!et)if(et=i.Deferred(),"complete"===r.readyState)setTimeout(i.ready);else if(r.addEventListener)r.addEventListener("DOMContentLoaded",h,!1),n.addEventListener("load",h,!1);else{r.attachEvent("onreadystatechange",h);n.attachEvent("onload",h);var u=!1;try{u=null==n.frameElement&&r.documentElement}catch(e){}u&&u.doScroll&&function f(){if(!i.isReady){try{u.doScroll("left")}catch(n){return setTimeout(f,50)}gi();i.ready()}}()}return et.promise(t)};i.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(n,t){ot["[object "+t+"]"]=t.toLowerCase()});wi=i(r);gt={};i.Callbacks=function(n){n="string"==typeof n?gt[n]||kf(n):i.extend({},n);var o,f,c,s,e,l,r=[],u=!n.once&&[],a=function(t){for(f=n.memory&&t,c=!0,e=l||0,l=0,s=r.length,o=!0;r&&s>e;e++)if(r[e].apply(t[0],t[1])===!1&&n.stopOnFalse){f=!1;break}o=!1;r&&(u?u.length&&a(u.shift()):f?r=[]:h.disable())},h={add:function(){if(r){var t=r.length;(function u(t){i.each(t,function(t,f){var e=i.type(f);"function"===e?n.unique&&h.has(f)||r.push(f):f&&f.length&&"string"!==e&&u(f)})})(arguments);o?s=r.length:f&&(l=t,a(f))}return this},remove:function(){return r&&i.each(arguments,function(n,t){for(var u;(u=i.inArray(t,r,u))>-1;)r.splice(u,1),o&&(s>=u&&s--,e>=u&&e--)}),this},has:function(n){return n?i.inArray(n,r)>-1:!(!r||!r.length)},empty:function(){return r=[],this},disable:function(){return r=u=f=t,this},disabled:function(){return!r},lock:function(){return u=t,f||h.disable(),this},locked:function(){return!u},fireWith:function(n,t){return t=t||[],t=[n,t.slice?t.slice():t],!r||c&&!u||(o?u.push(t):a(t)),this},fire:function(){return h.fireWith(this,arguments),this},fired:function(){return!!c}};return h};i.extend({Deferred:function(n){var u=[["resolve","done",i.Callbacks("once memory"),"resolved"],["reject","fail",i.Callbacks("once memory"),"rejected"],["notify","progress",i.Callbacks("memory")]],f="pending",r={state:function(){return f},always:function(){return t.done(arguments).fail(arguments),this},then:function(){var n=arguments;return i.Deferred(function(f){i.each(u,function(u,e){var s=e[0],o=i.isFunction(n[u])&&n[u];t[e[1]](function(){var n=o&&o.apply(this,arguments);n&&i.isFunction(n.promise)?n.promise().done(f.resolve).fail(f.reject).progress(f.notify):f[s+"With"](this===r?f.promise():this,o?[n]:arguments)})});n=null}).promise()},promise:function(n){return null!=n?i.extend(n,r):r}},t={};return r.pipe=r.then,i.each(u,function(n,i){var e=i[2],o=i[3];r[i[1]]=e.add;o&&e.add(function(){f=o},u[1^n][2].disable,u[2][2].lock);t[i[0]]=function(){return t[i[0]+"With"](this===t?r:this,arguments),this};t[i[0]+"With"]=e.fireWith}),r.promise(t),n&&n.call(t,t),t},when:function(n){var t=0,u=l.call(arguments),r=u.length,e=1!==r||n&&i.isFunction(n.promise)?r:0,f=1===e?n:i.Deferred(),h=function(n,t,i){return function(r){t[n]=this;i[n]=arguments.length>1?l.call(arguments):r;i===o?f.notifyWith(t,i):--e||f.resolveWith(t,i)}},o,c,s;if(r>1)for(o=Array(r),c=Array(r),s=Array(r);r>t;t++)u[t]&&i.isFunction(u[t].promise)?u[t].promise().done(h(t,s,u)).fail(f.reject).progress(h(t,c,o)):--e;return e||f.resolveWith(s,u),f.promise()}});i.support=function(){var u,s,e,f,h,c,l,a,y,v,t=r.createElement("div");if(t.setAttribute("className","t"),t.innerHTML=" <link/><table><\/table><a href='/a'>a<\/a><input type='checkbox'/>",s=t.getElementsByTagName("*"),e=t.getElementsByTagName("a")[0],!s||!e||!s.length)return{};h=r.createElement("select");l=h.appendChild(r.createElement("option"));f=t.getElementsByTagName("input")[0];e.style.cssText="top:1px;float:left;opacity:.5";u={getSetAttribute:"t"!==t.className,leadingWhitespace:3===t.firstChild.nodeType,tbody:!t.getElementsByTagName("tbody").length,htmlSerialize:!!t.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:"/a"===e.getAttribute("href"),opacity:/^0.5/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:!!f.value,optSelected:l.selected,enctype:!!r.createElement("form").enctype,html5Clone:"<:nav><\/:nav>"!==r.createElement("nav").cloneNode(!0).outerHTML,boxModel:"CSS1Compat"===r.compatMode,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1};f.checked=!0;u.noCloneChecked=f.cloneNode(!0).checked;h.disabled=!0;u.optDisabled=!l.disabled;try{delete t.test}catch(p){u.deleteExpando=!1}f=r.createElement("input");f.setAttribute("value","");u.input=""===f.getAttribute("value");f.value="t";f.setAttribute("type","radio");u.radioValue="t"===f.value;f.setAttribute("checked","t");f.setAttribute("name","t");c=r.createDocumentFragment();c.appendChild(f);u.appendChecked=f.checked;u.checkClone=c.cloneNode(!0).cloneNode(!0).lastChild.checked;t.attachEvent&&(t.attachEvent("onclick",function(){u.noCloneEvent=!1}),t.cloneNode(!0).click());for(v in{submit:!0,change:!0,focusin:!0})t.setAttribute(a="on"+v,"t"),u[v+"Bubbles"]=a in n||t.attributes[a].expando===!1;return t.style.backgroundClip="content-box",t.cloneNode(!0).style.backgroundClip="",u.clearCloneStyle="content-box"===t.style.backgroundClip,i(function(){var e,f,i,h="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",s=r.getElementsByTagName("body")[0];s&&(e=r.createElement("div"),e.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",s.appendChild(e).appendChild(t),t.innerHTML="<table><tr><td><\/td><td>t<\/td><\/tr><\/table>",i=t.getElementsByTagName("td"),i[0].style.cssText="padding:0;margin:0;border:0;display:none",y=0===i[0].offsetHeight,i[0].style.display="",i[1].style.display="none",u.reliableHiddenOffsets=y&&0===i[0].offsetHeight,t.innerHTML="",t.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",u.boxSizing=4===t.offsetWidth,u.doesNotIncludeMarginInBodyOffset=1!==s.offsetTop,n.getComputedStyle&&(u.pixelPosition="1%"!==(n.getComputedStyle(t,null)||{}).top,u.boxSizingReliable="4px"===(n.getComputedStyle(t,null)||{width:"4px"}).width,f=t.appendChild(r.createElement("div")),f.style.cssText=t.style.cssText=h,f.style.marginRight=f.style.width="0",t.style.width="1px",u.reliableMarginRight=!parseFloat((n.getComputedStyle(f,null)||{}).marginRight)),typeof t.style.zoom!==o&&(t.innerHTML="",t.style.cssText=h+"width:1px;padding:1px;display:inline;zoom:1",u.inlineBlockNeedsLayout=3===t.offsetWidth,t.style.display="block",t.innerHTML="<div><\/div>",t.firstChild.style.width="5px",u.shrinkWrapBlocks=3!==t.offsetWidth,u.inlineBlockNeedsLayout&&(s.style.zoom=1)),s.removeChild(e),e=t=i=f=null)}),s=h=c=l=e=f=null,u}();nr=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/;tr=/([A-Z])/g;i.extend({cache:{},expando:"jQuery"+(wt+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(n){return n=n.nodeType?i.cache[n[i.expando]]:n[i.expando],!!n&&!ni(n)},data:function(n,t,i){return ir(n,t,i)},removeData:function(n,t){return rr(n,t)},_data:function(n,t,i){return ir(n,t,i,!0)},_removeData:function(n,t){return rr(n,t,!0)},acceptData:function(n){if(n.nodeType&&1!==n.nodeType&&9!==n.nodeType)return!1;var t=n.nodeName&&i.noData[n.nodeName.toLowerCase()];return!t||t!==!0&&n.getAttribute("classid")===t}});i.fn.extend({data:function(n,r){var e,f,u=this[0],o=0,s=null;if(n===t){if(this.length&&(s=i.data(u),1===u.nodeType&&!i._data(u,"parsedAttrs"))){for(e=u.attributes;e.length>o;o++)f=e[o].name,f.indexOf("data-")||(f=i.camelCase(f.slice(5)),ur(u,f,s[f]));i._data(u,"parsedAttrs",!0)}return s}return"object"==typeof n?this.each(function(){i.data(this,n)}):i.access(this,function(r){return r===t?u?ur(u,n,i.data(u,n)):null:(this.each(function(){i.data(this,n,r)}),t)},null,r,arguments.length>1,null,!0)},removeData:function(n){return this.each(function(){i.removeData(this,n)})}});i.extend({queue:function(n,r,u){var f;return n?(r=(r||"fx")+"queue",f=i._data(n,r),u&&(!f||i.isArray(u)?f=i._data(n,r,i.makeArray(u)):f.push(u)),f||[]):t},dequeue:function(n,t){t=t||"fx";var f=i.queue(n,t),e=f.length,r=f.shift(),u=i._queueHooks(n,t),o=function(){i.dequeue(n,t)};"inprogress"===r&&(r=f.shift(),e--);u.cur=r;r&&("fx"===t&&f.unshift("inprogress"),delete u.stop,r.call(n,o,u));!e&&u&&u.empty.fire()},_queueHooks:function(n,t){var r=t+"queueHooks";return i._data(n,r)||i._data(n,r,{empty:i.Callbacks("once memory").add(function(){i._removeData(n,t+"queue");i._removeData(n,r)})})}});i.fn.extend({queue:function(n,r){var u=2;return"string"!=typeof n&&(r=n,n="fx",u--),u>arguments.length?i.queue(this[0],n):r===t?this:this.each(function(){var t=i.queue(this,n,r);i._queueHooks(this,n);"fx"===n&&"inprogress"!==t[0]&&i.dequeue(this,n)})},dequeue:function(n){return this.each(function(){i.dequeue(this,n)})},delay:function(n,t){return n=i.fx?i.fx.speeds[n]||n:n,t=t||"fx",this.queue(t,function(t,i){var r=setTimeout(t,n);i.stop=function(){clearTimeout(r)}})},clearQueue:function(n){return this.queue(n||"fx",[])},promise:function(n,r){var u,e=1,o=i.Deferred(),f=this,s=this.length,h=function(){--e||o.resolveWith(f,[f])};for("string"!=typeof n&&(r=n,n=t),n=n||"fx";s--;)u=i._data(f[s],n+"queueHooks"),u&&u.empty&&(e++,u.empty.add(h));return h(),o.promise(r)}});var k,fr,ti=/[\t\r\n]/g,df=/\r/g,gf=/^(?:input|select|textarea|button|object)$/i,ne=/^(?:a|area)$/i,er=/^(?:checked|selected|autofocus|autoplay|async|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped)$/i,ii=/^(?:checked|selected)$/i,a=i.support.getSetAttribute,ri=i.support.input;i.fn.extend({attr:function(n,t){return i.access(this,i.attr,n,t,arguments.length>1)},removeAttr:function(n){return this.each(function(){i.removeAttr(this,n)})},prop:function(n,t){return i.access(this,i.prop,n,t,arguments.length>1)},removeProp:function(n){return n=i.propFix[n]||n,this.each(function(){try{this[n]=t;delete this[n]}catch(i){}})},addClass:function(n){var e,t,r,u,o,f=0,h=this.length,c="string"==typeof n&&n;if(i.isFunction(n))return this.each(function(t){i(this).addClass(n.call(this,t,this.className))});if(c)for(e=(n||"").match(s)||[];h>f;f++)if(t=this[f],r=1===t.nodeType&&(t.className?(" "+t.className+" ").replace(ti," "):" ")){for(o=0;u=e[o++];)0>r.indexOf(" "+u+" ")&&(r+=u+" ");t.className=i.trim(r)}return this},removeClass:function(n){var e,t,r,u,o,f=0,h=this.length,c=0===arguments.length||"string"==typeof n&&n;if(i.isFunction(n))return this.each(function(t){i(this).removeClass(n.call(this,t,this.className))});if(c)for(e=(n||"").match(s)||[];h>f;f++)if(t=this[f],r=1===t.nodeType&&(t.className?(" "+t.className+" ").replace(ti," "):"")){for(o=0;u=e[o++];)while(r.indexOf(" "+u+" ")>=0)r=r.replace(" "+u+" "," ");t.className=n?i.trim(r):""}return this},toggleClass:function(n,t){var r=typeof n,u="boolean"==typeof t;return i.isFunction(n)?this.each(function(r){i(this).toggleClass(n.call(this,r,this.className,t),t)}):this.each(function(){if("string"===r)for(var f,c=0,h=i(this),e=t,l=n.match(s)||[];f=l[c++];)e=u?e:!h.hasClass(f),h[e?"addClass":"removeClass"](f);else(r===o||"boolean"===r)&&(this.className&&i._data(this,"__className__",this.className),this.className=this.className||n===!1?"":i._data(this,"__className__")||"")})},hasClass:function(n){for(var i=" "+n+" ",t=0,r=this.length;r>t;t++)if(1===this[t].nodeType&&(" "+this[t].className+" ").replace(ti," ").indexOf(i)>=0)return!0;return!1},val:function(n){var u,r,e,f=this[0];return arguments.length?(e=i.isFunction(n),this.each(function(u){var f,o=i(this);1===this.nodeType&&(f=e?n.call(this,u,o.val()):n,null==f?f="":"number"==typeof f?f+="":i.isArray(f)&&(f=i.map(f,function(n){return null==n?"":n+""})),r=i.valHooks[this.type]||i.valHooks[this.nodeName.toLowerCase()],r&&"set"in r&&r.set(this,f,"value")!==t||(this.value=f))})):f?(r=i.valHooks[f.type]||i.valHooks[f.nodeName.toLowerCase()],r&&"get"in r&&(u=r.get(f,"value"))!==t?u:(u=f.value,"string"==typeof u?u.replace(df,""):null==u?"":u)):void 0}});i.extend({valHooks:{option:{get:function(n){var t=n.attributes.value;return!t||t.specified?n.value:n.text}},select:{get:function(n){for(var e,t,o=n.options,r=n.selectedIndex,u="select-one"===n.type||0>r,s=u?null:[],h=u?r+1:o.length,f=0>r?h:u?r:0;h>f;f++)if(t=o[f],!(!t.selected&&f!==r||(i.support.optDisabled?t.disabled:null!==t.getAttribute("disabled"))||t.parentNode.disabled&&i.nodeName(t.parentNode,"optgroup"))){if(e=i(t).val(),u)return e;s.push(e)}return s},set:function(n,t){var r=i.makeArray(t);return i(n).find("option").each(function(){this.selected=i.inArray(i(this).val(),r)>=0}),r.length||(n.selectedIndex=-1),r}}},attr:function(n,r,u){var f,s,e,h=n.nodeType;if(n&&3!==h&&8!==h&&2!==h)return typeof n.getAttribute===o?i.prop(n,r,u):(s=1!==h||!i.isXMLDoc(n),s&&(r=r.toLowerCase(),f=i.attrHooks[r]||(er.test(r)?fr:k)),u===t?f&&s&&"get"in f&&null!==(e=f.get(n,r))?e:(typeof n.getAttribute!==o&&(e=n.getAttribute(r)),null==e?t:e):null!==u?f&&s&&"set"in f&&(e=f.set(n,u,r))!==t?e:(n.setAttribute(r,u+""),u):(i.removeAttr(n,r),t))},removeAttr:function(n,t){var r,u,e=0,f=t&&t.match(s);if(f&&1===n.nodeType)while(r=f[e++])u=i.propFix[r]||r,er.test(r)?!a&&ii.test(r)?n[i.camelCase("default-"+r)]=n[u]=!1:n[u]=!1:i.attr(n,r,""),n.removeAttribute(a?r:u)},attrHooks:{type:{set:function(n,t){if(!i.support.radioValue&&"radio"===t&&i.nodeName(n,"input")){var r=n.value;return n.setAttribute("type",t),r&&(n.value=r),t}}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(n,r,u){var e,f,s,o=n.nodeType;if(n&&3!==o&&8!==o&&2!==o)return s=1!==o||!i.isXMLDoc(n),s&&(r=i.propFix[r]||r,f=i.propHooks[r]),u!==t?f&&"set"in f&&(e=f.set(n,u,r))!==t?e:n[r]=u:f&&"get"in f&&null!==(e=f.get(n,r))?e:n[r]},propHooks:{tabIndex:{get:function(n){var i=n.getAttributeNode("tabindex");return i&&i.specified?parseInt(i.value,10):gf.test(n.nodeName)||ne.test(n.nodeName)&&n.href?0:t}}}});fr={get:function(n,r){var u=i.prop(n,r),f="boolean"==typeof u&&n.getAttribute(r),e="boolean"==typeof u?ri&&a?null!=f:ii.test(r)?n[i.camelCase("default-"+r)]:!!f:n.getAttributeNode(r);return e&&e.value!==!1?r.toLowerCase():t},set:function(n,t,r){return t===!1?i.removeAttr(n,r):ri&&a||!ii.test(r)?n.setAttribute(!a&&i.propFix[r]||r,r):n[i.camelCase("default-"+r)]=n[r]=!0,r}};ri&&a||(i.attrHooks.value={get:function(n,r){var u=n.getAttributeNode(r);return i.nodeName(n,"input")?n.defaultValue:u&&u.specified?u.value:t},set:function(n,r,u){return i.nodeName(n,"input")?(n.defaultValue=r,t):k&&k.set(n,r,u)}});a||(k=i.valHooks.button={get:function(n,i){var r=n.getAttributeNode(i);return r&&("id"===i||"name"===i||"coords"===i?""!==r.value:r.specified)?r.value:t},set:function(n,i,r){var u=n.getAttributeNode(r);return u||n.setAttributeNode(u=n.ownerDocument.createAttribute(r)),u.value=i+="","value"===r||i===n.getAttribute(r)?i:t}},i.attrHooks.contenteditable={get:k.get,set:function(n,t,i){k.set(n,""===t?!1:t,i)}},i.each(["width","height"],function(n,r){i.attrHooks[r]=i.extend(i.attrHooks[r],{set:function(n,i){return""===i?(n.setAttribute(r,"auto"),i):t}})}));i.support.hrefNormalized||(i.each(["href","src","width","height"],function(n,r){i.attrHooks[r]=i.extend(i.attrHooks[r],{get:function(n){var i=n.getAttribute(r,2);return null==i?t:i}})}),i.each(["href","src"],function(n,t){i.propHooks[t]={get:function(n){return n.getAttribute(t,4)}}}));i.support.style||(i.attrHooks.style={get:function(n){return n.style.cssText||t},set:function(n,t){return n.style.cssText=t+""}});i.support.optSelected||(i.propHooks.selected=i.extend(i.propHooks.selected,{get:function(n){var t=n.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}}));i.support.enctype||(i.propFix.enctype="encoding");i.support.checkOn||i.each(["radio","checkbox"],function(){i.valHooks[this]={get:function(n){return null===n.getAttribute("value")?"on":n.value}}});i.each(["radio","checkbox"],function(){i.valHooks[this]=i.extend(i.valHooks[this],{set:function(n,r){return i.isArray(r)?n.checked=i.inArray(i(n).val(),r)>=0:t}})});var ui=/^(?:input|select|textarea)$/i,te=/^key/,ie=/^(?:mouse|contextmenu)|click/,or=/^(?:focusinfocus|focusoutblur)$/,sr=/^([^.]*)(?:\.(.+)|)$/;i.event={global:{},add:function(n,r,u,f,e){var b,p,k,w,c,l,a,v,h,d,g,y=i._data(n);if(y){for(u.handler&&(w=u,u=w.handler,e=w.selector),u.guid||(u.guid=i.guid++),(p=y.events)||(p=y.events={}),(l=y.handle)||(l=y.handle=function(n){return typeof i===o||n&&i.event.triggered===n.type?t:i.event.dispatch.apply(l.elem,arguments)},l.elem=n),r=(r||"").match(s)||[""],k=r.length;k--;)b=sr.exec(r[k])||[],h=g=b[1],d=(b[2]||"").split(".").sort(),c=i.event.special[h]||{},h=(e?c.delegateType:c.bindType)||h,c=i.event.special[h]||{},a=i.extend({type:h,origType:g,data:f,handler:u,guid:u.guid,selector:e,needsContext:e&&i.expr.match.needsContext.test(e),namespace:d.join(".")},w),(v=p[h])||(v=p[h]=[],v.delegateCount=0,c.setup&&c.setup.call(n,f,d,l)!==!1||(n.addEventListener?n.addEventListener(h,l,!1):n.attachEvent&&n.attachEvent("on"+h,l))),c.add&&(c.add.call(n,a),a.handler.guid||(a.handler.guid=u.guid)),e?v.splice(v.delegateCount++,0,a):v.push(a),i.event.global[h]=!0;n=null}},remove:function(n,t,r,u,f){var y,o,h,b,p,a,c,l,e,w,k,v=i.hasData(n)&&i._data(n);if(v&&(a=v.events)){for(t=(t||"").match(s)||[""],p=t.length;p--;)if(h=sr.exec(t[p])||[],e=k=h[1],w=(h[2]||"").split(".").sort(),e){for(c=i.event.special[e]||{},e=(u?c.delegateType:c.bindType)||e,l=a[e]||[],h=h[2]&&RegExp("(^|\\.)"+w.join("\\.(?:.*\\.|)")+"(\\.|$)"),b=y=l.length;y--;)o=l[y],!f&&k!==o.origType||r&&r.guid!==o.guid||h&&!h.test(o.namespace)||u&&u!==o.selector&&("**"!==u||!o.selector)||(l.splice(y,1),o.selector&&l.delegateCount--,c.remove&&c.remove.call(n,o));b&&!l.length&&(c.teardown&&c.teardown.call(n,w,v.handle)!==!1||i.removeEvent(n,e,v.handle),delete a[e])}else for(e in a)i.event.remove(n,e+t[p],r,u,!0);i.isEmptyObject(a)&&(delete v.handle,i._removeData(n,"events"))}},trigger:function(u,f,e,o){var a,v,h,p,l,c,w,b=[e||r],s=it.call(u,"type")?u.type:u,y=it.call(u,"namespace")?u.namespace.split("."):[];if(h=c=e=e||r,3!==e.nodeType&&8!==e.nodeType&&!or.test(s+i.event.triggered)&&(s.indexOf(".")>=0&&(y=s.split("."),s=y.shift(),y.sort()),v=0>s.indexOf(":")&&"on"+s,u=u[i.expando]?u:new i.Event(s,"object"==typeof u&&u),u.isTrigger=!0,u.namespace=y.join("."),u.namespace_re=u.namespace?RegExp("(^|\\.)"+y.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,u.result=t,u.target||(u.target=e),f=null==f?[u]:i.makeArray(f,[u]),l=i.event.special[s]||{},o||!l.trigger||l.trigger.apply(e,f)!==!1)){if(!o&&!l.noBubble&&!i.isWindow(e)){for(p=l.delegateType||s,or.test(p+s)||(h=h.parentNode);h;h=h.parentNode)b.push(h),c=h;c===(e.ownerDocument||r)&&b.push(c.defaultView||c.parentWindow||n)}for(w=0;(h=b[w++])&&!u.isPropagationStopped();)u.type=w>1?p:l.bindType||s,a=(i._data(h,"events")||{})[u.type]&&i._data(h,"handle"),a&&a.apply(h,f),a=v&&h[v],a&&i.acceptData(h)&&a.apply&&a.apply(h,f)===!1&&u.preventDefault();if(u.type=s,!(o||u.isDefaultPrevented()||l._default&&l._default.apply(e.ownerDocument,f)!==!1||"click"===s&&i.nodeName(e,"a")||!i.acceptData(e)||!v||!e[s]||i.isWindow(e))){c=e[v];c&&(e[v]=null);i.event.triggered=s;try{e[s]()}catch(k){}i.event.triggered=t;c&&(e[v]=c)}return u.result}},dispatch:function(n){n=i.event.fix(n);var o,e,r,u,s,h=[],c=l.call(arguments),a=(i._data(this,"events")||{})[n.type]||[],f=i.event.special[n.type]||{};if(c[0]=n,n.delegateTarget=this,!f.preDispatch||f.preDispatch.call(this,n)!==!1){for(h=i.event.handlers.call(this,n,a),o=0;(u=h[o++])&&!n.isPropagationStopped();)for(n.currentTarget=u.elem,s=0;(r=u.handlers[s++])&&!n.isImmediatePropagationStopped();)(!n.namespace_re||n.namespace_re.test(r.namespace))&&(n.handleObj=r,n.data=r.data,e=((i.event.special[r.origType]||{}).handle||r.handler).apply(u.elem,c),e!==t&&(n.result=e)===!1&&(n.preventDefault(),n.stopPropagation()));return f.postDispatch&&f.postDispatch.call(this,n),n.result}},handlers:function(n,r){var e,o,f,s,c=[],h=r.delegateCount,u=n.target;if(h&&u.nodeType&&(!n.button||"click"!==n.type))for(;u!=this;u=u.parentNode||this)if(1===u.nodeType&&(u.disabled!==!0||"click"!==n.type)){for(f=[],s=0;h>s;s++)o=r[s],e=o.selector+" ",f[e]===t&&(f[e]=o.needsContext?i(e,this).index(u)>=0:i.find(e,this,null,[u]).length),f[e]&&f.push(o);f.length&&c.push({elem:u,handlers:f})}return r.length>h&&c.push({elem:this,handlers:r.slice(h)}),c},fix:function(n){if(n[i.expando])return n;var e,o,s,u=n.type,f=n,t=this.fixHooks[u];for(t||(this.fixHooks[u]=t=ie.test(u)?this.mouseHooks:te.test(u)?this.keyHooks:{}),s=t.props?this.props.concat(t.props):this.props,n=new i.Event(f),e=s.length;e--;)o=s[e],n[o]=f[o];return n.target||(n.target=f.srcElement||r),3===n.target.nodeType&&(n.target=n.target.parentNode),n.metaKey=!!n.metaKey,t.filter?t.filter(n,f):n},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(n,t){return null==n.which&&(n.which=null!=t.charCode?t.charCode:t.keyCode),n}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(n,i){var u,o,f,e=i.button,s=i.fromElement;return null==n.pageX&&null!=i.clientX&&(o=n.target.ownerDocument||r,f=o.documentElement,u=o.body,n.pageX=i.clientX+(f&&f.scrollLeft||u&&u.scrollLeft||0)-(f&&f.clientLeft||u&&u.clientLeft||0),n.pageY=i.clientY+(f&&f.scrollTop||u&&u.scrollTop||0)-(f&&f.clientTop||u&&u.clientTop||0)),!n.relatedTarget&&s&&(n.relatedTarget=s===n.target?i.toElement:s),n.which||e===t||(n.which=1&e?1:2&e?3:4&e?2:0),n}},special:{load:{noBubble:!0},click:{trigger:function(){return i.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):t}},focus:{trigger:function(){if(this!==r.activeElement&&this.focus)try{return this.focus(),!1}catch(n){}},delegateType:"focusin"},blur:{trigger:function(){return this===r.activeElement&&this.blur?(this.blur(),!1):t},delegateType:"focusout"},beforeunload:{postDispatch:function(n){n.result!==t&&(n.originalEvent.returnValue=n.result)}}},simulate:function(n,t,r,u){var f=i.extend(new i.Event,r,{type:n,isSimulated:!0,originalEvent:{}});u?i.event.trigger(f,null,t):i.event.dispatch.call(t,f);f.isDefaultPrevented()&&r.preventDefault()}};i.removeEvent=r.removeEventListener?function(n,t,i){n.removeEventListener&&n.removeEventListener(t,i,!1)}:function(n,t,i){var r="on"+t;n.detachEvent&&(typeof n[r]===o&&(n[r]=null),n.detachEvent(r,i))};i.Event=function(n,r){return this instanceof i.Event?(n&&n.type?(this.originalEvent=n,this.type=n.type,this.isDefaultPrevented=n.defaultPrevented||n.returnValue===!1||n.getPreventDefault&&n.getPreventDefault()?ht:d):this.type=n,r&&i.extend(this,r),this.timeStamp=n&&n.timeStamp||i.now(),this[i.expando]=!0,t):new i.Event(n,r)};i.Event.prototype={isDefaultPrevented:d,isPropagationStopped:d,isImmediatePropagationStopped:d,preventDefault:function(){var n=this.originalEvent;this.isDefaultPrevented=ht;n&&(n.preventDefault?n.preventDefault():n.returnValue=!1)},stopPropagation:function(){var n=this.originalEvent;this.isPropagationStopped=ht;n&&(n.stopPropagation&&n.stopPropagation(),n.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=ht;this.stopPropagation()}};i.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(n,t){i.event.special[n]={delegateType:t,bindType:t,handle:function(n){var u,f=this,r=n.relatedTarget,e=n.handleObj;return(!r||r!==f&&!i.contains(f,r))&&(n.type=e.origType,u=e.handler.apply(this,arguments),n.type=t),u}}});i.support.submitBubbles||(i.event.special.submit={setup:function(){return i.nodeName(this,"form")?!1:(i.event.add(this,"click._submit keypress._submit",function(n){var u=n.target,r=i.nodeName(u,"input")||i.nodeName(u,"button")?u.form:t;r&&!i._data(r,"submitBubbles")&&(i.event.add(r,"submit._submit",function(n){n._submit_bubble=!0}),i._data(r,"submitBubbles",!0))}),t)},postDispatch:function(n){n._submit_bubble&&(delete n._submit_bubble,this.parentNode&&!n.isTrigger&&i.event.simulate("submit",this.parentNode,n,!0))},teardown:function(){return i.nodeName(this,"form")?!1:(i.event.remove(this,"._submit"),t)}});i.support.changeBubbles||(i.event.special.change={setup:function(){return ui.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(i.event.add(this,"propertychange._change",function(n){"checked"===n.originalEvent.propertyName&&(this._just_changed=!0)}),i.event.add(this,"click._change",function(n){this._just_changed&&!n.isTrigger&&(this._just_changed=!1);i.event.simulate("change",this,n,!0)})),!1):(i.event.add(this,"beforeactivate._change",function(n){var t=n.target;ui.test(t.nodeName)&&!i._data(t,"changeBubbles")&&(i.event.add(t,"change._change",function(n){!this.parentNode||n.isSimulated||n.isTrigger||i.event.simulate("change",this.parentNode,n,!0)}),i._data(t,"changeBubbles",!0))}),t)},handle:function(n){var i=n.target;return this!==i||n.isSimulated||n.isTrigger||"radio"!==i.type&&"checkbox"!==i.type?n.handleObj.handler.apply(this,arguments):t},teardown:function(){return i.event.remove(this,"._change"),!ui.test(this.nodeName)}});i.support.focusinBubbles||i.each({focus:"focusin",blur:"focusout"},function(n,t){var u=0,f=function(n){i.event.simulate(t,n.target,i.event.fix(n),!0)};i.event.special[t]={setup:function(){0==u++&&r.addEventListener(n,f,!0)},teardown:function(){0==--u&&r.removeEventListener(n,f,!0)}}});i.fn.extend({on:function(n,r,u,f,e){var s,o;if("object"==typeof n){"string"!=typeof r&&(u=u||r,r=t);for(s in n)this.on(s,r,u,n[s],e);return this}if(null==u&&null==f?(f=r,u=r=t):null==f&&("string"==typeof r?(f=u,u=t):(f=u,u=r,r=t)),f===!1)f=d;else if(!f)return this;return 1===e&&(o=f,f=function(n){return i().off(n),o.apply(this,arguments)},f.guid=o.guid||(o.guid=i.guid++)),this.each(function(){i.event.add(this,n,f,u,r)})},one:function(n,t,i,r){return this.on(n,t,i,r,1)},off:function(n,r,u){var f,e;if(n&&n.preventDefault&&n.handleObj)return f=n.handleObj,i(n.delegateTarget).off(f.namespace?f.origType+"."+f.namespace:f.origType,f.selector,f.handler),this;if("object"==typeof n){for(e in n)this.off(e,r,n[e]);return this}return(r===!1||"function"==typeof r)&&(u=r,r=t),u===!1&&(u=d),this.each(function(){i.event.remove(this,n,u,r)})},bind:function(n,t,i){return this.on(n,null,t,i)},unbind:function(n,t){return this.off(n,null,t)},delegate:function(n,t,i,r){return this.on(t,n,i,r)},undelegate:function(n,t,i){return 1===arguments.length?this.off(n,"**"):this.off(t,n||"**",i)},trigger:function(n,t){return this.each(function(){i.event.trigger(n,t,this)})},triggerHandler:function(n,r){var u=this[0];return u?i.event.trigger(n,r,u,!0):t}}),function(n,t){function ti(n){return tr.test(n+"")}function ii(){var n,t=[];return n=function(i,u){return t.push(i+=" ")>r.cacheLength&&delete n[t.shift()],n[i]=u}}function l(n){return n[f]=!0,n}function b(n){var t=s.createElement("div");try{return n(t)}catch(i){return!1}finally{t=null}}function u(n,t,i,r){var y,u,e,l,p,v,w,h,d,b;if((t?t.ownerDocument||t:k)!==s&&it(t),t=t||s,i=i||[],!n||"string"!=typeof n)return i;if(1!==(l=t.nodeType)&&9!==l)return[];if(!c&&!r){if(y=ir.exec(n))if(e=y[1]){if(9===l){if(u=t.getElementById(e),!u||!u.parentNode)return i;if(u.id===e)return i.push(u),i}else if(t.ownerDocument&&(u=t.ownerDocument.getElementById(e))&&et(t,u)&&u.id===e)return i.push(u),i}else{if(y[2])return ut.apply(i,ft.call(t.getElementsByTagName(n),0)),i;if((e=y[3])&&o.getByClassName&&t.getElementsByClassName)return ut.apply(i,ft.call(t.getElementsByClassName(e),0)),i}if(o.qsa&&!a.test(n)){if(w=!0,h=f,d=t,b=9===l&&n,1===l&&"object"!==t.nodeName.toLowerCase()){for(v=yt(n),(w=t.getAttribute("id"))?h=w.replace(fr,"\\$&"):t.setAttribute("id",h),h="[id='"+h+"'] ",p=v.length;p--;)v[p]=h+pt(v[p]);d=ni.test(n)&&t.parentNode||t;b=v.join(",")}if(b)try{return ut.apply(i,ft.call(d.querySelectorAll(b),0)),i}catch(g){}finally{w||t.removeAttribute("id")}}}return lr(n.replace(at,"$1"),t,i,r)}function yi(n,t){var i=t&&n,r=i&&(~t.sourceIndex||li)-(~n.sourceIndex||li);if(r)return r;if(i)while(i=i.nextSibling)if(i===t)return-1;return n?1:-1}function or(n){return function(t){var i=t.nodeName.toLowerCase();return"input"===i&&t.type===n}}function sr(n){return function(t){var i=t.nodeName.toLowerCase();return("input"===i||"button"===i)&&t.type===n}}function g(n){return l(function(t){return t=+t,l(function(i,r){for(var u,f=n([],i.length,t),e=f.length;e--;)i[u=f[e]]&&(i[u]=!(r[u]=i[u]))})})}function yt(n,t){var e,f,s,o,i,h,c,l=hi[n+" "];if(l)return t?0:l.slice(0);for(i=n,h=[],c=r.preFilter;i;){(!e||(f=ki.exec(i)))&&(f&&(i=i.slice(f[0].length)||i),h.push(s=[]));e=!1;(f=di.exec(i))&&(e=f.shift(),s.push({value:e,type:f[0].replace(at," ")}),i=i.slice(e.length));for(o in r.filter)(f=vt[o].exec(i))&&(!c[o]||(f=c[o](f)))&&(e=f.shift(),s.push({value:e,type:o,matches:f}),i=i.slice(e.length));if(!e)break}return t?i.length:i?u.error(n):hi(n,h).slice(0)}function pt(n){for(var t=0,r=n.length,i="";r>t;t++)i+=n[t].value;return i}function ri(n,t,i){var r=t.dir,u=i&&"parentNode"===r,e=wi++;return t.first?function(t,i,f){while(t=t[r])if(1===t.nodeType||u)return n(t,i,f)}:function(t,i,o){var h,s,c,l=v+" "+e;if(o){while(t=t[r])if((1===t.nodeType||u)&&n(t,i,o))return!0}else while(t=t[r])if(1===t.nodeType||u)if(c=t[f]||(t[f]={}),(s=c[r])&&s[0]===l){if((h=s[1])===!0||h===ot)return h===!0}else if(s=c[r]=[l],s[1]=n(t,i,o)||ot,s[1]===!0)return!0}}function ui(n){return n.length>1?function(t,i,r){for(var u=n.length;u--;)if(!n[u](t,i,r))return!1;return!0}:n[0]}function wt(n,t,i,r,u){for(var e,o=[],f=0,s=n.length,h=null!=t;s>f;f++)(e=n[f])&&(!i||i(e,r,u))&&(o.push(e),h&&t.push(f));return o}function fi(n,t,i,r,u,e){return r&&!r[f]&&(r=fi(r)),u&&!u[f]&&(u=fi(u,e)),l(function(f,e,o,s){var l,c,a,p=[],y=[],w=e.length,b=f||cr(t||"*",o.nodeType?[o]:o,[]),v=!n||!f&&t?b:wt(b,p,n,o,s),h=i?u||(f?n:w||r)?[]:e:v;if(i&&i(v,h,o,s),r)for(l=wt(h,y),r(l,[],o,s),c=l.length;c--;)(a=l[c])&&(h[y[c]]=!(v[y[c]]=a));if(f){if(u||n){if(u){for(l=[],c=h.length;c--;)(a=h[c])&&l.push(v[c]=a);u(null,h=[],l,s)}for(c=h.length;c--;)(a=h[c])&&(l=u?dt.call(f,a):p[c])>-1&&(f[l]=!(e[l]=a))}}else h=wt(h===e?h.splice(w,h.length):h),u?u(null,e,h,s):ut.apply(e,h)})}function ei(n){for(var s,u,i,o=n.length,h=r.relative[n[0].type],c=h||r.relative[" "],t=h?1:0,l=ri(function(n){return n===s},c,!0),a=ri(function(n){return dt.call(s,n)>-1},c,!0),e=[function(n,t,i){return!h&&(i||t!==ht)||((s=t).nodeType?l(n,t,i):a(n,t,i))}];o>t;t++)if(u=r.relative[n[t].type])e=[ri(ui(e),u)];else{if(u=r.filter[n[t].type].apply(null,n[t].matches),u[f]){for(i=++t;o>i;i++)if(r.relative[n[i].type])break;return fi(t>1&&ui(e),t>1&&pt(n.slice(0,t-1)).replace(at,"$1"),u,i>t&&ei(n.slice(t,i)),o>i&&ei(n=n.slice(i)),o>i&&pt(n))}e.push(u)}return ui(e)}function hr(n,t){var f=0,i=t.length>0,e=n.length>0,o=function(o,h,c,l,a){var p,d,b,w=[],k=0,y="0",g=o&&[],nt=null!=a,tt=ht,rt=o||e&&r.find.TAG("*",a&&h.parentNode||h),it=v+=null==tt?1:Math.random()||.1;for(nt&&(ht=h!==s&&h,ot=f);null!=(p=rt[y]);y++){if(e&&p){for(d=0;b=n[d++];)if(b(p,h,c)){l.push(p);break}nt&&(v=it,ot=++f)}i&&((p=!b&&p)&&k--,o&&g.push(p))}if(k+=y,i&&y!==k){for(d=0;b=t[d++];)b(g,w,h,c);if(o){if(k>0)while(y--)g[y]||w[y]||(w[y]=bi.call(l));w=wt(w)}ut.apply(l,w);nt&&!o&&w.length>0&&k+t.length>1&&u.uniqueSort(l)}return nt&&(v=it,ht=tt),g};return i?l(o):o}function cr(n,t,i){for(var r=0,f=t.length;f>r;r++)u(n,t[r],i);return i}function lr(n,t,i,u){var o,f,e,h,l,s=yt(n);if(!u&&1===s.length){if(f=s[0]=s[0].slice(0),f.length>2&&"ID"===(e=f[0]).type&&9===t.nodeType&&!c&&r.relative[f[1].type]){if(t=r.find.ID(e.matches[0].replace(p,w),t)[0],!t)return i;n=n.slice(f.shift().value.length)}for(o=vt.needsContext.test(n)?0:f.length;o--;){if(e=f[o],r.relative[h=e.type])break;if((l=r.find[h])&&(u=l(e.matches[0].replace(p,w),ni.test(f[0].type)&&t.parentNode||t))){if(f.splice(o,1),n=u.length&&pt(f),!n)return ut.apply(i,ft.call(u,0)),i;break}}}return bt(n,s)(u,t,c,i,ni.test(n)),i}function pi(){}var nt,ot,r,st,oi,bt,tt,ht,it,s,h,c,a,rt,ct,et,kt,f="sizzle"+-new Date,k=n.document,o={},v=0,wi=0,si=ii(),hi=ii(),ci=ii(),y=typeof t,li=-2147483648,lt=[],bi=lt.pop,ut=lt.push,ft=lt.slice,dt=lt.indexOf||function(n){for(var t=0,i=this.length;i>t;t++)if(this[t]===n)return t;return-1},e="[\\x20\\t\\r\\n\\f]",d="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",ai=d.replace("w","w#"),vi="\\["+e+"*("+d+")"+e+"*(?:([*^$|!~]?=)"+e+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+ai+")|)|)"+e+"*\\]",gt=":("+d+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+vi.replace(3,8)+")*)|.*)\\)|)",at=RegExp("^"+e+"+|((?:^|[^\\\\])(?:\\\\.)*)"+e+"+$","g"),ki=RegExp("^"+e+"*,"+e+"*"),di=RegExp("^"+e+"*([\\x20\\t\\r\\n\\f>+~])"+e+"*"),gi=RegExp(gt),nr=RegExp("^"+ai+"$"),vt={ID:RegExp("^#("+d+")"),CLASS:RegExp("^\\.("+d+")"),NAME:RegExp("^\\[name=['\"]?("+d+")['\"]?\\]"),TAG:RegExp("^("+d.replace("w","w*")+")"),ATTR:RegExp("^"+vi),PSEUDO:RegExp("^"+gt),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+e+"*(even|odd|(([+-]|)(\\d*)n|)"+e+"*(?:([+-]|)"+e+"*(\\d+)|))"+e+"*\\)|)","i"),needsContext:RegExp("^"+e+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+e+"*((?:-\\d)?\\d*)"+e+"*\\)|)(?=[^-]|$)","i")},ni=/[\x20\t\r\n\f]*[+~]/,tr=/^[^{]+\{\s*\[native code/,ir=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,rr=/^(?:input|select|textarea|button)$/i,ur=/^h\d$/i,fr=/'|\\/g,er=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,p=/\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g,w=function(n,t){var i="0x"+t-65536;return i!==i?t:0>i?String.fromCharCode(i+65536):String.fromCharCode(55296|i>>10,56320|1023&i)};try{ft.call(k.documentElement.childNodes,0)[0].nodeType}catch(ar){ft=function(n){for(var t,i=[];t=this[n++];)i.push(t);return i}}oi=u.isXML=function(n){var t=n&&(n.ownerDocument||n).documentElement;return t?"HTML"!==t.nodeName:!1};it=u.setDocument=function(n){var i=n?n.ownerDocument||n:k;return i!==s&&9===i.nodeType&&i.documentElement?(s=i,h=i.documentElement,c=oi(i),o.tagNameNoComments=b(function(n){return n.appendChild(i.createComment("")),!n.getElementsByTagName("*").length}),o.attributes=b(function(n){n.innerHTML="<select><\/select>";var t=typeof n.lastChild.getAttribute("multiple");return"boolean"!==t&&"string"!==t}),o.getByClassName=b(function(n){return n.innerHTML="<div class='hidden e'><\/div><div class='hidden'><\/div>",n.getElementsByClassName&&n.getElementsByClassName("e").length?(n.lastChild.className="e",2===n.getElementsByClassName("e").length):!1}),o.getByName=b(function(n){n.id=f+0;n.innerHTML="<a name='"+f+"'><\/a><div name='"+f+"'><\/div>";h.insertBefore(n,h.firstChild);var t=i.getElementsByName&&i.getElementsByName(f).length===2+i.getElementsByName(f+0).length;return o.getIdNotName=!i.getElementById(f),h.removeChild(n),t}),r.attrHandle=b(function(n){return n.innerHTML="<a href='#'><\/a>",n.firstChild&&typeof n.firstChild.getAttribute!==y&&"#"===n.firstChild.getAttribute("href")})?{}:{href:function(n){return n.getAttribute("href",2)},type:function(n){return n.getAttribute("type")}},o.getIdNotName?(r.find.ID=function(n,t){if(typeof t.getElementById!==y&&!c){var i=t.getElementById(n);return i&&i.parentNode?[i]:[]}},r.filter.ID=function(n){var t=n.replace(p,w);return function(n){return n.getAttribute("id")===t}}):(r.find.ID=function(n,i){if(typeof i.getElementById!==y&&!c){var r=i.getElementById(n);return r?r.id===n||typeof r.getAttributeNode!==y&&r.getAttributeNode("id").value===n?[r]:t:[]}},r.filter.ID=function(n){var t=n.replace(p,w);return function(n){var i=typeof n.getAttributeNode!==y&&n.getAttributeNode("id");return i&&i.value===t}}),r.find.TAG=o.tagNameNoComments?function(n,i){return typeof i.getElementsByTagName!==y?i.getElementsByTagName(n):t}:function(n,t){var i,r=[],f=0,u=t.getElementsByTagName(n);if("*"===n){while(i=u[f++])1===i.nodeType&&r.push(i);return r}return u},r.find.NAME=o.getByName&&function(n,i){return typeof i.getElementsByName!==y?i.getElementsByName(name):t},r.find.CLASS=o.getByClassName&&function(n,i){return typeof i.getElementsByClassName===y||c?t:i.getElementsByClassName(n)},rt=[],a=[":focus"],(o.qsa=ti(i.querySelectorAll))&&(b(function(n){n.innerHTML="<select><option selected=''><\/option><\/select>";n.querySelectorAll("[selected]").length||a.push("\\["+e+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)");n.querySelectorAll(":checked").length||a.push(":checked")}),b(function(n){n.innerHTML="<input type='hidden' i=''/>";n.querySelectorAll("[i^='']").length&&a.push("[*^$]="+e+"*(?:\"\"|'')");n.querySelectorAll(":enabled").length||a.push(":enabled",":disabled");n.querySelectorAll("*,:x");a.push(",.*:")})),(o.matchesSelector=ti(ct=h.matchesSelector||h.mozMatchesSelector||h.webkitMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&b(function(n){o.disconnectedMatch=ct.call(n,"div");ct.call(n,"[s!='']:x");rt.push("!=",gt)}),a=RegExp(a.join("|")),rt=RegExp(rt.join("|")),et=ti(h.contains)||h.compareDocumentPosition?function(n,t){var r=9===n.nodeType?n.documentElement:n,i=t&&t.parentNode;return n===i||!(!i||1!==i.nodeType||!(r.contains?r.contains(i):n.compareDocumentPosition&&16&n.compareDocumentPosition(i)))}:function(n,t){if(t)while(t=t.parentNode)if(t===n)return!0;return!1},kt=h.compareDocumentPosition?function(n,t){var r;return n===t?(tt=!0,0):(r=t.compareDocumentPosition&&n.compareDocumentPosition&&n.compareDocumentPosition(t))?1&r||n.parentNode&&11===n.parentNode.nodeType?n===i||et(k,n)?-1:t===i||et(k,t)?1:0:4&r?-1:1:n.compareDocumentPosition?-1:1}:function(n,t){var r,u=0,o=n.parentNode,s=t.parentNode,f=[n],e=[t];if(n===t)return tt=!0,0;if(!o||!s)return n===i?-1:t===i?1:o?-1:s?1:0;if(o===s)return yi(n,t);for(r=n;r=r.parentNode;)f.unshift(r);for(r=t;r=r.parentNode;)e.unshift(r);while(f[u]===e[u])u++;return u?yi(f[u],e[u]):f[u]===k?-1:e[u]===k?1:0},tt=!1,[0,0].sort(kt),o.detectDuplicates=tt,s):s};u.matches=function(n,t){return u(n,null,null,t)};u.matchesSelector=function(n,t){if((n.ownerDocument||n)!==s&&it(n),t=t.replace(er,"='$1']"),!(!o.matchesSelector||c||rt&&rt.test(t)||a.test(t)))try{var i=ct.call(n,t);if(i||o.disconnectedMatch||n.document&&11!==n.document.nodeType)return i}catch(r){}return u(t,s,null,[n]).length>0};u.contains=function(n,t){return(n.ownerDocument||n)!==s&&it(n),et(n,t)};u.attr=function(n,t){var i;return(n.ownerDocument||n)!==s&&it(n),c||(t=t.toLowerCase()),(i=r.attrHandle[t])?i(n):c||o.attributes?n.getAttribute(t):((i=n.getAttributeNode(t))||n.getAttribute(t))&&n[t]===!0?t:i&&i.specified?i.value:null};u.error=function(n){throw Error("Syntax error, unrecognized expression: "+n);};u.uniqueSort=function(n){var r,u=[],t=1,i=0;if(tt=!o.detectDuplicates,n.sort(kt),tt){for(;r=n[t];t++)r===n[t-1]&&(i=u.push(t));while(i--)n.splice(u[i],1)}return n};st=u.getText=function(n){var r,i="",u=0,t=n.nodeType;if(t){if(1===t||9===t||11===t){if("string"==typeof n.textContent)return n.textContent;for(n=n.firstChild;n;n=n.nextSibling)i+=st(n)}else if(3===t||4===t)return n.nodeValue}else for(;r=n[u];u++)i+=st(r);return i};r=u.selectors={cacheLength:50,createPseudo:l,match:vt,find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(n){return n[1]=n[1].replace(p,w),n[3]=(n[4]||n[5]||"").replace(p,w),"~="===n[2]&&(n[3]=" "+n[3]+" "),n.slice(0,4)},CHILD:function(n){return n[1]=n[1].toLowerCase(),"nth"===n[1].slice(0,3)?(n[3]||u.error(n[0]),n[4]=+(n[4]?n[5]+(n[6]||1):2*("even"===n[3]||"odd"===n[3])),n[5]=+(n[7]+n[8]||"odd"===n[3])):n[3]&&u.error(n[0]),n},PSEUDO:function(n){var i,t=!n[5]&&n[2];return vt.CHILD.test(n[0])?null:(n[4]?n[2]=n[4]:t&&gi.test(t)&&(i=yt(t,!0))&&(i=t.indexOf(")",t.length-i)-t.length)&&(n[0]=n[0].slice(0,i),n[2]=t.slice(0,i)),n.slice(0,3))}},filter:{TAG:function(n){return"*"===n?function(){return!0}:(n=n.replace(p,w).toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===n})},CLASS:function(n){var t=si[n+" "];return t||(t=RegExp("(^|"+e+")"+n+"("+e+"|$)"))&&si(n,function(n){return t.test(n.className||typeof n.getAttribute!==y&&n.getAttribute("class")||"")})},ATTR:function(n,t,i){return function(r){var f=u.attr(r,n);return null==f?"!="===t:t?(f+="","="===t?f===i:"!="===t?f!==i:"^="===t?i&&0===f.indexOf(i):"*="===t?i&&f.indexOf(i)>-1:"$="===t?i&&f.slice(-i.length)===i:"~="===t?(" "+f+" ").indexOf(i)>-1:"|="===t?f===i||f.slice(0,i.length+1)===i+"-":!1):!0}},CHILD:function(n,t,i,r,u){var s="nth"!==n.slice(0,3),o="last"!==n.slice(-4),e="of-type"===t;return 1===r&&0===u?function(n){return!!n.parentNode}:function(t,i,h){var a,k,c,l,y,w,b=s!==o?"nextSibling":"previousSibling",p=t.parentNode,g=e&&t.nodeName.toLowerCase(),d=!h&&!e;if(p){if(s){while(b){for(c=t;c=c[b];)if(e?c.nodeName.toLowerCase()===g:1===c.nodeType)return!1;w=b="only"===n&&!w&&"nextSibling"}return!0}if(w=[o?p.firstChild:p.lastChild],o&&d){for(k=p[f]||(p[f]={}),a=k[n]||[],y=a[0]===v&&a[1],l=a[0]===v&&a[2],c=y&&p.childNodes[y];c=++y&&c&&c[b]||(l=y=0)||w.pop();)if(1===c.nodeType&&++l&&c===t){k[n]=[v,y,l];break}}else if(d&&(a=(t[f]||(t[f]={}))[n])&&a[0]===v)l=a[1];else while(c=++y&&c&&c[b]||(l=y=0)||w.pop())if((e?c.nodeName.toLowerCase()===g:1===c.nodeType)&&++l&&(d&&((c[f]||(c[f]={}))[n]=[v,l]),c===t))break;return l-=u,l===r||0==l%r&&l/r>=0}}},PSEUDO:function(n,t){var e,i=r.pseudos[n]||r.setFilters[n.toLowerCase()]||u.error("unsupported pseudo: "+n);return i[f]?i(t):i.length>1?(e=[n,n,"",t],r.setFilters.hasOwnProperty(n.toLowerCase())?l(function(n,r){for(var u,f=i(n,t),e=f.length;e--;)u=dt.call(n,f[e]),n[u]=!(r[u]=f[e])}):function(n){return i(n,0,e)}):i}},pseudos:{not:l(function(n){var i=[],r=[],t=bt(n.replace(at,"$1"));return t[f]?l(function(n,i,r,u){for(var e,o=t(n,null,u,[]),f=n.length;f--;)(e=o[f])&&(n[f]=!(i[f]=e))}):function(n,u,f){return i[0]=n,t(i,null,f,r),!r.pop()}}),has:l(function(n){return function(t){return u(n,t).length>0}}),contains:l(function(n){return function(t){return(t.textContent||t.innerText||st(t)).indexOf(n)>-1}}),lang:l(function(n){return nr.test(n||"")||u.error("unsupported lang: "+n),n=n.replace(p,w).toLowerCase(),function(t){var i;do if(i=c?t.getAttribute("xml:lang")||t.getAttribute("lang"):t.lang)return i=i.toLowerCase(),i===n||0===i.indexOf(n+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var i=n.location&&n.location.hash;return i&&i.slice(1)===t.id},root:function(n){return n===h},focus:function(n){return n===s.activeElement&&(!s.hasFocus||s.hasFocus())&&!!(n.type||n.href||~n.tabIndex)},enabled:function(n){return n.disabled===!1},disabled:function(n){return n.disabled===!0},checked:function(n){var t=n.nodeName.toLowerCase();return"input"===t&&!!n.checked||"option"===t&&!!n.selected},selected:function(n){return n.parentNode&&n.parentNode.selectedIndex,n.selected===!0},empty:function(n){for(n=n.firstChild;n;n=n.nextSibling)if(n.nodeName>"@"||3===n.nodeType||4===n.nodeType)return!1;return!0},parent:function(n){return!r.pseudos.empty(n)},header:function(n){return ur.test(n.nodeName)},input:function(n){return rr.test(n.nodeName)},button:function(n){var t=n.nodeName.toLowerCase();return"input"===t&&"button"===n.type||"button"===t},text:function(n){var t;return"input"===n.nodeName.toLowerCase()&&"text"===n.type&&(null==(t=n.getAttribute("type"))||t.toLowerCase()===n.type)},first:g(function(){return[0]}),last:g(function(n,t){return[t-1]}),eq:g(function(n,t,i){return[0>i?i+t:i]}),even:g(function(n,t){for(var i=0;t>i;i+=2)n.push(i);return n}),odd:g(function(n,t){for(var i=1;t>i;i+=2)n.push(i);return n}),lt:g(function(n,t,i){for(var r=0>i?i+t:i;--r>=0;)n.push(r);return n}),gt:g(function(n,t,i){for(var r=0>i?i+t:i;t>++r;)n.push(r);return n})}};for(nt in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})r.pseudos[nt]=or(nt);for(nt in{submit:!0,reset:!0})r.pseudos[nt]=sr(nt);bt=u.compile=function(n,t){var r,u=[],e=[],i=ci[n+" "];if(!i){for(t||(t=yt(n)),r=t.length;r--;)i=ei(t[r]),i[f]?u.push(i):e.push(i);i=ci(n,hr(e,u))}return i};r.pseudos.nth=r.pseudos.eq;r.filters=pi.prototype=r.pseudos;r.setFilters=new pi;it();u.attr=i.attr;i.find=u;i.expr=u.selectors;i.expr[":"]=i.expr.pseudos;i.unique=u.uniqueSort;i.text=u.getText;i.isXMLDoc=u.isXML;i.contains=u.contains}(n);var re=/Until$/,ue=/^(?:parents|prev(?:Until|All))/,fe=/^.[^:#\[\.,]*$/,hr=i.expr.match.needsContext,ee={children:!0,contents:!0,next:!0,prev:!0};i.fn.extend({find:function(n){var t,r,f,u=this.length;if("string"!=typeof n)return f=this,this.pushStack(i(n).filter(function(){for(t=0;u>t;t++)if(i.contains(f[t],this))return!0}));for(r=[],t=0;u>t;t++)i.find(n,this[t],r);return r=this.pushStack(u>1?i.unique(r):r),r.selector=(this.selector?this.selector+" ":"")+n,r},has:function(n){var t,r=i(n,this),u=r.length;return this.filter(function(){for(t=0;u>t;t++)if(i.contains(this,r[t]))return!0})},not:function(n){return this.pushStack(lr(this,n,!1))},filter:function(n){return this.pushStack(lr(this,n,!0))},is:function(n){return!!n&&("string"==typeof n?hr.test(n)?i(n,this.context).index(this[0])>=0:i.filter(n,this).length>0:this.filter(n).length>0)},closest:function(n,t){for(var r,f=0,o=this.length,u=[],e=hr.test(n)||"string"!=typeof n?i(n,t||this.context):0;o>f;f++)for(r=this[f];r&&r.ownerDocument&&r!==t&&11!==r.nodeType;){if(e?e.index(r)>-1:i.find.matchesSelector(r,n)){u.push(r);break}r=r.parentNode}return this.pushStack(u.length>1?i.unique(u):u)},index:function(n){return n?"string"==typeof n?i.inArray(this[0],i(n)):i.inArray(n.jquery?n[0]:n,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(n,t){var r="string"==typeof n?i(n,t):i.makeArray(n&&n.nodeType?[n]:n),u=i.merge(this.get(),r);return this.pushStack(i.unique(u))},addBack:function(n){return this.add(null==n?this.prevObject:this.prevObject.filter(n))}});i.fn.andSelf=i.fn.addBack;i.each({parent:function(n){var t=n.parentNode;return t&&11!==t.nodeType?t:null},parents:function(n){return i.dir(n,"parentNode")},parentsUntil:function(n,t,r){return i.dir(n,"parentNode",r)},next:function(n){return cr(n,"nextSibling")},prev:function(n){return cr(n,"previousSibling")},nextAll:function(n){return i.dir(n,"nextSibling")},prevAll:function(n){return i.dir(n,"previousSibling")},nextUntil:function(n,t,r){return i.dir(n,"nextSibling",r)},prevUntil:function(n,t,r){return i.dir(n,"previousSibling",r)},siblings:function(n){return i.sibling((n.parentNode||{}).firstChild,n)},children:function(n){return i.sibling(n.firstChild)},contents:function(n){return i.nodeName(n,"iframe")?n.contentDocument||n.contentWindow.document:i.merge([],n.childNodes)}},function(n,t){i.fn[n]=function(r,u){var f=i.map(this,t,r);return re.test(n)||(u=r),u&&"string"==typeof u&&(f=i.filter(u,f)),f=this.length>1&&!ee[n]?i.unique(f):f,this.length>1&&ue.test(n)&&(f=f.reverse()),this.pushStack(f)}});i.extend({filter:function(n,t,r){return r&&(n=":not("+n+")"),1===t.length?i.find.matchesSelector(t[0],n)?[t[0]]:[]:i.find.matches(n,t)},dir:function(n,r,u){for(var e=[],f=n[r];f&&9!==f.nodeType&&(u===t||1!==f.nodeType||!i(f).is(u));)1===f.nodeType&&e.push(f),f=f[r];return e},sibling:function(n,t){for(var i=[];n;n=n.nextSibling)1===n.nodeType&&n!==t&&i.push(n);return i}});var vr="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",oe=/ jQuery\d+="(?:null|\d+)"/g,yr=RegExp("<(?:"+vr+")[\\s/>]","i"),fi=/^\s+/,pr=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,wr=/<([\w:]+)/,br=/<tbody/i,se=/<|&#?\w+;/,he=/<(?:script|style|link)/i,ei=/^(?:checkbox|radio)$/i,ce=/checked\s*(?:[^=]|=\s*.checked.)/i,kr=/^$|\/(?:java|ecma)script/i,le=/^true\/(.*)/,ae=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,e={option:[1,"<select multiple='multiple'>","<\/select>"],legend:[1,"<fieldset>","<\/fieldset>"],area:[1,"<map>","<\/map>"],param:[1,"<object>","<\/object>"],thead:[1,"<table>","<\/table>"],tr:[2,"<table><tbody>","<\/tbody><\/table>"],col:[2,"<table><tbody><\/tbody><colgroup>","<\/colgroup><\/table>"],td:[3,"<table><tbody><tr>","<\/tr><\/tbody><\/table>"],_default:i.support.htmlSerialize?[0,"",""]:[1,"X<div>","<\/div>"]},ve=ar(r),oi=ve.appendChild(r.createElement("div"));e.optgroup=e.option;e.tbody=e.tfoot=e.colgroup=e.caption=e.thead;e.th=e.td;i.fn.extend({text:function(n){return i.access(this,function(n){return n===t?i.text(this):this.empty().append((this[0]&&this[0].ownerDocument||r).createTextNode(n))},null,n,arguments.length)},wrapAll:function(n){if(i.isFunction(n))return this.each(function(t){i(this).wrapAll(n.call(this,t))});if(this[0]){var t=i(n,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]);t.map(function(){for(var n=this;n.firstChild&&1===n.firstChild.nodeType;)n=n.firstChild;return n}).append(this)}return this},wrapInner:function(n){return i.isFunction(n)?this.each(function(t){i(this).wrapInner(n.call(this,t))}):this.each(function(){var t=i(this),r=t.contents();r.length?r.wrapAll(n):t.append(n)})},wrap:function(n){var t=i.isFunction(n);return this.each(function(r){i(this).wrapAll(t?n.call(this,r):n)})},unwrap:function(){return this.parent().each(function(){i.nodeName(this,"body")||i(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(n){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&this.appendChild(n)})},prepend:function(){return this.domManip(arguments,!0,function(n){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&this.insertBefore(n,this.firstChild)})},before:function(){return this.domManip(arguments,!1,function(n){this.parentNode&&this.parentNode.insertBefore(n,this)})},after:function(){return this.domManip(arguments,!1,function(n){this.parentNode&&this.parentNode.insertBefore(n,this.nextSibling)})},remove:function(n,t){for(var r,f=0;null!=(r=this[f]);f++)(!n||i.filter(n,[r]).length>0)&&(t||1!==r.nodeType||i.cleanData(u(r)),r.parentNode&&(t&&i.contains(r.ownerDocument,r)&&si(u(r,"script")),r.parentNode.removeChild(r)));return this},empty:function(){for(var n,t=0;null!=(n=this[t]);t++){for(1===n.nodeType&&i.cleanData(u(n,!1));n.firstChild;)n.removeChild(n.firstChild);n.options&&i.nodeName(n,"select")&&(n.options.length=0)}return this},clone:function(n,t){return n=null==n?!1:n,t=null==t?n:t,this.map(function(){return i.clone(this,n,t)})},html:function(n){return i.access(this,function(n){var r=this[0]||{},f=0,o=this.length;if(n===t)return 1===r.nodeType?r.innerHTML.replace(oe,""):t;if(!("string"!=typeof n||he.test(n)||!i.support.htmlSerialize&&yr.test(n)||!i.support.leadingWhitespace&&fi.test(n)||e[(wr.exec(n)||["",""])[1].toLowerCase()])){n=n.replace(pr,"<$1><\/$2>");try{for(;o>f;f++)r=this[f]||{},1===r.nodeType&&(i.cleanData(u(r,!1)),r.innerHTML=n);r=0}catch(s){}}r&&this.empty().append(n)},null,n,arguments.length)},replaceWith:function(n){var t=i.isFunction(n);return t||"string"==typeof n||(n=i(n).not(this).detach()),this.domManip([n],!0,function(n){var r=this.nextSibling,t=this.parentNode;t&&(i(this).remove(),t.insertBefore(n,r))})},detach:function(n){return this.remove(n,!0)},domManip:function(n,r,f){n=bi.apply([],n);var c,e,l,s,y,h,o=0,a=this.length,w=this,b=a-1,v=n[0],p=i.isFunction(v);if(p||!(1>=a||"string"!=typeof v||i.support.checkClone)&&ce.test(v))return this.each(function(i){var u=w.eq(i);p&&(n[0]=v.call(this,i,r?u.html():t));u.domManip(n,r,f)});if(a&&(h=i.buildFragment(n,this[0].ownerDocument,!1,this),c=h.firstChild,1===h.childNodes.length&&(h=c),c)){for(r=r&&i.nodeName(c,"tr"),s=i.map(u(h,"script"),dr),l=s.length;a>o;o++)e=h,o!==b&&(e=i.clone(e,!0,!0),l&&i.merge(s,u(e,"script"))),f.call(r&&i.nodeName(this[o],"table")?ye(this[o],"tbody"):this[o],e,o);if(l)for(y=s[s.length-1].ownerDocument,i.map(s,gr),o=0;l>o;o++)e=s[o],kr.test(e.type||"")&&!i._data(e,"globalEval")&&i.contains(y,e)&&(e.src?i.ajax({url:e.src,type:"GET",dataType:"script",async:!1,global:!1,throws:!0}):i.globalEval((e.text||e.textContent||e.innerHTML||"").replace(ae,"")));h=c=null}return this}});i.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(n,t){i.fn[n]=function(n){for(var u,r=0,f=[],e=i(n),o=e.length-1;o>=r;r++)u=r===o?this:this.clone(!0),i(e[r])[t](u),bt.apply(f,u.get());return this.pushStack(f)}});i.extend({clone:function(n,t,r){var f,h,o,e,s,c=i.contains(n.ownerDocument,n);if(i.support.html5Clone||i.isXMLDoc(n)||!yr.test("<"+n.nodeName+">")?o=n.cloneNode(!0):(oi.innerHTML=n.outerHTML,oi.removeChild(o=oi.firstChild)),!(i.support.noCloneEvent&&i.support.noCloneChecked||1!==n.nodeType&&11!==n.nodeType||i.isXMLDoc(n)))for(f=u(o),s=u(n),e=0;null!=(h=s[e]);++e)f[e]&&pe(h,f[e]);if(t)if(r)for(s=s||u(n),f=f||u(o),e=0;null!=(h=s[e]);e++)nu(h,f[e]);else nu(n,o);return f=u(o,"script"),f.length>0&&si(f,!c&&u(n,"script")),f=s=h=null,o},buildFragment:function(n,t,r,f){for(var h,o,w,s,y,p,l,b=n.length,a=ar(t),c=[],v=0;b>v;v++)if(o=n[v],o||0===o)if("object"===i.type(o))i.merge(c,o.nodeType?[o]:o);else if(se.test(o)){for(s=s||a.appendChild(t.createElement("div")),y=(wr.exec(o)||["",""])[1].toLowerCase(),l=e[y]||e._default,s.innerHTML=l[1]+o.replace(pr,"<$1><\/$2>")+l[2],h=l[0];h--;)s=s.lastChild;if(!i.support.leadingWhitespace&&fi.test(o)&&c.push(t.createTextNode(fi.exec(o)[0])),!i.support.tbody)for(o="table"!==y||br.test(o)?"<table>"!==l[1]||br.test(o)?0:s:s.firstChild,h=o&&o.childNodes.length;h--;)i.nodeName(p=o.childNodes[h],"tbody")&&!p.childNodes.length&&o.removeChild(p);for(i.merge(c,s.childNodes),s.textContent="";s.firstChild;)s.removeChild(s.firstChild);s=a.lastChild}else c.push(t.createTextNode(o));for(s&&a.removeChild(s),i.support.appendChecked||i.grep(u(c,"input"),we),v=0;o=c[v++];)if((!f||-1===i.inArray(o,f))&&(w=i.contains(o.ownerDocument,o),s=u(a.appendChild(o),"script"),w&&si(s),r))for(h=0;o=s[h++];)kr.test(o.type||"")&&r.push(o);return s=null,a},cleanData:function(n,t){for(var r,f,u,e,c=0,s=i.expando,h=i.cache,l=i.support.deleteExpando,a=i.event.special;null!=(r=n[c]);c++)if((t||i.acceptData(r))&&(u=r[s],e=u&&h[u])){if(e.events)for(f in e.events)a[f]?i.event.remove(r,f):i.removeEvent(r,f,e.handle);h[u]&&(delete h[u],l?delete r[s]:typeof r.removeAttribute!==o?r.removeAttribute(s):r[s]=null,b.push(u))}}});var rt,v,y,hi=/alpha\([^)]*\)/i,be=/opacity\s*=\s*([^)]*)/,ke=/^(top|right|bottom|left)$/,de=/^(none|table(?!-c[ea]).+)/,tu=/^margin/,ge=RegExp("^("+st+")(.*)$","i"),ct=RegExp("^("+st+")(?!px)[a-z%]+$","i"),no=RegExp("^([+-])=("+st+")","i"),iu={BODY:"block"},to={position:"absolute",visibility:"hidden",display:"block"},ru={letterSpacing:0,fontWeight:400},p=["Top","Right","Bottom","Left"],uu=["Webkit","O","Moz","ms"];i.fn.extend({css:function(n,r){return i.access(this,function(n,r,u){var e,o,s={},f=0;if(i.isArray(r)){for(o=v(n),e=r.length;e>f;f++)s[r[f]]=i.css(n,r[f],!1,o);return s}return u!==t?i.style(n,r,u):i.css(n,r)},n,r,arguments.length>1)},show:function(){return eu(this,!0)},hide:function(){return eu(this)},toggle:function(n){var t="boolean"==typeof n;return this.each(function(){(t?n:ut(this))?i(this).show():i(this).hide()})}});i.extend({cssHooks:{opacity:{get:function(n,t){if(t){var i=y(n,"opacity");return""===i?"1":i}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{float:i.support.cssFloat?"cssFloat":"styleFloat"},style:function(n,r,u,f){if(n&&3!==n.nodeType&&8!==n.nodeType&&n.style){var o,s,e,h=i.camelCase(r),c=n.style;if(r=i.cssProps[h]||(i.cssProps[h]=fu(c,h)),e=i.cssHooks[r]||i.cssHooks[h],u===t)return e&&"get"in e&&(o=e.get(n,!1,f))!==t?o:c[r];if(s=typeof u,"string"===s&&(o=no.exec(u))&&(u=(o[1]+1)*o[2]+parseFloat(i.css(n,r)),s="number"),!(null==u||"number"===s&&isNaN(u)||("number"!==s||i.cssNumber[h]||(u+="px"),i.support.clearCloneStyle||""!==u||0!==r.indexOf("background")||(c[r]="inherit"),e&&"set"in e&&(u=e.set(n,u,f))===t)))try{c[r]=u}catch(l){}}},css:function(n,r,u,f){var h,e,o,s=i.camelCase(r);return r=i.cssProps[s]||(i.cssProps[s]=fu(n.style,s)),o=i.cssHooks[r]||i.cssHooks[s],o&&"get"in o&&(e=o.get(n,!0,u)),e===t&&(e=y(n,r,f)),"normal"===e&&r in ru&&(e=ru[r]),""===u||u?(h=parseFloat(e),u===!0||i.isNumeric(h)?h||0:e):e},swap:function(n,t,i,r){var f,u,e={};for(u in t)e[u]=n.style[u],n.style[u]=t[u];f=i.apply(n,r||[]);for(u in t)n.style[u]=e[u];return f}});n.getComputedStyle?(v=function(t){return n.getComputedStyle(t,null)},y=function(n,r,u){var s,h,c,o=u||v(n),e=o?o.getPropertyValue(r)||o[r]:t,f=n.style;return o&&(""!==e||i.contains(n.ownerDocument,n)||(e=i.style(n,r)),ct.test(e)&&tu.test(r)&&(s=f.width,h=f.minWidth,c=f.maxWidth,f.minWidth=f.maxWidth=f.width=e,e=o.width,f.width=s,f.minWidth=h,f.maxWidth=c)),e}):r.documentElement.currentStyle&&(v=function(n){return n.currentStyle},y=function(n,i,r){var s,e,o,h=r||v(n),u=h?h[i]:t,f=n.style;return null==u&&f&&f[i]&&(u=f[i]),ct.test(u)&&!ke.test(i)&&(s=f.left,e=n.runtimeStyle,o=e&&e.left,o&&(e.left=n.currentStyle.left),f.left="fontSize"===i?"1em":u,u=f.pixelLeft+"px",f.left=s,o&&(e.left=o)),""===u?"auto":u});i.each(["height","width"],function(n,r){i.cssHooks[r]={get:function(n,u,f){return u?0===n.offsetWidth&&de.test(i.css(n,"display"))?i.swap(n,to,function(){return hu(n,r,f)}):hu(n,r,f):t},set:function(n,t,u){var f=u&&v(n);return ou(n,t,u?su(n,r,u,i.support.boxSizing&&"border-box"===i.css(n,"boxSizing",!1,f),f):0)}}});i.support.opacity||(i.cssHooks.opacity={get:function(n,t){return be.test((t&&n.currentStyle?n.currentStyle.filter:n.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(n,t){var r=n.style,u=n.currentStyle,e=i.isNumeric(t)?"alpha(opacity="+100*t+")":"",f=u&&u.filter||r.filter||"";r.zoom=1;(t>=1||""===t)&&""===i.trim(f.replace(hi,""))&&r.removeAttribute&&(r.removeAttribute("filter"),""===t||u&&!u.filter)||(r.filter=hi.test(f)?f.replace(hi,e):f+" "+e)}});i(function(){i.support.reliableMarginRight||(i.cssHooks.marginRight={get:function(n,r){return r?i.swap(n,{display:"inline-block"},y,[n,"marginRight"]):t}});!i.support.pixelPosition&&i.fn.position&&i.each(["top","left"],function(n,r){i.cssHooks[r]={get:function(n,u){return u?(u=y(n,r),ct.test(u)?i(n).position()[r]+"px":u):t}}})});i.expr&&i.expr.filters&&(i.expr.filters.hidden=function(n){return 0>=n.offsetWidth&&0>=n.offsetHeight||!i.support.reliableHiddenOffsets&&"none"===(n.style&&n.style.display||i.css(n,"display"))},i.expr.filters.visible=function(n){return!i.expr.filters.hidden(n)});i.each({margin:"",padding:"",border:"Width"},function(n,t){i.cssHooks[n+t]={expand:function(i){for(var r=0,f={},u="string"==typeof i?i.split(" "):[i];4>r;r++)f[n+p[r]+t]=u[r]||u[r-2]||u[0];return f}};tu.test(n)||(i.cssHooks[n+t].set=ou)});var io=/%20/g,ro=/\[\]$/,au=/\r?\n/g,uo=/^(?:submit|button|image|reset|file)$/i,fo=/^(?:input|select|textarea|keygen)/i;i.fn.extend({serialize:function(){return i.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var n=i.prop(this,"elements");return n?i.makeArray(n):this}).filter(function(){var n=this.type;return this.name&&!i(this).is(":disabled")&&fo.test(this.nodeName)&&!uo.test(n)&&(this.checked||!ei.test(n))}).map(function(n,t){var r=i(this).val();return null==r?null:i.isArray(r)?i.map(r,function(n){return{name:t.name,value:n.replace(au,"\r\n")}}):{name:t.name,value:r.replace(au,"\r\n")}}).get()}});i.param=function(n,r){var u,f=[],e=function(n,t){t=i.isFunction(t)?t():null==t?"":t;f[f.length]=encodeURIComponent(n)+"="+encodeURIComponent(t)};if(r===t&&(r=i.ajaxSettings&&i.ajaxSettings.traditional),i.isArray(n)||n.jquery&&!i.isPlainObject(n))i.each(n,function(){e(this.name,this.value)});else for(u in n)ci(u,n[u],r,e);return f.join("&").replace(io,"+")};i.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(n,t){i.fn[t]=function(n,i){return arguments.length>0?this.on(t,null,n,i):this.trigger(t)}});i.fn.hover=function(n,t){return this.mouseenter(n).mouseleave(t||n)};var w,c,li=i.now(),ai=/\?/,eo=/#.*$/,vu=/([?&])_=[^&]*/,oo=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,so=/^(?:GET|HEAD)$/,ho=/^\/\//,yu=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,pu=i.fn.load,wu={},vi={},bu="*/".concat("*");try{c=ff.href}catch(go){c=r.createElement("a");c.href="";c=c.href}w=yu.exec(c.toLowerCase())||[];i.fn.load=function(n,r,u){if("string"!=typeof n&&pu)return pu.apply(this,arguments);var f,s,h,e=this,o=n.indexOf(" ");return o>=0&&(f=n.slice(o,n.length),n=n.slice(0,o)),i.isFunction(r)?(u=r,r=t):r&&"object"==typeof r&&(h="POST"),e.length>0&&i.ajax({url:n,type:h,dataType:"html",data:r}).done(function(n){s=arguments;e.html(f?i("<div>").append(i.parseHTML(n)).find(f):n)}).complete(u&&function(n,t){e.each(u,s||[n.responseText,t,n])}),this};i.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(n,t){i.fn[t]=function(n){return this.on(t,n)}});i.each(["get","post"],function(n,r){i[r]=function(n,u,f,e){return i.isFunction(u)&&(e=e||f,f=u,u=t),i.ajax({url:n,type:r,dataType:e,data:u,success:f})}});i.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:c,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(w[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":bu,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":n.String,"text html":!0,"text json":i.parseJSON,"text xml":i.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(n,t){return t?yi(yi(n,i.ajaxSettings),t):yi(i.ajaxSettings,n)},ajaxPrefilter:ku(wu),ajaxTransport:ku(vi),ajax:function(n,r){function k(n,r,s,c){var l,k,w,rt,p,a=r;2!==o&&(o=2,g&&clearTimeout(g),y=t,d=c||"",f.readyState=n>0?4:0,s&&(rt=co(u,f,s)),n>=200&&300>n||304===n?(u.ifModified&&(p=f.getResponseHeader("Last-Modified"),p&&(i.lastModified[e]=p),p=f.getResponseHeader("etag"),p&&(i.etag[e]=p)),204===n?(l=!0,a="nocontent"):304===n?(l=!0,a="notmodified"):(l=lo(u,rt),a=l.state,k=l.data,w=l.error,l=!w)):(w=a,(n||!a)&&(a="error",0>n&&(n=0))),f.status=n,f.statusText=(r||a)+"",l?tt.resolveWith(h,[k,a,f]):tt.rejectWith(h,[f,a,w]),f.statusCode(b),b=t,v&&nt.trigger(l?"ajaxSuccess":"ajaxError",[f,u,l?k:w]),it.fireWith(h,[f,a]),v&&(nt.trigger("ajaxComplete",[f,u]),--i.active||i.event.trigger("ajaxStop")))}"object"==typeof n&&(r=n,n=t);r=r||{};var l,a,e,d,g,v,y,p,u=i.ajaxSetup({},r),h=u.context||u,nt=u.context&&(h.nodeType||h.jquery)?i(h):i.event,tt=i.Deferred(),it=i.Callbacks("once memory"),b=u.statusCode||{},rt={},ut={},o=0,ft="canceled",f={readyState:0,getResponseHeader:function(n){var t;if(2===o){if(!p)for(p={};t=oo.exec(d);)p[t[1].toLowerCase()]=t[2];t=p[n.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===o?d:null},setRequestHeader:function(n,t){var i=n.toLowerCase();return o||(n=ut[i]=ut[i]||n,rt[n]=t),this},overrideMimeType:function(n){return o||(u.mimeType=n),this},statusCode:function(n){var t;if(n)if(2>o)for(t in n)b[t]=[b[t],n[t]];else f.always(n[f.status]);return this},abort:function(n){var t=n||ft;return y&&y.abort(t),k(0,t),this}};if(tt.promise(f).complete=it.add,f.success=f.done,f.error=f.fail,u.url=((n||u.url||c)+"").replace(eo,"").replace(ho,w[1]+"//"),u.type=r.method||r.type||u.method||u.type,u.dataTypes=i.trim(u.dataType||"*").toLowerCase().match(s)||[""],null==u.crossDomain&&(l=yu.exec(u.url.toLowerCase()),u.crossDomain=!(!l||l[1]===w[1]&&l[2]===w[2]&&(l[3]||("http:"===l[1]?80:443))==(w[3]||("http:"===w[1]?80:443)))),u.data&&u.processData&&"string"!=typeof u.data&&(u.data=i.param(u.data,u.traditional)),du(wu,u,r,f),2===o)return f;v=u.global;v&&0==i.active++&&i.event.trigger("ajaxStart");u.type=u.type.toUpperCase();u.hasContent=!so.test(u.type);e=u.url;u.hasContent||(u.data&&(e=u.url+=(ai.test(e)?"&":"?")+u.data,delete u.data),u.cache===!1&&(u.url=vu.test(e)?e.replace(vu,"$1_="+li++):e+(ai.test(e)?"&":"?")+"_="+li++));u.ifModified&&(i.lastModified[e]&&f.setRequestHeader("If-Modified-Since",i.lastModified[e]),i.etag[e]&&f.setRequestHeader("If-None-Match",i.etag[e]));(u.data&&u.hasContent&&u.contentType!==!1||r.contentType)&&f.setRequestHeader("Content-Type",u.contentType);f.setRequestHeader("Accept",u.dataTypes[0]&&u.accepts[u.dataTypes[0]]?u.accepts[u.dataTypes[0]]+("*"!==u.dataTypes[0]?", "+bu+"; q=0.01":""):u.accepts["*"]);for(a in u.headers)f.setRequestHeader(a,u.headers[a]);if(u.beforeSend&&(u.beforeSend.call(h,f,u)===!1||2===o))return f.abort();ft="abort";for(a in{success:1,error:1,complete:1})f[a](u[a]);if(y=du(vi,u,r,f)){f.readyState=1;v&&nt.trigger("ajaxSend",[f,u]);u.async&&u.timeout>0&&(g=setTimeout(function(){f.abort("timeout")},u.timeout));try{o=1;y.send(rt,k)}catch(et){if(!(2>o))throw et;k(-1,et)}}else k(-1,"No Transport");return f},getScript:function(n,r){return i.get(n,t,r,"script")},getJSON:function(n,t,r){return i.get(n,t,r,"json")}});i.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(n){return i.globalEval(n),n}}});i.ajaxPrefilter("script",function(n){n.cache===t&&(n.cache=!1);n.crossDomain&&(n.type="GET",n.global=!1)});i.ajaxTransport("script",function(n){if(n.crossDomain){var u,f=r.head||i("head")[0]||r.documentElement;return{send:function(t,i){u=r.createElement("script");u.async=!0;n.scriptCharset&&(u.charset=n.scriptCharset);u.src=n.url;u.onload=u.onreadystatechange=function(n,t){(t||!u.readyState||/loaded|complete/.test(u.readyState))&&(u.onload=u.onreadystatechange=null,u.parentNode&&u.parentNode.removeChild(u),u=null,t||i(200,"success"))};f.insertBefore(u,f.firstChild)},abort:function(){u&&u.onload(t,!0)}}}});pi=[];lt=/(=)\?(?=&|$)|\?\?/;i.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var n=pi.pop()||i.expando+"_"+li++;return this[n]=!0,n}});i.ajaxPrefilter("json jsonp",function(r,u,f){var e,s,o,h=r.jsonp!==!1&&(lt.test(r.url)?"url":"string"==typeof r.data&&!(r.contentType||"").indexOf("application/x-www-form-urlencoded")&<.test(r.data)&&"data");return h||"jsonp"===r.dataTypes[0]?(e=r.jsonpCallback=i.isFunction(r.jsonpCallback)?r.jsonpCallback():r.jsonpCallback,h?r[h]=r[h].replace(lt,"$1"+e):r.jsonp!==!1&&(r.url+=(ai.test(r.url)?"&":"?")+r.jsonp+"="+e),r.converters["script json"]=function(){return o||i.error(e+" was not called"),o[0]},r.dataTypes[0]="json",s=n[e],n[e]=function(){o=arguments},f.always(function(){n[e]=s;r[e]&&(r.jsonpCallback=u.jsonpCallback,pi.push(e));o&&i.isFunction(s)&&s(o[0]);o=s=t}),"script"):t});gu=0;at=n.ActiveXObject&&function(){for(var n in g)g[n](t,!0)};i.ajaxSettings.xhr=n.ActiveXObject?function(){return!this.isLocal&&nf()||ao()}:nf;nt=i.ajaxSettings.xhr();i.support.cors=!!nt&&"withCredentials"in nt;nt=i.support.ajax=!!nt;nt&&i.ajaxTransport(function(r){if(!r.crossDomain||i.support.cors){var u;return{send:function(f,e){var h,s,o=r.xhr();if(r.username?o.open(r.type,r.url,r.async,r.username,r.password):o.open(r.type,r.url,r.async),r.xhrFields)for(s in r.xhrFields)o[s]=r.xhrFields[s];r.mimeType&&o.overrideMimeType&&o.overrideMimeType(r.mimeType);r.crossDomain||f["X-Requested-With"]||(f["X-Requested-With"]="XMLHttpRequest");try{for(s in f)o.setRequestHeader(s,f[s])}catch(c){}o.send(r.hasContent&&r.data||null);u=function(n,f){var s,a,l,c;try{if(u&&(f||4===o.readyState))if(u=t,h&&(o.onreadystatechange=i.noop,at&&delete g[h]),f)4!==o.readyState&&o.abort();else{c={};s=o.status;a=o.getAllResponseHeaders();"string"==typeof o.responseText&&(c.text=o.responseText);try{l=o.statusText}catch(y){l=""}s||!r.isLocal||r.crossDomain?1223===s&&(s=204):s=c.text?200:404}}catch(v){f||e(-1,v)}c&&e(s,l,c,a)};r.async?4===o.readyState?setTimeout(u):(h=++gu,at&&(g||(g={},i(n).unload(at)),g[h]=u),o.onreadystatechange=u):u()},abort:function(){u&&u(t,!0)}}}});var tt,vt,vo=/^(?:toggle|show|hide)$/,yo=RegExp("^(?:([+-])=|)("+st+")([a-z%]*)$","i"),po=/queueHooks$/,yt=[ko],ft={"*":[function(n,t){var o,s,r=this.createTween(n,t),e=yo.exec(t),h=r.cur(),u=+h||0,f=1,c=20;if(e){if(o=+e[2],s=e[3]||(i.cssNumber[n]?"":"px"),"px"!==s&&u){u=i.css(r.elem,n,!0)||o||1;do f=f||".5",u/=f,i.style(r.elem,n,u+s);while(f!==(f=r.cur()/h)&&1!==f&&--c)}r.unit=s;r.start=u;r.end=e[1]?u+(e[1]+1)*o:o}return r}]};i.Animation=i.extend(rf,{tweener:function(n,t){i.isFunction(n)?(t=n,n=["*"]):n=n.split(" ");for(var r,u=0,f=n.length;f>u;u++)r=n[u],ft[r]=ft[r]||[],ft[r].unshift(t)},prefilter:function(n,t){t?yt.unshift(n):yt.push(n)}});i.Tween=f;f.prototype={constructor:f,init:function(n,t,r,u,f,e){this.elem=n;this.prop=r;this.easing=f||"swing";this.options=t;this.start=this.now=this.cur();this.end=u;this.unit=e||(i.cssNumber[r]?"":"px")},cur:function(){var n=f.propHooks[this.prop];return n&&n.get?n.get(this):f.propHooks._default.get(this)},run:function(n){var r,t=f.propHooks[this.prop];return this.pos=r=this.options.duration?i.easing[this.easing](n,this.options.duration*n,0,1,this.options.duration):n,this.now=(this.end-this.start)*r+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),t&&t.set?t.set(this):f.propHooks._default.set(this),this}};f.prototype.init.prototype=f.prototype;f.propHooks={_default:{get:function(n){var t;return null==n.elem[n.prop]||n.elem.style&&null!=n.elem.style[n.prop]?(t=i.css(n.elem,n.prop,""),t&&"auto"!==t?t:0):n.elem[n.prop]},set:function(n){i.fx.step[n.prop]?i.fx.step[n.prop](n):n.elem.style&&(null!=n.elem.style[i.cssProps[n.prop]]||i.cssHooks[n.prop])?i.style(n.elem,n.prop,n.now+n.unit):n.elem[n.prop]=n.now}}};f.propHooks.scrollTop=f.propHooks.scrollLeft={set:function(n){n.elem.nodeType&&n.elem.parentNode&&(n.elem[n.prop]=n.now)}};i.each(["toggle","show","hide"],function(n,t){var r=i.fn[t];i.fn[t]=function(n,i,u){return null==n||"boolean"==typeof n?r.apply(this,arguments):this.animate(pt(t,!0),n,i,u)}});i.fn.extend({fadeTo:function(n,t,i,r){return this.filter(ut).css("opacity",0).show().end().animate({opacity:t},n,i,r)},animate:function(n,t,r,u){var o=i.isEmptyObject(n),e=i.speed(t,r,u),f=function(){var t=rf(this,i.extend({},n),e);f.finish=function(){t.stop(!0)};(o||i._data(this,"finish"))&&t.stop(!0)};return f.finish=f,o||e.queue===!1?this.each(f):this.queue(e.queue,f)},stop:function(n,r,u){var f=function(n){var t=n.stop;delete n.stop;t(u)};return"string"!=typeof n&&(u=r,r=n,n=t),r&&n!==!1&&this.queue(n||"fx",[]),this.each(function(){var o=!0,t=null!=n&&n+"queueHooks",e=i.timers,r=i._data(this);if(t)r[t]&&r[t].stop&&f(r[t]);else for(t in r)r[t]&&r[t].stop&&po.test(t)&&f(r[t]);for(t=e.length;t--;)e[t].elem!==this||null!=n&&e[t].queue!==n||(e[t].anim.stop(u),o=!1,e.splice(t,1));(o||!u)&&i.dequeue(this,n)})},finish:function(n){return n!==!1&&(n=n||"fx"),this.each(function(){var t,f=i._data(this),r=f[n+"queue"],e=f[n+"queueHooks"],u=i.timers,o=r?r.length:0;for(f.finish=!0,i.queue(this,n,[]),e&&e.cur&&e.cur.finish&&e.cur.finish.call(this),t=u.length;t--;)u[t].elem===this&&u[t].queue===n&&(u[t].anim.stop(!0),u.splice(t,1));for(t=0;o>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete f.finish})}});i.each({slideDown:pt("show"),slideUp:pt("hide"),slideToggle:pt("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(n,t){i.fn[n]=function(n,i,r){return this.animate(t,n,i,r)}});i.speed=function(n,t,r){var u=n&&"object"==typeof n?i.extend({},n):{complete:r||!r&&t||i.isFunction(n)&&n,duration:n,easing:r&&t||t&&!i.isFunction(t)&&t};return u.duration=i.fx.off?0:"number"==typeof u.duration?u.duration:u.duration in i.fx.speeds?i.fx.speeds[u.duration]:i.fx.speeds._default,(null==u.queue||u.queue===!0)&&(u.queue="fx"),u.old=u.complete,u.complete=function(){i.isFunction(u.old)&&u.old.call(this);u.queue&&i.dequeue(this,u.queue)},u};i.easing={linear:function(n){return n},swing:function(n){return.5-Math.cos(n*Math.PI)/2}};i.timers=[];i.fx=f.prototype.init;i.fx.tick=function(){var u,n=i.timers,r=0;for(tt=i.now();n.length>r;r++)u=n[r],u()||n[r]!==u||n.splice(r--,1);n.length||i.fx.stop();tt=t};i.fx.timer=function(n){n()&&i.timers.push(n)&&i.fx.start()};i.fx.interval=13;i.fx.start=function(){vt||(vt=setInterval(i.fx.tick,i.fx.interval))};i.fx.stop=function(){clearInterval(vt);vt=null};i.fx.speeds={slow:600,fast:200,_default:400};i.fx.step={};i.expr&&i.expr.filters&&(i.expr.filters.animated=function(n){return i.grep(i.timers,function(t){return n===t.elem}).length});i.fn.offset=function(n){if(arguments.length)return n===t?this:this.each(function(t){i.offset.setOffset(this,n,t)});var r,e,f={top:0,left:0},u=this[0],s=u&&u.ownerDocument;if(s)return r=s.documentElement,i.contains(r,u)?(typeof u.getBoundingClientRect!==o&&(f=u.getBoundingClientRect()),e=uf(s),{top:f.top+(e.pageYOffset||r.scrollTop)-(r.clientTop||0),left:f.left+(e.pageXOffset||r.scrollLeft)-(r.clientLeft||0)}):f};i.offset={setOffset:function(n,t,r){var f=i.css(n,"position");"static"===f&&(n.style.position="relative");var e=i(n),o=e.offset(),l=i.css(n,"top"),a=i.css(n,"left"),v=("absolute"===f||"fixed"===f)&&i.inArray("auto",[l,a])>-1,u={},s={},h,c;v?(s=e.position(),h=s.top,c=s.left):(h=parseFloat(l)||0,c=parseFloat(a)||0);i.isFunction(t)&&(t=t.call(n,r,o));null!=t.top&&(u.top=t.top-o.top+h);null!=t.left&&(u.left=t.left-o.left+c);"using"in t?t.using.call(n,u):e.css(u)}};i.fn.extend({position:function(){if(this[0]){var n,r,t={top:0,left:0},u=this[0];return"fixed"===i.css(u,"position")?r=u.getBoundingClientRect():(n=this.offsetParent(),r=this.offset(),i.nodeName(n[0],"html")||(t=n.offset()),t.top+=i.css(n[0],"borderTopWidth",!0),t.left+=i.css(n[0],"borderLeftWidth",!0)),{top:r.top-t.top-i.css(u,"marginTop",!0),left:r.left-t.left-i.css(u,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var n=this.offsetParent||r.documentElement;n&&!i.nodeName(n,"html")&&"static"===i.css(n,"position");)n=n.offsetParent;return n||r.documentElement})}});i.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(n,r){var u=/Y/.test(r);i.fn[n]=function(f){return i.access(this,function(n,f,e){var o=uf(n);return e===t?o?r in o?o[r]:o.document.documentElement[f]:n[f]:(o?o.scrollTo(u?i(o).scrollLeft():e,u?e:i(o).scrollTop()):n[f]=e,t)},n,f,arguments.length,null)}});i.each({Height:"height",Width:"width"},function(n,r){i.each({padding:"inner"+n,content:r,"":"outer"+n},function(u,f){i.fn[f]=function(f,e){var o=arguments.length&&(u||"boolean"!=typeof f),s=u||(f===!0||e===!0?"margin":"border");return i.access(this,function(r,u,f){var e;return i.isWindow(r)?r.document.documentElement["client"+n]:9===r.nodeType?(e=r.documentElement,Math.max(r.body["scroll"+n],e["scroll"+n],r.body["offset"+n],e["offset"+n],e["client"+n])):f===t?i.css(r,u,s):i.style(r,u,f,s)},r,o?f:t,o,null)}})});n.jQuery=n.$=i;"function"==typeof define&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return i})})(window),function(n){function i(n,t){for(var i=window,r=(n||"").split(".");i&&r.length;)i=i[r.shift()];return typeof i=="function"?i:(t.push(n),Function.constructor.apply(null,t))}function r(n){return n==="GET"||n==="POST"}function e(n,t){r(t)||n.setRequestHeader("X-HTTP-Method-Override",t)}function o(t,i,r){var u;r.indexOf("application/x-javascript")===-1&&(u=(t.getAttribute("data-ajax-mode")||"").toUpperCase(),n(t.getAttribute("data-ajax-update")).each(function(t,r){var f;switch(u){case"BEFORE":f=r.firstChild;n("<div />").html(i).contents().each(function(){r.insertBefore(this,f)});break;case"AFTER":n("<div />").html(i).contents().each(function(){r.appendChild(this)});break;default:n(r).html(i)}}))}function u(t,u){var s,h,f,c;(s=t.getAttribute("data-ajax-confirm"),!s||window.confirm(s))&&(h=n(t.getAttribute("data-ajax-loading")),c=t.getAttribute("data-ajax-loading-duration")||0,n.extend(u,{type:t.getAttribute("data-ajax-method")||undefined,url:t.getAttribute("data-ajax-url")||undefined,beforeSend:function(n){var r;return e(n,f),r=i(t.getAttribute("data-ajax-begin"),["xhr"]).apply(this,arguments),r!==!1&&h.show(c),r},complete:function(){h.hide(c);i(t.getAttribute("data-ajax-complete"),["xhr","status"]).apply(this,arguments)},success:function(n,r,u){o(t,n,u.getResponseHeader("Content-Type")||"text/html");i(t.getAttribute("data-ajax-success"),["data","status","xhr"]).apply(this,arguments)},error:i(t.getAttribute("data-ajax-failure"),["xhr","status","error"])}),u.data.push({name:"X-Requested-With",value:"XMLHttpRequest"}),f=u.type.toUpperCase(),r(f)||(u.type="POST",u.data.push({name:"X-HTTP-Method-Override",value:f})),n.ajax(u))}function s(t){var i=n(t).data(f);return!i||!i.validate||i.validate()}var t="unobtrusiveAjaxClick",f="unobtrusiveValidation";n(document).on("click","a[data-ajax=true]",function(n){n.preventDefault();u(this,{url:this.href,type:"GET",data:[]})});n(document).on("click","form[data-ajax=true] input[type=image]",function(i){var r=i.target.name,u=n(i.target),f=u.parents("form")[0],e=u.offset();n(f).data(t,[{name:r+".x",value:Math.round(i.pageX-e.left)},{name:r+".y",value:Math.round(i.pageY-e.top)}]);setTimeout(function(){n(f).removeData(t)},0)});n(document).on("click","form[data-ajax=true] :submit",function(i){var r=i.target.name,u=n(i.target).parents("form")[0];n(u).data(t,r?[{name:r,value:i.target.value}]:[]);setTimeout(function(){n(u).removeData(t)},0)});n(document).on("submit","form[data-ajax=true]",function(i){var r=n(this).data(t)||[];(i.preventDefault(),s(this))&&u(this,{url:this.action,type:this.method||"GET",data:r.concat(n(this).serializeArray())})})}(jQuery),function(n){n.extend(n.fn,{validate:function(t){if(!this.length)return t&&t.debug&&window.console&&console.warn("Nothing selected, can't validate, returning nothing."),void 0;var i=n.data(this[0],"validator");return i?i:(this.attr("novalidate","novalidate"),i=new n.validator(t,this[0]),n.data(this[0],"validator",i),i.settings.onsubmit&&(this.validateDelegate(":submit","click",function(t){i.settings.submitHandler&&(i.submitButton=t.target);n(t.target).hasClass("cancel")&&(i.cancelSubmit=!0);void 0!==n(t.target).attr("formnovalidate")&&(i.cancelSubmit=!0)}),this.submit(function(t){function r(){var r;return i.settings.submitHandler?(i.submitButton&&(r=n("<input type='hidden'/>").attr("name",i.submitButton.name).val(n(i.submitButton).val()).appendTo(i.currentForm)),i.settings.submitHandler.call(i,i.currentForm,t),i.submitButton&&r.remove(),!1):!0}return i.settings.debug&&t.preventDefault(),i.cancelSubmit?(i.cancelSubmit=!1,r()):i.form()?i.pendingRequest?(i.formSubmitted=!0,!1):r():(i.focusInvalid(),!1)})),i)},valid:function(){if(n(this[0]).is("form"))return this.validate().form();var t=!0,i=n(this[0].form).validate();return this.each(function(){t=t&&i.element(this)}),t},removeAttrs:function(t){var i={},r=this;return n.each(t.split(/\s/),function(n,t){i[t]=r.attr(t);r.removeAttr(t)}),i},rules:function(t,i){var r=this[0],o,u,h;if(t){var e=n.data(r.form,"validator").settings,s=e.rules,f=n.validator.staticRules(r);switch(t){case"add":n.extend(f,n.validator.normalizeRule(i));delete f.messages;s[r.name]=f;i.messages&&(e.messages[r.name]=n.extend(e.messages[r.name],i.messages));break;case"remove":return i?(o={},n.each(i.split(/\s/),function(n,t){o[t]=f[t];delete f[t]}),o):(delete s[r.name],f)}}return u=n.validator.normalizeRules(n.extend({},n.validator.classRules(r),n.validator.attributeRules(r),n.validator.dataRules(r),n.validator.staticRules(r)),r),u.required&&(h=u.required,delete u.required,u=n.extend({required:h},u)),u}});n.extend(n.expr[":"],{blank:function(t){return!n.trim(""+n(t).val())},filled:function(t){return!!n.trim(""+n(t).val())},unchecked:function(t){return!n(t).prop("checked")}});n.validator=function(t,i){this.settings=n.extend(!0,{},n.validator.defaults,t);this.currentForm=i;this.init()};n.validator.format=function(t,i){return 1===arguments.length?function(){var i=n.makeArray(arguments);return i.unshift(t),n.validator.format.apply(this,i)}:(arguments.length>2&&i.constructor!==Array&&(i=n.makeArray(arguments).slice(1)),i.constructor!==Array&&(i=[i]),n.each(i,function(n,i){t=t.replace(RegExp("\\{"+n+"\\}","g"),function(){return i})}),t)};n.extend(n.validator,{defaults:{messages:{},groups:{},rules:{},errorClass:"error",validClass:"valid",errorElement:"label",focusInvalid:!0,errorContainer:n([]),errorLabelContainer:n([]),onsubmit:!0,ignore:":hidden",ignoreTitle:!1,onfocusin:function(n){this.lastActive=n;this.settings.focusCleanup&&!this.blockFocusCleanup&&(this.settings.unhighlight&&this.settings.unhighlight.call(this,n,this.settings.errorClass,this.settings.validClass),this.addWrapper(this.errorsFor(n)).hide())},onfocusout:function(n){!this.checkable(n)&&(n.name in this.submitted||!this.optional(n))&&this.element(n)},onkeyup:function(n,t){(9!==t.which||""!==this.elementValue(n))&&(n.name in this.submitted||n===this.lastElement)&&this.element(n)},onclick:function(n){n.name in this.submitted?this.element(n):n.parentNode.name in this.submitted&&this.element(n.parentNode)},highlight:function(t,i,r){"radio"===t.type?this.findByName(t.name).addClass(i).removeClass(r):n(t).addClass(i).removeClass(r)},unhighlight:function(t,i,r){"radio"===t.type?this.findByName(t.name).removeClass(i).addClass(r):n(t).removeClass(i).addClass(r)}},setDefaults:function(t){n.extend(n.validator.defaults,t)},messages:{required:"This field is required.",remote:"Please fix this field.",email:"Please enter a valid email address.",url:"Please enter a valid URL.",date:"Please enter a valid date.",dateISO:"Please enter a valid date (ISO).",number:"Please enter a valid number.",digits:"Please enter only digits.",creditcard:"Please enter a valid credit card number.",equalTo:"Please enter the same value again.",maxlength:n.validator.format("Please enter no more than {0} characters."),minlength:n.validator.format("Please enter at least {0} characters."),rangelength:n.validator.format("Please enter a value between {0} and {1} characters long."),range:n.validator.format("Please enter a value between {0} and {1}."),max:n.validator.format("Please enter a value less than or equal to {0}."),min:n.validator.format("Please enter a value greater than or equal to {0}.")},autoCreateRanges:!1,prototype:{init:function(){function i(t){var i=n.data(this[0].form,"validator"),r="on"+t.type.replace(/^validate/,"");i.settings[r]&&i.settings[r].call(i,this[0],t)}var r,t;this.labelContainer=n(this.settings.errorLabelContainer);this.errorContext=this.labelContainer.length&&this.labelContainer||n(this.currentForm);this.containers=n(this.settings.errorContainer).add(this.settings.errorLabelContainer);this.submitted={};this.valueCache={};this.pendingRequest=0;this.pending={};this.invalid={};this.reset();r=this.groups={};n.each(this.settings.groups,function(t,i){"string"==typeof i&&(i=i.split(/\s/));n.each(i,function(n,i){r[i]=t})});t=this.settings.rules;n.each(t,function(i,r){t[i]=n.validator.normalizeRule(r)});n(this.currentForm).validateDelegate(":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'] ,[type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], [type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'] ","focusin focusout keyup",i).validateDelegate("[type='radio'], [type='checkbox'], select, option","click",i);this.settings.invalidHandler&&n(this.currentForm).bind("invalid-form.validate",this.settings.invalidHandler)},form:function(){return this.checkForm(),n.extend(this.submitted,this.errorMap),this.invalid=n.extend({},this.errorMap),this.valid()||n(this.currentForm).triggerHandler("invalid-form",[this]),this.showErrors(),this.valid()},checkForm:function(){this.prepareForm();for(var n=0,t=this.currentElements=this.elements();t[n];n++)this.check(t[n]);return this.valid()},element:function(t){t=this.validationTargetFor(this.clean(t));this.lastElement=t;this.prepareElement(t);this.currentElements=n(t);var i=this.check(t)!==!1;return i?delete this.invalid[t.name]:this.invalid[t.name]=!0,this.numberOfInvalids()||(this.toHide=this.toHide.add(this.containers)),this.showErrors(),i},showErrors:function(t){if(t){n.extend(this.errorMap,t);this.errorList=[];for(var i in t)this.errorList.push({message:t[i],element:this.findByName(i)[0]});this.successList=n.grep(this.successList,function(n){return!(n.name in t)})}this.settings.showErrors?this.settings.showErrors.call(this,this.errorMap,this.errorList):this.defaultShowErrors()},resetForm:function(){n.fn.resetForm&&n(this.currentForm).resetForm();this.submitted={};this.lastElement=null;this.prepareForm();this.hideErrors();this.elements().removeClass(this.settings.errorClass).removeData("previousValue")},numberOfInvalids:function(){return this.objectLength(this.invalid)},objectLength:function(n){var t=0;for(var i in n)t++;return t},hideErrors:function(){this.addWrapper(this.toHide).hide()},valid:function(){return 0===this.size()},size:function(){return this.errorList.length},focusInvalid:function(){if(this.settings.focusInvalid)try{n(this.findLastActive()||this.errorList.length&&this.errorList[0].element||[]).filter(":visible").focus().trigger("focusin")}catch(t){}},findLastActive:function(){var t=this.lastActive;return t&&1===n.grep(this.errorList,function(n){return n.element.name===t.name}).length&&t},elements:function(){var t=this,i={};return n(this.currentForm).find("input, select, textarea").not(":submit, :reset, :image, [disabled]").not(this.settings.ignore).filter(function(){return!this.name&&t.settings.debug&&window.console&&console.error("%o has no name assigned",this),this.name in i||!t.objectLength(n(this).rules())?!1:(i[this.name]=!0,!0)})},clean:function(t){return n(t)[0]},errors:function(){var t=this.settings.errorClass.replace(" ",".");return n(this.settings.errorElement+"."+t,this.errorContext)},reset:function(){this.successList=[];this.errorList=[];this.errorMap={};this.toShow=n([]);this.toHide=n([]);this.currentElements=n([])},prepareForm:function(){this.reset();this.toHide=this.errors().add(this.containers)},prepareElement:function(n){this.reset();this.toHide=this.errorsFor(n)},elementValue:function(t){var r=n(t).attr("type"),i=n(t).val();return"radio"===r||"checkbox"===r?n("input[name='"+n(t).attr("name")+"']:checked").val():"string"==typeof i?i.replace(/\r/g,""):i},check:function(t){var r,u;t=this.validationTargetFor(this.clean(t));var i,f=n(t).rules(),e=!1,s=this.elementValue(t);for(r in f){u={method:r,parameters:f[r]};try{if(i=n.validator.methods[r].call(this,s,t,u.parameters),"dependency-mismatch"===i){e=!0;continue}if(e=!1,"pending"===i)return this.toHide=this.toHide.not(this.errorsFor(t)),void 0;if(!i)return this.formatAndAdd(t,u),!1}catch(o){throw this.settings.debug&&window.console&&console.log("Exception occurred when checking element "+t.id+", check the '"+u.method+"' method.",o),o;}}if(!e)return(this.objectLength(f)&&this.successList.push(t),!0)},customDataMessage:function(t,i){return n(t).data("msg-"+i.toLowerCase())||t.attributes&&n(t).attr("data-msg-"+i.toLowerCase())},customMessage:function(n,t){var i=this.settings.messages[n];return i&&(i.constructor===String?i:i[t])},findDefined:function(){for(var n=0;arguments.length>n;n++)if(void 0!==arguments[n])return arguments[n];return void 0},defaultMessage:function(t,i){return this.findDefined(this.customMessage(t.name,i),this.customDataMessage(t,i),!this.settings.ignoreTitle&&t.title||void 0,n.validator.messages[i],"<strong>Warning: No message defined for "+t.name+"<\/strong>")},formatAndAdd:function(t,i){var r=this.defaultMessage(t,i.method),u=/\$?\{(\d+)\}/g;"function"==typeof r?r=r.call(this,i.parameters,t):u.test(r)&&(r=n.validator.format(r.replace(u,"{$1}"),i.parameters));this.errorList.push({message:r,element:t});this.errorMap[t.name]=r;this.submitted[t.name]=r},addWrapper:function(n){return this.settings.wrapper&&(n=n.add(n.parent(this.settings.wrapper))),n},defaultShowErrors:function(){for(var i,t,n=0;this.errorList[n];n++)t=this.errorList[n],this.settings.highlight&&this.settings.highlight.call(this,t.element,this.settings.errorClass,this.settings.validClass),this.showLabel(t.element,t.message);if(this.errorList.length&&(this.toShow=this.toShow.add(this.containers)),this.settings.success)for(n=0;this.successList[n];n++)this.showLabel(this.successList[n]);if(this.settings.unhighlight)for(n=0,i=this.validElements();i[n];n++)this.settings.unhighlight.call(this,i[n],this.settings.errorClass,this.settings.validClass);this.toHide=this.toHide.not(this.toShow);this.hideErrors();this.addWrapper(this.toShow).show()},validElements:function(){return this.currentElements.not(this.invalidElements())},invalidElements:function(){return n(this.errorList).map(function(){return this.element})},showLabel:function(t,i){var r=this.errorsFor(t);r.length?(r.removeClass(this.settings.validClass).addClass(this.settings.errorClass),r.html(i)):(r=n("<"+this.settings.errorElement+">").attr("for",this.idOrName(t)).addClass(this.settings.errorClass).html(i||""),this.settings.wrapper&&(r=r.hide().show().wrap("<"+this.settings.wrapper+"/>").parent()),this.labelContainer.append(r).length||(this.settings.errorPlacement?this.settings.errorPlacement(r,n(t)):r.insertAfter(t)));!i&&this.settings.success&&(r.text(""),"string"==typeof this.settings.success?r.addClass(this.settings.success):this.settings.success(r,t));this.toShow=this.toShow.add(r)},errorsFor:function(t){var i=this.idOrName(t);return this.errors().filter(function(){return n(this).attr("for")===i})},idOrName:function(n){return this.groups[n.name]||(this.checkable(n)?n.name:n.id||n.name)},validationTargetFor:function(n){return this.checkable(n)&&(n=this.findByName(n.name).not(this.settings.ignore)[0]),n},checkable:function(n){return/radio|checkbox/i.test(n.type)},findByName:function(t){return n(this.currentForm).find("[name='"+t+"']")},getLength:function(t,i){switch(i.nodeName.toLowerCase()){case"select":return n("option:selected",i).length;case"input":if(this.checkable(i))return this.findByName(i.name).filter(":checked").length}return t.length},depend:function(n,t){return this.dependTypes[typeof n]?this.dependTypes[typeof n](n,t):!0},dependTypes:{boolean:function(n){return n},string:function(t,i){return!!n(t,i.form).length},"function":function(n,t){return n(t)}},optional:function(t){var i=this.elementValue(t);return!n.validator.methods.required.call(this,i,t)&&"dependency-mismatch"},startRequest:function(n){this.pending[n.name]||(this.pendingRequest++,this.pending[n.name]=!0)},stopRequest:function(t,i){this.pendingRequest--;0>this.pendingRequest&&(this.pendingRequest=0);delete this.pending[t.name];i&&0===this.pendingRequest&&this.formSubmitted&&this.form()?(n(this.currentForm).submit(),this.formSubmitted=!1):!i&&0===this.pendingRequest&&this.formSubmitted&&(n(this.currentForm).triggerHandler("invalid-form",[this]),this.formSubmitted=!1)},previousValue:function(t){return n.data(t,"previousValue")||n.data(t,"previousValue",{old:null,valid:!0,message:this.defaultMessage(t,"remote")})}},classRuleSettings:{required:{required:!0},email:{email:!0},url:{url:!0},date:{date:!0},dateISO:{dateISO:!0},number:{number:!0},digits:{digits:!0},creditcard:{creditcard:!0}},addClassRules:function(t,i){t.constructor===String?this.classRuleSettings[t]=i:n.extend(this.classRuleSettings,t)},classRules:function(t){var i={},r=n(t).attr("class");return r&&n.each(r.split(" "),function(){this in n.validator.classRuleSettings&&n.extend(i,n.validator.classRuleSettings[this])}),i},attributeRules:function(t){var u={},e=n(t),f=e[0].getAttribute("type"),r,i;for(r in n.validator.methods)"required"===r?(i=e.get(0).getAttribute(r),""===i&&(i=!0),i=!!i):i=e.attr(r),/min|max/.test(r)&&(null===f||/number|range|text/.test(f))&&(i=Number(i)),i?u[r]=i:f===r&&"range"!==f&&(u[r]=!0);return u.maxlength&&/-1|2147483647|524288/.test(u.maxlength)&&delete u.maxlength,u},dataRules:function(t){var i,r,u={},f=n(t);for(i in n.validator.methods)r=f.data("rule-"+i.toLowerCase()),void 0!==r&&(u[i]=r);return u},staticRules:function(t){var i={},r=n.data(t.form,"validator");return r.settings.rules&&(i=n.validator.normalizeRule(r.settings.rules[t.name])||{}),i},normalizeRules:function(t,i){return n.each(t,function(r,u){if(u===!1)return delete t[r],void 0;if(u.param||u.depends){var f=!0;switch(typeof u.depends){case"string":f=!!n(u.depends,i.form).length;break;case"function":f=u.depends.call(i,i)}f?t[r]=void 0!==u.param?u.param:!0:delete t[r]}}),n.each(t,function(r,u){t[r]=n.isFunction(u)?u(i):u}),n.each(["minlength","maxlength"],function(){t[this]&&(t[this]=Number(t[this]))}),n.each(["rangelength","range"],function(){var i;t[this]&&(n.isArray(t[this])?t[this]=[Number(t[this][0]),Number(t[this][1])]:"string"==typeof t[this]&&(i=t[this].split(/[\s,]+/),t[this]=[Number(i[0]),Number(i[1])]))}),n.validator.autoCreateRanges&&(t.min&&t.max&&(t.range=[t.min,t.max],delete t.min,delete t.max),t.minlength&&t.maxlength&&(t.rangelength=[t.minlength,t.maxlength],delete t.minlength,delete t.maxlength)),t},normalizeRule:function(t){if("string"==typeof t){var i={};n.each(t.split(/\s/),function(){i[this]=!0});t=i}return t},addMethod:function(t,i,r){n.validator.methods[t]=i;n.validator.messages[t]=void 0!==r?r:n.validator.messages[t];3>i.length&&n.validator.addClassRules(t,n.validator.normalizeRule(t))},methods:{required:function(t,i,r){if(!this.depend(r,i))return"dependency-mismatch";if("select"===i.nodeName.toLowerCase()){var u=n(i).val();return u&&u.length>0}return this.checkable(i)?this.getLength(t,i)>0:n.trim(t).length>0},email:function(n,t){return this.optional(t)||/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i.test(n)},url:function(n,t){return this.optional(t)||/^(https?|s?ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(n)},date:function(n,t){return this.optional(t)||!/Invalid|NaN/.test(""+new Date(n))},dateISO:function(n,t){return this.optional(t)||/^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}$/.test(n)},number:function(n,t){return this.optional(t)||/^-?(?:\d+|\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(n)},digits:function(n,t){return this.optional(t)||/^\d+$/.test(n)},creditcard:function(n,t){var r,e;if(this.optional(t))return"dependency-mismatch";if(/[^0-9 \-]+/.test(n))return!1;var f=0,i=0,u=!1;for(n=n.replace(/\D/g,""),r=n.length-1;r>=0;r--)e=n.charAt(r),i=parseInt(e,10),u&&(i*=2)>9&&(i-=9),f+=i,u=!u;return 0==f%10},minlength:function(t,i,r){var u=n.isArray(t)?t.length:this.getLength(n.trim(t),i);return this.optional(i)||u>=r},maxlength:function(t,i,r){var u=n.isArray(t)?t.length:this.getLength(n.trim(t),i);return this.optional(i)||r>=u},rangelength:function(t,i,r){var u=n.isArray(t)?t.length:this.getLength(n.trim(t),i);return this.optional(i)||u>=r[0]&&r[1]>=u},min:function(n,t,i){return this.optional(t)||n>=i},max:function(n,t,i){return this.optional(t)||i>=n},range:function(n,t,i){return this.optional(t)||n>=i[0]&&i[1]>=n},equalTo:function(t,i,r){var u=n(r);return this.settings.onfocusout&&u.unbind(".validate-equalTo").bind("blur.validate-equalTo",function(){n(i).valid()}),t===u.val()},remote:function(t,i,r){var f,u,e;return this.optional(i)?"dependency-mismatch":(f=this.previousValue(i),this.settings.messages[i.name]||(this.settings.messages[i.name]={}),f.originalMessage=this.settings.messages[i.name].remote,this.settings.messages[i.name].remote=f.message,r="string"==typeof r&&{url:r}||r,f.old===t)?f.valid:(f.old=t,u=this,this.startRequest(i),e={},e[i.name]=t,n.ajax(n.extend(!0,{url:r,mode:"abort",port:"validate"+i.name,dataType:"json",data:e,success:function(r){var e,h,s,o;u.settings.messages[i.name].remote=f.originalMessage;e=r===!0||"true"===r;e?(h=u.formSubmitted,u.prepareElement(i),u.formSubmitted=h,u.successList.push(i),delete u.invalid[i.name],u.showErrors()):(s={},o=r||u.defaultMessage(i,"remote"),s[i.name]=f.message=n.isFunction(o)?o(t):o,u.invalid[i.name]=!0,u.showErrors(s));f.valid=e;u.stopRequest(i,e)}},r)),"pending")}}});n.format=n.validator.format}(jQuery),function(n){var t={},i;n.ajaxPrefilter?n.ajaxPrefilter(function(n,i,r){var u=n.port;"abort"===n.mode&&(t[u]&&t[u].abort(),t[u]=r)}):(i=n.ajax,n.ajax=function(r){var f=("mode"in r?r:n.ajaxSettings).mode,u=("port"in r?r:n.ajaxSettings).port;return"abort"===f?(t[u]&&t[u].abort(),t[u]=i.apply(this,arguments),t[u]):i.apply(this,arguments)})}(jQuery),function(n){n.extend(n.fn,{validateDelegate:function(t,i,r){return this.bind(i,function(i){var u=n(i.target);if(u.is(t))return r.apply(u,arguments)})}})}(jQuery),function(n){function i(n,t,i){n.rules[t]=i;n.message&&(n.messages[t]=n.message)}function h(n){return n.replace(/^\s+|\s+$/g,"").split(/\s*,\s*/g)}function f(n){return n.replace(/([!"#$%&'()*+,./:;<=>?@\[\\\]^`{|}~])/g,"\\$1")}function e(n){return n.substr(0,n.lastIndexOf(".")+1)}function o(n,t){return n.indexOf("*.")===0&&(n=n.replace("*.",t)),n}function c(t,i){var r=n(this).find("[data-valmsg-for='"+f(i[0].name)+"']"),u=r.attr("data-valmsg-replace"),e=u?n.parseJSON(u)!==!1:null;r.removeClass("field-validation-valid").addClass("field-validation-error");t.data("unobtrusiveContainer",r);e?(r.empty(),t.removeClass("input-validation-error").appendTo(r)):t.hide()}function l(t,i){var u=n(this).find("[data-valmsg-summary=true]"),r=u.find("ul");r&&r.length&&i.errorList.length&&(r.empty(),u.addClass("validation-summary-errors").removeClass("validation-summary-valid"),n.each(i.errorList,function(){n("<li />").html(this.message).appendTo(r)}))}function a(t){var i=t.data("unobtrusiveContainer"),r=i.attr("data-valmsg-replace"),u=r?n.parseJSON(r):null;i&&(i.addClass("field-validation-valid").removeClass("field-validation-error"),t.removeData("unobtrusiveContainer"),u&&i.empty())}function v(){var t=n(this);t.data("validator").resetForm();t.find(".validation-summary-errors").addClass("validation-summary-valid").removeClass("validation-summary-errors");t.find(".field-validation-error").addClass("field-validation-valid").removeClass("field-validation-error").removeData("unobtrusiveContainer").find(">*").removeData("unobtrusiveContainer")}function s(t){var i=n(t),r=i.data(u),f=n.proxy(v,t);return r||(r={options:{errorClass:"input-validation-error",errorElement:"span",errorPlacement:n.proxy(c,t),invalidHandler:n.proxy(l,t),messages:{},rules:{},success:n.proxy(a,t)},attachValidation:function(){i.unbind("reset."+u,f).bind("reset."+u,f).validate(this.options)},validate:function(){return i.validate(),i.valid()}},i.data(u,r)),r}var r=n.validator,t,u="unobtrusiveValidation";r.unobtrusive={adapters:[],parseElement:function(t,i){var u=n(t),f=u.parents("form")[0],r,e,o;f&&(r=s(f),r.options.rules[t.name]=e={},r.options.messages[t.name]=o={},n.each(this.adapters,function(){var i="data-val-"+this.name,r=u.attr(i),s={};r!==undefined&&(i+="-",n.each(this.params,function(){s[this]=u.attr(i+this)}),this.adapt({element:t,form:f,message:r,params:s,rules:e,messages:o}))}),n.extend(e,{__dummy__:!0}),i||r.attachValidation())},parse:function(t){var i=n(t).parents("form").andSelf().add(n(t).find("form")).filter("form");n(t).find(":input[data-val=true]").each(function(){r.unobtrusive.parseElement(this,!0)});i.each(function(){var n=s(this);n&&n.attachValidation()})}};t=r.unobtrusive.adapters;t.add=function(n,t,i){return i||(i=t,t=[]),this.push({name:n,params:t,adapt:i}),this};t.addBool=function(n,t){return this.add(n,function(r){i(r,t||n,!0)})};t.addMinMax=function(n,t,r,u,f,e){return this.add(n,[f||"min",e||"max"],function(n){var f=n.params.min,e=n.params.max;f&&e?i(n,u,[f,e]):f?i(n,t,f):e&&i(n,r,e)})};t.addSingleVal=function(n,t,r){return this.add(n,[t||"val"],function(u){i(u,r||n,u.params[t])})};r.addMethod("__dummy__",function(){return!0});r.addMethod("regex",function(n,t,i){var r;return this.optional(t)?!0:(r=new RegExp(i).exec(n),r&&r.index===0&&r[0].length===n.length)});r.addMethod("nonalphamin",function(n,t,i){var r;return i&&(r=n.match(/\W/g),r=r&&r.length>=i),r});t.addSingleVal("accept","exts").addSingleVal("regex","pattern");t.addBool("creditcard").addBool("date").addBool("digits").addBool("email").addBool("number").addBool("url");t.addMinMax("length","minlength","maxlength","rangelength").addMinMax("range","min","max","range");t.add("equalto",["other"],function(t){var r=e(t.element.name),u=t.params.other,s=o(u,r),h=n(t.form).find(":input[name='"+f(s)+"']")[0];i(t,"equalTo",h)});t.add("required",function(n){(n.element.tagName.toUpperCase()!=="INPUT"||n.element.type.toUpperCase()!=="CHECKBOX")&&i(n,"required",!0)});t.add("remote",["url","type","additionalfields"],function(t){var r={url:t.params.url,type:t.params.type||"GET",data:{}},u=e(t.element.name);n.each(h(t.params.additionalfields||t.element.name),function(i,e){var s=o(e,u);r.data[s]=function(){return n(t.form).find(":input[name='"+f(s)+"']").val()}});i(t,"remote",r)});t.add("password",["min","nonalphamin","regex"],function(n){n.params.min&&i(n,"minlength",n.params.min);n.params.nonalphamin&&i(n,"nonalphamin",n.params.nonalphamin);n.params.regex&&i(n,"regex",n.params.regex)});n(function(){r.unobtrusive.parse(document)})}(jQuery);window.Modernizr=function(n,t,i){function a(n){c.cssText=n}function vt(n,t){return a(y.join(n+";")+(t||""))}function h(n,t){return typeof n===t}function v(n,t){return!!~(""+n).indexOf(t)}function lt(n,t){var u,r;for(u in n)if(r=n[u],!v(r,"-")&&c[r]!==i)return t=="pfx"?r:!0;return!1}function yt(n,t,r){var f,u;for(f in n)if(u=t[n[f]],u!==i)return r===!1?n[f]:h(u,"function")?u.bind(r||t):u;return!1}function f(n,t,i){var r=n.charAt(0).toUpperCase()+n.slice(1),u=(n+" "+ot.join(r+" ")+r).split(" ");return h(t,"string")||h(t,"undefined")?lt(u,t):(u=(n+" "+st.join(r+" ")+r).split(" "),yt(u,t,i))}function pt(){u.input=function(i){for(var r=0,u=i.length;r<u;r++)w[i[r]]=!!(i[r]in o);return w.list&&(w.list=!!(t.createElement("datalist")&&n.HTMLDataListElement)),w}("autocomplete autofocus list placeholder max min multiple pattern required step".split(" "));u.inputtypes=function(n){for(var u=0,r,f,e,h=n.length;u<h;u++)o.setAttribute("type",f=n[u]),r=o.type!=="text",r&&(o.value=g,o.style.cssText="position:absolute;visibility:hidden;",/^range$/.test(f)&&o.style.WebkitAppearance!==i?(s.appendChild(o),e=t.defaultView,r=e.getComputedStyle&&e.getComputedStyle(o,null).WebkitAppearance!=="textfield"&&o.offsetHeight!==0,s.removeChild(o)):/^(search|tel)$/.test(f)||(r=/^(url|email)$/.test(f)?o.checkValidity&&o.checkValidity()===!1:o.value!=g)),ht[n[u]]=!!r;return ht}("search tel url email datetime date month week time datetime-local number range color".split(" "))}var u={},d=!0,s=t.documentElement,e="modernizr",ut=t.createElement(e),c=ut.style,o=t.createElement("input"),g=":)",ft={}.toString,y=" -webkit- -moz- -o- -ms- ".split(" "),et="Webkit Moz O ms",ot=et.split(" "),st=et.toLowerCase().split(" "),p={svg:"http://www.w3.org/2000/svg"},r={},ht={},w={},nt=[],tt=nt.slice,b,l=function(n,i,r,u){var l,a,c,v,f=t.createElement("div"),h=t.body,o=h||t.createElement("body");if(parseInt(r,10))while(r--)c=t.createElement("div"),c.id=u?u[r]:e+(r+1),f.appendChild(c);return l=["­",'<style id="s',e,'">',n,"<\/style>"].join(""),f.id=e,(h?f:o).innerHTML+=l,o.appendChild(f),h||(o.style.background="",o.style.overflow="hidden",v=s.style.overflow,s.style.overflow="hidden",s.appendChild(o)),a=i(f,n),h?f.parentNode.removeChild(f):(o.parentNode.removeChild(o),s.style.overflow=v),!!a},at=function(t){var i=n.matchMedia||n.msMatchMedia,r;return i?i(t).matches:(l("@media "+t+" { #"+e+" { position: absolute; } }",function(t){r=(n.getComputedStyle?getComputedStyle(t,null):t.currentStyle).position=="absolute"}),r)},ct=function(){function r(r,u){u=u||t.createElement(n[r]||"div");r="on"+r;var f=r in u;return f||(u.setAttribute||(u=t.createElement("div")),u.setAttribute&&u.removeAttribute&&(u.setAttribute(r,""),f=h(u[r],"function"),h(u[r],"undefined")||(u[r]=i),u.removeAttribute(r))),u=null,f}var n={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return r}(),it={}.hasOwnProperty,rt,k;rt=h(it,"undefined")||h(it.call,"undefined")?function(n,t){return t in n&&h(n.constructor.prototype[t],"undefined")}:function(n,t){return it.call(n,t)};Function.prototype.bind||(Function.prototype.bind=function(n){var t=this,i,r;if(typeof t!="function")throw new TypeError;return i=tt.call(arguments,1),r=function(){var f,e,u;return this instanceof r?(f=function(){},f.prototype=t.prototype,e=new f,u=t.apply(e,i.concat(tt.call(arguments))),Object(u)===u)?u:e:t.apply(n,i.concat(tt.call(arguments)))},r});r.flexbox=function(){return f("flexWrap")};r.flexboxlegacy=function(){return f("boxDirection")};r.canvas=function(){var n=t.createElement("canvas");return!!(n.getContext&&n.getContext("2d"))};r.canvastext=function(){return!!(u.canvas&&h(t.createElement("canvas").getContext("2d").fillText,"function"))};r.webgl=function(){return!!n.WebGLRenderingContext};r.touch=function(){var i;return"ontouchstart"in n||n.DocumentTouch&&t instanceof DocumentTouch?i=!0:l(["@media (",y.join("touch-enabled),("),e,")","{#modernizr{top:9px;position:absolute}}"].join(""),function(n){i=n.offsetTop===9}),i};r.geolocation=function(){return"geolocation"in navigator};r.postmessage=function(){return!!n.postMessage};r.websqldatabase=function(){return!!n.openDatabase};r.indexedDB=function(){return!!f("indexedDB",n)};r.hashchange=function(){return ct("hashchange",n)&&(t.documentMode===i||t.documentMode>7)};r.history=function(){return!!(n.history&&history.pushState)};r.draganddrop=function(){var n=t.createElement("div");return"draggable"in n||"ondragstart"in n&&"ondrop"in n};r.websockets=function(){return"WebSocket"in n||"MozWebSocket"in n};r.rgba=function(){return a("background-color:rgba(150,255,150,.5)"),v(c.backgroundColor,"rgba")};r.hsla=function(){return a("background-color:hsla(120,40%,100%,.5)"),v(c.backgroundColor,"rgba")||v(c.backgroundColor,"hsla")};r.multiplebgs=function(){return a("background:url(https://),url(https://),red url(https://)"),/(url\s*\(.*?){3}/.test(c.background)};r.backgroundsize=function(){return f("backgroundSize")};r.borderimage=function(){return f("borderImage")};r.borderradius=function(){return f("borderRadius")};r.boxshadow=function(){return f("boxShadow")};r.textshadow=function(){return t.createElement("div").style.textShadow===""};r.opacity=function(){return vt("opacity:.55"),/^0.55$/.test(c.opacity)};r.cssanimations=function(){return f("animationName")};r.csscolumns=function(){return f("columnCount")};r.cssgradients=function(){var n="background-image:";return a((n+"-webkit- ".split(" ").join("gradient(linear,left top,right bottom,from(#9f9),to(white));"+n)+y.join("linear-gradient(left top,#9f9, white);"+n)).slice(0,-n.length)),v(c.backgroundImage,"gradient")};r.cssreflections=function(){return f("boxReflect")};r.csstransforms=function(){return!!f("transform")};r.csstransforms3d=function(){var n=!!f("perspective");return n&&"webkitPerspective"in s.style&&l("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}",function(t){n=t.offsetLeft===9&&t.offsetHeight===3}),n};r.csstransitions=function(){return f("transition")};r.fontface=function(){var n;return l('@font-face {font-family:"font";src:url("https://")}',function(i,r){var f=t.getElementById("smodernizr"),u=f.sheet||f.styleSheet,e=u?u.cssRules&&u.cssRules[0]?u.cssRules[0].cssText:u.cssText||"":"";n=/src/i.test(e)&&e.indexOf(r.split(" ")[0])===0}),n};r.generatedcontent=function(){var n;return l(["#",e,"{font:0/0 a}#",e,':after{content:"',g,'";visibility:hidden;font:3px/1 a}'].join(""),function(t){n=t.offsetHeight>=3}),n};r.video=function(){var i=t.createElement("video"),n=!1;try{(n=!!i.canPlayType)&&(n=new Boolean(n),n.ogg=i.canPlayType('video/ogg; codecs="theora"').replace(/^no$/,""),n.h264=i.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/,""),n.webm=i.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,""))}catch(r){}return n};r.audio=function(){var i=t.createElement("audio"),n=!1;try{(n=!!i.canPlayType)&&(n=new Boolean(n),n.ogg=i.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),n.mp3=i.canPlayType("audio/mpeg;").replace(/^no$/,""),n.wav=i.canPlayType('audio/wav; codecs="1"').replace(/^no$/,""),n.m4a=(i.canPlayType("audio/x-m4a;")||i.canPlayType("audio/aac;")).replace(/^no$/,""))}catch(r){}return n};r.localstorage=function(){try{return localStorage.setItem(e,e),localStorage.removeItem(e),!0}catch(n){return!1}};r.sessionstorage=function(){try{return sessionStorage.setItem(e,e),sessionStorage.removeItem(e),!0}catch(n){return!1}};r.webworkers=function(){return!!n.Worker};r.applicationcache=function(){return!!n.applicationCache};r.svg=function(){return!!t.createElementNS&&!!t.createElementNS(p.svg,"svg").createSVGRect};r.inlinesvg=function(){var n=t.createElement("div");return n.innerHTML="<svg/>",(n.firstChild&&n.firstChild.namespaceURI)==p.svg};r.smil=function(){return!!t.createElementNS&&/SVGAnimate/.test(ft.call(t.createElementNS(p.svg,"animate")))};r.svgclippaths=function(){return!!t.createElementNS&&/SVGClipPath/.test(ft.call(t.createElementNS(p.svg,"clipPath")))};for(k in r)rt(r,k)&&(b=k.toLowerCase(),u[b]=r[k](),nt.push((u[b]?"":"no-")+b));return u.input||pt(),u.addTest=function(n,t){if(typeof n=="object")for(var r in n)rt(n,r)&&u.addTest(r,n[r]);else{if(n=n.toLowerCase(),u[n]!==i)return u;t=typeof t=="function"?t():t;typeof d!="undefined"&&d&&(s.className+=" "+(t?"":"no-")+n);u[n]=t}return u},a(""),ut=o=null,function(n,t){function p(n,t){var i=n.createElement("p"),r=n.getElementsByTagName("head")[0]||n.documentElement;return i.innerHTML="x<style>"+t+"<\/style>",r.insertBefore(i.lastChild,r.firstChild)}function c(){var n=r.elements;return typeof n=="string"?n.split(" "):n}function o(n){var t=h[n[s]];return t||(t={},e++,n[s]=e,h[e]=t),t}function l(n,r,u){if(r||(r=t),i)return r.createElement(n);u||(u=o(r));var f;return f=u.cache[n]?u.cache[n].cloneNode():y.test(n)?(u.cache[n]=u.createElem(n)).cloneNode():u.createElem(n),f.canHaveChildren&&!v.test(n)?u.frag.appendChild(f):f}function w(n,r){if(n||(n=t),i)return n.createDocumentFragment();r=r||o(n);for(var f=r.frag.cloneNode(),u=0,e=c(),s=e.length;u<s;u++)f.createElement(e[u]);return f}function b(n,t){t.cache||(t.cache={},t.createElem=n.createElement,t.createFrag=n.createDocumentFragment,t.frag=t.createFrag());n.createElement=function(i){return r.shivMethods?l(i,n,t):t.createElem(i)};n.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+c().join().replace(/\w+/g,function(n){return t.createElem(n),t.frag.createElement(n),'c("'+n+'")'})+");return n}")(r,t.frag)}function a(n){n||(n=t);var u=o(n);return!r.shivCSS||f||u.hasCSS||(u.hasCSS=!!p(n,"article,aside,figcaption,figure,footer,header,hgroup,nav,section{display:block}mark{background:#FF0;color:#000}")),i||b(n,u),n}var u=n.html5||{},v=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,y=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,f,s="_html5shiv",e=0,h={},i,r;(function(){try{var n=t.createElement("a");n.innerHTML="<xyz><\/xyz>";f="hidden"in n;i=n.childNodes.length==1||function(){t.createElement("a");var n=t.createDocumentFragment();return typeof n.cloneNode=="undefined"||typeof n.createDocumentFragment=="undefined"||typeof n.createElement=="undefined"}()}catch(r){f=!0;i=!0}})();r={elements:u.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",shivCSS:u.shivCSS!==!1,supportsUnknownElements:i,shivMethods:u.shivMethods!==!1,type:"default",shivDocument:a,createElement:l,createDocumentFragment:w};n.html5=r;a(t)}(this,t),u._version="2.6.2",u._prefixes=y,u._domPrefixes=st,u._cssomPrefixes=ot,u.mq=at,u.hasEvent=ct,u.testProp=function(n){return lt([n])},u.testAllProps=f,u.testStyles=l,u.prefixed=function(n,t,i){return t?f(n,t,i):f(n,"pfx")},s.className=s.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(d?" js "+nt.join(" "):""),u}(this,this.document),function(n,t,i){function l(n){var t={},r=/^jQuery\d+$/;return i.each(n.attributes,function(n,i){i.specified&&!r.test(i.name)&&(t[i.name]=i.value)}),t}function f(n,r){var f=this,u=i(f);if(f.value==u.attr("placeholder")&&u.hasClass("placeholder"))if(u.data("placeholder-password")){if(u=u.hide().next().show().attr("id",u.removeAttr("id").data("placeholder-id")),n===!0)return u[0].value=r;u.focus()}else f.value="",u.removeClass("placeholder"),f==t.activeElement&&f.select()}function s(){var t,r=this,n=i(r),e=n,u=this.id;if(r.value==""){if(r.type=="password"){if(!n.data("placeholder-textinput")){try{t=n.clone().attr({type:"text"})}catch(o){t=i("<input>").attr(i.extend(l(this),{type:"text"}))}t.removeAttr("name").data({"placeholder-password":!0,"placeholder-id":u}).bind("focus.placeholder",f);n.data({"placeholder-textinput":t,"placeholder-id":u}).before(t)}n=n.removeAttr("id").hide().prev().attr("id",u).show()}n.addClass("placeholder");n[0].value=n.attr("placeholder")}else n.removeClass("placeholder")}var u="placeholder"in t.createElement("input"),e="placeholder"in t.createElement("textarea"),h=i.fn,c=i.valHooks,o,r;u&&e?(r=h.placeholder=function(){return this},r.input=r.textarea=!0):(r=h.placeholder=function(){var n=this;return n.filter((u?"textarea":":input")+"[placeholder]").not(".placeholder").bind({"focus.placeholder":f,"blur.placeholder":s}).data("placeholder-enabled",!0).trigger("blur.placeholder"),n},r.input=u,r.textarea=e,o={get:function(n){var t=i(n);return t.data("placeholder-enabled")&&t.hasClass("placeholder")?"":n.value},set:function(n,r){var u=i(n);return u.data("placeholder-enabled")?(r==""?(n.value=r,n!=t.activeElement&&s.call(n)):u.hasClass("placeholder")?f.call(n,!0,r)||(n.value=r):n.value=r,u):n.value=r}},u||(c.input=o),e||(c.textarea=o),i(function(){i(t).delegate("form","submit.placeholder",function(){var n=i(".placeholder",this).each(f);setTimeout(function(){n.each(s)},10)})}),i(n).bind("beforeunload.placeholder",function(){i(".placeholder").each(function(){this.value=""})}))}(this,document,jQuery),function(n){"function"==typeof define&&define.amd?define(["jquery"],n):n(jQuery)}(function(n){function r(n){return n}function u(n){return decodeURIComponent(n.replace(f," "))}function i(n){0===n.indexOf('"')&&(n=n.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\"));try{return t.json?JSON.parse(n):n}catch(i){}}var f=/\+/g,t=n.cookie=function(f,e,o){var l,s;if(void 0!==e)return(o=n.extend({},t.defaults,o),"number"==typeof o.expires)&&(l=o.expires,s=o.expires=new Date,s.setDate(s.getDate()+l)),e=t.json?JSON.stringify(e):e+"",document.cookie=[t.raw?f:encodeURIComponent(f),"=",t.raw?e:encodeURIComponent(e),o.expires?"; expires="+o.expires.toUTCString():"",o.path?"; path="+o.path:"",o.domain?"; domain="+o.domain:"",o.secure?"; secure":""].join("");for(var a=t.raw?r:u,v=document.cookie.split("; "),h=f?void 0:{},c=0,b=v.length;b>c;c++){var y=v[c].split("="),p=a(y.shift()),w=a(y.join("="));if(f&&f===p){h=i(w);break}f||(h[p]=i(w))}return h};t.defaults={};n.removeCookie=function(t,i){return void 0!==n.cookie(t)?(n.cookie(t,"",n.extend(i,{expires:-1})),!0):!1}});typeof JSON!="object"&&(JSON={}),function(){"use strict";function i(n){return n<10?"0"+n:n}function o(n){return e.lastIndex=0,e.test(n)?'"'+n.replace(e,function(n){var t=s[n];return typeof t=="string"?t:"\\u"+("0000"+n.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+n+'"'}function u(i,f){var s,l,h,a,v=n,c,e=f[i];e&&typeof e=="object"&&typeof e.toJSON=="function"&&(e=e.toJSON(i));typeof t=="function"&&(e=t.call(f,i,e));switch(typeof e){case"string":return o(e);case"number":return isFinite(e)?String(e):"null";case"boolean":case"null":return String(e);case"object":if(!e)return"null";if(n+=r,c=[],Object.prototype.toString.apply(e)==="[object Array]"){for(a=e.length,s=0;s<a;s+=1)c[s]=u(s,e)||"null";return h=c.length===0?"[]":n?"[\n"+n+c.join(",\n"+n)+"\n"+v+"]":"["+c.join(",")+"]",n=v,h}if(t&&typeof t=="object")for(a=t.length,s=0;s<a;s+=1)typeof t[s]=="string"&&(l=t[s],h=u(l,e),h&&c.push(o(l)+(n?": ":":")+h));else for(l in e)Object.prototype.hasOwnProperty.call(e,l)&&(h=u(l,e),h&&c.push(o(l)+(n?": ":":")+h));return h=c.length===0?"{}":n?"{\n"+n+c.join(",\n"+n)+"\n"+v+"}":"{"+c.join(",")+"}",n=v,h}}typeof Date.prototype.toJSON!="function"&&(Date.prototype.toJSON=function(){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+i(this.getUTCMonth()+1)+"-"+i(this.getUTCDate())+"T"+i(this.getUTCHours())+":"+i(this.getUTCMinutes())+":"+i(this.getUTCSeconds())+"Z":null},String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(){return this.valueOf()});var f=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,e=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,n,r,s={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},t;typeof JSON.stringify!="function"&&(JSON.stringify=function(i,f,e){var o;if(n="",r="",typeof e=="number")for(o=0;o<e;o+=1)r+=" ";else typeof e=="string"&&(r=e);if(t=f,f&&typeof f!="function"&&(typeof f!="object"||typeof f.length!="number"))throw new Error("JSON.stringify");return u("",{"":i})});typeof JSON.parse!="function"&&(JSON.parse=function(text,reviver){function walk(n,t){var r,u,i=n[t];if(i&&typeof i=="object")for(r in i)Object.prototype.hasOwnProperty.call(i,r)&&(u=walk(i,r),u!==undefined?i[r]=u:delete i[r]);return reviver.call(n,t,i)}var j;if(text=String(text),f.lastIndex=0,f.test(text)&&(text=text.replace(f,function(n){return"\\u"+("0000"+n.charCodeAt(0).toString(16)).slice(-4)})),/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return j=eval("("+text+")"),typeof reviver=="function"?walk({"":j},""):j;throw new SyntaxError("JSON.parse");})}(),function(){function ut(){var u=!1,n;if("localStorage"in window)try{window.localStorage.setItem("_tmptest","tmpval");u=!0;window.localStorage.removeItem("_tmptest")}catch(f){}if(u)try{window.localStorage&&(i=window.localStorage,r="localStorage",s=i.jStorage_update)}catch(e){}else if("globalStorage"in window)try{window.globalStorage&&(i=window.globalStorage[window.location.hostname],r="globalStorage",s=i.jStorage_update)}catch(o){}else if(t=document.createElement("link"),t.addBehavior){t.style.behavior="url(#default#userData)";document.getElementsByTagName("head")[0].appendChild(t);try{t.load("jStorage")}catch(h){t.setAttribute("jStorage","{}");t.save("jStorage");t.load("jStorage")}n="{}";try{n=t.getAttribute("jStorage")}catch(c){}try{s=t.getAttribute("jStorage_update")}catch(a){}i.jStorage=n;r="userDataBehavior"}else{t=null;return}it();p();y("local");y("session");ft();rt();"addEventListener"in window&&window.addEventListener("pageshow",function(n){n.persisted&&l()},!1)}function y(t,i){function l(){if(t=="session")try{o=u.parse(window.name||"{}")}catch(n){o={}}}function a(){t=="session"&&(window.name=u.stringify(o))}var c=!1,s=0,h,f,o={},v=Math.random();if(i||typeof window[t+"Storage"]=="undefined"){if(t=="local"&&window.globalStorage){localStorage=window.globalStorage[window.location.hostname];return}if(r=="userDataBehavior"){i&&window[t+"Storage"]&&window[t+"Storage"].parentNode&&window[t+"Storage"].parentNode.removeChild(window[t+"Storage"]);f=document.createElement("button");document.getElementsByTagName("head")[0].appendChild(f);t=="local"?o=n:t=="session"&&l();for(h in o)o.hasOwnProperty(h)&&h!="__jstorage_meta"&&h!="length"&&typeof o[h]!="undefined"&&(h in f||s++,f[h]=o[h]);f.length=s;f.key=function(n){var i=0,t;l();for(t in o)if(o.hasOwnProperty(t)&&t!="__jstorage_meta"&&t!="length"&&typeof o[t]!="undefined"){if(i==n)return t;i++}};f.getItem=function(n){return(l(),t=="session")?o[n]:e.jStorage.get(n)};f.setItem=function(n,t){typeof t!="undefined"&&(f[n]=(t||"").toString())};f.removeItem=function(n){if(t=="local")return e.jStorage.deleteKey(n);f[n]=undefined;c=!0;n in f&&f.removeAttribute(n);c=!1};f.clear=function(){if(t=="session"){window.name="";y("session",!0);return}e.jStorage.flush()};t=="local"&&(d=function(n,t){n!="length"&&(c=!0,typeof t=="undefined"?n in f&&(s--,f.removeAttribute(n)):(n in f||s++,f[n]=(t||"").toString()),f.length=s,c=!1)});f.attachEvent("onpropertychange",function(n){if(n.propertyName!="length"&&!c&&n.propertyName!="length"){if(t=="local")n.propertyName in o||typeof f[n.propertyName]=="undefined"||s++;else if(t=="session"){l();typeof f[n.propertyName]=="undefined"||n.propertyName in o?typeof f[n.propertyName]=="undefined"&&n.propertyName in o?(delete o[n.propertyName],s--):o[n.propertyName]=f[n.propertyName]:(o[n.propertyName]=f[n.propertyName],s++);a();f.length=s;return}e.jStorage.set(n.propertyName,f[n.propertyName]);f.length=s}});window[t+"Storage"]=f}}}function tt(){var n="{}";if(r=="userDataBehavior"){t.load("jStorage");try{n=t.getAttribute("jStorage")}catch(u){}try{s=t.getAttribute("jStorage_update")}catch(f){}i.jStorage=n}it();p();rt()}function ft(){r=="localStorage"||r=="globalStorage"?"addEventListener"in window?window.addEventListener("storage",l,!1):document.attachEvent("onstorage",l):r=="userDataBehavior"&&setInterval(l,1e3)}function l(){var n;clearTimeout(g);g=setTimeout(function(){if(r=="localStorage"||r=="globalStorage")n=i.jStorage_update;else if(r=="userDataBehavior"){t.load("jStorage");try{n=t.getAttribute("jStorage_update")}catch(u){}}n&&n!=s&&(s=n,et())},25)}function et(){var i=u.parse(u.stringify(n.__jstorage_meta.CRC32)),r,t,f,e;tt();r=u.parse(u.stringify(n.__jstorage_meta.CRC32));f=[];e=[];for(t in i)if(i.hasOwnProperty(t)){if(!r[t]){e.push(t);continue}i[t]!=r[t]&&String(i[t]).substr(0,2)=="2."&&f.push(t)}for(t in r)r.hasOwnProperty(t)&&(i[t]||f.push(t));c(f,"updated");c(e,"deleted")}function c(n,t){var u,i,e,r,o;if(n=[].concat(n||[]),t=="flushed"){n=[];for(u in f)f.hasOwnProperty(u)&&n.push(u);t="deleted"}for(i=0,e=n.length;i<e;i++)if(f[n[i]])for(r=0,o=f[n[i]].length;r<o;r++)f[n[i]][r](n[i],t)}function a(){var n=(+new Date).toString();r=="localStorage"||r=="globalStorage"?i.jStorage_update=n:r=="userDataBehavior"&&(t.setAttribute("jStorage_update",n),t.save("jStorage"));l()}function it(){if(i.jStorage)try{n=u.parse(String(i.jStorage))}catch(t){i.jStorage="{}"}else i.jStorage="{}";w=i.jStorage?String(i.jStorage).length:0;n.__jstorage_meta||(n.__jstorage_meta={});n.__jstorage_meta.CRC32||(n.__jstorage_meta.CRC32={})}function v(){st();try{i.jStorage=u.stringify(n);t&&(t.setAttribute("jStorage",i.jStorage),t.save("jStorage"));w=i.jStorage?String(i.jStorage).length:0}catch(r){}}function o(n){if(!n||typeof n!="string"&&typeof n!="number")throw new TypeError("Key name must be string or numeric");if(n=="__jstorage_meta")throw new TypeError("Reserved key name");return!0}function p(){var u,t,i,f,r=Infinity,e=!1,o=[];if(clearTimeout(nt),n.__jstorage_meta&&typeof n.__jstorage_meta.TTL=="object"){u=+new Date;i=n.__jstorage_meta.TTL;f=n.__jstorage_meta.CRC32;for(t in i)i.hasOwnProperty(t)&&(i[t]<=u?(delete i[t],delete f[t],delete n[t],e=!0,o.push(t)):i[t]<r&&(r=i[t]));r!=Infinity&&(nt=setTimeout(p,r-u));e&&(v(),a(),c(o,"deleted"))}}function rt(){var t,r,i;if(n.__jstorage_meta.PubSub){for(r=b,i=len=n.__jstorage_meta.PubSub.length-1;i>=0;i--)t=n.__jstorage_meta.PubSub[i],t[0]>b&&(r=t[0],ot(t[1],t[2]));b=r}}function ot(n,t){if(h[n])for(var i=0,r=h[n].length;i<r;i++)h[n][i](n,u.parse(u.stringify(t)))}function st(){var i,t,r;if(n.__jstorage_meta.PubSub){for(i=+new Date-2e3,t=0,r=n.__jstorage_meta.PubSub.length;t<r;t++)if(n.__jstorage_meta.PubSub[t][0]<=i){n.__jstorage_meta.PubSub.splice(t,n.__jstorage_meta.PubSub.length-t);break}n.__jstorage_meta.PubSub.length||delete n.__jstorage_meta.PubSub}}function ht(t,i){n.__jstorage_meta||(n.__jstorage_meta={});n.__jstorage_meta.PubSub||(n.__jstorage_meta.PubSub=[]);n.__jstorage_meta.PubSub.unshift([+new Date,t,i]);v();a()}function ct(n,t){for(var f=n.length,i=t^f,u=0,r;f>=4;)r=n.charCodeAt(u)&255|(n.charCodeAt(++u)&255)<<8|(n.charCodeAt(++u)&255)<<16|(n.charCodeAt(++u)&255)<<24,r=(r&65535)*1540483477+(((r>>>16)*1540483477&65535)<<16),r^=r>>>24,r=(r&65535)*1540483477+(((r>>>16)*1540483477&65535)<<16),i=(i&65535)*1540483477+(((i>>>16)*1540483477&65535)<<16)^r,f-=4,++u;switch(f){case 3:i^=(n.charCodeAt(u+2)&255)<<16;case 2:i^=(n.charCodeAt(u+1)&255)<<8;case 1:i^=n.charCodeAt(u)&255;i=(i&65535)*1540483477+(((i>>>16)*1540483477&65535)<<16)}return i^=i>>>13,i=(i&65535)*1540483477+(((i>>>16)*1540483477&65535)<<16),i^=i>>>15,i>>>0}var e=window.jQuery||window.$||(window.$={}),u={parse:window.JSON&&(window.JSON.parse||window.JSON.decode)||String.prototype.evalJSON&&function(n){return String(n).evalJSON()}||e.parseJSON||e.evalJSON,stringify:Object.toJSON||window.JSON&&(window.JSON.stringify||window.JSON.encode)||e.toJSON};if(!u.parse||!u.stringify)throw new Error("No JSON support found, include //cdnjs.cloudflare.com/ajax/libs/json2/20110223/json2.js to page");var n={},i={jStorage:"{}"},t=null,w=0,r=!1,f={},g=!1,s=0,h={},b=+new Date,nt,k={isXML:function(n){var t=(n?n.ownerDocument||n:0).documentElement;return t?t.nodeName!=="HTML":!1},encode:function(n){if(!this.isXML(n))return!1;try{return(new XMLSerializer).serializeToString(n)}catch(t){try{return n.xml}catch(i){}}return!1},decode:function(n){var i="DOMParser"in window&&(new DOMParser).parseFromString||window.ActiveXObject&&function(n){var t=new ActiveXObject("Microsoft.XMLDOM");return t.async="false",t.loadXML(n),t},t;return i?(t=i.call("DOMParser"in window&&new DOMParser||window,n,"text/xml"),this.isXML(t)?t:!1):!1}},d=function(){};e.jStorage={version:"0.3.1",set:function(t,i,r){if(o(t),r=r||{},typeof i=="undefined")return this.deleteKey(t),i;if(k.isXML(i))i={_is_xml:!0,xml:k.encode(i)};else{if(typeof i=="function")return undefined;i&&typeof i=="object"&&(i=u.parse(u.stringify(i)))}return n[t]=i,n.__jstorage_meta.CRC32[t]="2."+ct(u.stringify(i)),this.setTTL(t,r.TTL||0),d(t,i),c(t,"updated"),i},get:function(t,i){return(o(t),t in n)?n[t]&&typeof n[t]=="object"&&n[t]._is_xml?k.decode(n[t].xml):n[t]:typeof i=="undefined"?null:i},deleteKey:function(t){return(o(t),t in n)?(delete n[t],typeof n.__jstorage_meta.TTL=="object"&&t in n.__jstorage_meta.TTL&&delete n.__jstorage_meta.TTL[t],delete n.__jstorage_meta.CRC32[t],d(t,undefined),v(),a(),c(t,"deleted"),!0):!1},setTTL:function(t,i){var r=+new Date;return(o(t),i=Number(i)||0,t in n)?(n.__jstorage_meta.TTL||(n.__jstorage_meta.TTL={}),i>0?n.__jstorage_meta.TTL[t]=r+i:delete n.__jstorage_meta.TTL[t],v(),p(),a(),!0):!1},getTTL:function(t){var r=+new Date,i;return(o(t),t in n&&n.__jstorage_meta.TTL&&n.__jstorage_meta.TTL[t])?(i=n.__jstorage_meta.TTL[t]-r,i||0):0},flush:function(){return n={__jstorage_meta:{CRC32:{}}},y("local",!0),v(),a(),c(null,"flushed"),!0},storageObj:function(){function t(){}return t.prototype=n,new t},index:function(){var i=[];for(var t in n)n.hasOwnProperty(t)&&t!="__jstorage_meta"&&i.push(t);return i},storageSize:function(){return w},currentBackend:function(){return r},storageAvailable:function(){return!!r},listenKeyChange:function(n,t){o(n);f[n]||(f[n]=[]);f[n].push(t)},stopListening:function(n,t){if(o(n),f[n]){if(!t){delete f[n];return}for(var i=f[n].length-1;i>=0;i--)f[n][i]==t&&f[n].splice(i,1)}},subscribe:function(n,t){if(n=(n||"").toString(),!n)throw new TypeError("Channel not defined");h[n]||(h[n]=[]);h[n].push(t)},publish:function(n,t){if(n=(n||"").toString(),!n)throw new TypeError("Channel not defined");ht(n,t)},reInit:function(){tt()}};ut()}(),function(n,t){function ut(){}function bi(n,t){if(t)return"'"+n.split("'").join("\\'").split('\\"').join('\\\\\\"').replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t")+"'";var i=n.charAt(0),r=n.substring(1);return i==="="?"+("+r+")+":i===":"?"+e("+r+")+":";"+n+";o+="}function e(n,t,i){return(n=n+"",t=t||2,i=t-n.length,i)?rr[t].substring(0,i)+n:n}function ur(t,u){var c=r.browser,o,g=t.css("direction")=="rtl",e,v;if(t.parent().hasClass("k-animation-container"))e=t.parent(".k-animation-container"),v=e[0].style,e.is(":hidden")&&e.show(),o=tt.test(v.width)||tt.test(v.height),o||e.css({width:t.outerWidth(),height:t.outerHeight(),boxSizing:"content-box",mozBoxSizing:"content-box",webkitBoxSizing:"content-box"});else{var y=t.css(i.support.transitions.css+"box-shadow")||t.css("box-shadow"),f=y?y.match(vi)||[0,0,0,0,0]:[0,0,0,0,0],l=p.max(+f[3],+(f[4]||0)),a=-f[1]+l,w=+f[1]+l,b=+f[2]+l,s=t[0].style.width,h=t[0].style.height,k=tt.test(s),d=tt.test(h);c.opera&&(a=w=b=5);o=k||d;!k&&(!u||u&&s)&&(s=t.outerWidth());!d&&(!u||u&&h)&&(h=t.outerHeight());t.wrap(n("<div/>").addClass("k-animation-container").css({width:s,height:h,marginLeft:a*(g?1:-1),paddingLeft:a,paddingRight:w,paddingBottom:b}));o&&t.css({width:"100%",height:"100%",boxSizing:"border-box",mozBoxSizing:"border-box",webkitBoxSizing:"border-box"})}return c.msie&&p.floor(c.version)<=7&&(t.css({zoom:1}),t.children(".k-menu").width(t.width())),t.parent()}function kt(n){for(var t=1,i=arguments.length,t=1;t<i;t++)dt(n,arguments[t]);return n}function dt(n,t){var o=i.data.ObservableArray,s=i.data.DataSource,u,r,f,e;for(u in t)r=t[u],f=typeof r,f===a&&r!==null&&r.constructor!==Array&&r.constructor!==o&&r.constructor!==s?r instanceof Date?n[u]=new Date(r.getTime()):ft(r.clone)?n[u]=r.clone():(e=n[u],n[u]=typeof e===a?e||{}:{},dt(n[u],r)):f!==rt&&(n[u]=r);return n}function ct(n,i,r){for(var u in i)if(i.hasOwnProperty(u)&&i[u].test(n))return u;return r!==t?r:n}function fr(n){return n.replace(/([a-z][A-Z])/g,function(n){return n.charAt(0)+"-"+n.charAt(1).toLowerCase()})}function gt(n){return n.replace(/\-(\w)/g,function(n,t){return t.toUpperCase()})}function er(t,r){var u={},f;return document.defaultView&&document.defaultView.getComputedStyle?(f=document.defaultView.getComputedStyle(t,""),r&&n.each(r,function(n,t){u[t]=f.getPropertyValue(t)})):(f=t.currentStyle,r&&n.each(r,function(n,t){u[t]=f[gt(t)]})),i.size(u)||(u=f),u}function or(n){var t=0;for(var i in n)n.hasOwnProperty(i)&&i!="toJSON"&&t++;return t}function sr(n,t,i){var u,f,e,o;return(t||(t="offset"),u=n[t](),f=r.mobileOS,r.touch&&f.ios&&f.flatVersion<410&&(e=t=="offset"?u:n.offset(),o=u.left==e.left&&u.top==e.top,o))?{top:u.top-window.scrollY,left:u.left-window.scrollX}:(r.browser.msie&&(r.pointers||r.msPointers)&&!i&&(u.top-=window.pageYOffset-document.documentElement.scrollTop,u.left-=window.pageXOffset-document.documentElement.scrollLeft),u)}function hr(n){var t={};return d(typeof n=="string"?n.split(" "):n,function(n){t[n]=this}),t}function cr(n){return new i.effects.Element(n)}function ti(n,t,i,r){return typeof n===u&&(ft(t)&&(r=t,t=400,i=!1),ft(i)&&(r=i,i=!1),typeof t===pt&&(i=t,t=400),n={effects:n,duration:t,reverse:i,complete:r}),s({effects:{},duration:400,reverse:!1,init:g,teardown:g,hide:!1},n,{completeCallback:n.complete,complete:g})}function ii(t,i,r,u,f){for(var e=0,s=t.length,o;e<s;e++)o=n(t[e]),o.queue(function(){h.promise(o,ti(i,r,u,f))});return t}function lr(n,t,i,r,u,f){return h.transitionPromise(n,t,ti(i,r,u,f))}function ar(n,t,i,r){return t&&(t=t.split(" "),d(t,function(t,i){n.toggleClass(i,r)})),n}function wr(n){return(""+n).replace(vr,"&").replace(yr,"<").replace(pr,">")}function at(n,r){var u;return r.indexOf("data")===0&&(r=r.substring(4),r=r.charAt(0).toLowerCase()+r.substring(1)),r=r.replace(gr,"-$1"),u=n.getAttribute("data-"+i.ns+r),u===null?u=t:u==="null"?u=null:u==="true"?u=!0:u==="false"?u=!1:yi.test(u)?u=parseFloat(u):kr.test(u)&&!dr.test(u)&&(u=new Function("return ("+u+")")()),u}function fi(r,u){var o={},e,f;for(e in u)f=at(r,e),f!==t&&(br.test(e)&&(f=i.template(n("#"+f).html())),o[e]=f);return o}function nu(t,i){return n.contains(t,i)?-1:1}function tu(){var t=n(this);return n.inArray(t.attr("data-role"),["slider","rangeslider"])>0||t.is(":visible")}function iu(n,t){var i=n.nodeName.toLowerCase();return(/input|select|textarea|button|object/.test(i)?!n.disabled:"a"===i?n.href||t:t)&&ru(n)}function ru(t){return!n(t).parents().addBack().filter(function(){return n.css(this,"visibility")==="hidden"||n.expr.filters.hidden(this)}).length}function o(n,t){return new o.fn.init(n,t)}var i=window.kendo=window.kendo||{cultures:{}},s=n.extend,d=n.each,li=n.isArray,ot=n.proxy,g=n.noop,p=Math,v,nt=window.JSON||{},r={},tt=/%/,ai=/\{(\d+)(:[^\}]+)?\}/g,vi=/(\d+(?:\.?)\d*)px\s*(\d+(?:\.?)\d*)px\s*(\d+(?:\.?)\d*)px\s*(\d+)?/i,yi=/^(\+|-?)\d+(\.?)\d*$/,c="function",u="string",l="number",a="object",it="null",pt="boolean",rt="undefined",wt={},bt={},st=[].slice,y=window.Globalize,ni,h,lt,ri,ui,w,ei,oi,hi,vt,et,ci,yt,k;i.version="2013.3.1324";ut.extend=function(n){var r=function(){},t,u=this,i=n&&n.init?n.init:function(){u.apply(this,arguments)},f;r.prototype=u.prototype;f=i.fn=i.prototype=new r;for(t in n)f[t]=typeof n[t]!==a||n[t]instanceof Array||n[t]===null?n[t]:s(!0,{},r.prototype[t],n[t]);return f.constructor=i,i.extend=u.extend,i};ut.prototype._initOptions=function(n){this.options=kt({},this.options,n)};var ft=i.isFunction=function(n){return typeof n=="function"},pi=function(){this._defaultPrevented=!0},wi=function(){return this._defaultPrevented===!0},ht=ut.extend({init:function(){this._events={}},bind:function(n,i,r){var f=this,e,s=typeof n===u?[n]:n,h,l,o,v=typeof i===c,a;if(i===t){for(e in n)f.bind(e,n[e]);return f}for(e=0,h=s.length;e<h;e++)n=s[e],o=v?i:i[n],o&&(r&&(l=o,o=function(){f.unbind(n,o);l.apply(f,arguments)}),a=f._events[n]=f._events[n]||[],a.push(o));return f},one:function(n,t){return this.bind(n,t,!0)},first:function(n,t){for(var r=this,e=typeof n===u?[n]:n,f,h=typeof t===c,s,i=0,o=e.length;i<o;i++)n=e[i],f=h?t:t[n],f&&(s=r._events[n]=r._events[n]||[],s.unshift(f));return r},trigger:function(n,t){var u=this,i=u._events[n],r,f;if(i){for(t=t||{},t.sender=u,t._defaultPrevented=!1,t.preventDefault=pi,t.isDefaultPrevented=wi,i=i.slice(),r=0,f=i.length;r<f;r++)i[r].call(u,t);return t._defaultPrevented===!0}return!1},unbind:function(n,i){var u=this,f=u._events[n],r;if(n===t)u._events={};else if(f)if(i)for(r=f.length-1;r>=0;r--)f[r]===i&&f.splice(r,1);else u._events[n]=[];return u}});var ki=/^\w+/,di=/\$\{([^}]*)\}/g,gi=/\\\}/g,nr=/__CURLY__/g,tr=/\\#/g,ir=/__SHARP__/g,rr=["","0","00","000","0000"];v={paramName:"data",useWithBlock:!0,render:function(n,t){for(var u="",i=0,r=t.length;i<r;i++)u+=n(t[i]);return u},compile:function(t,r){var h=s({},this,r),c=h.paramName,a=c.match(ki)[0],l=h.useWithBlock,u="var o,e=kendo.htmlEncode;",o,e,f;if(ft(t))return t.length===2?function(i){return t(n,{data:i}).join("")}:t;for(u+=l?"with("+c+"){":"",u+="o=",e=t.replace(gi,"__CURLY__").replace(di,"#=e($1)#").replace(nr,"}").replace(tr,"__SHARP__").split("#"),f=0;f<e.length;f++)u+=bi(e[f],f%2==0);u+=l?";}":";";u+="return o;";u=u.replace(ir,"#");try{return o=new Function(a,u),o._slotCount=Math.floor(e.length/2),o}catch(v){throw new Error(i.format("Invalid template:'{0}' Generated code:'{1}'",t,u));}}},function(){function o(n){return f.lastIndex=0,f.test(n)?'"'+n.replace(f,function(n){var t=s[n];return typeof t===u?t:"\\u"+("0000"+n.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+n+'"'}function r(f,e){var v,w,y,k,d=n,p,s=e[f],b;if(s&&typeof s===a&&typeof s.toJSON===c&&(s=s.toJSON(f)),typeof t===c&&(s=t.call(e,f,s)),b=typeof s,b===u)return o(s);if(b===l)return isFinite(s)?String(s):it;if(b===pt||b===it)return String(s);if(b===a){if(!s)return it;if(n+=i,p=[],h.apply(s)==="[object Array]"){for(k=s.length,v=0;v<k;v++)p[v]=r(v,s)||it;return y=p.length===0?"[]":n?"[\n"+n+p.join(",\n"+n)+"\n"+d+"]":"["+p.join(",")+"]",n=d,y}if(t&&typeof t===a)for(k=t.length,v=0;v<k;v++)typeof t[v]===u&&(w=t[v],y=r(w,s),y&&p.push(o(w)+(n?": ":":")+y));else for(w in s)Object.hasOwnProperty.call(s,w)&&(y=r(w,s),y&&p.push(o(w)+(n?": ":":")+y));return y=p.length===0?"{}":n?"{\n"+n+p.join(",\n"+n)+"\n"+d+"}":"{"+p.join(",")+"}",n=d,y}}var f=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,n,i,s={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},t,h={}.toString;typeof Date.prototype.toJSON!==c&&(Date.prototype.toJSON=function(){var n=this;return isFinite(n.valueOf())?e(n.getUTCFullYear(),4)+"-"+e(n.getUTCMonth()+1)+"-"+e(n.getUTCDate())+"T"+e(n.getUTCHours())+":"+e(n.getUTCMinutes())+":"+e(n.getUTCSeconds())+"Z":null},String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(){return this.valueOf()});typeof nt.stringify!==c&&(nt.stringify=function(f,e,o){var s;if(n="",i="",typeof o===l)for(s=0;s<o;s+=1)i+=" ";else typeof o===u&&(i=o);if(t=e,e&&typeof e!==c&&(typeof e!==a||typeof e.length!==l))throw new Error("JSON.stringify");return r("",{"":f})})}(),function(){function v(n){if(n){if(n.numberFormat)return n;if(typeof n===u){var t=i.cultures;return t[n]||t[n.split("-")[0]]||null}return null}return null}function w(n){return n&&(n=v(n)),n||i.cultures.current}function rt(n){n.groupSizes=n.groupSize;n.percent.groupSizes=n.percent.groupSize;n.currency.groupSizes=n.currency.groupSize}function ut(n,i,r){r=w(r);var u=r.calendars.standard,f=u.days,o=u.months;return i=u.patterns[i]||i,i.replace(d,function(i){var r;return i==="d"?r=n.getDate():i==="dd"?r=e(n.getDate()):i==="ddd"?r=f.namesAbbr[n.getDay()]:i==="dddd"?r=f.names[n.getDay()]:i==="M"?r=n.getMonth()+1:i==="MM"?r=e(n.getMonth()+1):i==="MMM"?r=o.namesAbbr[n.getMonth()]:i==="MMMM"?r=o.names[n.getMonth()]:i==="yy"?r=e(n.getFullYear()%100):i==="yyyy"?r=e(n.getFullYear(),4):i==="h"?r=n.getHours()%12||12:i==="hh"?r=e(n.getHours()%12||12):i==="H"?r=n.getHours():i==="HH"?r=e(n.getHours()):i==="m"?r=n.getMinutes():i==="mm"?r=e(n.getMinutes()):i==="s"?r=n.getSeconds():i==="ss"?r=e(n.getSeconds()):i==="f"?r=p.floor(n.getMilliseconds()/100):i==="ff"?r=p.floor(n.getMilliseconds()/10):i==="fff"?r=n.getMilliseconds():i==="tt"&&(r=n.getHours()<12?u.AM[0]:u.PM[0]),r!==t?r:i.slice(1,i.length-1)})}function ft(n,i,u){u=w(u);var l=u.numberFormat,ot=l.groupSize[0],lt=l[c],vt=l[f],at=l.decimals,kt=l.pattern[0],dt=[],yt,ft,st,pt,wt,et=n<0,b,p,rt,ei,gt=r,y=r,e,ut,d,ni,ri,it,v,a,bt,ti,ui,ii,fi,ht=-1,ct;if(n===t)return r;if(!isFinite(n))return n;if(!i)return u.name.length?n.toLocaleString():n.toString();if(wt=g.exec(i),wt){if(i=wt[1].toLowerCase(),ft=i==="c",st=i==="p",(ft||st)&&(l=ft?l.currency:l.percent,ot=l.groupSize[0],lt=l[c],vt=l[f],at=l.decimals,yt=l.symbol,kt=l.pattern[et?0:1]),pt=wt[2],pt&&(at=+pt),i==="e")return pt?n.toExponential(at):n.toExponential();if(st&&(n*=100),n=h(n,at),et=n<0,n=n.split(f),b=n[0],p=n[1],et&&(b=b.substring(1)),y=b,rt=b.length,rt>=ot)for(y=r,e=0;e<rt;e++)e>0&&(rt-e)%ot==0&&(y+=lt),y+=b.charAt(e);if(p&&(y+=vt+p),i==="n"&&!et)return y;for(n=r,e=0,ut=kt.length;e<ut;e++)d=kt.charAt(e),n+=d==="n"?y:d==="$"||d==="%"?yt:d;return n}if(et&&(n=-n),(i.indexOf("'")>-1||i.indexOf('"')>-1||i.indexOf("\\")>-1)&&(i=i.replace(nt,function(n){var t=n.charAt(0).replace("\\",""),i=n.slice(1).replace(t,"");return dt.push(i),k})),i=i.split(";"),et&&i[1])i=i[1],ri=!0;else if(n===0){if(i=i[2]||i[0],i.indexOf(o)==-1&&i.indexOf(s)==-1)return i}else i=i[0];if(ui=i.indexOf("%"),ii=i.indexOf("$"),st=ui!=-1,ft=ii!=-1,st&&(n*=100),ft&&i[ii-1]==="\\"&&(i=i.split("\\").join(""),ft=!1),(ft||st)&&(l=ft?l.currency:l.percent,ot=l.groupSize[0],lt=l[c],vt=l[f],at=l.decimals,yt=l.symbol),ni=i.indexOf(c)>-1,ni&&(i=i.replace(tt,r)),it=i.indexOf(f),ut=i.length,it!=-1?(p=n.toString().split("e"),p=p[1]?h(n,Math.abs(p[1])):p[0],p=p.split(f)[1]||r,a=i.lastIndexOf(s)-it,v=i.lastIndexOf(o)-it,bt=a>-1,ti=v>-1,e=p.length,bt||ti||(i=i.substring(0,it)+i.substring(it+1),ut=i.length,it=-1,e=0),bt&&a>v?e=a:v>a&&(ti&&e>v?e=v:bt&&e<a&&(e=a)),e>-1&&(n=h(n,e))):n=h(n),v=i.indexOf(o),fi=a=i.indexOf(s),ht=v==-1&&a!=-1?a:v!=-1&&a==-1?v:v>a?a:v,v=i.lastIndexOf(o),a=i.lastIndexOf(s),ct=v==-1&&a!=-1?a:v!=-1&&a==-1?v:v>a?v:a,ht==ut&&(ct=ht),ht!=-1){if(y=n.toString().split(f),b=y[0],p=y[1]||r,rt=b.length,ei=p.length,et&&n*-1>=0&&(et=!1),ni)if(rt===ot&&rt<it-fi)b=lt+b;else if(rt>ot){for(y=r,e=0;e<rt;e++)e>0&&(rt-e)%ot==0&&(y+=lt),y+=b.charAt(e);b=y}for(n=i.substring(0,ht),et&&!ri&&(n+="-"),e=ht;e<ut;e++){if(d=i.charAt(e),it==-1){if(ct-e<rt){n+=b;break}}else if(a!=-1&&a<e&&(gt=r),it-e<=rt&&it-e>-1&&(n+=b,e=it),it===e){n+=(p?vt:r)+p;e+=ct-it+1;continue}d===s?(n+=d,gt=d):d===o&&(n+=gt)}if(ct>=ht&&(n+=i.substring(ct+1)),ft||st){for(y=r,e=0,ut=n.length;e<ut;e++)d=n.charAt(e),y+=d==="$"||d==="%"?yt:d;n=y}if(ut=dt.length,ut)for(e=0;e<ut;e++)n=n.replace(k,dt[e])}return n}var d=/dddd|ddd|dd|d|MMMM|MMM|MM|M|yyyy|yy|HH|H|hh|h|mm|m|fff|ff|f|tt|ss|s|"[^"]*"|'[^']*'/g,g=/^(n|c|p|e)(\d*)$/i,nt=/(\\.)|(['][^']*[']?)|(["][^"]*["]?)/g,tt=/\,/g,r="",f=".",c=",",o="#",s="0",k="??",a="en-US",it={}.toString;i.cultures["en-US"]={name:a,numberFormat:{pattern:["-n"],decimals:2,",":",",".":".",groupSize:[3],percent:{pattern:["-n %","n %"],decimals:2,",":",",".":".",groupSize:[3],symbol:"%"},currency:{pattern:["($n)","$n"],decimals:2,",":",",".":".",groupSize:[3],symbol:"$"}},calendars:{standard:{days:{names:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],namesAbbr:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],namesShort:["Su","Mo","Tu","We","Th","Fr","Sa"]},months:{names:["January","February","March","April","May","June","July","August","September","October","November","December"],namesAbbr:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]},AM:["AM","am","AM"],PM:["PM","pm","PM"],patterns:{d:"M/d/yyyy",D:"dddd, MMMM dd, yyyy",F:"dddd, MMMM dd, yyyy h:mm:ss tt",g:"M/d/yyyy h:mm tt",G:"M/d/yyyy h:mm:ss tt",m:"MMMM dd",M:"MMMM dd",s:"yyyy'-'MM'-'ddTHH':'mm':'ss",t:"h:mm tt",T:"h:mm:ss tt",u:"yyyy'-'MM'-'dd HH':'mm':'ss'Z'",y:"MMMM, yyyy",Y:"MMMM, yyyy"},"/":"/",":":":",firstDay:0,twoDigitYearMax:2029}}};i.culture=function(n){var u=i.cultures,r;if(n!==t)r=v(n)||u[a],r.calendar=r.calendars.standard,u.current=r,y&&rt(r.numberFormat);else return u.current};i.findCulture=v;i.getCulture=w;i.culture(a);var et=9e15,h=function(n,t){var i=Math.pow(10,t||0),r=Math.round(n*i);return r>et?n.toFixed(t):(r/i).toFixed(t)},b=function(n,i,r){if(i){if(it.call(n)==="[object Date]")return ut(n,i,r);if(typeof n===l)return ft(n,i,r)}return n!==t?n:""};y&&(b=function(t,i,r){return n.isPlainObject(r)&&(r=r.name),y.format(t,i,r)});i.format=function(n){var t=arguments;return n.replace(ai,function(n,i,r){var u=t[parseInt(i,10)+1];return b(u,r?r.substring(1):"")})};i._extractFormat=function(n){return n.slice(0,3)==="{0:"&&(n=n.slice(3,n.length-1)),n};i._activeElement=function(){try{return document.activeElement}catch(n){return document.documentElement.activeElement}};i._round=h;i.toString=b}(),function(){function r(n,t,i){return!(n>=t&&n<=i)}function b(n){return n.charAt(0)}function s(t){return n.map(t,b)}function k(n,t){t||n.getHours()!==23||n.setHours(n.getHours()+2)}function d(n){for(var t=0,r=n.length,i=[];t<r;t++)i[t]=(n[t]+"").toLowerCase();return i}function h(n){var t={};for(var i in n)t[i]=d(n[i]);return t}function g(n,i,u){if(!n)return null;var p=function(n){for(var t=0;i[rt]===n;)t++,rt++;return t>0&&(rt-=1),t},nt=function(t){var r=e[t]||new RegExp("^\\d{1,"+t+"}"),i=n.substr(b,t).match(r);return i?(i=i[0],b+=i.length,parseInt(i,10)):null},ht=function(t,i){for(var r=0,o=t.length,f,e,u;r<o;r++)if(f=t[r],e=f.length,u=n.substr(b,e),i&&(u=u.toLowerCase()),u==f)return b+=e,r+1;return null},ft=function(){var t=!1;return n.charAt(b)===i[rt]&&(b++,t=!0),t},y=u.calendars.standard,c=null,tt=null,w=null,o=null,it=null,ut=null,d=null,rt=0,b=0,yt=!1,pt=new Date,ct=y.twoDigitYearMax||2029,et=pt.getFullYear(),l,f,dt,wt,bt,kt,gt,g,lt,at,vt,ot,ni,st;for(i||(i="d"),wt=y.patterns[i],wt&&(i=wt),i=i.split(""),dt=i.length;rt<dt;rt++)if(l=i[rt],yt)l==="'"?yt=!1:ft();else if(l==="d"){if(f=p("d"),y._lowerDays||(y._lowerDays=h(y.days)),w=f<3?nt(2):ht(y._lowerDays[f==3?"namesAbbr":"names"],!0),w===null||r(w,1,31))return null}else if(l==="M"){if(f=p("M"),y._lowerMonths||(y._lowerMonths=h(y.months)),tt=f<3?nt(2):ht(y._lowerMonths[f==3?"namesAbbr":"names"],!0),tt===null||r(tt,1,12))return null;tt-=1}else if(l==="y"){if(f=p("y"),c=nt(f),c===null)return null;f==2&&(typeof ct=="string"&&(ct=et+parseInt(ct,10)),c=et-et%100+c,c>ct&&(c-=100))}else if(l==="h"){if(p("h"),o=nt(2),o==12&&(o=0),o===null||r(o,0,11))return null}else if(l==="H"){if(p("H"),o=nt(2),o===null||r(o,0,23))return null}else if(l==="m"){if(p("m"),it=nt(2),it===null||r(it,0,59))return null}else if(l==="s"){if(p("s"),ut=nt(2),ut===null||r(ut,0,59))return null}else if(l==="f"){if(f=p("f"),st=n.substr(b,f).match(e[3]),d=nt(f),d!==null&&(st=st[0].length,st<3&&(d*=Math.pow(10,3-st)),f>3&&(d=parseInt(d.toString().substring(0,3),10))),d===null||r(d,0,999))return null}else if(l==="t"){if(f=p("t"),lt=y.AM,at=y.PM,f===1&&(lt=s(lt),at=s(at)),bt=ht(at),!bt&&!ht(lt))return null}else if(l==="z"){if(kt=!0,f=p("z"),n.substr(b,1)==="Z"){if(!gt)return null;ft();continue}if((g=n.substr(b,6).match(f>2?v:a),!g)||(g=g[0],b=g.length,g=g.split(":"),vt=parseInt(g[0],10),r(vt,-12,13))||f>2&&(ot=parseInt(g[1],10),isNaN(ot)||r(ot,0,59)))return null}else if(l==="T")gt=ft();else if(l==="'")yt=!0,ft();else if(!ft())return null;return(ni=o!==null||it!==null||ut||null,c===null&&tt===null&&w===null&&ni?(c=et,tt=pt.getMonth(),w=pt.getDate()):(c===null&&(c=et),w===null&&(w=1)),bt&&o<12&&(o+=12),kt?(vt&&(o+=-vt),ot&&(it+=-ot),n=new Date(Date.UTC(c,tt,w,o,it,ut,d))):(n=new Date(c,tt,w,o,it,ut,d),k(n,o)),c<100&&n.setFullYear(c),n.getDate()!==w&&kt===t)?null:n}var u=/\u00A0/g,c=/[eE][\-+]?[0-9]+/,a=/[+|\-]\d{1,2}/,v=/[+|\-]\d{1,2}:\d{2}/,p=/^\/Date\((.*?)\)\/$/,w=/[+-]{1}\d+/,f=["G","g","d","F","D","y","m","T","t"],e={2:/^\d{1,2}/,3:/^\d{1,3}/,4:/^\d{4}/},o={}.toString;i.parseDate=function(n,t,r){if(o.call(n)==="[object Date]")return n;var e=0,u=null,s,c,h;if(n&&n.indexOf("/D")===0&&(u=p.exec(n),u))return u=u[1],h=w.exec(u),u=parseInt(u,10),h&&(u-=parseInt(h[0],10)*i.date.MS_PER_MINUTE),new Date(u);if(r=i.getCulture(r),!t){for(t=[],c=r.calendar.patterns,s=f.length;e<s;e++)t[e]=c[f[e]];e=0;t=["yyyy/MM/dd HH:mm:ss","yyyy/MM/dd HH:mm","yyyy/MM/dd","ddd MMM dd yyyy HH:mm:ss","yyyy-MM-ddTHH:mm:ss.fffffffzzz","yyyy-MM-ddTHH:mm:ss.fffzzz","yyyy-MM-ddTHH:mm:sszzz","yyyy-MM-ddTHH:mmzzz","yyyy-MM-ddTHH:mmzz","yyyy-MM-ddTHH:mm:ss","yyyy-MM-ddTHH:mm","yyyy-MM-dd HH:mm:ss","yyyy-MM-dd HH:mm","yyyy-MM-dd"].concat(t)}for(t=li(t)?t:[t],s=t.length;e<s;e++)if(u=g(n,t[e],r),u)return u;return u};i.parseInt=function(n,t){var r=i.parseFloat(n,t);return r&&(r=r|0),r};i.parseFloat=function(n,t,r){if(!n&&n!==0)return null;if(typeof n===l)return n;n=n.toString();t=i.getCulture(t);var f=t.numberFormat,h=f.percent,a=f.currency,s=a.symbol,v=h.symbol,e=n.indexOf("-"),o,y;return c.test(n)?(n=parseFloat(n.replace(f["."],".")),isNaN(n)&&(n=null),n):e>0?null:(e=e>-1,n.indexOf(s)>-1||r&&r.toLowerCase().indexOf("c")>-1?(f=a,o=f.pattern[0].replace("$",s).split("n"),n.indexOf(o[0])>-1&&n.indexOf(o[1])>-1&&(n=n.replace(o[0],"").replace(o[1],""),e=!0)):n.indexOf(v)>-1&&(y=!0,f=h,s=v),n=n.replace("-","").replace(s,"").replace(u," ").split(f[","].replace(u," ")).join("").replace(f["."],"."),n=parseFloat(n),isNaN(n)?n=null:e&&(n*=-1),n&&y&&(n/=100),n)};y&&(i.parseDate=function(n,t,i){return o.call(n)==="[object Date]"?n:y.parseDate(n,t,i)},i.parseFloat=function(i,r){return typeof i===l?i:i===t||i===null?null:(n.isPlainObject(r)&&(r=r.name),i=y.parseFloat(i,r),isNaN(i)?null:i)})}(),function(){var e,i,f,c;r.scrollbar=function(){var n=document.createElement("div"),t;return n.style.cssText="overflow:scroll;overflow-x:hidden;zoom:1;clear:both",n.innerHTML=" ",document.body.appendChild(n),t=n.offsetWidth-n.scrollWidth,document.body.removeChild(n),t};r.isRtl=function(t){return n(t).closest(".k-rtl").length>0};e=document.createElement("table");try{e.innerHTML="<tr><td><\/td><\/tr>";r.tbodyInnerHtml=!0}catch(l){r.tbodyInnerHtml=!1}r.touch="ontouchstart"in window;r.msPointers=window.MSPointerEvent;r.pointers=window.PointerEvent;var o=r.transitions=!1,h=r.transforms=!1,s="HTMLElement"in window?HTMLElement.prototype:[];r.hasHW3D="WebKitCSSMatrix"in window&&"m11"in new window.WebKitCSSMatrix||"MozPerspective"in document.documentElement.style||"msPerspective"in document.documentElement.style;d(["Moz","webkit","O","ms"],function(){var t=this.toString(),i=typeof e.style[t+"Transition"]===u,n;if(i||typeof e.style[t+"Transform"]===u)return n=t.toLowerCase(),h={css:n!="ms"?"-"+n+"-":"",prefix:t,event:n==="o"||n==="webkit"?n:""},i&&(o=h,o.event=o.event?o.event+"TransitionEnd":"transitionend"),!1});e=null;r.transforms=h;r.transitions=o;r.devicePixelRatio=window.devicePixelRatio===t?1:window.devicePixelRatio;try{r.screenWidth=window.outerWidth||window.screen?window.screen.availWidth:window.innerWidth;r.screenHeight=window.outerHeight||window.screen?window.screen.availHeight:window.innerHeight}catch(l){r.screenWidth=window.screen.availWidth;r.screenHeight=window.screen.availHeight}r.detectOS=function(n){var t=!1,u,f=[],o=!/mobile safari/i.test(n),e={fire:/(Silk)\/(\d+)\.(\d+(\.\d+)?)/,android:/(Android|Android.*(?:Opera|Firefox).*?\/)\s*(\d+)\.(\d+(\.\d+)?)/,iphone:/(iPhone|iPod).*OS\s+(\d+)[\._]([\d\._]+)/,ipad:/(iPad).*OS\s+(\d+)[\._]([\d_]+)/,meego:/(MeeGo).+NokiaBrowser\/(\d+)\.([\d\._]+)/,webos:/(webOS)\/(\d+)\.(\d+(\.\d+)?)/,blackberry:/(BlackBerry|BB10).*?Version\/(\d+)\.(\d+(\.\d+)?)/,playbook:/(PlayBook).*?Tablet\s*OS\s*(\d+)\.(\d+(\.\d+)?)/,wp:/(Windows Phone(?: OS)?)\s(\d+)\.(\d+(\.\d+)?)/,windows:/(MSIE)\s+(\d+)\.(\d+(\.\d+)?)/,tizen:/(tizen).*?Version\/(\d+)\.(\d+(\.\d+)?)/i,sailfish:/(sailfish).*rv:(\d+)\.(\d+(\.\d+)?).*firefox/i,ffos:/(Mobile).*rv:(\d+)\.(\d+(\.\d+)?).*Firefox/},s={ios:/^i(phone|pad|pod)$/i,android:/^android|fire$/i,blackberry:/^blackberry|playbook/i,windows:/windows/,wp:/wp/,flat:/sailfish|ffos|tizen/i,meego:/meego/},h={tablet:/playbook|ipad|fire/i},c={omini:/Opera\sMini/i,omobile:/Opera\sMobi/i,firefox:/Firefox|Fennec/i,mobilesafari:/version\/.*safari/i,chrome:/chrome/i,webkit:/webkit/i,ie:/MSIE|Windows\sPhone/i};for(var i in e)if(e.hasOwnProperty(i)&&(f=n.match(e[i]),f)){if(i=="windows"&&"plugins"in navigator)return!1;t={};t.device=i;t.tablet=ct(i,h,!1);t.browser=ct(n,c,"default");t.name=ct(i,s);t[t.name]=!0;t.majorVersion=f[2];t.minorVersion=f[3].replace("_",".");u=t.minorVersion.replace(".","").substr(0,2);t.flatVersion=t.majorVersion+u+new Array(3-(u.length<3?u.length:2)).join("0");t.appMode=window.navigator.standalone||/file|local|wmapp/.test(window.location.protocol)||typeof PhoneGap!==rt||typeof cordova!==rt;t.android&&(r.devicePixelRatio<1.5&&t.flatVersion<400||o)&&(r.screenWidth>800||r.screenHeight>800)&&(t.tablet=i);break}return t};i=r.mobileOS=r.detectOS(navigator.userAgent);r.wpDevicePixelRatio=i.wp?screen.width/320:0;r.kineticScrollNeeded=i&&(r.touch||r.msPointers||r.pointers);r.hasNativeScrolling=!1;(i.ios&&i.majorVersion>4||i.android&&i.majorVersion>2||i.wp)&&(r.hasNativeScrolling=i);r.mouseAndTouchPresent=r.touch&&!(r.mobileOS.ios||r.mobileOS.android);r.detectBrowser=function(n){var t=!1,i=[],r={webkit:/(chrome)[ \/]([\w.]+)/i,safari:/(webkit)[ \/]([\w.]+)/i,opera:/(opera)(?:.*version|)[ \/]([\w.]+)/i,msie:/(msie\s|trident.*? rv:)([\w.]+)/i,mozilla:/(mozilla)(?:.*? rv:([\w.]+)|)/i};for(var u in r)if(r.hasOwnProperty(u)&&(i=n.match(r[u]),i)){t={};t[u]=!0;t[i[1].toLowerCase()]=!0;t.version=parseInt(document.documentMode||i[2],10);break}return t};r.browser=r.detectBrowser(navigator.userAgent);r.zoomLevel=function(){try{return r.touch?document.documentElement.clientWidth/window.innerWidth:r.browser.msie&&r.browser.version>=10?(top||window).document.documentElement.offsetWidth/(top||window).innerWidth:1}catch(n){return 1}};r.cssBorderSpacing=typeof document.documentElement.style.borderSpacing!="undefined"&&!(r.browser.msie&&r.browser.version<8),function(t){var i,r=parseInt(t.version,10);t.msie?i="ie":t.mozilla?i="ff":t.safari?i="safari":t.webkit?i="webkit":t.opera&&(i="opera");i&&n(document.documentElement).addClass("k-"+i+" k-"+i+r)}(r.browser);r.eventCapture=document.documentElement.addEventListener;f=document.createElement("input");r.placeholder="placeholder"in f;r.input=function(){for(var i=["number","date","time","month","week","datetime","datetime-local"],e=i.length,r="test",u={},n=0,t;n<e;n++)t=i[n],f.setAttribute("type",t),f.value=r,u[t.replace("-","")]=f.type!=="text"&&f.value!==r;return u}();f.style.cssText="float:left;";r.cssFloat=!!f.style.cssFloat;f=null;r.stableSort=function(){var n=[0,1,2,3,4,5,6,7,8,9,10,11,12].sort(function(){return 0});return n[0]===0&&n[1]===1&&n[2]===2&&n[3]===3&&n[4]===4&&n[5]===5&&n[6]===6&&n[7]===7&&n[8]===8&&n[9]===9&&n[10]===10&&n[11]===11&&n[12]===12}();r.matchesSelector=s.webkitMatchesSelector||s.mozMatchesSelector||s.msMatchesSelector||s.oMatchesSelector||s.matchesSelector||function(t){for(var i=document.querySelectorAll?(this.parentNode||document).querySelectorAll(t)||[]:n(t),r=i.length;r--;)if(i[r]==this)return!0;return!1};r.pushState=window.history&&window.history.pushState;c=document.documentMode;r.hashChange="onhashchange"in window&&!(r.browser.msie&&(!c||c<=8))}();ni={left:{reverse:"right"},right:{reverse:"left"},down:{reverse:"up"},up:{reverse:"down"},top:{reverse:"bottom"},bottom:{reverse:"top"},"in":{reverse:"out"},out:{reverse:"in"}};h={};n.extend(h,{Element:function(t){this.element=n(t)},promise:function(n,t){n.is(":visible")||n.css({display:n.data("olddisplay")||"block"}).css("display");t.hide&&n.data("olddisplay",n.css("display")).hide();t.init&&t.init();t.completeCallback&&t.completeCallback(n);n.dequeue()},transitionPromise:function(n,t,r){var u=i.wrap(n);return u.append(t),n.hide(),t.show(),r.completeCallback&&r.completeCallback(n),n},disable:function(){this.promise=this.promiseShim;this.transitionPromise=this.transitionPromiseShim},enable:function(){this.promise=this.animatedPromise;this.transitionPromise=this.animatedTransitionPromise}});h.promiseShim=h.promise;h.transitionPromiseShim=h.transitionPromise;"kendoAnimate"in n.fn||s(n.fn,{kendoStop:function(n,t){return this.stop(n,t)},kendoAnimate:function(n,t,i,r){return ii(this,n,t,i,r)},kendoAnimateTo:function(n,t,i,r,u){return lr(this,n,t,i,r,u)},kendoAddClass:function(n,t){return i.toggleClass(this,n,t,!0)},kendoRemoveClass:function(n,t){return i.toggleClass(this,n,t,!1)},kendoToggleClass:function(n,t,r){return i.toggleClass(this,n,t,r)}});var vr=/&/g,yr=/</g,pr=/>/g;lt=function(n){return n.target};r.touch&&(lt=function(n){var t="originalEvent"in n?n.originalEvent.changedTouches:"changedTouches"in n?n.changedTouches:null;return t?document.elementFromPoint(t[0].clientX,t[0].clientY):n.target},d(["swipe","swipeLeft","swipeRight","swipeUp","swipeDown","doubleTap","tap"],function(t,i){n.fn[i]=function(n){return this.bind(i,n)}}));r.touch?r.mobileOS?(r.mousedown="touchstart",r.mouseup="touchend",r.mousemove="touchmove",r.mousecancel="touchcancel",r.click="touchend",r.resize="orientationchange"):(r.mousedown="mousedown touchstart",r.mouseup="mouseup touchend",r.mousemove="mousemove touchmove",r.mousecancel="mouseleave touchcancel",r.click="click",r.resize="resize"):r.pointers?(r.mousemove="pointermove",r.mousedown="pointerdown",r.mouseup="pointerup",r.mousecancel="pointercancel",r.click="pointerup",r.resize="orientationchange resize"):r.msPointers?(r.mousemove="MSPointerMove",r.mousedown="MSPointerDown",r.mouseup="MSPointerUp",r.mousecancel="MSPointerCancel",r.click="MSPointerUp",r.resize="orientationchange resize"):(r.mousemove="mousemove",r.mousedown="mousedown",r.mouseup="mouseup",r.mousecancel="mouseleave",r.click="click",r.resize="resize");ri=function(n,t){for(var o=t||"d",r,i,e=1,u=0,f=n.length;u<f;u++)i=n[u],i!==""&&(r=i.indexOf("["),r!==0&&(r==-1?i="."+i:(e++,i="."+i.substring(0,r)+" || {})"+i.substring(r))),e++,o+=i+(u<f-1?" || {})":")"));return new Array(e).join("(")+o};ui=/^([a-z]+:)?\/\//i;s(i,{ui:i.ui||{},fx:i.fx||cr,effects:i.effects||h,mobile:i.mobile||{},data:i.data||{},dataviz:i.dataviz||{ui:{roles:{}}},keys:{INSERT:45,DELETE:46,BACKSPACE:8,TAB:9,ENTER:13,ESC:27,LEFT:37,UP:38,RIGHT:39,DOWN:40,END:35,HOME:36,SPACEBAR:32,PAGEUP:33,PAGEDOWN:34,F2:113,F10:121,F12:123},support:i.support||r,animate:i.animate||ii,ns:"",attr:function(n){return"data-"+i.ns+n},wrap:ur,deepExtend:kt,getComputedStyles:er,size:or,toCamelCase:gt,toHyphens:fr,getOffset:i.getOffset||sr,parseEffects:i.parseEffects||hr,toggleClass:i.toggleClass||ar,directions:i.directions||ni,Observable:ht,Class:ut,Template:v,template:ot(v.compile,v),render:ot(v.render,v),stringify:ot(nt.stringify,nt),eventTarget:lt,htmlEncode:wr,isLocalUrl:function(n){return n&&!ui.test(n)},expr:function(n,t,i){return n=n||"",typeof t==u&&(i=t,t=!1),i=i||"d",n&&n.charAt(0)!=="["&&(n="."+n),t?ri(n.split("."),i):i+n},getter:function(n,t){return wt[n]=wt[n]||new Function("d","return "+i.expr(n,t))},setter:function(n){return bt[n]=bt[n]||new Function("d,value",i.expr(n)+"=value")},accessor:function(n){return{get:i.getter(n),set:i.setter(n)}},guid:function(){for(var t="",i,n=0;n<32;n++)i=p.random()*16|0,(n==8||n==12||n==16||n==20)&&(t+="-"),t+=(n==12?4:n==16?i&3|8:i).toString(16);return t},roleSelector:function(n){return n.replace(/(\S+)/g,"["+i.attr("role")+"=$1],").slice(0,-1)},triggeredByInput:function(n){return/^(label|input|textarea|select)$/i.test(n.target.tagName)},logToConsole:function(n){var t=window.console;typeof t!="undefined"&&t.log&&t.log(n)}});w=ht.extend({init:function(n,t){var r=this;r.element=i.jQuery(n).handler(r);ht.fn.init.call(r);t=r.options=s(!0,{},r.options,t);r.element.attr(i.attr("role"))||r.element.attr(i.attr("role"),(t.name||"").toLowerCase());r.element.data("kendo"+t.prefix+t.name,r);r.bind(r.events,t)},events:[],options:{prefix:""},_hasBindingTarget:function(){return!!this.element[0].kendoBindingTarget},_tabindex:function(n){n=n||this.wrapper;var i=this.element,t="tabindex",r=n.attr(t)||i.attr(t);i.removeAttr(t);n.attr(t,isNaN(r)?0:r)},setOptions:function(t){for(var i=this,u=0,f=i.events.length,r;u<f;u++)r=i.events[u],i.options[r]&&t[r]&&i.unbind(r,i.options[r]);n.extend(i.options,t);i.bind(i.events,t)},resize:function(n){var t=this.getSize(),i=this._size;(n||!i||t.width!==i.width||t.height!==i.height)&&(this._resize(t),this.trigger("resize",t),this._size=t)},getSize:function(){return i.dimensions(this.element)},size:function(n){if(n)this.setSize(n);else return this.getSize()},setSize:n.noop,_resize:n.noop,destroy:function(){var n=this;n.element.removeData("kendo"+n.options.prefix+n.options.name);n.element.removeData("handler");n.unbind()}});i.dimensions=function(n,t){var i=n[0];return t&&n.css(t),{width:i.offsetWidth,height:i.offsetHeight}};i.notify=g;var br=/template$/i,kr=/^\s*(?:\{(?:.|\r\n|\n)*\}|\[(?:.|\r\n|\n)*\])\s*$/,dr=/^\{(\d+)(:[^\}]+)?\}/,gr=/([A-Z])/g;i.initWidget=function(r,f,e){var s,a,o,l,y,h,v,c;if((e?e.roles&&(e=e.roles):e=i.ui.roles,r=r.nodeType?r:r[0],h=r.getAttribute("data-"+i.ns+"role"),h)&&(o=h.indexOf(".")===-1?e[h]:i.getter(h)(window),o)){for(c=at(r,"dataSource"),f=n.extend({},fi(r,o.fn.options),f),c&&(f.dataSource=typeof c===u?i.getter(c)(window):c),l=0,y=o.fn.events.length;l<y;l++)a=o.fn.events[l],v=at(r,a),v!==t&&(f[a]=i.getter(v)(window));return s=n(r).data("kendo"+o.fn.options.prefix+o.fn.options.name),s?s.setOptions(f):s=new o(r,f),s}};i.rolesFromNamespaces=function(n){var r=[],t,u;for(n[0]||(n=[i.ui,i.dataviz.ui]),t=0,u=n.length;t<u;t++)r[t]=n[t].roles;return s.apply(null,[{}].concat(r.reverse()))};i.init=function(t){var r=i.rolesFromNamespaces(st.call(arguments,1));n(t).find("[data-"+i.ns+"role]").addBack().each(function(){i.initWidget(this,{},r)})};i.destroy=function(t){n(t).find("[data-"+i.ns+"role]").addBack().each(function(){var t=i.widgetInstance(n(this));t&&t.destroy()})};i.resize=function(t){var u=n(t).find("[data-"+i.ns+"role]").addBack().filter(tu),r;u.length&&(r=n.makeArray(u),r.sort(nu),n.each(r,function(){var t=i.widgetInstance(n(this));t&&t.resize()}))};i.parseOptions=fi;s(i.ui,{Widget:w,roles:{},progress:function(t,r){var u=t.find(".k-loading-mask"),o=i.support,c=o.browser,f,s,h,e;r?u.length||(f=o.isRtl(t),s=f?"right":"left",e=t.scrollLeft(),h=c.webkit?f?t[0].scrollWidth-t.width()-2*e:0:0,u=n("<div class='k-loading-mask'><span class='k-loading-text'>Loading...<\/span><div class='k-loading-image'/><div class='k-loading-color'/><\/div>").width("100%").height("100%").css("top",t.scrollTop()).css(s,Math.abs(e)+h).prependTo(t)):u&&u.remove()},plugin:function(r,f,e){var o=r.fn.options.name,s;f=f||i.ui;e=e||"";f[o]=r;f.roles[o.toLowerCase()]=r;s="getKendo"+e+o;o="kendo"+e+o;n.fn[o]=function(f){var e=this,s;return typeof f===u?(s=st.call(arguments,1),this.each(function(){var r=n.data(this,o),u,h;if(!r)throw new Error(i.format("Cannot call method '{0}' of {1} before it is initialized",f,o));if(u=r[f],typeof u!==c)throw new Error(i.format("Cannot find method '{0}' of {1}",f,o));return h=u.apply(r,s),h!==t?(e=h,!1):void 0})):this.each(function(){new r(this,f)}),e};n.fn[s]=function(){return this.data(o)}}});ei={bind:function(){return this}};oi=w.extend({init:function(n,t){w.fn.init.call(this,n,t);this.element.autoApplyNS();this.wrapper=this.element;this.element.addClass("km-widget")},destroy:function(){w.fn.destroy.call(this);this.element.kendoDestroy()},options:{prefix:"Mobile"},events:[],view:function(){var n=this.element.closest(i.roleSelector("view splitview modalview drawer"));return i.widgetInstance(n,i.mobile.ui)},container:function(){var n=this.element.closest(i.roleSelector("view layout modalview drawer"));return i.widgetInstance(n,i.mobile.ui)||ei}});s(i.mobile,{init:function(n){i.init(n,i.mobile.ui,i.ui,i.dataviz.ui)},ui:{Widget:oi,roles:{},plugin:function(n){i.ui.plugin(n,i.mobile.ui,"Mobile")}}});i.touchScroller=function(t,u){return n(t).map(function(t,f){return f=n(f),r.kineticScrollNeeded&&i.mobile.ui.Scroller&&!f.data("kendoMobileScroller")?(f.kendoMobileScroller(u),f.data("kendoMobileScroller")):!1})[0]};i.preventDefault=function(n){n.preventDefault()};i.widgetInstance=function(n,t){var r=n.data(i.ns+"role"),u,f,s,e,o;if(r)for(r==="content"&&(r="scroller"),u=t?[t.roles[r]]:[i.ui.roles[r],i.dataviz.ui.roles[r],i.mobile.ui.roles[r]],r.indexOf(".")>=0&&(u=[i.getter(r)(window)]),f=0,s=u.length;f<s;f++)if(e=u[f],e&&(o=n.data("kendo"+e.fn.options.prefix+e.fn.options.name),o))return o};i.onResize=function(t){var i=t;r.mobileOS.android&&(i=function(){setTimeout(t,600)});n(window).on(r.resize,i);return i};i.unbindResize=function(t){n(window).off(r.resize,t)};i.attrValue=function(n,t){return n.data(i.ns+t)};i.days={Sunday:0,Monday:1,Tuesday:2,Wednesday:3,Thursday:4,Friday:5,Saturday:6};n.extend(n.expr[":"],{kendoFocusable:function(t){var i=n.attr(t,"tabindex");return iu(t,!isNaN(i)&&i>-1)}});var si=["mousedown","mousemove","mouseenter","mouseleave","mouseover","mouseout","mouseup","click"],uu="label, input, [data-rel=external]",f={setupMouseMute:function(){var t=0,u=si.length,e=document.documentElement,i;if(!f.mouseTrap&&r.eventCapture)for(f.mouseTrap=!0,f.bustClick=!1,f.captureMouse=!1,i=function(t){f.captureMouse&&(t.type==="click"?f.bustClick&&!n(t.target).is(uu)&&(t.preventDefault(),t.stopPropagation()):t.stopPropagation())};t<u;t++)e.addEventListener(si[t],i,!0)},muteMouse:function(n){f.captureMouse=!0;n.data.bustClick&&(f.bustClick=!0);clearTimeout(f.mouseTrapTimeoutID)},unMuteMouse:function(){clearTimeout(f.mouseTrapTimeoutID);f.mouseTrapTimeoutID=setTimeout(function(){f.captureMouse=!1;f.bustClick=!1},400)}},b={down:"touchstart mousedown",move:"mousemove touchmove",up:"mouseup touchend touchcancel",cancel:"mouseleave touchcancel"};r.touch&&(r.mobileOS.ios||r.mobileOS.android)?b={down:"touchstart",move:"touchmove",up:"touchend touchcancel",cancel:"touchcancel"}:r.pointers?b={down:"pointerdown",move:"pointermove",up:"pointerup",cancel:"pointercancel pointerleave"}:r.msPointers&&(b={down:"MSPointerDown",move:"MSPointerMove",up:"MSPointerUp",cancel:"MSPointerCancel MSPointerLeave"});!r.msPointers||"onmspointerenter"in window||n.each({MSPointerEnter:"MSPointerOver",MSPointerLeave:"MSPointerOut"},function(t,i){n.event.special[t]={delegateType:i,bindType:i,handle:function(t){var u,f=this,r=t.relatedTarget,e=t.handleObj;return r&&(r===f||n.contains(f,r))||(t.type=e.origType,u=e.handler.apply(this,arguments),t.type=i),u}}});hi=function(n){return b[n]||n};vt=/([^ ]+)/g;i.applyEventMap=function(n,t){return n=n.replace(vt,hi),t&&(n=n.replace(vt,"$1."+t)),n};et=n.fn.on;s(!0,o,n);o.fn=o.prototype=new n;o.fn.constructor=o;o.fn.init=function(t,i){return i&&i instanceof n&&!(i instanceof o)&&(i=o(i)),n.fn.init.call(this,t,i,ci)};o.fn.init.prototype=o.fn;ci=o(document);s(o.fn,{handler:function(n){return this.data("handler",n),this},autoApplyNS:function(n){return this.data("kendoNS",n||i.guid()),this},on:function(){var t=this,l=t.data("kendoNS"),s,n,e,o,h,c;return arguments.length===1?et.call(t,arguments[0]):(s=t,n=st.call(arguments),typeof n[n.length-1]===rt&&n.pop(),e=n[n.length-1],o=i.applyEventMap(n[0],l),r.mouseAndTouchPresent&&o.search(/mouse|click/)>-1&&this[0]!==document.documentElement&&(f.setupMouseMute(),h=n.length===2?null:n[1],c=o.indexOf("click")>-1&&o.indexOf("touchend")>-1,et.call(this,{touchstart:f.muteMouse,touchend:f.unMuteMouse},h,{bustClick:c})),typeof e===u&&(s=t.data("handler"),e=s[e],n[n.length-1]=function(n){e.call(s,n)}),n[0]=o,et.apply(t,n),t)},kendoDestroy:function(n){return n=n||this.data("kendoNS"),n&&this.off("."+n),this}});i.jQuery=o;i.eventMap=b;i.timezone=function(){function i(i,r){var u,o,s,c=r[3],e=r[4],f=r[5],h=r[8];return(h||(r[8]=h={}),h[i])?h[i]:(isNaN(e)?e.indexOf("last")===0?(u=new Date(Date.UTC(i,n[c]+1,1,f[0]-24,f[1],f[2],0)),o=t[e.substr(4,3)],s=u.getUTCDay(),u.setUTCDate(u.getUTCDate()+o-s-(o>s?7:0))):e.indexOf(">=")>=0&&(u=new Date(Date.UTC(i,n[c],e.substr(5),f[0],f[1],f[2],0)),o=t[e.substr(0,3)],s=u.getUTCDay(),u.setUTCDate(u.getUTCDate()+o-s+(o<s?7:0))):u=new Date(Date.UTC(i,n[c],e,f[0],f[1],f[2],0)),h[i]=u)}function f(n,t,r){var f,e,u;return(t=t[r],!t)?(f=r.split(":"),e=0,f.length>1&&(e=f[0]*60+Number(f[1])),[-1e6,"max","-","Jan",1,[0,0,0],e,"-"]):(u=new Date(n).getUTCFullYear(),t=jQuery.grep(t,function(n){var i=n[0],t=n[1];return i<=u&&(t>=u||i==u&&t=="only"||t=="max")}),t.push(n),t.sort(function(n,t){return typeof n!="number"&&(n=Number(i(u,n))),typeof t!="number"&&(t=Number(i(u,t))),n-t}),t[jQuery.inArray(n,t)-1])}function e(n,t,i){var r=t[i],u,f,e;if(typeof r=="string"&&(r=t[r]),!r)throw new Error('Timezone "'+i+'" is either incorrect, or kendo.timezones.min.js is not included.');for(u=r.length-1;u>=0;u--)if(f=r[u][3],f&&n>f)break;if(e=r[u+1],!e)throw new Error('Timezone "'+i+'" not found on '+n+".");return e}function r(n,t,i,r){typeof n!=l&&(n=Date.UTC(n.getFullYear(),n.getMonth(),n.getDate(),n.getHours(),n.getMinutes(),n.getSeconds(),n.getMilliseconds()));var u=e(n,t,r);return{zone:u,rule:f(n,i,u[1])}}function o(n,t){if(t=="Etc/UTC"||t=="Etc/GMT")return 0;var i=r(n,this.zones,this.rules,t),u=i.zone,f=i.rule;return f?u[0]-f[6]:u[0]}function s(n,t){var f=r(n,this.zones,this.rules,t),e=f.zone,i=f.rule,u=e[2];return u.indexOf("/")>=0?u.split("/")[i&&i[6]?1:0]:u.indexOf("%s")>=0?u.replace("%s",!i||i[7]=="-"?"":i[7]):u}function h(n,t,i){var r,f;return typeof t==u&&(t=this.offset(n,t)),typeof i==u&&(i=this.offset(n,i)),r=n.getTimezoneOffset(),n=new Date(n.getTime()+(t-i)*6e4),f=n.getTimezoneOffset(),new Date(n.getTime()+(f-r)*6e4)}function c(n,t){return this.convert(n,n.getTimezoneOffset(),t)}function a(n,t){return this.convert(n,t,n.getTimezoneOffset())}function v(n){return this.apply(new Date(n),"Etc/UTC")}var n={Jan:0,Feb:1,Mar:2,Apr:3,May:4,Jun:5,Jul:6,Aug:7,Sep:8,Oct:9,Nov:10,Dec:11},t={Sun:0,Mon:1,Tue:2,Wed:3,Thu:4,Fri:5,Sat:6};return{zones:{},rules:{},offset:o,convert:h,apply:c,remove:a,abbr:s,toLocalDate:v}}();i.date=function(){function t(n,t){return t===0&&n.getHours()===23?(n.setHours(n.getHours()+2),!0):!1}function e(n,i,r){var u=n.getHours();r=r||1;i=(i-n.getDay()+7*r)%7;n.setDate(n.getDate()+i);t(n,u)}function c(n,t,i){return n=new Date(n),e(n,t,i),n}function o(n){return new Date(n.getFullYear(),n.getMonth(),1)}function l(n){var t=new Date(n.getFullYear(),n.getMonth()+1,0),i=o(n),r=Math.abs(t.getTimezoneOffset()-i.getTimezoneOffset());return r&&t.setHours(i.getHours()+r/60),t}function i(n){return n=new Date(n.getFullYear(),n.getMonth(),n.getDate(),0,0,0),t(n,0),n}function a(n){return Date.UTC(n.getFullYear(),n.getMonth(),n.getDate(),n.getHours(),n.getMinutes(),n.getSeconds(),n.getMilliseconds())}function r(n){return n.getTime()-i(n)}function v(t,i,u){var e=r(i),o=r(u),f;return!t||e==o?!0:(i>=u&&(u+=n),f=r(t),e>f&&(f+=n),o<e&&(o+=n),f>=e&&f<=o)}function y(t,i,r){var e=i.getTime(),u=r.getTime(),f;return e>=u&&(u+=n),f=t.getTime(),f>=e&&f<=u}function u(i,r){var u=i.getHours();return i=new Date(i),s(i,r*n),t(i,u),i}function s(n,t,i){var u=n.getTimezoneOffset(),r;n.setTime(n.getTime()+t);i||(r=n.getTimezoneOffset()-u,n.setTime(n.getTime()+r*f))}function h(){return i(new Date)}function p(n){return i(n).getTime()==h().getTime()}function w(n){var t=new Date(1980,1,1,0,0,0);return n&&t.setHours(n.getHours(),n.getMinutes(),n.getSeconds(),n.getMilliseconds()),t}var f=6e4,n=864e5;return{adjustDST:t,dayOfWeek:c,setDayOfWeek:e,getDate:i,isInDateRange:y,isInTimeRange:v,isToday:p,nextDay:function(n){return u(n,1)},previousDay:function(n){return u(n,-1)},toUtcTime:a,MS_PER_DAY:n,MS_PER_MINUTE:f,setTime:s,addDays:u,today:h,toInvariantTime:w,firstDayOfMonth:o,lastDayOfMonth:l,getMilliseconds:r}}();i.stripWhitespace=function(n){for(var t=document.createNodeIterator(n,NodeFilter.SHOW_TEXT,function(t){return t.parentNode==n?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT},!1);t.nextNode();)t.referenceNode&&!t.referenceNode.textContent.trim()&&t.referenceNode.parentNode.removeChild(t.referenceNode)};yt=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(n){setTimeout(n,1e3/60)};i.animationFrame=function(n){yt.call(window,n)};k=[];i.queueAnimation=function(n){k[k.length]=n;k.length===1&&i.runNextAnimation()};i.runNextAnimation=function(){var n=k.shift();i.animationFrame(function(){n();yt[0]&&i.runNextAnimation()})};i.parseQueryStringParams=function(n){for(var u=n.split("?")[1]||"",r={},i=u.split(/&|=/),f=i.length,t=0;t<f;t+=2)i[t]!==""&&(r[decodeURIComponent(i[t])]=decodeURIComponent(i[t+1]));return r}}(jQuery);typeof kendo_module=="undefined"&&(kendo_module=function(){});kendo_module({id:"core",name:"Core",category:"framework",description:"The core of the Kendo framework."});kendo_module({id:"fx",name:"Effects",category:"framework",description:"Required for animation effects in all Kendo UI widgets.",depends:["core"]}),function(n,t){function ii(n){return parseInt(n,10)}function p(n,t){return ii(n.css(t))}function ir(n){var t=n.effects;return t==="zoom"&&(t="zoom:in fade:in"),t==="fade"&&(t="fade:in"),t==="slide"&&(t="tile:left"),/^slide:(.+)$/.test(t)&&(t="tile:"+RegExp.$1),t==="overlay"&&(t="slideIn:left"),/^overlay:(.+)$/.test(t)&&(t="slideIn:"+RegExp.$1),n.effects=i.parseEffects(t),tr&&t=="tile:left"&&(n.previousDivisor=3),n}function rr(n){var t=[];for(var i in n)t.push(i);return t}function st(n){for(var t in n)rt.indexOf(t)!=-1&&d.indexOf(t)==-1&&delete n[t];return n}function ht(n,t){var r=[],u={},o,i,s,c;for(i in t)o=i.toLowerCase(),c=f&&rt.indexOf(o)!=-1,!h.hasHW3D&&c&&d.indexOf(o)==-1?delete t[i]:(s=t[i],c?r.push(i+"("+s+")"):u[i]=s);return r.length&&(u[e]=r.join(" ")),u}function ri(n,t){var u,i,r;return f?(u=n.css(e),u==gi)?t=="scale"?1:0:(i=u.match(new RegExp(t+"\\s*\\(([\\d\\w\\.]+)")),r=0,i?r=ii(i[1]):(i=u.match(vi)||[0,0,0,0,0],t=t.toLowerCase(),yi.test(t)?r=parseFloat(i[3]/i[2]):t=="translatey"?r=parseFloat(i[4]/i[2]):t=="scale"?r=parseFloat(i[2]):t=="rotate"&&(r=parseFloat(Math.atan2(i[2],i[1])))),r):parseFloat(n.css(t))}function lt(n){return n.charAt(0).toUpperCase()+n.substring(1)}function o(n,t){var i=l.extend(t),r=i.prototype.directions;u[lt(n)]=i;u.Element.prototype[n]=function(n,t,r,u){return new i(this.element,n,t,r,u)};a(r,function(t,r){u.Element.prototype[n+lt(r)]=function(n,t,u){return new i(this.element,r,n,t,u)}})}function fi(n,t,i,r){o(n,{directions:ui,startValue:function(n){return this._startValue=n,this},endValue:function(n){return this._endValue=n,this},shouldHide:function(){return this._shouldHide},prepare:function(n,u){var s=this,f,e,h=this._direction==="out",o=s.element.data(t),c=!(isNaN(o)||o==i);f=c?o:typeof this._startValue!="undefined"?this._startValue:h?i:r;e=typeof this._endValue!="undefined"?this._endValue:h?r:i;this._reverse?(n[t]=e,u[t]=f):(n[t]=f,u[t]=e);s._shouldHide=u[t]===r}})}function hi(n,t){var r=i.directions[t].vertical,u=n[r?nt:ft]()/2+"px";return oi[t].replace("$size",u)}var i=window.kendo,u=i.effects,a=n.each,r=n.extend,ci=n.proxy,h=i.support,vt=h.browser,f=h.transforms,s=h.transitions,li={scale:0,scalex:0,scaley:0,scale3d:0},ai={translate:0,translatex:0,translatey:0,translate3d:0},yt=typeof document.documentElement.style.zoom!="undefined"&&!f,vi=/matrix3?d?\s*\(.*,\s*([\d\.\-]+)\w*?,\s*([\d\.\-]+)\w*?,\s*([\d\.\-]+)\w*?,\s*([\d\.\-]+)\w*?/i,pt=/^(-?[\d\.\-]+)?[\w\s]*,?\s*(-?[\d\.\-]+)?[\w\s]*/i,yi=/translatex?$/i,pi=/(zoom|fade|expand)(\w+)/,wt=/(zoom|fade|expand)/,wi=/[xy]$/i,rt=["perspective","rotate","rotatex","rotatey","rotatez","rotate3d","scale","scalex","scaley","scalez","scale3d","skew","skewx","skewy","translate","translatex","translatey","translatez","translate3d","matrix","matrix3d"],d=["rotate","scale","scalex","scaley","skew","skewx","skewy","translate","translatex","translatey","matrix"],bi={rotate:"deg",scale:"",skew:"px",translate:"px"},g=f.css,ki=Math.round,di="",w="px",gi="none",ut="auto",ft="width",nt="height",bt="hidden",et="origin",kt="abortId",tt="overflow",v="translate",b="position",dt="completeCallback",y=g+"transition",e=g+"transform",nr=g+"backface-visibility",gt=g+"perspective",ot="1500px",ni="perspective("+ot+")",tr=h.mobileOS&&h.mobileOS.majorVersion==7,c={left:{reverse:"right",property:"left",transition:"translatex",vertical:!1,modifier:-1},right:{reverse:"left",property:"left",transition:"translatex",vertical:!1,modifier:1},down:{reverse:"up",property:"top",transition:"translatey",vertical:!0,modifier:1},up:{reverse:"down",property:"top",transition:"translatey",vertical:!0,modifier:-1},top:{reverse:"bottom"},bottom:{reverse:"top"},"in":{reverse:"out",modifier:-1},out:{reverse:"in",modifier:1},vertical:{reverse:"vertical"},horizontal:{reverse:"horizontal"}},ti,ct,l,k,ui,ei,oi,si,it,at;i.directions=c;r(n.fn,{kendoStop:function(n,t){return s?u.stopQueue(this,n||!1,t||!1):this.stop(n,t)}});f&&!s&&(a(d,function(t,i){n.fn[i]=function(t){if(typeof t=="undefined")return ri(this,i);var r=n(this)[0],u=i+"("+t+bi[i.replace(wi,"")]+")";return r.style.cssText.indexOf(e)==-1?n(this).css(e,u):r.style.cssText=r.style.cssText.replace(new RegExp(i+"\\(.*?\\)","i"),u),this};n.fx.step[i]=function(t){n(t.elem)[i](t.now)}}),ti=n.fx.prototype.cur,n.fx.prototype.cur=function(){return d.indexOf(this.prop)!=-1?parseFloat(n(this.elem)[this.prop]()):ti.apply(this,arguments)});i.toggleClass=function(n,t,i,u){return t&&(t=t.split(" "),s&&(i=r({exclusive:"all",duration:400,ease:"ease-out"},i),n.css(y,i.exclusive+" "+i.duration+"ms "+i.ease),setTimeout(function(){n.css(y,"").css(nt)},i.duration)),a(t,function(t,i){n.toggleClass(i,u)})),n};i.parseEffects=function(n,t){var i={};return typeof n=="string"?a(n.split(" "),function(n,r){var o=!wt.test(r),s=r.replace(pi,function(n,t,i){return t+":"+i.toLowerCase()}),u=s.split(":"),f=u[1],e={};u.length>1&&(e.direction=t&&o?c[f].reverse:f);i[u[0]]=e}):a(n,function(n){var r=this.direction;r&&t&&!wt.test(n)&&(this.direction=c[r].reverse);i[n]=this}),i};s&&r(u,{transition:function(t,i,u){var h,l=0,a=t.data("keys")||[],f,c,o;if(u=r({duration:200,ease:"ease-out",complete:null,exclusive:"all"},u),c=!1,o=function(){c||(c=!0,f&&(clearTimeout(f),f=null),t.removeData(kt).dequeue().css(y,"").css(y),u.complete.call(t))},u.duration=n.fx?n.fx.speeds[u.duration]||u.duration:u.duration,h=ht(t,i),n.merge(a,rr(h)),t.data("keys",n.unique(a)).height(),t.css(y,u.exclusive+" "+u.duration+"ms "+u.ease).css(y),t.css(h).css(e),s.event){t.one(s.event,o);u.duration!==0&&(l=500)}f=setTimeout(o,u.duration+l);t.data(kt,f);t.data(dt,o)},stopQueue:function(n,t,r){var u,f=n.data("keys"),e=!r&&f,o=n.data(dt);return e&&(u=i.getComputedStyles(n[0],f)),o&&o(),e&&n.css(u),n.removeData("keys").stop(t)}});ct=i.Class.extend({init:function(n,t){var i=this;i.element=n;i.effects=[];i.options=t;i.restore=[]},run:function(t){var a=this,l,h,v,k=t.length,c=a.element,i=a.options,p=n.Deferred(),o={},y={},w,b,d,g;for(a.effects=t,p.then(n.proxy(a,"complete")),c.data("animating",!0),h=0;h<k;h++)for(l=t[h],l.setReverse(i.reverse),l.setOptions(i),a.addRestoreProperties(l.restore),l.prepare(o,y),b=l.children(),v=0,d=b.length;v<d;v++)b[v].duration(i.duration).run();for(g in i.effects)r(y,i.effects[g].properties);for(c.is(":visible")||r(o,{display:c.data("olddisplay")||"block"}),f&&!i.reset&&(w=c.data("targetTransform"),w&&(o=r(w,o))),o=ht(c,o),f&&!s&&(o=st(o)),c.css(o).css(e),h=0;h<k;h++)t[h].setup();return i.init&&i.init(),c.data("targetTransform",y),u.animate(c,y,r({},i,{complete:p.resolve})),p.promise()},stop:function(){n(this.element).kendoStop(!0,!0)},addRestoreProperties:function(n){for(var i=this.element,t,r=0,u=n.length;r<u;r++)t=n[r],this.restore.push(t),i.data(t)||i.data(t,i.css(t))},restoreCallback:function(){for(var t,i=this.element,n=0,r=this.restore.length;n<r;n++)t=this.restore[n],i.css(t,i.data(t))},complete:function(){var i=this,r=0,t=i.element,u=i.options,e=i.effects,o=e.length;for(t.removeData("animating").dequeue(),u.hide&&t.data("olddisplay",t.css("display")).hide(),this.restoreCallback(),yt&&!f&&setTimeout(n.proxy(this,"restoreCallback"),0);r<o;r++)e[r].teardown();u.completeCallback&&u.completeCallback(t)}});u.promise=function(n,t){var r=[],f,s=new ct(n,t),e=i.parseEffects(t.effects),h,o;t.effects=e;for(o in e)f=u[lt(o)],f&&(h=new f(n,e[o].direction),r.push(h));r[0]?s.run(r):(n.is(":visible")||n.css({display:n.data("olddisplay")||"block"}).css("display"),t.init&&t.init(),n.dequeue(),s.complete())};u.transitionPromise=function(n,t,i){return u.animateTo(n,t,i),n};r(u,{animate:function(i,e,o){var h=o.transition!==!1;delete o.transition;s&&"transition"in u&&h?u.transition(i,e,o):f?i.animate(st(e),{queue:!1,show:!1,hide:!1,duration:o.duration,complete:o.complete}):i.each(function(){var i=n(this),u={};a(rt,function(n,o){var c,y=e?e[o]+" ":null,s,w,k,h,l,a;y&&(s=e,o in li&&e[o]!==t?(c=y.match(pt),f&&r(s,{scale:+c[0]})):o in ai&&e[o]!==t&&(w=i.css(b),k=w=="absolute"||w=="fixed",i.data(v)||(k?i.data(v,{top:p(i,"top")||0,left:p(i,"left")||0,bottom:p(i,"bottom"),right:p(i,"right")}):i.data(v,{top:p(i,"marginTop")||0,left:p(i,"marginLeft")||0})),h=i.data(v),c=y.match(pt),c&&(l=o==v+"y"?0:+c[1],a=o==v+"y"?+c[1]:+c[2],k?(isNaN(h.right)?isNaN(l)||r(s,{left:h.left+l}):isNaN(l)||r(s,{right:h.right-l}),isNaN(h.bottom)?isNaN(a)||r(s,{top:h.top+a}):isNaN(a)||r(s,{bottom:h.bottom-a})):(isNaN(l)||r(s,{marginLeft:h.left+l}),isNaN(a)||r(s,{marginTop:h.top+a})))),!f&&o!="scale"&&o in s&&delete s[o],s&&r(u,s))});vt.msie&&delete u.scale;i.animate(u,{queue:!1,show:!1,hide:!1,duration:o.duration,complete:o.complete})})},animateTo:function(t,i,u){function a(n){i[0].style.cssText="";t.each(function(){this.style.cssText=""});h.mobileOS.android||f.css(tt,c);s||e.css(b,l);u.completeCallback&&u.completeCallback.call(t,n)}var o,f=t.parents().filter(i.parents()).first(),e=n().add(t.parent()).add(i.parent()),s=t.css(b)=="absolute",c,l;s||(l=e.css(b),e.css(b,"absolute"));u=ir(u);h.mobileOS.android||(c=f.css(tt),f.css(tt,"hidden"));n.each(u.effects,function(n,t){o=o||t.direction});u.complete=vt.msie?function(){setTimeout(a,0)}:a;u.previous=u.reverse?i:t;u.reset=!0;(u.reverse?t:i).each(function(){n(this).kendoAnimate(r(!0,{},u));u.complete=null;u.previous=null})}});u.animatedPromise=u.promise;u.animatedTransitionPromise=u.transitionPromise;l=i.Class.extend({init:function(n,t){var i=this;i.element=n;i._direction=t;i.options={};i._additionalEffects=[];i.restore||(i.restore=[])},reverse:function(){return this._reverse=!0,this.run()},play:function(){return this._reverse=!1,this.run()},add:function(n){return this._additionalEffects.push(n),this},direction:function(n){return this._direction=n,this},duration:function(n){return this._duration=n,this},compositeRun:function(){var n=this,t=new ct(n.element,{reverse:n._reverse,duration:n._duration}),i=n._additionalEffects.concat([n]);return t.run(i)},run:function(){if(this._additionalEffects&&this._additionalEffects[0])return this.compositeRun();var o=this,t=o.element,h=0,y=o.restore,w=y.length,c,l=n.Deferred(),i={},a={},v,p=o.children(),b=p.length;for(l.then(n.proxy(o,"_complete")),t.data("animating",!0),h=0;h<w;h++)c=y[h],t.data(c)||t.data(c,t.css(c));for(h=0;h<b;h++)p[h].duration(o._duration).run();return o.prepare(i,a),t.is(":visible")||r(i,{display:t.data("olddisplay")||"block"}),f&&(v=t.data("targetTransform"),v&&(i=r(v,i))),i=ht(t,i),f&&!s&&(i=st(i)),t.css(i).css(e),o.setup(),t.data("targetTransform",a),u.animate(t,a,{duration:o._duration,complete:l.resolve}),l.promise()},stop:function(){for(var t=0,i=this.children(),r=i.length,t=0;t<r;t++)i[t].stop();return n(this.element).kendoStop(!0,!0),this},restoreCallback:function(){for(var t,i=this.element,n=0,r=this.restore.length;n<r;n++)t=this.restore[n],i.css(t,i.data(t))},_complete:function(){var t=this,i=t.element;i.removeData("animating").dequeue();t.restoreCallback();t.shouldHide()&&i.data("olddisplay",i.css("display")).hide();yt&&!f&&setTimeout(n.proxy(t,"restoreCallback"),0);t.teardown()},setOptions:function(n){r(!0,this.options,n)},children:function(){return[]},shouldHide:n.noop,setup:n.noop,prepare:n.noop,teardown:n.noop,directions:[],setReverse:function(n){return this._reverse=n,this}});k=["left","right","up","down"];ui=["in","out"];o("slideIn",{directions:k,divisor:function(n){return this.options.divisor=n,this},prepare:function(n,t){var r=this,u,e=r.element,i=c[r._direction],h=-i.modifier*(i.vertical?e.outerHeight():e.outerWidth()),o=h/(r.options&&r.options.divisor||1)+w,s="0px";r._reverse&&(u=n,n=t,t=u);f?(n[i.transition]=o,t[i.transition]=s):(n[i.property]=o,t[i.property]=s)}});o("tile",{directions:k,init:function(n,t,i){l.prototype.init.call(this,n,t);this.options={previous:i}},previousDivisor:function(n){return this.options.previousDivisor=n,this},children:function(){var n=this,t=n._reverse,r=n.options.previous,e=n.options.previousDivisor||1,u=n._direction,f=[i.fx(n.element).slideIn(u).setReverse(t)];return r&&f.push(i.fx(r).slideIn(c[u].reverse).divisor(e).setReverse(!t)),f}});fi("fade","opacity",1,0);fi("zoom","scale",1,.01);o("slideMargin",{prepare:function(n,t){var r=this,i=r.element,u=r.options,o=i.data(et),s=u.offset,f,e=r._reverse;e||o!==null||i.data(et,parseFloat(i.css("margin-"+u.axis)));f=i.data(et)||0;t["margin-"+u.axis]=e?f:f+s}});o("slideTo",{prepare:function(n,t){var u=this,e=u.element,o=u.options,i=o.offset.split(","),r=u._reverse;f?(t.translatex=r?0:i[0],t.translatey=r?0:i[1]):(t.left=r?0:i[0],t.top=r?0:i[1]);e.css("left")}});o("expand",{directions:["horizontal","vertical"],restore:[tt],prepare:function(n,i){var f=this,e=f.element,o=f.options,s=f._reverse,r=f._direction==="vertical"?nt:ft,h=e[0].style[r],c=e.data(r),u=parseFloat(c||h),l=ki(e.css(r,ut)[r]());n.overflow=bt;u=o&&o.reset?l||u:u||l;i[r]=(s?0:u)+w;n[r]=(s?u:0)+w;c===t&&e.data(r,h)},shouldHide:function(){return this._reverse},teardown:function(){var t=this,i=t.element,n=t._direction==="vertical"?nt:ft,r=i.data(n);(r==ut||r===di)&&setTimeout(function(){i.css(n,ut).css(n)},0)}});ei={position:"absolute",marginLeft:0,marginTop:0,scale:1};o("transfer",{init:function(n,t){this.element=n;this.options={target:t};this.restore=[]},setup:function(){this.element.appendTo(document.body)},prepare:function(n,t){var s=this,i=s.element,g=s.options,nt=s._reverse,h=g.target,u,tt=ri(i,"scale"),l=h.offset(),a=h.outerHeight()/i.outerHeight();r(n,ei);t.scale=1;i.css(e,"scale(1)").css(e);u=i.offset();i.css(e,"scale("+tt+")");var f=0,o=0,v=l.left-u.left,y=l.top-u.top,p=f+i.outerWidth(),b=o,it=v+h.outerWidth(),rt=y,c=(y-o)/(v-f),k=(rt-b)/(it-p),d=(o-b-c*f+k*p)/(k-c),ut=o+c*(d-f);n.top=u.top;n.left=u.left;n.transformOrigin=d+w+" "+ut+w;nt?n.scale=a:t.scale=a}});oi={top:"rect(auto auto $size auto)",bottom:"rect($size auto auto auto)",left:"rect(auto $size auto auto)",right:"rect(auto auto auto $size)"};si={top:{start:"rotatex(0deg)",end:"rotatex(180deg)"},bottom:{start:"rotatex(-180deg)",end:"rotatex(0deg)"},left:{start:"rotatey(0deg)",end:"rotatey(-180deg)"},right:{start:"rotatey(180deg)",end:"rotatey(0deg)"}};o("turningPage",{directions:k,init:function(n,t,i){l.prototype.init.call(this,n,t);this._container=i},prepare:function(n,t){var r=this,f=r._reverse,o=f?c[r._direction].reverse:r._direction,u=si[o];n.zIndex=1;r._clipInHalf&&(n.clip=hi(r._container,i.directions[o].reverse));n[nr]=bt;t[e]=ni+(f?u.start:u.end);n[e]=ni+(f?u.end:u.start)},setup:function(){this._container.append(this.element)},face:function(n){return this._face=n,this},shouldHide:function(){var n=this,t=n._reverse,i=n._face;return t&&!i||!t&&i},clipInHalf:function(n){return this._clipInHalf=n,this},temporary:function(){return this.element.addClass("temp-page"),this}});o("staticPage",{directions:k,init:function(n,t,i){l.prototype.init.call(this,n,t);this._container=i},restore:["clip"],prepare:function(n,t){var i=this,r=i._reverse?c[i._direction].reverse:i._direction;n.clip=hi(i._container,r);n.opacity=.999;t.opacity=1},shouldHide:function(){var n=this,t=n._reverse,i=n._face;return t&&!i||!t&&i},face:function(n){return this._face=n,this}});o("pageturn",{directions:["horizontal","vertical"],init:function(n,t,i,r){l.prototype.init.call(this,n,t);this.options={};this.options.face=i;this.options.back=r},children:function(){var r=this,u=r.options,n=r._direction==="horizontal"?"left":"top",f=i.directions[n].reverse,t=r._reverse,o,s=u.face.clone(!0).removeAttr("id"),h=u.back.clone(!0).removeAttr("id"),e=r.element;return t&&(o=n,n=f,f=o),[i.fx(u.face).staticPage(n,e).face(!0).setReverse(t),i.fx(u.back).staticPage(f,e).setReverse(t),i.fx(s).turningPage(n,e).face(!0).clipInHalf(!0).temporary().setReverse(t),i.fx(h).turningPage(f,e).clipInHalf(!0).temporary().setReverse(t)]},prepare:function(n,t){n[gt]=ot;n.transformStyle="preserve-3d";n.opacity=.999;t.opacity=1},teardown:function(){this.element.find(".temp-page").remove()}});o("flip",{directions:["horizontal","vertical"],init:function(n,t,i,r){l.prototype.init.call(this,n,t);this.options={};this.options.face=i;this.options.back=r},children:function(){var n=this,f=n.options,t=n._direction==="horizontal"?"left":"top",r=i.directions[t].reverse,u=n._reverse,e,o=n.element;return u&&(e=t,t=r,r=e),[i.fx(f.face).turningPage(t,o).face(!0).setReverse(u),i.fx(f.back).turningPage(r,o).setReverse(u)]},prepare:function(n){n[gt]=ot;n.transformStyle="preserve-3d"}});it=i.Class.extend({init:function(){var n=this;n._tickProxy=ci(n._tick,n);n._started=!1},tick:n.noop,done:n.noop,onEnd:n.noop,onCancel:n.noop,start:function(){this.done()||(this._started=!0,i.animationFrame(this._tickProxy))},cancel:function(){this._started=!1;this.onCancel()},_tick:function(){var n=this;n._started&&(n.tick(),n.done()?(n._started=!1,n.onEnd()):i.queueAnimation(n._tickProxy))}});at=it.extend({init:function(n){var t=this;r(t,n);it.fn.init.call(t)},done:function(){return this.timePassed()>=this.duration},timePassed:function(){return Math.min(this.duration,new Date-this.startDate)},moveTo:function(n){var t=this,i=t.movable;t.initial=i[t.axis];t.delta=n.location-t.initial;t.duration=typeof n.duration=="number"?n.duration:300;t.tick=t._easeProxy(n.ease);t.startDate=new Date;t.start()},_easeProxy:function(n){var t=this;return function(){t.movable.moveAxis(t.axis,n(t.timePassed(),t.initial,t.delta,t.duration))}}});r(at,{easeOutExpo:function(n,t,i,r){return n==r?t+i:i*(-Math.pow(2,-10*n/r)+1)+t},easeOutBack:function(n,t,i,r,u){return u=1.70158,i*((n=n/r-1)*n*((u+1)*n+u)+1)+t}});u.Animation=it;u.Transition=at;u.createEffect=o}(window.kendo.jQuery);kendo_module({id:"data",name:"Data source",category:"framework",description:"Powerful component for using local and remote data.Fully supports CRUD, Sorting, Paging, Filtering, Grouping, and Aggregates.",depends:["core"],features:[{id:"data-odata",name:"OData",description:"Support for accessing Open Data Protocol (OData) services.",depends:["data.odata"]},{id:"data-XML",name:"XML",description:"Support for binding to XML.",depends:["data.xml"]}]}),function(n,t){function gt(n,t,i,u){return function(f){var e={};for(var o in f)e[o]=f[o];e.field=u?i+"."+f.field:i;t==r&&n._notifyChange&&n._notifyChange(e);n.trigger(t,e)}}function li(t,i){if(t===i)return!0;var r=n.type(t),f=n.type(i),u;if(r!==f)return!1;if(r==="date")return t.getTime()===i.getTime();if(r!=="object"&&r!=="array")return!1;for(u in t)if(!li(t[u],i[u]))return!1;return!0}function ou(n,t){var i;for(var r in n)if((i=n[r],l(i)&&i.field&&i.field===t)||i===t)return i;return null}function u(n){this.data=n||[]}function it(n,i){if(n){var r=typeof n===o?{field:n,dir:i}:n,u=d(r)?r:r!==t?[r]:[];return pr(u,function(n){return!!n.dir})}}function wi(n){var i,f,r,t,u=n.filters;if(u)for(i=0,f=u.length;i<f;i++)r=u[i],t=r.operator,t&&typeof t===o&&(r.operator=pi[t.toLowerCase()]||t),wi(r)}function ct(n){if(n&&!k(n))return(d(n)||!n.filters)&&(n={logic:"and",filters:d(n)?n:[n]}),wi(n),n}function su(n){return d(n)?n:[n]}function rt(n,i){var r=typeof n===o?{field:n,dir:i}:n,u=d(r)?r:r!==t?[r]:[];return vt(u,function(n){return{field:n.field,dir:n.dir||"asc",aggregates:n.aggregates}})}function hu(n,t){return n&&n.getTime&&t&&t.getTime?n.getTime()===t.getTime():n===t}function cu(n,t,r,u,f){var o,h,s,c,e;for(t=t||[],c=t.length,o=0;o<c;o++)h=t[o],s=h.aggregate,e=h.field,n[e]=n[e]||{},n[e][s]=bi[s.toLowerCase()](n[e][s],r,i.accessor(e),u,f)}function ki(n){return typeof n=="number"&&!isNaN(n)}function lu(n){for(var i=n.length,r=new Array(i),t=0;t<i;t++)r[t]=n[t].toJSON();return r}function di(n,t){t=t||{};var i=new u(n),f=t.aggregate,r=t.filter;return r&&(i=i.filter(r)),i.aggregate(f)}function au(n,t,i,r,u){for(var e,f,o,s=0,h=n.length;s<h;s++){e=n[s];for(f in t)o=u[f],o&&o!==f&&(e[o]=t[f](e),delete e[f])}}function tr(n,t,i,r,u){for(var e,f,o,s=0,h=n.length;s<h;s++){e=n[s];for(f in t)e[f]=i._parse(f,t[f](e)),o=u[f],o&&o!==f&&delete e[o]}}function ir(n,t,i,r,u){for(var f,o,e=0,s=n.length;e<s;e++)f=n[e],o=r[f.field],o&&o!=f.field&&(f.field=o),f.value=i._parse(f.field,f.value),f.hasSubgroups?ir(f.items,t,i,r,u):tr(f.items,t,i,r,u)}function ni(n,t,i,r,u,f){return function(e){return e=n(e),e&&!k(r)&&(st.call(e)==="[object Array]"||e instanceof p||(e=[e]),i(e,r,new t,u,f)),e||[]}}function ii(n,t,i,r){for(var f,e=0,u,o;t.length&&r;)if(f=t[e],u=f.items,o=u.length,n&&n.field===f.field&&n.value===f.value?(n.hasSubgroups&&n.items.length?ii(n.items[n.items.length-1],f.items,i,r):(u=u.slice(i,i+r),n.items=n.items.concat(u)),t.splice(e--,1)):f.hasSubgroups&&u.length?ii(f,u,i,r):(u=u.slice(i,i+r),f.items=u,f.items.length||t.splice(e--,1)),u.length===0?i-=o:(i=0,r-=u.length),++e>=t.length)break;e<t.length&&t.splice(e,t.length-e)}function rr(n){for(var i=[],t=0,r=n.length;t<r;t++)i=n[t].hasSubgroups?i.concat(rr(n[t].items)):i.concat(n[t].items.slice());return i}function ur(n,t){var r,f,u,i;if(t)for(r=0,f=n.length;r<f;r++)u=n[r],i=u.items,u.hasSubgroups?ur(i,t):!i.length||i[0]instanceof t||(i.type=t,i.wrapAll(i,i))}function fr(n,t){for(var i=0,r=n.length;i<r;i++)if(n[i].hasSubgroups){if(fr(n[i].items,t))return!0}else if(t(n[i].items,n[i]))return!0}function vu(n,t){for(var i=0,r=n.length;i<r;i++)if(n[i].uid==t.uid)return t=n[i],n.splice(i,1),t}function er(n,t){for(var i,u,r=n.length-1,f=0;r>=f;r--)u=n[r],i={value:t.get(u.field),field:u.field,items:i?[i]:[t],hasSubgroups:!!i,aggregates:{}};return i}function or(n,t){return t?hr(n,function(n){return n[t.idField]===t.id}):-1}function sr(n,t){return t?hr(n,function(n){return n.uid==t.uid}):-1}function hr(n,t){for(var i=0,r=n.length;i<r;i++)if(t(n[i]))return i;return-1}function cr(n,t){if(n&&!k(n)){var i=n[t],r;return(r=l(i)?i.from||i.field||t:n[t]||t,y(r))?t:r}return t}function lr(n,t){var r,f,i={};for(var u in n)u!=="filters"&&(i[u]=n[u]);if(n.filters)for(i.filters=[],r=0,f=n.filters.length;r<f;r++)i.filters[r]=lr(n.filters[r],t);else i.field=cr(t.fields,i.field);return i}function lt(n,t){for(var o=[],i,u,f,r=0,e=n.length;r<e;r++){i={};u=n[r];for(f in u)i[f]=u[f];i.field=cr(t.fields,i.field);i.aggregates&&d(i.aggregates)&&(i.aggregates=lt(i.aggregates,t));o.push(i)}return o}function yu(t,i){for(var o=n(t)[0].children,h=[],e,c=i[0],l=i[1],u,r,f=0,s=o.length;f<s;f++)(e={},r=o[f],r.disabled)||(e[c.field]=r.text,u=r.attributes.value,u=u&&u.specified?r.value:r.text,e[l.field]=u,h.push(e));return h}function pu(t,i){for(var s=n(t)[0].tBodies[0],h=s?s.rows:[],r,v=i.length,l=[],a,f,e,o,u=0,c=h.length;u<c;u++){for(f={},o=!0,a=h[u].cells,r=0;r<v;r++)e=a[r],e.nodeName.toLowerCase()!=="th"&&(o=!1,f[i[r].field]=e.innerHTML);o||l.push(f)}return l}function ar(n){return function(){var t=this._data,i=h.fn[n].apply(this,dt.call(arguments));return this._data!=t&&this._attachBubbleHandlers(),i}}function vr(t,i){function c(n,t){return n.filter(t).add(n.find(t))}for(var l=n(t).children(),v=[],r,b=i[0].field,y=i[1]&&i[1].field,p=i[2]&&i[2].field,w=i[3]&&i[3].field,f,s,o,h,u,e=0,a=l.length;e<a;e++)r={_loaded:!0},f=l.eq(e),o=f[0].firstChild,u=f.children(),t=u.filter("ul"),u=u.filter(":not(ul)"),s=f.attr("data-id"),s&&(r.id=s),o&&(r[b]=o.nodeType==3?o.nodeValue:u.text()),y&&(r[y]=c(u,"a").attr("href")),w&&(r[w]=c(u,"img").attr("src")),p&&(h=c(u,".k-sprite").prop("className"),r[p]=h&&n.trim(h.replace("k-sprite",""))),t.length&&(r.items=vr(t.eq(0),i)),f.attr("data-hasChildren")=="true"&&(r.hasChildren=!0),v.push(r);return v}var e=n.extend,v=n.proxy,l=n.isPlainObject,k=n.isEmptyObject,d=n.isArray,pr=n.grep,at=n.ajax,vt,yt=n.each,b=n.noop,i=window.kendo,y=i.isFunction,g=i.Observable,ft=i.Class,o="string",pt="function",ei="create",oi="read",si="update",hi="destroy",r="change",ci="sync",wt="get",a="error",tt="requestStart",bt="progress",nt="requestEnd",wr=[ei,oi,si,hi],et=function(n){return n},ot=i.getter,kt=i.stringify,f=Math,br=[].push,kr=[].join,dr=[].pop,gr=[].splice,nu=[].shift,dt=[].slice,tu=[].unshift,st={}.toString,iu=i.support.stableSort,ru=/^\/Date\((.*?)\)\/$/,uu=/(\r+|\n+)/g,fu=/(?=['\\])/g,p=g.extend({init:function(n,t){var i=this;i.type=t||s;g.fn.init.call(i);i.length=n.length;i.wrapAll(n,i)},toJSON:function(){for(var i=this.length,t,r=new Array(i),n=0;n<i;n++)t=this[n],t instanceof s&&(t=t.toJSON()),r[n]=t;return r},parent:b,wrapAll:function(n,t){var r=this,i,u,f=function(){return r};for(t=t||[],i=0,u=n.length;i<u;i++)t[i]=r.wrap(n[i],f);return t},wrap:function(n,t){var i=this,u;return n!==null&&st.call(n)==="[object Object]"&&(u=n instanceof i.type||n instanceof c,u||(n=n instanceof s?n.toJSON():n,n=new i.type(n)),n.parent=t,n.bind(r,function(n){i.trigger(r,{field:n.field,node:n.node,index:n.index,items:n.items||[this],action:n.node?n.action||"itemchange":"itemchange"})})),n},push:function(){var i=this.length,n=this.wrapAll(arguments),t;return t=br.apply(this,n),this.trigger(r,{action:"add",index:i,items:n}),t},slice:dt,join:kr,pop:function(){var n=this.length,t=dr.apply(this);return n&&this.trigger(r,{action:"remove",index:n-1,items:[t]}),t},splice:function(n,t,i){var e=this.wrapAll(dt.call(arguments,2)),u,f,o;if(u=gr.apply(this,[n,t].concat(e)),u.length)for(this.trigger(r,{action:"remove",index:n,items:u}),f=0,o=u.length;f<o;f++)u[f].children&&u[f].unbind(r);return i&&this.trigger(r,{action:"add",index:n,items:e}),u},shift:function(){var t=this.length,n=nu.apply(this);return t&&this.trigger(r,{action:"remove",index:0,items:[n]}),n},unshift:function(){var n=this.wrapAll(arguments),t;return t=tu.apply(this,n),this.trigger(r,{action:"add",index:0,items:n}),t},indexOf:function(n){for(var i=this,t=0,r=i.length;t<r;t++)if(i[t]===n)return t;return-1},forEach:function(n){for(var t=0,i=this.length;t<i;t++)n(this[t],t,this)},map:function(n){for(var t=0,i=[],r=this.length;t<r;t++)i[t]=n(this[t],t,this);return i},filter:function(n){for(var t=0,i=[],r,u=this.length;t<u;t++)r=this[t],n(r,t,this)&&(i[i.length]=r);return i},find:function(n){for(var t=0,i,r=this.length;t<r;t++)if(i=this[t],n(i,t,this))return i},every:function(n){for(var t=0,i,r=this.length;t<r;t++)if(i=this[t],!n(i,t,this))return!1;return!0},some:function(n){for(var t=0,i,r=this.length;t<r;t++)if(i=this[t],n(i,t,this))return!0;return!1},remove:function(n){this.splice(this.indexOf(n),1)},empty:function(){this.splice(0,this.length)}}),s=g.extend({init:function(n){var r=this,u,t,f=function(){return r};g.fn.init.call(this);for(t in n)u=n[t],t.charAt(0)!="_"&&(u=r.wrap(u,t,f)),r[t]=u;r.uid=i.guid()},shouldSerialize:function(n){return this.hasOwnProperty(n)&&n!=="_events"&&typeof this[n]!==pt&&n!=="uid"},forEach:function(n){for(var t in this)this.shouldSerialize(t)&&n(this[t],t)},toJSON:function(){var i={},n;for(var t in this)this.shouldSerialize(t)&&(n=this[t],(n instanceof s||n instanceof p)&&(n=n.toJSON()),i[t]=n);return i},get:function(n){var t=this;return t.trigger(wt,{field:n}),n==="this"?t:i.getter(n,!0)(t)},_set:function(n,t){var o=this,f=n.indexOf(".")>=0,r,u,e;if(f)for(r=n.split("."),u="";r.length>1;){if(u+=r.shift(),e=i.getter(u,!0)(o),e instanceof s)return e.set(r.join("."),t),f;u+="."}return i.setter(n)(o,t),f},set:function(n,t){var u=this,f=i.getter(n,!0)(u);f!==t&&(u.trigger("set",{field:n,value:t})||(!u._set(n,u.wrap(t,n,function(){return u}))||n.indexOf("(")>=0||n.indexOf("[")>=0)&&u.trigger(r,{field:n}))},parent:b,wrap:function(n,t,i){var o=this,u=st.call(n),f,e;return n!=null&&(u==="[object Object]"||u==="[object Array]")&&(f=n instanceof p,e=n instanceof h,u!=="[object Object]"||e||f?(u==="[object Array]"||f||e)&&(f||e||(n=new p(n)),n.parent()!=i()&&n.bind(r,gt(o,r,t,!1))):(n instanceof s||(n=new s(n)),n.parent()!=i()&&(n.bind(wt,gt(o,wt,t,!0)),n.bind(r,gt(o,r,t,!0)))),n.parent=i),n}}),ai={number:function(n){return i.parseFloat(n)},date:function(n){return i.parseDate(n)},boolean:function(n){return typeof n===o?n.toLowerCase()==="true":n!=null?!!n:n},string:function(n){return n!=null?n+"":n},"default":function(n){return n}},eu={string:"",number:0,date:new Date,boolean:!1,"default":""},c=s.extend({init:function(i){var r=this;(!i||n.isEmptyObject(i))&&(i=n.extend({},r.defaults,i));s.fn.init.call(r,i);r.dirty=!1;r.idField&&(r.id=r.get(r.idField),r.id===t&&(r.id=r._defaultId))},shouldSerialize:function(n){return s.fn.shouldSerialize.call(this,n)&&n!=="uid"&&!(this.idField!=="id"&&n==="id")&&n!=="dirty"&&n!=="_accessors"},_parse:function(n,t){var u=this,f=n,r=u.fields||{},i;return n=r[n],n||(n=ou(r,f)),n&&(i=n.parse,!i&&n.type&&(i=ai[n.type.toLowerCase()])),i?i(t):t},_notifyChange:function(n){var t=n.action;(t=="add"||t=="remove")&&(this.dirty=!0)},editable:function(n){return n=(this.fields||{})[n],n?n.editable!==!1:!0},set:function(n,t,i){var r=this;r.editable(n)&&(t=r._parse(n,t),li(t,r.get(n))||(r.dirty=!0,s.fn.set.call(r,n,t,i)))},accept:function(n){var t=this,u=function(){return t},i,r;for(i in n)r=n[i],i.charAt(0)!="_"&&(r=t.wrap(n[i],i,u)),t._set(i,r);t.idField&&(t.id=t.get(t.idField));t.dirty=!1},isNew:function(){return this.id===this._defaultId}}),ht,vi,yi,pi,bi,ti,h,ri,ui,w,fi,yr;c.define=function(n,i){i===t&&(i=n,n=c);var s,r=e({defaults:{}},i),f,u,y,l,a,w,p={},h,v=r.id;if(v&&(r.idField=v),r.id&&delete r.id,v&&(r.defaults[v]=r._defaultId=""),st.call(r.fields)==="[object Array]"){for(a=0,w=r.fields.length;a<w;a++)u=r.fields[a],typeof u===o?p[u]={}:u.field&&(p[u.field]=u);r.fields=p}for(f in r.fields)u=r.fields[f],y=u.type||"default",l=null,h=f,f=typeof u.field===o?u.field:f,u.nullable||(l=r.defaults[h!==f?h:f]=u.defaultValue!==t?u.defaultValue:eu[y.toLowerCase()]),i.id===f&&(r._defaultId=l),r.defaults[h!==f?h:f]=l,u.parse=u.parse||ai[y];return s=n.extend(r),s.define=function(n){return c.define(s,n)},r.fields&&(s.fields=r.fields,s.idField=r.idField),s};ht={selector:function(n){return y(n)?n:ot(n)},compare:function(n){var t=this.selector(n);return function(n,i){return(n=t(n),i=t(i),n==null&&i==null)?0:n==null?-1:i==null?1:n.localeCompare?n.localeCompare(i):n>i?1:n<i?-1:0}},create:function(n){var t=n.compare||this.compare(n.field);return n.dir=="desc"?function(n,i){return t(i,n,!0)}:t},combine:function(n){return function(t,i){for(var u=n[0](t,i),r=1,f=n.length;r<f;r++)u=u||n[r](t,i);return u}}};vi=e({},ht,{asc:function(n){var t=this.selector(n);return function(n,i){var r=t(n),u=t(i);return(r&&r.getTime&&u&&u.getTime&&(r=r.getTime(),u=u.getTime()),r===u)?n.__position-i.__position:r==null?-1:u==null?1:r.localeCompare?r.localeCompare(u):r>u?1:-1}},desc:function(n){var t=this.selector(n);return function(n,i){var u=t(n),r=t(i);return(u&&u.getTime&&r&&r.getTime&&(u=u.getTime(),r=r.getTime()),u===r)?n.__position-i.__position:u==null?1:r==null?-1:r.localeCompare?r.localeCompare(u):u<r?1:-1}},create:function(n){return this[n.dir](n.field)}});vt=function(n,t){for(var r=n.length,u=new Array(r),i=0;i<r;i++)u[i]=t(n[i],i,n);return u};yi=function(){function t(n){return n.replace(fu,"\\").replace(uu,"")}function n(n,i,r,u){var f;return r!=null&&(typeof r===o&&(r=t(r),f=ru.exec(r),f?r=new Date(+f[1]):u?(r="'"+r.toLowerCase()+"'",i="("+i+" || '').toLowerCase()"):r="'"+r+"'"),r.getTime&&(i="("+i+"?"+i+".getTime():"+i+")",r=r.getTime())),i+" "+n+" "+r}return{eq:function(t,i,r){return n("==",t,i,r)},neq:function(t,i,r){return n("!=",t,i,r)},gt:function(t,i,r){return n(">",t,i,r)},gte:function(t,i,r){return n(">=",t,i,r)},lt:function(t,i,r){return n("<",t,i,r)},lte:function(t,i,r){return n("<=",t,i,r)},startswith:function(n,i,r){return r&&(n="("+n+" || '').toLowerCase()",i&&(i=i.toLowerCase())),i&&(i=t(i)),n+".lastIndexOf('"+i+"', 0) == 0"},endswith:function(n,i,r){return r&&(n="("+n+" || '').toLowerCase()",i&&(i=i.toLowerCase())),i&&(i=t(i)),n+".indexOf('"+i+"', "+n+".length - "+(i||"").length+") >= 0"},contains:function(n,i,r){return r&&(n="("+n+" || '').toLowerCase()",i&&(i=i.toLowerCase())),i&&(i=t(i)),n+".indexOf('"+i+"') >= 0"},doesnotcontain:function(n,i,r){return r&&(n="("+n+" || '').toLowerCase()",i&&(i=i.toLowerCase())),i&&(i=t(i)),n+".indexOf('"+i+"') == -1"}}}();u.filterExpr=function(n){for(var l=[],r,f,e=[],o=[],h,c,v=n.filters,s=0,a=v.length;s<a;s++)r=v[s],h=r.field,c=r.operator,r.filters?(f=u.filterExpr(r),r=f.expression.replace(/__o\[(\d+)\]/g,function(n,t){return t=+t,"__o["+(o.length+t)+"]"}).replace(/__f\[(\d+)\]/g,function(n,t){return t=+t,"__f["+(e.length+t)+"]"}),o.push.apply(o,f.operators),e.push.apply(e,f.fields)):(typeof h===pt?(f="__f["+e.length+"](d)",e.push(h)):f=i.expr(h),typeof c===pt?(r="__o["+o.length+"]("+f+", "+r.value+")",o.push(c)):r=yi[(c||"eq").toLowerCase()](f,r.value,r.ignoreCase!==t?r.ignoreCase:!0)),l.push(r);return{expression:"("+l.join({and:" && ",or:" || "}[n.logic])+")",fields:e,operators:o}};pi={"==":"eq",equals:"eq",isequalto:"eq",equalto:"eq",equal:"eq","!=":"neq",ne:"neq",notequals:"neq",isnotequalto:"neq",notequalto:"neq",notequal:"neq","<":"lt",islessthan:"lt",lessthan:"lt",less:"lt","<=":"lte",le:"lte",islessthanorequalto:"lte",lessthanequal:"lte",">":"gt",isgreaterthan:"gt",greaterthan:"gt",greater:"gt",">=":"gte",isgreaterthanorequalto:"gte",greaterthanequal:"gte",ge:"gte",notsubstringof:"doesnotcontain"};u.normalizeFilter=ct;u.prototype={toArray:function(){return this.data},range:function(n,t){return new u(this.data.slice(n,n+t))},skip:function(n){return new u(this.data.slice(n))},take:function(n){return new u(this.data.slice(0,n))},select:function(n){return new u(vt(this.data,n))},order:function(n,t){var i={dir:t};return n&&(n.compare?i.compare=n.compare:i.field=n),new u(this.data.slice(0).sort(ht.create(i)))},orderBy:function(n){return this.order(n,"asc")},orderByDescending:function(n){return this.order(n,"desc")},sort:function(n,t,i){var r,f,u=it(n,t),e=[];if(i=i||ht,u.length){for(r=0,f=u.length;r<f;r++)e.push(i.create(u[r]));return this.orderBy({compare:i.combine(e)})}return this},filter:function(n){var t,r,s,i,h,c=this.data,f,e,l=[],o;if(n=ct(n),!n||n.filters.length===0)return this;for(i=u.filterExpr(n),f=i.fields,e=i.operators,h=o=new Function("d, __f, __o","return "+i.expression),(f.length||e.length)&&(o=function(n){return h(n,f,e)}),t=0,s=c.length;t<s;t++)r=c[t],o(r)&&l.push(r);return new u(l)},group:function(n,t){n=rt(n||[]);t=t||this.data;var f=this,i=new u(f.data),r;return n.length>0&&(r=n[0],i=i.groupBy(r).select(function(i){var f=new u(t).filter([{field:i.field,operator:"eq",value:i.value,ignoreCase:!1}]);return{field:i.field,value:i.value,items:n.length>1?new u(i.items).group(n.slice(1),f.toArray()).toArray():i.items,hasSubgroups:n.length>1,aggregates:f.aggregate(r.aggregates)}})),i},groupBy:function(n){if(k(n)||!this.data.length)return new u([]);for(var t=n.field,o=this._sortForGrouping(t,n.dir||"asc"),c=i.accessor(t),s,r=c.get(o[0],t),f={field:t,value:r,items:[]},h,a=[f],e=0,l=o.length;e<l;e++)s=o[e],h=c.get(s,t),hu(r,h)||(r=h,f={field:t,value:r,items:[]},a.push(f)),f.items.push(s);return new u(a)},_sortForGrouping:function(n,t){var i,f,r=this.data;if(!iu){for(i=0,f=r.length;i<f;i++)r[i].__position=i;for(r=new u(r).sort(n,t,vi).toArray(),i=0,f=r.length;i<f;i++)delete r[i].__position;return r}return this.sort(n,t).toArray()},aggregate:function(n){var t,i,r={};if(n&&n.length)for(t=0,i=this.data.length;t<i;t++)cu(r,n,this.data[t],t,i);return r}};bi={sum:function(n,t,i){return(n||0)+i.get(t)},count:function(n){return(n||0)+1},average:function(n,t,i,r,u){return n=(n||0)+i.get(t),r==u-1&&(n=n/u),n},max:function(n,t,i){var r=i.get(t);return n=n||0,n<r&&(n=r),n},min:function(n,t,i){var r=i.get(t);return ki(n)||(n=r),n>r&&ki(r)&&(n=r),n}};u.process=function(n,i){i=i||{};var r=new u(n),f=i.group,e=rt(f||[]).concat(it(i.sort||[])),o,s=i.filter,h=i.skip,c=i.take;return s&&(r=r.filter(s),o=r.toArray().length),e&&(r=r.sort(e),f&&(n=r.toArray())),h!==t&&c!==t&&(r=r.range(h,c)),f&&(r=r.group(f,n)),{total:o,data:r.toArray()}};var gi=ft.extend({init:function(n){this.data=n.data},read:function(n){n.success(this.data)},update:function(n){n.success(n.data)},create:function(n){n.success(n.data)},destroy:function(n){n.success(n.data)}}),nr=ft.extend({init:function(n){var i=this,t;n=i.options=e({},i.options,n);yt(wr,function(t,i){typeof n[i]===o&&(n[i]={url:n[i]})});i.cache=n.cache?ut.create(n.cache):{find:b,add:b};t=n.parameterMap;i.parameterMap=y(t)?t:function(n){var i={};return yt(n,function(n,r){n in t&&(n=t[n],l(n)&&(r=n.value(r),n=n.key));i[n]=r}),i}},options:{parameterMap:et},create:function(n){return at(this.setup(n,ei))},read:function(i){var f=this,r,o,u,e=f.cache;i=f.setup(i,oi);r=i.success||b;o=i.error||b;u=e.find(i.data);u!==t?r(u):(i.success=function(n){e.add(i.data,n);r(n)},n.ajax(i))},update:function(n){return at(this.setup(n,si))},destroy:function(n){return at(this.setup(n,hi))},setup:function(n,t){n=n||{};var u=this,r,i=u.options[t],f=y(i.data)?i.data(n.data):i.data;return n=e(!0,{},i,n),r=e(!0,{},f,n.data),n.data=u.parameterMap(r,t),y(n.url)&&(n.url=n.url(r)),n}}),ut=ft.extend({init:function(){this._store={}},add:function(n,i){n!==t&&(this._store[kt(n)]=i)},find:function(n){return this._store[kt(n)]},clear:function(){this._store={}},remove:function(n){delete this._store[kt(n)]}});ut.create=function(n){var t={inmemory:function(){return new ut}};return l(n)&&y(n.find)?n:n===!0?new ut:t[n]()};ti=ft.extend({init:function(n){var t=this,s,u,i,y;n=n||{};for(s in n)u=n[s],t[s]=typeof u===o?ot(u):u;if(y=n.modelBase||c,l(t.model)&&(t.model=i=y.define(t.model)),t.model){var w=v(t.data,t),b=v(t.groups,t),k=v(t.serialize,t),f={},h={},p={},e={},a=!1,r;i=t.model;i.fields&&(yt(i.fields,function(n,t){var i;r=n;l(t)&&t.field?r=t.field:typeof t===o&&(r=t);l(t)&&t.from&&(i=t.from);a=a||i&&i!==n||r!==n;h[n]=ot(i||r);p[n]=ot(n);f[i||r]=n;e[n]=i||r}),!n.serialize&&a&&(t.serialize=ni(k,i,au,p,f,e)));t.data=ni(w,i,tr,h,f,e);t.groups=ni(b,i,ir,h,f,e)}},errors:function(n){return n?n.errors:null},parse:et,data:et,total:function(n){return n.length},groups:et,aggregates:function(){return{}},serialize:function(n){return n}});h=g.extend({init:function(n){var u=this,o,f;n&&(f=n.data);n=u.options=e({},u.options,n);u._map={};u._prefetch={};u._data=[];u._pristineData=[];u._ranges=[];u._view=[];u._pristine=[];u._destroyed=[];u._pageSize=n.pageSize;u._page=n.page||(n.pageSize?1:t);u._sort=it(n.sort);u._filter=ct(n.filter);u._group=rt(n.group);u._aggregate=n.aggregate;u._total=n.total;g.fn.init.call(u);u.transport=ri.create(n,f);u.reader=new i.data.readers[n.schema.type||"json"](n.schema);o=u.reader.model||{};u._data=u._observe(u._data);u.bind([a,r,tt,ci,nt,bt],n)},options:{data:[],schema:{modelBase:c},serverSorting:!1,serverPaging:!1,serverFiltering:!1,serverGrouping:!1,serverAggregates:!1,batch:!1},_isServerGrouped:function(){var n=this.group()||[];return this.options.serverGrouping&&n.length},_flatData:function(n){return this._isServerGrouped()?rr(n):n},parent:b,get:function(n){for(var i=this._flatData(this._data),t=0,r=i.length;t<r;t++)if(i[t].id==n)return i[t]},getByUid:function(n){var t,r,i=this._flatData(this._data);if(i)for(t=0,r=i.length;t<r;t++)if(i[t].uid==n)return i[t]},indexOf:function(n){return sr(this._data,n)},at:function(n){return this._data[n]},data:function(n){var i=this;if(n!==t)i._data=this._observe(n),i._ranges=[],i._addRange(i._data),i._total=i._data.length,i._process(i._data);else return i._data},view:function(){return this._view},add:function(n){return this.insert(this._data.length,n)},_createNewModel:function(n){return this.reader.model?new this.reader.model(n):new s(n)},insert:function(n,t){return t||(t=n,n=0),t instanceof c||(t=this._createNewModel(t)),this._isServerGrouped()?this._data.splice(n,0,er(this.group(),t)):this._data.splice(n,0,t),t},remove:function(n){var t,i=this,r=i._isServerGrouped();return this._eachItem(i._data,function(u){return t=vu(u,n),t&&r?(t.isNew&&t.isNew()||i._destroyed.push(t),!0):void 0}),n},sync:function(){var t=this,i,f,e=[],o=[],s=t._destroyed,u=t._flatData(t._data),r;if(t.reader.model){for(i=0,f=u.length;i<f;i++)u[i].isNew()?e.push(u[i]):u[i].dirty&&o.push(u[i]);r=t._send("create",e);r.push.apply(r,t._send("update",o));r.push.apply(r,t._send("destroy",s));n.when.apply(null,r).then(function(){for(var n=0,i=arguments.length;n<i;n++)t._accept(arguments[n]);t._change({action:"sync"});t.trigger(ci)})}},cancelChanges:function(n){var t=this;n instanceof i.data.Model?t._cancelModel(n):(t._destroyed=[],t._data=t._observe(t._pristineData),t.options.serverPaging&&(t._total=t.reader.total(t._pristine)),t._change())},hasChanges:function(){var n,i,t=this._data;if(this._destroyed.length)return!0;for(n=0,i=t.length;n<i;n++)if(t[n].isNew()||t[n].dirty)return!0;return!1},_accept:function(t){var r=this,f=t.models,i=t.response,u=0,s=r._isServerGrouped(),h=r._pristineData,e=t.type,o;if(r.trigger(nt,{response:i,type:e}),i&&!k(i)){if(i=r.reader.parse(i),r._handleCustomErrors(i))return;i=r.reader.data(i);n.isArray(i)||(i=[i])}else i=n.map(f,function(n){return n.toJSON()});for(e==="destroy"&&(r._destroyed=[]),u=0,o=f.length;u<o;u++)e!=="destroy"?(f[u].accept(i[u]),e==="create"?h.push(s?er(r.group(),f[u]):i[u]):e==="update"&&r._updatePristineForModel(f[u],i[u])):r._removePristineForModel(f[u])},_updatePristineForModel:function(n,t){this._executeOnPristineForModel(n,function(n,r){i.deepExtend(r[n],t)})},_executeOnPristineForModel:function(n,t){this._eachPristineItem(function(i){var r=or(i,n);if(r>-1)return t(r,i),!0})},_removePristineForModel:function(n){this._executeOnPristineForModel(n,function(n,t){t.splice(n,1)})},_readData:function(n){var t=this._isServerGrouped()?this.reader.groups:this.reader.data;return t(n)},_eachPristineItem:function(n){this._eachItem(this._pristineData,n)},_eachItem:function(n,t){n&&n.length&&(this._isServerGrouped()?fr(n,t):t(n))},_pristineForModel:function(n){var i,t,r=function(r){return t=or(r,n),t>-1?(i=r[t],!0):void 0};return this._eachPristineItem(r),i},_cancelModel:function(n){var i=this._pristineForModel(n),t;this._eachItem(this._data,function(r){t=sr(r,n);t!=-1&&(!n.isNew()&&i?r[t].accept(i):r.splice(t,1))})},_promise:function(t,i,r){var u=this,f=u.transport;return n.Deferred(function(n){u.trigger(tt,{type:r});f[r].call(f,e({success:function(t){n.resolve({response:t,models:i,type:r})},error:function(t,i,r){n.reject(t);u.error(t,i,r)}},t))}).promise()},_send:function(n,t){var r=this,i,f,u=[],e=r.reader.serialize(lu(t));if(r.options.batch)t.length&&u.push(r._promise({data:{models:e}},t,n));else for(i=0,f=t.length;i<f;i++)u.push(r._promise({data:e[i]},[t[i]],n));return u},read:function(n){var t=this,i=t._params(n);t._queueRequest(i,function(){t.trigger(tt,{type:"read"})?t._dequeueRequest():(t.trigger(bt),t._ranges=[],t.transport.read({data:i,success:v(t.success,t),error:v(t.error,t)}))})},success:function(t){var i=this,r=i.options;if(i.trigger(nt,{response:t,type:"read"}),t=i.reader.parse(t),i._handleCustomErrors(t)){i._dequeueRequest();return}i._pristine=l(t)?n.extend(!0,{},t):t.slice?t.slice(0):t;i._total=i.reader.total(t);i._aggregate&&r.serverAggregates&&(i._aggregateResult=i.reader.aggregates(t));t=i._readData(t);i._pristineData=t.slice(0);i._data=i._observe(t);i._addRange(i._data);i._process(i._data);i._dequeueRequest()},_addRange:function(n){var t=this,i=t._skip||0,r=i+t._flatData(n).length;t._ranges.push({start:i,end:r,data:n});t._ranges.sort(function(n,t){return n.start-t.start})},error:function(n,t,i){this._dequeueRequest();this.trigger(nt,{});this.trigger(a,{xhr:n,status:t,errorThrown:i})},_params:function(n){var t=this,i=e({take:t.take(),skip:t.skip(),page:t.page(),pageSize:t.pageSize(),sort:t._sort,filter:t._filter,group:t._group,aggregate:t._aggregate},n);return t.options.serverPaging||(delete i.take,delete i.skip,delete i.page,delete i.pageSize),t.options.serverGrouping?t.reader.model&&i.group&&(i.group=lt(i.group,t.reader.model)):delete i.group,t.options.serverFiltering?t.reader.model&&i.filter&&(i.filter=lr(i.filter,t.reader.model)):delete i.filter,t.options.serverSorting?t.reader.model&&i.sort&&(i.sort=lt(i.sort,t.reader.model)):delete i.sort,t.options.serverAggregates?t.reader.model&&i.aggregate&&(i.aggregate=lt(i.aggregate,t.reader.model)):delete i.aggregate,i},_queueRequest:function(n,i){var r=this;r._requestInProgress?r._pending={callback:v(i,r),options:n}:(r._requestInProgress=!0,r._pending=t,i())},_dequeueRequest:function(){var n=this;n._requestInProgress=!1;n._pending&&n._queueRequest(n._pending.options,n._pending.callback)},_handleCustomErrors:function(n){if(this.reader.errors){var t=this.reader.errors(n);if(t)return this.trigger(a,{xhr:null,status:"customerror",errorThrown:"custom error",errors:t}),!0}return!1},_observe:function(n){var t=this,i=t.reader.model,u=!1;return i&&n.length&&(u=!(n[0]instanceof i)),n instanceof p?u&&(n.type=t.reader.model,n.wrapAll(n,n)):(n=new p(n,t.reader.model),n.parent=function(){return t.parent()}),t._isServerGrouped()&&ur(n,i),t._changeHandler&&t._data&&t._data instanceof p?t._data.unbind(r,t._changeHandler):t._changeHandler=v(t._change,t),n.bind(r,t._changeHandler)},_change:function(n){var t=this,r,f,i=n?n.action:"",u;if(i==="remove")for(r=0,f=n.items.length;r<f;r++)n.items[r].isNew&&n.items[r].isNew()||t._destroyed.push(n.items[r]);t.options.autoSync&&(i==="add"||i==="remove"||i==="itemchange")?t.sync():(u=parseInt(t._total||t.reader.total(t._pristine),10),i==="add"?u+=n.items.length:i==="remove"?u-=n.items.length:i==="itemchange"||i==="sync"||t.options.serverPaging||(u=t.reader.total(t._pristine)),t._total=u,t._process(t._data,n))},_process:function(n,i){var f=this,e={},o;f.options.serverPaging!==!0&&(e.skip=f._skip,e.take=f._take||f._pageSize,e.skip===t&&f._page!==t&&f._pageSize!==t&&(e.skip=(f._page-1)*f._pageSize));f.options.serverSorting!==!0&&(e.sort=f._sort);f.options.serverFiltering!==!0&&(e.filter=f._filter);f.options.serverGrouping!==!0&&(e.group=f._group);f.options.serverAggregates!==!0&&(e.aggregate=f._aggregate,f._aggregateResult=di(n,e));o=u.process(n,e);f._view=o.data;o.total===t||f.options.serverFiltering||(f._total=o.total);i=i||{};i.items=i.items||f._view;f.trigger(r,i)},_mergeState:function(n){var i=this;return n!==t&&(i._pageSize=n.pageSize,i._page=n.page,i._sort=n.sort,i._filter=n.filter,i._group=n.group,i._aggregate=n.aggregate,i._skip=n.skip,i._take=n.take,i._skip===t&&(i._skip=i.skip(),n.skip=i.skip()),i._take===t&&i._pageSize!==t&&(i._take=i._pageSize,n.take=i._take),n.sort&&(i._sort=n.sort=it(n.sort)),n.filter&&(i._filter=n.filter=ct(n.filter)),n.group&&(i._group=n.group=rt(n.group)),n.aggregate&&(i._aggregate=n.aggregate=su(n.aggregate))),n},query:function(n){var i=this,f,e=i.options.serverSorting||i.options.serverPaging||i.options.serverFiltering||i.options.serverGrouping||i.options.serverAggregates;e||(i._data===t||i._data.length===0)&&!i._destroyed.length?i.read(i._mergeState(n)):i.trigger(tt,{type:"read"})||(i.trigger(bt),f=u.process(i._data,i._mergeState(n)),i.options.serverFiltering||(i._total=f.total!==t?f.total:i._data.length),i._view=f.data,i._aggregateResult=di(i._data,n),i.trigger(nt,{}),i.trigger(r,{items:f.data}))},fetch:function(t){var i=this;return n.Deferred(function(n){var f=function(r){i.unbind(a,u);n.resolve();t&&t.call(i,r)},u=function(t){n.reject(t)};i.one(r,f);i.one(a,u);i._query()}).promise()},_query:function(n){var t=this;t.query(e({},{page:t.page(),pageSize:t.pageSize(),sort:t.sort(),filter:t.filter(),group:t.group(),aggregate:t.aggregate()},n))},next:function(n){var t=this,i=t.page(),r=t.total();if(n=n||{},i&&(!r||!(i+1>t.totalPages())))return t._skip=i*t.take(),i+=1,n.page=i,t._query(n),i},prev:function(n){var t=this,i=t.page();if(n=n||{},i&&i!==1)return t._skip=t._skip-t.take(),i-=1,n.page=i,t._query(n),i},page:function(n){var i=this,r;if(n!==t){n=f.max(f.min(f.max(n,1),i.totalPages()),1);i._query({page:n});return}return r=i.skip(),r!==t?f.round((r||0)/(i.take()||1))+1:t},pageSize:function(n){var i=this;if(n!==t){i._query({pageSize:n,page:1});return}return i.take()},sort:function(n){var i=this;if(n!==t){i._query({sort:n});return}return i._sort},filter:function(n){var i=this;if(n===t)return i._filter;i._query({filter:n,page:1})},group:function(n){var i=this;if(n!==t){i._query({group:n});return}return i._group},total:function(){return parseInt(this._total||0,10)},aggregate:function(n){var i=this;if(n!==t){i._query({aggregate:n});return}return i._aggregate},aggregates:function(){return this._aggregateResult},totalPages:function(){var n=this,t=n.pageSize()||n.total();return f.ceil((n.total()||0)/t)},inRange:function(n,t){var i=this,r=f.min(n+t,i.total());return!i.options.serverPaging&&i.data.length>0?!0:i._findRange(n,r).length>0},lastRange:function(){var n=this._ranges;return n[n.length-1]||{start:0,end:0,data:[]}},firstItemUid:function(){var n=this._ranges;return n.length&&n[0].data.length&&n[0].data[0].uid},range:function(n,i){n=f.min(n||0,this.total());var r=this,e=f.max(f.floor(n/i),0)*i,u=f.min(e+i,r.total()),o;if(o=r._findRange(n,f.min(n+i,r.total())),o.length){r._skip=n>r.skip()?f.min(u,(r.totalPages()-1)*r.take()):e;r._take=i;var s=r.options.serverPaging,h=r.options.serverSorting,c=r.options.serverFiltering;try{r.options.serverPaging=!0;r._isServerGrouped()||r.group()&&r.group().length||(r.options.serverSorting=!0);r.options.serverFiltering=!0;s&&(r._data=o=r._observe(o));r._process(o)}finally{r.options.serverPaging=s;r.options.serverSorting=h;r.options.serverFiltering=c}return}i!==t&&(r._rangeExists(e,u)?e<n&&r.prefetch(u,i,function(){r.range(n,i)}):r.prefetch(e,i,function(){n>e&&u<r.total()&&!r._rangeExists(u,f.min(u+i,r.total()))?r.prefetch(u,i,function(){r.range(n,i)}):r.range(n,i)}))},_findRange:function(n,i){for(var f=this,p=f._ranges,r,w=[],c,l,s,b,a,v,h=f.options,g=h.serverSorting||h.serverPaging||h.serverFiltering||h.serverGrouping||h.serverAggregates,y,e,d,o=0,k=p.length;o<k;o++)if(r=p[o],n>=r.start&&n<=r.end){for(e=0,c=o;c<k;c++)if(r=p[c],y=f._flatData(r.data),y.length&&n+e>=r.start&&(b=r.data,a=r.end,g||(d=rt(f.group()||[]).concat(it(f.sort()||[])),v=u.process(r.data,{sort:d,filter:f.filter()}),y=b=v.data,v.total!==t&&(a=v.total)),l=0,n+e>r.start&&(l=n+e-r.start),s=y.length,a>i&&(s=s-(a-i)),e+=s-l,w=f._mergeGroups(w,b,l,s),i<=r.end&&e==i-n))return w;break}return[]},_mergeGroups:function(n,t,i,r){if(this._isServerGrouped()){var u=t.toJSON(),f;return n.length&&(f=n[n.length-1]),ii(f,u,i,r),n.concat(u)}return n.concat(t.slice(i,r))},skip:function(){var n=this;return n._skip===t?n._page!==t?(n._page-1)*(n.take()||1):t:n._skip},take:function(){return this._take||this._pageSize},_prefetchSuccessHandler:function(n,t,i){var u=this;return function(f){var h=!1,e={start:n,end:t,data:[]},o,c,s;if(u._dequeueRequest(),u.trigger(nt,{response:f,type:"read"}),f=u.reader.parse(f),s=u._readData(f),s.length){for(o=0,c=u._ranges.length;o<c;o++)if(u._ranges[o].start===n){h=!0;e=u._ranges[o];break}h||u._ranges.push(e)}e.data=u._observe(s);e.end=e.start+u._flatData(e.data).length;u._ranges.sort(function(n,t){return n.start-t.start});u._total=u.reader.total(f);i&&s.length?i():u.trigger(r,{})}},prefetch:function(n,t,i){var r=this,u=f.min(n+t,r.total()),e={take:t,skip:n,page:n/t+1,pageSize:t,sort:r._sort,filter:r._filter,group:r._group,aggregate:r._aggregate};r._rangeExists(n,u)?i&&i():(clearTimeout(r._timeout),r._timeout=setTimeout(function(){r._queueRequest(e,function(){r.trigger(tt,{type:"read"})?r._dequeueRequest():r.transport.read({data:r._params(e),success:r._prefetchSuccessHandler(n,u,i)})})},100))},_rangeExists:function(n,t){for(var f=this,r=f._ranges,i=0,u=r.length;i<u;i++)if(r[i].start<=n&&r[i].end>=t)return!0;return!1}});ri={};ri.create=function(n,t){var u,r=n.transport;return r?(r.read=typeof r.read===o?{url:r.read}:r.read,n.type&&(i.data.transports[n.type]&&!l(i.data.transports[n.type])?u=new i.data.transports[n.type](e(r,{data:t})):r=e(!0,{},i.data.transports[n.type],r),n.schema=e(!0,{},i.data.schemas[n.type],n.schema)),u||(u=y(r.read)?r:new nr(r))):u=new gi({data:n.data}),u};h.create=function(n){n=n&&n.push?{data:n}:n;var t=n||{},u=t.data,r=t.fields,c=t.table,l=t.select,f,a,s={},o;if(u||!r||t.transport||(c?u=pu(c,r):l&&(u=yu(l,r))),i.data.Model&&r&&(!t.schema||!t.schema.model)){for(f=0,a=r.length;f<a;f++)o=r[f],o.type&&(s[o.field]=o);k(s)||(t.schema=e(!0,t.schema,{model:{fields:s}}))}return t.data=u,t instanceof h?t:new h(t)};ui=c.define({init:function(n){var t=this,r=t.hasChildren||n&&n.hasChildren,f="items",u={};i.data.Model.fn.init.call(t,n);typeof t.children===o&&(f=t.children);u={schema:{data:f,model:{hasChildren:r,id:t.idField}}};typeof t.children!==o&&e(u,t.children);u.data=n;r||(r=u.schema.data);typeof r===o&&(r=i.getter(r));y(r)&&(t.hasChildren=!!r.call(t,t));t._childrenOptions=u;t.hasChildren&&t._initChildren();t._loaded=!!(n&&(n[f]||n._loaded))},_initChildren:function(){var n=this,t,i,u;n.children instanceof w||(t=n.children=new w(n._childrenOptions),i=t.transport,u=i.parameterMap,i.parameterMap=function(t){return t[n.idField||"id"]=n.id,u&&(t=u(t)),t},t.parent=function(){return n},t.bind(r,function(t){t.node=t.node||n;n.trigger(r,t)}),t.bind(a,function(t){var i=n.parent();i&&(t.node=t.node||n,i.trigger(a,t))}),n._updateChildrenField())},append:function(n){this._initChildren();this.loaded(!0);this.children.add(n)},hasChildren:!1,level:function(){for(var n=this.parentNode(),t=0;n&&n.parentNode;)t++,n=n.parentNode?n.parentNode():null;return t},_updateChildrenField:function(){var n=this._childrenOptions.schema.data;this[n||"items"]=this.children.data()},_childrenLoaded:function(){this._loaded=!0;this._updateChildrenField()},load:function(){var i={},u="_query",n;if(this.hasChildren){this._initChildren();n=this.children;i[this.idField||"id"]=this.id;this._loaded||(n._data=t,u="read");n.one(r,v(this._childrenLoaded,this));n[u](i)}else this.loaded(!0)},parentNode:function(){var n=this.parent();return n.parent()},loaded:function(n){if(n!==t)this._loaded=n;else return this._loaded},shouldSerialize:function(n){return c.fn.shouldSerialize.call(this,n)&&n!=="children"&&n!=="_loaded"&&n!=="hasChildren"&&n!=="_childrenOptions"}});w=h.extend({init:function(n){var t=ui.define({children:n});h.fn.init.call(this,e(!0,{},{schema:{modelBase:t,model:t}},n));this._attachBubbleHandlers()},_attachBubbleHandlers:function(){var n=this;n._data.bind(a,function(t){n.trigger(a,t)})},remove:function(n){var t=n.parentNode(),i=this,r;return t&&t._initChildren&&(i=t.children),r=h.fn.remove.call(i,n),t&&!i.data().length&&(t.hasChildren=!1),r},success:ar("success"),data:ar("data"),insert:function(n,t){var i=this.parent();return i&&i._initChildren&&(i.hasChildren=!0,i._initChildren()),h.fn.insert.call(this,n,t)},_find:function(n,t){var r,e,i,u,f;if(i=h.fn[n].call(this,t),i)return i;if(u=this._flatData(this.data()),u)for(r=0,e=u.length;r<e;r++)if((f=u[r].children,f instanceof w)&&(i=f[n](t),i))return i},get:function(n){return this._find("get",n)},getByUid:function(n){return this._find("getByUid",n)}});w.create=function(n){n=n&&n.push?{data:n}:n;var t=n||{},i=t.data,r=t.fields,u=t.list;return i&&i._dataSource?i._dataSource:(i||!r||t.transport||u&&(i=vr(u,r)),t.data=i,t instanceof w?t:new w(t))};fi=i.Observable.extend({init:function(n,t,r){i.Observable.fn.init.call(this);this._prefetching=!1;this.dataSource=n;this.prefetch=!r;var u=this;n.bind("change",function(){u._change()});this._syncWithDataSource();this.setViewSize(t)},setViewSize:function(n){this.viewSize=n;this._recalculate()},at:function(n){var i=this.pageSize,r,u;if(n>=this.total()){this.trigger("endreached",{index:n});return}return this.useRanges?(this.useRanges&&((n<this.dataOffset||n>this.skip+i)&&(u=Math.floor(n/i)*i,this.range(u)),n===this.prefetchThreshold&&this._prefetch(),n===this.midPageThreshold?this.range(this.nextMidRange):n===this.nextPageThreshold?this.range(this.nextFullRange):n===this.pullBackThreshold&&(this.offset===this.skip?this.range(this.previousMidRange):this.range(this.previousFullRange)),r=this.dataSource.at(n-this.dataOffset)),r===t&&this.trigger("endreached",{index:n}),r):this.dataSource.view()[n]},indexOf:function(n){return this.dataSource.data().indexOf(n)+this.dataOffset},total:function(){return parseInt(this.dataSource.total(),10)},next:function(){var n=this,t=n.pageSize,i=n.skip-n.viewSize,r=f.max(f.floor(i/t),0)*t+t;this.offset=i;this.dataSource.prefetch(r,t,function(){n._goToRange(i,!0)})},range:function(n){if(this.offset!==n){var r=this,t=this.pageSize,u=f.max(f.floor(n/t),0)*t+t,i=this.dataSource;this.offset=n;this._recalculate();i.inRange(n,t)?this._goToRange(n):this.prefetch&&i.prefetch(u,t,function(){r._goToRange(n,!0)})}},syncDataSource:function(){var n=this.offset;this.offset=null;this.range(n)},destroy:function(){this.unbind()},_prefetch:function(){var i=this,n=this.pageSize,t=this.skip+n,r=this.dataSource;r.inRange(t,n)||this._prefetching||!this.prefetch||(this._prefetching=!0,this.trigger("prefetching",{skip:t,take:n}),r.prefetch(t,n,function(){i._prefetching=!1;i.trigger("prefetched",{skip:t,take:n})}))},_goToRange:function(n,t){this.offset===n&&(this.dataOffset=n,this._expanding=t,this.dataSource.range(n,this.pageSize))},_change:function(){var n=this.dataSource,t=n.firstItemUid();this.length=this.useRanges?n.lastRange().end:n.view().length;this._firstItemUid===t&&this.useRanges||(this._syncWithDataSource(),this._recalculate(),this.trigger("reset",{offset:this.offset}));this.trigger("resize");this._expanding&&this.trigger("expand");delete this._expanding},_syncWithDataSource:function(){var n=this.dataSource;this._firstItemUid=n.firstItemUid();this.dataOffset=this.offset=n.skip()||0;this.pageSize=n.pageSize();this.useRanges=n.options.serverPaging},_recalculate:function(){var t=this.pageSize,r=this.offset,i=this.viewSize,n=Math.ceil(r/t)*t;this.skip=n;this.midPageThreshold=n+t-1;this.nextPageThreshold=n+i-1;this.prefetchThreshold=n+Math.floor(t/3*2);this.pullBackThreshold=this.offset-1;this.nextMidRange=n+t-i;this.nextFullRange=n;this.previousMidRange=r-i;this.previousFullRange=n-t}});yr=i.Observable.extend({init:function(n,t){var r=this;i.Observable.fn.init.call(r);this.dataSource=n;this.batchSize=t;this._total=0;this.buffer=new fi(n,t*3);this.buffer.bind({endreached:function(n){r.trigger("endreached",{index:n.index})},prefetching:function(n){r.trigger("prefetching",{skip:n.skip,take:n.take})},prefetched:function(n){r.trigger("prefetched",{skip:n.skip,take:n.take})},reset:function(){r._total=0;r.trigger("reset")},resize:function(){r._total=Math.ceil(this.length/r.batchSize);r.trigger("resize",{total:r.total(),offset:this.offset})}})},syncDataSource:function(){this.buffer.syncDataSource()},at:function(n){var i=this.buffer,f=n*this.batchSize,o=this.batchSize,e=[],u,r;for(i.offset>f&&i.at(i.offset-1),r=0;r<o;r++){if(u=i.at(f+r),u===t)break;e.push(u)}return e},total:function(){return this._total},destroy:function(){this.buffer.destroy();this.unbind()}});e(!0,i.data,{readers:{json:ti},Query:u,DataSource:h,HierarchicalDataSource:w,Node:ui,ObservableObject:s,ObservableArray:p,LocalTransport:gi,RemoteTransport:nr,Cache:ut,DataReader:ti,Model:c,Buffer:fi,BatchBuffer:yr})}(window.kendo.jQuery);kendo_module({id:"validator",name:"Validator",category:"web",description:"The Validator offers an easy way to do a client-side form validation.",depends:["core"]}),function(n){function nt(i){var r=t.ui.validator.ruleResolvers||{},u={};for(var f in r)n.extend(!0,u,r[f].resolve(i));return u}function tt(n){return n.replace(/&/g,"&").replace(/"/g,'"').replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">")}function it(n){return(n=(n+"").split("."),n.length>1)?n[1].length:0}function rt(t){return n.parseHTML?n(n.parseHTML(t)):n(t)}var t=window.kendo,f=t.ui.Widget,i=".kendoValidator",u="k-invalid-msg",p=new RegExp(u,"i"),w="k-invalid",b=/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i,k=/^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,r=":input:not(:button,[type=submit],[type=reset],[disabled],[readonly])",o=":checkbox:not([disabled],[readonly])",e="[type=number],[type=range]",s="blur",h="name",c="form",l="novalidate",d=n.proxy,a=function(n,t){return typeof t=="string"&&(t=new RegExp("^(?:"+t+")$")),t.test(n)},v=function(n,t,i){var r=n.val();return n.filter(t).length&&r!==""?a(r,i):!0},g=function(n,t){return n.length?n[0].attributes[t]!=null:!1},y;t.ui.validator||(t.ui.validator={rules:{},messages:{}});y=f.extend({init:function(i,r){var u=this,e=nt(i);r=r||{};r.rules=n.extend({},t.ui.validator.rules,e.rules,r.rules);r.messages=n.extend({},t.ui.validator.messages,e.messages,r.messages);f.fn.init.call(u,i,r);u._errorTemplate=t.template(u.options.errorTemplate);u.element.is(c)&&u.element.attr(l,l);u._errors={};u._attachEvents()},events:["validate"],options:{name:"Validator",errorTemplate:'<span class="k-widget k-tooltip k-tooltip-validation"><span class="k-icon k-warning"> <\/span> #=message#<\/span>',messages:{required:"{0} is required",pattern:"{0} is not valid",min:"{0} should be greater than or equal to {1}",max:"{0} should be smaller than or equal to {1}",step:"{0} is not valid",email:"{0} is not valid email",url:"{0} is not valid URL",date:"{0} is not valid date"},rules:{required:function(n){var i=n.filter("[type=checkbox]").length&&!n.is(":checked"),t=n.val();return!(g(n,"required")&&(t===""||!t||i))},pattern:function(n){return n.filter("[type=text],[type=email],[type=url],[type=tel],[type=search],[type=password]").filter("[pattern]").length&&n.val()!==""?a(n.val(),n.attr("pattern")):!0},min:function(n){if(n.filter(e+",["+t.attr("type")+"=number]").filter("[min]").length&&n.val()!==""){var i=parseFloat(n.attr("min"))||0,r=t.parseFloat(n.val());return i<=r}return!0},max:function(n){if(n.filter(e+",["+t.attr("type")+"=number]").filter("[max]").length&&n.val()!==""){var i=parseFloat(n.attr("max"))||0,r=t.parseFloat(n.val());return i>=r}return!0},step:function(n){if(n.filter(e+",["+t.attr("type")+"=number]").filter("[step]").length&&n.val()!==""){var f=parseFloat(n.attr("min"))||0,i=parseFloat(n.attr("step"))||1,o=parseFloat(n.val()),r=it(i),u;return r?(u=Math.pow(10,r),(o-f)*u%(i*u)/Math.pow(100,r)==0):(o-f)%i==0}return!0},email:function(n){return v(n,"[type=email],["+t.attr("type")+"=email]",b)},url:function(n){return v(n,"[type=url],["+t.attr("type")+"=url]",k)},date:function(n){return n.filter("[type^=date],["+t.attr("type")+"=date]").length&&n.val()!==""?t.parseDate(n.val(),n.attr(t.attr("format")))!==null:!0}},validateOnBlur:!0},destroy:function(){f.fn.destroy.call(this);this.element.off(i)},_submit:function(n){return this.validate()?!0:(n.stopPropagation(),n.stopImmediatePropagation(),n.preventDefault(),!1)},_attachEvents:function(){var t=this;if(t.element.is(c))t.element.on("submit"+i,d(t._submit,t));if(t.options.validateOnBlur)if(t.element.is(r)){t.element.on(s+i,function(){t.validateInput(t.element)});if(t.element.is(o))t.element.on("click"+i,function(){t.validateInput(t.element)})}else{t.element.on(s+i,r,function(){t.validateInput(n(this))});t.element.on("click"+i,o,function(){t.validateInput(n(this))})}},validate:function(){var i,n,t=!1,f,u;if(this._errors={},this.element.is(r))t=this.validateInput(this.element);else{for(u=!1,i=this.element.find(r),n=0,f=i.length;n<f;n++)this.validateInput(i.eq(n))||(u=!0);t=!u}return this.trigger("validate",{valid:t}),t},validateInput:function(t){var r;t=n(t);var i=this,c=i._errorTemplate,s=i._checkValidity(t),f=s.valid,l="."+u,e=t.attr(h)||"",a=i._findMessageContainer(e).add(t.next(l)).hide(),o;return t.removeAttr("aria-invalid"),f||(o=i._extractMessage(t,s.key),i._errors[e]=o,r=rt(c({message:tt(o)})),i._decorateMessageContainer(r,e),a.replaceWith(r).length||r.insertAfter(t),r.show(),t.attr("aria-invalid",!0)),t.toggleClass(w,!f),f},hideMessages:function(){var i=this,t="."+u,n=i.element;n.is(r)?n.next(t).hide():n.find(t).hide()},_findMessageContainer:function(i){for(var u,h,e=t.ui.validator.messageLocators,o,r=n(),s=this.element[0].getElementsByTagName("*"),f=0,c=s.length;f<c;f++)u=s[f],p.test(u.className)&&(h=u.getAttribute(t.attr("for")),h===i&&(r=r.add(u)));for(o in e)r=r.add(e[o].locate(this.element,i));return r},_decorateMessageContainer:function(n,i){var r=t.ui.validator.messageLocators,f;n.addClass(u).attr(t.attr("for"),i||"");for(f in r)r[f].decorate(n,i);n.attr("role","alert")},_extractMessage:function(n,i){var u=this,r=u.options.messages[i],f=n.attr(h);return r=t.isFunction(r)?r(n):r,t.format(n.attr(t.attr(i+"-msg"))||n.attr("validationMessage")||n.attr("title")||r||"",f,n.attr(i))},_checkValidity:function(n){var t=this.options.rules;for(var i in t)if(!t[i](n))return{valid:!1,key:i};return{valid:!0}},errors:function(){var n=[],t=this._errors;for(var i in t)n.push(t[i]);return n}});t.ui.plugin(y)}(window.kendo.jQuery);kendo_module({id:"userevents",name:"User Events",category:"framework",depends:["core"],hidden:!0}),function(n){function it(n,t){var i=n.x.location,r=n.y.location,u=t.x.location,f=t.y.location,e=i-u,o=r-f;return{center:{x:(i+u)/2,y:(r+f)/2},distance:Math.sqrt(e*e+o*o)}}function h(n){var t=[],r=n.originalEvent,f=n.currentTarget,e=0,s,o,u;if(n.api)t.push({id:2,event:n,target:n.target,currentTarget:n.target,location:n});else if(n.type.match(/touch/))for(o=r?r.changedTouches:[],s=o.length;e<s;e++)u=o[e],t.push({location:u,event:n,target:u.target,currentTarget:f,id:u.identifier});else i.pointers||i.msPointers?t.push({location:r,event:n,target:n.target,currentTarget:f,id:r.pointerId}):t.push({id:1,event:n,target:n.target,currentTarget:f,location:n});return t}function ct(t){var i,r,u;t.preventDefault();i=n(t.data.root);r=i.closest(".k-widget").parent();r[0]||(r=i.parent());u=n.extend(!0,{},t,{target:i[0]});r.trigger(n.Event(t.type,u))}function ut(n){for(var r=t.eventMap.up.split(" "),i=0,u=r.length;i<u;i++)n(r[i])}var t=window.kendo,i=t.support,ft=window.document,c=t.Class,l=t.Observable,u=n.now,f=n.extend,a=i.mobileOS,et=a&&a.android,v=800,ot=i.browser.msie?5:0,y="press",p="hold",w="select",b="start",e="move",o="end",k="cancel",s="tap",d="release",st="gesturestart",g="gesturechange",nt="gestureend",tt="gesturetap",rt=c.extend({init:function(n,t){var i=this;i.axis=n;i._updateLocationData(t);i.startLocation=i.location;i.velocity=i.delta=0;i.timeStamp=u()},move:function(n){var t=this,i=n["page"+t.axis],r=u(),f=r-t.timeStamp||1;(i||!et)&&(t.delta=i-t.location,t._updateLocationData(n),t.initialDelta=i-t.startLocation,t.velocity=t.delta/f,t.timeStamp=r)},_updateLocationData:function(n){var t=this,i=t.axis;t.location=n["page"+i];t.client=n["client"+i];t.screen=n["screen"+i]}}),ht=c.extend({init:function(n,t,i){var r=this;f(r,{x:new rt("X",i.location),y:new rt("Y",i.location),userEvents:n,target:t,currentTarget:i.currentTarget,initialTouch:i.target,id:i.id,_moved:!1,_finished:!1});r.press=function(){r._trigger(y,i);r._holdTimeout=setTimeout(function(){r._trigger(p,i)},n.minHold)}},move:function(n){var t=this;if(!t._finished){if(t.x.move(n.location),t.y.move(n.location),!t._moved){if(t._withinIgnoreThreshold())return;if(r.current&&r.current!==t.userEvents)return t.dispose();t._start(n)}t._finished||t._trigger(e,n)}},end:function(n){var t=this;(t.endTime=u(),t._finished)||(t._finished=!0,t._moved?t._trigger(o,n):t._trigger(s,n),clearTimeout(t._holdTimeout),t._trigger(d,n),t.dispose())},dispose:function(){var t=this,r=t.userEvents,i=r.touches;t._finished=!0;i.splice(n.inArray(t,i),1)},skip:function(){this.dispose()},cancel:function(){this.dispose()},isMoved:function(){return this._moved},_start:function(n){clearTimeout(this._holdTimeout);this.startTime=u();this._moved=!0;this._trigger(b,n)},_trigger:function(n,t){var i=this,r=t.event,u={touch:i,x:i.x,y:i.y,target:i.target,event:r};i.userEvents.notify(n,u)&&r.preventDefault()},_withinIgnoreThreshold:function(){var n=this.x.initialDelta,t=this.y.initialDelta;return Math.sqrt(n*n+t*t)<=this.userEvents.threshold}}),r=l.extend({init:function(r,u){var h=this,a,c=t.guid(),it,rt;u=u||{};a=h.filter=u.filter;h.threshold=u.threshold||ot;h.minHold=u.minHold||v;h.touches=[];h._maxTouches=u.multiTouch?2:1;h.allowSelection=u.allowSelection;h.captureUpIfMoved=u.captureUpIfMoved;h.eventNS=c;r=n(r).handler(h);l.fn.init.call(h);f(h,{element:r,surface:u.global?n(ft.documentElement):n(u.surface||r),stopPropagation:u.stopPropagation,pressed:!1});h.surface.handler(h).on(t.applyEventMap("move",c),"_move").on(t.applyEventMap("up cancel",c),"_end");r.on(t.applyEventMap("down",c),a,"_start");if((i.pointers||i.msPointers)&&r.css("-ms-touch-action","pinch-zoom double-tap-zoom"),u.preventDragEvent)r.on(t.applyEventMap("dragstart",c),t.preventDefault);r.on(t.applyEventMap("mousedown selectstart",c),a,{root:r},"_select");h.captureUpIfMoved&&i.eventCapture&&(it=h.surface[0],rt=n.proxy(h.preventIfMoving,h),ut(function(n){it.addEventListener(n,rt,!0)}));h.bind([y,p,s,b,e,o,d,k,st,g,nt,tt,w],u)},preventIfMoving:function(n){this._isMoved()&&n.preventDefault()},destroy:function(){var n=this,t;n._destroyed||(n._destroyed=!0,n.captureUpIfMoved&&i.eventCapture&&(t=n.surface[0],ut(function(i){t.removeEventListener(i,n.preventIfMoving)})),n.element.kendoDestroy(n.eventNS),n.surface.kendoDestroy(n.eventNS),n.element.removeData("handler"),n.surface.removeData("handler"),n._disposeAll(),n.unbind(),delete n.surface,delete n.element)},capture:function(){r.current=this},cancel:function(){this._disposeAll();this.trigger(k)},notify:function(n,t){var r=this,i=r.touches;if(this._isMultiTouch()){switch(n){case e:n=g;break;case o:n=nt;break;case s:n=tt}f(t,{touches:i},it(i[0],i[1]))}return this.trigger(n,t)},press:function(n,t,i){this._apiCall("_start",n,t,i)},move:function(n,t){this._apiCall("_move",n,t)},end:function(n,t){this._apiCall("_end",n,t)},_isMultiTouch:function(){return this.touches.length>1},_maxTouchesReached:function(){return this.touches.length>=this._maxTouches},_disposeAll:function(){for(var n=this.touches;n.length>0;)n.pop().dispose()},_isMoved:function(){return n.grep(this.touches,function(n){return n.isMoved()}).length},_select:function(n){(!this.allowSelection||this.trigger(w,{event:n}))&&ct(n)},_start:function(t){var i=this,f=0,s=i.filter,e,o=h(t),c=o.length,u;if(!i._maxTouchesReached())for(r.current=null,i.currentTarget=t.currentTarget,i.stopPropagation&&t.stopPropagation();f<c;f++){if(i._maxTouchesReached())break;(u=o[f],e=s?n(u.currentTarget):i.element,e.length)&&(u=new ht(i,e,u),i.touches.push(u),u.press(),i._isMultiTouch()&&i.notify("gesturestart",{}))}},_move:function(n){this._eachTouch("move",n)},_end:function(n){this._eachTouch("end",n)},_eachTouch:function(n,t){for(var c=this,e={},o=h(t),s=c.touches,r,u,f,i=0;i<s.length;i++)r=s[i],e[r.id]=r;for(i=0;i<o.length;i++)u=o[i],f=e[u.id],f&&f[n](u)},_apiCall:function(t,i,r,u){this[t]({api:!0,pageX:i,pageY:r,clientX:i,clientY:r,target:u||this.element,stopPropagation:n.noop,preventDefault:n.noop})}});r.minHold=function(n){v=n};t.getTouches=h;t.touchDelta=it;t.UserEvents=r}(window.kendo.jQuery);kendo_module({id:"draganddrop",name:"Drag & drop",category:"framework",description:"Drag & drop functionality for any DOM element.",depends:["core","userevents"]}),function(n,t){function dt(t,i){try{return n.contains(t,i)||t==i}catch(r){return!1}}function g(n){return kt?l.elementFromPoint(n.x.screen,n.y.screen):l.elementFromPoint(n.x.client,n.y.client)}function w(n,t){return parseInt(n.css(t),10)||0}function st(n,t){return Math.min(Math.max(n,t.min),t.max)}function ht(n,t){var i=b(n),r=i.left+w(n,"borderLeftWidth")+w(n,"paddingLeft"),u=i.top+w(n,"borderTopWidth")+w(n,"paddingTop"),f=r+n.width()-t.outerWidth(!0),e=u+n.height()-t.outerHeight(!0);return{x:{min:r,max:f},y:{min:u,max:e}}}function gt(n,i,r){for(var f,e,u=0,o=i&&i.length,s=r&&r.length;n&&n.parentNode;){for(u=0;u<o;u++)if(f=i[u],f.element[0]===n)return{target:f,targetElement:n};for(u=0;u<s;u++)if(e=r[u],v.matchesSelector.call(n,e.options.filter))return{target:e,targetElement:n};n=n.parentNode}return t}var i=window.kendo,v=i.support,l=window.document,pt=i.Class,o=i.ui.Widget,u=i.Observable,wt=i.UserEvents,f=n.proxy,r=n.extend,b=i.getOffset,y={},s={},h={},e,k=v.mobileOS,bt=k&&k.android,kt=bt&&k.browser=="chrome",tt="keyup",a="change",it="dragstart",rt="hold",ut="drag",ft="dragend",et="dragcancel",d="dragenter",p="dragleave",ot="drop",ni=u.extend({init:function(t,r){var e=this,o=t[0];e.capture=!1;o.addEventListener?(n.each(i.eventMap.down.split(" "),function(){o.addEventListener(this,f(e._press,e),!0)}),n.each(i.eventMap.up.split(" "),function(){o.addEventListener(this,f(e._release,e),!0)})):(n.each(i.eventMap.down.split(" "),function(){o.attachEvent(this,f(e._press,e))}),n.each(i.eventMap.up.split(" "),function(){o.attachEvent(this,f(e._release,e))}));u.fn.init.call(e);e.bind(["press","release"],r||{})},captureNext:function(){this.capture=!0},cancelCapture:function(){this.capture=!1},_press:function(n){var t=this;t.trigger("press");t.capture&&n.preventDefault()},_release:function(n){var t=this;t.trigger("release");t.capture&&(n.preventDefault(),t.cancelCapture())}}),ct=u.extend({init:function(t){var i=this;u.fn.init.call(i);i.forcedEnabled=!1;n.extend(i,t);i.scale=1;i.horizontal?(i.measure="offsetWidth",i.scrollSize="scrollWidth",i.axis="x"):(i.measure="offsetHeight",i.scrollSize="scrollHeight",i.axis="y")},makeVirtual:function(){n.extend(this,{virtual:!0,forcedEnabled:!0,_virtualMin:0,_virtualMax:0})},virtualSize:function(n,t){(this._virtualMin!==n||this._virtualMax!==t)&&(this._virtualMin=n,this._virtualMax=t,this.update())},outOfBounds:function(n){return n>this.max||n<this.min},forceEnabled:function(){this.forcedEnabled=!0},getSize:function(){return this.container[0][this.measure]},getTotal:function(){return this.element[0][this.scrollSize]},rescale:function(n){this.scale=n},update:function(n){var t=this,u=t.virtual?t._virtualMax:t.getTotal(),r=u*t.scale,i=t.getSize();t.max=t.virtual?-t._virtualMin:0;t.size=i;t.total=r;t.min=Math.min(t.max,i-r);t.minScale=i/u;t.centerOffset=(r-i)/2;t.enabled=t.forcedEnabled||r>i;n||t.trigger(a,t)}}),ti=u.extend({init:function(n){var t=this;u.fn.init.call(t);t.x=new ct(r({horizontal:!0},n));t.y=new ct(r({horizontal:!1},n));t.container=n.container;t.forcedMinScale=n.minScale;t.maxScale=n.maxScale||100;t.bind(a,n)},rescale:function(n){this.x.rescale(n);this.y.rescale(n);this.refresh()},centerCoordinates:function(){return{x:Math.min(0,-this.x.centerOffset),y:Math.min(0,-this.y.centerOffset)}},refresh:function(){var n=this;n.x.update();n.y.update();n.enabled=n.x.enabled||n.y.enabled;n.minScale=n.forcedMinScale||Math.min(n.x.minScale,n.y.minScale);n.fitScale=Math.max(n.x.minScale,n.y.minScale);n.trigger(a)}}),lt=u.extend({init:function(n){var t=this;r(t,n);u.fn.init.call(t)},dragMove:function(n){var t=this,i=t.dimension,r=t.axis,u=t.movable,f=u[r]+n;i.enabled&&((f<i.min&&n<0||f>i.max&&n>0)&&(n*=t.resistance),u.translateAxis(r,n),t.trigger(a,t))}}),ii=pt.extend({init:function(n){var t=this,u,f,e,i;r(t,{elastic:!0},n);e=t.elastic?.5:0;i=t.movable;t.x=u=new lt({axis:"x",dimension:t.dimensions.x,resistance:e,movable:i});t.y=f=new lt({axis:"y",dimension:t.dimensions.y,resistance:e,movable:i});t.userEvents.bind(["move","end","gesturestart","gesturechange"],{gesturestart:function(n){t.gesture=n;t.offset=t.dimensions.container.offset()},gesturechange:function(n){var h=t.gesture,c=h.center,l=n.center,r=n.distance/h.distance,v=t.dimensions.minScale,a=t.dimensions.maxScale,e,o,s;i.scale<=v&&r<1&&(r+=(1-r)*.8);i.scale*r>=a&&(r=a/i.scale);o=i.x+t.offset.left;s=i.y+t.offset.top;e={x:(o-c.x)*r+l.x-o,y:(s-c.y)*r+l.y-s};i.scaleWith(r);u.dragMove(e.x);f.dragMove(e.y);t.dimensions.rescale(i.scale);t.gesture=n;n.preventDefault()},move:function(n){n.event.target.tagName.match(/textarea|input/i)||(u.dimension.enabled||f.dimension.enabled?(u.dragMove(n.x.delta),f.dragMove(n.y.delta),n.preventDefault()):n.touch.skip())},end:function(n){n.preventDefault()}})}}),ri=v.transitions.prefix+"Transform",nt,at,c,vt,yt;nt=v.hasHW3D?function(n,t,i){return"translate3d("+n+"px,"+t+"px,0) scale("+i+")"}:function(n,t,i){return"translate("+n+"px,"+t+"px) scale("+i+")"};at=u.extend({init:function(t){var i=this;u.fn.init.call(i);i.element=n(t);i.element[0].style.webkitTransformOrigin="left top";i.x=0;i.y=0;i.scale=1;i._saveCoordinates(nt(i.x,i.y,i.scale))},translateAxis:function(n,t){this[n]+=t;this.refresh()},scaleTo:function(n){this.scale=n;this.refresh()},scaleWith:function(n){this.scale*=n;this.refresh()},translate:function(n){this.x+=n.x;this.y+=n.y;this.refresh()},moveAxis:function(n,t){this[n]=t;this.refresh()},moveTo:function(n){r(this,n);this.refresh()},refresh:function(){var n=this,r=n.x,u=n.y,t;n.round&&(r=Math.round(r),u=Math.round(u));t=nt(r,u,n.scale);t!=n.coordinates&&(i.support.browser.msie&&i.support.browser.version<10?(n.element[0].style.position="absolute",n.element[0].style.left=n.x+"px",n.element[0].style.top=n.y+"px"):n.element[0].style[ri]=t,n._saveCoordinates(t),n.trigger(a))},_saveCoordinates:function(n){this.coordinates=n}});c=o.extend({init:function(n,t){var i=this,r;o.fn.init.call(i,n,t);r=i.options.group;r in s?s[r].push(i):s[r]=[i]},events:[d,p,ot],options:{name:"DropTarget",group:"default"},destroy:function(){var i=this.options.group,t=s[i]||h[i],n;if(t.length>1){for(o.fn.destroy.call(this),n=0;n<t.length;n++)if(t[n]==this){t.splice(n,1);break}}else c.destroyGroup(i)},_trigger:function(n,t){var i=this,u=y[i.options.group];if(u)return i.trigger(n,r({},t.event,{draggable:u,dropTarget:t.dropTarget}))},_over:function(n){this._trigger(d,n)},_out:function(n){this._trigger(p,n)},_drop:function(n){var t=this,i=y[t.options.group];i&&(i.dropped=!t._trigger(ot,n))}});c.destroyGroup=function(n){var t=s[n]||h[n],i;if(t){for(i=0;i<t.length;i++)o.fn.destroy.call(t[i]);t.length=0;delete s[n];delete h[n]}};c._cache=s;vt=c.extend({init:function(n,t){var i=this,r;o.fn.init.call(i,n,t);r=i.options.group;r in h?h[r].push(i):h[r]=[i]},options:{name:"DropTargetArea",group:"default",filter:null}});yt=o.extend({init:function(n,t){var r=this;o.fn.init.call(r,n,t);r._activated=!1;r.userEvents=new wt(r.element,{global:!0,stopPropagation:!0,filter:r.options.filter,threshold:r.options.distance,start:f(r._start,r),hold:f(r._hold,r),move:f(r._drag,r),end:f(r._end,r),cancel:f(r._cancel,r)});r._afterEndHandler=f(r._afterEnd,r);r.captureEscape=function(n){n.keyCode===i.keys.ESC&&(r._trigger(et,{event:n}),r.userEvents.cancel())}},events:[rt,it,ut,ft,et],options:{name:"Draggable",distance:5,group:"default",cursorOffset:null,axis:null,container:null,holdToDrag:!1,dropped:!1},cancelHold:function(){this._activated=!1},_updateHint:function(t){var r=this,i,o=r.options,u=r.boundaries,e=o.axis,f=r.options.cursorOffset;f?i={left:t.x.location+f.left,top:t.y.location+f.top}:(r.hintOffset.left+=t.x.delta,r.hintOffset.top+=t.y.delta,i=n.extend({},r.hintOffset));u&&(i.top=st(i.top,u.y),i.left=st(i.left,u.x));e==="x"?delete i.top:e==="y"&&delete i.left;r.hint.css(i)},_start:function(t){var r=this,u=r.options,o=u.container,f=u.hint,e;if(u.holdToDrag&&!r._activated){r.userEvents.cancel();return}r.currentTarget=t.target;r.currentTargetOffset=b(r.currentTarget);f&&(r.hint&&r.hint.stop(!0,!0).remove(),r.hint=i.isFunction(f)?n(f.call(r,r.currentTarget)):f,e=b(r.currentTarget),r.hintOffset=e,r.hint.css({position:"absolute",zIndex:2e4,left:e.left,top:e.top}).appendTo(l.body));y[u.group]=r;r.dropped=!1;o&&(r.boundaries=ht(o,r.hint));r._trigger(it,t)&&(r.userEvents.cancel(),r._afterEnd());n(l).on(tt,r.captureEscape)},_hold:function(n){this.currentTarget=n.target;this._trigger(rt,n)?this.userEvents.cancel():this._activated=!0},_drag:function(t){var i=this;t.preventDefault();i._withDropTarget(t,function(i,u){if(!i){e&&(e._trigger(p,r(t,{dropTarget:n(e.targetElement)})),e=null);return}if(e){if(u===e.targetElement)return;e._trigger(p,r(t,{dropTarget:n(e.targetElement)}))}i._trigger(d,r(t,{dropTarget:n(u)}));e=r(i,{targetElement:u})});i._trigger(ut,t);i.hint&&i._updateHint(t)},_end:function(t){var i=this;i._withDropTarget(t,function(i,u){i&&(i._drop(r({},t,{dropTarget:n(u)})),e=null)});i._trigger(ft,t);i._cancel(t.event)},_cancel:function(){var n=this;n._activated=!1;n.hint&&!n.dropped?setTimeout(function(){n.hint.stop(!0,!0).animate(n.currentTargetOffset,"fast",n._afterEndHandler)},0):n._afterEnd()},_trigger:function(n,t){var i=this;return i.trigger(n,r({},t.event,{x:t.x,y:t.y,currentTarget:i.currentTarget,dropTarget:t.dropTarget}))},_withDropTarget:function(n,t){var r=this,i,u,o=r.options,f=s[o.group],e=h[o.group];(f&&f.length||e&&e.length)&&(i=g(n),r.hint&&dt(r.hint[0],i)&&(r.hint.hide(),i=g(n),i||(i=g(n)),r.hint.show()),u=gt(i,f,e),u?t(u.target,u.targetElement):t())},destroy:function(){var n=this;o.fn.destroy.call(n);n._afterEnd();n.userEvents.destroy()},_afterEnd:function(){var t=this;t.hint&&t.hint.remove();delete y[t.options.group];t.trigger("destroy");n(l).off(tt,t.captureEscape)}});i.ui.plugin(c);i.ui.plugin(vt);i.ui.plugin(yt);i.TapCapture=ni;i.containerBoundaries=ht;r(i.ui,{Pane:ii,PaneDimensions:ti,Movable:at})}(window.kendo.jQuery);kendo_module({id:"reorderable",name:"Reorderable",category:"framework",depends:["core","draganddrop"],advanced:!0}),function(n){function u(t,i){t=n(t);i?t.find(".k-drag-status").removeClass("k-add").addClass("k-denied"):t.find(".k-drag-status").removeClass("k-denied").addClass("k-add")}var t=window.kendo,i=t.ui.Widget,r="change",f="k-reorderable",e=i.extend({init:function(e,o){var s=this,h,c=t.guid()+"-reorderable";i.fn.init.call(s,e,o);e=s.element.addClass(f);o=s.options;s.draggable=h=o.draggable||new t.ui.Draggable(e,{group:c,filter:o.filter,hint:o.hint});s.reorderDropCue=n('<div class="k-reorder-cue"><div class="k-icon k-i-arrow-s"><\/div><div class="k-icon k-i-arrow-n"><\/div><\/div>');e.find(h.options.filter).kendoDropTarget({group:h.options.group,dragenter:function(n){if(s._draggable){var i=this.element,r,f=i[0]===s._draggable[0];u(n.draggable.hint,f);f||(r=t.getOffset(i),s.reorderDropCue.css({height:i.outerHeight(),top:r.top,left:r.left+(i.index()>s._draggable.index()?i.outerWidth():0)}).appendTo(document.body))}},dragleave:function(n){u(n.draggable.hint,!0);s.reorderDropCue.remove()},drop:function(){if(s._draggable){var t=s._draggable[0],i=this.element[0],n;t!==i&&(n=e.find(h.options.filter),s.trigger(r,{element:s._draggable,oldIndex:n.index(t),newIndex:n.index(i)}))}}});h.bind(["dragcancel","dragend","dragstart"],{dragcancel:function(){s.reorderDropCue.remove();s._draggable=null},dragend:function(){s.reorderDropCue.remove();s._draggable=null},dragstart:function(n){s._draggable=n.currentTarget}})},options:{name:"Reorderable",filter:"*"},events:[r],destroy:function(){var n=this;i.fn.destroy.call(n);n.draggable&&n.draggable.destroy();t.destroy(n.element)}});t.ui.plugin(e)}(window.kendo.jQuery);kendo_module({id:"resizable",name:"Resizable",category:"framework",depends:["core","draganddrop"],advanced:!0}),function(n,t){var u=window.kendo,o=u.ui,f=o.Widget,r=n.proxy,e=u.isFunction,s=n.extend,i="horizontal",h="vertical",c="start",l="resize",a="resizeend",v=f.extend({init:function(n,t){var u=this;f.fn.init.call(u,n,t);u.orientation=u.options.orientation.toLowerCase()!=h?i:h;u._positionMouse=u.orientation==i?"x":"y";u._position=u.orientation==i?"left":"top";u._sizingDom=u.orientation==i?"outerWidth":"outerHeight";u.draggable=new o.Draggable(n,{distance:0,filter:t.handle,drag:r(u._resize,u),dragcancel:r(u._cancel,u),dragstart:r(u._start,u),dragend:r(u._stop,u)});u.userEvents=u.draggable.userEvents},events:[l,a,c],options:{name:"Resizable",orientation:i},resize:function(){},_max:function(n){var i=this,u=i.hint?i.hint[i._sizingDom]():0,r=i.options.max;return e(r)?r(n):r!==t?i._initialElementPosition+r-u:r},_min:function(n){var r=this,i=r.options.min;return e(i)?i(n):i!==t?r._initialElementPosition+i:i},_start:function(t){var i=this,r=i.options.hint,u=n(t.currentTarget);i._initialElementPosition=u.position()[i._position];i._initialMousePosition=t[i._positionMouse].startLocation;r&&(i.hint=e(r)?n(r(u)):r,i.hint.css({position:"absolute"}).css(i._position,i._initialElementPosition).appendTo(i.element));i.trigger(c,t);i._maxPosition=i._max(t);i._minPosition=i._min(t);n(document.body).css("cursor",u.css("cursor"))},_resize:function(n){var i=this,u=i._maxPosition,f=i._minPosition,e=i._initialElementPosition+(n[i._positionMouse].location-i._initialMousePosition),r;r=f!==t?Math.max(f,e):e;i.position=r=u!==t?Math.min(u,r):r;i.hint&&i.hint.toggleClass(i.options.invalidClass||"",r==u||r==f).css(i._position,r);i.resizing=!0;i.trigger(l,s(n,{position:r}))},_stop:function(t){var i=this;i.hint&&i.hint.remove();i.resizing=!1;i.trigger(a,s(t,{position:i.position}));n(document.body).css("cursor","")},_cancel:function(n){var i=this;i.hint&&(i.position=t,i.hint.css(i._position,i._initialElementPosition),i._stop(n))},destroy:function(){var n=this;f.fn.destroy.call(n);n.draggable&&n.draggable.destroy()},press:function(n){if(n){var t=n.position(),i=this;i.userEvents.press(t.left,t.top,n[0]);i.targetPosition=t;i.target=n}},move:function(n){var i=this,f=i._position,r=i.targetPosition,u=i.position;u===t&&(u=r[f]);r[f]=u+n;i.userEvents.move(r.left,r.top)},end:function(){this.userEvents.end();this.target=this.position=t}});u.ui.plugin(v)}(window.kendo.jQuery);kendo_module({id:"sortable",name:"Sortable",category:"framework",depends:["data"],advanced:!0}),function(n,t){var i=window.kendo,s=n.proxy,r="dir",u="asc",h="single",c="field",f="desc",l=".kendoSortable",a=".k-link",e="aria-sort",o=i.ui.Widget,v=o.extend({init:function(n,t){var i=this,r;o.fn.init.call(i,n,t);i._refreshHandler=s(i.refresh,i);i.dataSource=i.options.dataSource.bind("change",i._refreshHandler);r=i.element.find(a);r[0]||(r=i.element.wrapInner('<a class="k-link" href="#"/>').find(a));i.link=r;i.element.on("click"+l,s(i._click,i))},options:{name:"Sortable",mode:h,allowUnsort:!0,compare:null,filter:""},destroy:function(){var n=this;o.fn.destroy.call(n);n.element.off(l);n.dataSource.unbind("change",n._refreshHandler)},refresh:function(){var o=this,a=o.dataSource.sort()||[],s,v,h,l,t=o.element,y=t.attr(i.attr(c));for(t.removeAttr(i.attr(r)),t.removeAttr(e),s=0,v=a.length;s<v;s++)h=a[s],y==h.field&&t.attr(i.attr(r),h.dir);l=t.attr(i.attr(r));t.find(".k-i-arrow-n,.k-i-arrow-s").remove();l===u?(n('<span class="k-icon k-i-arrow-n" />').appendTo(o.link),t.attr(e,"ascending")):l===f&&(n('<span class="k-icon k-i-arrow-s" />').appendTo(o.link),t.attr(e,"descending"))},_click:function(n){var e=this,v=e.element,y=v.attr(i.attr(c)),s=v.attr(i.attr(r)),l=e.options,p=e.options.compare==null?t:e.options.compare,o=e.dataSource.sort()||[],a,w;if(n.preventDefault(),!l.filter||v.is(l.filter)){if(s=s===u?f:s===f&&l.allowUnsort?t:u,l.mode===h)o=[{field:y,dir:s,compare:p}];else if(l.mode==="multiple"){for(a=0,w=o.length;a<w;a++)if(o[a].field===y){o.splice(a,1);break}o.push({field:y,dir:s,compare:p})}e.dataSource.sort(o)}}});i.ui.plugin(v)}(window.kendo.jQuery);kendo_module({id:"selectable",name:"Selectable",category:"framework",depends:["core","userevents"],advanced:!0}),function(n){function y(n,t){var i=u.getOffset(n),r=t.left+t.width,f=t.top+t.height;return i.right=i.left+n.outerWidth(),i.bottom=i.top+n.outerHeight(),!(i.left>r||i.right<t.left||i.top>f||i.bottom<t.top)}function p(n,i,u,e){for(var o,s=0,h=n.length;s<h;s++)o=n.eq(s),y(o,u)?o.hasClass(t)?e&&i!==o[0]&&o.removeClass(t).addClass(r):o.hasClass(f)||o.hasClass(r)||o.addClass(f):o.hasClass(f)?o.removeClass(f):e&&o.hasClass(r)&&o.removeClass(r).addClass(t)}var u=window.kendo,s=u.ui.Widget,i=n.proxy,h=Math.abs,c="aria-selected",t="k-state-selected",f="k-state-selecting",e="k-selectable",o="change",v=".kendoSelectable",r="k-state-unselecting",l=!1,a;(function(n){(function(){n('<div class="parent"><span /><\/div>').on("click",">*",function(){l=!0}).find("span").click().end().off()})()})(n);a=s.extend({init:function(t,r){var f=this,o;s.fn.init.call(f,t,r);f._marquee=n("<div class='k-marquee'><div class='k-marquee-color'><\/div><\/div>");f._lastActive=null;f.element.addClass(e);o=f.options.multiple;f.userEvents=new u.UserEvents(f.element,{global:!0,allowSelection:!0,filter:(l?"":"."+e+" ")+f.options.filter,tap:i(f._tap,f)});o&&f.userEvents.bind("start",i(f._start,f)).bind("move",i(f._move,f)).bind("end",i(f._end,f)).bind("select",i(f._select,f))},events:[o],options:{name:"Selectable",filter:">*",multiple:!1},_tap:function(i){var u=n(i.target),r=this,f=i.event.ctrlKey||i.event.metaKey,s=r.options.multiple,a=s&&i.event.shiftKey,h,c=i.event.which,l=i.event.button;u.closest("."+e)[0]!==r.element[0]||c&&c==3||l&&l==2||(h=u.hasClass(t),s&&f||r.clear(),a?r.selectRange(r._firstSelectee(),u):(h&&f?(r._unselect(u),r._notify(o)):r.value(u),r._lastActive=r._downTarget=u))},_start:function(i){var u=this,f=n(i.target),s=f.hasClass(t),o=i.event.ctrlKey||i.event.metaKey;if(u._downTarget=f,f.closest("."+e)[0]!==u.element[0]){u.userEvents.cancel();u._downTarget=null;return}u._marquee.appendTo(document.body).css({left:i.x.client+1,top:i.y.client+1,width:0,height:0});o||u.clear();s&&(u._selectElement(f,!0),o&&f.addClass(r))},_move:function(n){var t=this,i={left:n.x.startLocation>n.x.location?n.x.location:n.x.startLocation,top:n.y.startLocation>n.y.location?n.y.location:n.y.startLocation,width:h(n.x.initialDelta),height:h(n.y.initialDelta)},r=t.element.find(t.options.filter);t._marquee.css(i);p(r,t._downTarget[0],i,n.event.ctrlKey||n.event.metaKey);n.preventDefault()},_end:function(){var n=this;n._marquee.remove();n._unselect(n.element.find(n.options.filter+"."+r)).removeClass(r);n.value(n.element.find(n.options.filter+"."+f));n._lastActive=n._downTarget},value:function(n){var r=this,u=i(r._selectElement,r);if(n){n.each(function(){u(this)});r._notify(o);return}return r.element.find(r.options.filter+"."+t)},_firstSelectee:function(){var n=this,t;return n._lastActive!==null?n._lastActive:(t=n.value(),t.length>0?t[0]:n.element.find(n.options.filter))},_selectElement:function(i,r){var u=n(i),e=!r&&this._notify("select",{element:i});u.removeClass(f);e||(u.addClass(t),this.options.aria&&u.attr(c,!0))},_notify:function(n,t){return t=t||{},this.trigger(n,t)},_unselect:function(n){return n.removeClass(t),this.options.aria&&n.attr(c,!1),n},_select:function(t){var i="input,a,textarea,.k-multiselect-wrap,select",r=u.support.browser.msie;n(t.event.target).is(i)?(this.userEvents.cancel(),this._downTarget=null):r&&(!r||n(u._activeElement()).is(i))||t.preventDefault()},clear:function(){var n=this.element.find(this.options.filter+"."+t);this._unselect(n)},selectRange:function(r,u){var e=this,s=!1,h,l,a,f,v=e.element.find(e.options.filter),c=i(e._selectElement,e);for(r=n(r)[0],u=n(u)[0],h=0,l=v.length;h<l;h++)f=v[h],s?(c(f),s=f!==u):f===r?(s=r!==u,c(f)):f===u?(a=r,r=u,u=a,s=!0,c(f)):n(f).removeClass(t);e._notify(o)},destroy:function(){var n=this;s.fn.destroy.call(n);n.element.off(v);n.userEvents.destroy()}});u.ui.plugin(a)}(window.kendo.jQuery);kendo_module({id:"button",name:"Button",category:"web",description:"The Button widget displays styled buttons.",depends:["core"]}),function(n,t){var u=window.kendo,o=u.ui.Widget,i=n.proxy,f=u.keys,e="click",l="k-button",a="k-button-icon",v="k-button-icontext",r=".kendoButton",s="disabled",y="k-state-disabled",h="k-state-focused",c="k-state-selected",p=o.extend({init:function(n,t){var f=this;o.fn.init.call(f,n,t);n=f.wrapper=f.element;t=f.options;n.addClass(l).attr("role","button");t.enable=t.enable&&!n.attr(s);f.enable(t.enable);f._tabindex();f._graphics();n.on(e+r,i(f._click,f)).on("focus"+r,i(f._focus,f)).on("blur"+r,i(f._blur,f)).on("keydown"+r,i(f._keydown,f)).on("keyup"+r,i(f._keyup,f));u.notify(f)},events:[e],options:{name:"Button",icon:"",spriteCssClass:"",imageUrl:"",enable:!0},_isNativeButton:function(){return this.element.prop("tagName").toLowerCase()=="button"},_click:function(n){this.options.enable&&this.trigger(e,{event:n})},_focus:function(){this.options.enable&&this.element.addClass(h)},_blur:function(){this.element.removeClass(h)},_keydown:function(n){var t=this;t._isNativeButton()||(n.keyCode==f.ENTER||n.keyCode==f.SPACEBAR)&&(n.keyCode==f.SPACEBAR&&(n.preventDefault(),t.options.enable&&t.element.addClass(c)),t._click(n))},_keyup:function(){this.element.removeClass(c)},_graphics:function(){var h=this,t=h.element,u=h.options,f=u.icon,e=u.spriteCssClass,o=u.imageUrl,i,r,s;(e||o||f)&&(s=!0,t.contents().not("span.k-sprite").not("span.k-icon").not("img.k-image").each(function(t,i){(i.nodeType==1||i.nodeType==3&&n.trim(i.nodeValue).length>0)&&(s=!1)}),s?t.addClass(a):t.addClass(v));f?(i=t.children("span.k-icon").first(),i[0]||(i=n('<span class="k-icon"><\/span>').prependTo(t)),i.addClass("k-i-"+f)):e?(i=t.children("span.k-sprite").first(),i[0]||(i=n('<span class="k-sprite"><\/span>').prependTo(t)),i.addClass(e)):o&&(r=t.children("img.k-image").first(),r[0]||(r=n('<img alt="icon" class="k-image" />').prependTo(t)),r.attr("src",o))},enable:function(n){var i=this,r=i.element;n===t&&(n=!0);n=!!n;i.options.enable=n;r.toggleClass(y,!n).attr("aria-disabled",!n).attr(s,!n)}});u.ui.plugin(p)}(window.kendo.jQuery);kendo_module({id:"pager",name:"Pager",category:"framework",depends:["data"],advanced:!0}),function(n,t){function v(n,t,r,u,f){return n({idx:t,text:r,ns:i.ns,numeric:u,title:f||""})}function e(n,t,i){return tt({className:n.substring(1),text:t,wrapClassName:i||""})}function o(n,t,r,u){n.find(t).parent().attr(i.attr("page"),r).attr("tabindex",-1).toggleClass("k-state-disabled",u)}function w(n,t){o(n,h,1,t<=1)}function b(n,t){o(n,l,Math.max(1,t-1),t<=1)}function k(n,t,i){o(n,a,Math.min(i,t+1),t>=i)}function d(n,t,i){o(n,c,i,t>=i)}var i=window.kendo,y=i.ui,s=y.Widget,u=n.proxy,h=".k-i-seek-w",c=".k-i-seek-e",l=".k-i-arrow-w",a=".k-i-arrow-e",r="change",f=".kendoPager",p="click",g="keydown",nt="disabled",tt=i.template('<a href="\\#" title="#=text#" class="k-link k-pager-nav #= wrapClassName #"><span class="k-icon #= className #">#=text#<\/span><\/a>'),it=s.extend({init:function(t,o){var v=this,nt,y;if(s.fn.init.call(v,t,o),o=v.options,v.dataSource=i.data.DataSource.create(o.dataSource),v.linkTemplate=i.template(v.options.linkTemplate),v.selectTemplate=i.template(v.options.selectTemplate),nt=v.page(),y=v.totalPages(),v._refreshHandler=u(v.refresh,v),v.dataSource.bind(r,v._refreshHandler),o.previousNext&&(v.element.find(h).length||(v.element.append(e(h,o.messages.first,"k-pager-first")),w(v.element,nt,y)),v.element.find(l).length||(v.element.append(e(l,o.messages.previous)),b(v.element,nt,y))),o.numeric&&(v.list=v.element.find(".k-pager-numbers"),v.list.length||(v.list=n('<ul class="k-pager-numbers k-reset" />').appendTo(v.element))),o.input){v.element.find(".k-pager-input").length||v.element.append('<span class="k-pager-input k-label">'+o.messages.page+'<input class="k-textbox">'+i.format(o.messages.of,y)+"<\/span>");v.element.on(g+f,".k-pager-input input",u(v._keydown,v))}if(o.previousNext&&(v.element.find(a).length||(v.element.append(e(a,o.messages.next)),k(v.element,nt,y)),v.element.find(c).length||(v.element.append(e(c,o.messages.last,"k-pager-last")),d(v.element,nt,y))),o.pageSizes){v.element.find(".k-pager-sizes").length||n('<span class="k-pager-sizes k-label"><select/>'+o.messages.itemsPerPage+"<\/span>").appendTo(v.element).find("select").html(n.map(n.isArray(o.pageSizes)?o.pageSizes:[5,10,20],function(n){return"<option>"+n+"<\/option>"}).join("")).end().appendTo(v.element);v.element.find(".k-pager-sizes select").val(v.pageSize());i.ui.DropDownList&&v.element.find(".k-pager-sizes select").show().kendoDropDownList();v.element.on(r+f,".k-pager-sizes select",u(v._change,v))}if(o.refresh){v.element.find(".k-pager-refresh").length||v.element.append('<a href="#" class="k-pager-refresh k-link" title="'+o.messages.refresh+'"><span class="k-icon k-i-refresh">'+o.messages.refresh+"<\/span><\/a>");v.element.on(p+f,".k-pager-refresh",u(v._refreshClick,v))}o.info&&(v.element.find(".k-pager-info").length||v.element.append('<span class="k-pager-info k-label" />'));v.element.on(p+f,"a",u(v._click,v)).addClass("k-pager-wrap k-widget");o.autoBind&&v.refresh();i.notify(v)},destroy:function(){var n=this;s.fn.destroy.call(n);n.element.off(f);n.dataSource.unbind(r,n._refreshHandler);i.destroy(n.element)},events:[r],options:{name:"Pager",selectTemplate:'<li><span class="k-state-selected">#=text#<\/span><\/li>',linkTemplate:'<li><a tabindex="-1" href="\\#" class="k-link" data-#=ns#page="#=idx#" #if (title !== "") {# title="#=title#" #}#>#=text#<\/a><\/li>',buttonCount:10,autoBind:!0,numeric:!0,info:!0,input:!1,previousNext:!0,pageSizes:!1,refresh:!1,messages:{display:"{0} - {1} of {2} items",empty:"No items to display",page:"Page",of:"of {0}",itemsPerPage:"items per page",first:"Go to the first page",previous:"Go to the previous page",next:"Go to the next page",last:"Go to the last page",refresh:"Refresh",morePages:"More pages"}},setDataSource:function(n){var t=this;t.dataSource.unbind(r,t._refreshHandler);t.dataSource=t.options.dataSource=n;n.bind(r,t._refreshHandler);t.options.autoBind&&n.fetch()},refresh:function(n){var t=this,e,a,s=1,f="",y,r=t.page(),u=t.options,h=t.pageSize(),c=t.dataSource.total(),o=t.totalPages(),p=t.linkTemplate,l=u.buttonCount;if(!n||n.action!="itemchange"){if(u.numeric){for(r>l&&(y=r%l,s=y===0?r-l+1:r-y+1),a=Math.min(s+l-1,o),s>1&&(f+=v(p,s-1,"...",!1,u.messages.morePages)),e=s;e<=a;e++)f+=v(e==r?t.selectTemplate:p,e,e,!0);a<o&&(f+=v(p,e,"...",!1,u.messages.morePages));f===""&&(f=t.selectTemplate({text:0}));t.list.html(f)}u.info&&(f=c>0?i.format(u.messages.display,(r-1)*h+1,Math.min(r*h,c),c):u.messages.empty,t.element.find(".k-pager-info").html(f));u.input&&t.element.find(".k-pager-input").html(t.options.messages.page+'<input class="k-textbox">'+i.format(u.messages.of,o)).find("input").val(r).attr(nt,c<1).toggleClass("k-state-disabled",c<1);u.previousNext&&(w(t.element,r,o),b(t.element,r,o),k(t.element,r,o),d(t.element,r,o));u.pageSizes&&t.element.find(".k-pager-sizes select").val(h).filter("["+i.attr("role")+"=dropdownlist]").kendoDropDownList("value",h).kendoDropDownList("text",h)}},_keydown:function(n){if(n.keyCode===i.keys.ENTER){var r=this.element.find(".k-pager-input").find("input"),t=parseInt(r.val(),10);(isNaN(t)||t<1||t>this.totalPages())&&(t=this.page());r.val(t);this.page(t)}},_refreshClick:function(n){n.preventDefault();this.dataSource.read()},_change:function(n){var t=parseInt(n.currentTarget.value,10);isNaN(t)||this.dataSource.pageSize(t)},_click:function(t){var r=n(t.currentTarget);t.preventDefault();r.is(".k-state-disabled")||this.page(r.attr(i.attr("page")))},totalPages:function(){return Math.ceil((this.dataSource.total()||0)/this.pageSize())},pageSize:function(){return this.dataSource.pageSize()||this.dataSource.total()},page:function(n){if(n!==t)this.dataSource.page(n),this.trigger(r,{index:n});else return this.dataSource.total()>0?this.dataSource.page():0}});y.plugin(it)}(window.kendo.jQuery);kendo_module({id:"popup",name:"Pop-up",category:"framework",depends:["core"],advanced:!0}),function(n){function y(t,i){return t===i||n.contains(t,i)}var t=window.kendo,it=t.ui,p=it.Widget,f=t.support,r=t.getOffset,lt=t._activeElement,w="open",b="close",rt="deactivate",ut="activate",u="center",ft="left",s="right",k="top",h="bottom",d="absolute",et="hidden",c="body",g="location",e="position",ot="visible",st="effects",ht="k-state-active",l="k-state-border",at=/k-state-border-(\w+)/,ct=".k-picker-wrap, .k-dropdown-wrap, .k-link",a="down",nt=n(window),tt=n(document.documentElement),v="resize scroll",vt=f.transitions.css,yt=vt+"transform",i=n.extend,o=".kendoPopup",pt=["font-family","font-size","font-stretch","font-style","font-weight","line-height"],wt=p.extend({init:function(r,u){var f=this,e;u=u||{};u.isRtl&&(u.origin=u.origin||h+" "+s,u.position=u.position||k+" "+s);p.fn.init.call(f,r,u);r=f.element;u=f.options;f.collisions=u.collision?u.collision.split(" "):[];f.collisions.length===1&&f.collisions.push(f.collisions[0]);e=n(f.options.anchor).closest(".k-popup,.k-group").filter(":not([class^=km-])");u.appendTo=n(n(u.appendTo)[0]||e[0]||c);f.element.hide().addClass("k-popup k-group k-reset").toggleClass("k-rtl",!!u.isRtl).css({position:d}).appendTo(u.appendTo).on("mouseenter"+o,function(){f._hovered=!0}).on("mouseleave"+o,function(){f._hovered=!1});if(f.wrapper=n(),u.animation===!1&&(u.animation={open:{effects:{}},close:{hide:!0,effects:{}}}),i(u.animation.open,{complete:function(){f.wrapper.css({overflow:ot});f.trigger(ut)}}),i(u.animation.close,{complete:function(){f.wrapper.hide();var o=f.wrapper.data(g),s=n(u.anchor),i,e;o&&f.wrapper.css(o);u.anchor!=c&&(i=(s[0].className.match(at)||["","down"])[1],e=l+"-"+i,s.removeClass(e).children(ct).removeClass(ht).removeClass(e),r.removeClass(l+"-"+t.directions[i].reverse));f._closing=!1;f.trigger(rt)}}),f._mousedownProxy=function(n){f._mousedown(n)},f._resizeProxy=function(n){f._resize(n)},u.toggleTarget)n(u.toggleTarget).on(u.toggleEvent+o,n.proxy(f.toggle,f))},events:[w,ut,b,rt],options:{name:"Popup",toggleEvent:"click",origin:h+" "+ft,position:k+" "+ft,anchor:c,collision:"flip fit",viewport:window,copyAnchorStyles:!0,autosize:!1,modal:!1,animation:{open:{effects:"slideIn:down",transition:!0,duration:200},close:{duration:100,hide:!0}}},destroy:function(){var i=this,r=i.options,f=i.element.off(o),u;p.fn.destroy.call(i);r.toggleTarget&&n(r.toggleTarget).off(o);r.modal||(tt.unbind(a,i._mousedownProxy),nt.unbind(v,i._resizeProxy));t.destroy(i.element.children());r.appendTo[0]===document.body&&(u=f.parent(".k-animation-container"),u[0]?u.remove():f.remove())},open:function(r,u){var o=this,rt={isFixed:!isNaN(parseInt(u,10)),x:r,y:u},y=o.element,s=o.options,p="down",h,b,g=n(s.anchor),it;if(!o.visible()){if(s.copyAnchorStyles&&y.css(t.getComputedStyles(g[0],pt)),y.data("animating")||o.trigger(w))return;s.modal||(tt.unbind(a,o._mousedownProxy).bind(a,o._mousedownProxy),f.mobileOS.ios||f.mobileOS.android||nt.unbind(v,o._resizeProxy).bind(v,o._resizeProxy));o.wrapper=b=t.wrap(y,s.autosize).css({overflow:et,display:"block",position:d});f.mobileOS.android&&b.add(g).css(yt,"translatez(0)");b.css(e);n(s.appendTo)[0]==document.body&&b.css(k,"-10000px");h=i(!0,{},s.animation.open);o.flipped=o._position(rt);h.effects=t.parseEffects(h.effects,o.flipped);p=h.effects.slideIn?h.effects.slideIn.direction:p;s.anchor!=c&&(it=l+"-"+p,y.addClass(l+"-"+t.directions[p].reverse),g.addClass(it).children(ct).addClass(ht).addClass(it));y.data(st,h.effects).kendoStop(!0).kendoAnimate(h)}},toggle:function(){var n=this;n[n.visible()?b:w]()},visible:function(){return this.element.is(":"+ot)},close:function(){var r=this,s=r.options,o,u,f,e;if(r.visible()){if(o=r.wrapper[0]?r.wrapper:t.wrap(r.element).hide(),r._closing||r.trigger(b))return;r.element.find(".k-popup").each(function(){var i=n(this),t=i.data("kendoPopup");t&&t.close()});tt.unbind(a,r._mousedownProxy);nt.unbind(v,r._resizeProxy);u=i(!0,{},s.animation.close);f=r.element.data(st);e=u.effects;!e&&!t.size(e)&&f&&t.size(f)&&(u.effects=f,u.reverse=!0);r._closing=!0;r.element.kendoStop(!0);o.css({overflow:et});r.element.kendoAnimate(u)}},_resize:function(n){var t=this;n.type==="resize"?(clearTimeout(t._resizeTimeout),t._resizeTimeout=setTimeout(function(){t._position();t._resizeTimeout=null},50)):t._hovered||y(t.element[0],lt())||t.close()},_mousedown:function(i){var u=this,s=u.element[0],e=u.options,h=n(e.anchor)[0],o=e.toggleTarget,f=t.eventTarget(i),r=n(f).closest(".k-popup"),c=r.parent().parent(".km-shim").length;(r=r[0],c||!r||r===u.element[0])&&n(i.target).closest("a").data("rel")!=="popover"&&(y(s,f)||y(h,f)||o&&y(n(o)[0],f)||u.close())},_fit:function(n,t,i){var r=0;return n+t>i&&(r=i-(n+t)),n<0&&(r=-n),r},_flip:function(n,t,i,r,f,e,o){var s=0;return o=o||t,e!==f&&e!==u&&f!==u&&(n+o>r&&(s+=-(i+t)),n+s<0&&(s+=i+t)),s},_position:function(t){var o=this,nt=o.element.css(e,""),u=o.wrapper,y=o.options,c=n(y.viewport),ot=n(c).offset(),l=n(y.anchor),tt=y.origin.toLowerCase().split(" "),it=y.position.toLowerCase().split(" "),p=o.collisions,w=f.zoomLevel(),b,rt,h,k=10002,ut=0,st,v,s,et;if(b=l.parents().filter(u.siblings()),b[0])if(h=Number(n(b).css("zIndex")),h)k=h+1;else for(rt=l.parentsUntil(b),st=rt.length;ut<st;ut++)h=Number(n(rt[ut]).css("zIndex")),h&&k<h&&(k=h+1);u.css("zIndex",k);t&&t.isFixed?u.css({left:t.x,top:t.y}):u.css(o._align(tt,it));var ft=r(u,e,l[0]===u.offsetParent()[0]),a=r(u),ht=l.offsetParent().parent(".k-animation-container,.k-popup,.k-group");return ht.length&&(ft=r(u,e,!0),a=r(u)),c[0]===window?(a.top-=window.pageYOffset||document.documentElement.scrollTop||0,a.left-=window.pageXOffset||document.documentElement.scrollLeft||0):(a.top-=ot.top,a.left-=ot.left),o.wrapper.data(g)||u.data(g,i({},ft)),v=i({},a),s=i({},ft),p[0]==="fit"&&(s.top+=o._fit(v.top,u.outerHeight(),c.height()/w)),p[1]==="fit"&&(s.left+=o._fit(v.left,u.outerWidth(),c.width()/w)),et=i({},s),p[0]==="flip"&&(s.top+=o._flip(v.top,nt.outerHeight(),l.outerHeight(),c.height()/w,tt[0],it[0],u.outerHeight())),p[1]==="flip"&&(s.left+=o._flip(v.left,nt.outerWidth(),l.outerWidth(),c.width()/w,tt[1],it[1],u.outerWidth())),nt.css(e,d),u.css(s),s.left!=et.left||s.top!=et.top},_align:function(t,i){var c=this,v=c.wrapper,l=n(c.options.anchor),y=t[0],p=t[1],w=i[0],b=i[1],k=r(l),d=n(c.options.appendTo),a,g=v.outerWidth(),nt=v.outerHeight(),tt=l.outerWidth(),it=l.outerHeight(),f=k.top,e=k.left,o=Math.round;return d[0]!=document.body&&(a=r(d),f-=a.top,e-=a.left),y===h&&(f+=it),y===u&&(f+=o(it/2)),w===h&&(f-=nt),w===u&&(f-=o(nt/2)),p===s&&(e+=tt),p===u&&(e+=o(tt/2)),b===s&&(e-=g),b===u&&(e-=o(g/2)),{top:f,left:e}}});it.plugin(wt)}(window.kendo.jQuery);kendo_module({id:"tooltip",name:"Tooltip",category:"web",description:"The Tooltip widget displays a popup hint for a given html element.",depends:["core","popup"]}),function(n){function w(n){while(n.length)ot(n),n=n.parent()}function ot(n){var i=n.data(t.ns+"title");i&&(n.attr("title",i),n.removeData(t.ns+"title"))}function st(n){var i=n.attr("title");i&&(n.data(t.ns+"title",i),n.attr("title",""))}function b(n){while(n.length&&!n.is("body"))st(n),n=n.parent()}var t=window.kendo,u=t.ui.Widget,k=t.ui.Popup,d=t.isFunction,g=n.isPlainObject,s=n.extend,r=n.proxy,f=n(document),nt=t.isLocalUrl,h="_tt_active",c="aria-describedby",l="show",a="hide",v="error",e="contentLoad",y="requestStart",o="k-content-frame",tt='<div role="tooltip" class="k-widget k-tooltip#if (!autoHide) {# k-tooltip-closable#}#">#if (!autoHide) {# <div class="k-tooltip-button"><a href="\\#" class="k-icon k-i-close">close<\/a><\/div> #}#<div class="k-tooltip-content"><\/div>#if (callout){ #<div class="k-callout k-callout-#=dir#"><\/div>#}#<\/div>',it=t.template("<iframe frameborder='0' class='"+o+"' src='#= content.url #'>This page requires frames in order to show content<\/iframe>"),i=".kendoTooltip",rt={bottom:{origin:"bottom center",position:"top center"},top:{origin:"top center",position:"bottom center"},left:{origin:"center left",position:"center right",collision:"fit flip"},right:{origin:"center right",position:"center left",collision:"fit flip"},center:{position:"center center",origin:"center center"}},ut={top:"bottom",bottom:"top",left:"right",right:"left",center:"center"},p={bottom:"n",top:"s",left:"e",right:"w",center:"n"},ft={horizontal:{offset:"top",size:"outerHeight"},vertical:{offset:"left",size:"outerWidth"}},et=function(n){return n.target.data(t.ns+"title")},ht=u.extend({init:function(n,t){var f=this,e;u.fn.init.call(f,n,t);e=f.options.position.match(/left|right/)?"horizontal":"vertical";f.dimensions=ft[e];f._documentKeyDownHandler=r(f._documentKeyDown,f);f.element.on(f.options.showOn+i,f.options.filter,r(f._showOn,f)).on("mouseenter"+i,f.options.filter,r(f._mouseenter,f));if(this.options.autoHide)f.element.on("mouseleave"+i,f.options.filter,r(f._mouseleave,f))},options:{name:"Tooltip",filter:"",content:et,showAfter:100,callout:!0,position:"bottom",showOn:"mouseenter",autoHide:!0,width:null,height:null,animation:{open:{effects:"fade:in",duration:0},close:{effects:"fade:out",duration:40,hide:!0}}},events:[l,a,e,v,y],_mouseenter:function(t){b(n(t.currentTarget))},_showOn:function(t){var i=this,r=n(t.currentTarget);i.options.showOn&&i.options.showOn.match(/click|focus/)?i._show(r):(clearTimeout(i.timeout),i.timeout=setTimeout(function(){i._show(r)},i.options.showAfter))},_appendContent:function(n){var u=this,r=u.options.content,f=u.content,h=u.options.iframe,s;if(g(r)&&r.url)if("iframe"in u.options||(h=!nt(r.url)),u.trigger(y,{options:r,target:n}),h){f.hide();s=f.find("."+o)[0];s?s.src=r.url||s.src:f.html(it({content:r}));f.find("."+o).off("load"+i).on("load"+i,function(){u.trigger(e);f.show()})}else f.empty(),t.ui.progress(f,!0),u._ajaxRequest(r);else r&&d(r)?(r=r({sender:this,target:n}),u.content.html(r||"")):u.content.html(r)},_ajaxRequest:function(n){var i=this;jQuery.ajax(s({type:"GET",dataType:"html",cache:!1,error:function(n,r){t.ui.progress(i.content,!1);i.trigger(v,{status:r,xhr:n})},success:r(function(n){t.ui.progress(i.content,!1);i.content.html(n);i.trigger(e)},i)},n))},_documentKeyDown:function(n){n.keyCode===t.keys.ESC&&this.hide()},refresh:function(){var t=this,n=t.popup;n&&n.options.anchor&&t._appendContent(n.options.anchor)},hide:function(){this.popup&&this.popup.close()},show:function(n){n=n||this.element;b(n);this._show(n)},_show:function(n){var t=this,r=t.target();t.popup||t._initPopup();r&&r[0]!=n[0]&&(t.popup.close(),t.popup.element.kendoStop(!0,!0));r&&r[0]==n[0]||(t._appendContent(n),t.popup.options.anchor=n);t.popup.one("deactivate",function(){w(n);n.removeAttr(c);this.element.removeAttr("id").attr("aria-hidden",!0);f.off("keydown"+i,t._documentKeyDownHandler)});t.popup.open()},_initPopup:function(){var u=this,e=u.options,o=n(t.template(tt)({callout:e.callout&&e.position!=="center",dir:p[e.position],autoHide:e.autoHide}));if(u.popup=new k(o,s({activate:function(){var t=this.options.anchor,n=t[0].id||u.element[0].id;n&&(t.attr(c,n+h),this.element.attr("id",n+h));e.callout&&u._positionCallout();this.element.removeAttr("aria-hidden");f.on("keydown"+i,u._documentKeyDownHandler);u.trigger(l)},close:function(){u.trigger(a)},copyAnchorStyles:!1,animation:e.animation},rt[e.position])),o.css({width:e.width,height:e.height}),u.content=o.find(".k-tooltip-content"),u.arrow=o.find(".k-callout"),e.autoHide)o.on("mouseleave"+i,r(u._mouseleave,u));else o.on("click"+i,".k-tooltip-button",r(u._closeButtonClick,u))},_closeButtonClick:function(n){n.preventDefault();this.hide()},_mouseleave:function(t){if(this.popup){var r=n(t.currentTarget),i=r.offset(),u=t.pageX,f=t.pageY;if(i.right=i.left+r.outerWidth(),i.bottom=i.top+r.outerHeight(),u>i.left&&u<i.right&&f>i.top&&f<i.bottom)return;this.popup.close()}else w(n(t.currentTarget));clearTimeout(this.timeout)},_positionCallout:function(){var t=this,u=t.options.position,f=t.dimensions,i=f.offset,r=t.popup,e=r.options.anchor,o=n(e).offset(),s=parseInt(t.arrow.css("border-top-width"),10),h=n(r.element).offset(),c=p[r.flipped?ut[u]:u],l=o[i]-h[i]+n(e)[f.size]()/2-s;t.arrow.removeClass("k-callout-n k-callout-s k-callout-w k-callout-e").addClass("k-callout-"+c).css(i,l)},target:function(){return this.popup?this.popup.options.anchor:null},destroy:function(){var n=this.popup;n&&(n.element.off(i),n.destroy());this.element.off(i);f.off("keydown"+i,this._documentKeyDownHandler);u.fn.destroy.call(this)}});t.ui.plugin(ht)}(window.kendo.jQuery);kendo_module({id:"list",name:"List",category:"framework",depends:["data","popup"],hidden:!0}),function(n,t){function b(t,i){t.filters&&(t.filters=n.grep(t.filters,function(n){return b(n,i),n.filters?n.filters.length:n.field!=i}))}var i=window.kendo,l=i.ui,o=l.Widget,f=i.keys,u=i.support,ft=i.htmlEncode,et=i._activeElement,s="id",a="li",r="change",v="character",k="k-state-focused",y="k-state-hover",d="k-loading",p="open",g="close",nt="select",w="selected",tt="progress",it="requestEnd",rt="width",ut=n.extend,e=n.proxy,h=u.browser,ot=h.msie&&h.version<9,st=/"/g,ht={ComboBox:"DropDownList",DropDownList:"ComboBox"},c=o.extend({init:function(t,i){var r=this,h=r.ns,f;o.fn.init.call(r,t,i);t=r.element;r._isSelect=t.is(nt);r._template();r.ul=n('<ul unselectable="on" class="k-list k-reset"/>').css({overflow:u.kineticScrollNeeded?"":"auto"}).on("mouseenter"+h,a,function(){n(this).addClass(y)}).on("mouseleave"+h,a,function(){n(this).removeClass(y)}).on("click"+h,a,e(r._click,r)).attr({tabIndex:-1,role:"listbox","aria-hidden":!0});r.list=n("<div class='k-list-container'/>").append(r.ul).on("mousedown"+h,function(n){n.preventDefault()});f=t.attr(s);f&&(r.list.attr(s,f+"-list"),r.ul.attr(s,f+"_listbox"),r._optionID=f+"_option_selected");r._header();r._accessors();r._initValue()},options:{valuePrimitive:!1,headerTemplate:""},setOptions:function(n){o.fn.setOptions.call(this,n);n&&n.enable!==t&&(n.enabled=n.enable)},focus:function(){this._focused.focus()},readonly:function(n){this._editable({readonly:n===t?!0:n,disable:!1})},enable:function(n){this._editable({readonly:!1,disable:!(n=n===t?!0:n)})},_filterSource:function(n){var i=this,u=i.options,r=i.dataSource,t=r.filter()||{};b(t,u.dataTextField);n&&(t=t.filters||[],t.push(n));r.filter(t)},_header:function(){var t=this.options.headerTemplate,i;n.isFunction(t)&&(t=t({}));t&&(this.list.prepend(t),i=this.ul.prev(),this.header=i[0]?i:null)},_initValue:function(){var n=this,t=n.options.value;t!==null?n.element.val(t):(t=n._accessor(),n.options.value=t);n._old=t},_ignoreCase:function(){var t=this,i=t.dataSource.reader.model,n;i&&i.fields&&(n=i.fields[t.options.dataTextField],n&&n.type&&n.type!=="string"&&(t.options.ignoreCase=!1))},items:function(){return this.ul[0].children},current:function(n){var i=this,r=i._optionID;if(n!==t)i._current&&(i._current.removeClass(k).removeAttr("aria-selected").removeAttr(s),i._focused.removeAttr("aria-activedescendant")),n&&(n.addClass(k),i._scroll(n),r&&(n.attr("id",r),i._focused.attr("aria-activedescendant",r))),i._current=n;else return i._current},destroy:function(){var n=this,t=n.ns;o.fn.destroy.call(n);n._unbindDataSource();n.ul.off(t);n.list.off(t);n._touchScroller&&n._touchScroller.destroy();n.popup.destroy();n._form&&n._form.off("reset",n._resetHandler)},dataItem:function(n){var i=this;return n===t&&(n=i.selectedIndex),i._data()[n]},_accessors:function(){var n=this,r=n.element,t=n.options,u=i.getter,f=r.attr(i.attr("text-field")),e=r.attr(i.attr("value-field"));f&&(t.dataTextField=f);e&&(t.dataValueField=e);n._text=u(t.dataTextField);n._value=u(t.dataValueField)},_aria:function(n){var i=this,r=i.options,u=i._focused;r.suggest!==t&&u.attr("aria-autocomplete",r.suggest?"both":"list");n=n?n+" "+i.ul[0].id:i.ul[0].id;u.attr("aria-owns",n);i.ul.attr("aria-live",!r.filter||r.filter==="none"?"off":"polite")},_blur:function(){var n=this;n._change();n.close()},_change:function(){var n=this,i=n.selectedIndex,e=n.options.value,u=n.value(),f;n._isSelect&&!n._bound&&e&&(u=e);u!==n._old?f=!0:i!==t&&i!==n._oldIndex&&(f=!0);f&&(n._old=u,n._oldIndex=i,n.trigger(r),n.element.trigger(r))},_click:function(t){t.isDefaultPrevented()||this._accept(n(t.currentTarget))},_data:function(){return this.dataSource.view()},_enable:function(){var n=this,i=n.options,r=n.element.is("[disabled]");i.enable!==t&&(i.enabled=i.enable);!i.enabled||r?n.enable(!1):n.readonly(n.element.is("[readonly]"))},_focus:function(n){var t=this;if(t.popup.visible()&&n&&t.trigger(nt,{item:n})){t.close();return}t._select(n);t._triggerCascade(!0);t._blur()},_index:function(n){for(var i=this,u=i._data(),t=0,r=u.length;t<r;t++)if(i._dataValue(u[t])==n)return t;return-1},_dataValue:function(n){var i=this._value(n);return i===t&&(i=this._text(n)),i},_height:function(n){if(n){var t=this,r=t.list,e=t.popup.visible(),i=t.options.height,f=t.header,u;u=r.add(r.parent(".k-animation-container")).show();i=t.ul[0].scrollHeight>i?i:"auto";u.height(i);f&&t.ul.height(i=="auto"?i:r.height()-f.height());e||u.hide()}},_adjustListWidth:function(){var t=this.list,i=t[0].style.width,u=this.wrapper,n,r;if(t.data(rt)||!i)return n=window.getComputedStyle?window.getComputedStyle(u[0],null):0,r=n?parseFloat(n.width):u.outerWidth(),n&&(h.mozilla||h.msie)&&(r+=parseFloat(n.paddingLeft)+parseFloat(n.paddingRight)+parseFloat(n.borderLeftWidth)+parseFloat(n.borderRightWidth)),i=t.css("box-sizing")!=="border-box"?r-(t.outerWidth()-t.width()):r,t.css({fontFamily:u.css("font-family"),width:i}).data(rt,i),!0},_popup:function(){var n=this,e=n.list,t=n._focused,r=n.options,f=n.wrapper;n.popup=new l.Popup(e,ut({},r.popup,{anchor:f,open:function(i){n._adjustListWidth();n.trigger(p)?i.preventDefault():(t.attr("aria-expanded",!0),n.ul.attr("aria-hidden",!1))},close:function(i){n.trigger(g)?i.preventDefault():(t.attr("aria-expanded",!1),n.ul.attr("aria-hidden",!0))},animation:r.animation,isRtl:u.isRtl(f)}));n.popup.one(p,function(){n._height(n._data().length)});n._touchScroller=i.touchScroller(n.popup.element)},_makeUnselectable:function(){ot&&this.list.find("*").attr("unselectable","on")},_toggleHover:function(t){n(t.currentTarget).toggleClass(y,t.type==="mouseenter")},_toggle:function(n){var i=this,r=u.touch&&u.MSPointers&&u.pointers;n=n!==t?n:!i.popup.visible();r||i._focused[0]===et()||i._focused.focus();i[n?p:g]()},_scroll:function(n){if(n){n[0]&&(n=n[0]);var r=this.ul[0],t=n.offsetTop,o=n.offsetHeight,u=r.scrollTop,s=r.clientHeight,h=t+o,f=this._touchScroller,i,e;f?(i=f.dimensions.y,i.enabled&&t>i.size&&(t=t-i.size+o+4,f.scrollTo(0,-t))):(e=this.header?this.header.outerHeight():0,r.scrollTop=u>t?t-e:h>u+s?h-s-e:u)}},_template:function(){var t=this,n=t.options,r=n.template,u=n.dataSource;t._isSelect&&t.element[0].length&&(u||(n.dataTextField=n.dataTextField||"text",n.dataValueField=n.dataValueField||"value"));r?(r=i.template(r),t.template=function(n){return'<li tabindex="-1" role="option" unselectable="on" class="k-item">'+r(n)+"<\/li>"}):t.template=i.template('<li tabindex="-1" role="option" unselectable="on" class="k-item">${'+i.expr(n.dataTextField,"data")+"}<\/li>",{useWithBlock:!1})},_triggerCascade:function(n){var t=this,i=t.value();(!t._bound&&i||t._old!==i)&&t.trigger("cascade",{userTriggered:n})},_unbindDataSource:function(){var n=this;n.dataSource.unbind(r,n._refreshHandler).unbind(tt,n._progressHandler).unbind(it,n._requestEndHandler).unbind("error",n._errorHandler)}});ut(c,{caret:function(n){var t=n.ownerDocument.selection;return t?Math.abs(t.createRange().moveStart(v,-n.value.length)):n.selectionStart},selectText:function(n,t,i){try{if(n.createTextRange){n.focus();var r=n.createTextRange();r.collapse(!0);r.moveStart(v,t);r.moveEnd(v,i-t);r.select()}else n.setSelectionRange(t,i)}catch(u){}},inArray:function(n,t){var i,r,u=t.children;if(!n||n.parentNode!==t)return-1;for(i=0,r=u.length;i<r;i++)if(n===u[i])return i;return-1}});i.ui.List=c;l.Select=c.extend({init:function(n,t){c.fn.init.call(this,n,t);this._initial=this.element.val()},setDataSource:function(n){this.options.dataSource=n;this._dataSource();this._bound=!1;this.options.autoBind&&this.dataSource.fetch()},close:function(){this.popup.close()},select:function(n){var i=this;if(n===t)return i.selectedIndex;i._select(n);i._triggerCascade();i._old=i._accessor();i._oldIndex=i.selectedIndex},_accessor:function(n,i){var r=this.element[0],e=this._isSelect,f=r.selectedIndex,u;if(n===t)return e?f>-1&&(u=r.options[f],u&&(n=u.value)):n=r.value,n;e?(f>-1&&r.options[f].removeAttribute(w),r.selectedIndex=i,u=r.options[i],u&&u.setAttribute(w,w)):r.value=n},_hideBusy:function(){var n=this;clearTimeout(n._busy);n._arrow.removeClass(d);n._focused.attr("aria-busy",!1);n._busy=null},_showBusy:function(){var n=this;(n._request=!0,n._busy)||(n._busy=setTimeout(function(){n._focused.attr("aria-busy",!0);n._arrow.addClass(d)},100))},_requestEnd:function(){this._request=!1},_dataSource:function(){var t=this,s=t.element,f=t.options,u=f.dataSource||{},o;u=n.isArray(u)?{data:u}:u;t._isSelect&&(o=s[0].selectedIndex,o>-1&&(f.index=o),u.select=s,u.fields=[{field:f.dataTextField},{field:f.dataValueField}]);t.dataSource&&t._refreshHandler?t._unbindDataSource():(t._refreshHandler=e(t.refresh,t),t._progressHandler=e(t._showBusy,t),t._requestEndHandler=e(t._requestEnd,t),t._errorHandler=e(t._hideBusy,t));t.dataSource=i.data.DataSource.create(u).bind(r,t._refreshHandler).bind(tt,t._progressHandler).bind(it,t._requestEndHandler).bind("error",t._errorHandler)},_get:function(t){var r=this,u=r._data(),i,f;if(typeof t=="function")for(i=0,f=u.length;i<f;i++)if(t(u[i])){t=i;break}if(typeof t=="number"){if(t<0)return n();t=n(r.ul[0].children[t])}return t&&t.nodeType&&(t=n(t)),t},_move:function(n){var t=this,e=n.keyCode,o=t.ul[0],c=t.popup.visible()?"_select":"_accept",i=t._current,h=e===f.DOWN,u,s;if(e===f.UP||h){if(n.altKey)t.toggle(h);else{if(u=o.firstChild,!u&&!t._accessor()&&t._state!=="filter"){if(!t._fetch){t.dataSource.one(r,function(){t._move(n);t._fetch=!1});t._fetch=!0;t._filterSource()}return n.preventDefault(),!0}h?(i&&(t.selectedIndex!==-1||t.value()||i[0]!==u)?(i=i[0].nextSibling,i||u!==o.lastChild||(i=u)):i=u,t[c](i)):(i=i?i[0].previousSibling:o.lastChild,i||u!==o.lastChild||(i=u),t[c](i))}n.preventDefault();s=!0}else e===f.ENTER||e===f.TAB?(t.popup.visible()&&n.preventDefault(),(t._typing||!t.popup.visible()&&t.selectedIndex===-1)&&(i=null),t._accept(i),s=!0):e===f.ESC&&(t.popup.visible()&&n.preventDefault(),t.close(),s=!0);return s},_selectItem:function(){var n=this,i=n.options,u,r;u=n._isSelect&&!n._initial&&!i.value&&i.index&&!n._bound;u||(r=n._selectedValue||i.value||n._accessor());r?n.value(r):n._bound===t&&n.select(i.index)},_fetchItems:function(n){var t=this,i=t.ul[0].firstChild;if(t._request)return!0;if(!t._fetch&&!i){if(t.options.cascadeFrom)return!i;t.dataSource.one(r,function(){t.value(n);t._fetch=!1});return t._fetch=!0,t.dataSource.fetch(),!0}},_options:function(n,i){var e=this,c=e.element,l=n.length,o="",u,s,h,r,f=0;for(i&&(f=1,o=i);f<l;f++)u="<option",s=n[f],h=e._text(s),r=e._value(s),r!==t&&(r+="",r.indexOf('"')!==-1&&(r=r.replace(st,""")),u+=' value="'+r+'"'),u+=">",h!==t&&(u+=ft(h)),u+="<\/option>",o+=u;c.html(o)},_reset:function(){var t=this,i=t.element,r=i.attr("form"),u=r?n("#"+r):i.closest("form");u[0]&&(t._resetHandler=function(){setTimeout(function(){t.value(t._initial)})},t._form=u.on("reset",t._resetHandler))},_cascade:function(){var t=this,u=t.options,s=u.cascadeFrom,i,f,e,o,h;if(s){if(t._selectedValue=u.value||t._accessor(),f=n("#"+s),i=f.data("kendo"+u.name),i||(i=f.data("kendo"+ht[u.name])),!i)return;u.autoBind=!1;o=u.cascadeFromField||i.options.dataValueField;h=function(){var n=t._selectedValue||t.value();t._userTriggered?t._clearSelection(i,!0):n?(t.value(n),t.dataSource.view()[0]&&t.selectedIndex!==-1||t._clearSelection(i,!0)):t.select(u.index);t.enable();t._triggerCascade(t._userTriggered);t._userTriggered=!1};e=function(){var e=i.dataItem(),n=e?i._value(e):null,u,f;n||n===0?(u=t.dataSource.filter()||{},b(u,o),f=u.filters||[],f.push({field:o,operator:"eq",value:n}),t.dataSource.one(r,h).filter(f)):(t.enable(!1),t._clearSelection(i),t._triggerCascade(t._userTriggered),t._userTriggered=!1)};i.bind("cascade",function(n){t._userTriggered=n.userTriggered;e()});i._bound?e():i.value()||t.enable(!1)}}})}(window.kendo.jQuery);kendo_module({id:"calendar",name:"Calendar",category:"web",description:"The Calendar widget renders a graphical calendar that supports navigation and selection.",depends:["core"]}),function(n,t){function li(n,t,i,r){var u=n.getFullYear(),e=t.getFullYear(),o=i.getFullYear(),f;return u=u-u%r,f=u+(r-1),u<e&&(u=e),f>o&&(f=o),u+"-"+f}function d(n){for(var t=0,i,f=n.min,e=n.max,r=n.start,o=n.setter,s=n.build,h=n.cells||12,c=n.perRow||4,l=n.content||bi,a=n.empty||ki,u=n.html||'<table tabindex="0" role="grid" class="k-content k-meta-view" cellspacing="0"><tbody><tr role="row">';t<h;t++)t>0&&t%c==0&&(u+='<\/tr><tr role="row">'),i=s(r,t),u+=nt(r,f,e)?l(i):a(i),o(r,1);return u+"<\/tr><\/tbody><\/table>"}function st(n,t,i){var f=n.getFullYear(),r=t.getFullYear(),e=r,u=0;return i&&(r=r-r%i,e=r-r%i+i-1),f>e?u=1:f<r&&(u=-1),u}function g(){var n=new i;return new i(n.getFullYear(),n.getMonth(),n.getDate())}function v(n,t,r){var u=g();return n&&(u=new i(+n)),t>u?u=new i(+t):r<u&&(u=new i(+r)),u}function nt(n,t,i){return+n>=+t&&+n<=+i}function ai(n,t){return n.slice(t).concat(n.slice(0,t))}function vi(n,t,r){t=t instanceof i?t.getFullYear():n.getFullYear()+r*t;n.setFullYear(t)}function yi(t){n(this).toggleClass(nr,tr.indexOf(t.type)>-1||t.type==ri)}function ur(n){n.preventDefault()}function ht(n){return at(n).calendars.standard}function ct(n){var i=o[n.start],r=o[n.depth],u=at(n.culture);n.format=wi(n.format||u.calendars.standard.patterns.d);isNaN(i)&&(i=0,n.start=a);(r===t||r>i)&&(n.depth=a);n.dates||(n.dates=[])}function pi(n){di&&n.find("*").attr("unselectable","on")}function fr(n,t){for(var i=0,r=t.length;i<r;i++)if(n===+t[i])return!0;return!1}function er(n,t){return n?n.getFullYear()===t.getFullYear()&&n.getMonth()===t.getMonth()&&n.getDate()===t.getDate():!1}function or(n,t){return n?n.getFullYear()===t.getFullYear()&&n.getMonth()===t.getMonth():!1}var r=window.kendo,tt=r.support,lt=r.ui,y=lt.Widget,u=r.keys,it=r.parseDate,p=r.date.adjustDST,wi=r._extractFormat,l=r.template,at=r.getCulture,vt=r.support.transitions,yt=vt?vt.css+"transform-origin":"",bi=l('<td#=data.cssClass# role="gridcell"><a tabindex="-1" class="k-link" href="\\#" data-#=data.ns#value="#=data.dateString#">#=data.value#<\/a><\/td>',{useWithBlock:!1}),ki=l('<td role="gridcell"> <\/td>',{useWithBlock:!1}),pt=r.support.browser,di=pt.msie&&pt.version<9,f=".kendoCalendar",s="click"+f,gi="keydown"+f,rt="id",wt="min",bt="left",ut="slideIn",a="month",kt="century",ft="change",dt="navigate",et="value",nr="k-state-hover",h="k-state-disabled",c="k-state-focused",w="k-other-month",gt=' class="'+w+'"',ni="k-nav-today",ti="td:has(.k-link)",ii="blur"+f,ri="focus",ui=ri+f,tr=tt.touch?"touchstart":"mouseenter",fi=tt.touch?"touchstart"+f:"mouseenter"+f,ei=tt.touch?"touchend"+f+" touchmove"+f:"mouseleave"+f,ir=6e4,oi=864e5,b="_prevArrow",k="_nextArrow",ot="aria-disabled",si="aria-selected",hi=n.proxy,ci=n.extend,i=Date,o={month:0,year:1,decade:2,century:3},rr=y.extend({init:function(t,u){var e=this,h,l;y.fn.init.call(e,t,u);t=e.wrapper=e.element;u=e.options;u.url=window.unescape(u.url);e._templates();e._header();e._footer(e.footer);l=t.addClass("k-widget k-calendar").on(fi+" "+ei,ti,yi).on(gi,"table.k-content",hi(e._move,e)).on(s,ti,function(t){var i=t.currentTarget.firstChild;i.href.indexOf("#")!=-1&&t.preventDefault();e._click(n(i))}).on("mouseup"+f,function(){e._focusView(e.options.focusOnNav!==!1)}).attr(rt);l&&(e._cellID=l+"_cell_selected");ct(u);h=it(u.value,u.format,u.culture);e._index=o[u.start];e._current=new i(+v(h,u.min,u.max));e._addClassProxy=function(){e._active=!0;e._cell.addClass(c)};e._removeClassProxy=function(){e._active=!1;e._cell.removeClass(c)};e.value(h);r.notify(e)},options:{name:"Calendar",value:null,min:new i(1900,0,1),max:new i(2099,11,31),dates:[],url:"",culture:"",footer:"",format:"",month:{},start:a,depth:a,animation:{horizontal:{effects:ut,reverse:!0,duration:500,divisor:2},vertical:{effects:"zoomIn",duration:400}}},events:[ft,dt],setOptions:function(n){var t=this;ct(n);y.fn.setOptions.call(t,n);t._templates();t._footer(t.footer);t._index=o[t.options.start];t.navigate()},destroy:function(){var n=this,t=n._today;n.element.off(f);n._title.off(f);n[b].off(f);n[k].off(f);r.destroy(n._table);t&&r.destroy(t.off(f));y.fn.destroy.call(n)},current:function(){return this._current},view:function(){return this._view},focus:function(n){n=n||this._table;this._bindTable(n);n.focus()},min:function(n){return this._option(wt,n)},max:function(n){return this._option("max",n)},navigateToPast:function(){this._navigate(b,-1)},navigateToFuture:function(){this._navigate(k,1)},navigateUp:function(){var n=this,t=n._index;n._title.hasClass(h)||n.navigate(n._current,++t)},navigateDown:function(n){var t=this,i=t._index,r=t.options.depth;if(n){if(i===o[r]){+t._value!=+n&&(t.value(n),t.trigger(ft));return}t.navigate(n,--i)}},navigate:function(r,u){u=isNaN(u)?o[u]:u;var f=this,l=f.options,tt=l.culture,p=l.min,w=l.max,it=f._title,y=f._table,d=f._oldTable,rt=f._value,ut=f._current,ft=r&&+r>+ut,et=u!==t&&u!==f._index,g,a,nt,s;r||(r=ut);f._current=r=new i(+v(r,p,w));u===t?u=f._index:f._index=u;f._view=a=e.views[u];nt=a.compare;s=u===o[kt];it.toggleClass(h,s).attr(ot,s);s=nt(r,p)<1;f[b].toggleClass(h,s).attr(ot,s);s=nt(r,w)>-1;f[k].toggleClass(h,s).attr(ot,s);y&&d&&d.data("animating")&&(d.kendoStop(!0,!0),y.kendoStop(!0,!0));f._oldTable=y;(!y||f._changeView)&&(it.html(a.title(r,p,w,tt)),f._table=g=n(a.content(ci({min:p,max:w,date:r,url:l.url,dates:l.dates,format:l.format,culture:tt},f[a.name]))),pi(g),f._animate({from:y,to:g,vertical:et,future:ft}),f._focus(r),f.trigger(dt));u===o[l.depth]&&rt&&f._class("k-state-selected",a.toDateString(rt));f._class(c,a.toDateString(r));!y&&f._cell&&f._cell.removeClass(c);f._changeView=!0},value:function(n){var r=this,f=r._view,u=r.options,e=r._view,o=u.min,s=u.max;if(n===t)return r._value;n=it(n,u.format,u.culture);n!==null&&(n=new i(+n),nt(n,o,s)||(n=null));r._value=n;e&&n===null&&r._cell?r._cell.removeClass("k-state-selected"):(r._changeView=!n||f&&f.compare(n,r._current)!==0,r.navigate(n))},_move:function(t){var f=this,y=f.options,e=t.keyCode,p=f._view,w=f._index,s=new i(+f._current),h=r.support.isRtl(f.wrapper),c,o,l,a;return t.target===f._table[0]&&(f._active=!0),t.ctrlKey?e==u.RIGHT&&!h||e==u.LEFT&&h?(f.navigateToFuture(),o=!0):e==u.LEFT&&!h||e==u.RIGHT&&h?(f.navigateToPast(),o=!0):e==u.UP?(f.navigateUp(),o=!0):e==u.DOWN&&(f._click(n(f._cell[0].firstChild)),o=!0):(e==u.RIGHT&&!h||e==u.LEFT&&h?(c=1,o=!0):e==u.LEFT&&!h||e==u.RIGHT&&h?(c=-1,o=!0):e==u.UP?(c=w===0?-7:-4,o=!0):e==u.DOWN?(c=w===0?7:4,o=!0):e==u.ENTER?(f._click(n(f._cell[0].firstChild)),o=!0):e==u.HOME||e==u.END?(l=e==u.HOME?"first":"last",a=p[l](s),s=new i(a.getFullYear(),a.getMonth(),a.getDate(),s.getHours(),s.getMinutes(),s.getSeconds(),s.getMilliseconds()),o=!0):e==u.PAGEUP?(o=!0,f.navigateToPast()):e==u.PAGEDOWN&&(o=!0,f.navigateToFuture()),(c||l)&&(l||p.setDate(s,c),f._focus(v(s,y.min,y.max)))),o&&t.preventDefault(),f._current},_animate:function(n){var t=this,i=n.from,r=n.to,u=t._active;i?i.parent().data("animating")?(i.parent().kendoStop(!0,!0).remove(),i.remove(),r.insertAfter(t.element[0].firstChild),t._focusView(u)):i.is(":visible")&&t.options.animation!==!1?t[n.vertical?"_vertical":"_horizontal"](i,r,n.future):(r.insertAfter(i),i.remove(),t._focusView(u)):(r.insertAfter(t.element[0].firstChild),t._bindTable(r))},_horizontal:function(n,i,r){var u=this,o=u._active,f=u.options.animation.horizontal,s=f.effects,e=n.outerWidth();s&&s.indexOf(ut)!=-1&&(n.add(i).css({width:e}),n.wrap("<div/>"),u._focusView(o,n),n.parent().css({position:"relative",width:e*2,float:bt,"margin-left":r?0:-e}),i[r?"insertAfter":"insertBefore"](n),ci(f,{effects:ut+":"+(r?"right":bt),complete:function(){n.remove();i.unwrap();u._focusView(o);u._oldTable=t}}),n.parent().kendoStop(!0,!0).kendoAnimate(f))},_vertical:function(n,i){var r=this,e=r.options.animation.vertical,o=e.effects,s=r._active,f,u;o&&o.indexOf("zoom")!=-1&&(i.css({position:"absolute",top:n.prev().outerHeight(),left:0}).insertBefore(n),yt&&(f=r._cellByDate(r._view.toDateString(r._current)),u=f.position(),u=u.left+parseInt(f.width()/2,10)+"px "+(u.top+parseInt(f.height()/2,10)+"px"),i.css(yt,u)),n.kendoStop(!0,!0).kendoAnimate({effects:"fadeOut",duration:600,complete:function(){n.remove();i.css({position:"static",top:0,left:0});r._focusView(s);r._oldTable=t}}),i.kendoStop(!0,!0).kendoAnimate(e))},_cellByDate:function(t){return this._table.find("td:not(."+w+")").filter(function(){return n(this.firstChild).attr(r.attr(et))===t})},_class:function(t,i){var u=this,e=u._cellID,f=u._cell;f&&f.removeAttr(si).removeAttr("aria-label").removeAttr(rt);f=u._table.find("td:not(."+w+")").removeClass(t).filter(function(){return n(this.firstChild).attr(r.attr(et))===i}).attr(si,!0);t!==c||u._active||u.options.focusOnNav===!1||(t="");f.addClass(t);f[0]&&(u._cell=f);e&&(f.attr(rt,e),u._table.removeAttr("aria-activedescendant").attr("aria-activedescendant",e))},_bindTable:function(n){n.on(ui,this._addClassProxy).on(ii,this._removeClassProxy)},_click:function(n){var u=this,f=u.options,e=new Date(+u._current),t=n.attr(r.attr(et)).split("/");t=new i(t[0],t[1],t[2]);p(t,0);u._view.setDate(e,t);u.navigateDown(v(e,f.min,f.max))},_focus:function(n){var t=this,i=t._view;i.compare(n,t._current)!==0?t.navigate(n):(t._current=n,t._class(c,i.toDateString(n)))},_focusView:function(n,t){n&&this.focus(t)},_footer:function(t){var i=this,f=g(),e=i.element,u=e.find(".k-footer");if(!t){i._toggle(!1);u.hide();return}u[0]||(u=n('<div class="k-footer"><a href="#" class="k-link k-nav-today"><\/a><\/div>').appendTo(e));i._today=u.show().find(".k-link").html(t(f)).attr("title",r.toString(f,"D",i.options.culture));i._toggle()},_header:function(){var n=this,i=n.element,t;i.find(".k-header")[0]||i.html('<div class="k-header"><a href="#" role="button" class="k-link k-nav-prev"><span class="k-icon k-i-arrow-w"><\/span><\/a><a href="#" role="button" aria-live="assertive" aria-atomic="true" class="k-link k-nav-fast"><\/a><a href="#" role="button" class="k-link k-nav-next"><span class="k-icon k-i-arrow-e"><\/span><\/a><\/div>');t=i.find(".k-link").on(fi+" "+ei+" "+ui+" "+ii,yi).click(!1);n._title=t.eq(1).on(s,function(){n._focusView(n.options.focusOnNav!==!1);n.navigateUp()});n[b]=t.eq(0).on(s,function(){n._focusView(n.options.focusOnNav!==!1);n.navigateToPast()});n[k]=t.eq(2).on(s,function(){n._focusView(n.options.focusOnNav!==!1);n.navigateToFuture()})},_navigate:function(n,t){var r=this,f=r._index+1,u=new i(+r._current);n=r[n];n.hasClass(h)||(f>3?u.setFullYear(u.getFullYear()+100*t):e.views[f].setDate(u,t),r.navigate(u))},_option:function(n,r){var u=this,f=u.options,e=u._value||u._current,o;if(r===t)return f[n];(r=it(r,f.format,f.culture),r)&&(f[n]=new i(+r),o=n===wt?r>e:e>r,(o||or(e,r))&&(o&&(u._value=null),u._changeView=!0),u._changeView||(u._changeView=!!(f.month.content||f.month.empty)),u.navigate(u._value),u._toggle())},_toggle:function(n){var i=this,u=i.options,r=i._today;if(n===t&&(n=nt(g(),u.min,u.max)),r)if(r.off(s),n)r.addClass(ni).removeClass(h).on(s,hi(i._todayClick,i));else r.removeClass(ni).addClass(h).on(s,ur)},_todayClick:function(n){var t=this,r=o[t.options.depth],i=g();n.preventDefault();t._view.compare(t._current,i)===0&&t._index==r&&(t._changeView=!1);t._value=i;t.navigate(i,r);t.trigger(ft)},_templates:function(){var n=this,t=n.options,i=t.footer,u=t.month,f=u.content,e=u.empty;n.month={content:l('<td#=data.cssClass# role="gridcell"><a tabindex="-1" class="k-link#=data.linkClass#" href="#=data.url#" '+r.attr("value")+'="#=data.dateString#" title="#=data.title#">'+(f||"#=data.value#")+"<\/a><\/td>",{useWithBlock:!!f}),empty:l('<td role="gridcell">'+(e||" ")+"<\/td>",{useWithBlock:!!e})};n.footer=i!==!1?l(i||'#= kendo.toString(data,"D","'+t.culture+'") #',{useWithBlock:!1}):null}}),e;lt.plugin(rr);e={firstDayOfMonth:function(n){return new i(n.getFullYear(),n.getMonth(),1)},firstVisibleDay:function(n,t){t=t||r.culture().calendar;for(var f=t.firstDay,u=new i(n.getFullYear(),n.getMonth(),0,n.getHours(),n.getMinutes(),n.getSeconds(),n.getMilliseconds());u.getDay()!=f;)e.setTime(u,-1*oi);return u},setTime:function(n,t){var u=n.getTimezoneOffset(),r=new i(n.getTime()+t),f=r.getTimezoneOffset()-u;n.setTime(r.getTime()+f*ir)},views:[{name:a,title:function(n,t,i,r){return ht(r).months.names[n.getMonth()]+" "+n.getFullYear()},content:function(n){for(var u=this,f=0,o=n.min,s=n.max,h=n.date,c=n.dates,nt=n.format,l=n.culture,y=n.url,tt=y&&c[0],a=ht(l),b=a.firstDay,k=a.days,it=ai(k.names,b),rt=ai(k.namesShort,b),v=e.firstVisibleDay(h,a),ut=u.first(h),ft=u.last(h),et=u.toDateString,t=new i,g='<table tabindex="0" role="grid" class="k-content" cellspacing="0"><thead><tr role="row">';f<7;f++)g+='<th scope="col" title="'+it[f]+'">'+rt[f]+"<\/th>";return t=new i(t.getFullYear(),t.getMonth(),t.getDate()),p(t,0),t=+t,d({cells:42,perRow:7,html:g+='<\/tr><\/thead><tbody><tr role="row">',start:new i(v.getFullYear(),v.getMonth(),v.getDate()),min:new i(o.getFullYear(),o.getMonth(),o.getDate()),max:new i(s.getFullYear(),s.getMonth(),s.getDate()),content:n.content,empty:n.empty,setter:u.setDate,build:function(n){var i=[],u=n.getDay(),f="",e="#";return(n<ut||n>ft)&&i.push(w),+n===t&&i.push("k-today"),(u===0||u===6)&&i.push("k-weekend"),tt&&fr(+n,c)&&(e=y.replace("{0}",r.toString(n,nt,l)),f=" k-action-link"),{date:n,dates:c,ns:r.ns,title:r.toString(n,"D",l),value:n.getDate(),dateString:et(n),cssClass:i[0]?' class="'+i.join(" ")+'"':"",linkClass:f,url:e}}})},first:function(n){return e.firstDayOfMonth(n)},last:function(n){var t=new i(n.getFullYear(),n.getMonth()+1,0),r=e.firstDayOfMonth(n),u=Math.abs(t.getTimezoneOffset()-r.getTimezoneOffset());return u&&t.setHours(r.getHours()+u/60),t},compare:function(n,t){var i=n.getMonth(),r=n.getFullYear(),u=t.getMonth(),f=t.getFullYear();return r>f?1:r<f?-1:i==u?0:i>u?1:-1},setDate:function(n,t){var r=n.getHours();t instanceof i?n.setFullYear(t.getFullYear(),t.getMonth(),t.getDate()):e.setTime(n,t*oi);p(n,r)},toDateString:function(n){return n.getFullYear()+"/"+n.getMonth()+"/"+n.getDate()}},{name:"year",title:function(n){return n.getFullYear()},content:function(n){var f=ht(n.culture).months.namesAbbr,e=this.toDateString,t=n.min,u=n.max;return d({min:new i(t.getFullYear(),t.getMonth(),1),max:new i(u.getFullYear(),u.getMonth(),1),start:new i(n.date.getFullYear(),0,1),setter:this.setDate,build:function(n){return{value:f[n.getMonth()],ns:r.ns,dateString:e(n),cssClass:""}}})},first:function(n){return new i(n.getFullYear(),0,n.getDate())},last:function(n){return new i(n.getFullYear(),11,n.getDate())},compare:function(n,t){return st(n,t)},setDate:function(n,t){var r,u=n.getHours();t instanceof i?(r=t.getMonth(),n.setFullYear(t.getFullYear(),r,n.getDate()),r!==n.getMonth()&&n.setDate(0)):(r=n.getMonth()+t,n.setMonth(r),r>11&&(r-=12),r>0&&n.getMonth()!=r&&n.setDate(0));p(n,u)},toDateString:function(n){return n.getFullYear()+"/"+n.getMonth()+"/1"}},{name:"decade",title:function(n,t,i){return li(n,t,i,10)},content:function(n){var t=n.date.getFullYear(),u=this.toDateString;return d({start:new i(t-t%10-1,0,1),min:new i(n.min.getFullYear(),0,1),max:new i(n.max.getFullYear(),0,1),setter:this.setDate,build:function(n,t){return{value:n.getFullYear(),ns:r.ns,dateString:u(n),cssClass:t===0||t==11?gt:""}}})},first:function(n){var t=n.getFullYear();return new i(t-t%10,n.getMonth(),n.getDate())},last:function(n){var t=n.getFullYear();return new i(t-t%10+9,n.getMonth(),n.getDate())},compare:function(n,t){return st(n,t,10)},setDate:function(n,t){vi(n,t,1)},toDateString:function(n){return n.getFullYear()+"/0/1"}},{name:kt,title:function(n,t,i){return li(n,t,i,100)},content:function(n){var o=n.date.getFullYear(),f=n.min.getFullYear(),e=n.max.getFullYear(),s=this.toDateString,t=f,u=e;return t=t-t%10,u=u-u%10,u-t<10&&(u=t+9),d({start:new i(o-o%100-10,0,1),min:new i(t,0,1),max:new i(u,0,1),setter:this.setDate,build:function(n,t){var i=n.getFullYear(),u=i+9;return i<f&&(i=f),u>e&&(u=e),{ns:r.ns,value:i+" - "+u,dateString:s(n),cssClass:t===0||t==11?gt:""}}})},first:function(n){var t=n.getFullYear();return new i(t-t%100,n.getMonth(),n.getDate())},last:function(n){var t=n.getFullYear();return new i(t-t%100+99,n.getMonth(),n.getDate())},compare:function(n,t){return st(n,t,100)},setDate:function(n,t){vi(n,t,10)},toDateString:function(n){var t=n.getFullYear();return t-t%10+"/0/1"}}]};e.isEqualDatePart=er;e.makeUnselectable=pi;e.restrictValue=v;e.isInRange=nt;e.normalize=ct;e.viewsEnum=o;r.calendar=e}(window.kendo.jQuery);kendo_module({id:"datepicker",name:"DatePicker",category:"web",description:"The DatePicker widget allows the user to select a date from a calendar or by direct input.",depends:["calendar","popup"]}),function(n,t){function d(t){var i=t.parseFormats,r=t.format;o.normalize(t);i=n.isArray(i)?i:[i];n.inArray(r,i)===-1&&i.splice(0,0,t.format);t.parseFormats=i}function pt(n){n.preventDefault()}var i=window.kendo,f=i.ui,e=f.Widget,c=i.parseDate,u=i.keys,bt=i.template,kt=i._activeElement,g="<div />",nt="<span />",r=".kendoDatePicker",tt="click"+r,l="open",a="close",v="change",it="disabled",rt="readonly",y="k-state-default",ut="k-state-focused",ft="k-state-selected",p="k-state-disabled",dt="k-state-hover",ii="keydown"+r,gt="mouseenter"+r+" mouseleave"+r,et="mousedown"+r,w="id",ot="min",st="max",ht="month",ct="aria-disabled",lt="aria-expanded",b="aria-hidden",at="aria-readonly",o=i.calendar,ni=o.isInRange,vt=o.restrictValue,ti=o.isEqualDatePart,k=n.extend,s=n.proxy,yt=Date,h=function(t){var r=this,u,o=document.body,e=n(g).attr(b,"true").addClass("k-calendar-container").appendTo(o);r.options=t=t||{};u=t.id;u&&(u+="_dateview",e.attr(w,u),r._dateViewID=u);r.popup=new f.Popup(e,k(t.popup,t,{name:"Popup",isRtl:i.support.isRtl(t.anchor)}));r.div=e;r.value(t.value)},wt;h.prototype={_calendar:function(){var t=this,r=t.calendar,u=t.options,e;r||(e=n(g).attr(w,i.guid()).appendTo(t.popup.element).on(et,pt).on(tt,"td:has(.k-link)",s(t._click,t)),t.calendar=r=new f.Calendar(e),t._setOptions(u),i.calendar.makeUnselectable(r.element),r.navigate(t._value||t._current,u.start),t.value(t._value))},_setOptions:function(n){this.calendar.setOptions({focusOnNav:!1,change:n.change,culture:n.culture,dates:n.dates,depth:n.depth,footer:n.footer,format:n.format,max:n.max,min:n.min,month:n.month,start:n.start})},setOptions:function(n){var t=this.options;this.options=k(t,n,{change:t.change,close:t.close,open:t.open});this.calendar&&this._setOptions(this.options)},destroy:function(){this.popup.destroy()},open:function(){var n=this;n._calendar();n.popup.open()},close:function(){this.popup.close()},min:function(n){this._option(ot,n)},max:function(n){this._option(st,n)},toggle:function(){var n=this;n[n.popup.visible()?a:l]()},move:function(n){var t=this,i=n.keyCode,r=t.calendar,f=n.ctrlKey&&i==u.DOWN||i==u.ENTER;if(i==u.ESC){t.close();return}if(n.altKey){i==u.DOWN?(t.open(),n.preventDefault()):i==u.UP&&(t.close(),n.preventDefault());return}if(t.popup.visible()){if(f&&r._cell.hasClass(ft)){t.close();n.preventDefault();return}t._current=r._move(n)}},current:function(n){this._current=n;this.calendar._focus(n)},value:function(n){var t=this,i=t.calendar,r=t.options;t._value=n;t._current=new yt(+vt(n,r.min,r.max));i&&i.value(n)},_click:function(n){n.currentTarget.className.indexOf(ft)!==-1&&this.close()},_option:function(n,t){var i=this,r=i.calendar;i.options[n]=t;r&&r[n](t)}};h.normalize=d;i.DateView=h;wt=e.extend({init:function(n,t){var r=this,f,u;e.fn.init.call(r,n,t);n=r.element;t=r.options;d(t);r._wrapper();r.dateView=new h(k({},t,{id:n.attr(w),anchor:r.wrapper,change:function(){r._change(this.value());r.close()},close:function(t){r.trigger(a)?t.preventDefault():(n.attr(lt,!1),u.attr(b,!0))},open:function(t){var f=r.options,i;r.trigger(l)?t.preventDefault():(r.element.val()!==r._oldText&&(i=c(n.val(),f.parseFormats,f.culture),r.dateView[i?"current":"value"](i)),n.attr(lt,!0),u.attr(b,!1),r._updateARIA(i))}}));u=r.dateView.div;r._icon();try{n[0].setAttribute("type","text")}catch(o){n[0].type="text"}n.addClass("k-input").attr({role:"combobox","aria-expanded":!1,"aria-owns":r.dateView._dateViewID});r._reset();r._template();f=n.is("[disabled]");f?r.enable(!1):r.readonly(n.is("[readonly]"));r._old=r._update(t.value||r.element.val());r._oldText=n.val();i.notify(r)},events:[l,a,v],options:{name:"DatePicker",value:null,footer:"",format:"",culture:"",parseFormats:[],min:new Date(1900,0,1),max:new Date(2099,11,31),start:ht,depth:ht,animation:{},month:{},dates:[],ARIATemplate:'Current focused date is #=kendo.toString(data.current, "D")#'},setOptions:function(n){var t=this,r=t._value;e.fn.setOptions.call(t,n);n=t.options;d(n);t.dateView.setOptions(n);r&&(t.element.val(i.toString(r,n.format,n.culture)),t._updateARIA(r))},_editable:function(n){var t=this,o=t._dateIcon.off(r),f=t.element.off(r),e=t._inputWrapper.off(r),u=n.readonly,i=n.disable;if(u||i)e.addClass(i?p:y).removeClass(i?y:p),f.attr(it,i).attr(rt,u).attr(ct,i).attr(at,u);else{e.addClass(y).removeClass(p).on(gt,t._toggleHover);f.removeAttr(it).removeAttr(rt).attr(ct,!1).attr(at,!1).on("keydown"+r,s(t._keydown,t)).on("blur"+r,s(t._blur,t)).on("focus"+r,function(){t._inputWrapper.addClass(ut)});o.on(tt,s(t._click,t)).on(et,pt)}},readonly:function(n){this._editable({readonly:n===t?!0:n,disable:!1})},enable:function(n){this._editable({readonly:!1,disable:!(n=n===t?!0:n)})},destroy:function(){var n=this;e.fn.destroy.call(n);n.dateView.destroy();n.element.off(r);n._dateIcon.off(r);n._inputWrapper.off(r);n._form&&n._form.off("reset",n._resetHandler)},open:function(){this.dateView.open()},close:function(){this.dateView.close()},min:function(n){return this._option(ot,n)},max:function(n){return this._option(st,n)},value:function(n){var i=this;if(n===t)return i._value;i._old=i._update(n);i._old===null&&i.element.val("");i._oldText=i.element.val()},_toggleHover:function(t){n(t.currentTarget).toggleClass(dt,t.type==="mouseenter")},_blur:function(){var n=this,t=n.element.val();n.close();t!==n._oldText&&n._change(t);n._inputWrapper.removeClass(ut)},_click:function(){var n=this,t=n.element;n.dateView.toggle();i.support.touch||t[0]===kt()||t.focus()},_change:function(n){var t=this;n=t._update(n);+t._old!=+n&&(t._old=n,t._oldText=t.element.val(),t.trigger(v),t.element.trigger(v))},_keydown:function(n){var t=this,i=t.dateView,r=t.element.val();i.popup.visible()||n.keyCode!=u.ENTER||r===t._oldText?(i.move(n),t._updateARIA(i._current)):t._change(r)},_icon:function(){var i=this,r=i.element,t;t=r.next("span.k-select");t[0]||(t=n('<span unselectable="on" class="k-select"><span unselectable="on" class="k-icon k-i-calendar">select<\/span><\/span>').insertAfter(r));i._dateIcon=t.attr({role:"button","aria-controls":i.dateView._dateViewID})},_option:function(n,i){var u=this,r=u.options;if(i===t)return r[n];(i=c(i,r.parseFormats,r.culture),i)&&(r[n]=new yt(+i),u.dateView[n](i))},_update:function(n){var u=this,r=u.options,f=r.min,o=r.max,t=c(n,r.parseFormats,r.culture),e;return+t==+u._value?(e=i.toString(t,r.format,r.culture),e!==n&&u.element.val(t===null?n:e),t):(t!==null&&ti(t,f)?t=vt(t,f,o):ni(t,f,o)||(t=null),u._value=t,u.dateView.value(t),u.element.val(t?i.toString(t,r.format,r.culture):n),u._updateARIA(t),t)},_wrapper:function(){var r=this,i=r.element,t;t=i.parents(".k-datepicker");t[0]||(t=i.wrap(nt).parent().addClass("k-picker-wrap k-state-default"),t=t.wrap(nt).parent());t[0].style.cssText=i[0].style.cssText;i.css({width:"100%",height:i[0].style.height});r.wrapper=t.addClass("k-widget k-datepicker k-header").addClass(i[0].className);r._inputWrapper=n(t[0].firstChild)},_reset:function(){var t=this,i=t.element,r=i.attr("form"),u=r?n("#"+r):i.closest("form");u[0]&&(t._resetHandler=function(){t.value(i[0].defaultValue)},t._form=u.on("reset",t._resetHandler))},_template:function(){this._ariaTemplate=bt(this.options.ARIATemplate)},_updateARIA:function(n){var i,t=this,r=t.dateView.calendar;t.element.removeAttr("aria-activedescendant");r&&(i=r._cell,i.attr("aria-label",t._ariaTemplate({current:n||r.current()})),t.element.attr("aria-activedescendant",i.attr("id")))}});f.plugin(wt)}(window.kendo.jQuery);kendo_module({id:"dropdownlist",name:"DropDownList",category:"web",description:"The DropDownList widget displays a list of values and allows the selection of a single value from the list.",depends:["list"],features:[{id:"mobile-scroller",name:"Mobile scroller",description:"Support for kinetic scrolling in mobile device",depends:["mobile.scroller"]}]}),function(n,t){function o(n,t,i){for(var u=0,f=t.length-1,r;u<f;++u)r=t[u],r in n||(n[r]={}),n=n[r];n[t[f]]=i}var r=window.kendo,s=r.ui,u=s.Select,f=r.support.mobileOS,i=".kendoDropDownList",a="disabled",v="readonly",y="change",p="k-state-focused",h="k-state-default",c="k-state-disabled",w="aria-disabled",b="aria-readonly",l="k-state-selected",k="mouseenter"+i+" mouseleave"+i,e="tabindex",d=n.proxy,g=u.extend({init:function(f,o){var s=this,a=o&&o.index,c,l,h;s.ns=i;o=n.isArray(o)?{dataSource:o}:o;u.fn.init.call(s,f,o);s._focusHandler=function(){s.wrapper.focus()};o=s.options;f=s.element.on("focus"+i,s._focusHandler);this._inputTemplate();s._reset();s._word="";s._wrapper();s._tabindex();s.wrapper.data(e,s.wrapper.attr(e));s._aria();s._span();s._popup();s._mobile();s._dataSource();s._ignoreCase();s._enable();s._oldIndex=s.selectedIndex=-1;s._cascade();a!==t&&(o.index=a);o.autoBind?s.dataSource.fetch():s.selectedIndex===-1&&(h=o.text||"",h||(c=o.optionLabel,l=c&&o.index===0,s._isSelect?h=l?c:f.children(":selected").text():!f[0].value&&l&&(h=c)),s._textAccessor(h));r.notify(s)},options:{name:"DropDownList",enabled:!0,autoBind:!0,index:0,text:null,value:null,template:"",valueTemplate:"",delay:500,height:200,dataTextField:"",dataValueField:"",optionLabel:"",cascadeFrom:"",cascadeFromField:"",ignoreCase:!0,animation:{}},events:["open","close",y,"select","dataBinding","dataBound","cascade"],setOptions:function(n){u.fn.setOptions.call(this,n);this._template();this._inputTemplate();this._accessors();this._aria()},destroy:function(){var n=this;n.wrapper.off(i);n.element.off(i);n._inputWrapper.off(i);u.fn.destroy.call(n)},open:function(){var n=this;n.ul[0].firstChild?(n.popup.open(),n._scroll(n._current)):(n._open=!0,n._request||n.dataSource.fetch())},toggle:function(n){this._toggle(n)},refresh:function(){var n=this,u=n._data(),t=u.length,i=n.options.optionLabel,e=n.element[0],f;n.trigger("dataBinding");n._current&&n.current(null);n.ul[0].innerHTML=r.render(n.template,u);n._height(t);n.popup.visible()&&n.popup._position();n._isSelect&&(f=e.selectedIndex,i&&t&&(i='<option value="">'+n._optionLabelText(i)+"<\/option>"),n._options(u,i),e.selectedIndex=f===-1?0:f);n._open&&(n._open=!1,n.toggle(!!t));n._hideBusy();n._makeUnselectable();n._fetch||(t?n._selectItem():n._textAccessor()!==i&&(n.element.val(""),n._textAccessor("")));n._bound=!!t;n.trigger("dataBound")},search:function(n){if(n){var i=this,r=i.options.ignoreCase;r&&(n=n.toLowerCase());i._select(function(u){var f=i._text(u);if(f!==t)return f=f+"",r&&(f=f.toLowerCase()),f.indexOf(n)===0})}},text:function(n){var i=this,r,u,f=i.options.ignoreCase;if(n=n===null?"":n,n!==t)typeof n=="string"&&(u=f?n.toLowerCase():n,r=i._select(function(n){return n=i._text(n),f&&(n=(n+"").toLowerCase()),n===u}),r&&(n=r)),i._textAccessor(n);else return i._textAccessor()},value:function(n){var i=this,r,u;if(n!==t){if(n!==null&&(n=n.toString()),i._selectedValue=n,u=n||i.options.optionLabel&&!i.element[0].disabled&&n==="",u&&i._fetchItems(n))return;r=i._index(n);i.select(r>-1?r:0)}else return i._accessor()},_editable:function(n){var t=this,s=t.element,o=n.disable,l=n.readonly,u=t.wrapper.off(i),f=t._inputWrapper.off(k),y=function(){f.addClass(p);t._blured=!1},g=function(){if(!t._blured){t._triggerCascade();var n=window.self!==window.top;r.support.mobileOS.ios&&n?t._change():t._blur();f.removeClass(p);t._blured=!0;s.blur()}};if(l||o){if(o)u.removeAttr(e),f.addClass(c).removeClass(h);else{f.addClass(h).removeClass(c);u.on("focusin"+i,y).on("focusout"+i,g)}s.attr(a,o).attr(v,l);u.attr(w,o).attr(b,l)}else{s.removeAttr(a).removeAttr(v);f.addClass(h).removeClass(c).on(k,t._toggleHover);u.attr(e,u.data(e)).attr(w,!1).attr(b,!1).on("click"+i,function(n){t._blured=!1;n.preventDefault();t.toggle()}).on("keydown"+i,d(t._keydown,t)).on("keypress"+i,d(t._keypress,t)).on("focusin"+i,y).on("focusout"+i,g)}},_accept:function(n){this._focus(n)},_optionLabelText:function(){var t=this.options,i=t.dataTextField,n=t.optionLabel;return n&&i&&typeof n=="object"?this._text(n):n},_data:function(){var h=this,f=h.options,t=f.optionLabel,i=f.dataTextField,e=f.dataValueField,u=h.dataSource.view(),c=u.length,n=t,s=0;if(t&&c){for(typeof t=="object"?n=t:i&&(n={},i=i.split("."),e=e.split("."),o(n,e,""),o(n,i,t)),n=new r.data.ObservableArray([n]);s<c;s++)n.push(u[s]);u=n}return u},_selectItem:function(){u.fn._selectItem.call(this);this.current()||this.select(0)},_keydown:function(n){var u=this,t=n.keyCode,i=r.keys,f=u.ul[0];t===i.LEFT?t=i.UP:t===i.RIGHT&&(t=i.DOWN);n.keyCode=t;u._move(n);t===i.HOME?(n.preventDefault(),u._select(f.firstChild)):t===i.END&&(n.preventDefault(),u._select(f.lastChild))},_selectNext:function(n,t){for(var i=this,r,f=t,u=i._data(),o=u.length,s=i.options.ignoreCase,e=function(t,r){return t=t+"",s&&(t=t.toLowerCase()),t.indexOf(n)===0?(i._select(r),i._triggerEvents(),!0):void 0};t<o;t++)if(r=i._text(u[t]),r&&e(r,t))return!0;if(f>0)for(t=0;t<=f;t++)if(r=i._text(u[t]),r&&e(r,t))return!0;return!1},_keypress:function(n){if(n.charCode!==0){var t=this,i=String.fromCharCode(n.charCode||n.keyCode),u=t.selectedIndex,r=t._word;(t.options.ignoreCase&&(i=i.toLowerCase()),i===" "&&n.preventDefault(),t._last===i&&r.length<=1&&u>-1&&(r||(r=i),t._selectNext(r,u+1)))||(t._word=r+i,t._last=i,t._search())}},_popup:function(){u.fn._popup.call(this);this.popup.one("open",function(){this.wrapper=r.wrap(this.element).addClass("km-popup")})},_search:function(){var n=this,i=n.dataSource,t=n.selectedIndex,r=n._word;if(clearTimeout(n._typing),n._typing=setTimeout(function(){n._word=""},n.options.delay),t===-1&&(t=0),!n.ul[0].firstChild){i.one(y,function(){i.data()[0]&&t>-1&&n._selectNext(r,t)}).fetch();return}n._selectNext(r,t);n._triggerEvents()},_select:function(n){var i=this,e=i._current,r=null,f,u;return n=i._get(n),n&&n[0]&&!n.hasClass(l)&&(e&&e.removeClass(l),u=s.List.inArray(n[0],i.ul[0]),u>-1&&(r=i._data()[u],f=i._value(r),i.selectedIndex=u,i._textAccessor(r),i._accessor(f!==t?f:i._text(r),u),i._selectedValue=i._accessor(),i.current(n.addClass(l)),i._optionID&&i._current.attr("aria-selected",!0))),r},_triggerEvents:function(){this.popup.visible()||(this._triggerCascade(),this._change())},_mobile:function(){var t=this,n=t.popup,i=n.element.parents(".km-root").eq(0);i.length&&f&&(n.options.animation.open.effects=f.android||f.meego?"fadeIn":f.ios||f.wp?"slideIn:up":n.options.animation.open.effects)},_span:function(){var t=this,i=t.wrapper,u="span.k-input",r;r=i.find(u);r[0]||(i.append('<span unselectable="on" class="k-dropdown-wrap k-state-default"><span unselectable="on" class="k-input"> <\/span><span unselectable="on" class="k-select"><span unselectable="on" class="k-icon k-i-arrow-s">select<\/span><\/span><\/span>').append(t.element),r=i.find(u));t.span=r;t._inputWrapper=n(i[0].firstChild);t._arrow=i.find(".k-icon").mousedown(function(n){n.preventDefault()})},_wrapper:function(){var i=this,t=i.element,r=t[0],n;n=t.parent();n.is("span.k-widget")||(n=t.wrap("<span />").parent(),n[0].style.cssText=r.style.cssText);t.hide();i._focused=i.wrapper=n.addClass("k-widget k-dropdown k-header").addClass(r.className).css("display","").attr({unselectable:"on",role:"listbox","aria-haspopup":!0,"aria-expanded":!1})},_clearSelection:function(){var n=this,t=n.options.optionLabel;if(n.options.value="",n._selectedValue="",n.dataSource.view()[0]&&(t||n._userTriggered)){n.select(0);return}n.selectedIndex=-1;n.element.val("");n._textAccessor(n.options.optionLabel)},_inputTemplate:function(){var i=this,t=i.options.valueTemplate;t=t?r.template(t):n.proxy(r.template("#:this._text(data)#"),i);i.valueTemplate=t},_textAccessor:function(i){var u=this.dataItem(),f=this.options,e=this.span;if(i!==t)n.isPlainObject(i)||i instanceof r.data.ObservableObject?u=i:u&&this._text(u)===i||(f.dataTextField?(u={},o(u,f.dataTextField.split("."),i),o(u,f.dataValueField.split("."),this._accessor())):u=i),e.html(this.valueTemplate(u));else return e.text()}});s.plugin(g)}(window.kendo.jQuery);kendo_module({id:"combobox",name:"ComboBox",category:"web",description:"The ComboBox widget allows the selection from pre-defined values or entering a new value.",depends:["list"],features:[{id:"mobile-scroller",name:"Mobile scroller",description:"Support for kinetic scrolling in mobile device",depends:["mobile.scroller"]}]}),function(n,t){var r=window.kendo,o=r.ui,u=o.List,f=o.Select,ut=r.support,v=ut.placeholder,s=r._activeElement,h=r.keys,i=".kendoComboBox",y="click"+i,p="mousedown"+i,w="disabled",b="readonly",k="change",c="k-state-default",d="k-state-focused",l="k-state-disabled",g="aria-disabled",nt="aria-readonly",tt="k-state-selected",e="filter",a="accept",it="rebind",ft="mouseenter"+i+" mouseleave"+i,rt=null,et=n.proxy,ot=f.extend({init:function(t,u){var e=this,o;e.ns=i;u=n.isArray(u)?{dataSource:u}:u;f.fn.init.call(e,t,u);e._focusHandler=function(){e.input.focus()};u=e.options;t=e.element.on("focus"+i,e._focusHandler);u.placeholder=u.placeholder||t.attr("placeholder");e._reset();e._wrapper();e._input();e._tabindex(e.input);e._popup();e._dataSource();e._ignoreCase();e._enable();e._cascade();e._aria();e._oldIndex=e.selectedIndex=-1;u.autoBind?e._filterSource():(o=u.text,!o&&e._isSelect&&(o=t.children(":selected").text()),o&&(e.input.val(o),e._prev=o));o||e._placeholder();r.notify(e)},options:{name:"ComboBox",enabled:!0,index:-1,text:null,value:null,autoBind:!0,delay:200,dataTextField:"",dataValueField:"",minLength:0,height:200,highlightFirst:!0,template:"",filter:"none",placeholder:"",suggest:!1,cascadeFrom:"",cascadeFromField:"",ignoreCase:!0,animation:{}},events:["open","close",k,"select","dataBinding","dataBound","cascade"],setOptions:function(n){f.fn.setOptions.call(this,n);this._template();this._accessors();this._aria()},current:function(n){var r=this,i=r._current;if(n===t)return i;i&&i.removeClass(tt);f.fn.current.call(r,n)},destroy:function(){var n=this;n.input.off(i);n.element.off(i);n._inputWrapper.off(i);f.fn.destroy.call(n)},_editable:function(n){var t=this,r=n.disable,f=n.readonly,u=t._inputWrapper.off(i),e=t.element.add(t.input.off(i)),o=t._arrow.parent().off(y+" "+p);if(f||r)u.addClass(r?l:c).removeClass(r?c:l),e.attr(w,r).attr(b,f).attr(g,r).attr(nt,f);else{u.addClass(c).removeClass(l).on(ft,t._toggleHover);e.removeAttr(w).removeAttr(b).attr(g,!1).attr(nt,!1);o.on(y,function(){t.toggle()}).on(p,function(n){n.preventDefault()});t.input.on("keydown"+i,et(t._keydown,t)).on("focus"+i,function(){u.addClass(d);t._placeholder(!1)}).on("blur"+i,function(){u.removeClass(d);clearTimeout(t._typing);t.options.text!==t.input.val()&&t.text(t.text());t._placeholder();t._blur();t.element.blur()})}},open:function(){var n=this,t=n.dataSource.options.serverFiltering;n.popup.visible()||(n.ul[0].firstChild&&(n._state!==a||t)?(n.popup.open(),n._scroll(n._current)):(n._open=!0,n._state=it,n._filterSource()))},refresh:function(){var i=this,f=i.ul[0],l=i.options,a=i._state,o=i._data(),h=o.length,v=!0,y,c,u;i.trigger("dataBinding");f.innerHTML=r.render(i.template,o);i._height(h);i.popup.visible()&&i.popup._position();i._isSelect&&(y=i.element[0].firstChild,a===it&&(i._state=""),u=i._option,i._option=t,i._options(o),u&&u[0].selected?i._custom(u.val(),v):i._bound||y||i._custom("",v));h&&(l.highlightFirst&&i.current(n(f.firstChild)),l.suggest&&i.input.val()&&i._request!==t&&i.suggest(n(f.firstChild)));a===e||i._fetch||i._selectItem();i._open&&(i._open=!1,c=!!h,i._typing&&i.input[0]!==s()&&(c=!1),i.toggle(c),i._typing=t);i._touchScroller&&i._touchScroller.reset();i._makeUnselectable();i._hideBusy();i._bound=!0;i.trigger("dataBound")},search:function(n){n=typeof n=="string"?n:this.text();var t=this,f=n.length,i=t.options,r=i.ignoreCase,u=i.filter,o=i.dataTextField;clearTimeout(t._typing);f>=i.minLength&&(t._state=e,u==="none"?t._filter(n):(t._open=!0,t._filterSource({value:r?n.toLowerCase():n,field:o,operator:u,ignoreCase:r})))},suggest:function(n){var r=this,o=r.input[0],i=r.text(),e=u.caret(o),c=r._last,f;if(c==h.BACKSPACE||c==h.DELETE){r._last=t;return}n=n||"";typeof n!="string"&&(f=u.inArray(n[0],r.ul[0]),n=f>-1?r._text(r.dataSource.view()[f]):"");e<=0&&(e=i.toLowerCase().indexOf(n.toLowerCase())+1);n?(f=n.toLowerCase().indexOf(i.toLowerCase()),f>-1&&(i+=n.substring(f+i.length))):i=i.substring(0,e);i.length===e&&n||(o.value=i,o===s()&&u.selectText(o,e,i.length))},text:function(n){n=n===null?"":n;var i=this,u=i.input[0],e=i.options.ignoreCase,f=n,r;if(n!==t){if(r=i.dataItem(),r&&i._text(r)===n&&i._value(r).toString()===i._old){i._triggerCascade();return}e&&(f=f.toLowerCase());i._select(function(n){return n=i._text(n),e&&(n=(n+"").toLowerCase()),n===f});i.selectedIndex<0&&(i._custom(n),u.value=n);i._prev=u.value;i._triggerCascade()}else return u.value},toggle:function(n){var t=this;t._toggle(n)},value:function(n){var i=this,u=i.options,r;if(n!==t){if(n!==null&&(n=n.toString()),i._selectedValue=n,!i._open&&n&&i._fetchItems(n))return;r=i._index(n);r>-1?i.select(r):(i.current(rt),i._custom(n),(u.value!==n||u.text!==i.input.val())&&(i.text(n),i._placeholder()));i._old=i._accessor();i._oldIndex=i.selectedIndex}else return i._accessor()},_accept:function(n){var t=this;n?t._focus(n):(t.text(t.text()),t._change())},_custom:function(t,i){var r=this,f=r.element,u=r._option;r._state!==e||i||(r._state=a);r._isSelect?(u||(u=r._option=n("<option/>"),f.append(u)),u.text(t),u[0].selected=!0):f.val(t);r._selectedValue=t},_filter:function(n){var i=this,r=i.options,u=i.dataSource,f=r.ignoreCase,e=function(r){var u=i._text(r);if(u!==t)return(u=u+"",u!==""&&n==="")?!1:(f&&(u=u.toLowerCase()),u.indexOf(n)===0)};if(f&&(n=n.toLowerCase()),!i.ul[0].firstChild){u.one(k,function(){u.data()[0]&&i.search(n)}).fetch();return}i._highlight(e)!==-1&&(r.suggest&&i._current&&i.suggest(i._current),i.open());i._hideBusy()},_highlight:function(i){var r=this,f;return i===t||i===null?-1:(i=r._get(i),f=u.inArray(i[0],r.ul[0]),f==-1&&(r.options.highlightFirst&&!r.text()?(i=r.ul[0].firstChild,i&&(i=n(i))):i=rt),r.current(i),f)},_input:function(){var t=this,i=t.element.removeClass("k-input")[0],e=i.accessKey,u=t.wrapper,o="input.k-input",f=i.name||"",r;f&&(f='name="'+f+'_input" ');r=u.find(o);r[0]||(u.append('<span tabindex="-1" unselectable="on" class="k-dropdown-wrap k-state-default"><input '+f+'class="k-input" type="text" autocomplete="off"/><span tabindex="-1" unselectable="on" class="k-select"><span unselectable="on" class="k-icon k-i-arrow-s">select<\/span><\/span><\/span>').append(t.element),r=u.find(o));r[0].style.cssText=i.style.cssText;i.maxLength>-1&&(r[0].maxLength=i.maxLength);r.addClass(i.className).val(this.options.text||i.value).css({width:"100%",height:i.style.height}).attr({role:"combobox","aria-expanded":!1}).show();v&&r.attr("placeholder",t.options.placeholder);e&&(i.accessKey="",r[0].accessKey=e);t._focused=t.input=r;t._inputWrapper=n(u[0].firstChild);t._arrow=u.find(".k-icon").attr({role:"button",tabIndex:-1});i.id&&t._arrow.attr("aria-controls",t.ul[0].id)},_keydown:function(n){var t=this,i=n.keyCode;t._last=i;clearTimeout(t._typing);i==h.TAB||t._move(n)||t._search()},_placeholder:function(n){if(!v){var f=this,i=f.input,r=f.options.placeholder,e;if(r){if(e=f.value(),n===t&&(n=!e),i.toggleClass("k-readonly",n),!n){if(e)return;r=""}i.val(r);r||i[0]!==s()||u.selectText(i[0],0,0)}}},_search:function(){var n=this;n._typing=setTimeout(function(){var t=n.text();n._prev!==t&&(n._prev=t,n.search(t));n._typing=null},n.options.delay)},_select:function(n){var i=this,f,o,r=i._data(),u=i._highlight(n);i.selectedIndex=u;u!==-1&&(i._state===e&&(i._state=a),i._current.addClass(tt),r=r[u],f=i._text(r),o=i._value(r),i._prev=i.input[0].value=f,i._accessor(o!==t?o:f,u),i._selectedValue=i._accessor(),i._placeholder(),i._optionID&&i._current.attr("aria-selected",!0))},_wrapper:function(){var i=this,n=i.element,t=n.parent();t.is("span.k-widget")||(t=n.hide().wrap("<span />").parent(),t[0].style.cssText=n[0].style.cssText);i.wrapper=t.addClass("k-widget k-combobox k-header").addClass(n[0].className).css("display","")},_clearSelection:function(n,t){var i=this,r=n._selectedValue||n.value(),u=r&&n.selectedIndex===-1;(t||!r||u)&&(i.value(""),i.options.value="")}});o.plugin(ot)}(window.kendo.jQuery);kendo_module({id:"multiselect",name:"MultiSelect",category:"web",description:"The MultiSelect widget allows the selection from pre-defined values.",depends:["list"],features:[{id:"mobile-scroller",name:"Mobile scroller",description:"Support for kinetic scrolling in mobile device",depends:["mobile.scroller"]}]}),function(n,t){function ni(n,t){var i;if(n===null&&t!==null||n!==null&&t===null||(i=n.length,i!==t.length))return!1;while(i--)if(n[i]!==t[i])return!1;return!0}function s(t){var i=t.firstChild;return(i&&i.style.display==="none"&&(i=h(i,it)),i)?n(i):i}function lt(t){var i=t.lastChild;return(i&&i.style.display==="none"&&(i=h(i,rt)),i)?n(i):i}function h(n,t){return n=n[t],n&&n.style.display==="none"&&(n=h(n,t)),n}var i=window.kendo,d=i.ui,f=d.List,r=i.keys,g=i._activeElement,at=i.data.ObservableArray,c=n.proxy,e="id",v="li",y="accept",p="filter",nt="open",tt="close",o="change",vt="progress",w="select",it="nextSibling",rt="previousSibling",yt=' style="display:none"',ut="aria-disabled",ft="aria-readonly",l="k-state-focused",b="k-loading-hidden",et="k-state-hover",k="k-state-disabled",ot="disabled",st="readonly",u=".kendoMultiSelect",pt="click"+u,wt="keydown"+u,ht="mouseenter"+u,ct="mouseleave"+u,bt=ht+" "+ct,kt=/"/g,a=n.isArray,dt=["font-family","font-size","font-stretch","font-style","font-weight","letter-spacing","text-transform","line-height"],gt=f.extend({init:function(t,r){var o=this,s,h;o.ns=u;f.fn.init.call(o,t,r);o._wrapper();o._tagList();o._input();o._textContainer();o._loader();o._tabindex(o.input);t=o.element.attr("multiple","multiple").hide();r=o.options;h=r.value;r.placeholder||(r.placeholder=t.data("placeholder"));s=t.attr(e);s&&(o._tagID=s+"_tag_active",s=s+"_taglist",o.tagList.attr(e,s));o._aria(s);o._dataSource();o._ignoreCase();o._popup();o._values=[];o._dataItems=[];o._reset();o._enable();o._placeholder();r.autoBind?o.dataSource.fetch():h&&(a(h)||(h=[h]),(n.isPlainObject(h[0])||!r.dataValueField)&&(o._retrieveData=!0,o.dataSource.data(h),o.value(o._initialValues)));i.notify(o)},options:{name:"MultiSelect",enabled:!0,autoBind:!0,autoClose:!0,highlightFirst:!0,dataTextField:"",dataValueField:"",filter:"startswith",ignoreCase:!0,minLength:0,delay:100,value:null,maxSelectedItems:null,itemTemplate:"",tagTemplate:"",placeholder:"",height:200,animation:{}},events:[nt,tt,o,w,"dataBinding","dataBound"],setDataSource:function(n){this.options.dataSource=n;this._dataSource();this.options.autoBind&&this.dataSource.fetch()},setOptions:function(n){f.fn.setOptions.call(this,n);this._template();this._accessors();this._aria(this.tagList.attr(e))},current:function(n){return this.currentTag(null),f.fn.current.call(this,n)},currentTag:function(n){var i=this;if(n!==t)i._currentTag&&(i._currentTag.removeClass(l).removeAttr(e),i.input.removeAttr("aria-activedescendant")),n&&(n.addClass(l).attr(e,i._tagID),i.input.attr("aria-activedescendant",i._tagID)),i._currentTag=n;else return i._currentTag},dataItems:function(){return this._dataItems},destroy:function(){var n=this,t=n.ns;n.wrapper.off(t);n.tagList.off(t);n.input.off(t);f.fn.destroy.call(n)},_editable:function(t){var i=this,r=t.disable,f=t.readonly,e=i.wrapper.off(u),s=i.tagList.off(u),o=i.element.add(i.input.off(u));if(f||r)r?e.addClass(k):e.removeClass(k),o.attr(ot,r).attr(st,f).attr(ut,r).attr(ft,f);else{e.removeClass(k).on(bt,i._toggleHover).on("mousedown"+u,function(n){var t=n.target.nodeName.toLowerCase()!=="input";t&&n.preventDefault();n.target.className.indexOf("k-delete")===-1&&(i.input[0]!==g()&&t&&i.input.focus(),i.options.minLength===0&&i.open())});i.input.on(wt,c(i._keydown,i)).on("paste"+u,c(i._search,i)).on("focus"+u,function(){i._placeholder(!1)}).on("blur"+u,function(){clearTimeout(i._typing);i._placeholder();i.close();i._state===p&&(i._state=y);i.element.blur()});o.removeAttr(ot).removeAttr(st).attr(ut,!1).attr(ft,!1);s.on(ht,v,function(){n(this).addClass(et)}).on(ct,v,function(){n(this).removeClass(et)}).on(pt,".k-delete",function(t){i._unselect(n(t.target).closest(v));i._change();i.close()})}},_close:function(){var n=this;n.options.autoClose||!n._visibleItems?n.close():(n.current(n.options.highlightFirst?s(n.ul[0]):null),n.popup._position())},close:function(){this.popup.close();this.current(null)},open:function(){var n=this;!n.ul[0].firstChild||n._state===y||n._retrieveData?(n._state="",n._open=!0,n._retrieveData=!1,n._filterSource()):n._visibleItems&&n._allowSelection()&&(n.popup.open(),n.current(n.options.highlightFirst?s(n.ul[0]):null))},toggle:function(n){n=n!==t?n:!this.popup.visible();this[n?nt:tt]()},refresh:function(){var n=this,i=null,t;n.trigger("dataBinding");t=n._render(n.dataSource.view());n._height(t);n._setInitialValues&&(n._setInitialValues=!1,n.value(n._initialValues));n._open&&(n._open=!1,n.toggle(t));n.popup.visible()&&(n.popup._position(),n.options.highlightFirst&&(i=s(n.ul[0])));n.current(i);n._touchScroller&&n._touchScroller.reset();n._makeUnselectable();n._hideBusy();n.trigger("dataBound")},search:function(n){var t=this,i=t.options,u=i.ignoreCase,f=i.filter,e=i.dataTextField,r=t.input.val();i.placeholder===r&&(r="");clearTimeout(t._typing);n=typeof n=="string"?n:r;n.length>=i.minLength&&(t._state=p,t._open=!0,t._filterSource({value:u?n.toLowerCase():n,field:e,operator:f,ignoreCase:u}))},value:function(i){var r=this,o=n(r.tagList[0].children),f=o.length,e,u=0;if(i===t)return r._values;if(!r._fetchItems(i)){for(;u<f;u++)r._unselect(o.eq(u));if(i!==null){for(i=a(i)||i instanceof at?i:[i],u=0,f=i.length;u<f;u++)e=r._index(i[u]),e>-1&&r._select(e);r._old=r._values.slice()}}},_dataSource:function(){var n=this,u=n.element,r=n.options,t=r.dataSource||{};t=a(t)?{data:t}:t;t.select=u;t.fields=[{field:r.dataTextField},{field:r.dataValueField}];n.dataSource&&n._refreshHandler?n._unbindDataSource():(n._refreshHandler=c(n.refresh,n),n._progressHandler=c(n._showBusy,n));n.dataSource=i.data.DataSource.create(t).bind(o,n._refreshHandler).bind(vt,n._progressHandler)},_fetchItems:function(t){var i=this,r=n.isArray(t)&&t.length===0;if(!r&&t&&!i._fetch&&!i.ul[0].firstChild){i.dataSource.one(o,function(){i.value(t);i._fetch=!1});return i._fetch=!0,i.dataSource.fetch(),!0}},_reset:function(){var t=this,i=t.element,r=i.attr("form"),u=r?n("#"+r):i.closest("form");u[0]&&(t._resetHandler=function(){setTimeout(function(){t.value(t._initialValues)})},t._form=u.on("reset",t._resetHandler))},_initValue:function(){var t=this,n=t.options.value||t.element.val();n===null?n=[]:(a(n)||(n=[n]),n=t._mapValues(n));t._old=t._initialValues=n;t._setInitialValues=!!n[0]},_mapValues:function(t){var i=this;return t&&n.isPlainObject(t[0])&&(t=n.map(t,function(n){return i._value(n)})),t},_change:function(){var n=this,t=n.value();ni(t,n._old)||(n._old=t.slice(),n.trigger(o),n.element.trigger(o))},_click:function(t){var i=this,r=n(t.currentTarget);if(!t.isDefaultPrevented()){if(i.trigger(w,{item:r})){i._close();return}i._select(r);i._change();i._close()}},_item:function(n,t){return n=n[t](),n[0]&&!n.is(":visible")&&(n=this._item(n,t)),n},_keydown:function(t){var u=this,e=t.keyCode,f=u._currentTag,o=u._current,l=u.input.val(),a=i.support.isRtl(u.wrapper),c=u.popup.visible();if(e===r.DOWN){if(t.preventDefault(),!c){u.open();return}o=o?h(o[0],it):s(u.ul[0]);o&&u.current(n(o))}else if(e===r.UP)c&&(o=o?h(o[0],rt):lt(u.ul[0]),u.current(n(o)),u._current[0]||u.close()),t.preventDefault();else if(e===r.LEFT&&!a||e===r.RIGHT&&a)l||(f=f?f.prev():n(u.tagList[0].lastChild),f[0]&&u.currentTag(f));else if(e===r.RIGHT&&!a||e===r.LEFT&&a)!l&&f&&(f=f.next(),u.currentTag(f[0]?f:null));else if(e===r.ENTER&&c){if(o){if(u.trigger(w,{item:o})){u._close();return}u._select(o)}u._change();u._close();t.preventDefault()}else e===r.ESC?(c?t.preventDefault():u.currentTag(null),u.close()):e===r.HOME?c?u.current(s(u.ul[0])):l||(f=u.tagList[0].firstChild,f&&u.currentTag(n(f))):e===r.END?c?u.current(lt(u.ul[0])):l||(f=u.tagList[0].lastChild,f&&u.currentTag(n(f))):e!==r.DELETE&&e!==r.BACKSPACE||l?(clearTimeout(u._typing),setTimeout(function(){u._scale()}),u._search()):(e!==r.BACKSPACE||f||(f=n(u.tagList[0].lastChild)),f&&f[0]&&(u._unselect(f),u._change(),u._close()))},_hideBusy:function(){var n=this;clearTimeout(n._busy);n.input.attr("aria-busy",!1);n._loading.addClass(b);n._busy=null},_showBusy:function(){var n=this;n._busy||(n._busy=setTimeout(function(){n.input.attr("aria-busy",!0);n._loading.removeClass(b)},100))},_placeholder:function(n){var i=this,r=i.input,u=g();n===t?(n=!1,r[0]!==u&&(n=!i._dataItems[0]),i.wrapper.removeClass(l)):i.wrapper.addClass(l);i._prev="";r.toggleClass("k-readonly",n).val(n?i.options.placeholder:"");r[0]===u&&f.selectText(r[0],0,0);i._scale()},_scale:function(){var n=this,r=n.wrapper,u=r.width(),t=n._span.text(n.input.val()),i;r.is(":visible")?i=t.width()+25:(t.appendTo(document.documentElement),u=i=t.width()+25,t.appendTo(r));n.input.width(i>u?u:i)},_option:function(n,r){var f="<option",e=this._text(n),u=this._value(n);return u!==t&&(u+="",u.indexOf('"')!==-1&&(u=u.replace(kt,""")),f+=' value="'+u+'"'),r&&(f+=' selected="selected"'),f+=">",e!==t&&(f+=i.htmlEncode(e)),f+"<\/option>"},_render:function(n){for(var t=this,r=n.length,c=t.itemTemplate,e=t._dataItems.slice(0),o=0,i=0,s="",h="",u,f;i<r;i++)u=n[i],f=t._selected(e,u),h+=c(u,i,f),s+=t._option(u,f),f||(o+=1);if(r=e.length,r)for(i=0;i<r;i++)s+=t._option(e[i],!0);return t.ul[0].innerHTML=h,t.element.html(s),t._visibleItems=o,o},_selected:function(n,i){var o=this,s=o._text,h=o._value,f=h(i),c=n.length,e=!1,r,u=0;for(f===t&&(f=s(i));u<c;u++)if(i=n[u],r=h(i),r===t&&(r=s(i)),r!==t&&r===f){e=!0;break}return e&&n.splice(u,1),e},_search:function(){var n=this;n._typing=setTimeout(function(){var t=n.input.val();n._prev!==t&&(n._prev=t,n.search(t))},n.options.delay)},_allowSelection:function(){var n=this.options.maxSelectedItems;return n===null||n>this._values.length},_select:function(n){var t=this,u=t._values,r,i;t._allowSelection()&&(isNaN(n)?i=n.hide().data("idx"):(i=n,t.ul[0].children[i].style.display="none"),t.element[0].children[i].selected=!0,r=t.dataSource.view()[i],t.tagList.append(t.tagTemplate(r)),t._dataItems.push(r),u.push(t._dataValue(r)),t._visibleItems-=1,t.currentTag(null),t._placeholder(),t._height(t._visibleItems),t._state===p&&(t._state=y))},_unselect:function(t){var i=this,r=t.index(),o,u,f,e,s;if(t.remove(),i.currentTag(null),i._values.splice(r,1),o=i._dataItems.splice(r,1)[0],u=i._dataValue(o),r=i._index(u),r!==-1)n(i.ul[0].children[r]).show(),i.element[0].children[r].selected=!1,i._visibleItems+=1,i._height(i._visibleItems);else for(r=i.dataSource.view().length,f=i.element[0].children,s=f.length;r<s;r++)if(e=f[r],e.value==u){e.selected=!1;break}i._placeholder()},_template:function(){var t=this,n=t.options,r=n.itemTemplate,u=n.tagTemplate,e=n.dataSource,f;t.element[0].length&&!e&&(n.dataTextField=n.dataTextField||"text",n.dataValueField=n.dataValueField||"value");f=i.template("#:"+i.expr(n.dataTextField,"data")+"#",{useWithBlock:!1});r=r?i.template(r):f;u=u?i.template(u):f;t.itemTemplate=function(n,t,i){return'<li tabindex="-1" role="option" data-idx="'+t+'" unselectable="on" class="k-item"'+(i?yt:"")+">"+r(n)+"<\/li>"};t.tagTemplate=function(n){return'<li class="k-button" unselectable="on"><span unselectable="on">'+u(n)+'<\/span><span unselectable="on" class="k-icon k-delete">delete<\/span><\/li>'}},_input:function(){var t=this,r=t.element[0].accessKey,i=t._innerWrapper.children("input.k-input");i[0]||(i=n('<input class="k-input" style="width: 25px" />').appendTo(t._innerWrapper));t.element.removeAttr("accesskey");t._focused=t.input=i.attr({accesskey:r,role:"listbox","aria-expanded":!1})},_tagList:function(){var t=this,i=t._innerWrapper.children("ul");i[0]||(i=n('<ul role="listbox" unselectable="on" class="k-reset"/>').appendTo(t._innerWrapper));t.tagList=i},_loader:function(){this._loading=n('<span class="k-icon k-loading '+b+'"><\/span>').insertAfter(this.input)},_textContainer:function(){var t=i.getComputedStyles(this.input[0],dt);t.position="absolute";t.visibility="hidden";t.top=-3333;t.left=-3333;this._span=n("<span/>").css(t).appendTo(this.wrapper)},_wrapper:function(){var r=this,t=r.element,i=t.parent("span.k-multiselect");i[0]||(i=t.wrap('<div class="k-widget k-multiselect k-header" unselectable="on" />').parent(),i[0].style.cssText=t[0].style.cssText,n('<div class="k-multiselect-wrap k-floatwrap" unselectable="on" />').insertBefore(t));r.wrapper=i.addClass(t[0].className).css("display","");r._innerWrapper=n(i[0].firstChild)}});d.plugin(gt)}(window.kendo.jQuery);kendo_module({id:"columnmenu",name:"Column Menu",category:"framework",depends:["popup","filtermenu","menu"],advanced:!0}),function(n,t){function g(t){return n.trim(t).replace(/ /gi,"")}var i=window.kendo,a=i.ui,e=n.proxy,d=n.extend,s=n.grep,v=n.map,h=n.inArray,u="k-state-selected",c="asc",y="desc",p="change",w="init",o="select",l="kendoPopup",b="kendoFilterMenu",k="kendoMenu",r=".kendoColumnMenu",f=a.Widget,nt=f.extend({init:function(t,u){var o=this,s;f.fn.init.call(o,t,u);t=o.element;u=o.options;o.owner=u.owner;o.dataSource=u.dataSource;o.field=t.attr(i.attr("field"));s=t.find(".k-header-column-menu");s[0]||(s=t.addClass("k-with-icon").prepend('<a class="k-header-column-menu" href="#"><span class="k-icon k-i-arrowhead-s"/><\/a>').find(".k-header-column-menu"));o.link=s.attr("tabindex",-1).on("click"+r,e(o._click,o));o.wrapper=n('<div class="k-column-menu"/>')},_init:function(){var n=this;n.pane=n.options.pane;n.pane&&(n._isMobile=!0);n._isMobile?n._createMobileMenu():n._createMenu();n._sort();n._columns();n._filter();n.trigger(w,{field:n.field,container:n.wrapper})},events:[w],options:{name:"ColumnMenu",messages:{sortAscending:"Sort Ascending",sortDescending:"Sort Descending",filter:"Filter",columns:"Columns",done:"Done",settings:"Column Settings"},filter:"",columns:!0,sortable:!0,filterable:!0,animations:{left:"slide"}},_createMenu:function(){var n=this,t=n.options;n.wrapper.html(i.template(tt)({ns:i.ns,messages:t.messages,sortable:t.sortable,filterable:t.filterable,columns:n._ownerColumns(),showColumns:t.columns}));n.popup=n.wrapper[l]({anchor:n.link,open:e(n._open,n),activate:e(n._activate,n),close:n.options.closeCallback}).data(l);n.menu=n.wrapper.children()[k]({orientation:"vertical",closeOnClick:!1}).data(k)},_createMobileMenu:function(){var n=this,t=n.options,r=i.template(it)({ns:i.ns,field:n.field,messages:t.messages,sortable:t.sortable,filterable:t.filterable,columns:n._ownerColumns(),showColumns:t.columns});n.view=n.pane.append(r);n.wrapper=n.view.element.find(".k-column-menu");n.menu=new rt(n.wrapper.children(),{pane:n.pane});n.view.element.on("click",".k-done",function(t){n.close();t.preventDefault()})},destroy:function(){var n=this;f.fn.destroy.call(n);n.filterMenu&&n.filterMenu.destroy();n._refreshHandler&&n.dataSource.unbind(p,n._refreshHandler);n.options.columns&&n.owner&&(n.owner.unbind("columnShow",n._updateColumnsMenuHandler),n.owner.unbind("columnHide",n._updateColumnsMenuHandler));n.menu&&(n.menu.element.off(r),n.menu.destroy());n.wrapper.off(r);n.popup&&n.popup.destroy();n.view&&n.view.purge();n.link.off(r)},close:function(){this.menu.close();this.popup&&(this.popup.close(),this.popup.element.off("keydown"+r))},_click:function(n){n.preventDefault();n.stopPropagation();var t=this.options;t.filter&&this.element.is(!t.filter)||(this.popup||this.pane||this._init(),this._isMobile?this.pane.navigate(this.view,this.options.animations.left):this.popup.toggle())},_open:function(){var t=this;n(".k-column-menu").not(t.wrapper).each(function(){n(this).data(l).close()});t.popup.element.on("keydown"+r,function(n){n.keyCode==i.keys.ESC&&t.close()})},_activate:function(){this.menu.element.focus()},_ownerColumns:function(){var n=this.owner.columns,t=s(n,function(n){var t=!0,i=g(n.title||"");return n.menu!==!1&&(n.field||i.length)||(t=!1),t});return v(t,function(t){return{originalField:t.field,field:t.field||t.title,title:t.title||t.field,hidden:t.hidden,index:h(t,n)}})},_sort:function(){var t=this;t.options.sortable&&(t.refresh(),t._refreshHandler=e(t.refresh,t),t.dataSource.bind(p,t._refreshHandler),t.menu.bind(o,function(i){var f=n(i.item),r;(f.hasClass("k-sort-asc")?r=c:f.hasClass("k-sort-desc")&&(r=y),r)&&(f.parent().find(".k-sort-"+(r==c?y:c)).removeClass(u),t._sortDataSource(f,r),t.close())}))},_sortDataSource:function(n,i){var f=this,o=f.options.sortable,s=f.dataSource,e,h,r=s.sort()||[];if(n.hasClass(u)&&o&&o.allowUnsort!==!1?(n.removeClass(u),i=t):n.addClass(u),o===!0||o.mode==="single")r=[{field:f.field,dir:i}];else{for(e=0,h=r.length;e<h;e++)if(r[e].field===f.field){r.splice(e,1);break}r.push({field:f.field,dir:i})}s.sort(r)},_columns:function(){var t=this;t.options.columns&&(t._updateColumnsMenu(),t._updateColumnsMenuHandler=e(t._updateColumnsMenu,t),t.owner.bind(["columnHide","columnShow"],t._updateColumnsMenuHandler),t.menu.bind(o,function(r){var c=n(r.item),u,f,e,l=t.owner.columns,o;(t._isMobile&&r.preventDefault(),c.parent().closest("li.k-columns-item")[0])&&((u=c.find(":checkbox"),u.attr("disabled"))||(o=u.attr(i.attr("field")),e=s(l,function(n){return n.field==o||n.title==o})[0],f=h(e,l),e.hidden===!0?t.owner.showColumn(f):t.owner.hideColumn(f)))}))},_updateColumnsMenu:function(){var r=i.attr("field"),t=s(this._ownerColumns(),function(n){return!n.hidden}),u=s(t,function(n){return n.originalField}).length;t=v(t,function(n){return n.field});this.wrapper.find(".k-columns-item input["+r+"]").prop("checked",!1).filter(function(){return h(n(this).attr(r),t)>-1}).prop("checked",!0).prop("disabled",u==1)},_filter:function(){var t=this,i=t.options;i.filterable!==!1&&(t.filterMenu=t.wrapper.find(".k-filterable")[b](d(!0,{},{appendToElement:!0,dataSource:i.dataSource,values:i.values,field:t.field},i.filterable)).data(b),t._isMobile&&t.menu.bind(o,function(i){var r=n(i.item);r.hasClass("k-filter-item")&&t.pane.navigate(t.filterMenu.view,t.options.animations.left)}))},refresh:function(){var n=this,r=n.options.dataSource.sort()||[],i,e=n.field,t,f;for(n.wrapper.find(".k-sort-asc, .k-sort-desc").removeClass(u),t=0,f=r.length;t<f;t++)i=r[t],e==i.field&&n.wrapper.find(".k-sort-"+i.dir).addClass(u)}}),tt='<ul>#if(sortable){#<li class="k-item k-sort-asc"><span class="k-link"><span class="k-sprite k-i-sort-asc"><\/span>${messages.sortAscending}<\/span><\/li><li class="k-item k-sort-desc"><span class="k-link"><span class="k-sprite k-i-sort-desc"><\/span>${messages.sortDescending}<\/span><\/li>#if(showColumns || filterable){#<li class="k-separator"><\/li>#}##}##if(showColumns){#<li class="k-item k-columns-item"><span class="k-link"><span class="k-sprite k-i-columns"><\/span>${messages.columns}<\/span><ul>#for (var idx = 0; idx < columns.length; idx++) {#<li><input type="checkbox" data-#=ns#field="#=columns[idx].field.replace(/"/g,"&\\#34;")#" data-#=ns#index="#=columns[idx].index#"/>#=columns[idx].title#<\/li>#}#<\/ul><\/li>#if(filterable){#<li class="k-separator"><\/li>#}##}##if(filterable){#<li class="k-item k-filter-item"><span class="k-link"><span class="k-sprite k-filter"><\/span>${messages.filter}<\/span><ul><li><div class="k-filterable"><\/div><\/li><\/ul><\/li>#}#<\/ul>',it='<div data-#=ns#role="view" data-#=ns#init-widgets="false" class="k-grid-column-menu"><div data-#=ns#role="header" class="k-header">${messages.settings}<button class="k-button k-done">#=messages.done#<\/button><\/div><div class="k-column-menu k-mobile-list"><ul><li><span class="k-link">${field}<\/span><ul>#if(sortable){#<li class="k-item k-sort-asc"><span class="k-link"><span class="k-sprite k-i-sort-asc"><\/span>${messages.sortAscending}<\/span><\/li><li class="k-item k-sort-desc"><span class="k-link"><span class="k-sprite k-i-sort-desc"><\/span>${messages.sortDescending}<\/span><\/li>#}##if(filterable){#<li class="k-item k-filter-item"><span class="k-link k-filterable"><span class="k-sprite k-filter"><\/span>${messages.filter}<\/span><\/li>#}#<\/ul><\/li>#if(showColumns){#<li class="k-columns-item"><span class="k-link">${messages.columns}<\/span><ul>#for (var idx = 0; idx < columns.length; idx++) {#<li class="k-item"><label class="k-label"><input type="checkbox" class="k-check" data-#=ns#field="#=columns[idx].field.replace(/"/g,"&\\#34;")#" data-#=ns#index="#=columns[idx].index#"/>#=columns[idx].title#<\/label><\/li>#}#<\/ul><\/li>#}#<\/ul><\/div><\/div>',rt=f.extend({init:function(n,t){f.fn.init.call(this,n,t);this.element.on("click"+r,"li:not(.k-separator)","_click")},events:[o],_click:function(n){this.trigger(o,{item:n.currentTarget})&&n.preventDefault()},close:function(){this.options.pane.navigate("")},destroy:function(){f.fn.destroy.call(this);this.element.off(r)}});a.plugin(nt)}(window.kendo.jQuery);kendo_module({id:"grid",name:"Grid",category:"web",description:"The Grid widget displays tabular data and offers rich support for interacting with data,including paging, sorting, grouping, and selection.",depends:["data"],features:[{id:"grid-editing",name:"Editing",description:"Support for record editing",depends:["editable","window"]},{id:"grid-filtering",name:"Filtering",description:"Support for record filtering",depends:["filtermenu"]},{id:"grid-columnmenu",name:"Column menu",description:"Support for header column menu",depends:["columnmenu"]},{id:"grid-grouping",name:"Grouping",description:"Support for grid grouping",depends:["groupable"]},{id:"grid-paging",name:"Paging",description:"Suppot for grid paging",depends:["pager"]},{id:"grid-selection",name:"Selection",description:"Support for row selection",depends:["selectable"]},{id:"grid-sorting",name:"Sorting",description:"Support for grid sorting",depends:["sortable"]},{id:"grid-column-reorder",name:"Column reordering",description:"Support for column reordering",depends:["reorderable"]},{id:"grid-column-resize",name:"Column resizing",description:"Support for column resizing",depends:["resizable"]},{id:"grid-mobile",name:"Grid adaptive rendering",description:"Support for adaptive rendering",depends:["mobile.actionsheet","mobile.pane"]}]}),function(n,t){function pt(n){return new Array(n+1).join('<td class="k-group-cell"> <\/td>')}function lt(n){var t,i=" ";if(n){if(typeof n===c)return n;for(t in n)i+=t+'="'+n[t]+'"'}return i}function pr(t){var i=0;return n("> .k-grouping-header, > .k-grid-toolbar",t).each(function(){i+=this.offsetHeight}),i}function ui(t,i){n("th, th .k-grid-filter, th .k-link",t).add(document.body).css("cursor",i)}function fi(n){var t,i,r={},u={};if(!at(n))for(k(n)||(n=[n]),t=0,i=n.length;t<i;t++)r[n[t].aggregate]=0,u[n[t].field]=r;return u}function et(n,t,i){var r=n.eq(t),u=n.eq(i);r[t>i?"insertBefore":"insertAfter"](u)}function wr(n,t,i){var e,c,u,s;for(i=k(i)?i:[i],e=0,c=i.length;e<c;e++)if(u=i[e],o(u)&&u.click){s=u.name||u.text;t.on(h+r,"a.k-grid-"+(s||"").replace(/\s/g,""),{commandName:s},f(u.click,n))}}function tt(n){return b(n,function(n){return!n.hidden})}function ot(n){n=n||{};var t=n.style;return t?(t=t.replace(/((.*)?display)(.*)?:([^;]*)/i,"$1:none"),t===n.style&&(t=t.replace(/(.*)?/i,"display:none;$1"))):t="display:none",u({},n,{style:t})}function ei(n){n=n||{};var t=n.style;return t&&(n.style=t.replace(/(display\s*:\s*none\s*;?)*/ig,"")),n}function ir(t,r,u,f){var o=t.find(">colgroup"),s,h=bt(r,function(n){return(s=n.width,s&&parseInt(s,10)!==0)?i.format('<col style="width:{0}"/>',typeof s===c?s:s+"px"):"<col />"});(u||o.find(".k-hierarchy-col").length)&&h.splice(0,0,'<col class="k-hierarchy-col" />');o.length&&o.remove();o=n(new Array(f+1).join('<col class="k-group-col">')+h.join(""));o.is("colgroup")||(o=n("<colgroup/>").append(o));t.prepend(o);e.msie&&e.version==8&&(t.css("display","inline-table"),window.setTimeout(function(){t.css("display","")},1))}function rr(n){for(var r={},i,t=0,u=n.length;t<u;t++)i=n[t],r[i.value]=i.text;return r}function br(n,t,r){var f=r&&r.length&&o(r[0])&&"value"in r[0],u=f?rr(r)[n]:n;return u=u!=null?u:"",t?i.format(t,u):u}function st(n,t,i){for(var u=0,f,r=n[u];r;){if(f=i?!0:r.style.display!=="none",f&&!ar.test(r.className)&&--t<0){r.style.display=i?"":"none";break}r=n[++u]}}function oi(n,t){var r,u,i;if(typeof n===c&&n===t||o(n)&&n.name===t)return n;if(k(n))for(r=0,u=n.length;r<u;r++)if(i=n[r],typeof i===c&&i===t||i.name===t)return i;return null}function l(t,i){var u=e.msie,r,f,o;if(i===!0){if(t=n(t),r=u&&t.parent().is(".k-grid-content,.k-grid-header-wrap"),r&&(f=t.parent().scrollTop(),o=t.parent().scrollLeft()),u)try{t[0].setActive()}catch(s){t[0].focus()}else t[0].focus();r&&(t.parent().scrollTop(f),t.parent().scrollLeft(o))}else n(t).one("focusin",function(n){n.preventDefault()}).focus()}function dr(t){var r=n(t.currentTarget),f=r.is("th"),u=r.closest("table")[0];i.support.touch||(u===this.table[0]||u===this.thead.parent()[0])&&(this.current(r),(f||!n(t.target).is(":button,a,:input,a>.k-icon,textarea,span.k-icon,span.k-link,.k-input,.k-multiselect-wrap"))&&setTimeout(function(){yr&&n(i._activeElement()).hasClass("k-widget")||l(u,!0)}),f&&t.preventDefault())}var i=window.kendo,it=i.ui,ur=i.data.DataSource,fr=it.Groupable,er=i.support.tbodyInnerHtml,rt=i._activeElement,w=it.Widget,s=i.keys,o=n.isPlainObject,u=n.extend,bt=n.map,b=n.grep,k=n.isArray,d=n.inArray,f=n.proxy,or=i.isFunction,at=n.isEmptyObject,y=Math,kt="progress",dt="error",g=":not(.k-group-cell):not(.k-hierarchy-cell):visible",sr="tbody>tr:not(.k-grouping-row):not(.k-detail-row):not(.k-group-footer) > td:not(.k-group-cell):not(.k-hierarchy-cell)",ut="tr:not(.k-footer-template):visible",v=":not(.k-group-cell):not(.k-hierarchy-cell):visible",ft=ut+":first>"+v+":first",vt="th.k-header:not(.k-group-cell,.k-hierarchy-cell)",r=".kendoGrid",yt="edit",gt="save",si="remove",ni="detailInit",hi="filterMenuInit",ci="columnMenuInit",a="change",li="columnHide",ai="columnShow",vi="saveChanges",yi="dataBound",pi="detailExpand",wi="detailCollapse",ht="k-state-focused",bi="k-state-selected",ki="columnResize",di="columnReorder",h="click",ti="height",nt="tabIndex",ct="function",c="string",gi="Are you sure you want to delete this record?",hr="Delete",cr="Cancel",lr=/(\}|\#)/ig,ii=/#/ig,nr="[\\x20\\t\\r\\n\\f]",ar=new RegExp("(^|"+nr+")(k-group-cell|k-hierarchy-cell)("+nr+"|$)"),vr='<a class="k-button k-button-icontext #=className#" #=attr# href="\\#"><span class="#=iconClass# #=imageClass#"><\/span>#=text#<\/a>',p=!1,e=i.support.browser,ri=e.msie&&e.version==7,yr=e.msie&&e.version==8,tr=w.extend({init:function(n,t){var i=this;w.fn.init.call(i,n,t);i._refreshHandler=f(i.refresh,i);i.setDataSource(t.dataSource);i.wrap()},setDataSource:function(n){var t=this;t.dataSource&&t.dataSource.unbind(a,t._refreshHandler);t.dataSource=n;t.dataSource.bind(a,t._refreshHandler)},options:{name:"VirtualScrollable",itemHeight:n.noop},destroy:function(){var n=this;w.fn.destroy.call(n);n.dataSource.unbind(a,n._refreshHandler);n.wrapper.add(n.verticalScrollbar).off(r);n.drag&&n.drag.destroy()},wrap:function(){var t=this,o=i.support.scrollbar()+1,u=t.element,e;u.css({width:"auto",overflow:"hidden"}).css(p?"padding-left":"padding-right",o);t.content=u.children().first();e=t.wrapper=t.content.wrap('<div class="k-virtual-scrollable-wrap"/>').parent().bind("DOMMouseScroll"+r+" mousewheel"+r,f(t._wheelScroll,t));i.support.kineticScrollNeeded&&(t.drag=new i.UserEvents(t.wrapper,{global:!0,move:function(n){t.verticalScrollbar.scrollTop(t.verticalScrollbar.scrollTop()-n.y.delta);e.scrollLeft(e.scrollLeft()-n.x.delta);n.preventDefault()}}));t.verticalScrollbar=n('<div class="k-scrollbar k-scrollbar-vertical" />').css({width:o}).appendTo(u).bind("scroll"+r,f(t._scroll,t))},_wheelScroll:function(n){var u=this,e=u.verticalScrollbar.scrollTop(),i=n.originalEvent,f=i.wheelDeltaY,r;i.wheelDelta?(f===t||f)&&(r=i.wheelDelta):i.detail&&i.axis===i.VERTICAL_AXIS&&(r=-i.detail*10);r&&(n.preventDefault(),u.verticalScrollbar.scrollTop(e+-r))},_scroll:function(n){var t=this,i=n.currentTarget.scrollTop,f=t.dataSource,r=t.itemHeight,e=f.skip()||0,o=t._rangeStart||e,s=t.element.innerHeight(),h=!!(t._scrollbarTop&&t._scrollbarTop>i),u=y.max(y.floor(i/r),0),c=y.max(u+y.floor(s/r),0);t._scrollTop=i-o*r;t._scrollbarTop=i;t._fetch(u,c,h)||(t.wrapper[0].scrollTop=t._scrollTop)},_fetch:function(n,t,i){var u=this,e=u.dataSource,h=u.itemHeight,r=e.take(),f=u._rangeStart||e.skip()||0,o=y.floor(n/r)*r,s=!1,c=.33;return n<f?(s=!0,f=y.max(0,t-r),u._scrollTop=(n-f)*h,u._page(f,r)):t>=f+r&&!i?(s=!0,f=n,u._scrollTop=h,u._page(f,r)):u._fetching||(n<o+r-r*c&&n>r&&e.prefetch(o-r,r),t>o+r*c&&e.prefetch(o+r,r)),s},_page:function(n,t){var r=this,u=r.dataSource;clearTimeout(r._timeout);r._fetching=!0;r._rangeStart=n;u.inRange(n,t)?u.range(n,t):(i.ui.progress(r.wrapper.parent(),!0),r._timeout=setTimeout(function(){u.range(n,t)},100))},refresh:function(){var n=this,u="",t=25e4,o=n.dataSource,c=n._rangeStart,l=i.support.kineticScrollNeeded?0:i.support.scrollbar(),f=n.wrapper[0],r,e,s,h;for(i.ui.progress(n.wrapper.parent(),!1),clearTimeout(n._timeout),s=n.itemHeight=n.options.itemHeight()||0,h=f.scrollWidth>f.offsetWidth?l:0,r=o.total()*s+h,e=0;e<y.floor(r/t);e++)u+='<div style="width:1px;height:'+t+'px"><\/div>';r%t&&(u+='<div style="width:1px;height:'+r%t+'px"><\/div>');n.verticalScrollbar.html(u);f.scrollTop=n._scrollTop;n.drag&&n.drag.cancel();c&&!n._fetching&&(n._rangeStart=o.skip());n._fetching=!1}}),wt={create:{text:"Add new record",imageClass:"k-add",className:"k-grid-add",iconClass:"k-icon"},cancel:{text:"Cancel changes",imageClass:"k-cancel",className:"k-grid-cancel-changes",iconClass:"k-icon"},save:{text:"Save changes",imageClass:"k-update",className:"k-grid-save-changes",iconClass:"k-icon"},destroy:{text:"Delete",imageClass:"k-delete",className:"k-grid-delete",iconClass:"k-icon"},edit:{text:"Edit",imageClass:"k-edit",className:"k-grid-edit",iconClass:"k-icon"},update:{text:"Update",imageClass:"k-update",className:"k-grid-update",iconClass:"k-icon"},canceledit:{text:"Cancel",imageClass:"k-cancel",className:"k-grid-cancel",iconClass:"k-icon"}},kr=w.extend({init:function(n,t){var r=this;t=k(t)?{dataSource:t}:t;w.fn.init.call(r,n,t);p=i.support.isRtl(n);r._element();r._aria();r._columns(r.options.columns);r._dataSource();r._tbody();r._pageable();r._thead();r._groupable();r._toolbar();r._setContentHeight();r._templates();r._navigatable();r._selectable();r._details();r._editable();r._attachCustomCommandsEvent();r.options.autoBind?r.dataSource.fetch():r._footer();i.notify(r)},events:[a,"dataBinding","cancel",yi,pi,wi,ni,hi,ci,yt,gt,si,vi,ki,di,ai,li],setDataSource:function(n){var t=this;t.options.dataSource=n;t._dataSource();t._pageable();t.options.groupable&&t._groupable();t._thead();t.virtualScrollable&&t.virtualScrollable.setDataSource(t.options.dataSource);t.options.autoBind&&n.fetch()},options:{name:"Grid",columns:[],toolbar:null,autoBind:!0,filterable:!1,scrollable:!0,sortable:!1,selectable:!1,navigatable:!1,pageable:!1,editable:!1,groupable:!1,rowTemplate:"",altRowTemplate:"",dataSource:{},height:null,resizable:!1,reorderable:!1,columnMenu:!1,detailTemplate:null,columnResizeHandleWidth:3,mobile:""},destroy:function(){var t=this,u;w.fn.destroy.call(t);t.pager&&t.pager.destroy();t.groupable&&t.groupable.destroy();t.options.reorderable&&t.wrapper.data("kendoReorderable").destroy();t.selectable&&t.selectable.destroy();t.resizable&&(t.resizable.destroy(),t._resizeUserEvents&&(t._resizeHandleDocumentClickHandler&&n(document).off("click",t._resizeHandleDocumentClickHandler),t._resizeUserEvents.destroy()));t.virtualScrollable&&t.virtualScrollable.destroy();t._destroyColumnAttachments();t._destroyEditable();t.dataSource.unbind(a,t._refreshHandler).unbind(kt,t._progressHandler).unbind(dt,t._errorHandler);u=t.element.add(t.wrapper).add(t.table).add(t.thead).add(t.wrapper.find(">.k-grid-toolbar"));t.content&&(u=u.add(t.content).add(t.content.find(">.k-virtual-scrollable-wrap")));t.pane&&t.pane.destroy();u.off(r);i.destroy(t.wrapper)},setOptions:function(n){var t=this;w.fn.setOptions.call(this,n);t._templates()},items:function(){return this.tbody.children(":not(.k-grouping-row,.k-detail-row,.k-group-footer)")},_destroyColumnAttachments:function(){var t=this;t.resizeHandle=null;t.thead.find("th").each(function(){var t=n(this),i=t.data("kendoFilterMenu"),r=t.data("kendoSortable"),u=t.data("kendoColumnMenu");i&&i.destroy();r&&r.destroy();u&&u.destroy()})},_attachCustomCommandsEvent:function(){for(var t=this,r=t.columns||[],i,n=0,u=r.length;n<u;n++)i=r[n].command,i&&wr(t,t.wrapper,i)},_aria:function(){var n=this.element.attr("id")||"aria";n&&(this._cellId=n+"_active_cell")},_element:function(){var t=this,i=t.element;i.is("table")||(i=t.options.scrollable?t.element.find("> .k-grid-content > table"):t.element.children("table"),i.length||(i=n("<table />").appendTo(t.element)));ri&&i.attr("cellspacing",0);t.table=i.attr("role",t._hasDetails()?"treegrid":"grid");t._wrapper()},_createResizeHandle:function(t,i){var u=this,s=u.options.columnResizeHandleWidth,h=u.options.scrollable,f=u.resizeHandle,o;if(f||(f=u.resizeHandle=n('<div class="k-resize-handle"><div class="k-resize-handle-inner"><\/div><\/div>'),t.append(f)),p){var r=i.closest(".k-grid-header-wrap"),c=e.msie?r.scrollLeft():0,l=e.webkit?r[0].scrollWidth-r[0].offsetWidth-r.scrollLeft():0,a=e.mozilla?r[0].scrollWidth-r[0].offsetWidth-(r[0].scrollWidth-r[0].offsetWidth-r.scrollLeft()):0;o=i.position().left-l+a-c}else o=i[0].offsetWidth,i.prevAll(":visible").each(function(){o+=this.offsetWidth});f.css({top:h?0:pr(u.wrapper),left:o-s,height:i.outerHeight(),width:s*3}).data("th",i).show()},_positionColumnResizeHandle:function(t){var i=this,u=i.resizeHandle,f=i.options.columnResizeHandleWidth;i.thead.on("mousemove"+r,"th:not(.k-group-cell,.k-hierarchy-cell)",function(r){var e=n(this),o=r.clientX,s=n(window).scrollLeft(),h=e.offset().left+(p?0:this.offsetWidth);o+s>h-f&&o+s<h+f?i._createResizeHandle(t,e):u?u.hide():ui(i.wrapper,"")})},_resizeHandleDocumentClick:function(t){n(t.target).closest(".k-column-active").length||(n(document).off(t),this._hideResizeHandle())},_hideResizeHandle:function(){this.resizeHandle&&(this.resizeHandle.data("th").removeClass("k-column-active"),this.resizeHandle.hide())},_positionColumnResizeHandleTouch:function(t){var r=this;r._resizeUserEvents=new i.UserEvents(r.thead,{filter:"th:not(.k-group-cell,.k-hierarchy-cell)",threshold:10,hold:function(i){var u=n(i.target);i.preventDefault();u.addClass("k-column-active");r._createResizeHandle(t,u);r._resizeHandleDocumentClickHandler||(r._resizeHandleDocumentClickHandler=f(r._resizeHandleDocumentClick,r));n(document).on("click",r._resizeHandleDocumentClickHandler)}})},_resizable:function(){var t=this,r=t.options,u,e,f,o,h=this._isMobile,s,i;r.resizable&&(u=r.scrollable?t.wrapper.find(".k-grid-header-wrap:first"):t.wrapper,h?t._positionColumnResizeHandleTouch(u):t._positionColumnResizeHandle(u),t.resizable=new it.Resizable(u,{handle:".k-resize-handle",hint:function(i){return n('<div class="k-grid-resize-indicator" />').css({height:i.data("th").outerHeight()+t.tbody.attr("clientHeight")})},start:function(u){i=n(u.currentTarget).data("th");h&&t._hideResizeHandle();var c=n.inArray(i[0],i.parent().children(":visible")),l=t.tbody.parent(),a=t.footer||n();ui(t.wrapper,"col-resize");s=r.scrollable?t.thead.parent().find("col:eq("+c+")").add(l.children("colgroup").find("col:eq("+c+")")).add(a.find("colgroup").find("col:eq("+c+")")):l.children("colgroup").find("col:eq("+c+")");e=u.x.location;f=i.outerWidth();o=t.tbody.outerWidth()},resize:function(i){var u=p?-1:1,h=f+i.x.location*u-e*u,c=t.footer||n();h>10&&(s.css("width",h),r.scrollable&&o&&(t._footerWidth=o+i.x.location*u-e*u,t.tbody.parent().add(t.thead.parent()).add(c.find("table")).css("width",t._footerWidth)))},resizeend:function(){var n=i.outerWidth(),r;ui(t.wrapper,"");f!=n&&(r=t.columns[i.parent().find("th:not(.k-group-cell,.k-hierarchy-cell)").index(i)],r.width=n,t.trigger(ki,{column:r,oldWidth:f,newWidth:n}));t._hideResizeHandle();i=null}}))},_draggable:function(){var t=this;t.options.reorderable&&(t._draggableInstance&&t._draggableInstance.destroy(),t._draggableInstance=t.wrapper.kendoDraggable({group:i.guid(),filter:t.content?".k-grid-header:first "+vt:"table:first>.k-grid-header "+vt,drag:function(){t._hideResizeHandle()},hint:function(t){return n('<div class="k-header k-drag-clue" />').css({width:t.width(),paddingLeft:t.css("paddingLeft"),paddingRight:t.css("paddingRight"),lineHeight:t.height()+"px",paddingTop:t.css("paddingTop"),paddingBottom:t.css("paddingBottom")}).html(t.attr(i.attr("title"))||t.attr(i.attr("field"))||t.text()).prepend('<span class="k-icon k-drag-status k-denied" />')}}).data("kendoDraggable"))},_reorderable:function(){var n=this;n.options.reorderable&&n.wrapper.kendoReorderable({draggable:n._draggableInstance,change:function(t){var r=d(n.columns[t.newIndex],n.columns),i=n.columns[t.oldIndex];n.trigger(di,{newIndex:r,oldIndex:d(i,n.columns),column:i});n.reorderColumn(r,i)}})},reorderColumn:function(n,t){var i=this,r=d(t,i.columns),e=d(t,tt(i.columns)),o=d(i.columns[n],tt(i.columns)),s,u,h,f=i.footer||i.wrapper.find(".k-grid-footer");if(r!==n)for(i._hideResizeHandle(),i.columns.splice(r,1),i.columns.splice(n,0,t),i._templates(),et(i.thead.prev().find("col:not(.k-group-col,.k-hierarchy-col)"),e,o),i.options.scrollable&&et(i.tbody.prev().find("col:not(.k-group-col,.k-hierarchy-col)"),e,o),et(i.thead.find(".k-header:not(.k-group-cell,.k-hierarchy-cell)"),r,n),f&&f.length&&(et(f.find(".k-grid-footer-wrap>table>colgroup>col:not(.k-group-col,.k-hierarchy-col)"),e,o),et(f.find(".k-footer-template>td:not(.k-group-cell,.k-hierarchy-cell)"),r,n)),s=i.tbody.children(":not(.k-grouping-row,.k-detail-row)"),u=0,h=s.length;u<h;u+=1)et(s.eq(u).find(">td:not(.k-group-cell,.k-hierarchy-cell)"),r,n)},cellIndex:function(t){return n(t).parent().children("td:not(.k-group-cell,.k-hierarchy-cell)").index(t)},_modelForContainer:function(t){t=n(t);t.is("tr")||this._editMode()==="popup"||(t=t.closest("tr"));var r=t.attr(i.attr("uid"));return this.dataSource.getByUid(r)},_editable:function(){var t=this,f=t.selectable&&t.selectable.options.multiple,i=t.options.editable,e=function(){var i=rt(),r=t._editContainer;!r||n.contains(r[0],i)||r[0]===i||n(i).closest(".k-animation-container").length||t.editable.end()&&t.closeCell()},u;if(i){if(u=t._editMode(),u==="incell"){if(i.update!==!1)t.wrapper.on(h+r,"tr:not(.k-grouping-row) > td",function(i){var r=n(this);r.hasClass("k-hierarchy-cell")||r.hasClass("k-detail-cell")||r.hasClass("k-group-cell")||r.hasClass("k-edit-cell")||r.has("a.k-grid-delete").length||r.has("button.k-grid-delete").length||r.closest("tbody")[0]!==t.tbody[0]||n(i.target).is(":input")||(t.editable?t.editable.end()&&(f&&n(rt()).blur(),t.closeCell(),t.editCell(r)):t.editCell(r))}).on("focusin"+r,function(){clearTimeout(t.timer);t.timer=null}).on("focusout"+r,function(){t.timer=setTimeout(e,1)})}else if(i.update!==!1)t.wrapper.on(h+r,"tbody>tr:not(.k-detail-row,.k-grouping-row):visible a.k-grid-edit",function(i){i.preventDefault();t.editRow(n(this).closest("tr"))});if(i.destroy!==!1)t.wrapper.on(h+r,"tbody>tr:not(.k-detail-row,.k-grouping-row):visible .k-grid-delete",function(i){i.preventDefault();i.stopPropagation();t.removeRow(n(this).closest("tr"))});else t.wrapper.on(h+r,"tbody>tr:not(.k-detail-row,.k-grouping-row):visible button.k-grid-delete",function(n){n.stopPropagation();t._confirmation()||n.preventDefault()})}},editCell:function(t){t=n(t);var i=this,r=i.columns[i.cellIndex(t)],u=i._modelForContainer(t);u&&(!u.editable||u.editable(r.field))&&!r.command&&r.field&&(i._attachModelChange(u),i._editContainer=t,i.editable=t.addClass("k-edit-cell").kendoEditable({fields:{field:r.field,format:r.format,editor:r.editor,values:r.values},model:u,change:function(n){i.trigger(gt,{values:n.values,container:t,model:u})&&n.preventDefault()}}).data("kendoEditable"),t.parent().addClass("k-grid-edit-row"),i.trigger(yt,{container:t,model:u}))},_destroyEditable:function(){var n=this,t=function(){n.editable&&(n._detachModelChange(),n.editable.destroy(),n.editable=null,n._editContainer=null,n._destroyEditView())};n.editable&&(n._editMode()!=="popup"||n._isMobile?t():n._editContainer.data("kendoWindow").bind("deactivate",t).close());n._actionSheet&&(n._actionSheet.destroy(),n._actionSheet=null)},_destroyEditView:function(){this.editView&&(this.editView.purge(),this.editView=null,this.pane.navigate(""))},_attachModelChange:function(n){var t=this;t._modelChangeHandler=function(n){t._modelChange({field:n.field,model:this})};n.bind("change",t._modelChangeHandler)},_detachModelChange:function(){var n=this,i=n._editContainer,t=n._modelForContainer(i);t&&t.unbind(a,n._modelChangeHandler)},closeCell:function(t){var u=this,r=u._editContainer,e,o,f;r&&((e=r.closest("tr").attr(i.attr("uid")),f=u.dataSource.getByUid(e),t&&u.trigger("cancel",{container:r,model:f}))||(r.removeClass("k-edit-cell"),o=u.columns[u.cellIndex(r)],r.parent().removeClass("k-grid-edit-row"),u._destroyEditable(),u._displayCell(r,o,f),r.hasClass("k-dirty-cell")&&n('<span class="k-dirty"/>').prependTo(r)))},_displayCell:function(n,t,r){var s=this,e={storage:{},count:0},h=u({},i.Template,s.options.templateSettings),o=i.template(s._cellTmpl(t,e),h);e.count>0&&(o=f(o,e.storage));n.empty().html(o(r))},removeRow:function(n){this._confirmation(n)&&this._removeRow(n)},_removeRow:function(t){var i=this,r,u;t=n(t).hide();r=i._modelForContainer(t);r&&!i.trigger(si,{row:t,model:r})&&(u=i._editMode(),u!=="incell"&&i.cancelRow(),i.dataSource.remove(r),(u==="inline"||u==="popup")&&i.dataSource.sync())},_editMode:function(){var t="incell",n=this.options.editable;return n!==!0&&(t=typeof n=="string"?n:n.mode||t),t},editRow:function(t){var f,u=this,e,s,o;if(t instanceof i.data.ObservableObject?f=t:(t=n(t),f=u._modelForContainer(t)),e=u._editMode(),s=u.options.navigatable,u.cancelRow(),f){u._attachModelChange(f);e==="popup"?u._createPopupEditor(f):e==="inline"?u._createInlineEditor(t,f):e==="incell"&&n(t).children(g).each(function(){var t=n(this),i=u.columns[t.index()];return f=u._modelForContainer(t),f&&(!f.editable||f.editable(i.field))&&i.field?(u.editCell(t),!1):void 0});o=u.editView?u.editView.element:u._editContainer;o.on(h+r,"a.k-grid-cancel",function(t){if(t.preventDefault(),t.stopPropagation(),!u.trigger("cancel",{container:o,model:f})){var i=u.items().index(n(u.current()).parent());u.cancelRow();s&&(u.current(u.items().eq(i).children().filter(v).first()),l(u.table,!0))}});o.on(h+r,"a.k-grid-update",function(n){n.preventDefault();n.stopPropagation();u.saveRow()})}},_createPopupEditor:function(t){var r=this,s="<div "+i.attr("uid")+'="'+t.uid+'" class="k-popup-edit-form'+(r._isMobile?" k-mobile-list":"")+'"><div class="k-edit-form-container">',e,h,ut=[],a,k,d,tt,it,y,p,rt=r.options.editable,w=rt.template,g=o(rt)?rt.window:{},ft=u({},i.Template,r.options.templateSettings),nt,b;if(g=g||{},w)for(typeof w===c&&(w=window.unescape(w)),s+=i.template(w,ft)(t),a=0,k=r.columns.length;a<k;a++)e=r.columns[a],e.command&&(y=oi(e.command,"edit"),y&&(h=y));else for(a=0,k=r.columns.length;a<k;a++)e=r.columns[a],e.command?e.command&&(y=oi(e.command,"edit"),y&&(h=y)):(s+='<div class="k-edit-label"><label for="'+e.field+'">'+(e.title||e.field||"")+"<\/label><\/div>",(!t.editable||t.editable(e.field))&&e.field?(ut.push({field:e.field,format:e.format,editor:e.editor,values:e.values}),s+="<div "+i.attr("container-for")+'="'+e.field+'" class="k-edit-field"><\/div>'):(nt={storage:{},count:0},d=i.template(r._cellTmpl(e,nt),ft),nt.count>0&&(d=f(d,nt.storage)),s+='<div class="k-edit-field">'+d(t)+"<\/div>"));h&&o(h)&&(h.text&&o(h.text)&&(tt=h.text.update,it=h.text.cancel),h.attr&&(p=h.attr));r._isMobile?(s+="<\/div><\/div>",r.editView=r.pane.append("<div data-"+i.ns+'role="view" data-'+i.ns+'init-widgets="false" class="k-grid-edit-form"><div data-'+i.ns+'role="header" class="k-header">'+r._createButton({name:"update",text:tt,attr:p})+(g.title||"Edit")+r._createButton({name:"canceledit",text:it,attr:p})+"<\/div>"+s+"<\/div>"),b=r._editContainer=r.editView.element.find(".k-popup-edit-form")):(s+='<div class="k-edit-buttons k-state-default">',s+=r._createButton({name:"update",text:tt,attr:p})+r._createButton({name:"canceledit",text:it,attr:p}),s+="<\/div><\/div><\/div>",b=r._editContainer=n(s).appendTo(r.wrapper).eq(0).kendoWindow(u({modal:!0,resizable:!1,draggable:!0,title:"Edit",visible:!1,close:function(i){if(i.userTriggered){if(i.sender.element.focus(),r.trigger("cancel",{container:b,model:t})){i.preventDefault();return}var u=r.items().index(n(r.current()).parent());r.cancelRow();r.options.navigatable&&(r.current(r.items().eq(u).children().filter(v).first()),l(r.table,!0))}}},g)));r.editable=r._editContainer.kendoEditable({fields:ut,model:t,clearContainer:!1}).data("kendoEditable");r._isMobile&&b.find("input[type=checkbox],input[type=radio]").parent(".k-edit-field").addClass("k-check").prev(".k-edit-label").addClass("k-check").click(function(){n(this).next().children("input").click()});r._openPopUpEditor();r.trigger(yt,{container:b,model:t})},_openPopUpEditor:function(){this._isMobile?this.pane.navigate(this.editView,this._editAnimation):this._editContainer.data("kendoWindow").center().open()},_createInlineEditor:function(t,r){var e=this,u,s,f,h=[];t.children(":not(.k-group-cell,.k-hierarchy-cell)").each(function(){if(s=n(this),u=e.columns[e.cellIndex(s)],!u.command&&u.field&&(!r.editable||r.editable(u.field)))h.push({field:u.field,format:u.format,editor:u.editor,values:u.values}),s.attr(i.attr("container-for"),u.field),s.empty();else if(u.command&&(f=oi(u.command,"edit"),f)){s.empty();var c,l,t;o(f)&&(f.text&&o(f.text)&&(c=f.text.update,l=f.text.cancel),f.attr&&(t=f.attr));n(e._createButton({name:"update",text:c,attr:t})+e._createButton({name:"canceledit",text:l,attr:t})).appendTo(s)}});e._editContainer=t;e.editable=t.addClass("k-grid-edit-row").kendoEditable({fields:h,model:r,clearContainer:!1}).data("kendoEditable");e.trigger(yt,{container:t,model:r})},cancelRow:function(){var n=this,t=n._editContainer,r;t&&(r=n._modelForContainer(t),n._destroyEditable(),n.dataSource.cancelChanges(r),n._editMode()!=="popup"?n._displayRow(t):n._displayRow(n.items().filter("["+i.attr("uid")+"="+r.uid+"]")))},saveRow:function(){var n=this,t=n._editContainer,r=n._modelForContainer(t),i=n.editable;t&&i&&i.end()&&!n.trigger(gt,{container:t,model:r})&&n.dataSource.sync()},_displayRow:function(t){var i=this,r=i._modelForContainer(t);r&&t.replaceWith(n((t.hasClass("k-alt")?i.altRowTemplate:i.rowTemplate)(r)))},_showMessage:function(t,r){var u=this;if(!u._isMobile)return window.confirm(t.title);var f=i.template('<ul><li class="km-actionsheet-title">#:title#<\/li><li><a href="\\#" class="k-button k-grid-delete">#:confirmDelete#<\/a><\/li><\/ul>'),e=n(f(t)).appendTo(u.view.element),o=u._actionSheet=new i.mobile.ui.ActionSheet(e,{cancel:t.cancelDelete,cancelTemplate:'<li class="km-actionsheet-cancel"><a class="k-button" href="\\#">#:cancel#<\/a><\/li>',close:function(){this.destroy()},command:function(t){var i=n(t.currentTarget).parent();i.hasClass("km-actionsheet-cancel")||u._removeRow(r)},popup:u._actionSheetPopupOptions});return o.open(r),!1},_confirmation:function(n){var r=this,t=r.options.editable,i=t===!0||typeof t===c?gi:t.confirmation;return i!==!1&&i!=null?r._showMessage({confirmDelete:t.confirmDelete||hr,cancelDelete:t.cancelDelete||cr,title:i===!0?gi:i},n):!0},cancelChanges:function(){this.dataSource.cancelChanges()},saveChanges:function(){var n=this;(n.editable&&n.editable.end()||!n.editable)&&!n.trigger(vi)&&n.dataSource.sync()},addRow:function(){var n=this,r,t=n.dataSource,f=n._editMode(),c=n.options.editable.createAt||"",e=t.pageSize(),o=t.view()||[];if(n.editable&&n.editable.end()||!n.editable){f!="incell"&&n.cancelRow();r=t.indexOf(o[0]);c.toLowerCase()=="bottom"&&(r+=o.length,e&&!t.options.serverPaging&&e<=o.length&&(r-=1));r<0&&(r=t.page()>t.totalPages()?(t.page()-1)*e:0);var s=t.insert(r,{}),l=s.uid,u=n.table.find("tr["+i.attr("uid")+"="+l+"]"),h=u.children("td:not(.k-group-cell,.k-hierarchy-cell)").eq(n._firstEditableColumnIndex(u));f==="inline"&&u.length?n.editRow(u):f==="popup"?n.editRow(s):h.length&&n.editCell(h)}},_firstEditableColumnIndex:function(n){for(var u=this,i,f=u.columns,r=u._modelForContainer(n),t=0,e=f.length;t<e;t++)if(i=f[t],r&&(!r.editable||r.editable(i.field))&&!i.command&&i.field)return t;return-1},_toolbar:function(){var t=this,s=t.wrapper,u=t.options.toolbar,o=t.options.editable,e;if(u&&(e=t.wrapper.find(".k-grid-toolbar"),e.length||(or(u)||(u=typeof u===c?u:t._toolbarTmpl(u).replace(ii,"\\#"),u=f(i.template(u),t)),e=n('<div class="k-toolbar k-grid-toolbar" />').html(u({})).prependTo(s)),o&&o.create!==!1))e.on(h+r,".k-grid-add",function(n){n.preventDefault();t.addRow()}).on(h+r,".k-grid-cancel-changes",function(n){n.preventDefault();t.cancelChanges()}).on(h+r,".k-grid-save-changes",function(n){n.preventDefault();t.saveChanges()})},_toolbarTmpl:function(n){var u=this,t,i,r="";if(k(n))for(t=0,i=n.length;t<i;t++)r+=u._createButton(n[t]);return r},_createButton:function(n){var f=n.template||vr,t=typeof n===c?n:n.name||n.text,e=wt[t]?wt[t].className:"k-grid-"+(t||"").replace(/\s/g,""),r={className:e,text:t,imageClass:"",attr:"",iconClass:""};if(!t&&!(o(n)&&n.template))throw new Error("Custom commands should have name specified");return o(n)?(n.className&&(n.className+=" "+r.className),t==="edit"&&o(n.text)&&(n=u(!0,{},n),n.text=n.text.edit),n.attr&&o(n.attr)&&(n.attr=lt(n.attr)),r=u(!0,r,wt[t],n)):r=u(!0,r,wt[t]),i.template(f)(r)},_hasFooters:function(){for(var t=this.columns,i=t.length,n=0;n<i;n++)if(t[n].footerTemplate!==""||t[n].groupFooterTemplate!=="")return!0;return!1},_groupable:function(){var t=this;t._groupableClickHandler?t.table.off(h+r,t._groupableClickHandler):t._groupableClickHandler=function(i){var r=n(this),u=r.closest("tr");r.hasClass("k-i-collapse")?t.collapseGroup(u):t.expandGroup(u);i.preventDefault();i.stopPropagation()};t.table.on(h+r,".k-grouping-row .k-i-collapse, .k-grouping-row .k-i-expand",t._groupableClickHandler);t._attachGroupable()},_attachGroupable:function(){var t=this,r=t.wrapper,f=t.options.groupable,e=vt+":visible["+i.attr("field")+"]",o=vt+"["+i.attr("field")+"]";f&&(r.has("div.k-grouping-header")[0]||n("<div> <\/div>").addClass("k-grouping-header").prependTo(r),t.groupable&&t.groupable.destroy(),t.groupable=new fr(r,u({},f,{draggable:t._draggableInstance,groupContainer:">div.k-grouping-header",dataSource:t.dataSource,draggableElements:t.content?".k-grid-header:first "+e:"table:first>.k-grid-header "+e,filter:t.content?".k-grid-header:first "+o:"table:first>.k-grid-header "+o,allowDrag:t.options.reorderable})))},_selectable:function(){var n=this,f,e,t=[],u=n.options.selectable;if(u&&(f=typeof u===c&&u.toLowerCase().indexOf("multiple")>-1,e=typeof u===c&&u.toLowerCase().indexOf("cell")>-1,n._hasDetails()&&(t[t.length]=".k-detail-row"),(n.options.groupable||n._hasFooters())&&(t[t.length]=".k-grouping-row,.k-group-footer"),t=t.join(","),t!==""&&(t=":not("+t+")"),n.selectable=new i.ui.Selectable(n.table,{filter:">"+(e?sr:"tbody>tr"+t),aria:!0,multiple:f,change:function(){n.trigger(a)}}),n.options.navigatable))n.table.on("keydown"+r,function(t){var i=n.current();if(t.keyCode===s.SPACEBAR&&t.target==n.table[0]&&!i.is(".k-edit-cell,.k-header")&&i.parent().is(":not(.k-grouping-row,.k-detail-row,.k-group-footer)")){if(t.preventDefault(),t.stopPropagation(),i=e?i:i.parent(),f)if(t.ctrlKey){if(i.hasClass(bi)){i.removeClass(bi);n.trigger(a);return}}else n.selectable.clear();else n.selectable.clear();n.selectable.value(i)}})},clearSelection:function(){var n=this;n.selectable.clear();n.trigger(a)},select:function(t){var r=this,i=r.selectable;if(t=n(t),t.length){i.options.multiple||(i.clear(),t=t.first());i.value(t);return}return i.value()},current:function(i){var r=this,f=r.options.scrollable,u=r._current,e=r.table.add(r.thead.parent());return i!==t&&i.length&&(u&&u[0]===i[0]||(u&&(u.removeClass(ht).removeAttr("id"),e.removeAttr("aria-activedescendant")),i.attr("id",r._cellId),r._current=i.addClass(ht),e.attr("aria-activedescendant",r._cellId),i.length&&f&&(n.contains(r.content[0],i[0])&&r._scrollTo(i.parent()[0],r.content[0]),f.virtual?r._scrollTo(i[0],r.content.find(">.k-virtual-scrollable-wrap")[0]):r._scrollTo(i[0],r.content[0])))),r._current},_removeCurrent:function(){this._current&&(this._current.removeClass(ht),this._current=null)},_scrollTo:function(n,t){var e=n.tagName.toLowerCase(),i=e==="td"||e==="th",r=n[i?"offsetLeft":"offsetTop"],o=n[i?"offsetWidth":"offsetHeight"],u=t[i?"scrollLeft":"scrollTop"],f=t[i?"clientWidth":"clientHeight"],s=r+o,h=0;h=u>r?r:s>u+f?o<=f?s-f:r:u;t[i?"scrollLeft":"scrollTop"]=h},_navigatable:function(){var t=this,o=f(t.current,t),u=t.table,h=t.thead.parent(),c=u,a=i.support.isRtl(t.element);if(t.options.navigatable){t.options.scrollable&&(c=u.add(h),h.attr(nt,-1));h.on("keydown"+r,function(n){n.altKey&&n.keyCode==s.DOWN&&(o().find(".k-grid-filter, .k-header-column-menu").click(),n.stopImmediatePropagation())}).find("a.k-link").attr("tabIndex",-1);u.attr(nt,y.max(u.attr(nt)||0,0)).on("mousedown"+r+" keydown"+r,".k-detail-cell",function(n){n.target!==n.currentTarget&&n.stopImmediatePropagation()});c.on(i.support.touch?"touchstart"+r:"mousedown"+r,ut+">"+v,f(dr,t)).on("focus"+r,function(){if(!i.support.touch){var t=o();t&&t.is(":visible")?t.addClass(ht):o(n(this).find(ft));this==u[0]?(h.attr(nt,-1),u.attr(nt,0)):(u.attr(nt,-1),h.attr(nt,0))}}).on("focusout"+r,function(){var n=o();n&&n.removeClass(ht)}).on("keydown"+r,function(i){var h=i.keyCode,f=!1,p=!i.isDefaultPrevented()&&!n(i.target).is(":button,a,:input,a>.k-icon"),st=t.options.pageable,w=t.dataSource,nt=t._editMode()=="incell",b,tt,c,k,it,et=i.shiftKey,r=o(),ot,d,y;r&&r.is("th")&&(p=!0);p&&h==s.UP?(r?(c=r.parent().prevAll(ut).first(),c[0]||(it=t.thead.parent(),l(it,!0),c=it.find(ut).first()),k=r.index(),r=c.children().eq(k),r[0]&&r.is(v)||(r=c.children(v).first())):r=u.find(ft),f=!0,o(r)):p&&h==s.DOWN?(r?(c=r.parent().nextAll(ut).first(),!c[0]&&r.is("th")&&(l(t.tbody.parent()),c=t.tbody.find(ut).first()),k=r.index(),r=c.children().eq(k),r[0]&&r.is(v)||(r=c.children(v).first())):r=u.find(ft),f=!0,o(r)):p&&h==(a?s.RIGHT:s.LEFT)?(o(r?r.prevAll(g+":first"):u.find(ft)),f=!0):p&&h==(a?s.LEFT:s.RIGHT)?(r?r.next()[0]&&(r=r.nextAll(g+":first")):r=u.find(ft),f=!0,o(r)):p&&st&&s.PAGEDOWN==h?(w.page(w.page()+1),f=!0):p&&st&&s.PAGEUP==h?(w.page(w.page()-1),f=!0):h==s.ENTER||s.F2==h?(r=r?r:u.find(ft),r.is("th")?(r.find(".k-link").click(),f=!0):r.parent().is(".k-master-row,.k-grouping-row")?(r.parent().find(".k-icon:first").click(),f=!0):(ot=r.find(":kendoFocusable:first"),!r.hasClass("k-edit-cell")&&ot[0]&&r.hasClass("k-state-focused")?(ot.focus(),f=!0):t.options.editable&&!n(i.target).is(":button,.k-button,textarea")&&(d=n(i.target).closest("[role=gridcell]"),d[0]||(d=r),t._handleEditing(d),f=!0))):s.ESC==h?(b=rt(),r&&n.contains(r[0],b)&&!r.hasClass("k-edit-cell")&&!r.parent().hasClass("k-grid-edit-row")?(l(t.table[0],!0),f=!0):t._editContainer&&(!r||t._editContainer.has(r[0])||r[0]===t._editContainer[0])&&(nt?t.closeCell(!0):(tt=t.items().index(n(r).parent()),b&&b.blur(),t.cancelRow(),tt>=0&&t.current(t.items().eq(tt).children().filter(v).first())),e.msie&&e.version<9&&document.body.focus(),l(u,!0),f=!0)):s.TAB==h&&(r=n(r),t.options.editable&&nt&&(y=n(rt()).closest(".k-edit-cell"),y[0]&&y[0]!==r[0]&&(r=y)),y=et?r.prevAll(g+":first"):r.nextAll(":visible:first"),y.length||(y=r.parent()[et?"prevAll":"nextAll"]("tr:not(.k-grouping-row):not(.k-detail-row):visible:first").children(g+(et?":last":":first"))),!r.is("th")&&y.length&&t.options.editable&&nt&&(t._handleEditing(r,y),f=!0));f&&(i.preventDefault(),i.stopPropagation())})}},_handleEditing:function(t,i){var r=this,u=n(rt()),f=r._editMode(),c=e.msie,a=c&&e.version<9,o=r._editContainer,s,h;if(h=f=="incell"?t.hasClass("k-edit-cell"):t.parent().hasClass("k-grid-edit-row"),r.editable){if(n.contains(o[0],u[0])&&(e.opera||a?u.change().triggerHandler("blur"):(u.blur(),c&&u.blur())),!r.editable){l(r.table);return}if(r.editable.end())f=="incell"?r.closeCell():(r.saveRow(),h=!0);else{f=="incell"?r.current(o):r.current(o.children().filter(g).first());s=o.find(":kendoFocusable:first")[0];s&&s.focus();return}}i&&r.current(i);a&&document.body.focus();l(r.table,!0);(h||i)&&!i||(f=="incell"?r.editCell(r.current()):r.editRow(r.current().parent()))},_wrapper:function(){var n=this,r=n.table,i=n.options.height,t=n.element;t.is("div")||(t=t.wrap("<div/>").parent());n.wrapper=t.addClass("k-grid k-widget k-secondary");i&&(n.wrapper.css(ti,i),r.css(ti,"auto"));n._initMobile()},_initMobile:function(){var t=this.options,r;this._isMobile=t.mobile===!0&&i.support.mobileOS||t.mobile==="phone"||t.mobile==="tablet";this._isMobile&&(r=this.wrapper.addClass("k-grid-mobile").wrap("<div data-"+i.ns+'role="view" data-'+i.ns+'init-widgets="false"><\/div>').parent(),this.pane=i.mobile.ui.Pane.wrap(r),this.view=this.pane.view(),this._actionSheetPopupOptions=n(document.documentElement).hasClass("km-root")?{modal:!1}:{align:"bottom center",position:"bottom center",effect:"slideIn:up"},t.height&&this.pane.element.parent().css(ti,t.height),this._editAnimation="slide")},_tbody:function(){var i=this,r=i.table,t;t=r.find(">tbody");t.length||(t=n("<tbody/>").appendTo(r));i.tbody=t},_scrollable:function(){var t=this,u,s,y=t.options,o=y.scrollable,v=o!==!0&&o.virtual&&!t.virtualScrollable,c=!i.support.kineticScrollNeeded||v?i.support.scrollbar():0,l,a,h;o&&(u=t.wrapper.children(".k-grid-header"),u[0]||(u=n('<div class="k-grid-header" />').insertBefore(t.table)),u.css(p?"padding-left":"padding-right",o.virtual?c+1:c),s=n('<table role="grid" />'),ri&&s.attr("cellspacing",0),s.append(t.thead),u.empty().append(n('<div class="k-grid-header-wrap" />').append(s)),t.content=t.table.parent(),t.content.is(".k-virtual-scrollable-wrap")&&(t.content=t.content.parent()),t.content.is(".k-grid-content, .k-virtual-scrollable-wrap")||(t.content=t.table.wrap('<div class="k-grid-content" />').parent()),v&&(t.virtualScrollable=new tr(t.content,{dataSource:t.dataSource,itemHeight:f(t._averageRowHeight,t)})),t.scrollables=u.children(".k-grid-header-wrap"),l=t.wrapper.find(".k-grid-footer"),a=p&&e.webkit?c:0,l.length&&(t.scrollables=t.scrollables.add(l.children(".k-grid-footer-wrap"))),o.virtual?t.content.find(">.k-virtual-scrollable-wrap").bind("scroll"+r,function(){t.scrollables.scrollLeft(this.scrollLeft+a)}):(t.content.bind("scroll"+r,function(){t.scrollables.scrollLeft(this.scrollLeft+a)}),h=i.touchScroller(t.content),h&&h.movable&&h.movable.bind("change",function(n){t.scrollables.scrollLeft(-n.sender.x)})))},_setContentWidth:function(){var t=this,u="k-grid-content-expander",e='<div class="'+u+'"><\/div>',r=t.resizable,i;t.options.scrollable&&t.wrapper.is(":visible")&&(i=t.table.parent().children("."+u),t._setContentWidthHandler=f(t._setContentWidth,t),t.dataSource&&t.dataSource.view().length?i[0]&&(i.remove(),r&&r.unbind("resize",t._setContentWidthHandler)):(i[0]||(i=n(e).appendTo(t.table.parent()),r&&r.bind("resize",t._setContentWidthHandler)),t.thead&&i.width(t.thead.width())))},_setContentHeight:function(){var n=this,r=n.options,t=n.wrapper.innerHeight(),e=n.wrapper.children(".k-grid-header"),u=i.support.scrollbar(),f;r.scrollable&&n.wrapper.is(":visible")&&(t-=e.outerHeight(),n.pager&&(t-=n.pager.element.outerHeight()),r.groupable&&(t-=n.wrapper.children(".k-grouping-header").outerHeight()),r.toolbar&&(t-=n.wrapper.children(".k-grid-toolbar").outerHeight()),n.footerTemplate&&(t-=n.wrapper.children(".k-grid-footer").outerHeight()),f=function(n){var t,i;return n[0].style.height?!0:(t=n.height(),n.height("auto"),i=n.height(),t!=i)?(n.height(""),!0):(n.height(""),!1)},f(n.wrapper)&&(t>u*2?n.content.height(t):n.content.height(u*2+1)))},_averageRowHeight:function(){var n=this,t=n._rowHeight,i;return n._rowHeight||(n._rowHeight=t=n.table.outerHeight()/n.items().length,n._sum=t,n._measures=1),i=n.table.outerHeight()/n.items().length,t!==i&&(n._measures++,n._sum+=i,n._rowHeight=n._sum/n._measures),t},_dataSource:function(){var n=this,e=n.options,r,i=e.dataSource;i=k(i)?{data:i}:i;o(i)&&(u(i,{table:n.table,fields:n.columns}),r=e.pageable,o(r)&&r.pageSize!==t&&(i.pageSize=r.pageSize));n.dataSource&&n._refreshHandler?n.dataSource.unbind(a,n._refreshHandler).unbind(kt,n._progressHandler).unbind(dt,n._errorHandler):(n._refreshHandler=f(n.refresh,n),n._progressHandler=f(n._requestStart,n),n._errorHandler=f(n._error,n));n.dataSource=ur.create(i).bind(a,n._refreshHandler).bind(kt,n._progressHandler).bind(dt,n._errorHandler)},_error:function(){this._progress(!1)},_requestStart:function(){this._progress(!0)},_modelChange:function(t){var r=this,h=t.model,f=r.tbody.find("tr["+i.attr("uid")+"="+h.uid+"]"),u,o,l=f.hasClass("k-alt"),s,e=r.items().index(f),c;if(f.children(".k-edit-cell").length&&!r.options.rowTemplate)f.children(":not(.k-group-cell,.k-hierarchy-cell)").each(function(){u=n(this);o=r.columns[r.cellIndex(u)];o.field===t.field&&(u.hasClass("k-edit-cell")?u.addClass("k-dirty-cell"):(r._displayCell(u,o,h),n('<span class="k-dirty"/>').prependTo(u)))});else if(!f.hasClass("k-grid-edit-row")){for(s=(l?r.altRowTemplate:r.rowTemplate)(h),f.replaceWith(s),s=r.items().eq(e),e=0,c=r.columns.length;e<c;e++)o=r.columns[e],o.field===t.field&&(u=s.children(":not(.k-group-cell,.k-hierarchy-cell)").eq(e),n('<span class="k-dirty"/>').prependTo(u));r.trigger("itemChange",{item:s,data:h,ns:it})}},_pageable:function(){var t=this,f,r=t.options.pageable;r&&(f=t.wrapper.children("div.k-grid-pager"),f.length||(f=n('<div class="k-pager-wrap k-grid-pager"/>').appendTo(t.wrapper)),t.pager&&t.pager.destroy(),t.pager=typeof r=="object"&&r instanceof i.ui.Pager?r:new i.ui.Pager(f,u({},r,{dataSource:t.dataSource})))},_footer:function(){var t=this,u=t.dataSource.aggregates(),r="",s=t.footerTemplate,e=t.options,f,i=t.footer||t.wrapper.find(".k-grid-footer"),o;s?(u=at(u)?fi(t.dataSource.aggregate()):u,r=n(t._wrapFooter(s(u))),i.length?(o=r,i.replaceWith(o),i=t.footer=o):i=e.scrollable?t.footer=e.pageable?r.insertBefore(t.wrapper.children("div.k-grid-pager")):r.appendTo(t.wrapper):t.footer=r.insertBefore(t.tbody)):i&&!t.footer&&(t.footer=i);i.length&&(e.scrollable&&(f=i.attr("tabindex",-1).children(".k-grid-footer-wrap"),t.scrollables=t.scrollables.not(".k-grid-footer-wrap").add(f)),t._footerWidth&&i.find("table").css("width",t._footerWidth),f&&f.scrollLeft(t.content.scrollLeft()))},_wrapFooter:function(t){var u=this,r="",f=i.support.mobileOS?0:i.support.scrollbar();return u.options.scrollable?(r=n('<div class="k-grid-footer"><div class="k-grid-footer-wrap"><table'+(ri?' cellspacing="0"':"")+"><tbody>"+t+"<\/tbody><\/table><\/div><\/div>"),u._appendCols(r.find("table")),r.css(p?"padding-left":"padding-right",f),r):'<tfoot class="k-grid-footer">'+t+"<\/tfoot>"},_columnMenu:function(){var t=this,s,v=t.columns,r,e=t.options,f=e.columnMenu,h,c,a,y=this._isMobile,p=function(){l(t.thead.parent(),!0)},w=function(n){t.trigger(ci,{field:n.field,container:n.container})},o;f&&(typeof f=="boolean"&&(f={}),t.thead.find("th:not(.k-hierarchy-cell,.k-group-cell)").each(function(l){r=v[l];o=n(this);!r.command&&(r.field||o.attr("data-"+i.ns+"field"))&&(s=o.data("kendoColumnMenu"),s&&s.destroy(),c=r.sortable!==!1&&f.sortable!==!1?e.sortable:!1,a=e.filterable&&r.filterable!==!1&&f.filterable!==!1?u({pane:t.pane},r.filterable,e.filterable):!1,h={dataSource:t.dataSource,values:r.values,columns:f.columns,sortable:c,filterable:a,messages:f.messages,owner:t,closeCallback:p,init:w,pane:t.pane,filter:y?":not(.k-column-active)":""},o.kendoColumnMenu(h))}))},_filterable:function(){var t=this,r=t.columns,f,e,s=function(){l(t.thead.parent(),!0)},o=t.options.filterable;o&&!t.options.columnMenu&&t.thead.find("th:not(.k-hierarchy-cell,.k-group-cell)").each(function(h){if(f=n(this),r[h].filterable!==!1&&!r[h].command&&(r[h].field||f.attr("data-"+i.ns+"field"))){e=f.data("kendoFilterMenu");e&&e.destroy();var c=r[h].filterable,l=u({},o,c,{dataSource:t.dataSource,values:r[h].values,closeCallback:s,init:function(n){t.trigger(hi,{field:n.field,container:n.container})},pane:t.pane});c&&c.messages&&(l.messages=u(!0,{},o.messages,c.messages));f.kendoFilterMenu(l)}})},_sortable:function(){var r=this,s=r.columns,t,f,e,o=r.options.sortable;o&&r.thead.find("th:not(.k-hierarchy-cell,.k-group-cell)").each(function(h){t=s[h];t.sortable!==!1&&!t.command&&t.field&&(f=n(this),e=f.data("kendoSortable"),e&&e.destroy(),f.attr("data-"+i.ns+"field",t.field).kendoSortable(u({},o,t.sortable,{dataSource:r.dataSource,aria:!0,filter:":not(.k-column-active)"})))})},_columns:function(t){var r=this,f=r.table,e,s=f.find("col"),o=r.options.dataSource;t=t.length?t:bt(f.find("th"),function(t,r){t=n(t);var f=t.attr(i.attr("sortable")),e=t.attr(i.attr("filterable")),o=t.attr(i.attr("type")),h=t.attr(i.attr("groupable")),u=t.attr(i.attr("field")),c=t.attr(i.attr("menu"));return u||(u=t.text().replace(/\s|[^A-z0-9]/g,"")),{field:u,type:o,sortable:f!=="false",filterable:e!=="false",groupable:h!=="false",menu:c,template:t.attr(i.attr("template")),width:s.eq(r).css("width")}});e=!(r.table.find("tbody tr").length>0&&(!o||!o.transport));r.columns=bt(t,function(n){return n=typeof n===c?{field:n}:n,n.hidden&&(n.attributes=ot(n.attributes),n.footerAttributes=ot(n.footerAttributes),n.headerAttributes=ot(n.headerAttributes)),u({encoded:e},n)})},_groups:function(){var n=this.dataSource.group();return n?n.length:0},_tmpl:function(n,t){var r=this,c=u({},i.Template,r.options.templateSettings),e,l=r.columns.length,a,h={storage:{},count:0},o,p,v=r._hasDetails(),s=[],y=r._groups();if(!n){for(n="<tr",t&&s.push("k-alt"),v&&s.push("k-master-row"),s.length&&(n+=' class="'+s.join(" ")+'"'),l&&(n+=" "+i.attr("uid")+'="#='+i.expr("uid",c.paramName)+'#"'),n+=" role='row'>",y>0&&(n+=pt(y)),v&&(n+='<td class="k-hierarchy-cell"><a class="k-icon k-plus" href="\\#" tabindex="-1"><\/a><\/td>'),e=0;e<l;e++)o=r.columns[e],a=o.template,p=typeof a,n+="<td"+lt(o.attributes)+" role='gridcell'>",n+=r._cellTmpl(o,h),n+="<\/td>";n+="<\/tr>"}return(n=i.template(n,c),h.count>0)?f(n,h.storage):n},_headerCellText:function(n){var e=this,o=u({},i.Template,e.options.templateSettings),t=n.headerTemplate,f=typeof t,r=n.title||n.field||"";return f===ct?r=i.template(t,o)({}):f===c&&(r=t),r},_cellTmpl:function(n,t){var h=this,y=u({},i.Template,h.options.templateSettings),l=n.template,a=y.paramName,f=n.field,r="",s,p,v=n.format,w=typeof l,e=n.values;if(n.command){if(k(n.command)){for(s=0,p=n.command.length;s<p;s++)r+=h._createButton(n.command[s]);return r.replace(ii,"\\#")}return h._createButton(n.command).replace(ii,"\\#")}return w===ct?(t.storage["tmpl"+t.count]=l,r+="#=this.tmpl"+t.count+"("+a+")#",t.count++):w===c?r+=l:e&&e.length&&o(e[0])&&"value"in e[0]&&f?(r+="#var v ="+i.stringify(rr(e))+"#",r+="#var f = v[",y.useWithBlock||(r+=a+"."),r+=f+"]#",r+="${f != null ? f : ''}"):(r+=n.encoded?"#:":"#=",v&&(r+='kendo.format("'+v.replace(lr,"\\$1")+'",'),f?(f=i.expr(f,a),r+=f+"==null?'':"+f):r+="''",v&&(r+=")"),r+="#"),r},_templates:function(){var t=this,r=t.options,u=t.dataSource,f=u.group(),e=t.footer||t.wrapper.find(".k-grid-footer"),i=u.aggregate();t.rowTemplate=t._tmpl(r.rowTemplate);t.altRowTemplate=t._tmpl(r.altRowTemplate||r.rowTemplate,!0);t._hasDetails()&&(t.detailTemplate=t._detailTmpl(r.detailTemplate||""));(!t._group||at(i))&&(at(i)||e.length)&&!b(t.columns,function(n){return n.footerTemplate}).length||(t.footerTemplate=t._footerTmpl(i,"footerTemplate","k-footer-template"));f&&b(t.columns,function(n){return n.groupFooterTemplate}).length&&(i=n.map(f,function(n){return n.aggregates}),t.groupFooterTemplate=t._footerTmpl(i,"groupFooterTemplate","k-group-footer"))},_footerTmpl:function(n,t,r){var s=this,a=u({},i.Template,s.options.templateSettings),v=a.paramName,e="",c,y,d=s.columns,o,p,w={},l=0,b={},k=s._groups(),g=fi(n),h;for(e+='<tr class="'+r+'">',k>0&&(e+=pt(k)),s._hasDetails()&&(e+='<td class="k-hierarchy-cell"> <\/td>'),c=0,y=s.columns.length;c<y;c++)h=d[c],o=h[t],p=typeof o,e+="<td"+lt(h.footerAttributes)+">",o?(p!==ct&&(b=g[h.field]?u({},a,{paramName:v+"."+h.field}):{},o=i.template(o,b)),w["tmpl"+l]=o,e+="#=this.tmpl"+l+"("+v+")#",l++):e+=" ",e+="<\/td>";return(e+="<\/tr>",e=i.template(e,a),l>0)?f(e,w):e},_detailTmpl:function(n){var e=this,t="",o=u({},i.Template,e.options.templateSettings),l=o.paramName,s={},r=0,h=e._groups(),c=tt(e.columns).length,a=typeof n;return(t+='<tr class="k-detail-row">',h>0&&(t+=pt(h)),t+='<td class="k-hierarchy-cell"><\/td><td class="k-detail-cell"'+(c?' colspan="'+c+'"':"")+">",a===ct?(s["tmpl"+r]=n,t+="#=this.tmpl"+r+"("+l+")#",r++):t+=n,t+="<\/td><\/tr>",t=i.template(t,o),r>0)?f(t,s):t},_hasDetails:function(){var n=this;return n.options.detailTemplate!==null||(n._events[ni]||[]).length},_details:function(){var t=this;t.table.on(h+r,".k-hierarchy-cell .k-plus, .k-hierarchy-cell .k-minus",function(i){var f=n(this),u=f.hasClass("k-plus"),r=f.closest("tr.k-master-row"),e,s=t.detailTemplate,o,h=t._hasDetails();return f.toggleClass("k-plus",!u).toggleClass("k-minus",u),h&&!r.next().hasClass("k-detail-row")&&(o=t.dataItem(r),n(s(o)).addClass(r.hasClass("k-alt")?"k-alt":"").insertAfter(r),t.trigger(ni,{masterRow:r,detailRow:r.next(),data:o,detailCell:r.next().find(".k-detail-cell")})),e=r.next(),t.trigger(u?pi:wi,{masterRow:r,detailRow:e}),e.toggle(u),t._current&&t._current.attr("aria-expanded",u),i.preventDefault(),!1})},dataItem:function(t){if(t=n(t)[0],!t)return null;for(var f=this.tbody.children(),u=t.sectionRowIndex,r=u,i=0;i<u;i++)/k-grouping-row|k-detail-row|k-group-footer/.test(f[i].className)&&r--;return this._data[r]},expandRow:function(t){n(t).find("> td .k-plus, > td .k-i-expand").click()},collapseRow:function(t){n(t).find("> td .k-minus, > td .k-i-collapse").click()},_thead:function(){var r=this,h=r.columns,l=r._hasDetails()&&h.length,s,a,e="",o=r.table.find(">thead"),f,c,u;if(o.length||(o=n("<thead/>").insertBefore(r.tbody)),f=r.element.find("tr:has(th):first"),f.length||(f=o.children().first(),f.length||(f=n("<tr/>"))),f.children().length)l&&!f.find(".k-hierarchy-cell")[0]&&f.prepend('<th class="k-hierarchy-cell"> <\/th>');else{for(l&&(e+='<th class="k-hierarchy-cell"> <\/th>'),s=0,a=h.length;s<a;s++)u=h[s],c=r._headerCellText(u),u.command?e+="<th"+lt(u.headerAttributes)+">"+c+"<\/th>":(e+="<th role='columnheader' "+i.attr("field")+"='"+(u.field||"")+"' ",u.title&&(e+=i.attr("title")+'="'+u.title.replace(/'/g,"'")+'" '),u.groupable!==t&&(e+=i.attr("groupable")+"='"+u.groupable+"' "),u.aggregates&&(e+=i.attr("aggregates")+"='"+u.aggregates+"'"),e+=lt(u.headerAttributes),e+=">"+c+"<\/th>");f.html(e)}f.find("th").addClass("k-header");r.options.scrollable||o.addClass("k-grid-header");f.find("script").remove().end().appendTo(o);r.thead&&r._destroyColumnAttachments();r.thead=o;r._sortable();r._filterable();r._scrollable();r._updateCols();r._resizable();r._draggable();r._reorderable();r.groupable&&r._attachGroupable();r._columnMenu()},_updateCols:function(){var n=this;n._appendCols(n.thead.parent().add(n.table))},_appendCols:function(n){var t=this;ir(n,tt(t.columns),t._hasDetails(),t._groups())},_autoColumns:function(n){if(n&&n.toJSON){var t=this,i;n=n.toJSON();for(i in n)t.columns.push({field:i});t._thead();t._templates()}},_rowsHtml:function(n){for(var i=this,r="",f=i.rowTemplate,e=i.altRowTemplate,t=0,u=n.length;t<u;t++)r+=t%2?e(n[t]):f(n[t]),i._data.push(n[t]);return r},_groupRowHtml:function(n,t,r){var f=this,e="",o,l,a=n.field,s=b(f.columns,function(n){return n.field==a})[0]||{},h=s.groupHeaderTemplate,v=(s.title||a)+": "+br(n.value,s.format,s.values),y=u({},{field:n.field,value:n.value},n.aggregates[n.field]),p=f._groupAggregatesDefaultObject||{},c=n.items;if(h&&(v=typeof h===ct?h(y):i.template(h)(y)),e+='<tr class="k-grouping-row">'+pt(r)+'<td colspan="'+t+'" aria-expanded="true"><p class="k-reset"><a class="k-icon k-i-collapse" href="#" tabindex="-1"><\/a>'+v+"<\/p><\/td><\/tr>",n.hasSubgroups)for(o=0,l=c.length;o<l;o++)e+=f._groupRowHtml(c[o],t-1,r+1);else e+=f._rowsHtml(c);return f.groupFooterTemplate&&(e+=f.groupFooterTemplate(u(p,n.aggregates))),e},collapseGroup:function(t){t=n(t).find(".k-icon").addClass("k-i-expand").removeClass("k-i-collapse").end();var f=t.find(".k-group-cell").length,r=1,u,i;t.find("td:first").attr("aria-expanded",!1);t.nextAll("tr").each(function(){if(i=n(this),u=i.find(".k-group-cell").length,i.hasClass("k-grouping-row")?r++:i.hasClass("k-group-footer")&&r--,u<=f||i.hasClass("k-group-footer")&&r<0)return!1;i.hide()})},expandGroup:function(t){t=n(t).find(".k-icon").addClass("k-i-collapse").removeClass("k-i-expand").end();var e=this,f=t.find(".k-group-cell").length,i,r,u=1;t.find("td:first").attr("aria-expanded",!0);t.nextAll("tr").each(function(){if(i=n(this),r=i.find(".k-group-cell").length,r<=f)return!1;r!=f+1||i.hasClass("k-detail-row")||(i.show(),i.hasClass("k-grouping-row")&&i.find(".k-icon").hasClass("k-i-collapse")&&e.expandGroup(i),i.hasClass("k-master-row")&&i.find(".k-icon").hasClass("k-minus")&&i.next().show());i.hasClass("k-grouping-row")&&u++;i.hasClass("k-group-footer")&&(u==1?i.show():u--)})},_updateHeader:function(t){var r=this,u=r.thead.find("th.k-group-cell"),i=u.length;t>i?n(new Array(t-i+1).join('<th class="k-group-cell k-header"> <\/th>')).prependTo(r.thead.find("tr")):t<i&&(i=i-t,n(b(u,function(n,t){return i>t})).remove())},_firstDataItem:function(n,t){return n&&t&&(n=n.hasSubgroups?this._firstDataItem(n.items[0],t):n.items[0]),n},hideColumn:function(t){var i=this,a,f,r,h,u,v,c,o=0,l,y=i.footer||i.wrapper.find(".k-grid-footer"),p=i.columns,s;if(t=typeof t=="number"?p[t]:b(p,function(n){return n.field===t})[0],t&&!t.hidden){for(s=d(t,tt(p)),t.hidden=!0,t.attributes=ot(t.attributes),t.footerAttributes=ot(t.footerAttributes),t.headerAttributes=ot(t.headerAttributes),i._templates(),i._updateCols(),st(i.thead.find(">tr")[0].cells,s,!1),y[0]&&(i._appendCols(y.find("table:first")),st(y.find(".k-footer-template")[0].cells,s,!1)),a=i.tbody.children(),u=0,l=a.length;u<l;u+=1)f=a.eq(u),f.is(".k-grouping-row,.k-detail-row")?(r=f.children(":not(.k-group-cell):first,.k-detail-cell").last(),r.attr("colspan",parseInt(r.attr("colspan"),10)-1)):(f.hasClass("k-grid-edit-row")&&(r=f.children(".k-edit-container")[0])&&(r=n(r),r.attr("colspan",parseInt(r.attr("colspan"),10)-1),r.find("col").eq(s).remove(),f=r.find("tr:first")),st(f[0].cells,s,!1));for(v=i.thead.prev().find("col"),u=0,l=v.length;u<l;u+=1)if(c=v[u].style.width,c&&c.indexOf("%")==-1)o+=parseInt(c,10);else{o=0;break}h=n(">.k-grid-header table:first,>.k-grid-footer table:first",i.wrapper).add(i.table);i._footerWidth=null;o&&(h.width(o),i._footerWidth=o);e.msie&&e.version==8&&(h.css("display","inline-table"),setTimeout(function(){h.css("display","table")},1));i.trigger(li,{column:t})}},showColumn:function(t){var i=this,c,u,o,f,r,l,e,a,v,s=i.columns,y=i.footer||i.wrapper.find(".k-grid-footer"),h;if(t=typeof t=="number"?s[t]:b(s,function(n){return n.field===t})[0],t&&t.hidden){for(h=d(t,s),t.hidden=!1,t.attributes=ei(t.attributes),t.footerAttributes=ei(t.footerAttributes),t.headerAttributes=ei(t.headerAttributes),i._templates(),i._updateCols(),st(i.thead.find(">tr")[0].cells,h,!0),y[0]&&(i._appendCols(y.find("table:first")),st(y.find(".k-footer-template")[0].cells,h,!0)),c=i.tbody.children(),u=0,o=c.length;u<o;u+=1)f=c.eq(u),f.is(".k-grouping-row,.k-detail-row")?(r=f.children(":not(.k-group-cell):first,.k-detail-cell").last(),r.attr("colspan",parseInt(r.attr("colspan"),10)+1)):(f.hasClass("k-grid-edit-row")&&(r=f.children(".k-edit-container")[0])&&(r=n(r),r.attr("colspan",parseInt(r.attr("colspan"),10)+1),ir(r.find(">form>table"),tt(s),!1,0),f=r.find("tr:first")),st(f[0].cells,h,!0));if(l=n(">.k-grid-header table:first,>.k-grid-footer table:first",i.wrapper).add(i.table),t.width){for(e=0,v=i.thead.prev().find("col"),u=0,o=v.length;u<o;u+=1){if(a=v[u].style.width,a.indexOf("%")>-1){e=0;break}e+=parseInt(a,10)}i._footerWidth=null;e&&(l.width(e),i._footerWidth=e)}else l.width("");i.trigger(ai,{column:t})}},_progress:function(n){var t=this,r=t.element.is("table")?t.element.parent():t.content&&t.content.length?t.content:t.element;i.ui.progress(r,n)},_resize:function(){this.content&&(this._setContentHeight(),this._setContentWidth())},refresh:function(t){var i=this,y,f,e="",o=i.dataSource.view(),w=i.options.navigatable,s,h,u,p=n(i.current()),c=!1,r=(i.dataSource.group()||[]).length,a=r+tt(i.columns).length,v;if((!t||t.action!=="itemchange"||!i.editable)&&(t=t||{},!i.trigger("dataBinding",{action:t.action||"rebind",index:t.index,items:t.items}))){if(v=rt(),w&&(i.table[0]===v||n.contains(i.table[0],v)||i._editContainer&&i._editContainer.data("kendoWindow"))&&(c=p.is("th"),u=0,c&&(u=i.thead.find("th:not(.k-group-cell)").index(p))),i._destroyEditable(),i._progress(!1),i._hideResizeHandle(),i._data=[],i.columns.length||(i._autoColumns(i._firstDataItem(o[0],r)),a=r+i.columns.length),i._group=r>0||i._group,i._group&&(i._templates(),i._updateCols(),i._updateHeader(r),i._group=r>0),r>0)for(i.detailTemplate&&a++,i.groupFooterTemplate&&(i._groupAggregatesDefaultObject=fi(i.dataSource.aggregate())),f=0,y=o.length;f<y;f++)e+=i._groupRowHtml(o[f],a,0);else e+=i._rowsHtml(o);er?i.tbody[0].innerHTML=e:(h=document.createElement("div"),h.innerHTML="<table><tbody>"+e+"<\/tbody><\/table>",s=h.firstChild.firstChild,i.table[0].replaceChild(s,i.tbody[0]),i.tbody=n(s));i._footer();i._setContentHeight();i._setContentWidth();u>=0&&(i._removeCurrent(),c?i.current(i.thead.find("th:not(.k-group-cell)").eq(u)):i.current(i.items().eq(u).children().filter(g).first()),i._current&&l(i._current.closest("table")[0],!0));i.trigger(yi)}}});it.plugin(kr);it.plugin(tr)}(window.kendo.jQuery);kendo_module({id:"listview",name:"ListView",category:"web",description:"The ListView widget offers rich support for interacting with data.",depends:["data"],features:[{id:"listview-editing",name:"Editing",description:"Support for record editing",depends:["editable"]},{id:"listview-selection",name:"Selection",description:"Support for selection",depends:["selectable"]}]}),function(n,t){var i=window.kendo,f="change",c="cancel",l="dataBound",a="dataBinding",e=i.ui.Widget,r=i.keys,v=">*",y="progress",p="error",s="k-state-focused",w="k-state-selected",h="k-edit-item",tt="string",b="edit",k="remove",d="save",it="click",u=".kendoListView",o=n.proxy,g=i._activeElement,nt=i.ui.progress,rt=i.data.DataSource,ut=e.extend({init:function(t,r){var u=this;r=n.isArray(r)?{dataSource:r}:r;e.fn.init.call(u,t,r);r=u.options;u.wrapper=t=u.element;t[0].id&&(u._itemId=t[0].id+"_lv_active");u._element();u._dataSource();u._templates();u._navigatable();u._selectable();u._pageable();u._crudHandlers();u.options.autoBind&&u.dataSource.fetch();i.notify(u)},events:[f,c,a,l,b,k,d],options:{name:"ListView",autoBind:!0,selectable:!1,navigatable:!1,template:"",altTemplate:"",editTemplate:""},setOptions:function(n){e.fn.setOptions.call(this,n);this._templates()},_templates:function(){var n=this.options;this.template=i.template(n.template||"");this.altTemplate=i.template(n.altTemplate||n.template);this.editTemplate=i.template(n.editTemplate||"")},_item:function(n){return this.element.children()[n]()},items:function(){return this.element.children()},setDataSource:function(n){this.options.dataSource=n;this._dataSource();this.options.autoBind&&n.fetch()},_unbindDataSource:function(){var n=this;n.dataSource.unbind(f,n._refreshHandler).unbind(y,n._progressHandler).unbind(p,n._errorHandler)},_dataSource:function(){var n=this;n.dataSource&&n._refreshHandler?n._unbindDataSource():(n._refreshHandler=o(n.refresh,n),n._progressHandler=o(n._progress,n),n._errorHandler=o(n._error,n));n.dataSource=rt.create(n.options.dataSource).bind(f,n._refreshHandler).bind(y,n._progressHandler).bind(p,n._errorHandler)},_progress:function(){nt(this.element,!0)},_error:function(){nt(this.element,!1)},_element:function(){this.element.addClass("k-widget k-listview").attr("role","listbox")},refresh:function(n){var t=this,f=t.dataSource.view(),e,s,u,h="",r,o,c=t.template,v=t.altTemplate,y=g();if(n=n||{},n.action==="itemchange"){t._hasBindingTarget()||t.editable||(e=n.items[0],u=t.items().filter("["+i.attr("uid")+"="+e.uid+"]"),u.length>0&&(r=u.index(),u.replaceWith(c(e)),u=t.items().eq(r),u.attr(i.attr("uid"),e.uid),t.trigger("itemChange",{item:u,data:e})));return}if(!t.trigger(a,{action:n.action||"rebind",items:n.items,index:n.index})){for(t._destroyEditable(),r=0,o=f.length;r<o;r++)h+=r%2?v(f[r]):c(f[r]);for(t.element.html(h),s=t.items(),r=0,o=f.length;r<o;r++)s.eq(r).attr(i.attr("uid"),f[r].uid).attr("role","option").attr("aria-selected","false");t.element[0]===y&&t.options.navigatable&&t.current(s.eq(0));t.trigger(l)}},_pageable:function(){var t=this,r=t.options.pageable,u,f;n.isPlainObject(r)&&(f=r.pagerId,u=n.extend({},r,{dataSource:t.dataSource,pagerId:null}),t.pager=new i.ui.Pager(n("#"+f),u))},_selectable:function(){var n=this,e,t,o=n.options.selectable,s=n.options.navigatable;if(o&&(e=typeof o===tt&&o.toLowerCase().indexOf("multiple")>-1,e&&n.element.attr("aria-multiselectable",!0),n.selectable=new i.ui.Selectable(n.element,{aria:!0,multiple:e,filter:v,change:function(){n.trigger(f)}}),s))n.element.on("keydown"+u,function(i){if(i.keyCode===r.SPACEBAR){if(t=n.current(),i.target==i.currentTarget&&i.preventDefault(),e)if(i.ctrlKey){if(t&&t.hasClass(w)){t.removeClass(w);return}}else n.selectable.clear();else n.selectable.clear();n.selectable.value(t)}})},current:function(n){var r=this,f=r.element,i=r._current,u=r._itemId;if(n===t)return i;i&&i[0]&&(i[0].id===u&&i.removeAttr("id"),i.removeClass(s),f.removeAttr("aria-activedescendant"));n&&n[0]&&(u=n[0].id||u,r._scrollTo(n[0]),f.attr("aria-activedescendant",u),n.addClass(s).attr("id",u));r._current=n},_scrollTo:function(t){var u=this,i,e=!1,r="scroll",f;u.wrapper.css("overflow")=="auto"||u.wrapper.css("overflow")==r?i=u.wrapper[0]:(i=window,e=!0);f=function(u,f){var o=e?n(t).offset()[u.toLowerCase()]:t["offset"+u],s=t["client"+f],h=n(i)[r+u](),c=n(i)[f.toLowerCase()]();o+s>h+c?n(i)[r+u](o+s-c):o<h&&n(i)[r+u](o)};f("Top","Height");f("Left","Width")},_navigatable:function(){var t=this,e=t.options.navigatable,f=t.element,c=function(i){t.current(n(i.currentTarget));n(i.target).is(":button,a,:input,a>.k-icon,textarea")||f.focus()};if(e){t._tabindex();f.on("focus"+u,function(){var n=t._current;n&&n.is(":visible")||(n=t._item("first"));t.current(n)}).on("focusout"+u,function(){t._current&&t._current.removeClass(s)}).on("keydown"+u,function(u){var e=u.keyCode,o=t.current(),v=n(u.target),y=!v.is(":button,textarea,a,a>.t-icon,input"),a=v.is(":text"),s=i.preventDefault,c=f.find("."+h),p=g(),l,w;if((y||a||r.ESC==e)&&(!a||r.ESC==e||r.ENTER==e))if(r.UP===e||r.LEFT===e)o&&(o=o.prev()),t.current(!o||!o[0]?t._item("last"):o),s(u);else if(r.DOWN===e||r.RIGHT===e)o&&(o=o.next()),t.current(!o||!o[0]?t._item("first"):o),s(u);else if(r.PAGEUP===e)t.current(null),t.dataSource.page(t.dataSource.page()-1),s(u);else if(r.PAGEDOWN===e)t.current(null),t.dataSource.page(t.dataSource.page()+1),s(u);else if(r.HOME===e)t.current(t._item("first")),s(u);else if(r.END===e)t.current(t._item("last")),s(u);else if(r.ENTER===e)if(c.length!==0&&(y||a)){l=t.items().index(c);p&&p.blur();t.save();w=function(){t.element.trigger("focus");t.current(t.items().eq(l))};t.one("dataBound",w)}else t.options.editTemplate!==""&&t.edit(o);else if(r.ESC===e){if(c=f.find("."+h),c.length===0)return;l=t.items().index(c);t.cancel();t.element.trigger("focus");t.current(t.items().eq(l))}});f.on("mousedown"+u+" touchstart"+u,v,o(c,t))}},clearSelection:function(){var n=this;n.selectable.clear();n.trigger(f)},select:function(t){var r=this,i=r.selectable;if(t=n(t),t.length){i.options.multiple||(i.clear(),t=t.first());i.value(t);return}return i.value()},_destroyEditable:function(){var n=this;n.editable&&(n.editable.destroy(),delete n.editable)},_modelFromElement:function(n){var t=n.attr(i.attr("uid"));return this.dataSource.getByUid(t)},_closeEditable:function(n){var t=this,r=t.editable,u,e,o=t.template,f=!0;return r&&(n&&(f=r.end()),f&&(r.element.index()%2&&(o=t.altTemplate),u=t._modelFromElement(r.element),t._destroyEditable(),e=r.element.index(),r.element.replaceWith(o(u)),t.items().eq(e).attr(i.attr("uid"),u.uid))),f},edit:function(n){var t=this,r=t._modelFromElement(n),u,e=r.uid,f;t.cancel();n=t.items().filter("["+i.attr("uid")+"="+e+"]");f=n.index();n.replaceWith(t.editTemplate(r));u=t.items().eq(f).addClass(h).attr(i.attr("uid"),r.uid);t.editable=u.kendoEditable({model:r,clearContainer:!1,errorTemplate:!1}).data("kendoEditable");t.trigger(b,{model:r,item:u})},save:function(){var n=this,t=n.editable,i;t&&(t=t.element,i=n._modelFromElement(t),!n.trigger(d,{model:i,item:t})&&n._closeEditable(!0)&&n.dataSource.sync())},remove:function(n){var t=this,i=t.dataSource,r=t._modelFromElement(n);t.trigger(k,{model:r,item:n})||(n.hide(),i.remove(r),i.sync())},add:function(){var n=this,t=n.dataSource,i=t.indexOf((t.view()||[])[0]);i<0&&(i=0);n.cancel();t.insert(i,{});n.edit(n.element.children().first())},cancel:function(){var n=this,r=n.dataSource,t,i;n.editable&&(t=n.editable.element,i=n._modelFromElement(t),n.trigger(c,{model:i,container:t})||(r.cancelChanges(i),n._closeEditable(!1)))},_crudHandlers:function(){var t=this,r=it+u;t.element.on(r,".k-edit-button",function(r){var u=n(this).closest("["+i.attr("uid")+"]");t.edit(u);r.preventDefault()});t.element.on(r,".k-delete-button",function(r){var u=n(this).closest("["+i.attr("uid")+"]");t.remove(u);r.preventDefault()});t.element.on(r,".k-update-button",function(n){t.save();n.preventDefault()});t.element.on(r,".k-cancel-button",function(n){t.cancel();n.preventDefault()})},destroy:function(){var n=this;e.fn.destroy.call(n);n._unbindDataSource();n._destroyEditable();n.element.off(u);n.pager&&n.pager.destroy();n.selectable&&n.selectable.destroy();i.destroy(n.element)}});i.ui.plugin(ut)}(window.kendo.jQuery);kendo_module({id:"numerictextbox",name:"NumericTextBox",category:"web",description:"The NumericTextBox widget can format and display numeric, percentage or currency textbox.",depends:["core","userevents"]}),function(n,t){function ut(n,t){return'<span unselectable="on" class="k-link"><span unselectable="on" class="k-icon k-i-arrow-'+n+'" title="'+t+'">'+t+"<\/span><\/span>"}function y(i,r){var f,s=r!==t,u,e,o,h;return i.selectionStart!==t?s?(i.focus(),i.setSelectionRange(r,r)):r=[i.selectionStart,i.selectionEnd]:document.selection&&(n(i).is(":visible")&&i.focus(),f=document.selection.createRange(),s?(f.move("character",r),f.select()):(u=i.createTextRange(),e=u.duplicate(),u.moveToBookmark(f.getBookmark()),e.setEndPoint("EndToStart",u),o=e.text.length,h=o+u.text.length,r=[o,h])),r}var r=window.kendo,e=r.keys,p=r.ui,s=p.Widget,ft=r._activeElement,et=r._extractFormat,ot=r.parseFloat,st=r.support.placeholder,ht=r.getCulture,w=r._round,h="change",b="disabled",k="readonly",ct="k-input",d="spin",u=".kendoNumericTextBox",lt="touchend",at="mouseleave"+u,g="mouseenter"+u+" "+at,c="k-state-default",nt="k-state-focused",tt="k-state-hover",l="focus",f=".",a="k-state-selected",v="k-state-disabled",it="aria-disabled",rt="aria-readonly",vt=/^(-)?(\d*)$/,i=null,o=n.proxy,yt=s.extend({init:function(n,f){var e=this,p=f&&f.step!==t,h,c,a,v,y;if(s.fn.init.call(e,n,f),f=e.options,n=e.element.on("blur"+u,o(e._focusout,e)).attr("role","spinbutton"),f.placeholder=f.placeholder||n.attr("placeholder"),e._reset(),e._wrapper(),e._arrows(),e._input(),r.support.mobileOS)e._text.on(lt+u+" "+l+u,function(t){e._toggleText(!1);t.type===l&&n.focus()});else e._text.on(l+u,o(e._click,e));h=e.min(n.attr("min"));c=e.max(n.attr("max"));a=e._parse(n.attr("step"));f.min===i&&h!==i&&(f.min=h);f.max===i&&c!==i&&(f.max=c);p||a===i||(f.step=a);n.attr("aria-valuemin",f.min).attr("aria-valuemax",f.max);f.format=et(f.format);v=f.value;e.value(v!==i?v:n.val());y=n.is("[disabled]");y?e.enable(!1):e.readonly(n.is("[readonly]"));r.notify(e)},options:{name:"NumericTextBox",decimals:i,min:i,max:i,value:i,step:1,culture:"",format:"n",spinners:!0,placeholder:"",upArrowText:"Increase value",downArrowText:"Decrease value"},events:[h,d],_editable:function(n){var t=this,f=t.element,i=n.disable,r=n.readonly,e=t._text.add(f),s=t._inputWrapper.off(g);if(t._toggleText(!0),t._upArrowEventHandler.unbind("press"),t._downArrowEventHandler.unbind("press"),f.off("keydown"+u).off("keypress"+u).off("paste"+u),r||i)s.addClass(i?v:c).removeClass(i?c:v),e.attr(b,i).attr(k,r).attr(it,i).attr(rt,r);else{s.addClass(c).removeClass(v).on(g,t._toggleHover);e.removeAttr(b).removeAttr(k).attr(it,!1).attr(rt,!1);t._upArrowEventHandler.bind("press",function(n){n.preventDefault();t._spin(1);t._upArrow.addClass(a)});t._downArrowEventHandler.bind("press",function(n){n.preventDefault();t._spin(-1);t._downArrow.addClass(a)});t.element.on("keydown"+u,o(t._keydown,t)).on("keypress"+u,o(t._keypress,t)).on("paste"+u,o(t._paste,t))}},readonly:function(n){this._editable({readonly:n===t?!0:n,disable:!1})},enable:function(n){this._editable({readonly:!1,disable:!(n=n===t?!0:n)})},destroy:function(){var n=this;n.element.add(n._text).add(n._upArrow).add(n._downArrow).add(n._inputWrapper).off(u);n._upArrowEventHandler.destroy();n._downArrowEventHandler.destroy();n._form&&n._form.off("reset",n._resetHandler);s.fn.destroy.call(n)},min:function(n){return this._option("min",n)},max:function(n){return this._option("max",n)},step:function(n){return this._option("step",n)},value:function(n){var i=this,r;if(n===t)return i._value;(n=i._parse(n),r=i._adjust(n),n===r)&&(i._update(n),i._old=i._value)},focus:function(){this._focusin()},_adjust:function(n){var f=this,u=f.options,t=u.min,r=u.max;return n===i?n:(t!==i&&n<t?n=t:r!==i&&n>r&&(n=r),n)},_arrows:function(){var t=this,i,f=function(){clearTimeout(t._spinning);i.removeClass(a)},u=t.options,e=u.spinners,o=t.element;i=o.siblings(".k-icon");i[0]||(i=n(ut("n",u.upArrowText)+ut("s",u.downArrowText)).insertAfter(o),i.wrapAll('<span class="k-select"/>'));e||(i.parent().toggle(e),t._inputWrapper.addClass("k-expand-padding"));t._upArrow=i.eq(0);t._upArrowEventHandler=new r.UserEvents(t._upArrow,{release:f});t._downArrow=i.eq(1);t._downArrowEventHandler=new r.UserEvents(t._downArrow,{release:f})},_blur:function(){var n=this;n._toggleText(!0);n._change(n.element.val())},_click:function(n){var t=this;clearTimeout(t._focusing);t._focusing=setTimeout(function(){var o=n.target,l=y(o)[0],s=o.value.substring(0,l),h=t._format(t.options.format),i=h[","],r,c,u,e=0;i&&(c=new RegExp("\\"+i,"g"),u=new RegExp("([\\d\\"+i+"]+)(\\"+h[f]+")?(\\d+)?"));u&&(r=u.exec(s));r&&(e=r[0].replace(c,"").length,s.indexOf("(")!=-1&&t._value<0&&e++);t._focusin();y(t.element[0],e)})},_change:function(n){var t=this;t._update(n);n=t._value;t._old!=n&&(t._old=n,t.trigger(h),t.element.trigger(h))},_culture:function(n){return n||ht(this.options.culture)},_focusin:function(){var n=this;n._inputWrapper.addClass(nt);n._toggleText(!1);n.element[0].focus()},_focusout:function(){var n=this;clearTimeout(n._focusing);n._inputWrapper.removeClass(nt).removeClass(tt);n._blur()},_format:function(n,t){var i=this._culture(t).numberFormat;return n=n.toLowerCase(),n.indexOf("c")>-1?i=i.currency:n.indexOf("p")>-1&&(i=i.percent),i},_input:function(){var r=this,u="k-formatted-value",t=r.element.addClass(ct).show()[0],e=t.accessKey,o=r.wrapper,i;i=o.find(f+u);i[0]||(i=n('<input type="text"/>').insertBefore(t).addClass(u));try{t.setAttribute("type","text")}catch(s){t.type="text"}i[0].tabIndex=t.tabIndex;i[0].style.cssText=t.style.cssText;i.prop("placeholder",r.options.placeholder);e&&(i.attr("accesskey",e),t.accessKey="");r._text=i.addClass(t.className)},_keydown:function(n){var t=this,i=n.keyCode;i==e.DOWN?t._step(-1):i==e.UP?t._step(1):i==e.ENTER&&t._change(t.element.val())},_keypress:function(n){if(n.which!==0&&n.keyCode!==e.BACKSPACE&&n.keyCode!==e.ENTER){var i=this.element,f=String.fromCharCode(n.which),r=y(i[0]),o=r[0],s=r[1],u=this.options.min,t=i.val();t=t.substring(0,o)+f+t.substring(s);(u!==null&&u>=0&&t.charAt(0)==="-"||!this._numericRegex().test(t))&&n.preventDefault()}},_numericRegex:function(){var t=this,u=t.options,e=t._format(u.format),n=e[f],r=u.decimals;return(n===f&&(n="\\"+n),r===i&&(r=e.decimals),r===0)?vt:(t._separator!==n&&(t._separator=n,t._floatRegExp=new RegExp("^(-)?(((\\d+("+n+"\\d*)?)|("+n+"\\d*)))?$")),t._floatRegExp)},_paste:function(n){var t=this,r=n.target,u=r.value;setTimeout(function(){t._parse(r.value)===i&&t._update(u)})},_option:function(n,i){var r=this,u=r.options;if(i===t)return u[n];(i=r._parse(i),i||n!=="step")&&(u[n]=i,r.element.attr("aria-value"+n,i).attr(n,i))},_spin:function(n,t){var i=this;t=t||500;clearTimeout(i._spinning);i._spinning=setTimeout(function(){i._spin(n,50)},t);i._step(n)},_step:function(n){var t=this,i=t.element,r=t._parse(i.val())||0;ft()!=i[0]&&t._focusin();r+=t.options.step*n;t._update(t._adjust(r));t.trigger(d)},_toggleHover:function(t){n(t.currentTarget).toggleClass(tt,t.type==="mouseenter")},_toggleText:function(n){var t=this;t._text.toggle(n);t.element.toggle(!n)},_parse:function(n,t){return ot(n,this._culture(t),this.options.format)},_update:function(n){var t=this,s=t.options,h=s.format,u=s.decimals,e=t._culture(),c=t._format(h,e),o;u===i&&(u=c.decimals);n=t._parse(n,e);o=n!==i;o&&(n=parseFloat(w(n,u)));t._value=n=t._adjust(n);t._placeholder(r.toString(n,h,e));o?(n=n.toString(),n.indexOf("e")!==-1&&(n=w(+n,u)),n=n.replace(f,c[f])):n="";t.element.val(n).attr("aria-valuenow",n)},_placeholder:function(n){this._text.val(n);st||n||this._text.val(this.options.placeholder)},_wrapper:function(){var i=this,r=i.element,u=r[0],t;t=r.parents(".k-numerictextbox");t.is("span.k-numerictextbox")||(t=r.hide().wrap('<span class="k-numeric-wrap k-state-default" />').parent(),t=t.wrap("<span/>").parent());t[0].style.cssText=u.style.cssText;u.style.width="";i.wrapper=t.addClass("k-widget k-numerictextbox").addClass(u.className).css("display","");i._inputWrapper=n(t[0].firstChild)},_reset:function(){var t=this,i=t.element,r=i.attr("form"),u=r?n("#"+r):i.closest("form");u[0]&&(t._resetHandler=function(){setTimeout(function(){t.value(i[0].value)})},t._form=u.on("reset",t._resetHandler))}});p.plugin(yt)}(window.kendo.jQuery);kendo_module({id:"menu",name:"Menu",category:"web",description:"The Menu widget displays hierarchical data as a multi-level menu.",depends:["popup"]}),function(n,t){function yi(n,t){return n=n.split(" ")[!t+0]||n,n.replace("top","up").replace("bottom","down")}function pi(n,t,r){n=n.split(" ")[!t+0]||n;var u={origin:["bottom",r?"right":"left"],position:["top",r?"right":"left"]},f=/left|right/.test(n);return f?(u.origin=["top",n],u.position[1]=i.directions[n].reverse):(u.origin[0]=n,u.position[0]=i.directions[n].reverse),u.origin=u.origin.join(" "),u.position=u.position.join(" "),u}function d(t,i){try{return n.contains(t,i)}catch(r){return!1}}function oi(t){t=n(t);t.addClass("k-item").children(pt).addClass(kt);t.children("a").addClass(k).children(pt).addClass(kt);t.filter(":not([disabled])").addClass(ui);t.filter(".k-separator:empty").append(" ");t.filter("li[disabled]").addClass(y).removeAttr("disabled").attr("aria-disabled",!0);t.filter("[role]").length||t.attr("role","menuitem");t.children("."+k).length||t.contents().filter(function(){return!this.nodeName.match(ci)&&!(this.nodeType==3&&!n.trim(this.nodeValue))}).wrapAll("<span class='"+k+"'/>");b(t);c(t)}function b(t){t=n(t);t.find("> .k-link > [class*=k-i-arrow]:not(.k-sprite)").remove();t.filter(":has(.k-group)").children(".k-link:not(:has([class*=k-i-arrow]:not(.k-sprite)))").each(function(){var t=n(this),i=t.parent().parent();t.append("<span class='k-icon "+(i.hasClass(h+"-horizontal")?"k-i-arrow-s":"k-i-arrow-e")+"'/>")})}function c(t){t=n(t);t.filter(".k-first:not(:first-child)").removeClass(bt);t.filter(".k-last:not(:last-child)").removeClass(wt);t.filter(":first-child").addClass(bt);t.filter(":last-child").addClass(wt)}var i=window.kendo,si=i.ui,hi=i._activeElement,ft=i.support.touch&&i.support.mobileOS,et="mousedown",ot="click",f=n.extend,u=n.proxy,st=n.each,o=i.template,e=i.keys,g=si.Widget,ci=/^(ul|a|div)$/i,r=".kendoMenu",pt="img",ht="open",h="k-menu",k="k-link",wt="k-last",nt="close",tt="timer",bt="k-first",kt="k-image",dt="select",a="zIndex",gt="activate",ni="deactivate",ti="touchstart"+r+" MSPointerDown"+r+" pointerdown"+r,it=i.support.pointers,rt=i.support.msPointers,ct=it?"pointerover":rt?"MSPointerOver":"mouseenter",ii=it?"pointerout":rt?"MSPointerOut":"mouseleave",ri=ft||rt||it,ut="kendoPopup",ui="k-state-default",lt="k-state-hover",v="k-state-focused",y="k-state-disabled",at=".k-group",p=":not(.k-list) > .k-item",li=".k-item.k-state-disabled",vt=".k-item:not(.k-state-disabled)",ai=".k-item:not(.k-state-disabled) > .k-link",fi=":not(.k-item.k-separator)",w=fi+":eq(0)",ei=fi+":last",vi="div:not(.k-animation-container,.k-list-container)",s={content:o("<div class='k-content k-group' tabindex='-1'>#= content(item) #<\/div>"),group:o("<ul class='#= groupCssClass(group) #'#= groupAttributes(group) # role='menu' aria-hidden='true'>#= renderItems(data) #<\/ul>"),itemWrapper:o("<#= tag(item) # class='#= textClass(item) #'#= textAttributes(item) #>#= image(item) ##= sprite(item) ##= text(item) ##= arrow(data) #<\/#= tag(item) #>"),item:o("<li class='#= wrapperCssClass(group, item) #' role='menuitem' #=item.items ? \"aria-haspopup='true'\": \"\"##=item.enabled === false ? \"aria-disabled='true'\" : ''#>#= itemWrapper(data) ## if (item.items) { ##= subGroup({ items: item.items, menu: menu, group: { expanded: item.expanded } }) ## } else if (item.content || item.contentUrl) { ##= renderContent(data) ## } #<\/li>"),image:o("<img class='k-image' alt='' src='#= imageUrl #' />"),arrow:o("<span class='#= arrowClass(item, group) #'><\/span>"),sprite:o("<span class='k-sprite #= spriteCssClass #'><\/span>"),empty:o("")},yt={wrapperCssClass:function(n,t){var i="k-item",r=t.index;return i+=t.enabled===!1?" k-state-disabled":" k-state-default",n.firstLevel&&r===0&&(i+=" k-first"),r==n.length-1&&(i+=" k-last"),t.cssClass&&(i+=" "+t.cssClass),i},textClass:function(){return k},textAttributes:function(n){return n.url?" href='"+n.url+"'":""},arrowClass:function(n,t){return"k-icon"+(t.horizontal?" k-i-arrow-s":" k-i-arrow-e")},text:function(n){return n.encoded===!1?n.text:i.htmlEncode(n.text)},tag:function(n){return n.url?"a":"span"},groupAttributes:function(n){return n.expanded!==!0?" style='display:none'":""},groupCssClass:function(){return"k-group"},content:function(n){return n.content?n.content:" "}},l=g.extend({init:function(t,f){var e=this;g.fn.init.call(e,t,f);t=e.wrapper=e.element;f=e.options;e._initData(f);e._updateClasses();e._animations(f);e.nextItemZIndex=100;e._tabindex();e._focusProxy=u(e._focusHandler,e);t.on(ti,e._focusProxy).on(ot+r,li,!1).on(ot+r,vt,u(e._click,e)).on("keydown"+r,u(e._keydown,e)).on("focus"+r,u(e._focus,e)).on("focus"+r,".k-content",u(e._focus,e)).on(ti+" "+et+r,".k-content",u(e._preventClose,e)).on("blur"+r,u(e._removeHoverItem,e)).on("blur"+r,"[tabindex]",u(e._checkActiveElement,e)).on(ct+r,vt,u(e._mouseenter,e)).on(ii+r,vt,u(e._mouseleave,e)).on(ct+r+" "+ii+r+" "+et+r+" "+ot+r,ai,u(e._toggleHover,e));f.openOnClick&&(e.clicked=!1,e._documentClickHandler=u(e._documentClick,e),n(document).click(e._documentClickHandler));t.attr("role","menubar");t[0].id&&(e._ariaId=i.format("{0}_mn_active",t[0].id));i.notify(e)},events:[ht,nt,gt,ni,dt],options:{name:"Menu",animation:{open:{duration:200},close:{duration:100}},orientation:"horizontal",direction:"default",openOnClick:!1,closeOnClick:!0,hoverDelay:100},_initData:function(n){var t=this;n.dataSource&&(t.element.empty(),t.append(n.dataSource,t.element))},setOptions:function(n){var t=this.options.animation;this._animations(n);n.animation=f(!0,t,n.animation);"dataSource"in n&&this._initData(n);g.fn.setOptions.call(this,n)},destroy:function(){var t=this;g.fn.destroy.call(t);t.element.off(r);t._documentClickHandler&&n(document).unbind("click",t._documentClickHandler);i.destroy(t.element)},enable:function(n,t){return this._toggleDisabled(n,t!==!1),this},disable:function(n){return this._toggleDisabled(n,!1),this},append:function(n,t){t=this.element.find(t);var i=this._insert(n,t,t.length?t.find("> .k-group, > .k-animation-container > .k-group"):null);return st(i.items,function(){i.group.append(this);b(this)}),b(t),c(i.group.find(".k-first, .k-last").add(i.items)),this},insertBefore:function(n,t){t=this.element.find(t);var i=this._insert(n,t,t.parent());return st(i.items,function(){t.before(this);b(this);c(this)}),c(t),this},insertAfter:function(n,t){t=this.element.find(t);var i=this._insert(n,t,t.parent());return st(i.items,function(){t.after(this);b(this);c(this)}),c(t),this},_insert:function(t,i,r){var c=this,u,s,e,o;return i&&i.length||(r=c.element),e=n.isPlainObject(t),o={firstLevel:r.hasClass(h),horizontal:r.hasClass(h+"-horizontal"),expanded:!0,length:r.children().length},i&&!r.length&&(r=n(l.renderGroup({group:o})).appendTo(i)),e||n.isArray(t)?u=n(n.map(e?[t]:t,function(t,i){return typeof t=="string"?n(t).get():n(l.renderItem({group:o,item:f(t,{index:i})})).get()})):(u=n(t),s=u.find("> ul").addClass("k-group").attr("role","menu"),u=u.filter("li"),u.add(s.find("> li")).each(function(){oi(this)})),{items:u,group:r}},remove:function(n){var r;n=this.element.find(n);var u=this,t=n.parentsUntil(u.element,p),i=n.parent("ul:not(.k-menu)");return n.remove(),i&&!i.children(p).length&&(r=i.parent(".k-animation-container"),r.length?r.remove():i.remove()),t.length&&(t=t.eq(0),b(t),c(t)),u},open:function(r){var u=this,e=u.options,s=e.orientation=="horizontal",o=e.direction,c=i.support.isRtl(u.wrapper);return r=u.element.find(r),/^(top|bottom|default)$/.test(o)&&(o=c?s?(o+" left").replace("default","bottom"):"left":s?(o+" right").replace("default","bottom"):"right"),r.siblings().find(">.k-popup:visible,>.k-animation-container>.k-popup:visible").each(function(){var t=n(this).data("kendoPopup");t&&t.close()}),r.each(function(){var i=n(this);clearTimeout(i.data(tt));i.data(tt,setTimeout(function(){var r=i.find(".k-group:first:hidden"),l;if(r[0]&&u.trigger(ht,{item:i[0]})===!1){!r.find(".k-group")[0]&&r.children(".k-item").length>1?setTimeout(function(){r.css({maxHeight:n(window).height(),overflow:"auto"})}):r.css({maxHeight:"",overflow:""});i.data(a,i.css(a));i.css(a,u.nextItemZIndex++);l=r.data(ut);var y=i.parent().hasClass(h),b=y&&s,v=pi(o,y,c),p=e.animation.open.effects,w=p!==t?p:"slideIn:"+yi(o,y);l?(l=r.data(ut),l.options.origin=v.origin,l.options.position=v.position,l.options.animation.open.effects=w):l=r.kendoPopup({activate:function(){u.trigger(gt,{item:this.wrapper.parent()})},deactivate:function(){u.trigger(ni,{item:this.wrapper.parent()})},origin:v.origin,position:v.position,collision:e.popupCollision!==t?e.popupCollision:b?"fit":"fit flip",anchor:i,appendTo:i,animation:{open:f(!0,{effects:w},e.animation.open),close:e.animation.close},close:function(n){var t=n.sender.wrapper.parent();u.trigger(nt,{item:t[0]})?n.preventDefault():(t.css(a,t.data(a)),t.removeData(a),ri&&(t.removeClass(lt),u._removeHoverItem()))}}).data(ut);r.removeAttr("aria-hidden");l.open()}},u.options.hoverDelay))}),u},close:function(t){var i=this,r=i.element;return t=r.find(t),t.length||(t=r.find(">.k-item")),t.each(function(){var t=n(this);i._isRootItem(t)&&(i.clicked=!1);clearTimeout(t.data(tt));t.data(tt,setTimeout(function(){var n=t.find(".k-group:not(.k-list-container):not(.k-calendar-container):first:visible").data(ut);n&&(n.close(),n.element.attr("aria-hidden",!0))},i.options.hoverDelay))}),i},_toggleDisabled:function(t,i){this.element.find(t).each(function(){n(this).toggleClass(ui,i).toggleClass(y,!i).attr("aria-disabled",!i)})},_toggleHover:function(t){var r=n(i.eventTarget(t)||t.target).closest(p),u=t.type==ct||et.indexOf(t.type)!==-1;r.parents("li."+y).length||r.toggleClass(lt,u||t.type=="mousedown"||t.type=="click");this._removeHoverItem()},_preventClose:function(){this.options.closeOnClick||(this._closurePrevented=!0)},_checkActiveElement:function(t){var u=this,f=n(t?t.currentTarget:this._hoverItem()),r=u._findRootParent(f)[0];this._closurePrevented||setTimeout(function(){document.hasFocus()&&(d(r,i._activeElement())||!t||d(r,t.currentTarget))||u.close(r)},0);this._closurePrevented=!1},_removeHoverItem:function(){var n=this._hoverItem();n&&n.hasClass(v)&&(n.removeClass(v),this._oldHoverItem=null)},_updateClasses:function(){var n=this.element,t;n.addClass("k-widget k-reset k-header "+h).addClass(h+"-"+this.options.orientation);n.find("li > ul").addClass("k-group").attr("role","menu").attr("aria-hidden",n.is(":visible")).end().find("li > div").addClass("k-content").attr("tabindex","-1");t=n.find("> li,.k-group > li");t.each(function(){oi(this)})},_mouseenter:function(t){var i=this,r=n(t.currentTarget),f=r.children(".k-animation-container").length||r.children(at).length;t.delegateTarget==r.parents(".k-menu")[0]&&(i.options.openOnClick&&!i.clicked||ft||!d(t.currentTarget,t.relatedTarget)&&f&&i.open(r),(i.options.openOnClick&&i.clicked||ri)&&r.siblings().each(u(function(n,t){i.close(t)},i)))},_mouseleave:function(t){var r=this,i=n(t.currentTarget),u=i.children(".k-animation-container").length||i.children(at).length;if(i.parentsUntil(".k-animation-container",".k-list-container,.k-calendar-container")[0]){t.stopImmediatePropagation();return}r.options.openOnClick||ft||(it||rt)&&t.originalEvent.pointerType==t.originalEvent.MSPOINTER_TYPE_TOUCH||d(t.currentTarget,t.relatedTarget||t.target)||!u||r.close(i)},_click:function(t){var r=this,c,f=r.options,e=n(i.eventTarget(t)),o=e[0]?e[0].nodeName.toUpperCase():"",v=o=="INPUT"||o=="SELECT"||o=="BUTTON"||o=="LABEL",l=e.closest("."+k),u=e.closest(p),w=l.attr("href"),s,b,a=!!w&&w!==n("<a href='#' />").attr("href");if(!u.children(vi)[0]){if(u.hasClass(y)){t.preventDefault();return}if(t.handled||!r.trigger(dt,{item:u[0]})||v||t.preventDefault(),t.handled=!0,s=u.children(at+",.k-animation-container"),b=s.is(":visible"),f.closeOnClick&&!a&&(!s.length||f.openOnClick&&b)){u.removeClass(lt).css("height");r._oldHoverItem=r._findRootParent(u);r.close(l.parentsUntil(r.element,p));r.clicked=!1;"MSPointerUp".indexOf(t.type)!=-1&&t.preventDefault();return}(a&&t.enterKey&&l[0].click(),u.parent().hasClass(h)&&f.openOnClick||i.support.touch)&&(a||v||t.preventDefault(),r.clicked=!0,c=s.is(":visible")?nt:ht,f.closeOnClick||c!=nt)&&r[c](u)}},_documentClick:function(n){d(this.element[0],n.target)||(this.clicked=!1)},_focus:function(t){var i=this,r=t.target,u=i._hoverItem(),f=hi();if(r!=i.wrapper[0]&&!n(r).is(":kendoFocusable")){t.stopPropagation();n(r).closest(".k-content").closest(".k-group").closest(".k-item").addClass(v);i.wrapper.focus();return}f===t.currentTarget&&(u.length?i._moveHover([],u):i._oldHoverItem||i._moveHover([],i.wrapper.children().first()))},_keydown:function(n){var t=this,f=n.keyCode,r=t._oldHoverItem,u,o,s,h=i.support.isRtl(t.wrapper);if(n.target==n.currentTarget||f==e.ESC){if(r||(r=t._oldHoverItem=t._hoverItem()),o=t._itemBelongsToVertival(r),s=t._itemHasChildren(r),f==e.RIGHT)u=t[h?"_itemLeft":"_itemRight"](r,o,s);else if(f==e.LEFT)u=t[h?"_itemRight":"_itemLeft"](r,o,s);else if(f==e.DOWN)u=t._itemDown(r,o,s);else if(f==e.UP)u=t._itemUp(r,o,s);else if(f==e.ESC)u=t._itemEsc(r,o);else if(f==e.ENTER||f==e.SPACEBAR)u=r.children(".k-link"),u.length>0&&(t._click({target:u[0],preventDefault:function(){},enterKey:!0}),t._moveHover(r,t._findRootParent(r)));else if(f==e.TAB){u=t._findRootParent(r);t._moveHover(r,u);t._checkActiveElement();return}u&&u[0]&&(n.preventDefault(),n.stopPropagation())}},_hoverItem:function(){return this.wrapper.find(".k-item.k-state-hover,.k-item.k-state-focused").filter(":visible")},_itemBelongsToVertival:function(n){var t=this.wrapper.hasClass("k-menu-vertical");return n.length?n.parent().hasClass("k-group")||t:t},_itemHasChildren:function(n){return n.length?n.children("ul.k-group, div.k-animation-container").length>0:!1},_moveHover:function(n,t){var r=this,i=r._ariaId;n.length&&t.length&&(n.removeClass(v),n[0].id===i&&n.removeAttr("id"));t.length&&(t[0].id&&(i=t[0].id),t.addClass(v),r._oldHoverItem=t,i&&(r.element.removeAttr("aria-activedescendant"),t.attr("id",i),r.element.attr("aria-activedescendant",i)))},_findRootParent:function(n){return n.parent().hasClass("k-menu")?n:n.parentsUntil(".k-menu","li.k-item").last()},_isRootItem:function(n){return n.parent().hasClass("k-menu")},_itemRight:function(n,t,i){var u=this,r,f;if(!n.hasClass(y))return t?i?(u.open(n),r=n.find(".k-group").children().first()):u.options.orientation=="horizontal"&&(f=u._findRootParent(n),u.close(f),r=f.nextAll(w)):(r=n.nextAll(w),r.length||(r=n.prevAll(ei))),r&&!r.length?r=u.wrapper.children(".k-item").first():r||(r=[]),u._moveHover(n,r),r},_itemLeft:function(n,t){var r=this,i;return t?(i=n.parent().closest(".k-item"),r.close(i),r._isRootItem(i)&&r.options.orientation=="horizontal"&&(i=i.prevAll(w))):(i=n.prevAll(w),i.length||(i=n.nextAll(ei))),i.length||(i=r.wrapper.children(".k-item").last()),r._moveHover(n,i),i},_itemDown:function(n,t,i){var u=this,r;if(t)r=n.nextAll(w);else{if(!i||n.hasClass(y))return;u.open(n);r=n.find(".k-group").children().first()}return!r.length&&n.length?r=n.parent().children().first():n.length||(r=u.wrapper.children(".k-item").first()),u._moveHover(n,r),r},_itemUp:function(n,t){var r=this,i;if(t)i=n.prevAll(w);else return;return!i.length&&n.length?i=n.parent().children().last():n.length||(i=r.wrapper.children(".k-item").last()),r._moveHover(n,i),i},_itemEsc:function(n,t){var r=this,i;if(t)i=n.parent().closest(".k-item"),r.close(i),r._moveHover(n,i);else return n;return i},_focusHandler:function(t){var u=this,r=n(i.eventTarget(t)).closest(p);setTimeout(function(){u._moveHover([],r);r.children(".k-content")[0]&&r.parent().closest(".k-item").removeClass(v)},200)},_animations:function(n){n&&"animation"in n&&!n.animation&&(n.animation={open:{effects:{}},close:{hide:!0,effects:{}}})}});f(l,{renderItem:function(n){n=f({menu:{},group:{}},n);var i=s.empty,t=n.item;return s.item(f(n,{image:t.imageUrl?s.image:i,sprite:t.spriteCssClass?s.sprite:i,itemWrapper:s.itemWrapper,renderContent:l.renderContent,arrow:t.items||t.content?s.arrow:i,subGroup:l.renderGroup},yt))},renderGroup:function(n){return s.group(f({renderItems:function(n){for(var r="",t=0,i=n.items,u=i?i.length:0,e=f({length:u},n.group);t<u;t++)r+=l.renderItem(f(n,{group:e,item:f({index:t},i[t])}));return r}},n,yt))},renderContent:function(n){return s.content(f(n,yt))}});i.ui.plugin(l)}(window.kendo.jQuery);kendo_module({id:"filtermenu",name:"Filtering Menu",category:"framework",depends:["datepicker","numerictextbox","dropdownlist"],advanced:!0}),function(n){function c(t,i){t.filters&&(t.filters=n.grep(t.filters,function(n){return c(n,i),n.filters?n.filters.length:n.field!=i}))}function l(n){var i,u,t,f,e,r;if(n&&n.length)for(r=[],i=0,u=n.length;i<u;i++)t=n[i],e=t.text||t.value||t,f=t.value==null?t.text||t:t.value,r[i]={text:e,value:f};return r}function d(t,i){return n.grep(t,function(t){return t.filters?(t.filters=n.grep(t.filters,function(n){return n.field!=i}),t.filters.length):t.field!=i})}var t=window.kendo,s=t.ui,i=n.proxy,u="kendoPopup",h="init",r=".kendoFilterMenu",f="Is equal to",e="Is not equal to",a={number:"numerictextbox",date:"datepicker"},v={string:"text",number:"number",date:"date"},y=t.isFunction,o=s.Widget,p='<div><div class="k-filter-help-text">#=messages.info#<\/div><label><input type="radio" data-#=ns#bind="checked: filters[0].value" value="true" name="filters[0].value"/>#=messages.isTrue#<\/label><label><input type="radio" data-#=ns#bind="checked: filters[0].value" value="false" name="filters[0].value"/>#=messages.isFalse#<\/label><div><button type="submit" class="k-button">#=messages.filter#<\/button><button type="reset" class="k-button">#=messages.clear#<\/button><\/div><\/div>',w='<div><div class="k-filter-help-text">#=messages.info#<\/div><select data-#=ns#bind="value: filters[0].operator" data-#=ns#role="dropdownlist">#for(var op in operators){#<option value="#=op#">#=operators[op]#<\/option>#}#<\/select>#if(values){#<select data-#=ns#bind="value:filters[0].value" data-#=ns#text-field="text" data-#=ns#value-field="value" data-#=ns#source=\'#=kendo.stringify(values).replace(/\'/g,"&\\#39;")#\' data-#=ns#role="dropdownlist" data-#=ns#option-label="#=messages.selectValue#"><\/select>#}else{#<input data-#=ns#bind="value:filters[0].value" class="k-textbox" type="text" #=role ? "data-" + ns + "role=\'" + role + "\'" : ""# />#}##if(extra){#<select class="k-filter-and" data-#=ns#bind="value: logic" data-#=ns#role="dropdownlist"><option value="and">#=messages.and#<\/option><option value="or">#=messages.or#<\/option><\/select><select data-#=ns#bind="value: filters[1].operator" data-#=ns#role="dropdownlist">#for(var op in operators){#<option value="#=op#">#=operators[op]#<\/option>#}#<\/select>#if(values){#<select data-#=ns#bind="value:filters[1].value" data-#=ns#text-field="text" data-#=ns#value-field="value" data-#=ns#source=\'#=kendo.stringify(values).replace(/\'/g,"&\\#39;")#\' data-#=ns#role="dropdownlist" data-#=ns#option-label="#=messages.selectValue#"><\/select>#}else{#<input data-#=ns#bind="value: filters[1].value" class="k-textbox" type="text" #=role ? "data-" + ns + "role=\'" + role + "\'" : ""#/>#}##}#<div><button type="submit" class="k-button">#=messages.filter#<\/button><button type="reset" class="k-button">#=messages.clear#<\/button><\/div><\/div>',b='<div data-#=ns#role="view" data-#=ns#init-widgets="false" class="k-grid-filter-menu"><div data-#=ns#role="header" class="k-header"><button class="k-button k-cancel">#=messages.cancel#<\/button>#=field#<button type="submit" class="k-button k-submit">#=messages.filter#<\/button><\/div><form class="k-filter-menu k-mobile-list k-secondary"><ul class="k-filter-help-text"><li><span class="k-link">#=messages.info#<\/span><ul><li class="k-item"><label class="k-label">#=messages.operator#<select data-#=ns#bind="value: filters[0].operator">#for(var op in operators){#<option value="#=op#">#=operators[op]#<\/option>#}#<\/select><\/label><\/li><li class="k-item"><label class="k-label">#=messages.value##if(values){#<select data-#=ns#bind="value:filters[0].value"><option value="">#=messages.selectValue#<\/option>#for(var val in values){#<option value="#=values[val].value#">#=values[val].text#<\/option>#}#<\/select>#}else{#<input data-#=ns#bind="value:filters[0].value" class="k-textbox" type="#=inputType#" #=useRole ? "data-" + ns + "role=\'" + role + "\'" : ""# />#}#<\/label><\/li>#if(extra){#<\/ul><ul class="k-filter-help-text"><li><span class="k-link"><\/span><li class="k-item"><label class="k-label"><input type="radio" name="logic" class="k-check" data-#=ns#bind="checked: logic" value="and" />#=messages.and#<\/label><\/li><li class="k-item"><label class="k-label"><input type="radio" name="logic" class="k-check" data-#=ns#bind="checked: logic" value="or" />#=messages.or#<\/label><\/li><\/ul><ul class="k-filter-help-text"><li><span class="k-link"><\/span><li class="k-item"><label class="k-label">#=messages.operator#<select data-#=ns#bind="value: filters[1].operator">#for(var op in operators){#<option value="#=op#">#=operators[op]#<\/option>#}#<\/select><\/label><\/li><li class="k-item"><label class="k-label">#=messages.value##if(values){#<select data-#=ns#bind="value:filters[1].value"><option value="">#=messages.selectValue#<\/option>#for(var val in values){#<option value="#=values[val].value#">#=values[val].text#<\/option>#}#<\/select>#}else{#<input data-#=ns#bind="value:filters[1].value" class="k-textbox" type="#=inputType#" #=useRole ? "data-" + ns + "role=\'" + role + "\'" : ""# />#}#<\/label><\/li>#}#<\/ul><\/li><li class="k-button-container"><button type="reset" class="k-button">#=messages.clear#<\/button><\/li><\/ul><\/div><\/form><\/div>',k='<div data-#=ns#role="view" data-#=ns#init-widgets="false" class="k-grid-filter-menu"><div data-#=ns#role="header" class="k-header"><button class="k-button k-cancel">#=messages.cancel#<\/button>#=field#<button type="submit" class="k-button k-submit">#=messages.filter#<\/button><\/div><form class="k-filter-menu k-mobile-list k-secondary"><ul class="k-filter-help-text"><li><span class="k-link">#=messages.info#<\/span><ul><li class="k-item"><label class="k-label"><input class="k-check" type="radio" data-#=ns#bind="checked: filters[0].value" value="true" name="filters[0].value"/>#=messages.isTrue#<\/label><\/li><li class="k-item"><label class="k-label"><input class="k-check" type="radio" data-#=ns#bind="checked: filters[0].value" value="false" name="filters[0].value"/>#=messages.isFalse#<\/label><\/li><\/ul><\/li><li class="k-button-container"><button type="reset" class="k-button">#=messages.clear#<\/button><\/li><\/ul><\/form><\/div>',g=o.extend({init:function(u,f){var e=this,h="string",l,a,c,s;if(o.fn.init.call(e,u,f),l=e.operators=f.operators||{},u=e.element,f=e.options,!f.appendToElement){c=u.addClass("k-with-icon k-filterable").find(".k-grid-filter");c[0]||(c=u.prepend('<a class="k-grid-filter" href="#"><span class="k-icon k-filter"/><\/a>').find(".k-grid-filter"));c.attr("tabindex",-1).on("click"+r,i(e._click,e))}e.link=c||n();e.dataSource=f.dataSource;e.field=f.field||u.attr(t.attr("field"));e.model=e.dataSource.reader.model;e._parse=function(n){return n+""};e.model&&e.model.fields&&(s=e.model.fields[e.field],s&&(h=s.type||"string",s.parse&&(e._parse=i(s.parse,s))));f.values&&(h="enums");e.type=h;l=l[h]||f.operators[h];for(a in l)break;e._defaultFilter=function(){return{field:e.field,operator:a||"eq",value:""}};e._refreshHandler=i(e.refresh,e);e.dataSource.bind("change",e._refreshHandler);f.appendToElement?e._init():e.refresh()},_init:function(){var u=this,f=u.options.ui,o=y(f),e;u.pane=u.options.pane;u.pane&&(u._isMobile=!0);o||(e=f||a[u.type]);u._isMobile?u._createMobileForm(e):u._createForm(e);u.form.on("submit"+r,i(u._submit,u)).on("reset"+r,i(u._reset,u));o&&u.form.find(".k-textbox").removeClass("k-textbox").each(function(){f(n(this))});u.form.find("["+t.attr("role")+"=numerictextbox]").removeClass("k-textbox").end().find("["+t.attr("role")+"=datetimepicker]").removeClass("k-textbox").end().find("["+t.attr("role")+"=timepicker]").removeClass("k-textbox").end().find("["+t.attr("role")+"=datepicker]").removeClass("k-textbox");u.refresh();u.trigger(h,{field:u.field,container:u.form})},_createForm:function(f){var e=this,o=e.options,h=e.operators||{},s=e.type;h=h[s]||o.operators[s];e.form=n('<form class="k-filter-menu k-secondary"/>').html(t.template(s==="boolean"?p:w)({field:e.field,format:o.format,ns:t.ns,messages:o.messages,extra:o.extra,operators:h,type:s,role:f,values:l(o.values)}));o.appendToElement?(e.element.append(e.form),e.popup=e.element.closest(".k-popup").data(u)):e.popup=e.form[u]({anchor:e.link,open:i(e._open,e),activate:i(e._activate,e),close:e.options.closeCallback}).data(u);e.form.on("keydown"+r,i(e._keydown,e))},_createMobileForm:function(i){var r=this,f=r.options,e=r.operators||{},u=r.type;e=e[u]||f.operators[u];r.form=n("<div />").html(t.template(u==="boolean"?k:b)({field:r.field,format:f.format,ns:t.ns,messages:f.messages,extra:f.extra,operators:e,type:u,role:i,useRole:!t.support.input.date&&u==="date"||u==="number",inputType:v[u],values:l(f.values)}));r.view=r.pane.append(r.form.html());r.form=r.view.element.find("form");r.view.element.on("click",".k-submit",function(n){r.form.submit();n.preventDefault()}).on("click",".k-cancel",function(n){r._closeForm();n.preventDefault()})},refresh:function(){var n=this,i=n.dataSource.filter()||{filters:[],logic:"and"};n.filterModel=t.observable({logic:"and",filters:[n._defaultFilter(),n._defaultFilter()]});n.form&&t.bind(n.form.children().first(),n.filterModel);n._bind(i)?n.link.addClass("k-state-active"):n.link.removeClass("k-state-active")},destroy:function(){var n=this;o.fn.destroy.call(n);n.form&&(t.unbind(n.form),t.destroy(n.form),n.form.unbind(r),n.popup&&n.popup.destroy());n.view&&n.view.purge();n.link.unbind(r);n._refreshHandler&&n.dataSource.unbind("change",n._refreshHandler)},_bind:function(n){for(var i=this,s=n.filters,f=!1,o=0,e=i.filterModel,r,t,u=0,h=s.length;u<h;u++)t=s[u],t.field==i.field?(e.set("logic",n.logic),r=e.filters[o],r||(e.filters.push({field:i.field}),r=e.filters[o]),r.set("value",i._parse(t.value)),r.set("operator",t.operator),o++,f=!0):t.filters&&(f=f||i._bind(t));return f},_merge:function(t){var f=this,s=t.logic||"and",r=t.filters,e,i=f.dataSource.filter()||{filters:[],logic:"and"},u,o;for(c(i,f.field),r=n.grep(r,function(n){return n.value!==""&&n.value!=null}),u=0,o=r.length;u<o;u++)e=r[u],e.value=f._parse(e.value);return r.length&&(i.filters.length?(t.filters=r,i.logic!=="and"&&(i.filters=[{logic:i.logic,filters:i.filters}],i.logic="and"),r.length>1?i.filters.push(t):i.filters.push(r[0])):(i.filters=r,i.logic=s)),i},filter:function(n){n=this._merge(n);n.filters.length&&this.dataSource.filter(n)},clear:function(){var i=this,t=i.dataSource.filter()||{filters:[]};t.filters=n.grep(t.filters,function(n){return n.filters?(n.filters=d(n.filters,i.field),n.filters.length):n.field!=i.field});t.filters.length||(t=null);i.dataSource.filter(t)},_submit:function(n){n.preventDefault();n.stopPropagation();this.filter(this.filterModel.toJSON());this._closeForm()},_reset:function(){this.clear();this._closeForm()},_closeForm:function(){this._isMobile?this.pane.navigate("",this.options.animations.right):this.popup.close()},_click:function(n){n.preventDefault();n.stopPropagation();this.popup||this.pane||this._init();this._isMobile?this.pane.navigate(this.view,this.options.animations.left):this.popup.toggle()},_open:function(){var t;n(".k-filter-menu").not(this.form).each(function(){t=n(this).data(u);t&&t.close()})},_activate:function(){this.form.find(":kendoFocusable:first").focus()},_keydown:function(n){n.keyCode==t.keys.ESC&&this.popup.close()},events:[h],options:{name:"FilterMenu",extra:!0,appendToElement:!1,type:"string",operators:{string:{eq:f,neq:e,startswith:"Starts with",contains:"Contains",doesnotcontain:"Does not contain",endswith:"Ends with"},number:{eq:f,neq:e,gte:"Is greater than or equal to",gt:"Is greater than",lte:"Is less than or equal to",lt:"Is less than"},date:{eq:f,neq:e,gte:"Is after or equal to",gt:"Is after",lte:"Is before or equal to",lt:"Is before"},enums:{eq:f,neq:e}},messages:{info:"Show items with value that:",isTrue:"is true",isFalse:"is false",filter:"Filter",clear:"Clear",and:"And",or:"Or",selectValue:"-Select value-",operator:"Operator",value:"Value",cancel:"Cancel"},animations:{left:"slide",right:"slide:right"}}});s.plugin(g)}(window.kendo.jQuery);kendo_module({id:"panelbar",name:"PanelBar",category:"web",description:"The PanelBar widget displays hierarchical data as a multi-level expandable panel bar.",depends:["core"]}),function(n,t){function wt(t){t=n(t);t.children(r).children(".k-icon").remove();t.filter(":has(.k-panel),:has(.k-content)").children(".k-link:not(:has([class*=k-i-arrow]))").each(function(){var t=n(this),i=t.parent();t.append("<span class='k-icon "+(i.hasClass(w)?"k-i-arrow-n k-panelbar-collapse":"k-i-arrow-s k-panelbar-expand")+"'/>")})}function a(t){t=n(t);t.filter(".k-first:not(:first-child)").removeClass(ct);t.filter(".k-last:not(:last-child)").removeClass(ht);t.filter(":first-child").addClass(ct);t.filter(":last-child").addClass(ht)}var e=window.kendo,oi=e.ui,o=e.keys,i=n.extend,ot=n.each,s=e.template,nt=oi.Widget,si=/^(ul|a|div)$/i,h=".kendoPanelBar",bt="img",st="href",ht="k-last",tt="k-link",r="."+tt,kt="error",u=".k-item",b=".k-group:visible",dt="k-image",ct="k-first",lt="expand",at="select",it="k-content",gt="activate",rt="collapse",ni="mouseenter",hi="mouseleave",ti="contentLoad",w="k-state-active",v="> .k-panel",k="> .k-content",ii="k-state-focused",f="k-state-disabled",d="k-state-selected",ut="."+d,c="k-state-highlight",ft=u+":not(.k-state-disabled)",ri=ft+" > .k-link",ci=u+".k-state-disabled > .k-link",ui="> li > "+ut+", .k-panel > li > "+ut,fi="k-state-default",vt="aria-disabled",g="aria-expanded",yt="aria-hidden",et="aria-selected",y=":visible",li=":empty",ei="single",l={content:s("<div role='region' class='k-content'#= contentAttributes(data) #>#= content(item) #<\/div>"),group:s("<ul role='group' aria-hidden='true' class='#= groupCssClass(group) #'#= groupAttributes(group) #>#= renderItems(data) #<\/ul>"),itemWrapper:s("<#= tag(item) # class='#= textClass(item, group) #' #= contentUrl(item) ##= textAttributes(item) #>#= image(item) ##= sprite(item) ##= text(item) ##= arrow(data) #<\/#= tag(item) #>"),item:s("<li role='menuitem' #=aria(item)#class='#= wrapperCssClass(group, item) #'>#= itemWrapper(data) ## if (item.items) { ##= subGroup({ items: item.items, panelBar: panelBar, group: { expanded: item.expanded } }) ## } else if (item.content || item.contentUrl) { ##= renderContent(data) ## } #<\/li>"),image:s("<img class='k-image' alt='' src='#= imageUrl #' />"),arrow:s("<span class='#= arrowClass(item) #'><\/span>"),sprite:s("<span class='k-sprite #= spriteCssClass #'><\/span>"),empty:s("")},pt={aria:function(n){var t="";return(n.items||n.content||n.contentUrl)&&(t+=g+"='"+(n.expanded?"true":"false")+"' "),n.enabled===!1&&(t+=vt+"='true'"),t},wrapperCssClass:function(n,t){var i="k-item",r=t.index;return i+=t.enabled===!1?" "+f:t.expanded===!0?" "+w:" k-state-default",r===0&&(i+=" k-first"),r==n.length-1&&(i+=" k-last"),t.cssClass&&(i+=" "+t.cssClass),i},textClass:function(n,t){var i=tt;return t.firstLevel&&(i+=" k-header"),i},textAttributes:function(n){return n.url?" href='"+n.url+"'":""},arrowClass:function(n){return"k-icon"+(n.expanded?" k-i-arrow-n k-panelbar-collapse":" k-i-arrow-s k-panelbar-expand")},text:function(n){return n.encoded===!1?n.text:e.htmlEncode(n.text)},tag:function(n){return n.url||n.contentUrl?"a":"span"},groupAttributes:function(n){return n.expanded!==!0?" style='display:none'":""},groupCssClass:function(){return"k-group k-panel"},contentAttributes:function(n){return n.item.expanded!==!0?" style='display:none'":""},content:function(n){return n.content?n.content:n.contentUrl?"":" "},contentUrl:function(n){return n.contentUrl?'href="'+n.contentUrl+'"':""}},p=nt.extend({init:function(t,i){var r=this,u;nt.fn.init.call(r,t,i);t=r.wrapper=r.element.addClass("k-widget k-reset k-header k-panelbar");i=r.options;t[0].id&&(r._itemId=t[0].id+"_pb_active");r._tabindex();r._initData(i);r._updateClasses();r._animations(i);t.on("click"+h,ri,function(t){r._click(n(t.currentTarget))&&t.preventDefault()}).on(ni+h+" "+hi+h,ri,r._toggleHover).on("click"+h,ci,!1).on("keydown"+h,n.proxy(r._keydown,r)).on("focus"+h,function(){var n=r.select();r._current(n[0]?n:r._first())}).on("blur"+h,function(){r._current(null)}).attr("role","menu");u=t.find("li."+w+" > ."+it);u[0]&&r.expand(u.parent(),!1);e.notify(r)},events:[lt,rt,at,gt,kt,ti],options:{name:"PanelBar",animation:{expand:{effects:"expand:vertical",duration:200},collapse:{duration:200}},expandMode:"multiple"},destroy:function(){nt.fn.destroy.call(this);this.element.off(h);e.destroy(this.element)},_initData:function(n){var t=this;n.dataSource&&(t.element.empty(),t.append(n.dataSource,t.element))},setOptions:function(n){var t=this.options.animation;this._animations(n);n.animation=i(!0,t,n.animation);"dataSource"in n&&this._initData(n);nt.fn.setOptions.call(this,n)},expand:function(t,i){var r=this,u={};return i=i!==!1,t=this.element.find(t),t.each(function(e,o){o=n(o);var s=o.find(v).add(o.find(k));if(!o.hasClass(f)&&s.length>0){if(r.options.expandMode==ei&&r._collapseAllExpanded(o))return r;t.find("."+c).removeClass(c);o.addClass(c);i||(u=r.options.animation,r.options.animation={expand:{effects:{}},collapse:{hide:!0,effects:{}}});r._triggerEvent(lt,o)||r._toggleItem(o,!1);i||(r.options.animation=u)}}),r},collapse:function(t,i){var r=this,u={};return i=i!==!1,t=r.element.find(t),t.each(function(t,e){e=n(e);var o=e.find(v).add(e.find(k));!e.hasClass(f)&&o.is(y)&&(e.removeClass(c),i||(u=r.options.animation,r.options.animation={expand:{effects:{}},collapse:{hide:!0,effects:{}}}),r._triggerEvent(rt,e)||r._toggleItem(e,!0),i||(r.options.animation=u))}),r},_toggleDisabled:function(n,t){n=this.element.find(n);n.toggleClass(fi,t).toggleClass(f,!t).attr(vt,!t)},select:function(i){var u=this;return i===t?u.element.find(ui).parent():(u.element.find(i).each(function(){var t=n(this),i=t.children(r);if(t.hasClass(f))return u;u._triggerEvent(at,t)||u._updateSelected(i)}),u)},enable:function(n,t){return this._toggleDisabled(n,t!==!1),this},disable:function(n){return this._toggleDisabled(n,!1),this},append:function(n,t){t=this.element.find(t);var i=this._insert(n,t,t.length?t.find(v):null);return ot(i.items,function(){i.group.append(this);a(this)}),wt(t),a(i.group.find(".k-first, .k-last")),i.group.height("auto"),this},insertBefore:function(n,t){t=this.element.find(t);var i=this._insert(n,t,t.parent());return ot(i.items,function(){t.before(this);a(this)}),a(t),i.group.height("auto"),this},insertAfter:function(n,t){t=this.element.find(t);var i=this._insert(n,t,t.parent());return ot(i.items,function(){t.after(this);a(this)}),a(t),i.group.height("auto"),this},remove:function(n){n=this.element.find(n);var r=this,t=n.parentsUntil(r.element,u),i=n.parent("ul");return n.remove(),!i||i.hasClass("k-panelbar")||i.children(u).length||i.remove(),t.length&&(t=t.eq(0),wt(t),a(t)),r},reload:function(t){var i=this;t=i.element.find(t);t.each(function(){var t=n(this);i._ajaxRequest(t,t.children("."+it),!t.is(y))})},_first:function(){return this.element.children(ft).first()},_last:function(){var n=this.element.children(ft).last(),t=n.children(b);return t[0]?t.children(ft).last():n},_current:function(n){var i=this,u=i._focused,f=i._itemId;if(n===t)return u;i.element.removeAttr("aria-activedescendant");u&&(u[0].id===f&&u.removeAttr("id"),u.children(r).removeClass(ii));n&&(f=n[0].id||f,n.attr("id",f).children(r).addClass(ii),i.element.attr("aria-activedescendant",f));i._focused=n},_keydown:function(n){var t=this,i=n.keyCode,u=t._current();n.target==n.currentTarget&&(i==o.DOWN||i==o.RIGHT?(t._current(t._nextItem(u)),n.preventDefault()):i==o.UP||i==o.LEFT?(t._current(t._prevItem(u)),n.preventDefault()):i==o.ENTER||i==o.SPACEBAR?(t._click(u.children(r)),n.preventDefault()):i==o.HOME?(t._current(t._first()),n.preventDefault()):i==o.END&&(t._current(t._last()),n.preventDefault()))},_nextItem:function(n){if(!n)return this._first();var i=n.children(b),t=n.next();return i[0]&&(t=i.children("."+ct)),t[0]||(t=n.parent(b).parent(u).next()),t[0]&&t.is(":visible")||(t=this._first()),t.hasClass(f)&&(t=this._nextItem(t)),t},_prevItem:function(n){if(!n)return this._last();var t=n.prev(),i;if(t[0])for(i=t;i[0];)i=i.children(b).children("."+ht),i[0]&&(t=i);else t=n.parent(b).parent(u),t[0]||(t=this._last());return t.hasClass(f)&&(t=this._prevItem(t)),t},_insert:function(t,r,u){var s=this,f,h=n.isPlainObject(t),e=r&&r[0],o;return e||(u=s.element),o={firstLevel:u.hasClass("k-panelbar"),expanded:u.parent().hasClass(w),length:u.children().length},e&&!u.length&&(u=n(p.renderGroup({group:o})).appendTo(r)),h||n.isArray(t)?(f=n.map(h?[t]:t,function(t,r){return typeof t=="string"?n(t):n(p.renderItem({group:o,item:i(t,{index:r})}))}),e&&r.attr(g,!1)):(f=n(t),s._updateItemsClasses(f)),{items:f,group:u}},_toggleHover:function(t){var i=n(t.currentTarget);i.parents("li."+f).length||i.toggleClass("k-state-hover",t.type==ni)},_updateClasses:function(){var i=this,r,t;r=i.element.find("li > ul").not(function(){return n(this).parentsUntil(".k-panelbar","div").length}).addClass("k-group k-panel").attr("role","group");r.parent().attr(g,!1).not("."+w).children("ul").attr(yt,!0).hide();t=i.element.add(r).children();i._updateItemsClasses(t);wt(t);a(t)},_updateItemsClasses:function(n){for(var i=n.length,t=0;t<i;t++)this._updateItemClasses(n[t],t)},_updateItemClasses:function(t,i){var s=this._selected,f=this.options.contentUrls,h=f&&f[i],c=this.element[0],o,u;t=n(t).addClass("k-item").attr("role","menuitem");e.support.browser.msie&&t.css("list-style-position","inside").css("list-style-position","");t.children(bt).addClass(dt);u=t.children("a").addClass(tt);u[0]&&(u.attr("href",h),u.children(bt).addClass(dt));t.filter(":not([disabled]):not([class*=k-state])").addClass("k-state-default");t.filter("li[disabled]").addClass("k-state-disabled").attr(vt,!0).removeAttr("disabled");t.children("div").addClass(it).attr("role","region").attr(yt,!0).hide().parent().attr(g,!1);u=t.children(ut);u[0]&&(s&&s.removeAttr(et).children(ut).removeClass(d),u.addClass(d),this._selected=t.attr(et,!0));t.children(r)[0]||(o="<span class='"+tt+"'/>",f&&f[i]&&t[0].parentNode==c&&(o='<a class="k-link k-header" href="'+f[i]+'"/>'),t.contents().filter(function(){return!this.nodeName.match(si)&&!(this.nodeType==3&&!n.trim(this.nodeValue))}).wrapAll(o));t.parent(".k-panelbar")[0]&&t.children(r).addClass("k-header")},_click:function(n){var t=this,a=t.element,i,o,s,l,h,e,c;if(!n.parents("li."+f).length)return n.closest(".k-widget")[0]!=a[0]?void 0:(h=n.closest(r),e=h.closest(u),t._updateSelected(h),o=e.find(v).add(e.find(k)),s=h.attr(st),l=s&&(s.charAt(s.length-1)=="#"||s.indexOf("#"+t.element[0].id+"-")!=-1),i=!!(l||o.length),o.data("animating"))?i:(t._triggerEvent(at,e)&&(i=!0),i===!1)?void 0:t.options.expandMode==ei&&t._collapseAllExpanded(e)?i:(o.length&&(c=o.is(y),t._triggerEvent(c?rt:lt,e)||(i=t._toggleItem(e,c))),i)},_toggleItem:function(n,i){var e=this,o=n.find(v),s=n.find(r),h=s.attr(st),f,u;return o.length?(this._toggleGroup(o,i),f=!0):(u=n.children("."+it),u.length&&(f=!0,u.is(li)&&h!==t?e._ajaxRequest(n,u,i):e._toggleGroup(u,i))),f},_toggleGroup:function(n,t){var e=this,o=e.options.animation,r=o.expand,f=i({},o.collapse),s=f&&"effects"in f;n.is(y)==t&&(n.parent().attr(g,!t).attr(yt,t).toggleClass(fi,t).toggleClass(w,!t).find("> .k-link > .k-icon").toggleClass("k-i-arrow-n",!t).toggleClass("k-panelbar-collapse",!t).toggleClass("k-i-arrow-s",t).toggleClass("k-panelbar-expand",t),r=t?i(s?f:i({reverse:!0},r),{hide:!0}):i({complete:function(n){e._triggerEvent(gt,n.closest(u))}},r),n.kendoStop(!0,!0).kendoAnimate(r))},_collapseAllExpanded:function(t){var e=this,o,i=!1,f;if(t.children(r).hasClass("k-header"))return f=t.find(v).add(t.find(k)),f.is(y)&&(i=!0),f.is(y)||f.length===0||(o=n(e.element).children(),o.find(v).add(o.find(k)).filter(function(){return n(this).is(y)}).each(function(t,r){r=n(r);i=e._triggerEvent(rt,r.closest(u));i||e._toggleGroup(r,!0)})),i},_ajaxRequest:function(t,i,u){var f=this,e=t.find(".k-panelbar-collapse, .k-panelbar-expand"),s=t.find(r),h=setTimeout(function(){e.addClass("k-loading")},100),o=s.attr(st);n.ajax({type:"GET",cache:!1,url:o,dataType:"html",data:{},error:function(n,t){e.removeClass("k-loading");f.trigger(kt,{xhr:n,status:t})&&this.complete()},complete:function(){clearTimeout(h);e.removeClass("k-loading")},success:function(n){try{i.html(n)}catch(e){var r=window.console;r&&r.error&&r.error(e.name+": "+e.message+" in "+o);this.error(this.xhr,"error")}f._toggleGroup(i,u);f.trigger(ti,{item:t[0],contentElement:i[0]})}})},_triggerEvent:function(n,t){var i=this;return i.trigger(n,{item:t[0]})},_updateSelected:function(n){var t=this,i=t.element,r=n.parent(u),f=t._selected;f&&f.removeAttr(et);t._selected=r.attr(et,!0);i.find(ui).removeClass(d);i.find("> ."+c+", .k-panel > ."+c).removeClass(c);n.addClass(d);n.parentsUntil(i,u).filter(":has(.k-header)").addClass(c);t._current(r)},_animations:function(n){n&&"animation"in n&&!n.animation&&(n.animation={expand:{effects:{}},collapse:{hide:!0,effects:{}}})}});i(p,{renderItem:function(n){n=i({panelBar:{},group:{}},n);var r=l.empty,t=n.item;return l.item(i(n,{image:t.imageUrl?l.image:r,sprite:t.spriteCssClass?l.sprite:r,itemWrapper:l.itemWrapper,renderContent:p.renderContent,arrow:t.items||t.content||t.contentUrl?l.arrow:r,subGroup:p.renderGroup},pt))},renderGroup:function(n){return l.group(i({renderItems:function(n){for(var u="",t=0,r=n.items,f=r?r.length:0,e=i({length:f},n.group);t<f;t++)u+=p.renderItem(i(n,{group:e,item:i({index:t},r[t])}));return u}},n,pt))},renderContent:function(n){return l.content(i(n,pt))}});e.ui.plugin(p)}(window.kendo.jQuery);kendo_module({id:"timepicker",name:"TimePicker",category:"web",description:"The TimePicker widget allows the end user to select a value from a list of predefined values or to type a new value.",depends:["popup"]}),function(n,t){function ui(n,t,i){var u=n.getTimezoneOffset(),r;n.setTime(n.getTime()+t);i||(r=n.getTimezoneOffset()-u,n.setTime(n.getTime()+r*h))}function fi(){var n=new u,t=new u(n.getFullYear(),n.getMonth(),n.getDate(),0,0,0),i=new u(n.getFullYear(),n.getMonth(),n.getDate(),12,0,0);return-1*(t.getTimezoneOffset()-i.getTimezoneOffset())}function e(n){return n.getHours()*60*h+n.getMinutes()*h+n.getSeconds()*1e3+n.getMilliseconds()}function kt(n,t,i){var u=e(t),f=e(i),r;return!n||u==f?!0:(r=e(n),u>r&&(r+=s),f<u&&(f+=s),r>=u&&r<=f)}function gt(n){var t=n.parseFormats;n.format=ii(n.format||r.getCulture(n.culture).calendars.standard.patterns.t);t=bt(t)?t:[t];t.splice(0,0,n.format);n.parseFormats=t}function ni(n){n.preventDefault()}var r=window.kendo,o=r.keys,ti=r._activeElement,ii=r._extractFormat,l=r.support,tt=l.browser,p=r.ui,a=p.Widget,it="open",rt="close",w="change",i=".kendoTimePicker",ut="click"+i,b="k-state-default",ft="disabled",et="readonly",k="li",ot="<span/>",st="k-state-focused",d="k-state-hover",ri="mouseenter"+i+" mouseleave"+i,ht="mousedown"+i,h=6e4,s=864e5,ct="k-state-selected",g="k-state-disabled",lt="aria-selected",at="aria-expanded",vt="aria-hidden",yt="aria-disabled",pt="aria-readonly",wt="aria-activedescendant",v="id",bt=n.isArray,nt=n.extend,y=n.proxy,u=Date,f=new u,c,dt;f=new u(f.getFullYear(),f.getMonth(),f.getDate(),0,0,0);c=function(t){var u=this,f=t.id;u.options=t;u.ul=n('<ul tabindex="-1" role="listbox" aria-hidden="true" unselectable="on" class="k-list k-reset"/>').css({overflow:l.kineticScrollNeeded?"":"auto"}).on(ut,k,y(u._click,u)).on("mouseenter"+i,k,function(){n(this).addClass(d)}).on("mouseleave"+i,k,function(){n(this).removeClass(d)});u.list=n("<div class='k-list-container'/>").append(u.ul).on(ht,ni);f&&(u._timeViewID=f+"_timeview",u._optionID=f+"_option_selected",u.ul.attr(v,u._timeViewID));u._popup();u.template=r.template('<li tabindex="-1" role="option" class="k-item" unselectable="on">#=data#<\/li>',{useWithBlock:!1})};c.prototype={current:function(i){var r=this,u=r.options.active;if(i!==t)r._current&&r._current.removeClass(ct).removeAttr(lt).removeAttr(v),i&&(i=n(i).addClass(ct).attr(v,r._optionID).attr(lt,!0),r.scroll(i[0])),r._current=i,u&&u(i);else return r._current},close:function(){this.popup.close()},destroy:function(){var n=this;n.ul.off(i);n.list.off(i);n._touchScroller&&n._touchScroller.destroy();n.popup.destroy()},open:function(){var n=this;n.ul[0].firstChild||n.bind();n.popup.open();n._current&&n.scroll(n._current[0])},dataBind:function(n){for(var i=this,t=i.options,s=t.format,h=r.toString,c=i.template,e=n.length,u=0,f,o="";u<e;u++)f=n[u],kt(f,t.min,t.max)&&(o+=c(h(f,s,t.culture)));i._html(o,e)},refresh:function(){var l=this,i=l.options,g=i.format,y=fi(),p=y<0,w=i.min,b=i.max,a=e(w),n=e(b),o=i.interval*h,nt=r.toString,tt=l.template,t=new u(+w),it=t.getDate(),v,k,c=0,f,d="";for(f=p?(s+y*h)/o:s/o,a!=n&&(a>n&&(n+=s),f=(n-a)/o+1),k=parseInt(f,10);c<f;c++)c&&ui(t,o,p),n&&k==c&&(v=e(t),it<t.getDate()&&(v+=s),v>n&&(t=new u(+b))),d+=tt(nt(t,g,i.culture));l._html(d,f)},bind:function(){var n=this,t=n.options.dates;t&&t[0]?n.dataBind(t):n.refresh()},_html:function(n,t){var i=this;i.ul[0].innerHTML=n;i._height(t);i.current(null);i.select(i._value)},scroll:function(n){if(n){var i=this.ul[0],t=n.offsetTop,f=n.offsetHeight,r=i.scrollTop,e=i.clientHeight,o=t+f,s=this._touchScroller,u;s?(u=this.list.height(),t>u&&(t=t-u+f),s.scrollTo(0,-t)):i.scrollTop=r>t?t:o>r+e?o-e:r}},select:function(t){var i=this,f=i.options,u=i._current;t instanceof Date&&(t=r.toString(t,f.format,f.culture));typeof t=="string"&&(u&&u.text()===t?t=u:(t=n.grep(i.ul[0].childNodes,function(n){return(n.textContent||n.innerText)==t}),t=t[0]?t:null));i.current(t)},setOptions:function(n){var t=this.options;this.options=nt(t,n,{active:t.active,change:t.change,close:t.close,open:t.open});this.bind()},toggle:function(){var n=this;n.popup.visible()?n.close():n.open()},value:function(n){var t=this;t._value=n;t.ul[0].firstChild&&t.select(n)},_click:function(t){var i=this,r=n(t.currentTarget);t.isDefaultPrevented()||(i.select(r),i.options.change(r.text(),!0),i.close())},_height:function(n){if(n){var t=this,i=t.list,u=i.parent(".k-animation-container"),r=t.options.height;i.add(u).show().height(t.ul[0].scrollHeight>r?r:"auto").hide()}},_parse:function(n){var o=this,s=o.options,t=o._value||f,i,e;return n instanceof u?n:(n!=null&&(i=n.indexOf(":"),i==-1?n=n.length<=2?n+":00":n.slice(2).length==1?n.slice(0,2)+":"+n.slice(2)+"0":n.slice(0,2)+":"+n.slice(2):i==0?n="00"+n:(e=n.split(":"),e[1].length==0?n=n+"00":e[1].length==1&&(n=n+"0"))),n=r.parseDate(n,s.parseFormats,s.culture),n&&(n=new u(t.getFullYear(),t.getMonth(),t.getDate(),n.getHours(),n.getMinutes(),n.getSeconds(),n.getMilliseconds())),n)},_adjustListWidth:function(){var t=this.list,i=t[0].style.width,r=this.options.anchor,n,u;(t.data("width")||!i)&&(n=window.getComputedStyle?window.getComputedStyle(r[0],null):0,u=n?parseFloat(n.width):r.outerWidth(),n&&(tt.mozilla||tt.msie)&&(u+=parseFloat(n.paddingLeft)+parseFloat(n.paddingRight)+parseFloat(n.borderLeftWidth)+parseFloat(n.borderRightWidth)),i=u-(t.outerWidth()-t.width()),t.css({fontFamily:r.css("font-family"),width:i}).data("width",i))},_popup:function(){var t=this,i=t.list,n=t.options,u=n.anchor;t.popup=new p.Popup(i,nt(n.popup,{anchor:u,open:n.open,close:n.close,animation:n.animation,isRtl:l.isRtl(n.anchor)}));t._touchScroller=r.touchScroller(t.popup.element)},move:function(n){var i=this,r=n.keyCode,f=i.ul[0],t=i._current,u=r===o.DOWN;if(r===o.UP||u){if(n.altKey){i.toggle(u);return}t=u?t?t[0].nextSibling:f.firstChild:t?t[0].previousSibling:f.lastChild;t&&i.select(t);i.options.change(i._current.text());n.preventDefault()}else(r===o.ENTER||r===o.TAB||r===o.ESC)&&(n.preventDefault(),t&&i.options.change(t.text(),!0),i.close())}};c.getMilliseconds=e;r.TimeView=c;dt=a.extend({init:function(n,t){var i=this,f,u,e;a.fn.init.call(i,n,t);n=i.element;t=i.options;gt(t);i._wrapper();i.timeView=u=new c(nt({},t,{id:n.attr(v),anchor:i.wrapper,format:t.format,change:function(t,r){r?i._change(t):n.val(t)},open:function(t){i.timeView._adjustListWidth();i.trigger(it)?t.preventDefault():(n.attr(at,!0),f.attr(vt,!1))},close:function(t){i.trigger(rt)?t.preventDefault():(n.attr(at,!1),f.attr(vt,!0))},active:function(t){n.removeAttr(wt);t&&n.attr(wt,u._optionID)}}));f=u.ul;i._icon();i._reset();try{n[0].setAttribute("type","text")}catch(o){n[0].type="text"}n.addClass("k-input").attr({role:"combobox","aria-expanded":!1,"aria-owns":u._timeViewID});e=n.is("[disabled]");e?i.enable(!1):i.readonly(n.is("[readonly]"));i._old=i._update(t.value||i.element.val());i._oldText=n.val();r.notify(i)},options:{name:"TimePicker",min:f,max:f,format:"",dates:[],parseFormats:[],value:null,interval:30,height:200,animation:{}},events:[it,rt,w],setOptions:function(n){var t=this,i=t._value;a.fn.setOptions.call(t,n);n=t.options;gt(n);t.timeView.setOptions(n);i&&t.element.val(r.toString(i,n.format,n.culture))},dataBind:function(n){bt(n)&&this.timeView.dataBind(n)},_editable:function(n){var t=this,r=n.disable,u=n.readonly,o=t._arrow.off(i),f=t.element.off(i),e=t._inputWrapper.off(i);if(u||r)e.addClass(r?g:b).removeClass(r?b:g),f.attr(ft,r).attr(et,u).attr(yt,r).attr(pt,u);else{e.addClass(b).removeClass(g).on(ri,t._toggleHover);f.removeAttr(ft).removeAttr(et).attr(yt,!1).attr(pt,!1).on("keydown"+i,y(t._keydown,t)).on("blur"+i,y(t._blur,t)).on("focus"+i,function(){t._inputWrapper.addClass(st)});o.on(ut,y(t._click,t)).on(ht,ni)}},readonly:function(n){this._editable({readonly:n===t?!0:n,disable:!1})},enable:function(n){this._editable({readonly:!1,disable:!(n=n===t?!0:n)})},destroy:function(){var n=this;a.fn.destroy.call(n);n.timeView.destroy();n.element.off(i);n._arrow.off(i);n._inputWrapper.off(i);n._form&&n._form.off("reset",n._resetHandler)},close:function(){this.timeView.close()},open:function(){this.timeView.open()},min:function(n){return this._option("min",n)},max:function(n){return this._option("max",n)},value:function(n){var i=this;if(n===t)return i._value;i._old=i._update(n);i._old===null&&i.element.val("");i._oldText=i.element.val()},_blur:function(){var n=this,t=n.element.val();n.close();t!==n._oldText&&n._change(t);n._inputWrapper.removeClass(st)},_click:function(){var n=this,t=n.element;n.timeView.toggle();l.touch||t[0]===ti()||t.focus()},_change:function(n){var t=this;n=t._update(n);+t._old!=+n&&(t._old=n,t._oldText=t.element.val(),t.trigger(w),t.element.trigger(w))},_icon:function(){var i=this,r=i.element,t;t=r.next("span.k-select");t[0]||(t=n('<span unselectable="on" class="k-select"><span unselectable="on" class="k-icon k-i-clock">select<\/span><\/span>').insertAfter(r));i._arrow=t.attr({role:"button","aria-controls":i.timeView._timeViewID})},_keydown:function(n){var t=this,u=n.keyCode,i=t.timeView,r=t.element.val();i.popup.visible()||n.altKey?i.move(n):u===o.ENTER&&r!==t._oldText&&t._change(r)},_option:function(n,i){var r=this,f=r.options;if(i===t)return f[n];(i=r.timeView._parse(i),i)&&(i=new u(+i),f[n]=i,r.timeView.options[n]=i,r.timeView.bind())},_toggleHover:function(t){n(t.currentTarget).toggleClass(d,t.type==="mouseenter")},_update:function(n){var i=this,u=i.options,f=i.timeView,t=f._parse(n);return kt(t,u.min,u.max)||(t=null),i._value=t,i.element.val(t?r.toString(t,u.format,u.culture):n),f.value(t),t},_wrapper:function(){var r=this,i=r.element,t;t=i.parents(".k-timepicker");t[0]||(t=i.wrap(ot).parent().addClass("k-picker-wrap k-state-default"),t=t.wrap(ot).parent());t[0].style.cssText=i[0].style.cssText;r.wrapper=t.addClass("k-widget k-timepicker k-header").addClass(i[0].className);i.css({width:"100%",height:i[0].style.height});r._inputWrapper=n(t[0].firstChild)},_reset:function(){var t=this,i=t.element,r=i.attr("form"),u=r?n("#"+r):i.closest("form");u[0]&&(t._resetHandler=function(){t.value(i[0].defaultValue)},t._form=u.on("reset",t._resetHandler))}});p.plugin(dt)}(window.kendo.jQuery);kendo_module({id:"window",name:"Window",category:"web",description:"The Window widget displays content in a modal or non-modal HTML window.",depends:["draganddrop"]}),function(n,t){function rt(n){return typeof n!="undefined"}function o(n,t,i){return Math.max(Math.min(parseInt(n,10),i===Infinity?i:parseInt(i,10)),parseInt(t,10))}function ii(n,t){return function(){var i=this,r=i.wrapper,f=r[0].style,o=i.options;if(!o.isMaximized&&!o.isMinimized)return i.restoreOptions={width:f.width,height:f.height},r.children(h).hide().end().children(e).find(gt).parent().hide().eq(0).before(u.action({name:"Restore"})),t.call(i),n=="maximize"?i.wrapper.children(e).find(st).parent().hide():i.wrapper.children(e).find(st).parent().show(),i}}function ri(n){var t=this;t.owner=n;t._draggable=new ht(n.wrapper,{filter:h,group:n.wrapper.id+"-resizing",dragstart:f(t.dragstart,t),drag:f(t.drag,t),dragend:f(t.dragend,t)})}function ui(n,t){var i=this;i.owner=n;i._draggable=new ht(n.wrapper,{filter:t,group:n.wrapper.id+"-moving",dragstart:f(i.dragstart,i),drag:f(i.drag,i),dragend:f(i.dragend,i),dragcancel:f(i.dragcancel,i)});i._draggable.userEvents.stopPropagation=!1}var i=window.kendo,d=i.ui.Widget,ht=i.ui.Draggable,ct=n.isPlainObject,fi=i._activeElement,f=n.proxy,l=n.extend,ut=n.each,s=i.template,g="body",u,r=".kendoWindow",a=".k-window",ft=".k-window-title",e=ft+"bar",v=".k-window-content",h=".k-resize-handle",nt=".k-overlay",w="k-content-frame",lt="k-loading",at="k-state-hover",vt="k-state-focused",yt="k-window-maximized",y=":visible",tt="hidden",p="cursor",et="open",ot="activate",pt="deactivate",wt="close",it="refresh",bt="dragstart",kt="dragend",dt="error",c="overflow",b="zIndex",gt=".k-window-actions .k-i-minimize,.k-window-actions .k-i-maximize",ni=".k-i-pin",ti=".k-i-unpin",st=ni+","+ti,k=".k-window-titlebar .k-window-action",ei=i.isLocalUrl,oi=d.extend({init:function(u,o){var s=this,h,w={},g,nt,c,it=!1,l,b,ut=o&&o.actions&&!o.actions.length,p;d.fn.init.call(s,u,o);o=s.options;c=o.position;u=s.element;l=o.content;ut&&(o.actions=[]);s.appendTo=n(o.appendTo);s._animations();l&&!ct(l)&&(l=o.content={url:l});u.find("script").filter(function(){return!this.type||this.type.toLowerCase().indexOf("script")>=0}).remove();u.parent().is(s.appendTo)||c.top!==t&&c.left!==t||(u.is(y)?(w=u.offset(),it=!0):(g=u.css("visibility"),nt=u.css("display"),u.css({visibility:tt,display:""}),w=u.offset(),u.css({visibility:g,display:nt})),c.top===t&&(c.top=w.top),c.left===t&&(c.left=w.left));rt(o.visible)&&o.visible!==null||(o.visible=u.is(y));h=s.wrapper=u.closest(a);u.is(".k-content")&&h[0]||(u.addClass("k-window-content k-content"),s._createWindow(u,o),h=s.wrapper=u.closest(a),s._dimensions());s._position();o.pinned&&s.pin(!0);l&&s.refresh(l);o.visible&&s.toFront();b=h.children(v);s._tabindex(b);o.visible&&o.modal&&s._overlay(h.is(y)).css({opacity:.5});h.on("mouseenter"+r,k,function(){n(this).addClass(at)}).on("mouseleave"+r,k,function(){n(this).removeClass(at)}).on("click"+r,"> "+k,f(s._windowActionHandler,s));b.on("keydown"+r,f(s._keydown,s)).on("focus"+r,function(){h.addClass(vt)}).on("blur"+r,function(){h.removeClass(vt)});this._resizable();this._draggable();p=u.attr("id");p&&(p=p+"_wnd_title",h.children(e).children(ft).attr("id",p),b.attr({role:"dialog","aria-labelledby":p}));h.add(h.children(".k-resize-handle,"+e)).on("mousedown"+r,f(s.toFront,s));s.touchScroller=i.touchScroller(u);s._resizeHandler=function(n){return s._onDocumentResize(n)};n(window).on("resize",s._resizeHandler);o.visible&&(s.trigger(et),s.trigger(ot));i.notify(s)},_dimensions:function(){var i=this,t=i.wrapper,n=i.options,r=n.width,u=n.height,f=n.maxHeight;i.title(n.title);ut(["minWidth","minHeight","maxWidth","maxHeight"],function(i,r){var u=n[r];u&&u!=Infinity&&t.css(r,u)});f&&f!=Infinity&&i.element.css("maxHeight",f);r&&(r.toString().indexOf("%")>0?t.width(r):t.width(o(r,n.minWidth,n.maxWidth)));u&&(u.toString().indexOf("%")>0?t.height(u):t.height(o(u,n.minHeight,n.maxHeight)));n.visible||t.hide()},_position:function(){var t=this,i=t.wrapper,n=t.options.position;n.top===0&&(n.top=n.top.toString());n.left===0&&(n.left=n.left.toString());i.css({top:n.top||"",left:n.left||""})},_animations:function(){var n=this.options;n.animation===!1&&(n.animation={open:{effects:{}},close:{hide:!0,effects:{}}})},_resize:function(){i.resize(this.element.children())},_resizable:function(){var i=this.options.resizable,t=this.wrapper;if(this.resizing&&(t.off("dblclick"+r).children(h).remove(),this.resizing.destroy(),this.resizing=null),i){t.on("dblclick"+r,e,f(function(t){n(t.target).closest(".k-window-action").length||this.toggleMaximization()},this));ut("n e s w se sw ne nw".split(" "),function(n,i){t.append(u.resizeHandle(i))});this.resizing=new ri(this)}},_draggable:function(){var n=this.options.draggable;this.dragging&&(this.dragging.destroy(),this.dragging=null);n&&(this.dragging=new ui(this,n.dragHandle||e))},setOptions:function(n){var t=this;d.fn.setOptions.call(t,n);t._animations();t._dimensions();t._position();t._resizable();t._draggable()},events:[et,ot,pt,wt,it,"resize",bt,kt,dt],options:{name:"Window",animation:{open:{effects:{zoom:{direction:"in"},fade:{direction:"in"}},duration:350},close:{effects:{zoom:{direction:"out",properties:{scale:.7}},fade:{direction:"out"}},duration:350,hide:!0}},title:"",actions:["Close"],autoFocus:!0,modal:!1,resizable:!0,draggable:!0,minWidth:90,minHeight:50,maxWidth:Infinity,maxHeight:Infinity,pinned:!1,position:{},content:null,visible:null,height:null,width:null,appendTo:"body"},_closable:function(){return n.inArray("close",n.map(this.options.actions,function(n){return n.toLowerCase()}))>-1},_keydown:function(n){var u=this,h=u.options,f=i.keys,e=n.keyCode,t=u.wrapper,c,r,s=10,p=u.options.isMaximized,v,y,l,a;n.target!=n.currentTarget||u._closing||(e==f.ESC&&u._closable()&&u._close(!0),!h.draggable||n.ctrlKey||p||(c=i.getOffset(t),e==f.UP?r=t.css("top",c.top-s):e==f.DOWN?r=t.css("top",c.top+s):e==f.LEFT?r=t.css("left",c.left-s):e==f.RIGHT&&(r=t.css("left",c.left+s))),h.resizable&&n.ctrlKey&&!p&&(e==f.UP?(r=!0,y=t.height()-s):e==f.DOWN&&(r=!0,y=t.height()+s),e==f.LEFT?(r=!0,v=t.width()-s):e==f.RIGHT&&(r=!0,v=t.width()+s),r&&(l=o(v,h.minWidth,h.maxWidth),a=o(y,h.minHeight,h.maxHeight),isNaN(l)||(t.width(l),u.options.width=l+"px"),isNaN(a)||(t.height(a),u.options.height=a+"px"),u.resize())),r&&n.preventDefault())},_overlay:function(t){var i=this.appendTo.children(nt),r=this.wrapper;return i.length||(i=n("<div class='k-overlay' />")),i.insertBefore(r[0]).toggle(t).css(b,parseInt(r.css(b),10)-1),i},_windowActionHandler:function(t){var r=n(t.target).closest(".k-window-action").find(".k-icon"),i=this;i._closing||ut({"k-i-close":function(){i._close(!0)},"k-i-maximize":i.maximize,"k-i-minimize":i.minimize,"k-i-restore":i.restore,"k-i-refresh":i.refresh,"k-i-pin":i.pin,"k-i-unpin":i.unpin},function(n,u){if(r.hasClass(n))return t.preventDefault(),u.call(i),!1})},_modals:function(){var t=this;return n(a).filter(function(){var i=n(this),r=t._object(i).options;return r.modal&&r.visible&&i.is(y)}).sort(function(t,i){return+n(t).css("zIndex")-+n(i).css("zIndex")})},_object:function(n){var t=n.children(v);return t.data("kendoWindow")||t.data("kendo"+this.options.name)},center:function(){var t=this,e=t.options.position,r=t.wrapper,i=n(window),o=0,s=0,u,f;return t.options.isMaximized?t:(t.options.pinned||(o=i.scrollTop(),s=i.scrollLeft()),f=s+Math.max(0,(i.width()-r.width())/2),u=o+Math.max(0,(i.height()-r.height())/2),r.css({left:f,top:u}),e.top=u,e.left=f,t)},title:function(n){var i=this,r=i.wrapper,s=i.options,t=r.children(e),f=t.children(ft),o=t.outerHeight();return arguments.length?(n===!1?(r.addClass("k-window-titleless"),t.remove()):(t.length||r.prepend(u.titlebar(l(u,s))),r.css("padding-top",o),t.css("margin-top",-o)),f.text(n),i.options.title=n,i):f.text()},content:function(n){var t=this.wrapper.children(v),r=t.children(".km-scroll-container");return(t=r[0]?r:t,!rt(n))?t.html():(i.destroy(this.element.children()),t.html(n),this)},open:function(){var t=this,f=t.wrapper,r=t.options,e=r.animation.open,s=f.children(v),h=s.css(c),u,o;return t.trigger(et)||(t._closing&&f.kendoStop(!0,!0),t._closing=!1,t.toFront(),r.autoFocus&&t.element.focus(),r.visible=!0,r.modal&&(u=t._overlay(!1),u.kendoStop(!0,!0),e.duration&&i.effects.Fade?(o=i.fx(u).fadeIn(),o.duration(e.duration||0),o.endValue(.5),o.play()):u.css("opacity",.5),u.show()),f.is(y)||(s.css(c,tt),f.show().kendoStop().kendoAnimate({effects:e.effects,duration:e.duration,complete:function(){r.autoFocus&&t.element.focus();t.trigger(ot);s.css(c,h)}}))),r.isMaximized&&(t._documentScrollTop=n(document).scrollTop(),n("html, body").css(c,tt)),t},_removeOverlay:function(r){var f=this._modals(),e=this.options,s=e.modal&&!f.length,h=e.modal?this._overlay(!0):n(t),o=e.animation.close,u;s?!r&&o.duration&&i.effects.Fade?(u=i.fx(h).fadeOut(),u.duration(o.duration||0),u.startValue(.5),u.play()):this._overlay(!1).remove():f.length&&this._object(f.last())._overlay(!0)},_close:function(t){var i=this,r=i.wrapper,u=i.options,e=u.animation.open,f=u.animation.close;r.is(y)&&!i.trigger(wt,{userTriggered:!!t})&&(i._closing=!0,u.visible=!1,n(a).each(function(t,i){var u=n(i).children(v);i!=r&&u.find("> ."+w).length>0&&u.children(nt).remove()}),this._removeOverlay(),r.kendoStop().kendoAnimate({effects:f.effects||e.effects,reverse:f.reverse===!0,duration:f.duration,complete:function(){r.hide().css("opacity","");i.trigger(pt);var n=i._object(i._modals().last());n&&n.toFront()}}));i.options.isMaximized&&(n("html, body").css(c,""),i._documentScrollTop&&i._documentScrollTop>0&&n(document).scrollTop(i._documentScrollTop))},close:function(){return this._close(!1),this},_actionable:function(t){return n(t).is(k+","+k+" .k-icon,:input,a")},_shouldFocus:function(t){var r=fi(),i=this.element;return this.options.autoFocus&&!n(r).is(i)&&!this._actionable(t)&&(!i.find(r).length||!i.find(t).length)},toFront:function(t){var r=this,i=r.wrapper,s=i[0],f=+i.css(b),h=f,c=t&&t.target||null,e,o;return n(a).each(function(t,i){var r=n(i),e=r.css(b),o=r.children(v);isNaN(e)||(f=Math.max(+e,f));i!=s&&o.find("> ."+w).length>0&&o.append(u.overlay)}),(!i[0].style.zIndex||h<f)&&i.css(b,f+2),r.element.find("> .k-overlay").remove(),r._shouldFocus(c)&&(r.element.focus(),e=n(window).scrollTop(),o=parseInt(i.position().top,10),o>0&&o<e&&(e>0?n(window).scrollTop(o):i.css("top",e))),r},toggleMaximization:function(){return this._closing?this:this[this.options.isMaximized?"restore":"maximize"]()},restore:function(){var t=this,i=t.options,u=i.minHeight,r=t.restoreOptions;return!i.isMaximized&&!i.isMinimized?t:(u&&u!=Infinity&&t.wrapper.css("min-height",u),t.wrapper.css({position:i.pinned?"fixed":"absolute",left:r.left,top:r.top,width:r.width,height:r.height}).removeClass(yt).find(".k-window-content,.k-resize-handle").show().end().find(".k-window-titlebar .k-i-restore").parent().remove().end().end().find(gt).parent().show().end().end().find(st).parent().show(),t.options.width=r.width,t.options.height=r.height,n("html, body").css(c,""),this._documentScrollTop&&this._documentScrollTop>0&&n(document).scrollTop(this._documentScrollTop),i.isMaximized=i.isMinimized=!1,t.resize(),t)},maximize:ii("maximize",function(){var t=this,i=t.wrapper,r=i.position();l(t.restoreOptions,{left:r.left,top:r.top});i.css({left:0,top:0,position:"fixed"}).addClass(yt);this._documentScrollTop=n(document).scrollTop();n("html, body").css(c,tt);t.options.isMaximized=!0;t._onDocumentResize()}),minimize:ii("minimize",function(){var n=this;n.wrapper.css({height:"",minHeight:""});n.element.hide();n.options.isMinimized=!0}),pin:function(t){var i=this,u=n(window),r=i.wrapper,f=parseInt(r.css("top"),10),o=parseInt(r.css("left"),10);!t&&(i.options.pinned||i.options.isMaximized)||(r.css({position:"fixed",top:f-u.scrollTop(),left:o-u.scrollLeft()}),r.children(e).find(ni).addClass("k-i-unpin").removeClass("k-i-pin"),i.options.pinned=!0)},unpin:function(){var t=this,r=n(window),i=t.wrapper,u=parseInt(i.css("top"),10),f=parseInt(i.css("left"),10);t.options.pinned&&!t.options.isMaximized&&(i.css({position:"",top:u+r.scrollTop(),left:f+r.scrollLeft()}),i.children(e).find(ti).addClass("k-i-pin").removeClass("k-i-unpin"),t.options.pinned=!1)},_onDocumentResize:function(){var t=this,u=t.wrapper,f=n(window),i,r;t.options.isMaximized&&(i=f.width(),r=f.height()-parseInt(u.css("padding-top"),10),u.css({width:i,height:r}),t.options.width=i,t.options.height=r,t.resize())},refresh:function(t){var i=this,e=i.options,o=n(i.element),h,f,c;if(ct(t)||(t={url:t}),t=l({},e.content,t),f=rt(e.iframe)?e.iframe:t.iframe,c=t.url,c)if(rt(f)||(f=!ei(c)),f){h=o.find("."+w)[0];h?h.src=c||h.src:o.html(u.contentFrame(l({},e,{content:t})));o.find("."+w).unbind("load"+r).on("load"+r,function(){i.trigger(it)})}else i._ajaxRequest(t);else t.template&&i.content(s(t.template)({})),i.trigger(it);return o.toggleClass("k-window-iframecontent",f),i},_ajaxRequest:function(t){var i=this,r=t.template,u=i.wrapper.find(".k-window-titlebar .k-i-refresh"),f=setTimeout(function(){u.addClass(lt)},100);n.ajax(l({type:"GET",dataType:"html",cache:!1,error:function(n,t){i.trigger(dt,{status:t,xhr:n})},complete:function(){clearTimeout(f);u.removeClass(lt)},success:function(n){r&&(n=s(r)(n||{}));i.content(n);i.element.prop("scrollTop",0);i.trigger(it)}},t))},destroy:function(){var t=this.wrapper;d.fn.destroy.call(this);i.destroy(t);this.resizing&&this.resizing.destroy();this.dragging&&this.dragging.destroy();this.element.children("iframe").remove();t.find(".k-resize-handle,.k-window-titlebar").off(r);t.remove().off(r);n(window).off("resize",this._resizeHandler);this._removeOverlay(!0)},_createWindow:function(){var e=this,t=e.element,f=e.options,o,r,s=i.support.isRtl(t);f.scrollable===!1&&t.attr("style","overflow:hidden;");r=n(u.wrapper(f));f.title!==!1&&r.append(u.titlebar(l(u,f)));o=t.find("iframe:not(.k-content)").map(function(){var n=this.getAttribute("src");return this.src="",n});r.toggleClass("k-rtl",s).appendTo(e.appendTo).append(t).find("iframe:not(.k-content)").each(function(n){this.src=o[n]});r.find(".k-window-title").css(s?"left":"right",r.find(".k-window-actions").outerWidth()+10);t.show();t.find("[data-role=editor]").each(function(){var t=n(this).data("kendoEditor");t&&t.refresh()})}});u={wrapper:s("<div class='k-widget k-window' />"),action:s("<a role='button' href='\\#' class='k-window-action k-link'><span role='presentation' class='k-icon k-i-#= name.toLowerCase() #'>#= name #<\/span><\/a>"),titlebar:s("<div class='k-window-titlebar k-header'> <span class='k-window-title'>#= title #<\/span><div class='k-window-actions'># for (var i = 0; i < actions.length; i++) { ##= action({ name: actions[i] }) ## } #<\/div><\/div>"),overlay:"<div class='k-overlay' />",contentFrame:s("<iframe frameborder='0' title='#= title #' class='"+w+"' src='#= content.url #'>This page requires frames in order to show content<\/iframe>"),resizeHandle:s("<div class='k-resize-handle k-resize-#= data #'><\/div>")};ri.prototype={dragstart:function(t){var r=this,e=r.owner,f=e.wrapper;r.elementPadding=parseInt(e.wrapper.css("padding-top"),10);r.initialCursorPosition=i.getOffset(f,"position");r.resizeDirection=t.currentTarget.prop("className").replace("k-resize-handle k-resize-","");r.initialSize={width:f.width(),height:f.height()};r.containerOffset=i.getOffset(e.appendTo);f.append(u.overlay).children(h).not(t.currentTarget).hide();n(g).css(p,t.currentTarget.css(p))},drag:function(n){var u=this,f=u.owner,e=f.wrapper,t=f.options,s=u.resizeDirection,h=u.containerOffset,c=u.initialCursorPosition,v=u.initialSize,i,r,l,a,y=Math.max(n.x.location,h.left),p=Math.max(n.y.location,h.top);s.indexOf("e")>=0?(i=y-c.left,e.width(o(i,t.minWidth,t.maxWidth))):s.indexOf("w")>=0&&(a=c.left+v.width,i=o(a-y,t.minWidth,t.maxWidth),e.css({left:a-i-h.left,width:i}));s.indexOf("s")>=0?(r=p-c.top-u.elementPadding,e.height(o(r,t.minHeight,t.maxHeight))):s.indexOf("n")>=0&&(l=c.top+v.height,r=o(l-p,t.minHeight,t.maxHeight),e.css({top:l-r-h.top,height:r}));i&&(f.options.width=i+"px");r&&(f.options.height=r+"px");f.resize()},dragend:function(t){var i=this,r=i.owner,u=r.wrapper;return u.find(nt).remove().end().children(h).not(t.currentTarget).show(),n(g).css(p,""),r.touchScroller&&r.touchScroller.reset(),t.keyCode==27&&u.css(i.initialCursorPosition).css(i.initialSize),!1},destroy:function(){this._draggable.destroy()}};ui.prototype={dragstart:function(t){var r=this.owner,f=r.element,e=f.find(".k-window-actions"),o=i.getOffset(r.appendTo);r.trigger(bt);r.initialWindowPosition=i.getOffset(r.wrapper,"position");r.startPosition={left:t.x.client-r.initialWindowPosition.left,top:t.y.client-r.initialWindowPosition.top};r.minLeftPosition=e.length>0?e.outerWidth()+parseInt(e.css("right"),10)-f.outerWidth():20-f.outerWidth();r.minLeftPosition-=o.left;r.minTopPosition=-o.top;r.wrapper.append(u.overlay).children(h).hide();n(g).css(p,t.currentTarget.css(p))},drag:function(t){var i=this.owner,r=i.options.position,u=Math.max(t.y.client-i.startPosition.top,i.minTopPosition),f=Math.max(t.x.client-i.startPosition.left,i.minLeftPosition),e={left:f,top:u};n(i.wrapper).css(e);r.top=u;r.left=f},_finishDrag:function(){var t=this.owner;t.wrapper.children(h).toggle(!t.options.isMinimized).end().find(nt).remove();n(g).css(p,"")},dragcancel:function(n){this._finishDrag();n.currentTarget.closest(a).css(this.owner.initialWindowPosition)},dragend:function(){return this._finishDrag(),this.owner.trigger(kt),!1},destroy:function(){this._draggable.destroy()}};i.ui.plugin(oi)}(window.kendo.jQuery);!function(n){return n(["./kendo.data.min","./kendo.combobox.min","./kendo.multiselect.min","./kendo.validator.min"],function(){!function(n,t){function u(t,i,r,u){var f={};return t.sort?(f[this.options.prefix+"sort"]=n.map(t.sort,function(n){return n.field+"-"+n.dir}).join("~"),delete t.sort):f[this.options.prefix+"sort"]="",t.page&&(f[this.options.prefix+"page"]=t.page,delete t.page),t.pageSize&&(f[this.options.prefix+"pageSize"]=t.pageSize,delete t.pageSize),t.group?(f[this.options.prefix+"group"]=n.map(t.group,function(n){return n.field+"-"+n.dir}).join("~"),delete t.group):f[this.options.prefix+"group"]="",t.aggregate&&(f[this.options.prefix+"aggregate"]=n.map(t.aggregate,function(n){return n.field+"-"+n.aggregate}).join("~"),delete t.aggregate),t.filter?(f[this.options.prefix+"filter"]=o(t.filter,r),delete t.filter):(f[this.options.prefix+"filter"]="",delete t.filter),delete t.take,delete t.skip,e(f,t,"",u),f}function c(n){var t=i.culture().numberFormat[h];return(""+n).replace(h,t)}function l(n,t){return n instanceof Date?n=t?i.stringify(n).replace(/"/g,""):i.format("{0:G}",n):"number"==typeof n&&(n=c(n)),n}function f(n,i,r,u,f,o){b(i)?a(n,i,f,o):k(i)?e(n,i,f,o):n[f]===t&&(n[f]=r[u]=l(i,o))}function e(n,t,i,r){var u,e,o;for(u in t)e=i?i+"."+u:u,o=t[u],f(n,o,t,u,e,r)}function a(n,t,i,r){for(var s,o,h,u=0,e=0;u<t.length;u++)s=t[u],o="["+e+"]",h=i+o,f(n,s,t,o,h,r),e++}function o(i,r){return i.filters?n.map(i.filters,function(n){var i=n.filters&&n.filters.length>1,t=o(n,r);return t&&i&&(t="("+t+")"),t}).join("~"+i.logic+"~"):i.field?i.field+"~"+i.operator+"~"+v(i.value,r):t}function v(n,t){if("string"==typeof n){if(!(n.indexOf("Date(")>-1))return n=n.replace(w,"''"),t&&(n=encodeURIComponent(n)),"'"+n+"'";n=new Date(parseInt(n.replace(/^\/Date\((.*?)\)\/$/,"$1"),10))}return n&&n.getTime?"datetime'"+i.format("{0:yyyy-MM-ddTHH-mm-ss}",n)+"'":n}function s(i){return{value:t!==i.Key?i.Key:i.value,field:i.Member||i.field,hasSubgroups:i.HasSubgroups||i.hasSubgroups||!1,aggregates:p(i.Aggregates||i.aggregates),items:i.HasSubgroups?n.map(i.Items||i.items,s):i.Items||i.items}}function y(n){var t={};return t[n.AggregateMethodName.toLowerCase()]=n.Value,t}function p(n){var t,i,r,u={};for(t in n){u={};r=n[t];for(i in r)u[i.toLowerCase()]=r[i];n[t]=u}return n}var i=window.kendo,w=/'/gi,r=n.extend,b=n.isArray,k=n.isPlainObject,h=".";r(!0,i.data,{schemas:{"aspnetmvc-ajax":{groups:function(t){return n.map(this.data(t),s)},aggregates:function(n){n=n.d||n;for(var t,u={},e=n.AggregateResults||[],i=0,f=e.length;f>i;i++)t=e[i],u[t.Member]=r(!0,u[t.Member],y(t));return u}}}});r(!0,i.data,{transports:{"aspnetmvc-ajax":i.data.RemoteTransport.extend({init:function(n){var t=this,f=(n||{}).stringifyDates;i.data.RemoteTransport.fn.init.call(this,r(!0,{},this.options,n,{parameterMap:function(n,i){return u.call(t,n,i,!1,f)}}))},read:function(n){var t=this.options.data,r=this.options.read.url;t?(r&&(this.options.data=null),!t.Data.length&&r?i.data.RemoteTransport.fn.read.call(this,n):n.success(t)):i.data.RemoteTransport.fn.read.call(this,n)},options:{read:{type:"POST"},update:{type:"POST"},create:{type:"POST"},destroy:{type:"POST"},parameterMap:u,prefix:""}})}});r(!0,i.data,{transports:{"aspnetmvc-server":i.data.RemoteTransport.extend({init:function(n){var t=this;i.data.RemoteTransport.fn.init.call(this,r(n,{parameterMap:function(n,i){return u.call(t,n,i,!0)}}))},read:function(t){var r,i,u=this.options.prefix,f=[u+"sort",u+"page",u+"pageSize",u+"group",u+"aggregate",u+"filter"],e=RegExp("("+f.join("|")+")=[^&]*&?","g");i=location.search.replace(e,"").replace("?","");i.length&&!/&$/.test(i)&&(i+="&");t=this.setup(t,"read");r=t.url;r.indexOf("?")>=0?(i=i.replace(/(.*?=.*?)&/g,function(n){return r.indexOf(n.substr(0,n.indexOf("=")))>=0?"":n}),r+="&"+i):r+="?"+i;r+=n.map(t.data,function(n,t){return t+"="+n}).join("&");location.href=r}})}})}(window.kendo.jQuery),function(n){var i=window.kendo,t=i.ui;t&&t.ComboBox&&(t.ComboBox.requestData=function(t){var i=n(t).data("kendoComboBox"),u=i.dataSource.filter(),r=i.input.val();return u||(r=""),{text:r}})}(window.kendo.jQuery),function(n){var i=window.kendo,t=i.ui;t&&t.MultiSelect&&(t.MultiSelect.requestData=function(t){var i=n(t).data("kendoMultiSelect"),r=i.input.val();return{text:r!==i.options.placeholder?r:""}})}(window.kendo.jQuery),function(n){var t=window.kendo,i=(t.ui,n.extend),r=n.isFunction;i(!0,t.data,{schemas:{"imagebrowser-aspnetmvc":{data:function(n){return n||[]},model:{id:"name",fields:{name:{field:"Name"},size:{field:"Size"},type:{field:"EntryType",parse:function(n){return 0==n?"f":"d"}}}}}}});i(!0,t.data,{transports:{"imagebrowser-aspnetmvc":t.data.RemoteTransport.extend({init:function(i){t.data.RemoteTransport.fn.init.call(this,n.extend(!0,{},this.options,i))},_call:function(i,u){u.data=n.extend({},u.data,{path:this.options.path()});r(this.options[i])?this.options[i].call(this,u):t.data.RemoteTransport.fn[i].call(this,u)},read:function(n){this._call("read",n)},create:function(n){this._call("create",n)},destroy:function(n){this._call("destroy",n)},update:function(){},options:{read:{type:"POST"},update:{type:"POST"},create:{type:"POST"},destroy:{type:"POST"},parameterMap:function(n,t){return"read"!=t&&(n.EntryType="f"===n.EntryType?0:1),n}}})}})}(window.kendo.jQuery),function(n){function r(){var n,i={};for(n in t)i["mvc"+n]=s(n);return i}function u(){var n,i={};for(n in t)i["mvc"+n]=h(n);return i}function f(n,t){var u,i,r,f={},e=n.data(),o=t.length;for(r in e)i=r.toLowerCase(),u=i.indexOf(t),u>-1&&(i=i.substring(u+o,r.length),i&&(f[i]=e[r]));return f}function e(t){for(var u=t.Fields||[],f={},i=0,r=u.length;r>i;i++)n.extend(!0,f,o(u[i]));return f}function o(n){for(var i,f,o={},s={},u=n.FieldName,r=n.ValidationRules,t=0,e=r.length;e>t;t++)i=r[t].ValidationType,f=r[t].ValidationParameters,o[u+i]=l(u,i,f),s[u+i]=c(r[t].ErrorMessage);return{rules:o,messages:s}}function s(n){return function(t){return t.attr("data-val-"+n)}}function h(n){return function(i){return i.filter("[data-val-"+n+"]").length?t[n](i,f(i,n)):!0}}function c(n){return function(){return n}}function l(n,i,r){return function(u){return u.filter("[name="+n+"]").length?t[i](u,r):!0}}function a(n,t){return"string"==typeof t&&(t=RegExp("^(?:"+t+")$")),t.test(n)}var i=/("|\%|'|\[|\]|\$|\.|\,|\:|\;|\+|\*|\&|\!|\#|\(|\)|<|>|\=|\?|\@|\^|\{|\}|\~|\/|\||`)/g,t={required:function(n){var f,t,r=n.val(),u=n.filter("[type=checkbox]");return u.length&&(f=u[0].name.replace(i,"\\$1"),t=u.next("input:hidden[name='"+f+"']"),r=t.length?t.val():"checked"===n.attr("checked")),!(""===r||!r)},number:function(n){return""===n.val()||null!==kendo.parseFloat(n.val())},regex:function(n,t){return""!==n.val()?a(n.val(),t.pattern):!0},range:function(n,t){return""!==n.val()?this.min(n,t)&&this.max(n,t):!0},min:function(n,t){var i=parseFloat(t.min)||0,r=kendo.parseFloat(n.val());return r>=i},max:function(n,t){var i=parseFloat(t.max)||0,r=kendo.parseFloat(n.val());return i>=r},date:function(n){return""===n.val()||null!==kendo.parseDate(n.val())},length:function(t,i){if(""!==t.val()){var r=n.trim(t.val()).length;return(!i.min||r>=(i.min||0))&&(!i.max||r<=(i.max||0))}return!0}};n.extend(!0,kendo.ui.validator,{rules:u(),messages:r(),messageLocators:{mvcLocator:{locate:function(n,t){return t=t.replace(i,"\\$1"),n.find(".field-validation-valid[data-valmsg-for="+t+"], .field-validation-error[data-valmsg-for="+t+"]")},decorate:function(n,t){n.addClass("field-validation-error").attr("data-valmsg-for",t||"")}},mvcMetadataLocator:{locate:function(n,t){return t=t.replace(i,"\\$1"),n.find("#"+t+"_validationMessage.field-validation-valid")},decorate:function(n,t){n.addClass("field-validation-error").attr("id",t+"_validationMessage")}}},ruleResolvers:{mvcMetaDataResolver:{resolve:function(t){var i,r=window.mvcClientValidationMetadata||[];if(r.length)for(t=n(t),i=0;i<r.length;i++)if(r[i].FormId==t.attr("id"))return e(r[i]);return{}}}}})}(window.kendo.jQuery)})}("function"==typeof define&&define.amd?define:function(n,t){return t()});!function(n){return n([],function(){!function(n){var t=n.kendo||(n.kendo={cultures:{}});t.cultures["pl-PL"]={name:"pl-PL",numberFormat:{pattern:["-n"],decimals:2,",":" ",".":",",groupSize:[3],percent:{pattern:["-n%","n%"],decimals:2,",":" ",".":",",groupSize:[3],symbol:"%"},currency:{pattern:["-n $","n $"],decimals:2,",":" ",".":",",groupSize:[3],symbol:"zł"}},calendars:{standard:{days:{names:["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"],namesAbbr:["N","Pn","Wt","Śr","Cz","Pt","So"],namesShort:["N","Pn","Wt","Śr","Cz","Pt","So"]},months:{names:["styczeń","luty","marzec","kwiecień","maj","czerwiec","lipiec","sierpień","wrzesień","październik","listopad","grudzień",""],namesAbbr:["sty","lut","mar","kwi","maj","cze","lip","sie","wrz","paź","lis","gru",""]},AM:[""],PM:[""],patterns:{d:"yyyy-MM-dd",D:"d MMMM yyyy",F:"d MMMM yyyy HH:mm:ss",g:"yyyy-MM-dd HH:mm",G:"yyyy-MM-dd HH:mm:ss",m:"d MMMM",M:"d MMMM",s:"yyyy'-'MM'-'dd'T'HH':'mm':'ss",t:"HH:mm",T:"HH:mm:ss",u:"yyyy'-'MM'-'dd HH':'mm':'ss'Z'",y:"MMMM yyyy",Y:"MMMM yyyy"},"/":"-",":":":",firstDay:1}}}}(this)})}("function"==typeof define&&define.amd?define:function(n,t){return t()}),function(){function n(n){return function(){return n}}(function(t){var u=this||eval("this"),r=u.document,e=u.navigator,i=u.jQuery,f=u.JSON;(function(n){"function"==typeof require&&"object"==typeof exports&&"object"==typeof module?n(module.exports||exports):"function"==typeof define&&define.amd?define(["exports"],n):n(u.ko={})})(function(o){function c(n,t,i,r){s.d[n]={init:function(n){return s.a.f.set(n,a,{}),{controlsDescendantBindings:!0}},update:function(n,u,f,e,o){f=s.a.f.get(n,a);u=s.a.c(u());e=!i!=!u;var h=!f.fb;(h||t||e!==f.vb)&&(h&&(f.fb=s.a.Oa(s.e.childNodes(n),!0)),e?(h||s.e.P(n,s.a.Oa(f.fb)),s.Ja(r?r(o,u):o,n)):s.e.ba(n),f.vb=e)}};s.g.S[n]=!1;s.e.L[n]=!0}function v(n,t,i){i&&t!==s.h.n(n)&&s.h.W(n,t);t!==s.h.n(n)&&s.q.I(s.a.Ga,null,[n,"change"])}var s="undefined"!=typeof o?o:{},y,h,l,a;s.b=function(n,t){for(var i=n.split("."),r=s,u=0;u<i.length-1;u++)r=r[i[u]];r[i[i.length-1]]=t};s.r=function(n,t,i){n[t]=i};s.version="2.3.0";s.b("version",s.version);s.a=function(){function o(n,t){for(var i in n)n.hasOwnProperty(i)&&t(i,n[i])}function h(n,t){if("input"!==s.a.u(n)||!n.type||"click"!=t.toLowerCase())return!1;var i=n.type;return"checkbox"==i||"radio"==i}var c={},l={},a,n;return c[e&&/Firefox\/2/i.test(e.userAgent)?"KeyboardEvent":"UIEvents"]=["keyup","keydown","keypress"],c.MouseEvents="click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave".split(" "),o(c,function(n,t){if(t.length)for(var i=0,r=t.length;i<r;i++)l[t[i]]=n}),a={propertychange:!0},n=r&&function(){for(var n=3,i=r.createElement("div"),u=i.getElementsByTagName("i");i.innerHTML="<!--[if gt IE "+ ++n+"]><i><\/i><![endif]-->",u[0];);return 4<n?n:t}(),{Ta:["authenticity_token",/^__RequestVerificationToken(_.*)?$/],p:function(n,t){for(var i=0,r=n.length;i<r;i++)t(n[i])},k:function(n,t){if("function"==typeof Array.prototype.indexOf)return Array.prototype.indexOf.call(n,t);for(var i=0,r=n.length;i<r;i++)if(n[i]===t)return i;return-1},La:function(n,t,i){for(var r=0,u=n.length;r<u;r++)if(t.call(i,n[r]))return n[r];return null},ka:function(n,t){var i=s.a.k(n,t);0<=i&&n.splice(i,1)},Ma:function(n){n=n||[];for(var i=[],t=0,r=n.length;t<r;t++)0>s.a.k(i,n[t])&&i.push(n[t]);return i},Z:function(n,t){n=n||[];for(var r=[],i=0,u=n.length;i<u;i++)r.push(t(n[i]));return r},Y:function(n,t){n=n||[];for(var r=[],i=0,u=n.length;i<u;i++)t(n[i])&&r.push(n[i]);return r},R:function(n,t){if(t instanceof Array)n.push.apply(n,t);else for(var i=0,r=t.length;i<r;i++)n.push(t[i]);return n},ja:function(n,t,i){var r=n.indexOf?n.indexOf(t):s.a.k(n,t);0>r?i&&n.push(t):i||n.splice(r,1)},extend:function(n,t){if(t)for(var i in t)t.hasOwnProperty(i)&&(n[i]=t[i]);return n},w:o,oa:function(n){for(;n.firstChild;)s.removeNode(n.firstChild)},Mb:function(n){n=s.a.N(n);for(var i=r.createElement("div"),t=0,u=n.length;t<u;t++)i.appendChild(s.H(n[t]));return i},Oa:function(n,t){for(var r,i=0,f=n.length,u=[];i<f;i++)r=n[i].cloneNode(!0),u.push(t?s.H(r):r);return u},P:function(n,t){if(s.a.oa(n),t)for(var i=0,r=t.length;i<r;i++)n.appendChild(t[i])},eb:function(n,t){var r=n.nodeType?[n]:n;if(0<r.length){for(var f=r[0],e=f.parentNode,i=0,u=t.length;i<u;i++)e.insertBefore(t[i],f);for(i=0,u=r.length;i<u;i++)s.removeNode(r[i])}},hb:function(t,i){7>n?t.setAttribute("selected",i):t.selected=i},F:function(n){return null===n||n===t?"":n.trim?n.trim():n.toString().replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")},Wb:function(n,t){for(var r,u=[],f=(n||"").split(t),i=0,e=f.length;i<e;i++)r=s.a.F(f[i]),""!==r&&u.push(r);return u},Tb:function(n,t){return n=n||"",t.length>n.length?!1:n.substring(0,t.length)===t},yb:function(n,t){if(t.compareDocumentPosition)return 16==(t.compareDocumentPosition(n)&16);for(;null!=n;){if(n==t)return!0;n=n.parentNode}return!1},aa:function(n){return s.a.yb(n,n.ownerDocument)},pb:function(n){return!!s.a.La(n,s.a.aa)},u:function(n){return n&&n.tagName&&n.tagName.toLowerCase()},o:function(t,r,u){var o=n&&a[r],f,e,c;if(o||"undefined"==typeof i)if(o||"function"!=typeof t.addEventListener)if("undefined"!=typeof t.attachEvent)f=function(n){u.call(t,n)},e="on"+r,t.attachEvent(e,f),s.a.C.ia(t,function(){t.detachEvent(e,f)});else throw Error("Browser doesn't support addEventListener or attachEvent");else t.addEventListener(r,u,!1);else h(t,r)&&(c=u,u=function(n,t){var i=this.checked;t&&(this.checked=!0!==t.sb);c.call(this,n);this.checked=i}),i(t).bind(r,u)},Ga:function(n,t){if(!n||!n.nodeType)throw Error("element must be a DOM node when calling triggerEvent");if("undefined"!=typeof i){var f=[];h(n,t)&&f.push({sb:n.checked});i(n).trigger(t,f)}else if("function"==typeof r.createEvent)if("function"==typeof n.dispatchEvent)f=r.createEvent(l[t]||"HTMLEvents"),f.initEvent(t,!0,!0,u,0,0,0,0,0,!1,!1,!1,!1,0,n),n.dispatchEvent(f);else throw Error("The supplied element doesn't support dispatchEvent");else if("undefined"!=typeof n.fireEvent)h(n,t)&&(n.checked=!0!==n.checked),n.fireEvent("on"+t);else throw Error("Browser doesn't support triggering events");},c:function(n){return s.T(n)?n():n},ya:function(n){return s.T(n)?n.t():n},ga:function(n,t,i){if(t){var r=/\S+/g,u=n.className.match(r)||[];s.a.p(t.match(r),function(n){s.a.ja(u,n,i)});n.className=u.join(" ")}},ib:function(n,i){var u=s.a.c(i),f;(null===u||u===t)&&(u="");f=s.e.firstChild(n);!f||3!=f.nodeType||s.e.nextSibling(f)?s.e.P(n,[r.createTextNode(u)]):f.data=u;s.a.Bb(n)},gb:function(t,i){if(t.name=i,7>=n)try{t.mergeAttributes(r.createElement("<input name='"+t.name+"'/>"),!1)}catch(u){}},Bb:function(t){9<=n&&(t=1==t.nodeType?t:t.parentNode,t.style&&(t.style.zoom=t.style.zoom))},zb:function(t){if(n){var i=t.style.width;t.style.width=0;t.style.width=i}},Qb:function(n,t){n=s.a.c(n);t=s.a.c(t);for(var r=[],i=n;i<=t;i++)r.push(i);return r},N:function(n){for(var i=[],t=0,r=n.length;t<r;t++)i.push(n[t]);return i},Ub:6===n,Vb:7===n,ca:n,Ua:function(n,t){for(var r=s.a.N(n.getElementsByTagName("input")).concat(s.a.N(n.getElementsByTagName("textarea"))),f="string"==typeof t?function(n){return n.name===t}:function(n){return t.test(n.name)},u=[],i=r.length-1;0<=i;i--)f(r[i])&&u.push(r[i]);return u},Nb:function(n){return"string"==typeof n&&(n=s.a.F(n))?f&&f.parse?f.parse(n):new Function("return "+n)():null},Ca:function(n,t,i){if(!f||!f.stringify)throw Error("Cannot find JSON.stringify(). Some browsers (e.g., IE < 8) don't support it natively, but you can overcome this by adding a script reference to json2.js, downloadable from http://www.json.org/json2.js");return f.stringify(s.a.c(n),t,i)},Ob:function(n,t,i){var v,e,h,f,u,c;i=i||{};var l=i.params||{},a=i.includeFields||this.Ta,v=n;if("object"==typeof n&&"form"===s.a.u(n))for(v=n.action,e=a.length-1;0<=e;e--)for(h=s.a.Ua(n,a[e]),f=h.length-1;0<=f;f--)l[h[f].name]=h[f].value;t=s.a.c(t);u=r.createElement("form");u.style.display="none";u.action=v;u.method="post";for(c in t)n=r.createElement("input"),n.name=c,n.value=s.a.Ca(s.a.c(t[c])),u.appendChild(n);o(l,function(n,t){var i=r.createElement("input");i.name=n;i.value=t;u.appendChild(i)});r.body.appendChild(u);i.submitter?i.submitter(u):u.submit();setTimeout(function(){u.parentNode.removeChild(u)},0)}}}();s.b("utils",s.a);s.b("utils.arrayForEach",s.a.p);s.b("utils.arrayFirst",s.a.La);s.b("utils.arrayFilter",s.a.Y);s.b("utils.arrayGetDistinctValues",s.a.Ma);s.b("utils.arrayIndexOf",s.a.k);s.b("utils.arrayMap",s.a.Z);s.b("utils.arrayPushAll",s.a.R);s.b("utils.arrayRemoveItem",s.a.ka);s.b("utils.extend",s.a.extend);s.b("utils.fieldsIncludedWithJsonPost",s.a.Ta);s.b("utils.getFormFields",s.a.Ua);s.b("utils.peekObservable",s.a.ya);s.b("utils.postJson",s.a.Ob);s.b("utils.parseJson",s.a.Nb);s.b("utils.registerEventHandler",s.a.o);s.b("utils.stringifyJson",s.a.Ca);s.b("utils.range",s.a.Qb);s.b("utils.toggleDomNodeCssClass",s.a.ga);s.b("utils.triggerEvent",s.a.Ga);s.b("utils.unwrapObservable",s.a.c);s.b("utils.objectForEach",s.a.w);s.b("utils.addOrRemoveItem",s.a.ja);s.b("unwrap",s.a.c);Function.prototype.bind||(Function.prototype.bind=function(n){var i=this,t=Array.prototype.slice.call(arguments);return n=t.shift(),function(){return i.apply(n,t.concat(Array.prototype.slice.call(arguments)))}});s.a.f=new function(){var r=0,n="__ko__"+(new Date).getTime(),i={};return{get:function(n,i){var r=s.a.f.pa(n,!1);return r===t?t:r[i]},set:function(n,i,r){(r!==t||s.a.f.pa(n,!1)!==t)&&(s.a.f.pa(n,!0)[i]=r)},pa:function(u,f){var e=u[n];if(!e||"null"===e||!i[e]){if(!f)return t;e=u[n]="ko"+r++;i[e]={}}return i[e]},clear:function(t){var r=t[n];return r?(delete i[r],t[n]=null,!0):!1}}};s.b("utils.domData",s.a.f);s.b("utils.domData.clear",s.a.f.clear);s.a.C=new function(){function n(n,i){var r=s.a.f.get(n,u);return r===t&&i&&(r=[],s.a.f.set(n,u,r)),r}function r(t){var u=n(t,!1),e;if(u)for(u=u.slice(0),e=0;e<u.length;e++)u[e](t);if(s.a.f.clear(t),"function"==typeof i&&"function"==typeof i.cleanData&&i.cleanData([t]),f[t.nodeType])for(u=t.firstChild;t=u;)u=t.nextSibling,8===t.nodeType&&r(t)}var u="__ko_domNodeDisposal__"+(new Date).getTime(),e={1:!0,8:!0,9:!0},f={1:!0,9:!0};return{ia:function(t,i){if("function"!=typeof i)throw Error("Callback must be a function");n(t,!0).push(i)},cb:function(i,r){var f=n(i,!1);f&&(s.a.ka(f,r),0==f.length&&s.a.f.set(i,u,t))},H:function(n){var t,i,u;if(e[n.nodeType]&&(r(n),f[n.nodeType]))for(t=[],s.a.R(t,n.getElementsByTagName("*")),i=0,u=t.length;i<u;i++)r(t[i]);return n},removeNode:function(n){s.H(n);n.parentNode&&n.parentNode.removeChild(n)}}};s.H=s.a.C.H;s.removeNode=s.a.C.removeNode;s.b("cleanNode",s.H);s.b("removeNode",s.removeNode);s.b("utils.domNodeDisposal",s.a.C);s.b("utils.domNodeDisposal.addDisposeCallback",s.a.C.ia);s.b("utils.domNodeDisposal.removeDisposeCallback",s.a.C.cb),function(){s.a.xa=function(n){var t,f;if("undefined"!=typeof i){if(i.parseHTML)t=i.parseHTML(n)||[];else if((t=i.clean([n]))&&t[0]){for(n=t[0];n.parentNode&&11!==n.parentNode.nodeType;)n=n.parentNode;n.parentNode&&n.parentNode.removeChild(n)}}else{for(f=s.a.F(n).toLowerCase(),t=r.createElement("div"),f=f.match(/^<(thead|tbody|tfoot)/)&&[1,"<table>","<\/table>"]||!f.indexOf("<tr")&&[2,"<table><tbody>","<\/tbody><\/table>"]||(!f.indexOf("<td")||!f.indexOf("<th"))&&[3,"<table><tbody><tr>","<\/tr><\/tbody><\/table>"]||[0,"",""],n="ignored<div>"+f[1]+n+f[2]+"<\/div>","function"==typeof u.innerShiv?t.appendChild(u.innerShiv(n)):t.innerHTML=n;f[0]--;)t=t.lastChild;t=s.a.N(t.lastChild.childNodes)}return t};s.a.fa=function(n,r){if(s.a.oa(n),r=s.a.c(r),null!==r&&r!==t)if("string"!=typeof r&&(r=r.toString()),"undefined"!=typeof i)i(n).html(r);else for(var f=s.a.xa(r),u=0;u<f.length;u++)n.appendChild(f[u])}}();s.b("utils.parseHtmlFragment",s.a.xa);s.b("utils.setHtml",s.a.fa);s.s=function(){function i(n,t){var r;if(n)if(8==n.nodeType)r=s.s.$a(n.nodeValue),null!=r&&t.push({xb:n,Kb:r});else if(1==n.nodeType)for(var r=0,u=n.childNodes,f=u.length;r<f;r++)i(u[r],t)}var n={};return{va:function(t){if("function"!=typeof t)throw Error("You can only pass a function to ko.memoization.memoize()");var i=(4294967296*(1+Math.random())|0).toString(16).substring(1)+(4294967296*(1+Math.random())|0).toString(16).substring(1);return n[i]=t,"<!--[ko_memo:"+i+"]-->"},mb:function(i,r){var u=n[i];if(u===t)throw Error("Couldn't find any memo with ID "+i+". Perhaps it's already been unmemoized.");try{return u.apply(null,r||[]),!0}finally{delete n[i]}},nb:function(n,t){var f=[],u,o,r,e;for(i(n,f),u=0,o=f.length;u<o;u++)r=f[u].xb,e=[r],t&&s.a.R(e,t),s.s.mb(f[u].Kb,e),r.nodeValue="",r.parentNode&&r.parentNode.removeChild(r)},$a:function(n){return(n=n.match(/^\[ko_memo\:(.*?)\]$/))?n[1]:null}}}();s.b("memoization",s.s);s.b("memoization.memoize",s.s.va);s.b("memoization.unmemoize",s.s.mb);s.b("memoization.parseMemoText",s.s.$a);s.b("memoization.unmemoizeDomNodeAndDescendants",s.s.nb);s.Sa={throttle:function(n,t){n.throttleEvaluation=t;var i=null;return s.j({read:n,write:function(r){clearTimeout(i);i=setTimeout(function(){n(r)},t)}})},notify:function(t,i){return t.equalityComparer="always"==i?n(!1):s.m.fn.equalityComparer,t}};s.b("extenders",s.Sa);s.kb=function(n,t,i){this.target=n;this.la=t;this.wb=i;s.r(this,"dispose",this.B)};s.kb.prototype.B=function(){this.Hb=!0;this.wb()};s.V=function(){this.G={};s.a.extend(this,s.V.fn);s.r(this,"subscribe",this.Da);s.r(this,"extend",this.extend);s.r(this,"getSubscriptionsCount",this.Db)};s.V.fn={Da:function(n,t,i){i=i||"change";var r=new s.kb(this,t?n.bind(t):n,function(){s.a.ka(this.G[i],r)}.bind(this));return this.G[i]||(this.G[i]=[]),this.G[i].push(r),r},notifySubscribers:function(n,t){t=t||"change";this.G[t]&&s.q.I(function(){s.a.p(this.G[t].slice(0),function(t){t&&!0!==t.Hb&&t.la(n)})},this)},Db:function(){var n=0;return s.a.w(this.G,function(t,i){n+=i.length}),n},extend:function(n){var t=this;return n&&s.a.w(n,function(n,i){var r=s.Sa[n];"function"==typeof r&&(t=r(t,i))}),t}};s.Wa=function(n){return null!=n&&"function"==typeof n.Da&&"function"==typeof n.notifySubscribers};s.b("subscribable",s.V);s.b("isSubscribable",s.Wa);s.q=function(){var n=[];return{rb:function(t){n.push({la:t,Ra:[]})},end:function(){n.pop()},bb:function(t){if(!s.Wa(t))throw Error("Only subscribable things can act as dependencies");if(0<n.length){var i=n[n.length-1];!i||0<=s.a.k(i.Ra,t)||(i.Ra.push(t),i.la(t))}},I:function(t,i,r){try{return n.push(null),t.apply(i,r||[])}finally{n.pop()}}}}();y={undefined:!0,boolean:!0,number:!0,string:!0};s.m=function(n){function t(){return 0<arguments.length?(t.equalityComparer&&t.equalityComparer(i,arguments[0])||(t.K(),i=arguments[0],t.J()),this):(s.q.bb(t),i)}var i=n;return s.V.call(t),t.t=function(){return i},t.J=function(){t.notifySubscribers(i)},t.K=function(){t.notifySubscribers(i,"beforeChange")},s.a.extend(t,s.m.fn),s.r(t,"peek",t.t),s.r(t,"valueHasMutated",t.J),s.r(t,"valueWillMutate",t.K),t};s.m.fn={equalityComparer:function(n,t){return null===n||typeof n in y?n===t:!1}};h=s.m.Pb="__ko_proto__";s.m.fn[h]=s.m;s.qa=function(n,i){return null===n||n===t||n[h]===t?!1:n[h]===i?!0:s.qa(n[h],i)};s.T=function(n){return s.qa(n,s.m)};s.Xa=function(n){return"function"==typeof n&&n[h]===s.m||"function"==typeof n&&n[h]===s.j&&n.Eb?!0:!1};s.b("observable",s.m);s.b("isObservable",s.T);s.b("isWriteableObservable",s.Xa);s.U=function(n){if(n=n||[],"object"!=typeof n||!("length"in n))throw Error("The argument passed when initializing an observable array must be an array, or null, or undefined.");return n=s.m(n),s.a.extend(n,s.U.fn),n};s.U.fn={remove:function(n){for(var u,r=this.t(),i=[],f="function"==typeof n?n:function(t){return t===n},t=0;t<r.length;t++)u=r[t],f(u)&&(0===i.length&&this.K(),i.push(u),r.splice(t,1),t--);return i.length&&this.J(),i},removeAll:function(n){if(n===t){var i=this.t(),r=i.slice(0);return this.K(),i.splice(0,i.length),this.J(),r}return n?this.remove(function(t){return 0<=s.a.k(n,t)}):[]},destroy:function(n){var i=this.t(),r="function"==typeof n?n:function(t){return t===n},t;for(this.K(),t=i.length-1;0<=t;t--)r(i[t])&&(i[t]._destroy=!0);this.J()},destroyAll:function(i){return i===t?this.destroy(n(!0)):i?this.destroy(function(n){return 0<=s.a.k(i,n)}):[]},indexOf:function(n){var t=this();return s.a.k(t,n)},replace:function(n,t){var i=this.indexOf(n);0<=i&&(this.K(),this.t()[i]=t,this.J())}};s.a.p("pop push reverse shift sort splice unshift".split(" "),function(n){s.U.fn[n]=function(){var t=this.t();return this.K(),t=t[n].apply(t,arguments),this.J(),t}});s.a.p(["slice"],function(n){s.U.fn[n]=function(){var t=this();return t[n].apply(t,arguments)}});s.b("observableArray",s.U);s.j=function(i,r,u){function w(){s.a.p(o,function(n){n.B()});o=[]}function nt(){var n=f.throttleEvaluation;n&&0<=n?(clearTimeout(d),d=setTimeout(c,n)):c()}function c(){var n,u,i;if(!y)if(a&&p())h();else{y=!0;try{for(n=s.a.Z(o,function(n){return n.target}),s.q.rb(function(i){var r;0<=(r=s.a.k(n,i))?n[r]=t:o.push(i.Da(nt))}),u=e.call(r),i=n.length-1;0<=i;i--)n[i]&&o.splice(i,1)[0].B();a=!0;f.notifySubscribers(l,"beforeChange");l=u;f.notifySubscribers(l)}finally{s.q.end();y=!1}o.length||h()}}function f(){if(0<arguments.length){if("function"==typeof k)k.apply(r,arguments);else throw Error("Cannot write a value to a ko.computed unless you specify a 'write' option. If you wish to read the current value, don't pass any parameters.");return this}return a||c(),s.q.bb(f),l}function b(){return!a||0<o.length}var l,a=!1,y=!1,e=i,g,p;if(e&&"object"==typeof e?(u=e,e=u.read):(u=u||{},e||(e=u.read)),"function"!=typeof e)throw Error("Pass a function that returns the value of the ko.computed");var k=u.write,v=u.disposeWhenNodeIsRemoved||u.$||null,p=u.disposeWhen||u.Qa||n(!1),h=w,o=[],d=null;return r||(r=u.owner),f.t=function(){return a||c(),l},f.Cb=function(){return o.length},f.Eb="function"==typeof u.write,f.B=function(){h()},f.ta=b,s.V.call(f),s.a.extend(f,s.j.fn),s.r(f,"peek",f.t),s.r(f,"dispose",f.B),s.r(f,"isActive",f.ta),s.r(f,"getDependenciesCount",f.Cb),!0!==u.deferEvaluation&&c(),v&&b()&&(h=function(){s.a.C.cb(v,h);w()},s.a.C.ia(v,h),g=p,p=function(){return!s.a.aa(v)||g()}),f};s.Gb=function(n){return s.qa(n,s.j)};o=s.m.Pb;s.j[o]=s.m;s.j.fn={};s.j.fn[o]=s.j;s.b("dependentObservable",s.j);s.b("computed",s.j);s.b("isComputed",s.Gb),function(){function n(u,f,e){if(e=e||new i,u=f(u),"object"!=typeof u||null===u||u===t||u instanceof Date||u instanceof String||u instanceof Number||u instanceof Boolean)return u;var o=u instanceof Array?[]:{};return e.save(u,o),r(u,function(i){var r=f(u[i]),s;switch(typeof r){case"boolean":case"number":case"string":case"function":o[i]=r;break;case"object":case"undefined":s=e.get(r);o[i]=s!==t?s:n(r,f,e)}}),o}function r(n,t){if(n instanceof Array){for(var i=0;i<n.length;i++)t(i);"function"==typeof n.toJSON&&t("toJSON")}else for(i in n)t(i)}function i(){this.keys=[];this.Ha=[]}s.lb=function(t){if(0==arguments.length)throw Error("When calling ko.toJS, pass the object you want to convert.");return n(t,function(n){for(var t=0;s.T(n)&&10>t;t++)n=n();return n})};s.toJSON=function(n,t,i){return n=s.lb(n),s.a.Ca(n,t,i)};i.prototype={save:function(n,t){var i=s.a.k(this.keys,n);0<=i?this.Ha[i]=t:(this.keys.push(n),this.Ha.push(t))},get:function(n){return n=s.a.k(this.keys,n),0<=n?this.Ha[n]:t}}}();s.b("toJS",s.lb);s.b("toJSON",s.toJSON),function(){s.h={n:function(n){switch(s.a.u(n)){case"option":return!0===n.__ko__hasDomDataOptionValue__?s.a.f.get(n,s.d.options.wa):7>=s.a.ca?n.getAttributeNode("value")&&n.getAttributeNode("value").specified?n.value:n.text:n.value;case"select":return 0<=n.selectedIndex?s.h.n(n.options[n.selectedIndex]):t;default:return n.value}},W:function(n,i){switch(s.a.u(n)){case"option":switch(typeof i){case"string":s.a.f.set(n,s.d.options.wa,t);"__ko__hasDomDataOptionValue__"in n&&delete n.__ko__hasDomDataOptionValue__;n.value=i;break;default:s.a.f.set(n,s.d.options.wa,i);n.__ko__hasDomDataOptionValue__=!0;n.value="number"==typeof i?i:""}break;case"select":""===i&&(i=t);(null===i||i===t)&&(n.selectedIndex=-1);for(var r=n.options.length-1;0<=r;r--)if(s.h.n(n.options[r])==i){n.selectedIndex=r;break}1<n.size||-1!==n.selectedIndex||(n.selectedIndex=0);break;default:(null===i||i===t)&&(i="");n.value=i}}}}();s.b("selectExtensions",s.h);s.b("selectExtensions.readValue",s.h.n);s.b("selectExtensions.writeValue",s.h.W);s.g=function(){function n(n,i){for(var r=null;n!=r;)r=n,n=n.replace(t,function(n,t){return i[t]});return n}var t=/\@ko_token_(\d+)\@/g,i=["true","false","null","undefined"],r=/^(?:[$_a-z][$\w]*|(.+)(\.\s*[$_a-z][$\w]*|\[.+\]))$/i;return{S:[],da:function(t){var i=s.a.F(t),f,e,r,u;if(3>i.length)return[];for("{"===i.charAt(0)&&(i=i.substring(1,i.length-1)),t=[],f=null,r=0;r<i.length;r++)if(u=i.charAt(r),null===f)switch(u){case'"':case"'":case"/":f=r;e=u}else if(u==e&&"\\"!==i.charAt(r-1)){u=i.substring(f,r+1);t.push(u);var c="@ko_token_"+(t.length-1)+"@",i=i.substring(0,f)+c+i.substring(r+1),r=r-(u.length-c.length),f=null}e=f=null;for(var o=0,h=null,r=0;r<i.length;r++){if(u=i.charAt(r),null===f)switch(u){case"{":f=r;h=u;e="}";break;case"(":f=r;h=u;e=")";break;case"[":f=r;h=u;e="]"}u===h?o++:u===e&&(o--,0===o&&(u=i.substring(f,r+1),t.push(u),c="@ko_token_"+(t.length-1)+"@",i=i.substring(0,f)+c+i.substring(r+1),r-=u.length-c.length,f=null))}for(e=[],i=i.split(","),f=0,r=i.length;f<r;f++)o=i[f],h=o.indexOf(":"),0<h&&h<o.length-1?(u=o.substring(h+1),e.push({key:n(o.substring(0,h),t),value:n(u,t)})):e.push({unknown:n(o,t)});return e},ea:function(n){var e="string"==typeof n?s.g.da(n):n,f=[],t,h,o,u;for(n=[],h=0;t=e[h];h++)if(0<f.length&&f.push(","),t.key){n:{o=t.key;u=s.a.F(o);switch(u.length&&u.charAt(0)){case"'":case'"':break n;default:o="'"+u+"'"}}t=t.value;f.push(o);f.push(":");f.push(t);t=s.a.F(t);0<=s.a.k(i,s.a.F(t).toLowerCase())?t=!1:(u=t.match(r),t=null===u?!1:u[1]?"Object("+u[1]+")"+u[2]:t);t&&(0<n.length&&n.push(", "),n.push(o+" : function(__ko_value) { "+t+" = __ko_value; }"))}else t.unknown&&f.push(t.unknown);return e=f.join(""),0<n.length&&(e=e+", '_ko_property_writers' : { "+n.join("")+" } "),e},Jb:function(n,t){for(var i=0;i<n.length;i++)if(s.a.F(n[i].key)==t)return!0;return!1},ha:function(n,t,i,r,u){n&&s.T(n)?!s.Xa(n)||u&&n.t()===r||n(r):(n=t()._ko_property_writers)&&n[i]&&n[i](r)}}}();s.b("expressionRewriting",s.g);s.b("expressionRewriting.bindingRewriteValidators",s.g.S);s.b("expressionRewriting.parseObjectLiteral",s.g.da);s.b("expressionRewriting.preProcessBindings",s.g.ea);s.b("jsonExpressionRewriting",s.g);s.b("jsonExpressionRewriting.insertPropertyAccessorsIntoJson",s.g.ea),function(){function n(n){return 8==n.nodeType&&(i?n.text:n.nodeValue).match(e)}function t(n){return 8==n.nodeType&&(i?n.text:n.nodeValue).match(o)}function u(i,r){for(var u=i,f=1,e=[];u=u.nextSibling;){if(t(u)&&(f--,0===f))return e;e.push(u);n(u)&&f++}if(!r)throw Error("Cannot find closing comment tag to match: "+i.nodeValue);return null}function f(n,t){var i=u(n,t);return i?0<i.length?i[i.length-1].nextSibling:n.nextSibling:null}var i=r&&"<!--test-->"===r.createComment("test").text,e=i?/^\x3c!--\s*ko(?:\s+(.+\s*\:[\s\S]*))?\s*--\x3e$/:/^\s*ko(?:\s+(.+\s*\:[\s\S]*))?\s*$/,o=i?/^\x3c!--\s*\/ko\s*--\x3e$/:/^\s*\/ko\s*$/,h={ul:!0,ol:!0};s.e={L:{},childNodes:function(t){return n(t)?u(t):t.childNodes},ba:function(t){if(n(t)){t=s.e.childNodes(t);for(var i=0,r=t.length;i<r;i++)s.removeNode(t[i])}else s.a.oa(t)},P:function(t,i){if(n(t)){s.e.ba(t);for(var u=t.nextSibling,r=0,f=i.length;r<f;r++)u.parentNode.insertBefore(i[r],u)}else s.a.P(t,i)},ab:function(t,i){n(t)?t.parentNode.insertBefore(i,t.nextSibling):t.firstChild?t.insertBefore(i,t.firstChild):t.appendChild(i)},Va:function(t,i,r){r?n(t)?t.parentNode.insertBefore(i,r.nextSibling):r.nextSibling?t.insertBefore(i,r.nextSibling):t.appendChild(i):s.e.ab(t,i)},firstChild:function(i){return n(i)?!i.nextSibling||t(i.nextSibling)?null:i.nextSibling:i.firstChild},nextSibling:function(i){return n(i)&&(i=f(i)),i.nextSibling&&t(i.nextSibling)?null:i.nextSibling},ob:function(t){return(t=n(t))?t[1]:null},Za:function(i){var o,r,u,e;if(h[s.a.u(i)]&&(o=i.firstChild,o))do if(1===o.nodeType){if(r=o.firstChild,u=null,r)do u?u.push(r):n(r)?(e=f(r,!0),e?r=e:u=[r]):t(r)&&(u=[r]);while(r=r.nextSibling);if(r=u)for(u=o.nextSibling,e=0;e<r.length;e++)u?i.insertBefore(r[e],u):i.appendChild(r[e])}while(o=o.nextSibling)}}}();s.b("virtualElements",s.e);s.b("virtualElements.allowedBindings",s.e.L);s.b("virtualElements.emptyNode",s.e.ba);s.b("virtualElements.insertAfter",s.e.Va);s.b("virtualElements.prepend",s.e.ab);s.b("virtualElements.setDomNodeChildren",s.e.P),function(){s.M=function(){this.Na={}};s.a.extend(s.M.prototype,{nodeHasBindings:function(n){switch(n.nodeType){case 1:return null!=n.getAttribute("data-bind");case 8:return null!=s.e.ob(n);default:return!1}},getBindings:function(n,t){var i=this.getBindingsString(n,t);return i?this.parseBindingsString(i,t,n):null},getBindingsString:function(n){switch(n.nodeType){case 1:return n.getAttribute("data-bind");case 8:return s.e.ob(n);default:return null}},parseBindingsString:function(n,t,i){var r,f,e,o;try{return(r=this.Na[n])||(f=this.Na,o="with($context){with($data||{}){return{"+s.g.ea(n)+"}}}",e=new Function("$context","$element",o),r=f[n]=e),r(t,i)}catch(u){throw u.message="Unable to parse bindings.\nBindings value: "+n+"\nMessage: "+u.message,u;}}});s.M.instance=new s.M}();s.b("bindingProvider",s.M),function(){function n(n,t,r){for(var u=s.e.firstChild(t);t=u;)u=s.e.nextSibling(t),i(n,t,r)}function i(t,i,u){var e=!0,f=1===i.nodeType;f&&s.e.Za(i);(f&&u||s.M.instance.nodeHasBindings(i))&&(e=r(i,null,t,u).Sb);e&&n(t,i,!f)}function r(n,i,r,u){function c(n){return function(){return e[n]}}function l(){return e}var o=0,e,h,a=s.a.f.get(n,f);if(!i){if(a)throw Error("You cannot apply bindings multiple times to the same element.");s.a.f.set(n,f,!0)}return s.j(function(){var f=r&&r instanceof s.A?r:new s.A(s.a.c(r)),v=f.$data;!a&&u&&s.jb(n,f);(e=("function"==typeof i?i(f,n):i)||s.M.instance.getBindings(n,f))&&(0===o&&(o=1,s.a.w(e,function(i){var r=s.d[i];if(r&&8===n.nodeType&&!s.e.L[i])throw Error("The binding '"+i+"' cannot be used with virtual elements");if(r&&"function"==typeof r.init&&(r=r.init(n,c(i),l,v,f))&&r.controlsDescendantBindings){if(h!==t)throw Error("Multiple bindings ("+h+" and "+i+") are trying to control descendant bindings of the same element. You cannot use these bindings together on the same element.");h=i}}),o=2),2===o&&s.a.w(e,function(t){var i=s.d[t];i&&"function"==typeof i.update&&i.update(n,c(t),l,v,f)}))},null,{$:n}),{Sb:h===t}}s.d={};s.A=function(n,t,i){t?(s.a.extend(this,t),this.$parentContext=t,this.$parent=t.$data,this.$parents=(t.$parents||[]).slice(0),this.$parents.unshift(this.$parent)):(this.$parents=[],this.$root=n,this.ko=s);this.$data=n;i&&(this[i]=n)};s.A.prototype.createChildContext=function(n,t){return new s.A(n,this,t)};s.A.prototype.extend=function(n){var t=s.a.extend(new s.A,this);return s.a.extend(t,n)};var f="__ko_boundElement";s.jb=function(n,t){if(2==arguments.length)s.a.f.set(n,"__ko_bindingContext__",t);else return s.a.f.get(n,"__ko_bindingContext__")};s.Ka=function(n,t,i){return 1===n.nodeType&&s.e.Za(n),r(n,t,i,!0)};s.Ja=function(t,i){1!==i.nodeType&&8!==i.nodeType||n(t,i,!0)};s.Ia=function(n,t){if(t&&1!==t.nodeType&&8!==t.nodeType)throw Error("ko.applyBindings: first parameter should be your view model; second parameter should be a DOM node");t=t||u.document.body;i(n,t,!0)};s.na=function(n){switch(n.nodeType){case 1:case 8:var i=s.jb(n);if(i)return i;if(n.parentNode)return s.na(n.parentNode)}return t};s.ub=function(n){return(n=s.na(n))?n.$data:t};s.b("bindingHandlers",s.d);s.b("applyBindings",s.Ia);s.b("applyBindingsToDescendants",s.Ja);s.b("applyBindingsToNode",s.Ka);s.b("contextFor",s.na);s.b("dataFor",s.ub)}();l={"class":"className","for":"htmlFor"};s.d.attr={update:function(n,i){var r=s.a.c(i())||{};s.a.w(r,function(i,r){r=s.a.c(r);var u=!1===r||null===r||r===t;u&&n.removeAttribute(i);8>=s.a.ca&&i in l?(i=l[i],u?n.removeAttribute(i):n[i]=r):u||n.setAttribute(i,r.toString());"name"===i&&s.a.gb(n,u?"":r.toString())})}};s.d.checked={init:function(t,i,r){s.a.o(t,"click",function(){var u,n,f;if("checkbox"==t.type)u=t.checked;else if("radio"==t.type&&t.checked)u=t.value;else return;n=i();f=s.a.c(n);"checkbox"==t.type&&f instanceof Array?s.a.ja(n,t.value,t.checked):s.g.ha(n,r,"checked",u,!0)});"radio"!=t.type||t.name||s.d.uniqueName.init(t,n(!0))},update:function(n,t){var i=s.a.c(t());"checkbox"==n.type?n.checked=i instanceof Array?0<=s.a.k(i,n.value):i:"radio"==n.type&&(n.checked=n.value==i)}};s.d.css={update:function(n,t){var i=s.a.c(t());"object"==typeof i?s.a.w(i,function(t,i){i=s.a.c(i);s.a.ga(n,t,i)}):(i=String(i||""),s.a.ga(n,n.__ko__cssValue,!1),n.__ko__cssValue=i,s.a.ga(n,i,!0))}};s.d.enable={update:function(n,t){var i=s.a.c(t());i&&n.disabled?n.removeAttribute("disabled"):i||n.disabled||(n.disabled=!0)}};s.d.disable={update:function(n,t){s.d.enable.update(n,function(){return!s.a.c(t())})}};s.d.event={init:function(n,t,i,r){var u=t()||{};s.a.w(u,function(u){"string"==typeof u&&s.a.o(n,u,function(n){var e,o=t()[u],h,f;if(o){h=i();try{f=s.a.N(arguments);f.unshift(r);e=o.apply(r,f)}finally{!0!==e&&(n.preventDefault?n.preventDefault():n.returnValue=!1)}!1===h[u+"Bubble"]&&(n.cancelBubble=!0,n.stopPropagation&&n.stopPropagation())}})})}};s.d.foreach={Ya:function(n){return function(){var i=n(),t=s.a.ya(i);return!t||"number"==typeof t.length?{foreach:i,templateEngine:s.D.sa}:(s.a.c(i),{foreach:t.data,as:t.as,includeDestroyed:t.includeDestroyed,afterAdd:t.afterAdd,beforeRemove:t.beforeRemove,afterRender:t.afterRender,beforeMove:t.beforeMove,afterMove:t.afterMove,templateEngine:s.D.sa})}},init:function(n,t){return s.d.template.init(n,s.d.foreach.Ya(t))},update:function(n,t,i,r,u){return s.d.template.update(n,s.d.foreach.Ya(t),i,r,u)}};s.g.S.foreach=!1;s.e.L.foreach=!0;s.d.hasfocus={init:function(n,t,i){function r(r){var u,f;if(n.__ko_hasfocusUpdating=!0,u=n.ownerDocument,"activeElement"in u){try{f=u.activeElement}catch(e){f=u.body}r=f===n}u=t();s.g.ha(u,i,"hasfocus",r,!0);n.__ko_hasfocusLastValue=r;n.__ko_hasfocusUpdating=!1}var u=r.bind(null,!0),f=r.bind(null,!1);s.a.o(n,"focus",u);s.a.o(n,"focusin",u);s.a.o(n,"blur",f);s.a.o(n,"focusout",f)},update:function(n,t){var i=!!s.a.c(t());n.__ko_hasfocusUpdating||n.__ko_hasfocusLastValue===i||(i?n.focus():n.blur(),s.q.I(s.a.Ga,null,[n,i?"focusin":"focusout"]))}};s.d.hasFocus=s.d.hasfocus;s.d.html={init:function(){return{controlsDescendantBindings:!0}},update:function(n,t){s.a.fa(n,t())}};a="__ko_withIfBindingData";c("if");c("ifnot",!1,!0);c("with",!0,!1,function(n,t){return n.createChildContext(t)});s.d.options={init:function(n){if("select"!==s.a.u(n))throw Error("options binding applies only to SELECT elements");for(;0<n.length;)n.remove(0);return{controlsDescendantBindings:!0}},update:function(n,i,u){function a(n,t,i){var r=typeof t;return"function"==r?t(n):"string"==r?n[t]:i}function y(n,t){if(e){var i=0<=s.a.k(e,s.h.n(t[0]));s.a.hb(t[0],i)}}var p=0==n.length,h=!p&&n.multiple?n.scrollTop:null,l;i=s.a.c(i());var f=u(),w=f.optionsIncludeDestroyed,c={},o,e;n.multiple?e=s.a.Z(n.selectedOptions||s.a.Y(n.childNodes,function(n){return n.tagName&&"option"===s.a.u(n)&&n.selected}),function(n){return s.h.n(n)}):0<=n.selectedIndex&&(e=[s.h.n(n.options[n.selectedIndex])]);i?("undefined"==typeof i.length&&(i=[i]),l=s.a.Y(i,function(n){return w||n===t||null===n||!s.a.c(n._destroy)}),"optionsCaption"in f&&(o=s.a.c(f.optionsCaption),null!==o&&o!==t&&l.unshift(c))):i=[];u=y;f.optionsAfterRender&&(u=function(n,i){y(0,i);s.q.I(f.optionsAfterRender,null,[i[0],n!==c?n:t])});s.a.Aa(n,l,function(n,i,u){return u.length&&(e=u[0].selected&&[s.h.n(u[0])]),i=r.createElement("option"),n===c?(s.a.fa(i,o),s.h.W(i,t)):(u=a(n,f.optionsValue,n),s.h.W(i,s.a.c(u)),n=a(n,f.optionsText,u),s.a.ib(i,n)),[i]},null,u);e=null;p&&"value"in f&&v(n,s.a.ya(f.value),!0);s.a.zb(n);h&&20<Math.abs(h-n.scrollTop)&&(n.scrollTop=h)}};s.d.options.wa="__ko.optionValueDomData__";s.d.selectedOptions={init:function(n,t,i){s.a.o(n,"change",function(){var u=t(),r=[];s.a.p(n.getElementsByTagName("option"),function(n){n.selected&&r.push(s.h.n(n))});s.g.ha(u,i,"selectedOptions",r)})},update:function(n,t){if("select"!=s.a.u(n))throw Error("values binding applies only to SELECT elements");var i=s.a.c(t());i&&"number"==typeof i.length&&s.a.p(n.getElementsByTagName("option"),function(n){var t=0<=s.a.k(i,s.h.n(n));s.a.hb(n,t)})}};s.d.style={update:function(n,t){var i=s.a.c(t()||{});s.a.w(i,function(t,i){i=s.a.c(i);n.style[t]=i||""})}};s.d.submit={init:function(n,t,i,r){if("function"!=typeof t())throw Error("The value for a submit binding must be a function");s.a.o(n,"submit",function(i){var u,f=t();try{u=f.call(r,n)}finally{!0!==u&&(i.preventDefault?i.preventDefault():i.returnValue=!1)}})}};s.d.text={update:function(n,t){s.a.ib(n,t())}};s.e.L.text=!0;s.d.uniqueName={init:function(n,t){if(t()){var i="ko_unique_"+ ++s.d.uniqueName.tb;s.a.gb(n,i)}}};s.d.uniqueName.tb=0;s.d.value={init:function(n,t,i){function f(){e=!1;var r=t(),u=s.h.n(n);s.g.ha(r,i,"value",u)}var r=["change"],u=i().valueUpdate,e=!1;u&&("string"==typeof u&&(u=[u]),s.a.R(r,u),r=s.a.Ma(r));!s.a.ca||"input"!=n.tagName.toLowerCase()||"text"!=n.type||"off"==n.autocomplete||n.form&&"off"==n.form.autocomplete||-1!=s.a.k(r,"propertychange")||(s.a.o(n,"propertychange",function(){e=!0}),s.a.o(n,"blur",function(){e&&f()}));s.a.p(r,function(t){var i=f;s.a.Tb(t,"after")&&(i=function(){setTimeout(f,0)},t=t.substring(5));s.a.o(n,t,i)})},update:function(n,t){var u="select"===s.a.u(n),r=s.a.c(t()),i=s.h.n(n);r!==i&&(i=function(){s.h.W(n,r)},i(),u&&setTimeout(i,0));u&&0<n.length&&v(n,r,!1)}};s.d.visible={update:function(n,t){var i=s.a.c(t()),r="none"!=n.style.display;i&&!r?n.style.display="":!i&&r&&(n.style.display="none")}},function(n){s.d[n]={init:function(t,i,r,u){return s.d.event.init.call(this,t,function(){var t={};return t[n]=i(),t},r,u)}}}("click");s.v=function(){};s.v.prototype.renderTemplateSource=function(){throw Error("Override renderTemplateSource");};s.v.prototype.createJavaScriptEvaluatorBlock=function(){throw Error("Override createJavaScriptEvaluatorBlock");};s.v.prototype.makeTemplateSource=function(n,t){if("string"==typeof n){t=t||r;var i=t.getElementById(n);if(!i)throw Error("Cannot find template with ID "+n);return new s.l.i(i)}if(1==n.nodeType||8==n.nodeType)return new s.l.Q(n);throw Error("Unknown template type: "+n);};s.v.prototype.renderTemplate=function(n,t,i,r){return n=this.makeTemplateSource(n,r),this.renderTemplateSource(n,t,i)};s.v.prototype.isTemplateRewritten=function(n,t){return!1===this.allowTemplateRewriting?!0:this.makeTemplateSource(n,t).data("isRewritten")};s.v.prototype.rewriteTemplate=function(n,t,i){n=this.makeTemplateSource(n,i);t=t(n.text());n.text(t);n.data("isRewritten",!0)};s.b("templateEngine",s.v);s.Ea=function(){function n(n,t,i,r){var o,f,u,e;for(n=s.g.da(n),o=s.g.S,f=0;f<n.length;f++)if(u=n[f].key,o.hasOwnProperty(u))if(e=o[u],"function"==typeof e){if(u=e(n[f].value))throw Error(u);}else if(!e)throw Error("This template engine does not support the '"+u+"' binding within its templates");return i="ko.__tr_ambtns(function($context,$element){return(function(){return{ "+s.g.ea(n)+" } })()},'"+i.toLowerCase()+"')",r.createJavaScriptEvaluatorBlock(i)+t}var t=/(<([a-z]+\d*)(?:\s+(?!data-bind\s*=\s*)[a-z0-9\-]+(?:=(?:\"[^\"]*\"|\'[^\']*\'))?)*\s+)data-bind\s*=\s*(["'])([\s\S]*?)\3/gi,i=/\x3c!--\s*ko\b\s*([\s\S]*?)\s*--\x3e/g;return{Ab:function(n,t,i){t.isTemplateRewritten(n,i)||t.rewriteTemplate(n,function(n){return s.Ea.Lb(n,t)},i)},Lb:function(r,u){return r.replace(t,function(t,i,r,f,e){return n(e,i,r,u)}).replace(i,function(t,i){return n(i,"<!-- ko -->","#comment",u)})},qb:function(n,t){return s.s.va(function(i,r){var u=i.nextSibling;u&&u.nodeName.toLowerCase()===t&&s.Ka(u,n,r)})}}}();s.b("__tr_ambtns",s.Ea.qb),function(){s.l={};s.l.i=function(n){this.i=n};s.l.i.prototype.text=function(){var n=s.a.u(this.i),n="script"===n?"text":"textarea"===n?"value":"innerHTML",t;if(0==arguments.length)return this.i[n];t=arguments[0];"innerHTML"===n?s.a.fa(this.i,t):this.i[n]=t};s.l.i.prototype.data=function(n){if(1===arguments.length)return s.a.f.get(this.i,"templateSourceData_"+n);s.a.f.set(this.i,"templateSourceData_"+n,arguments[1])};s.l.Q=function(n){this.i=n};s.l.Q.prototype=new s.l.i;s.l.Q.prototype.text=function(){if(0==arguments.length){var n=s.a.f.get(this.i,"__ko_anon_template__")||{};return n.Fa===t&&n.ma&&(n.Fa=n.ma.innerHTML),n.Fa}s.a.f.set(this.i,"__ko_anon_template__",{Fa:arguments[0]})};s.l.i.prototype.nodes=function(){if(0==arguments.length)return(s.a.f.get(this.i,"__ko_anon_template__")||{}).ma;s.a.f.set(this.i,"__ko_anon_template__",{ma:arguments[0]})};s.b("templateSources",s.l);s.b("templateSources.domElement",s.l.i);s.b("templateSources.anonymousTemplate",s.l.Q)}(),function(){function r(n,t,i){var r;for(t=s.e.nextSibling(t);n&&(r=n)!==t;)n=s.e.nextSibling(r),1!==r.nodeType&&8!==r.nodeType||i(r)}function u(n,t){if(n.length){var i=n[0],u=n[n.length-1];r(i,u,function(n){s.Ia(t,n)});r(i,u,function(n){s.s.nb(n,[t])})}}function n(n){return n.nodeType?n:0<n.length?n[0]:null}function f(t,r,f,e,o){o=o||{};var h=t&&n(t),h=h&&h.ownerDocument,c=o.templateEngine||i;if(s.Ea.Ab(f,c,h),f=c.renderTemplate(f,e,o,h),"number"!=typeof f.length||0<f.length&&"number"!=typeof f[0].nodeType)throw Error("Template engine must return an array of DOM nodes");h=!1;switch(r){case"replaceChildren":s.e.P(t,f);h=!0;break;case"replaceNode":s.a.eb(t,f);h=!0;break;case"ignoreTargetNode":break;default:throw Error("Unknown renderMode: "+r);}return h&&(u(f,e),o.afterRender&&s.q.I(o.afterRender,null,[f,e.$data])),f}var i;s.Ba=function(n){if(n!=t&&!(n instanceof s.v))throw Error("templateEngine must inherit from ko.templateEngine");i=n};s.za=function(r,u,e,o,h){if(e=e||{},(e.templateEngine||i)==t)throw Error("Set a template engine before calling renderTemplate");if(h=h||"replaceChildren",o){var c=n(o);return s.j(function(){var t=u&&u instanceof s.A?u:new s.A(s.a.c(u)),i="function"==typeof r?r(t.$data,t):r,t=f(o,h,i,t,e);"replaceNode"==h&&(o=t,c=n(o))},null,{Qa:function(){return!c||!s.a.aa(c)},$:c&&"replaceNode"==h?c.parentNode:c})}return s.s.va(function(n){s.za(r,u,e,n,"replaceNode")})};s.Rb=function(n,i,r,e,o){function c(n,t){u(t,h);r.afterRender&&r.afterRender(t,n)}function l(t,i){h=o.createChildContext(s.a.c(t),r.as);h.$index=i;var u="function"==typeof n?n(t,h):n;return f(null,"ignoreTargetNode",u,h,r)}var h;return s.j(function(){var n=s.a.c(i)||[];"undefined"==typeof n.length&&(n=[n]);n=s.a.Y(n,function(n){return r.includeDestroyed||n===t||null===n||!s.a.c(n._destroy)});s.q.I(s.a.Aa,null,[e,n,l,r,c])},null,{$:e})};s.d.template={init:function(n,t){var i=s.a.c(t());return"string"==typeof i||i.name||1!=n.nodeType&&8!=n.nodeType||(i=1==n.nodeType?n.childNodes:s.e.childNodes(n),i=s.a.Mb(i),new s.l.Q(n).nodes(i)),{controlsDescendantBindings:!0}},update:function(n,i,r,u,f){i=s.a.c(i());r={};u=!0;var e,o=null;"string"!=typeof i&&(r=i,i=s.a.c(r.name),"if"in r&&(u=s.a.c(r["if"])),u&&"ifnot"in r&&(u=!s.a.c(r.ifnot)),e=s.a.c(r.data));"foreach"in r?o=s.Rb(i||n,u&&r.foreach||[],r,n,f):u?(f="data"in r?f.createChildContext(e,r.as):f,o=s.za(i||n,f,r,n)):s.e.ba(n);f=o;(e=s.a.f.get(n,"__ko__templateComputedDomDataKey__"))&&"function"==typeof e.B&&e.B();s.a.f.set(n,"__ko__templateComputedDomDataKey__",f&&f.ta()?f:t)}};s.g.S.template=function(n){return n=s.g.da(n),1==n.length&&n[0].unknown||s.g.Jb(n,"name")?null:"This template engine does not support anonymous templates nested within its templates"};s.e.L.template=!0}();s.b("setTemplateEngine",s.Ba);s.b("renderTemplate",s.za);s.a.Pa=function(){function n(n,t,i,r,u){for(var o=Math.min,l=Math.max,s=[],a=n.length,f,h=t.length,c=h-a||1,w=a+h+1,v,p,b,y,e=0;e<=a;e++)for(p=v,s.push(v=[]),b=o(h,e+c),f=l(0,e-1);f<=b;f++)v[f]=f?e?n[e-1]===t[f-1]?p[f-1]:o(p[f]||w,v[f-1]||w)+1:f+1:e+1;for(o=[],l=[],c=[],e=a,f=h;e||f;)h=s[e][f]-1,f&&h===s[e][f-1]?l.push(o[o.length]={status:i,value:t[--f],index:f}):e&&h===s[e-1][f]?c.push(o[o.length]={status:r,value:n[--e],index:e}):(o.push({status:"retained",value:t[--f]}),--e);if(l.length&&c.length)for(n=10*a,t=i=0;(u||t<n)&&(y=l[i]);i++){for(r=0;s=c[r];r++)if(y.value===s.value){y.moved=s.index;s.moved=y.index;c.splice(r,1);t=r=0;break}t+=r}return o.reverse()}return function(t,i,r){return t=t||[],i=i||[],t.length<=i.length?n(t,i,"added","deleted",r):n(i,t,"deleted","added",r)}}();s.b("utils.compareArrays",s.a.Pa),function(){function n(n){for(;n.length&&!s.a.aa(n[0]);)n.splice(0,1);if(1<n.length){for(var t=n[0],r=n[n.length-1],i=[t];t!==r;){if(t=t.nextSibling,!t)return;i.push(t)}Array.prototype.splice.apply(n,[0,n.length].concat(i))}return n}function i(i,r,u,f,e){var o=[];return i=s.j(function(){var t=r(u,e,n(o))||[];0<o.length&&(s.a.eb(o,t),f&&s.q.I(f,null,[u,t,e]));o.splice(0,o.length);s.a.R(o,t)},null,{$:i,Qa:function(){return!s.a.pb(o)}}),{O:o,j:i.ta()?i:t}}s.a.Aa=function(r,u,f,e,o){function rt(t,i){h=k[i];nt!==i&&(it[t]=h);h.ra(nt++);n(h.O);g.push(h);p.push(h)}function v(n,t){if(n)for(var i=0,r=t.length;i<r;i++)t[i]&&s.a.p(t[i].O,function(r){n(r,i,t[i].X)})}var c,y,ut;u=u||[];e=e||{};var y=s.a.f.get(r,"setDomNodeChildrenFromArrayMapping_lastMappingResult")===t,k=s.a.f.get(r,"setDomNodeChildrenFromArrayMapping_lastMappingResult")||[],d=s.a.Z(k,function(n){return n.X}),l=s.a.Pa(d,u,e.dontLimitMoves),g=[],a=0,nt=0,tt=[],p=[];u=[];for(var it=[],d=[],h,c=0,w,b;w=l[c];c++)switch(b=w.moved,w.status){case"deleted":b===t&&(h=k[a],h.j&&h.j.B(),tt.push.apply(tt,n(h.O)),e.beforeRemove&&(u[c]=h,p.push(h)));a++;break;case"retained":rt(c,a++);break;case"added":b!==t?rt(c,b):(h={X:w.value,ra:s.m(nt++)},g.push(h),p.push(h),y||(d[c]=h))}for(v(e.beforeMove,it),s.a.p(tt,e.beforeRemove?s.H:s.removeNode),c=0,y=s.e.firstChild(r);h=p[c];c++){for(h.O||s.a.extend(h,i(r,f,h.X,o,h.ra)),a=0;l=h.O[a];y=l.nextSibling,ut=l,a++)l!==y&&s.e.Va(r,l,ut);!h.Fb&&o&&(o(h.X,h.O,h.ra),h.Fb=!0)}v(e.beforeRemove,u);v(e.afterMove,it);v(e.afterAdd,d);s.a.f.set(r,"setDomNodeChildrenFromArrayMapping_lastMappingResult",g)}}();s.b("utils.setDomNodeChildrenFromArrayMapping",s.a.Aa);s.D=function(){this.allowTemplateRewriting=!1};s.D.prototype=new s.v;s.D.prototype.renderTemplateSource=function(n){var t=(9>s.a.ca?0:n.nodes)?n.nodes():null;return t?s.a.N(t.cloneNode(!0).childNodes):(n=n.text(),s.a.xa(n))};s.D.sa=new s.D;s.Ba(s.D.sa);s.b("nativeTemplateEngine",s.D),function(){s.ua=function(){var n=this.Ib=function(){if("undefined"==typeof i||!i.tmpl)return 0;try{if(0<=i.tmpl.tag.tmpl.open.toString().indexOf("__"))return 2}catch(n){}return 1}();this.renderTemplateSource=function(t,u,f){if(f=f||{},2>n)throw Error("Your version of jQuery.tmpl is too old. Please upgrade to jQuery.tmpl 1.0.0pre or later.");var e=t.data("precompiled");return e||(e=t.text()||"",e=i.template(null,"{{ko_with $item.koBindingContext}}"+e+"{{/ko_with}}"),t.data("precompiled",e)),t=[u.$data],u=i.extend({koBindingContext:u},f.templateOptions),u=i.tmpl(e,t,u),u.appendTo(r.createElement("div")),i.fragments={},u};this.createJavaScriptEvaluatorBlock=function(n){return"{{ko_code ((function() { return "+n+" })()) }}"};this.addTemplate=function(n,t){r.write("<script type='text/html' id='"+n+"'>"+t+"<\/script>")};0<n&&(i.tmpl.tag.ko_code={open:"__.push($1 || '');"},i.tmpl.tag.ko_with={open:"with($1) {",close:"} "})};s.ua.prototype=new s.v;var n=new s.ua;0<n.Ib&&s.Ba(n);s.b("jqueryTmplTemplateEngine",s.ua)}()})})()}();!function(n){"function"==typeof require&&"object"==typeof exports&&"object"==typeof module?n(require("knockout"),require("jquery"),require("kendo")):"function"==typeof define&&define.amd?define(["knockout","jquery","kendo"],n):n(window.ko,window.jQuery,window.kendo)}(function(n,t,i,r){var y;i=i||window.kendo;n.kendo=n.kendo||{};n.kendo.BindingFactory=function(){var u=this,f;this.createBinding=function(i){if(t()[i.parent||i.name]){var r={};r.init=function(n,t,f,e,o){var s=u.buildOptions(i,t);return s.async===!0||i.async===!0&&s.async!==!1?(setTimeout(function(){r.setup(n,s,o)},0),void 0):(r.setup(n,s,o),s&&s.useKOTemplates?{controlsDescendantBindings:!0}:void 0)};r.setup=function(r,f,e){var o,s=t(r);u.setupTemplates(i.templates,f,r,e);o=u.getWidget(i,f,s);u.handleEvents(f,i,r,o,e);u.watchValues(o,f,i,r);o.destroy&&n.utils.domNodeDisposal.addDisposeCallback(r,function(){o.destroy()})};r.options={};r.widgetConfig=i;n.bindingHandlers[i.bindingName||i.name]=r}};this.buildOptions=function(t,r){var f=t.defaultOption,e=n.utils.extend({},n.bindingHandlers[t.name].options),u=n.utils.unwrapObservable(r());return u instanceof i.data.DataSource||"object"!=typeof u||null===u||f&&!(f in u)?e[f]=r():n.utils.extend(e,u),e};f=function(t,i){return function(r){return n.renderTemplate(t,i.createChildContext(r._raw&&r._raw()||r))}};this.setupTemplates=function(t,i,r,u){var e,h,o,s;if(t&&i&&i.useKOTemplates){for(e=0,h=t.length;h>e;e++)o=t[e],i[o]&&(i[o]=f(i[o],u));s=i.dataBound;i.dataBound=function(){n.memoization.unmemoizeDomNodeAndDescendants(r);s&&s.apply(this,arguments)}}};this.unwrapOneLevel=function(t){var r,u={};if(t)if(t instanceof i.data.DataSource)u=t;else if("object"==typeof t)for(r in t)u[r]=n.utils.unwrapObservable(t[r]);return u};this.getWidget=function(t,i,r){var u,f;return t.parent?(f=r.closest("[data-bind*='"+t.parent+":']"),u=f.length?f.data(t.parent):null):u=r[t.name](this.unwrapOneLevel(i)).data(t.name),n.isObservable(i.widget)&&i.widget(u),u};this.watchValues=function(n,t,i,r){var f,e=i.watch;if(e)for(f in e)e.hasOwnProperty(f)&&u.watchOneValue(f,n,t,i,r)};this.watchOneValue=function(i,u,f,e,o){var s=n.computed({read:function(){var a,l,s=e.watch[i],h=n.utils.unwrapObservable(f[i]),c=e.parent?[o]:[];t.isArray(s)?s=u[h?s[0]:s[1]]:"string"==typeof s?s=u[s]:l=!0;s&&f[i]!==r&&(l?c.push(h,f):(a=s.apply(u,c),c.push(h)),(l||a!==h)&&s.apply(u,c))},disposeWhenNodeIsRemoved:o}).extend({throttle:f.throttle||0===f.throttle?f.throttle:1});n.isObservable(f[i])||s.dispose()};this.handleEvents=function(n,t,i,r,f){var o,e,s=t.events;if(s)for(o in s)s.hasOwnProperty(o)&&(e=s[o],"string"==typeof e&&(e={value:e,writeTo:e}),u.handleOneEvent(o,e,n,i,r,t.childProp,f))};this.handleOneEvent=function(t,i,r,u,f,e,o){var s="function"==typeof i?i:r[i.call];"function"==typeof i?s=s.bind(o.$data,r):i.call&&"function"==typeof r[i.call]?s=r[i.call].bind(o.$data,o.$data):i.writeTo&&n.isWriteableObservable(r[i.writeTo])&&(s=function(n){var t,f;e&&n[e]&&n[e]!==u||(t=i.value,f="string"==typeof t&&this[t]?this[t](e&&u):t,r[i.writeTo](f))});s&&f.bind(t,s)}};n.kendo.bindingFactory=new n.kendo.BindingFactory;n.kendo.setDataSource=function(t,r,u){var f,e;return r instanceof i.data.DataSource?(t.setDataSource(r),void 0):(u&&u.useKOTemplates||(f=n.mapping&&r&&r.__ko_mapping__,e=r&&f?n.mapping.toJS(r):n.toJS(r)),t.dataSource.data(e||r),void 0)},function(){var n=i.data.ObservableArray.fn.wrap;i.data.ObservableArray.fn.wrap=function(t){var i=n.apply(this,arguments);return i._raw=function(){return t},i}}();var c=function(t){return function(i){i&&(n.utils.extend(this.options[t],i),this.redraw(),this.value(.001+this.value()))}},f=n.kendo.bindingFactory.createBinding.bind(n.kendo.bindingFactory),d="clicked",s="close",p="collapse",g="content",w="data",e="enable",b="expand",l="expanded",rt="error",ut="info",o="isOpen",a="max",v="min",h="open",nt="search",tt="selected",ft="success",it="size",u="value",k="values",et="warning";f({name:"kendoAutoComplete",events:{change:u,open:{writeTo:o,value:!0},close:{writeTo:o,value:!1}},watch:{enabled:e,search:[nt,s],data:function(t){n.kendo.setDataSource(this,t)},value:u}});f({name:"kendoButton",defaultOption:d,events:{click:{call:d}},watch:{enabled:e}});f({name:"kendoCalendar",defaultOption:u,events:{change:u},watch:{max:a,min:v,value:u}});f({name:"kendoColorPicker",events:{change:u,open:{writeTo:o,value:!0},close:{writeTo:o,value:!1}},watch:{enabled:e,value:u,color:u,palette:"palette"}});f({name:"kendoComboBox",events:{change:u,open:{writeTo:o,value:!0},close:{writeTo:o,value:!1}},watch:{enabled:e,isOpen:[h,s],data:function(t){n.kendo.setDataSource(this,t)},value:u}});f({name:"kendoDatePicker",defaultOption:u,events:{change:u,open:{writeTo:o,value:!0},close:{writeTo:o,value:!1}},watch:{enabled:e,max:a,min:v,value:u,isOpen:[h,s]}});f({name:"kendoDateTimePicker",defaultOption:u,events:{change:u,open:{writeTo:o,value:!0},close:{writeTo:o,value:!1}},watch:{enabled:e,max:a,min:v,value:u,isOpen:[h,s]}});f({name:"kendoDropDownList",events:{change:u,open:{writeTo:o,value:!0},close:{writeTo:o,value:!1}},watch:{enabled:e,isOpen:[h,s],data:function(t){n.kendo.setDataSource(this,t);t.length&&this.options.optionLabel&&this.select()<0&&this.select(0)},value:u}});f({name:"kendoEditor",defaultOption:u,events:{change:u},watch:{enabled:e,value:u}});f({name:"kendoGrid",defaultOption:w,watch:{data:function(t,i){n.kendo.setDataSource(this,t,i)}},templates:["rowTemplate","altRowTemplate"]});f({name:"kendoListView",defaultOption:w,watch:{data:function(t,i){n.kendo.setDataSource(this,t,i)}},templates:["template"]});f({name:"kendoMaskedTextBox",defaultOption:u,events:{change:u},watch:{enabled:e,isReadOnly:"readonly",value:u}});f({name:"kendoMenu",async:!0});f({name:"kendoMenuItem",parent:"kendoMenu",watch:{enabled:e,isOpen:[h,s]},async:!0});f({name:"kendoMultiSelect",events:{change:u,open:{writeTo:o,value:!0},close:{writeTo:o,value:!1}},watch:{enabled:e,search:[nt,s],data:function(t){n.kendo.setDataSource(this,t)},value:u}});y=function(n,t){t||0===t?this.show(t,n):this.hide()};f({name:"kendoNotification",watch:{error:function(n){y.call(this,rt,n)},info:function(n){y.call(this,ut,n)},success:function(n){y.call(this,ft,n)},warning:function(n){y.call(this,et,n)}}});f({name:"kendoNumericTextBox",defaultOption:u,events:{change:u},watch:{enabled:e,value:u,max:function(n){this.options.max=n;var t=this.value();(t||0===t)&&t>n&&this.value(n)},min:function(n){this.options.min=n;var t=this.value();(t||0===t)&&n>t&&this.value(n)}}});f({name:"kendoPanelBar",async:!0});f({name:"kendoPanelItem",parent:"kendoPanelBar",watch:{enabled:e,expanded:[b,p],selected:["select"]},childProp:"item",events:{expand:{writeTo:l,value:!0},collapse:{writeTo:l,value:!1},select:{writeTo:tt,value:u}},async:!0});f({name:"kendoProgressBar",defaultOption:u,events:{change:u},watch:{enabled:e,value:u}});f({name:"kendoRangeSlider",defaultOption:k,events:{change:k},watch:{values:k,enabled:e}});f({async:!0,name:"kendoScheduler",watch:{data:function(t,i){n.kendo.setDataSource(this,t,i)}}});f({name:"kendoSlider",defaultOption:u,events:{change:u},watch:{value:u,enabled:e}});f({name:"kendoSortable",defaultOption:w,events:{end:function(i,r){var u="__ko_kendo_sortable_data__",f="receive"!==r.action?n.dataFor(r.item[0]):r.draggableEvent[u],o=i.data,e=i.data;("sort"===r.action||"remove"===r.action)&&(e.splice(r.oldIndex,1),"remove"===r.action&&(r.draggableEvent[u]=f));("sort"===r.action||"receive"===r.action)&&(e.splice(r.newIndex,0,f),delete r.draggableEvent[u],t(r.draggableEvent.target).hide(),r.preventDefault());o.valueHasMutated()}}});f({name:"kendoSplitter",async:!0});f({name:"kendoSplitterPane",parent:"kendoSplitter",watch:{max:a,min:v,size:it,expanded:[b,p]},childProp:"pane",events:{collapse:{writeTo:l,value:!1},expand:{writeTo:l,value:!0},resize:it},async:!0});f({name:"kendoTabStrip",async:!0});f({name:"kendoTab",parent:"kendoTabStrip",watch:{enabled:e},childProp:"item",async:!0});f({name:"kendoTooltip",events:{},watch:{content:g,filter:"filter"}});f({name:"kendoTimePicker",defaultOption:u,events:{change:u},watch:{max:a,min:v,value:u,enabled:e,isOpen:[h,s]}});f({name:"kendoTreeView",async:!0});f({name:"kendoTreeItem",parent:"kendoTreeView",watch:{enabled:e,expanded:[b,p],selected:function(n,t){t?this.select(n):this.select()[0]==n&&this.select(null)}},childProp:"node",events:{collapse:{writeTo:l,value:!1},expand:{writeTo:l,value:!0},select:{writeTo:tt,value:!0}},async:!0});f({name:"kendoUpload",watch:{enabled:e}});f({async:!0,name:"kendoWindow",events:{open:{writeTo:o,value:!0},close:{writeTo:o,value:!1}},watch:{content:g,title:"title",isOpen:[h,s]}});f({name:"kendoChart",watch:{data:function(t){n.kendo.setDataSource(this,t)}}});f({name:"kendoLinearGauge",defaultOption:u,watch:{value:u,gaugeArea:c("gaugeArea"),pointer:c("pointer"),scale:c("scale")}});f({name:"kendoRadialGauge",defaultOption:u,watch:{value:u,gaugeArea:c("gaugeArea"),pointer:c("pointer"),scale:c("scale")}})});Raphael=function(){function n(){var r;if(n.is(arguments[0],et)){for(var i=arguments[0],f=rr[b](n,i.splice(0,3+n.is(i[0],nt))),e=f.set(),u=0,o=i[t];u<o;u++)r=i[u]||{},ku.test(r.type)&&e[a](f[r.type]().attr(r));return e}return rr[b](n,arguments)}function y(){}function si(t){var u,i;return n.vml?(u=/^\s+|\s+$/g,si=ut(function(n){var f,t,i;n=(n+r)[w](u,r);try{t=new st.ActiveXObject("htmlfile");t.write("<body>");t.close();f=t.body}catch(e){f=st.createPopup().document.body}t=f.createTextRange();try{return f.style.color=n,i=t.queryCommandValue("ForeColor"),i=(i&255)<<16|i&65280|(i&16711680)>>>16,"#"+("000000"+i[d](16)).slice(-6)}catch(o){return"none"}})):(i=c.createElement("i"),i.title="Raphaël Colour Picker",i.style.display="none",c.body[o](i),si=ut(function(n){return i.style.color=n,c.defaultView.getComputedStyle(i,r).getPropertyValue("color")})),si(t)}function nf(){return"hsb("+[this.h,this.s,this.b]+")"}function tf(){return this.hex}function ut(n,r,u){function f(){var c=Array[i].slice.call(arguments,0),e=c[tt]("►"),o=f.cache=f.cache||{},h=f.count=f.count||[];return o[s](e)?u?u(o[e]):o[e]:(h[t]>=1e3&&delete o[h.shift()],h[a](e),o[e]=n[b](r,c),u?u(o[e]):o[e])}return f}function ci(i){var f=[],r,e,u,o;for(n.is(i,et)&&n.is(i&&i[0],et)||(i=n.parsePathString(i)),r=0,e=i[t];r<e;r++)for(f[r]=[],u=0,o=i[r][t];u<o;u++)f[r][u]=i[r][u];return f[d]=n._path2string,f}function li(n,t,i,r){return[n,t,i,r,i,r]}function vr(n,t,i,r,u,f){var e=1/3,o=2/3;return[e*n+o*i,e*t+o*r,e*u+o*i,e*f+o*r,u,f]}function yr(n,i,r,u,f,o,s,h,c,l){var y=e.PI,it=y*120/180,g=y/180*(+f||0),b=[],a,nt=ut(function(n,t,i){var r=n*e.cos(i)-t*e.sin(i);return n=n*e.sin(i)+t*e.cos(i),{x:r,y:n}}),d,w,v;if(l?(v=l[0],a=l[1],o=l[2],w=l[3]):(a=nt(n,i,-g),n=a.x,i=a.y,a=nt(h,c,-g),h=a.x,c=a.y,e.cos(y/180*f),e.sin(y/180*f),a=(n-h)/2,v=(i-c)/2,w=a*a/(r*r)+v*v/(u*u),w>1&&(w=e.sqrt(w),r=w*r,u=w*u),w=r*r,d=u*u,w=(o==s?-1:1)*e.sqrt(e.abs((w*d-w*v*v-d*a*a)/(w*v*v+d*a*a))),o=w*r*v/u+(n+h)/2,w=w*-u*a/r+(i+c)/2,v=e.asin(((i-w)/u).toFixed(7)),a=e.asin(((c-w)/u).toFixed(7)),v=n<o?y-v:v,a=h<o?y-a:a,v<0&&(v=y*2+v),a<0&&(a=y*2+a),s&&v>a&&(v-=y*2),!s&&a>v&&(a-=y*2)),y=a-v,e.abs(y)>it&&(b=a,y=h,d=c,a=v+it*(s&&a>v?1:-1),h=o+r*e.cos(a),c=w+u*e.sin(a),b=yr(h,c,r,u,f,0,s,y,d,[a,b,o,w])),y=a-v,f=e.cos(v),o=e.sin(v),s=e.cos(a),a=e.sin(a),y=e.tan(y/4),r=4/3*r*y,y=4/3*u*y,u=[n,i],n=[n+r*o,i-y*f],i=[h+r*a,c-y*s],h=[h,c],n[0]=2*u[0]-n[0],n[1]=2*u[1]-n[1],l)return[n,i,h][k](b);for(b=[n,i,h][k](b)[tt]()[p](","),l=[],h=0,c=b[t];h<c;h++)l[h]=h%2?nt(b[h-1],b[h],g).y:nt(b[h],b[h+1],g).x;return l}function ii(n,t,i,r,u,f,e,o,s){var h=1-s;return{x:l(h,3)*n+l(h,2)*3*s*i+h*3*s*s*u+l(s,3)*e,y:l(h,3)*t+l(h,2)*3*s*r+h*3*s*s*f+l(s,3)*o}}function wr(t,i,r,u){if(n.is(t,wt)||n.is(t,"object")){if(t=n.is(t,wt)?c.getElementById(t):t,t.tagName)return i==null?{container:t,width:t.style.pixelWidth||t.offsetWidth,height:t.style.pixelHeight||t.offsetHeight}:{container:t,width:i,height:r}}else return{container:1,x:t,y:i,width:r,height:u}}function nr(n,t){var r=this;for(var i in t)if(t[s](i)&&!(i in n))switch(typeof t[i]){case"function":(function(t){n[i]=n===r?t:function(){return t[b](r,arguments)}})(t[i]);break;case"object":n[i]=n[i]||{};nr.call(this,n[i],t[i]);break;default:n[i]=t[i]}}function gt(n,t){n==t.top&&(t.top=n.prev);n==t.bottom&&(t.bottom=n.next);n.next&&(n.next.prev=n.prev);n.prev&&(n.prev.next=n.next)}function br(n,t){t.top!==n&&(gt(n,t),n.next=null,n.prev=t.top,t.top.next=n,t.top=n)}function kr(n,t){t.bottom!==n&&(gt(n,t),n.next=t.bottom,n.prev=null,t.bottom.prev=n,t.bottom=n)}function dr(n,t,i){gt(n,i);t==i.top&&(i.top=n);t.next&&(t.next.prev=n);n.next=t.next;n.prev=t;t.next=n}function gr(n,t,i){gt(n,i);t==i.bottom&&(i.bottom=n);t.prev&&(t.prev.next=n);n.prev=t.prev;t.prev=n;n.next=t}function nu(n){return function(){throw new Error("Raphaël: you are calling to method “"+n+"” of removed object");}}function cf(){this.returnValue=!1}function lf(){return this.originalEvent.preventDefault()}function af(){this.cancelBubble=!0}function vf(){return this.originalEvent.stopPropagation()}function vu(){return this.x+g+this.y}function fr(t,i){return function(r,u,f){r=ai(r);for(var o,s,e,l,h="",a={},c=0,v=0,y=r.length;v<y;v++){if(e=r[v],e[0]=="M")o=+e[1],s=+e[2];else{if(l=yf(o,s,e[1],e[2],e[3],e[4],e[5],e[6]),c+l>u){if(i&&!a.start){if(o=ur(o,s,e[1],e[2],e[3],e[4],e[5],e[6],u-c),h+=["C",o.start.x,o.start.y,o.m.x,o.m.y,o.x,o.y],f)return h;a.start=h;h=["M",o.x,o.y+"C",o.n.x,o.n.y,o.end.x,o.end.y,e[5],e[6]][tt]();c+=l;o=+e[5];s=+e[6];continue}if(!t&&!i)return o=ur(o,s,e[1],e[2],e[3],e[4],e[5],e[6],u-c),{x:o.x,y:o.y,alpha:o.alpha}}c+=l;o=+e[5];s=+e[6]}h+=e}return a.end=h,o=t?c:i?a:n.findDotsAtSegment(o,s,e[1],e[2],e[3],e[4],e[5],e[6],1),o.alpha&&(o={x:o.x,y:o.y,alpha:o.alpha}),o}}function pu(){var et=+new Date,p,l,i,ut,k,ft;for(p in rt)if(p!="length"&&rt[s](p))if(l=rt[p],l.stop||l.el.removed)delete rt[p],rt[t]--;else{var w=et-l.start,a=l.ms,u=l.easing,o=l.from,f=l.diff,h=l.to,b=l.t,d=l.prev||0,c=l.el,y=l.callback,it={},e;if(w<a){y=n.easing_formulas[u]?n.easing_formulas[u](w/a):w/a;for(i in o)if(o[s](i)){switch(di[i]){case"along":e=y*a*f[i];h.back&&(e=h.len-e);u=vi(h[i],e);c.translate(f.sx-f.x||0,f.sy-f.y||0);f.x=u.x;f.y=u.y;c.translate(u.x-f.sx,u.y-f.sy);h.rot&&c.rotate(f.r+u.alpha,u.x,u.y);break;case nt:e=+o[i]+y*a*f[i];break;case"colour":e="rgb("+[or(v(o[i].r+y*a*f[i].r)),or(v(o[i].g+y*a*f[i].g)),or(v(o[i].b+y*a*f[i].b))][tt](",")+")";break;case"path":for(e=[],u=0,ut=o[i][t];u<ut;u++){for(e[u]=[o[i][u][0]],k=1,ft=o[i][u][t];k<ft;k++)e[u][k]=+o[i][u][k]+y*a*f[i][u][k];e[u]=e[u][tt](g)}e=e[tt](g);break;case"csv":switch(i){case"translation":e=f[i][0]*(w-d);u=f[i][1]*(w-d);b.x+=e;b.y+=u;e=e+g+u;break;case"rotation":e=+o[i][0]+y*a*f[i][0];o[i][1]&&(e+=","+o[i][1]+","+o[i][2]);break;case"scale":e=[+o[i][0]+y*a*f[i][0],+o[i][1]+y*a*f[i][1],2 in h[i]?h[i][2]:r,3 in h[i]?h[i][3]:r][tt](g);break;case"clip-rect":for(e=[],u=4;u--;)e[u]=+o[i][u]+y*a*f[i][u]}}it[i]=e}c.attr(it);c._run&&c._run.call(c)}else h.along&&(u=vi(h.along,h.len*!h.back),c.translate(f.sx-(f.x||0)+u.x-f.sx,f.sy-(f.y||0)+u.y-f.sy),h.rot&&c.rotate(f.r+u.alpha,u.x,u.y)),(b.x||b.y)&&c.translate(-b.x,-b.y),h.scale&&(h.scale+=r),c.attr(h),delete rt[p],rt[t]--,c.in_animation=null,n.is(y,"function")&&y.call(c);l.prev=w}n.svg&&c&&c.paper&&c.paper.safari();rt[t]&&st.setTimeout(pu)}function or(n){return ht(lt(n,255),0)}function yi(n,t){if(n==null)return{x:this._.tx,y:this._.ty,toString:vu};this._.tx+=+n;this._.ty+=+t;switch(this.type){case"circle":case"ellipse":this.attr({cx:+n+this.attrs.cx,cy:+t+this.attrs.cy});break;case"rect":case"image":case"text":this.attr({x:+n+this.attrs.x,y:+t+this.attrs.y});break;case"path":var i=gi(this.attrs.path);i[0][1]+=+n;i[0][2]+=+t;this.attr({path:i})}return this}function wu(t){return function(i,r,f,e){var o={back:t};return n.is(f,"function")?e=f:o.rot=f,i&&i.constructor==u&&(i=i.attrs.path),i&&(o.along=i),this.animate(o,r,e)}}function ct(n){if(this.items=[],this[t]=0,this.type="set",n)for(var i=0,r=n[t];i<r;i++)n[i]&&(n[i].constructor==u||n[i].constructor==ct)&&(this[this.items[t]]=this.items[this.items[t]]=n[i],this[t]++)}var bt,lr,ar,ti,gi,dt,tr,f,cu,it,au,ur,rt,pi,bu;n.version="1.4.3";var ft=/[, ]+/,ku=/^(circle|rect|path|ellipse|text|image)$/,i="prototype",s="hasOwnProperty",c=document,st=window,sr={was:Object[i][s].call(st,"Raphael"),is:st.Raphael};var o="appendChild",b="apply",k="concat",wi="createTouch"in c,r="",g=" ",p="split",hr="click dblclick mousedown mousemove mouseout mouseover mouseup touchstart touchmove touchend orientationchange touchcancel gesturestart gesturechange gestureend"[p](g),bi={mousedown:"touchstart",mousemove:"touchmove",mouseup:"touchend"},tt="join",t="length",yt=String[i].toLowerCase,e=Math,ht=e.max,lt=e.min,nt="number",wt="string",et="array",d="toString",at="fill",du=Object[i][d],l=e.pow,a="push",kt=/^(?=[\da-f]$)/,cr=/^url\(['"]?([^\)]+?)['"]?\)$/i,gu=/^\s*((#[a-f\d]{6})|(#[a-f\d]{3})|rgba?\(\s*([\d\.]+\s*,\s*[\d\.]+\s*,\s*[\d\.]+(?:\s*,\s*[\d\.]+)?)\s*\)|rgba?\(\s*([\d\.]+%\s*,\s*[\d\.]+%\s*,\s*[\d\.]+%(?:\s*,\s*[\d\.]+%))\s*\)|hs[bl]\(\s*([\d\.]+\s*,\s*[\d\.]+\s*,\s*[\d\.]+)\s*\)|hs[bl]\(\s*([\d\.]+%\s*,\s*[\d\.]+%\s*,\s*[\d\.]+%)\s*\))\s*$/i,v=e.round,ot="setAttribute",h=parseFloat,pt=parseInt,ki=" progid:DXImageTransform.Microsoft",ei=String[i].toUpperCase,oi={blur:0,"clip-rect":"0 0 1e9 1e9",cursor:"default",cx:0,cy:0,fill:"#fff","fill-opacity":1,font:'10px "Arial"',"font-family":'"Arial"',"font-size":"10","font-style":"normal","font-weight":400,gradient:0,height:0,href:"http://raphaeljs.com/",opacity:1,path:"M0,0",r:0,rotation:0,rx:0,ry:0,scale:"1 1",src:"",stroke:"#000","stroke-dasharray":"","stroke-linecap":"butt","stroke-linejoin":"butt","stroke-miterlimit":0,"stroke-opacity":1,"stroke-width":1,target:"_blank","text-anchor":"middle",title:"Raphael",translation:"0 0",width:0,x:0,y:0},di={along:"along",blur:nt,"clip-rect":"csv",cx:nt,cy:nt,fill:"colour","fill-opacity":nt,"font-size":nt,height:nt,opacity:nt,path:"path",r:nt,rotation:"csv",rx:nt,ry:nt,scale:"csv",stroke:"colour","stroke-opacity":nt,"stroke-width":nt,translation:"csv",width:nt,x:nt,y:nt},w="replace";if(n.type=st.SVGAngle||c.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")?"SVG":"VML",n.type=="VML"){if(bt=c.createElement("div"),bt.innerHTML="<!--[if vml]><br><br><![endif]-->",bt.childNodes[t]!=2)return n.type=null;bt=null}n.svg=!(n.vml=n.type=="VML");y[i]=n[i];n._id=0;n._oid=0;n.fn={};n.is=function(n,t){return t=yt.call(t),t=="object"&&n===Object(n)||t=="undefined"&&typeof n==t||t=="null"&&n==null||yt.call(du.call(n).slice(8,-1))==t};n.setWindow=function(n){st=n;c=st.document};n.hsb2rgb=ut(function(t,i,r){var u;if(n.is(t,"object")&&"h"in t&&"s"in t&&"b"in t&&(r=t.b,i=t.s,t=t.h),r==0)return{r:0,g:0,b:0,hex:"#000"};(t>1||i>1||r>1)&&(t/=255,i/=255,r/=255);u=~~(t*6);t=t*6-u;var f=r*(1-i),o=r*(1-i*t),e=r*(1-i*(1-t));return t=[r,o,f,f,e,r,r][u],i=[e,r,r,o,f,f,e][u],u=[f,f,e,r,r,o,f][u],t*=255,i*=255,u*=255,r={r:t,g:i,b:u,toString:tf},t=(~~t)[d](16),i=(~~i)[d](16),u=(~~u)[d](16),t=t[w](kt,"0"),i=i[w](kt,"0"),u=u[w](kt,"0"),r.hex="#"+t+i+u,r},n);n.rgb2hsb=ut(function(t,i,r){var f,u,e,o;return(n.is(t,"object")&&"r"in t&&"g"in t&&"b"in t&&(r=t.b,i=t.g,t=t.r),n.is(t,wt)&&(f=n.getRGB(t),t=f.r,i=f.g,r=f.b),(t>1||i>1||r>1)&&(t/=255,i/=255,r/=255),u=ht(t,i,r),e=lt(t,i,r),f=u,e==u)?{h:0,s:0,b:u}:(o=u-e,e=o/u,t=t==u?(i-r)/o:i==u?2+(r-t)/o:4+(t-i)/o,t/=6,t<0&&t++,t>1&&t--,{h:t,s:e,b:f,toString:nf})},n);var rf=/,?([achlmqrstvxz]),?/gi,hi=/\s*,\s*/,uf={hs:1,rg:1};n._path2string=function(){return this.join(",")[w](rf,"$1")};n.getRGB=ut(function(t){if(!t||(t+=r).indexOf("-")+1)return{r:-1,g:-1,b:-1,hex:"none",error:1};if(t=="none")return{r:-1,g:-1,b:-1,hex:"none"};uf[s](t.substring(0,2))||t.charAt()=="#"||(t=si(t));var i,u,f,o,e;return(t=t.match(gu))?(t[2]&&(f=pt(t[2].substring(5),16),u=pt(t[2].substring(3,5),16),i=pt(t[2].substring(1,3),16)),t[3]&&(f=pt((e=t[3].charAt(3))+e,16),u=pt((e=t[3].charAt(2))+e,16),i=pt((e=t[3].charAt(1))+e,16)),t[4]&&(t=t[4][p](hi),i=h(t[0]),u=h(t[1]),f=h(t[2]),o=h(t[3])),t[5]&&(t=t[5][p](hi),i=h(t[0])*2.55,u=h(t[1])*2.55,f=h(t[2])*2.55,o=h(t[3])),t[6])?(t=t[6][p](hi),i=h(t[0]),u=h(t[1]),f=h(t[2]),n.hsb2rgb(i,u,f)):t[7]?(t=t[7][p](hi),i=h(t[0])*2.55,u=h(t[1])*2.55,f=h(t[2])*2.55,n.hsb2rgb(i,u,f)):(t={r:i,g:u,b:f},i=(~~i)[d](16),u=(~~u)[d](16),f=(~~f)[d](16),i=i[w](kt,"0"),u=u[w](kt,"0"),f=f[w](kt,"0"),t.hex="#"+i+u+f,isFinite(h(o))&&(t.o=o),t):{r:-1,g:-1,b:-1,hex:"none",error:1}},n);n.getColor=function(n){n=this.getColor.start=this.getColor.start||{h:0,s:1,b:n||.75};var t=this.hsb2rgb(n.h,n.s,n.b);return n.h+=.075,n.h>1&&(n.h=0,n.s-=.2,n.s<=0&&(this.getColor.start={h:0,s:1,b:n.b})),t.hex};n.getColor.reset=function(){delete this.start};lr=/([achlmqstvz])[\s,]*((-?\d*\.?\d*(?:e[-+]?\d+)?\s*,?\s*)+)/ig;ar=/(-?\d*\.?\d*(?:e[-+]?\d+)?)\s*,?\s*/ig;n.parsePathString=ut(function(i){if(!i)return null;var f={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0},u=[];return n.is(i,et)&&n.is(i[0],et)&&(u=ci(i)),u[t]||(i+r)[w](lr,function(n,i,r){var e=[];for(n=yt.call(i),r[w](ar,function(n,t){t&&e[a](+t)}),n=="m"&&e[t]>2&&(u[a]([i][k](e.splice(0,2))),n="l",i=i=="m"?"l":"L");e[t]>=f[n];)if(u[a]([i][k](e.splice(0,f[n]))),!f[n])break}),u[d]=n._path2string,u});n.findDotsAtSegment=function(n,t,i,r,u,f,o,s,h){var c=1-h,w=l(c,3)*n+l(c,2)*3*h*i+c*3*h*h*u+l(h,3)*o;c=l(c,3)*t+l(c,2)*3*h*r+c*3*h*h*f+l(h,3)*s;var a=n+2*h*(i-n)+h*h*(u-2*i+n),v=t+2*h*(r-t)+h*h*(f-2*r+t),y=i+2*h*(u-i)+h*h*(o-2*u+i),p=r+2*h*(f-r)+h*h*(s-2*f+r);return n=(1-h)*n+h*i,t=(1-h)*t+h*r,u=(1-h)*u+h*o,f=(1-h)*f+h*s,s=90-e.atan((a-y)/(v-p))*180/e.PI,(a>y||v<p)&&(s+=180),{x:w,y:c,m:{x:a,y:v},n:{x:y,y:p},start:{x:n,y:t},end:{x:u,y:f},alpha:s}};ti=ut(function(n){if(!n)return{x:0,y:0,width:0,height:0};n=ai(n);for(var r=0,e=0,u=[],f=[],i,o=0,s=n[t];o<s;o++)i=n[o],i[0]=="M"?(r=i[1],e=i[2],u[a](r),f[a](e)):(r=ff(r,e,i[1],i[2],i[3],i[4],i[5],i[6]),u=u[k](r.min.x,r.max.x),f=f[k](r.min.y,r.max.y),r=i[5],e=i[6]);return n=lt[b](0,u),i=lt[b](0,f),{x:n,y:i,width:ht[b](0,u)-n,height:ht[b](0,f)-i}});gi=ut(function(i){var v,u,r,h,y;n.is(i,et)&&n.is(i&&i[0],et)||(i=n.parsePathString(i));var e=[],s=0,o=0,c=0,l=0,f=0;for(i[0][0]=="M"&&(s=i[0][1],o=i[0][2],c=s,l=o,f++,e[a](["M",s,o])),f=f,v=i[t];f<v;f++){if(u=e[f]=[],r=i[f],r[0]!=yt.call(r[0])){u[0]=yt.call(r[0]);switch(u[0]){case"a":u[1]=r[1];u[2]=r[2];u[3]=r[3];u[4]=r[4];u[5]=r[5];u[6]=+(r[6]-s).toFixed(3);u[7]=+(r[7]-o).toFixed(3);break;case"v":u[1]=+(r[1]-o).toFixed(3);break;case"m":c=r[1];l=r[2];default:for(h=1,y=r[t];h<y;h++)u[h]=+(r[h]-(h%2?s:o)).toFixed(3)}}else for(e[f]=[],r[0]=="m"&&(c=r[1]+s,l=r[2]+o),u=0,h=r[t];u<h;u++)e[f][u]=r[u];r=e[f][t];switch(e[f][0]){case"z":s=c;o=l;break;case"h":s+=+e[f][r-1];break;case"v":o+=+e[f][r-1];break;default:s+=+e[f][r-2];o+=+e[f][r-1]}}return e[d]=n._path2string,e},0,ci);dt=ut(function(i){var v,u,r,e,c;n.is(i,et)&&n.is(i&&i[0],et)||(i=n.parsePathString(i));var h=[],o=0,s=0,l=0,a=0,f=0;for(i[0][0]=="M"&&(o=+i[0][1],s=+i[0][2],l=o,a=s,f++,h[0]=["M",o,s]),f=f,v=i[t];f<v;f++){if(u=h[f]=[],r=i[f],r[0]!=ei.call(r[0])){u[0]=ei.call(r[0]);switch(u[0]){case"A":u[1]=r[1];u[2]=r[2];u[3]=r[3];u[4]=r[4];u[5]=r[5];u[6]=+(r[6]+o);u[7]=+(r[7]+s);break;case"V":u[1]=+r[1]+s;break;case"H":u[1]=+r[1]+o;break;case"M":l=+r[1]+o;a=+r[2]+s;default:for(e=1,c=r[t];e<c;e++)u[e]=+r[e]+(e%2?o:s)}}else for(e=0,c=r[t];e<c;e++)h[f][e]=r[e];switch(u[0]){case"Z":o=l;s=a;break;case"H":o=u[1];break;case"V":s=u[1];break;default:o=h[f][h[f][t]-2];s=h[f][h[f][t]-1]}}return h[d]=n._path2string,h},null,ci);var ff=ut(function(n,t,i,r,u,f,o,s){var c=u-2*i+n-(o-2*u+i),l=2*(i-n)-2*(u-i),p=n-i,h=(-l+e.sqrt(l*l-4*c*p))/2/c,v,y;return c=(-l-e.sqrt(l*l-4*c*p))/2/c,v=[t,s],y=[n,o],e.abs(h)>1e12&&(h=.5),e.abs(c)>1e12&&(c=.5),h>0&&h<1&&(h=ii(n,t,i,r,u,f,o,s,h),y[a](h.x),v[a](h.y)),c>0&&c<1&&(h=ii(n,t,i,r,u,f,o,s,c),y[a](h.x),v[a](h.y)),c=f-2*r+t-(s-2*f+r),l=2*(r-t)-2*(f-r),p=t-r,h=(-l+e.sqrt(l*l-4*c*p))/2/c,c=(-l-e.sqrt(l*l-4*c*p))/2/c,e.abs(h)>1e12&&(h=.5),e.abs(c)>1e12&&(c=.5),h>0&&h<1&&(h=ii(n,t,i,r,u,f,o,s,h),y[a](h.x),v[a](h.y)),c>0&&c<1&&(h=ii(n,t,i,r,u,f,o,s,c),y[a](h.x),v[a](h.y)),{min:{x:lt[b](0,y),y:lt[b](0,v)},max:{x:ht[b](0,y),y:ht[b](0,v)}}}),ai=ut(function(n,i){function a(n,t){var i;if(!n)return["C",t.x,t.y,t.x,t.y,t.x,t.y];n[0]in{T:1,Q:1}||(t.qx=t.qy=null);switch(n[0]){case"M":t.X=n[1];t.Y=n[2];break;case"A":n=["C"][k](yr[b](0,[t.x,t.y][k](n.slice(1))));break;case"S":i=t.x+(t.x-(t.bx||t.x));t=t.y+(t.y-(t.by||t.y));n=["C",i,t][k](n.slice(1));break;case"T":t.qx=t.x+(t.x-(t.qx||t.x));t.qy=t.y+(t.y-(t.qy||t.y));n=["C"][k](vr(t.x,t.y,t.qx,t.qy,n[1],n[2]));break;case"Q":t.qx=n[1];t.qy=n[2];n=["C"][k](vr(t.x,t.y,n[1],n[2],n[3],n[4]));break;case"L":n=["C"][k](li(t.x,t.y,n[1],n[2]));break;case"H":n=["C"][k](li(t.x,t.y,n[1],t.y));break;case"V":n=["C"][k](li(t.x,t.y,t.x,n[1]));break;case"Z":n=["C"][k](li(t.x,t.y,t.X,t.Y))}return n}function v(n,i){if(n[i][t]>7){n[i].shift();for(var u=n[i];u[t];)n.splice(i++,0,["C"][k](u.splice(0,6)));n.splice(i,1);s=ht(f[t],r&&r[t]||0)}}function y(n,i,u,e,o){n&&i&&n[o][0]=="M"&&i[o][0]!="M"&&(i.splice(o,0,["M",e.x,e.y]),u.bx=0,u.by=0,u.x=n[o][1],u.y=n[o][2],s=ht(f[t],r&&r[t]||0))}var f=dt(n),r=i&&dt(i),u,s;for(n={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},i={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},u=0,s=ht(f[t],r&&r[t]||0);u<s;u++){f[u]=a(f[u],n);v(f,u);r&&(r[u]=a(r[u],i));r&&v(r,u);y(f,r,n,i,u);y(r,f,i,n,u);var e=f[u],o=r&&r[u],c=e[t],l=r&&o[t];n.x=e[c-2];n.y=e[c-1];n.bx=h(e[c-4])||n.x;n.by=h(e[c-3])||n.y;i.bx=r&&(h(o[l-4])||i.x);i.by=r&&(h(o[l-3])||i.y);i.x=r&&o[l-2];i.y=r&&o[l-1]}return r?[f,r]:f},null,ci),pr=ut(function(i){for(var r,f,e=[],u=0,o=i[t];u<o;u++){if(r={},f=i[u].match(/^([^:]*):?([\d\.]*)/),r.color=n.getRGB(f[1]),r.color.error)return null;r.color=r.color.hex;f[2]&&(r.offset=f[2]+"%");e[a](r)}for(u=1,o=e[t]-1;u<o;u++)if(!e[u].offset){for(i=h(e[u-1].offset||0),f=0,r=u+1;r<o;r++)if(e[r].offset){f=e[r].offset;break}for(f||(f=100,r=o),f=h(f),f=(f-i)/(r-u+1);u<r;u++)i+=f,e[u].offset=i+"%"}return e});if(tr=/^r(?:\(([^,]+?)\s*,\s*([^\)]+?)\))?/,n.svg){y[i].svgns="http://www.w3.org/2000/svg";y[i].xlink="http://www.w3.org/1999/xlink";v=function(n){return+n+(~~n===n)*.5};f=function(n,t){if(t)for(var u in t)t[s](u)&&n[ot](u,t[u]+r);else return n=c.createElementNS(y[i].svgns,n),n.style.webkitTapHighlightColor="rgba(0,0,0,0)",n};n[d]=function(){return"Your browser supports SVG.\nYou are running Raphaël "+this.version};var tu=function(n,t){var i=f("path");return t.canvas&&t.canvas[o](i),t=new u(i,t),t.type="path",vt(t,{fill:"none",stroke:"#000",path:n}),t},ri=function(i,u,s){var b="linear",k=.5,y=.5,g=i.style,a,v,nt;if(u=(u+r)[w](tr,function(n,t,i){return b="radial",t&&i&&(k=h(t),y=h(i),n=(y>.5)*2-1,l(k-.5,2)+l(y-.5,2)>.25&&(y=e.sqrt(.25-l(k-.5,2))*n+.5)&&y!=.5&&(y=y.toFixed(5)-1e-5*n)),r}),u=u[p](/\s*\-\s*/),b=="linear"){if(a=u.shift(),a=-h(a),isNaN(a))return null;a=[0,0,e.cos(a*e.PI/180),e.sin(a*e.PI/180)];v=1/(ht(e.abs(a[2]),e.abs(a[3]))||1);a[2]*=v;a[3]*=v;a[2]<0&&(a[0]=-a[2],a[2]=0);a[3]<0&&(a[1]=-a[3],a[3]=0)}if(u=pr(u),!u)return null;for(v=i.getAttribute(at),(v=v.match(/^url\(#(.*)\)$/))&&s.defs.removeChild(c.getElementById(v[1])),v=f(b+"Gradient"),v.id="r"+(n._id++)[d](36),f(v,b=="radial"?{fx:k,fy:y}:{x1:a[0],y1:a[1],x2:a[2],y2:a[3]}),s.defs[o](v),s=0,a=u[t];s<a;s++)nt=f("stop"),f(nt,{offset:u[s].offset?u[s].offset:s?"100%":"0%","stop-color":u[s].color||"#fff"}),v[o](nt);return f(i,{fill:"url(#"+v.id+")",opacity:1,"fill-opacity":1}),g.fill=r,g.opacity=1,g.fillOpacity=1},ir=function(t){var i=t.getBBox();f(t.pattern,{patternTransform:n.format("translate({0},{1})",i.x,i.y)})},vt=function(i,u){function et(n,i){var e,o,r;if(i=st[yt.call(i)]){for(e=n.attrs["stroke-width"]||"1",n={round:e,square:e,butt:0}[n.attrs["stroke-linecap"]||u["stroke-linecap"]]||0,o=[],r=i[t];r--;)o[r]=i[r]*e+(r%2?1:-1)*n;f(l,{"stroke-dasharray":o[tt](",")})}}var st={"":[0],none:[0],"-":[3,1],".":[1,1],"-.":[3,1,1,1],"-..":[3,1,1,1,1,1],". ":[1,3],"- ":[4,3],"--":[8,3],"- .":[4,3,1,3],"--.":[8,3,1,3],"--..":[8,3,1,3,1,3]},l=i.node,b=i.attrs,rt=i.rotate(),k,y,e,a,it,nt,ut;u[s]("rotation")&&(rt=u.rotation);k=(rt+r)[p](ft);k.length-1?(k[1]=+k[1],k[2]=+k[2]):k=null;h(rt)&&i.rotate(0,!0);for(y in u)if(u[s](y)&&oi[s](y)){e=u[y];b[y]=e;switch(y){case"blur":i.blur(e);break;case"rotation":i.rotate(e,!0);break;case"href":case"title":case"target":a=l.parentNode;yt.call(a.tagName)!="a"&&(it=f("a"),a.insertBefore(it,l),it[o](l),a=it);a.setAttributeNS(i.paper.xlink,y,e);break;case"cursor":l.style.cursor=e;break;case"clip-rect":a=(e+r)[p](ft);a[t]==4&&(i.clip&&i.clip.parentNode.parentNode.removeChild(i.clip.parentNode),nt=f("clipPath"),it=f("rect"),nt.id="r"+(n._id++)[d](36),f(it,{x:a[0],y:a[1],width:a[2],height:a[3]}),nt[o](it),i.paper.defs[o](nt),f(l,{"clip-path":"url(#"+nt.id+")"}),i.clip=it);e||((e=c.getElementById(l.getAttribute("clip-path")[w](/(^url\(#|\)$)/g,r)))&&e.parentNode.removeChild(e),f(l,{"clip-path":r}),delete i.clip);break;case"path":i.type=="path"&&f(l,{d:e?b.path=dt(e):"M0,0"});break;case"width":if(l[ot](y,e),b.fx)y="x",e=b.x;else break;case"x":b.fx&&(e=-b.x-(b.width||0));case"rx":if(y=="rx"&&i.type=="rect")break;case"cx":k&&(y=="x"||y=="cx")&&(k[1]+=e-b[y]);l[ot](y,v(e));i.pattern&&ir(i);break;case"height":if(l[ot](y,e),b.fy)y="y",e=b.y;else break;case"y":b.fy&&(e=-b.y-(b.height||0));case"ry":if(y=="ry"&&i.type=="rect")break;case"cy":k&&(y=="y"||y=="cy")&&(k[2]+=e-b[y]);l[ot](y,v(e));i.pattern&&ir(i);break;case"r":i.type=="rect"?f(l,{rx:e,ry:e}):l[ot](y,e);break;case"src":i.type=="image"&&l.setAttributeNS(i.paper.xlink,"href",e);break;case"stroke-width":l.style.strokeWidth=e;l[ot](y,e);b["stroke-dasharray"]&&et(i,b["stroke-dasharray"]);break;case"stroke-dasharray":et(i,e);break;case"translation":e=(e+r)[p](ft);e[0]=+e[0]||0;e[1]=+e[1]||0;k&&(k[1]+=e[0],k[2]+=e[1]);yi.call(i,e[0],e[1]);break;case"scale":e=(e+r)[p](ft);i.scale(+e[0]||1,+e[1]||+e[0]||1,isNaN(h(e[2]))?null:+e[2],isNaN(h(e[3]))?null:+e[3]);break;case at:if(a=(e+r).match(cr)){nt=f("pattern");ut=f("image");nt.id="r"+(n._id++)[d](36);f(nt,{x:0,y:0,patternUnits:"userSpaceOnUse",height:1,width:1});f(ut,{x:0,y:0});ut.setAttributeNS(i.paper.xlink,"href",a[1]);nt[o](ut);e=c.createElement("img");e.style.cssText="position:absolute;left:-9999em;top-9999em";e.onload=function(){f(nt,{width:this.offsetWidth,height:this.offsetHeight});f(ut,{width:this.offsetWidth,height:this.offsetHeight});c.body.removeChild(this);i.paper.safari()};c.body[o](e);e.src=a[1];i.paper.defs[o](nt);l.style.fill="url(#"+nt.id+")";f(l,{fill:"url(#"+nt.id+")"});i.pattern=nt;i.pattern&&ir(i);break}if(a=n.getRGB(e),a.error){if(({circle:1,ellipse:1}[s](i.type)||(e+r).charAt()!="r")&&ri(l,e,i.paper)){b.gradient=e;b.fill="none";break}}else delete u.gradient,delete b.gradient,!n.is(b.opacity,"undefined")&&n.is(u.opacity,"undefined")&&f(l,{opacity:b.opacity}),!n.is(b["fill-opacity"],"undefined")&&n.is(u["fill-opacity"],"undefined")&&f(l,{"fill-opacity":b["fill-opacity"]});a[s]("o")&&f(l,{"fill-opacity":a.o/100});case"stroke":a=n.getRGB(e);l[ot](y,a.hex);y=="stroke"&&a[s]("o")&&f(l,{"stroke-opacity":a.o/100});break;case"gradient":({circle:1,ellipse:1}[s](i.type)||(e+r).charAt()!="r")&&ri(l,e,i.paper);break;case"opacity":case"fill-opacity":if(b.gradient){(a=c.getElementById(l.getAttribute(at)[w](/^url\(#|\)$/g,r)))&&(a=a.getElementsByTagName("stop"),a[a[t]-1][ot]("stop-opacity",e));break}default:y=="font-size"&&(e=pt(e,10)+"px");a=y[w](/(\-.)/g,function(n){return ei.call(n.substring(1))});l.style[a]=e;l[ot](y,e)}}ef(i,u);k?i.rotate(k.join(g)):h(rt)&&i.rotate(rt,!0)},iu=1.2,ef=function(n,i){var u,l,a;if(!(n.type!="text"||!(i[s]("text")||i[s]("font")||i[s]("font-size")||i[s]("x")||i[s]("y")))){var h=n.attrs,e=n.node,v=e.firstChild?pt(c.defaultView.getComputedStyle(e.firstChild,r).getPropertyValue("font-size"),10):10;if(i[s]("text")){for(h.text=i.text;e.firstChild;)e.removeChild(e.firstChild);for(i=(i.text+r)[p]("\n"),u=0,l=i[t];u<l;u++)i[u]&&(a=f("tspan"),u&&f(a,{dy:v*iu,x:h.x}),a[o](c.createTextNode(i[u])),e[o](a))}else for(i=e.getElementsByTagName("tspan"),u=0,l=i[t];u<l;u++)u&&f(i[u],{dy:v*iu,x:h.x});f(e,{y:h.y});n=n.getBBox();(n=h.y-(n.y+n.height/2))&&isFinite(n)&&f(e,{y:h.y+n})}},u=function(t,i){this[0]=t;this.id=n._oid++;this.node=t;t.raphael=this;this.paper=i;this.attrs=this.attrs||{};this.transformations=[];this._={tx:0,ty:0,rt:{deg:0,cx:0,cy:0},sx:1,sy:1};i.bottom||(i.bottom=this);(this.prev=i.top)&&(i.top.next=this);i.top=this;this.next=null};u[i].rotate=function(i,u,e){if(this.removed)return this;if(i==null)return this._.rt.cx?[this._.rt.deg,this._.rt.cx,this._.rt.cy][tt](g):this._.rt.deg;var o=this.getBBox();return i=(i+r)[p](ft),i[t]-1&&(u=h(i[1]),e=h(i[2])),i=h(i[0]),u!=null?this._.rt.deg=i:this._.rt.deg+=i,e==null&&(u=null),this._.rt.cx=u,this._.rt.cy=e,u=u==null?o.x+o.width/2:u,e=e==null?o.y+o.height/2:e,this._.rt.deg?(this.transformations[0]=n.format("rotate({0} {1} {2})",this._.rt.deg,u,e),this.clip&&f(this.clip,{transform:n.format("rotate({0} {1} {2})",-this._.rt.deg,u,e)})):(this.transformations[0]=r,this.clip&&f(this.clip,{transform:r})),f(this.node,{transform:this.transformations[tt](g)}),this};u[i].hide=function(){return this.removed||(this.node.style.display="none"),this};u[i].show=function(){return this.removed||(this.node.style.display=""),this};u[i].remove=function(){if(!this.removed){gt(this,this.paper);this.node.parentNode.removeChild(this.node);for(var n in this)delete this[n];this.removed=!0}};u[i].getBBox=function(){var r,n,i,u,t;if(this.removed)return this;if(this.type=="path")return ti(this.attrs.path);this.node.style.display=="none"&&(this.show(),r=!0);n={};try{n=this.node.getBBox()}catch(f){}finally{n=n||{}}if(this.type=="text")for(n={x:n.x,y:Infinity,width:0,height:0},i=0,u=this.node.getNumberOfChars();i<u;i++)t=this.node.getExtentOfChar(i),t.y<n.y&&(n.y=t.y),t.y+t.height-n.y>n.height&&(n.height=t.y+t.height-n.y),t.x+t.width-n.x>n.width&&(n.width=t.x+t.width-n.x);return r&&this.hide(),n};u[i].attr=function(t,i){var r,u;if(this.removed)return this;if(t==null){t={};for(r in this.attrs)this.attrs[s](r)&&(t[r]=this.attrs[r]);return this._.rt.deg&&(t.rotation=this.rotate()),(this._.sx!=1||this._.sy!=1)&&(t.scale=this.scale()),t.gradient&&t.fill=="none"&&(t.fill=t.gradient)&&delete t.gradient,t}if(i==null&&n.is(t,wt))return t=="translation"?yi.call(this):t=="rotation"?this.rotate():t=="scale"?this.scale():t==at&&this.attrs.fill=="none"&&this.attrs.gradient?this.attrs.gradient:this.attrs[t];if(i==null&&n.is(t,et)){for(i={},r=0,u=t.length;r<u;r++)i[t[r]]=this.attr(t[r]);return i}return i!=null?(r={},r[t]=i,vt(this,r)):t!=null&&n.is(t,"object")&&vt(this,t),this};u[i].toFront=function(){if(this.removed)return this;this.node.parentNode[o](this.node);var n=this.paper;return n.top!=this&&br(this,n),this};u[i].toBack=function(){return this.removed?this:(this.node.parentNode.firstChild!=this.node&&(this.node.parentNode.insertBefore(this.node,this.node.parentNode.firstChild),kr(this,this.paper)),this)};u[i].insertAfter=function(n){if(this.removed)return this;var t=n.node;return t.nextSibling?t.parentNode.insertBefore(this.node,t.nextSibling):t.parentNode[o](this.node),dr(this,n,this.paper),this};u[i].insertBefore=function(n){if(this.removed)return this;var t=n.node;return t.parentNode.insertBefore(this.node,t),gr(this,n,this.paper),this};u[i].blur=function(t){var i=this,r,u;+t!=0?(r=f("filter"),u=f("feGaussianBlur"),i.attrs.blur=t,r.id="r"+(n._id++)[d](36),f(u,{stdDeviation:+t||1.5}),r.appendChild(u),i.paper.defs.appendChild(r),i._blur=r,f(i.node,{filter:"url(#"+r.id+")"})):(i._blur&&(i._blur.parentNode.removeChild(i._blur),delete i._blur,delete i.attrs.blur),i.node.removeAttribute("filter"))};var ru=function(n,t,i,r){t=v(t);i=v(i);var e=f("circle");return n.canvas&&n.canvas[o](e),n=new u(e,n),n.attrs={cx:t,cy:i,r:r,fill:"none",stroke:"#000"},n.type="circle",f(e,n.attrs),n},uu=function(n,t,i,r,e,s){t=v(t);i=v(i);var h=f("rect");return n.canvas&&n.canvas[o](h),n=new u(h,n),n.attrs={x:t,y:i,width:r,height:e,r:s||0,rx:s||0,ry:s||0,fill:"none",stroke:"#000"},n.type="rect",f(h,n.attrs),n},fu=function(n,t,i,r,e){t=v(t);i=v(i);var s=f("ellipse");return n.canvas&&n.canvas[o](s),n=new u(s,n),n.attrs={cx:t,cy:i,rx:r,ry:e,fill:"none",stroke:"#000"},n.type="ellipse",f(s,n.attrs),n},eu=function(n,t,i,r,e,s){var h=f("image");return f(h,{x:i,y:r,width:e,height:s,preserveAspectRatio:"none"}),h.setAttributeNS(n.xlink,"href",t),n.canvas&&n.canvas[o](h),n=new u(h,n),n.attrs={x:i,y:r,width:e,height:s,src:t},n.type="image",n},ou=function(n,t,i,r){var e=f("text");return f(e,{x:t,y:i,"text-anchor":"middle"}),n.canvas&&n.canvas[o](e),n=new u(e,n),n.attrs={x:t,y:i,"text-anchor":"middle",text:r,font:oi.font,stroke:"none",fill:"#000"},n.type="text",vt(n,n.attrs),n},su=function(n,t){return this.width=n||this.width,this.height=t||this.height,this.canvas[ot]("width",this.width),this.canvas[ot]("height",this.height),this},rr=function(){var i=wr[b](0,arguments),t=i&&i.container,e=i.x,s=i.y,u=i.width,r;if(i=i.height,!t)throw new Error("SVG container not found.");return r=f("svg"),e=e||0,s=s||0,u=u||512,i=i||342,f(r,{xmlns:"http://www.w3.org/2000/svg",version:1.1,width:u,height:i}),t==1?(r.style.cssText="position:absolute;left:"+e+"px;top:"+s+"px",c.body[o](r)):t.firstChild?t.insertBefore(r,t.firstChild):t[o](r),t=new y,t.width=u,t.height=i,t.canvas=r,nr.call(t,t,n.fn),t.clear(),t};y[i].clear=function(){for(var n=this.canvas;n.firstChild;)n.removeChild(n.firstChild);this.bottom=this.top=null;(this.desc=f("desc"))[o](c.createTextNode("Created with Raphaël"));n[o](this.desc);n[o](this.defs=f("defs"))};y[i].remove=function(){this.canvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas);for(var n in this)this[n]=nu(n)}}if(n.vml){var hu={M:"m",L:"l",C:"c",Z:"x",m:"t",l:"r",c:"v",z:"x"},of=/([clmz]),?([^clmz]*)/gi,sf=/-?[^,\s-]+/g,ui=1e3+g+1e3,ni=10,fi={path:1,rect:1},hf=function(n){var i=/[ahqstv]/ig,u=dt,f,e,h,o,s;if((n+r).match(i)&&(u=ai),i=/[clmz]/g,u==dt&&!(n+r).match(i))return(n+r)[w](of,function(n,i,r){var u=[],e=yt.call(i)=="m",f=hu[i];return r[w](sf,function(n){e&&u[t]==2&&(f+=u+hu[i=="m"?"l":"L"],u=[]);u[a](v(n*ni))}),f+u});for(i=u(n),n=[],e=0,h=i[t];e<h;e++){for(u=i[e],f=yt.call(i[e][0]),f=="z"&&(f="x"),o=1,s=u[t];o<s;o++)f+=v(u[o]*ni)+(o!=s-1?",":r);n[a](f)}return n[tt](g)};n[d]=function(){return"Your browser doesn’t support SVG. Falling down to VML.\nYou are running Raphaël "+this.version};tu=function(n,t){var f=it("group"),i,e;return f.style.cssText="position:absolute;left:0;top:0;width:"+t.width+"px;height:"+t.height+"px",f.coordsize=t.coordsize,f.coordorigin=t.coordorigin,i=it("shape"),e=i.style,e.width=t.width+"px",e.height=t.height+"px",i.coordsize=ui,i.coordorigin=t.coordorigin,f[o](i),i=new u(i,f,t),e={fill:"none",stroke:"#000"},n&&(e.path=n),i.isAbsolute=!0,i.type="path",i.path=[],i.Path=r,vt(i,e),t.canvas[o](f),i};vt=function(i,u){var y,b,k,d;i.attrs=i.attrs||{};var a=i.node,e=i.attrs,f=a.style,l;l=(u.x!=e.x||u.y!=e.y||u.width!=e.width||u.height!=e.height||u.r!=e.r)&&i.type=="rect";y=i;for(b in u)u[s](b)&&(e[b]=u[b]);if(l&&(e.path=lu(e.x,e.y,e.width,e.height,e.r),i.X=e.x,i.Y=e.y,i.W=e.width,i.H=e.height),u.href&&(a.href=u.href),u.title&&(a.title=u.title),u.target&&(a.target=u.target),u.cursor&&(f.cursor=u.cursor),"blur"in u&&i.blur(u.blur),(u.path&&i.type=="path"||l)&&(a.path=hf(e.path)),u.rotation!=null&&i.rotate(u.rotation,!0),u.translation&&(l=(u.translation+r)[p](ft),yi.call(i,l[0],l[1]),i._.rt.cx!=null&&(i._.rt.cx+=+l[0],i._.rt.cy+=+l[1],i.setBox(i.attrs,l[0],l[1]))),u.scale&&(l=(u.scale+r)[p](ft),i.scale(+l[0]||1,+l[1]||+l[0]||1,+l[2]||null,+l[3]||null)),"clip-rect"in u&&(l=(u["clip-rect"]+r)[p](ft),l[t]==4&&(l[2]=+l[2]+ +l[0],l[3]=+l[3]+ +l[1],b=a.clipRect||c.createElement("div"),k=b.style,d=a.parentNode,k.clip=n.format("rect({1}px {2}px {3}px {0}px)",l),a.clipRect||(k.position="absolute",k.top=0,k.left=0,k.width=i.paper.width+"px",k.height=i.paper.height+"px",d.parentNode.insertBefore(b,d),b[o](d),a.clipRect=b)),u["clip-rect"]||a.clipRect&&(a.clipRect.style.clip=r)),i.type=="image"&&u.src&&(a.src=u.src),i.type=="image"&&u.opacity&&(a.filterOpacity=ki+".Alpha(opacity="+u.opacity*100+")",f.filter=(a.filterMatrix||r)+(a.filterOpacity||r)),u.font&&(f.font=u.font),u["font-family"]&&(f.fontFamily='"'+u["font-family"][p](",")[0][w](/^['"]+|['"]+$/g,r)+'"'),u["font-size"]&&(f.fontSize=u["font-size"]),u["font-weight"]&&(f.fontWeight=u["font-weight"]),u["font-style"]&&(f.fontStyle=u["font-style"]),(u.opacity!=null||u["stroke-width"]!=null||u.fill!=null||u.stroke!=null||u["stroke-width"]!=null||u["stroke-opacity"]!=null||u["fill-opacity"]!=null||u["stroke-dasharray"]!=null||u["stroke-miterlimit"]!=null||u["stroke-linejoin"]!=null||u["stroke-linecap"]!=null)&&(a=i.shape||a,f=a.getElementsByTagName(at)&&a.getElementsByTagName(at)[0],l=!1,f||(l=f=it(at)),("fill-opacity"in u||"opacity"in u)&&(i=((+e["fill-opacity"]+1||2)-1)*((+e.opacity+1||2)-1)*((+n.getRGB(u.fill).o+1||2)-1),i<0&&(i=0),i>1&&(i=1),f.opacity=i),u.fill&&(f.on=!0),(f.on==null||u.fill=="none")&&(f.on=!1),f.on&&u.fill&&((i=u.fill.match(cr))?(f.src=i[1],f.type="tile"):(f.color=n.getRGB(u.fill).hex,f.src=r,f.type="solid",n.getRGB(u.fill).error&&(y.type in{circle:1,ellipse:1}||(u.fill+r).charAt()!="r")&&ri(y,u.fill)&&(e.fill="none",e.gradient=u.fill))),l&&a[o](f),f=a.getElementsByTagName("stroke")&&a.getElementsByTagName("stroke")[0],l=!1,f||(l=f=it("stroke")),(u.stroke&&u.stroke!="none"||u["stroke-width"]||u["stroke-opacity"]!=null||u["stroke-dasharray"]||u["stroke-miterlimit"]||u["stroke-linejoin"]||u["stroke-linecap"])&&(f.on=!0),(u.stroke=="none"||f.on==null||u.stroke==0||u["stroke-width"]==0)&&(f.on=!1),i=n.getRGB(u.stroke),f.on&&u.stroke&&(f.color=i.hex),i=((+e["stroke-opacity"]+1||2)-1)*((+e.opacity+1||2)-1)*((+i.o+1||2)-1),b=(h(u["stroke-width"])||1)*.75,i<0&&(i=0),i>1&&(i=1),u["stroke-width"]==null&&(b=e["stroke-width"]),u["stroke-width"]&&(f.weight=b),b&&b<1&&(i*=b)&&(f.weight=1),f.opacity=i,u["stroke-linejoin"]&&(f.joinstyle=u["stroke-linejoin"]||"miter"),f.miterlimit=u["stroke-miterlimit"]||8,u["stroke-linecap"]&&(f.endcap=u["stroke-linecap"]=="butt"?"flat":u["stroke-linecap"]=="square"?"square":"round"),u["stroke-dasharray"]&&(i={"-":"shortdash",".":"shortdot","-.":"shortdashdot","-..":"shortdashdotdot",". ":"dot","- ":"dash","--":"longdash","- .":"dashdot","--.":"longdashdot","--..":"longdashdotdot"},f.dashstyle=i[s](u["stroke-dasharray"])?i[u["stroke-dasharray"]]:r),l&&a[o](f)),y.type=="text"){f=y.paper.span.style;e.font&&(f.font=e.font);e["font-family"]&&(f.fontFamily=e["font-family"]);e["font-size"]&&(f.fontSize=e["font-size"]);e["font-weight"]&&(f.fontWeight=e["font-weight"]);e["font-style"]&&(f.fontStyle=e["font-style"]);y.node.string&&(y.paper.span.innerHTML=(y.node.string+r)[w](/</g,"<")[w](/&/g,"&")[w](/\n/g,"<br>"));y.W=e.w=y.paper.span.offsetWidth;y.H=e.h=y.paper.span.offsetHeight;y.X=e.x;y.Y=e.y+v(y.H/2);switch(e["text-anchor"]){case"start":y.node.style["v-text-align"]="left";y.bbx=v(y.W/2);break;case"end":y.node.style["v-text-align"]="right";y.bbx=-v(y.W/2);break;default:y.node.style["v-text-align"]="center"}}};ri=function(n,i){var s,c,o,u,f,v;if((n.attrs=n.attrs||{},s="linear",c=".5 .5",n.attrs.gradient=i,i=(i+r)[w](tr,function(n,t,i){return s="radial",t&&i&&(t=h(t),i=h(i),l(t-.5,2)+l(i-.5,2)>.25&&(i=e.sqrt(.25-l(t-.5,2))*((i>.5)*2-1)+.5),c=t+g+i),r}),i=i[p](/\s*\-\s*/),s=="linear"&&(o=i.shift(),o=-h(o),isNaN(o)))||(u=pr(i),!u))return null;if(n=n.shape||n.node,i=n.getElementsByTagName(at)[0]||it(at),i.parentNode||n.appendChild(i),u[t]){for(i.on=!0,i.method="none",i.color=u[0].color,i.color2=u[u[t]-1].color,n=[],f=0,v=u[t];f<v;f++)u[f].offset&&n[a](u[f].offset+g+u[f].color);i.colors&&(i.colors.value=n[t]?n[tt]():"0% "+i.color);s=="radial"?(i.type="gradientradial",i.focus="100%",i.focussize=c,i.focusposition=c):(i.type="gradient",i.angle=(270-o)%360)}return 1};u=function(t,i,r){this[0]=t;this.id=n._oid++;this.node=t;t.raphael=this;this.Y=this.X=0;this.attrs={};this.Group=i;this.paper=r;this._={tx:0,ty:0,rt:{deg:0},sx:1,sy:1};r.bottom||(r.bottom=this);(this.prev=r.top)&&(r.top.next=this);r.top=this;this.next=null};u[i].rotate=function(n,i,u){return this.removed?this:n==null?this._.rt.cx?[this._.rt.deg,this._.rt.cx,this._.rt.cy][tt](g):this._.rt.deg:(n=(n+r)[p](ft),n[t]-1&&(i=h(n[1]),u=h(n[2])),n=h(n[0]),i!=null?this._.rt.deg=n:this._.rt.deg+=n,u==null&&(i=null),this._.rt.cx=i,this._.rt.cy=u,this.setBox(this.attrs,i,u),this.Group.style.rotation=this._.rt.deg,this)};u[i].setBox=function(n,t,i){var c,e,o,u,h,f;if(this.removed)return this;c=this.Group.style;e=this.shape&&this.shape.style||this.node.style;n=n||{};for(o in n)n[s](o)&&(this.attrs[o]=n[o]);t=t||this._.rt.cx;i=i||this._.rt.cy;u=this.attrs;switch(this.type){case"circle":n=u.cx-u.r;o=u.cy-u.r;h=u=u.r*2;break;case"ellipse":n=u.cx-u.rx;o=u.cy-u.ry;h=u.rx*2;u=u.ry*2;break;case"image":n=+u.x;o=+u.y;h=u.width||0;u=u.height||0;break;case"text":this.textpath.v=["m",v(u.x),", ",v(u.y-2),"l",v(u.x)+1,", ",v(u.y-2)][tt](r);n=u.x-v(this.W/2);o=u.y-this.H/2;h=this.W;u=this.H;break;case"rect":case"path":this.attrs.path?(u=ti(this.attrs.path),n=u.x,o=u.y,h=u.width,u=u.height):(o=n=0,h=this.paper.width,u=this.paper.height);break;default:o=n=0;h=this.paper.width;u=this.paper.height}t=t==null?n+h/2:t;i=i==null?o+u/2:i;t=t-this.paper.width/2;i=i-this.paper.height/2;c.left!=(f=t+"px")&&(c.left=f);c.top!=(f=i+"px")&&(c.top=f);this.X=fi[s](this.type)?-t:n;this.Y=fi[s](this.type)?-i:o;this.W=h;this.H=u;fi[s](this.type)?(e.left!=(f=-t*ni+"px")&&(e.left=f),e.top!=(f=-i*ni+"px")&&(e.top=f)):this.type=="text"?(e.left!=(f=-t+"px")&&(e.left=f),e.top!=(f=-i+"px")&&(e.top=f)):(c.width!=(f=this.paper.width+"px")&&(c.width=f),c.height!=(f=this.paper.height+"px")&&(c.height=f),e.left!=(f=n-t+"px")&&(e.left=f),e.top!=(f=o-i+"px")&&(e.top=f),e.width!=(f=h+"px")&&(e.width=f),e.height!=(f=u+"px")&&(e.height=f))};u[i].hide=function(){return this.removed||(this.Group.style.display="none"),this};u[i].show=function(){return this.removed||(this.Group.style.display="block"),this};u[i].getBBox=function(){return this.removed?this:fi[s](this.type)?ti(this.attrs.path):{x:this.X+(this.bbx||0),y:this.Y,width:this.W,height:this.H}};u[i].remove=function(){if(!this.removed){gt(this,this.paper);this.node.parentNode.removeChild(this.node);this.Group.parentNode.removeChild(this.Group);this.shape&&this.shape.parentNode.removeChild(this.shape);for(var n in this)delete this[n];this.removed=!0}};u[i].attr=function(i,u){var e,f;if(this.removed)return this;if(i==null){i={};for(e in this.attrs)this.attrs[s](e)&&(i[e]=this.attrs[e]);return this._.rt.deg&&(i.rotation=this.rotate()),(this._.sx!=1||this._.sy!=1)&&(i.scale=this.scale()),i.gradient&&i.fill=="none"&&(i.fill=i.gradient)&&delete i.gradient,i}if(u==null&&n.is(i,wt))return i=="translation"?yi.call(this):i=="rotation"?this.rotate():i=="scale"?this.scale():i==at&&this.attrs.fill=="none"&&this.attrs.gradient?this.attrs.gradient:this.attrs[i];if(this.attrs&&u==null&&n.is(i,et)){for(f={},e=0,u=i[t];e<u;e++)f[i[e]]=this.attr(i[e]);return f}return u!=null&&(f={},f[i]=u),u==null&&n.is(i,"object")&&(f=i),f&&(f.text&&this.type=="text"&&(this.node.string=f.text),vt(this,f),f.gradient&&({circle:1,ellipse:1}[s](this.type)||(f.gradient+r).charAt()!="r")&&ri(this,f.gradient),(!fi[s](this.type)||this._.rt.deg)&&this.setBox(this.attrs)),this};u[i].toFront=function(){return this.removed||this.Group.parentNode[o](this.Group),this.paper.top!=this&&br(this,this.paper),this};u[i].toBack=function(){return this.removed?this:(this.Group.parentNode.firstChild!=this.Group&&(this.Group.parentNode.insertBefore(this.Group,this.Group.parentNode.firstChild),kr(this,this.paper)),this)};u[i].insertAfter=function(n){return this.removed?this:(n.Group.nextSibling?n.Group.parentNode.insertBefore(this.Group,n.Group.nextSibling):n.Group.parentNode[o](this.Group),dr(this,n,this.paper),this)};u[i].insertBefore=function(n){return this.removed?this:(n.Group.parentNode.insertBefore(this.Group,n.Group),gr(this,n,this.paper),this)};cu=/ progid:\S+Blur\([^\)]+\)/g;u[i].blur=function(n){var t=this.node.style,i=t.filter;i=i.replace(cu,"");+n!=0?(this.attrs.blur=n,t.filter=i+ki+".Blur(pixelradius="+(+n||1.5)+")",t.margin=Raphael.format("-{0}px 0 0 -{0}px",Math.round(+n||1.5))):(t.filter=i,t.margin=0,delete this.attrs.blur)};ru=function(n,t,i,r){var e=it("group"),f=it("oval");return e.style.cssText="position:absolute;left:0;top:0;width:"+n.width+"px;height:"+n.height+"px",e.coordsize=ui,e.coordorigin=n.coordorigin,e[o](f),f=new u(f,e,n),f.type="circle",vt(f,{stroke:"#000",fill:"none"}),f.attrs.cx=t,f.attrs.cy=i,f.attrs.r=r,f.setBox({x:t-r,y:i-r,width:r*2,height:r*2}),n.canvas[o](e),f};function lu(t,i,r,u,f){return f?n.format("M{0},{1}l{2},0a{3},{3},0,0,1,{3},{3}l0,{5}a{3},{3},0,0,1,{4},{3}l{6},0a{3},{3},0,0,1,{4},{4}l0,{7}a{3},{3},0,0,1,{3},{4}z",t+f,i,r-f*2,f,-f,u-f*2,f*2-r,f*2-u):n.format("M{0},{1}l{2},0,0,{3},{4},0z",t,i,r,u,-r)}uu=function(n,t,i,r,u,f){var o=lu(t,i,r,u,f),e;return n=n.path(o),e=n.attrs,n.X=e.x=t,n.Y=e.y=i,n.W=e.width=r,n.H=e.height=u,e.r=f,e.path=o,n.type="rect",n};fu=function(n,t,i,r,f){var s=it("group"),e=it("oval");return s.style.cssText="position:absolute;left:0;top:0;width:"+n.width+"px;height:"+n.height+"px",s.coordsize=ui,s.coordorigin=n.coordorigin,s[o](e),e=new u(e,s,n),e.type="ellipse",vt(e,{stroke:"#000"}),e.attrs.cx=t,e.attrs.cy=i,e.attrs.rx=r,e.attrs.ry=f,e.setBox({x:t-r,y:i-f,width:r*2,height:f*2}),n.canvas[o](s),e};eu=function(n,t,i,r,f,e){var h=it("group"),s=it("image");return h.style.cssText="position:absolute;left:0;top:0;width:"+n.width+"px;height:"+n.height+"px",h.coordsize=ui,h.coordorigin=n.coordorigin,s.src=t,h[o](s),s=new u(s,h,n),s.type="image",s.attrs.src=t,s.attrs.x=i,s.attrs.y=r,s.attrs.w=f,s.attrs.h=e,s.setBox({x:i,y:r,width:f,height:e}),n.canvas[o](h),s};ou=function(t,i,f,e){var h=it("group"),c=it("shape"),s=c.style,l=it("path"),a=it("textpath");return h.style.cssText="position:absolute;left:0;top:0;width:"+t.width+"px;height:"+t.height+"px",h.coordsize=ui,h.coordorigin=t.coordorigin,l.v=n.format("m{0},{1}l{2},{1}",v(i*10),v(f*10),v(i*10)+1),l.textpathok=!0,s.width=t.width,s.height=t.height,a.string=e+r,a.on=!0,c[o](a),c[o](l),h[o](c),s=new u(a,h,t),s.shape=c,s.textpath=l,s.type="text",s.attrs.text=e,s.attrs.x=i,s.attrs.y=f,s.attrs.w=1,s.attrs.h=1,vt(s,{font:oi.font,stroke:"none",fill:"#000"}),s.setBox(),t.canvas[o](h),s};su=function(n,t){var i=this.canvas.style;return n==+n&&(n+="px"),t==+t&&(t+="px"),i.width=n,i.height=t,i.clip="rect(0 "+n+" "+t+" 0)",this};c.createStyleSheet().addRule(".rvml","behavior:url(#default#VML)");try{c.namespaces.rvml||c.namespaces.add("rvml","urn:schemas-microsoft-com:vml");it=function(n){return c.createElement("<rvml:"+n+' class="rvml">')}}catch(pf){it=function(n){return c.createElement("<"+n+' xmlns="urn:schemas-microsoft.com:vml" class="rvml">')}}rr=function(){var i=wr[b](0,arguments),r=i.container,u=i.height,f=i.width,h=i.x;if(i=i.y,!r)throw new Error("VML container not found.");var t=new y,e=t.canvas=c.createElement("div"),s=e.style;return h=h||0,i=i||0,f=f||512,u=u||342,f==+f&&(f+="px"),u==+u&&(u+="px"),t.width=1e3,t.height=1e3,t.coordsize=ni*1e3+g+ni*1e3,t.coordorigin="0 0",t.span=c.createElement("span"),t.span.style.cssText="position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;display:inline;",e[o](t.span),s.cssText=n.format("width:{0};height:{1};display:inline-block;position:relative;clip:rect(0 {0} {1} 0);overflow:hidden",f,u),r==1?(c.body[o](e),s.left=h+"px",s.top=i+"px",s.position="absolute"):r.firstChild?r.insertBefore(e,r.firstChild):r[o](e),nr.call(t,t,n.fn),t};y[i].clear=function(){this.canvas.innerHTML=r;this.span=c.createElement("span");this.span.style.cssText="position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;display:inline;";this.canvas[o](this.span);this.bottom=this.top=null};y[i].remove=function(){this.canvas.parentNode.removeChild(this.canvas);for(var n in this)this[n]=nu(n);return!0}}for(y[i].safari=/^Apple|^Google/.test(st.navigator.vendor)&&(!(st.navigator.userAgent.indexOf("Version/4.0")+1)||st.navigator.platform.slice(0,2)=="iP")?function(){var n=this.rect(-99,-99,this.width+99,this.height+99);st.setTimeout(function(){n.remove()})}:function(){},au=function(){return c.addEventListener?function(n,t,i,r){function f(u){if(wi&&bi[s](t))for(var f=0,e=u.targetTouches&&u.targetTouches.length;f<e;f++)if(u.targetTouches[f].target==n){e=u;u=u.targetTouches[f];u.originalEvent=e;u.preventDefault=lf;u.stopPropagation=vf;break}return i.call(r,u)}var u=wi&&bi[t]?bi[t]:t;return n.addEventListener(u,f,!1),function(){return n.removeEventListener(u,f,!1),!0}}:c.attachEvent?function(n,t,i,r){function u(n){return n=n||st.event,n.preventDefault=n.preventDefault||cf,n.stopPropagation=n.stopPropagation||af,i.call(r,n)}function f(){return n.detachEvent("on"+t,u),!0}return n.attachEvent("on"+t,u),f}:void 0}(),bt=hr[t];bt--;)(function(r){n[r]=u[i][r]=function(t){return n.is(t,"function")&&(this.events=this.events||[],this.events.push({name:r,f:t,unbind:au(this.shape||this.node||c,r,t,this)})),this};n["un"+r]=u[i]["un"+r]=function(n){for(var i=this.events,u=i[t];u--;)if(i[u].name==r&&i[u].f==n)return i[u].unbind(),i.splice(u,1),i.length||delete this.events,this;return this}})(hr[bt]);u[i].hover=function(n,t){return this.mouseover(n).mouseout(t)};u[i].unhover=function(n,t){return this.unmouseover(n).unmouseout(t)};u[i].drag=function(n,t,i){function u(t){var u=t.clientX,f=t.clientY,e,i;if(wi){for(e=t.touches.length;e--;)if(i=t.touches[e],i.identifier==r._drag.id){u=i.clientX;f=i.clientY;(t.originalEvent?t.originalEvent:t).preventDefault();break}}else t.preventDefault();n&&n.call(r,u-r._drag.x,f-r._drag.y,u,f)}function f(){r._drag={};Raphael.unmousemove(u).unmouseup(f);i&&i.call(r)}this._drag={};var r=this.mousedown(function(n){(n.originalEvent?n.originalEvent:n).preventDefault();this._drag.x=n.clientX;this._drag.y=n.clientY;this._drag.id=n.identifier;t&&t.call(this,n.clientX,n.clientY);Raphael.mousemove(u).mouseup(f)});return this};y[i].circle=function(n,t,i){return ru(this,n||0,t||0,i||0)};y[i].rect=function(n,t,i,r,u){return uu(this,n||0,t||0,i||0,r||0,u||0)};y[i].ellipse=function(n,t,i,r){return fu(this,n||0,t||0,i||0,r||0)};y[i].path=function(t){return!t||n.is(t,wt)||n.is(t[0],et)||(t+=r),tu(n.format[b](n,arguments),this)};y[i].image=function(n,t,i,r,u){return eu(this,n||"about:blank",t||0,i||0,r||0,u||0)};y[i].text=function(n,t,i){return ou(this,n||0,t||0,i||r)};y[i].set=function(n){return arguments[t]>1&&(n=Array[i].splice.call(arguments,0,arguments[t])),new ct(n)};y[i].setSize=su;y[i].top=y[i].bottom=null;y[i].raphael=n;u[i].resetScale=function(){if(this.removed)return this;this._.sx=1;this._.sy=1;this.attrs.scale="1 1"};u[i].scale=function(n,i,u,f){var a,o,h,nt,it,l,s,w;if(this.removed)return this;if(n==null&&i==null)return{x:this._.sx,y:this._.sy,toString:vu};if(i=i||n,+i||(i=n),h=this.attrs,n!=0){var c=this.getBBox(),v=c.x+c.width/2,p=c.y+c.height/2;a=n/this._.sx;o=i/this._.sy;u=+u||u==0?u:v;f=+f||f==0?f:p;c=~~(n/e.abs(n));var y=~~(i/e.abs(i)),rt=this.node.style,d=u+(v-u)*a;p=f+(p-f)*o;switch(this.type){case"rect":case"image":nt=h.width*c*a;it=h.height*y*o;this.attr({height:it,r:h.r*lt(c*a,y*o),width:nt,x:d-nt/2,y:p-it/2});break;case"circle":case"ellipse":this.attr({rx:h.rx*c*a,ry:h.ry*y*o,r:h.r*lt(c*a,y*o),cx:d,cy:p});break;case"text":this.attr({x:d,y:p});break;case"path":v=gi(h.path);for(var ut=!0,b=0,ft=v[t];b<ft;b++)if(l=v[b],s=ei.call(l[0]),!(s=="M"&&ut))if(ut=!1,s=="A")l[v[b][t]-2]*=a,l[v[b][t]-1]*=o,l[1]*=c*a,l[2]*=y*o,l[5]=+!(c+y?!+l[5]:+l[5]);else if(s=="H")for(s=1,w=l[t];s<w;s++)l[s]*=a;else if(s=="V")for(s=1,w=l[t];s<w;s++)l[s]*=o;else for(s=1,w=l[t];s<w;s++)l[s]*=s%2?a:o;o=ti(v);a=d-o.x-o.width/2;o=p-o.y-o.height/2;v[0][1]+=a;v[0][2]+=o;this.attr({path:v})}this.type in{text:1,image:1}&&(c!=1||y!=1)?this.transformations?(this.transformations[2]="scale("[k](c,",",y,")"),this.node[ot]("transform",this.transformations[tt](g)),a=c==-1?-h.x-(nt||0):h.x,o=y==-1?-h.y-(it||0):h.y,this.attr({x:a,y:o}),h.fx=c-1,h.fy=y-1):(this.node.filterMatrix=ki+".Matrix(M11="[k](c,", M12=0, M21=0, M22=",y,", Dx=0, Dy=0, sizingmethod='auto expand', filtertype='bilinear')"),rt.filter=(this.node.filterMatrix||r)+(this.node.filterOpacity||r)):this.transformations?(this.transformations[2]=r,this.node[ot]("transform",this.transformations[tt](g)),h.fx=0,h.fy=0):(this.node.filterMatrix=r,rt.filter=(this.node.filterMatrix||r)+(this.node.filterOpacity||r));h.scale=[n,i,u,f][tt](g);this._.sx=n;this._.sy=i}return this};u[i].clone=function(){if(this.removed)return null;var n=this.attr();return delete n.scale,delete n.translation,this.paper[this.type]().attr(n)};ur=ut(function(t,i,r,u,f,e,o,s,h){for(var y,a,v=0,c=0;c<1.001;c+=.001){if(a=n.findDotsAtSegment(t,i,r,u,f,e,o,s,c),c&&(v+=l(l(y.x-a.x,2)+l(y.y-a.y,2),.5)),v>=h)return a;y=a}});var yf=ut(function(n,t,i,r,u,f,e,o){for(var h,c={x:0,y:0},a=0,s=0;s<1.01;s+=.01)h=ii(n,t,i,r,u,f,e,o,s),s&&(a+=l(l(c.x-h.x,2)+l(c.y-h.y,2),.5)),c=h;return a}),yu=fr(1),vi=fr(),er=fr(0,1);u[i].getTotalLength=function(){if(this.type=="path")return this.node.getTotalLength?this.node.getTotalLength():yu(this.attrs.path)};u[i].getPointAtLength=function(n){if(this.type=="path")return vi(this.attrs.path,n)};u[i].getSubpath=function(n,t){if(this.type=="path")return e.abs(this.getTotalLength()-t)<1e-6?er(this.attrs.path,n).end:(t=er(this.attrs.path,t,1),n?er(t,n).end:t)};n.easing_formulas={linear:function(n){return n},"<":function(n){return l(n,3)},">":function(n){return l(n-1,3)+1},"<>":function(n){return(n*=2,n<1)?l(n,3)/2:(n-=2,(l(n,3)+2)/2)},backIn:function(n){var t=1.70158;return n*n*((t+1)*n-t)},backOut:function(n){n-=1;var t=1.70158;return n*n*((t+1)*n+t)+1},elastic:function(n){if(n==0||n==1)return n;var t=.3,i=t/4;return l(2,-10*n)*e.sin((n-i)*2*e.PI/t)+1},bounce:function(n){var i=7.5625,t=2.75;return n<1/t?n=i*n*n:n<2/t?(n-=1.5/t,n=i*n*n+.75):n<2.5/t?(n-=2.25/t,n=i*n*n+.9375):(n-=2.625/t,n=i*n*n+.984375),n}};rt={length:0};u[i].animateWith=function(n,t,i,r,u){return rt[n.id]&&(t.start=rt[n.id].start),this.animate(t,i,r,u)};u[i].animateAlong=wu();u[i].animateAlongBack=wu(1);u[i].onAnimation=function(n){return this._run=n||0,this};u[i].animate=function(i,u,f,e){var o,w,k;(n.is(f,"function")||!f)&&(e=f||null);var l={},y={},a={};for(o in i)if(i[s](o)&&di[s](o)){l[o]=this.attr(o);l[o]==null&&(l[o]=oi[o]);y[o]=i[o];switch(di[o]){case"along":var c=yu(i[o]),v=vi(i[o],c*!!i.back),b=this.getBBox();a[o]=c/u;a.tx=b.x;a.ty=b.y;a.sx=v.x;a.sy=v.y;y.rot=i.rot;y.back=i.back;y.len=c;i.rot&&(a.r=h(this.rotate())||0);break;case nt:a[o]=(y[o]-l[o])/u;break;case"colour":l[o]=n.getRGB(l[o]);c=n.getRGB(y[o]);a[o]={r:(c.r-l[o].r)/u,g:(c.g-l[o].g)/u,b:(c.b-l[o].b)/u};break;case"path":for(c=ai(l[o],y[o]),l[o]=c[0],v=c[1],a[o]=[],c=0,b=l[o][t];c<b;c++)for(a[o][c]=[0],w=1,k=l[o][c][t];w<k;w++)a[o][c][w]=(v[c][w]-l[o][c][w])/u;break;case"csv":v=(i[o]+r)[p](ft);c=(l[o]+r)[p](ft);switch(o){case"translation":l[o]=[0,0];a[o]=[v[0]/u,v[1]/u];break;case"rotation":l[o]=c[1]==v[1]&&c[2]==v[2]?c:[0,v[1],v[2]];a[o]=[(v[0]-l[o][0])/u,0,0];break;case"scale":i[o]=v;l[o]=(l[o]+r)[p](ft);a[o]=[(v[0]-l[o][0])/u,(v[1]-l[o][1])/u,0,0];break;case"clip-rect":for(l[o]=(l[o]+r)[p](ft),a[o]=[],c=4;c--;)a[o][c]=(v[c]-l[o][c])/u}y[o]=v}}return this.stop(),this.in_animation=1,rt[this.id]={start:i.start||+new Date,ms:u,easing:f,from:l,diff:a,to:y,el:this,callback:e,t:{x:0,y:0}},++rt[t]==1&&pu(),this};u[i].stop=function(){return rt[this.id]&&rt[t]--,delete rt[this.id],this};u[i].translate=function(n,t){return this.attr({translation:n+" "+t})};u[i][d]=function(){return"Raphaël’s object"};n.ae=rt;ct[i][a]=function(){for(var n,i,r=0,f=arguments[t];r<f;r++)(n=arguments[r])&&(n.constructor==u||n.constructor==ct)&&(i=this.items[t],this[i]=this.items[i]=n,this[t]++);return this};ct[i].pop=function(){return delete this[this[t]--],this.items.pop()};for(pi in u[i])u[i][s](pi)&&(ct[i][pi]=function(n){return function(){for(var i=0,r=this.items[t];i<r;i++)this.items[i][n][b](this.items[i],arguments);return this}}(pi));return ct[i].attr=function(i,r){var u,f;if(i&&n.is(i,et)&&n.is(i[0],"object"))for(r=0,u=i[t];r<u;r++)this.items[r].attr(i[r]);else for(u=0,f=this.items[t];u<f;u++)this.items[u].attr(i,r);return this},ct[i].animate=function(i,r,u,f){(n.is(u,"function")||!u)&&(f=u||null);var s=this.items[t],o=s,h,c=this,e;for(f&&(e=function(){--s||f.call(c)}),u=n.is(u,wt)?u:e,h=this.items[--o].animate(i,r,u,e);o--;)this.items[o].animateWith(h,i,r,u,e);return this},ct[i].insertAfter=function(n){for(var i=this.items[t];i--;)this.items[i].insertAfter(n);return this},ct[i].getBBox=function(){for(var n,i=[],r=[],u=[],f=[],e=this.items[t];e--;)n=this.items[e].getBBox(),i[a](n.x),r[a](n.y),u[a](n.x+n.width),f[a](n.y+n.height);return i=lt[b](0,i),r=lt[b](0,r),{x:i,y:r,width:ht[b](0,u)-i,height:ht[b](0,f)-r}},ct[i].clone=function(n){n=new ct;for(var i=0,r=this.items[t];i<r;i++)n[a](this.items[i].clone());return n},n.registerFont=function(n){var i,t,u,r,f;if(!n.face)return n;this.fonts=this.fonts||{};i={w:n.w,face:{},glyphs:{}};t=n.face["font-family"];for(u in n.face)n.face[s](u)&&(i.face[u]=n.face[u]);if(this.fonts[t]?this.fonts[t][a](i):this.fonts[t]=[i],!n.svg){i.face["units-per-em"]=pt(n.face["units-per-em"],10);for(r in n.glyphs)if(n.glyphs[s](r)&&(t=n.glyphs[r],i.glyphs[r]={w:t.w,k:{},d:t.d&&"M"+t.d[w](/[mlcxtrv]/g,function(n){return{l:"L",c:"C",x:"z",t:"m",r:"l",v:"c"}[n]||"M"})+"z"},t.k))for(f in t.k)t[s](f)&&(i.glyphs[r].k[f]=t.k[f])}return n},y[i].getFont=function(i,u,f,e){var h,o,c;if(e=e||"normal",f=f||"normal",u=+u||{normal:400,bold:700,lighter:300,bolder:800}[u]||400,n.fonts){if(h=n.fonts[i],!h){i=new RegExp("(^|\\s)"+i[w](/[^\w\d\s+!~.:_-]/g,r)+"(\\s|$)","i");for(o in n.fonts)if(n.fonts[s](o)&&i.test(o)){h=n.fonts[o];break}}if(h)for(o=0,i=h[t];o<i;o++)if(c=h[o],c.face["font-weight"]==u&&(c.face["font-style"]==f||!c.face["font-style"])&&c.face["font-stretch"]==e)break;return c}},y[i].print=function(i,u,f,e,o,s){var h,b,l,v;s=s||"middle";var y=this.set(),c=(f+r)[p](r),w=0;if(n.is(e,f)&&(e=this.getFont(e)),e){for(f=(o||16)/e.face["units-per-em"],h=e.face.bbox.split(ft),o=+h[0],s=+h[1]+(s=="baseline"?h[3]-h[1]+ +e.face.descent:(h[3]-h[1])/2),h=0,b=c[t];h<b;h++)l=h&&e.glyphs[c[h-1]]||{},v=e.glyphs[c[h]],w+=h?(l.w||e.w)+(l.k&&l.k[c[h]]||0):0,v&&v.d&&y[a](this.path(v.d).attr({fill:"#000",stroke:"none",translation:[w,0]}));y.scale(f,f,o,s).translate(i-o,u-s)}return y},bu=/\{(\d+)\}/g,n.format=function(i,u){var f=n.is(u,et)?[0][k](u):arguments;return i&&n.is(i,wt)&&f[t]-1&&(i=i[w](bu,function(n,t){return f[++t]==null?r:f[t]})),i||r},n.ninja=function(){return sr.was?Raphael=sr.is:delete Raphael,n},n.el=u[i],n}();dateTimeFromServer=new Date;dateTimeFromClient=new Date;$(document).ready(function(){function n(n){return n<10?"0"+n.toString():n.toString()}$(".multiMenu").hover(function(){mouse_is_inside=!0},function(){mouse_is_inside=!1});$("body").mouseup(function(){mouse_is_inside||$(".multiMenu .layer").slideUp(function(){$(this).parent("div").removeClass("active")})});try{$.ajax({url:"/Home/BiezacaDataGodzina",type:"GET",async:!1,cache:!1,success:function(n){dateTimeFromServer=new Date(parseInt(n.substr(6)));dateTimeFromClient=new Date}})}catch(t){}setInterval(function(){var u=dateTimeFromServer-dateTimeFromClient,f=(new Date).getTime(),r=new Date,t,i;r.setTime(f+u);t=r;t.setDate(t.getDate());var e=t.getDate(),o=t.getMonth()+1,s=t.getFullYear(),h=n(e)+" - "+n(o)+" - "+s;$("#date").html(h);i=r;i.setDate(i.getDate());var c=i.getHours(),l=i.getMinutes(),a=n(c)+":"+n(l);$("#time").html(a)},1e3);$(".showDetails").click(function(){$(this).prev(".details").slideToggle();$(this).find(".gui").toggleClass("icoDArrDown icoDArrUp");$(this).toggleClass("act")});indirectStation()});mouse_is_inside=!1,function(n){n.cookies={render:function(t){var i="";i+='<div id="cookiesBar"><div id="cookiesBarWrap"><p>'+C_Cookie_Tekst_1;i+=t.privacyPolicy?' <a href="'+t.cookiesPageURL+'" title="'+C_Cookie_PolitykaPrywatnosciTitle+'">'+C_Cookie_PolitykaPrywatnosci+"<\/a>.<\/p>":' <a href="'+t.cookiesPageURL+'" title="'+C_Cookie_RegulaminSerwisu+'">'+C_Cookie_RegulaminSerwisu+"<\/a>.<\/p>";i+="<p>"+C_Cookie_Tekst_2+'<\/p><a id="cookiesBarClose" href="#" title="'+C_Cookie_Zamknij+'">'+C_Cookie_Zamknij+"<\/a><\/div><\/div>";n.cookie("cookie")||(n("body").append(i),n.fn.delegate?n("#cookiesBar").delegate("#cookiesBarClose","click",function(t){n.cookies.closeCallback(t)}):n("#cookiesBarClose").bind("click",function(t){n.cookies.closeCallback(t)}))},closeCallback:function(t){return n("#cookiesBar").fadeOut(),n.cookie("cookie")||n.cookie("cookie",!0,{path:"/",expires:30}),t.preventDefault(),!1}}}(jQuery);String.prototype.replaceAll=function(n,t){return this.split(n).join(t)};$.ajaxSetup({headers:{"X-Kendo-Ui-Version":"r3-2016-sp2"}});!function(n){function i(){var i=document.createElement("smartbanner"),n={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var t in n)if(i.style[t]!==undefined)return{end:n[t]};return!1}var t=function(t){var f,i,r,u;if((this.origHtmlMargin=parseFloat(n("html").css("margin-top")),this.options=n.extend({},n.smartbanner.defaults,t),f=navigator.standalone,i=navigator.userAgent,this.options.force?this.type=this.options.force:i.match(/Windows Phone 8/i)!=null&&i.match(/Touch/i)!==null?this.type="windows":i.match(/iPhone|iPod/i)!=null||i.match(/iPad/)&&this.options.iOSUniversalApp?i.match(/Safari/i)!=null&&(i.match(/CriOS/i)!=null||window.Number(i.substr(i.indexOf("OS ")+3,3).replace("_","."))<6)&&(this.type="ios"):i.match(/\bSilk\/(.*\bMobile Safari\b)?/)||i.match(/\bKF\w/)||i.match("Kindle Fire")?this.type="kindle":i.match(/Android/i)!=null&&(this.type="android"),this.type&&!f&&!this.getCookie("sb-closed")&&!this.getCookie("sb-installed"))&&(this.scale=this.options.scale=="auto"?n(window).width()/window.screen.width:this.options.scale,this.scale<1&&(this.scale=1),r=n(this.type=="android"?'meta[name="google-play-app"]':this.type=="ios"?'meta[name="apple-itunes-app"]':this.type=="kindle"?'meta[name="kindle-fire-app"]':'meta[name="msApplication-ID"]'),r.length!=0)){if(this.type=="windows")this.appId=n('meta[name="msApplication-PackageFamilyName"]').attr("content");else if(u=/app-id=([^\s,]+)/.exec(r.attr("content")),u)this.appId=u[1];else return;this.title=this.options.title?this.options.title:r.data("title")||n("title").text().replace(/\s*[|\-·].*$/,"");this.author=this.options.author?this.options.author:r.data("author")||(n('meta[name="author"]').length?n('meta[name="author"]').attr("content"):window.location.hostname);this.iconUrl=r.data("icon-url");this.price=r.data("price");this.create();this.show();this.listen()}};(t.prototype={constructor:t,create:function(){var t,i=this.options.url?this.options.url:(this.type=="windows"?"ms-windows-store:navigate?appid=":this.type=="android"?"market://details?id=":this.type=="kindle"?"amzn://apps/android?asin=":"https://itunes.apple.com/"+this.options.appStoreLanguage+"/app/id")+this.appId,u=this.price||this.options.price,e=u?u+" - "+(this.type=="android"?this.options.inGooglePlay:this.type=="kindle"?this.options.inAmazonAppStore:this.type=="ios"?this.options.inAppStore:this.options.inWindowsStore):"",f=this.options.iconGloss===null?this.type=="ios":this.options.iconGloss,r;this.type=="android"&&this.options.GooglePlayParams&&(i=i+"&referrer="+this.options.GooglePlayParams);r='<div id="smartbanner" class="'+this.type+'"><div class="sb-container"><a href="#" class="sb-close">×<\/a><span class="sb-icon"><\/span><div class="sb-info"><strong>'+this.title+"<\/strong><span>"+this.author+"<\/span><span>"+e+'<\/span><\/div><a href="'+i+'" class="sb-button"><span>'+this.options.button+"<\/span><\/a><\/div><\/div>";this.options.layer?n(this.options.appendToSelector).append(r):n(this.options.appendToSelector).prepend(r);this.options.icon?t=this.options.icon:this.iconUrl?t=this.iconUrl:n('link[rel="apple-touch-icon-precomposed"]').length>0?(t=n('link[rel="apple-touch-icon-precomposed"]').attr("href"),this.options.iconGloss===null&&(f=!1)):n('link[rel="apple-touch-icon"]').length>0?t=n('link[rel="apple-touch-icon"]').attr("href"):n('meta[name="msApplication-TileImage"]').length>0?t=n('meta[name="msApplication-TileImage"]').attr("content"):n('meta[name="msapplication-TileImage"]').length>0&&(t=n('meta[name="msapplication-TileImage"]').attr("content"));t?(n("#smartbanner .sb-icon").css("background-image","url("+t+")"),f&&n("#smartbanner .sb-icon").addClass("gloss")):n("#smartbanner").addClass("no-icon");this.bannerHeight=n("#smartbanner").outerHeight()+2;this.scale>1&&(n("#smartbanner").css("top",parseFloat(n("#smartbanner").css("top"))*this.scale).css("height",parseFloat(n("#smartbanner").css("height"))*this.scale).hide(),n("#smartbanner .sb-container").css("-webkit-transform","scale("+this.scale+")").css("-msie-transform","scale("+this.scale+")").css("-moz-transform","scale("+this.scale+")").css("width",n(window).width()/this.scale));n("#smartbanner").css("position",this.options.layer?"absolute":"static")},listen:function(){n("#smartbanner .sb-close").on("click",n.proxy(this.close,this));n("#smartbanner .sb-button").on("click",n.proxy(this.install,this))},show:function(t){var i=n("#smartbanner"),r;i.stop();this.options.layer?(i.animate({top:0,display:"block"},this.options.speedIn).addClass("shown").show(),n(this.pushSelector).animate({paddingTop:this.origHtmlMargin+this.bannerHeight*this.scale},this.options.speedIn,"swing",t)):n.support.transition?(i.animate({top:0},this.options.speedIn).addClass("shown"),r=function(){n("html").removeClass("sb-animation");t&&t()},n(this.pushSelector).addClass("sb-animation").one(n.support.transition.end,r).emulateTransitionEnd(this.options.speedIn).css("margin-top",this.origHtmlMargin+this.bannerHeight*this.scale)):i.slideDown(this.options.speedIn).addClass("shown")},hide:function(t){var i=n("#smartbanner"),r;i.stop();this.options.layer?(i.animate({top:-1*this.bannerHeight*this.scale,display:"block"},this.options.speedIn).removeClass("shown"),n(this.pushSelector).animate({paddingTop:this.origHtmlMargin},this.options.speedIn,"swing",t)):n.support.transition?(this.type!=="android"?i.css("top",-1*this.bannerHeight*this.scale).removeClass("shown"):i.css({display:"none"}).removeClass("shown"),r=function(){n("html").removeClass("sb-animation");t&&t()},n(this.pushSelector).addClass("sb-animation").one(n.support.transition.end,r).emulateTransitionEnd(this.options.speedOut).css("margin-top",this.origHtmlMargin)):i.slideUp(this.options.speedOut).removeClass("shown")},close:function(n){n.preventDefault();this.hide();this.setCookie("sb-closed","true",this.options.daysHidden)},install:function(){this.options.hideOnInstall&&this.hide();this.setCookie("sb-installed","true",this.options.daysReminder)},setCookie:function(n,t,i){var r=new Date;r.setDate(r.getDate()+i);t=encodeURI(t)+(i==null?"":"; expires="+r.toUTCString());document.cookie=n+"="+t+"; path=/;"},getCookie:function(n){for(var r,u,i=document.cookie.split(";"),t=0;t<i.length;t++)if(r=i[t].substr(0,i[t].indexOf("=")),u=i[t].substr(i[t].indexOf("=")+1),r=r.replace(/^\s+|\s+$/g,""),r==n)return decodeURI(u);return null},switchType:function(){var t=this;this.hide(function(){t.type=t.type=="android"?"ios":"android";var i=n(t.type=="android"?'meta[name="google-play-app"]':'meta[name="apple-itunes-app"]').attr("content");t.appId=/app-id=([^\s,]+)/.exec(i)[1];n("#smartbanner").detach();t.create();t.show()})}},n.smartbanner=function(i){var u=n(window),r=u.data("smartbanner"),f=typeof i=="object"&&i;r||u.data("smartbanner",r=new t(f));typeof i=="string"&&r[i]()},n.smartbanner.defaults={title:null,author:null,price:"FREE",appStoreLanguage:"us",inAppStore:"On the App Store",inGooglePlay:"In Google Play",inAmazonAppStore:"In the Amazon Appstore",inWindowsStore:"In the Windows Store",GooglePlayParams:null,icon:null,iconGloss:null,button:"VIEW",url:null,scale:"auto",speedIn:300,speedOut:400,daysHidden:15,daysReminder:90,force:null,hideOnInstall:!0,layer:!1,iOSUniversalApp:!0,appendToSelector:"body",pushSelector:"html"},n.smartbanner.Constructor=t,n.support.transition===undefined)&&(n.fn.emulateTransitionEnd=function(t){var i=!1,u=this,r;n(this).one(n.support.transition.end,function(){i=!0});return r=function(){i||n(u).trigger(n.support.transition.end)},setTimeout(r,t),this},n(function(){n.support.transition=i()}))}(window.jQuery) \ No newline at end of file